mirror of
https://github.com/isledecomp/isle.git
synced 2026-01-28 18:51:16 +00:00
Merge remote-tracking branch 'upstream/master' into impl/legoomni-deleteobject
This commit is contained in:
commit
ee840f09aa
4
.github/workflows/analyze.yml
vendored
4
.github/workflows/analyze.yml
vendored
@ -8,7 +8,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Install python libraries
|
||||
run: |
|
||||
@ -23,7 +23,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Install python libraries
|
||||
run: |
|
||||
|
||||
14
.github/workflows/build.yml
vendored
14
.github/workflows/build.yml
vendored
@ -41,7 +41,7 @@ jobs:
|
||||
with:
|
||||
arch: amd64_x86 # Use the 64-bit x64-native cross tools to build 32-bit x86 code
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Build
|
||||
run: |
|
||||
@ -53,9 +53,9 @@ jobs:
|
||||
runs-on: windows-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
repository: 'itsmattkc/msvc420'
|
||||
path: msvc420
|
||||
@ -145,6 +145,12 @@ jobs:
|
||||
run: |
|
||||
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
|
||||
uses: actions/upload-artifact@master
|
||||
with:
|
||||
@ -159,7 +165,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' && github.repository == 'isledecomp/isle' }}
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
repository: 'probonopd/uploadtool'
|
||||
|
||||
|
||||
6
.github/workflows/format.yml
vendored
6
.github/workflows/format.yml
vendored
@ -8,7 +8,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Run clang-format
|
||||
run: |
|
||||
@ -24,12 +24,12 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Install python libraries
|
||||
shell: bash
|
||||
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
|
||||
shell: bash
|
||||
|
||||
2
.github/workflows/naming.yml
vendored
2
.github/workflows/naming.yml
vendored
@ -8,7 +8,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Install LLVM and Clang
|
||||
uses: KyleMayes/install-llvm-action@v1
|
||||
|
||||
4
.github/workflows/unittest.yml
vendored
4
.github/workflows/unittest.yml
vendored
@ -8,7 +8,7 @@ jobs:
|
||||
runs-on: windows-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Install python libraries
|
||||
shell: bash
|
||||
@ -25,7 +25,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Install python libraries
|
||||
shell: bash
|
||||
|
||||
89
3rdparty/flic/flic.asm
vendored
89
3rdparty/flic/flic.asm
vendored
@ -4,6 +4,21 @@ 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
|
||||
@ -11,7 +26,7 @@ public EndOfSection
|
||||
|
||||
.text SEGMENT BYTE PUBLIC 'CODE'
|
||||
|
||||
?_25162 LABEL NEAR
|
||||
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
|
||||
@ -43,7 +58,7 @@ public EndOfSection
|
||||
db 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH
|
||||
db 0CCH, 0CCH, 0CCH, 0CCH, 0CCH
|
||||
|
||||
?_25164 LABEL NEAR
|
||||
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
|
||||
@ -55,7 +70,7 @@ public EndOfSection
|
||||
mov edi, dword ptr [esp+14H] ; 100BD595 _ 8B. 7C 24, 14
|
||||
push edx ; 100BD599 _ 52
|
||||
push edi ; 100BD59A _ 57
|
||||
call ?_25168 ; 100BD59B _ E8, 00000060
|
||||
call FUN_100bd600 ; 100BD59B _ E8, 00000060
|
||||
add esp, 16 ; 100BD5A0 _ 83. C4, 10
|
||||
test eax, eax ; 100BD5A3 _ 85. C0
|
||||
jz ?_25167 ; 100BD5A5 _ 74, 4A
|
||||
@ -93,7 +108,7 @@ public EndOfSection
|
||||
db 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH
|
||||
db 0CCH, 0CCH, 0CCH, 0CCH
|
||||
|
||||
?_25168 LABEL NEAR
|
||||
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
|
||||
@ -150,7 +165,7 @@ public EndOfSection
|
||||
; Filler type: INT 3 Debug breakpoint
|
||||
db 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH
|
||||
|
||||
?_25173 LABEL NEAR
|
||||
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
|
||||
@ -160,7 +175,7 @@ public EndOfSection
|
||||
mov esi, dword ptr [esp+10H] ; 100BD68F _ 8B. 74 24, 10
|
||||
push edx ; 100BD693 _ 52
|
||||
push esi ; 100BD694 _ 56
|
||||
call ?_25168 ; 100BD695 _ E8, FFFFFF66
|
||||
call FUN_100bd600 ; 100BD695 _ E8, FFFFFF66
|
||||
add esp, 16 ; 100BD69A _ 83. C4, 10
|
||||
test eax, eax ; 100BD69D _ 85. C0
|
||||
jz ?_25175 ; 100BD69F _ 74, 33
|
||||
@ -188,7 +203,7 @@ public EndOfSection
|
||||
db 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH
|
||||
db 0CCH, 0CCH
|
||||
|
||||
?_25176 LABEL NEAR
|
||||
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
|
||||
@ -200,7 +215,7 @@ public EndOfSection
|
||||
shl word ptr [esp+28H], 1 ; 100BD6F4 _ 66: C1. 64 24, 28, 01
|
||||
push edx ; 100BD6FA _ 52
|
||||
push esi ; 100BD6FB _ 56
|
||||
call ?_25168 ; 100BD6FC _ E8, FFFFFEFF
|
||||
call FUN_100bd600 ; 100BD6FC _ E8, FFFFFEFF
|
||||
add esp, 16 ; 100BD701 _ 83. C4, 10
|
||||
test eax, eax ; 100BD704 _ 85. C0
|
||||
jz ?_25179 ; 100BD706 _ 74, 52
|
||||
@ -235,7 +250,7 @@ public EndOfSection
|
||||
; Filler type: INT 3 Debug breakpoint
|
||||
db 0CCH, 0CCH, 0CCH
|
||||
|
||||
?_25180 LABEL NEAR
|
||||
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
|
||||
@ -267,7 +282,7 @@ public EndOfSection
|
||||
add ecx, 6 ; 100BD7BA _ 83. C1, 06
|
||||
push ecx ; 100BD7BD _ 51
|
||||
push esi ; 100BD7BE _ 56
|
||||
call ?_25194 ; 100BD7BF _ E8, 000000BC
|
||||
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
|
||||
@ -279,14 +294,14 @@ public EndOfSection
|
||||
push ecx ; 100BD7D4 _ 51
|
||||
push edi ; 100BD7D5 _ 57
|
||||
push esi ; 100BD7D6 _ 56
|
||||
call ?_25220 ; 100BD7D7 _ E8, 000002E4
|
||||
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 ?_25202 ; 100BD7E3 _ E8, 00000158
|
||||
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
|
||||
@ -298,7 +313,7 @@ public EndOfSection
|
||||
push ecx ; 100BD7F8 _ 51
|
||||
push edi ; 100BD7F9 _ 57
|
||||
push esi ; 100BD7FA _ 56
|
||||
call ?_25213 ; 100BD7FB _ E8, 00000210
|
||||
call FUN_100bda10 ; 100BD7FB _ E8, 00000210
|
||||
jmp ?_25189 ; 100BD800 _ EB, 28
|
||||
|
||||
?_25186 LABEL NEAR
|
||||
@ -307,7 +322,7 @@ public EndOfSection
|
||||
push ecx ; 100BD806 _ 51
|
||||
push edi ; 100BD807 _ 57
|
||||
push esi ; 100BD808 _ 56
|
||||
call ?_25227 ; 100BD809 _ E8, 000003F2
|
||||
call FUN_100bdc00 ; 100BD809 _ E8, 000003F2
|
||||
jmp ?_25189 ; 100BD80E _ EB, 1A
|
||||
|
||||
?_25187 LABEL NEAR
|
||||
@ -316,7 +331,7 @@ public EndOfSection
|
||||
push ecx ; 100BD814 _ 51
|
||||
push edi ; 100BD815 _ 57
|
||||
push esi ; 100BD816 _ 56
|
||||
call ?_25203 ; 100BD817 _ E8, 00000144
|
||||
call FUN_100bd960 ; 100BD817 _ E8, 00000144
|
||||
jmp ?_25189 ; 100BD81C _ EB, 0C
|
||||
|
||||
?_25188 LABEL NEAR
|
||||
@ -325,7 +340,7 @@ public EndOfSection
|
||||
push ecx ; 100BD822 _ 51
|
||||
push edi ; 100BD823 _ 57
|
||||
push esi ; 100BD824 _ 56
|
||||
call ?_25231 ; 100BD825 _ E8, 00000466
|
||||
call FUN_100bdc90 ; 100BD825 _ E8, 00000466
|
||||
?_25189:add esp, 16 ; 100BD82A _ 83. C4, 10
|
||||
|
||||
?_25190 LABEL NEAR
|
||||
@ -355,12 +370,12 @@ public EndOfSection
|
||||
?_25193 db 00H, 07H, 07H, 01H, 07H, 07H, 07H, 02H ; 100BD870 _ ........
|
||||
db 03H, 04H, 07H, 05H, 06H, 0CCH, 0CCH, 0CCH ; 100BD878 _ ........
|
||||
|
||||
?_25194 LABEL NEAR
|
||||
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 ?_25195 ; 100BD88A _ E8, 00000011
|
||||
call FUN_100bd8a0 ; 100BD88A _ E8, 00000011
|
||||
add esp, 8 ; 100BD88F _ 83. C4, 08
|
||||
ret ; 100BD892 _ C3
|
||||
|
||||
@ -369,7 +384,7 @@ public EndOfSection
|
||||
db 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH
|
||||
db 0CCH, 0CCH, 0CCH, 0CCH, 0CCH
|
||||
|
||||
?_25195 LABEL NEAR
|
||||
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
|
||||
@ -395,7 +410,7 @@ public EndOfSection
|
||||
push edi ; 100BD8D2 _ 57
|
||||
add si, bp ; 100BD8D3 _ 66: 03. F5
|
||||
push eax ; 100BD8D6 _ 50
|
||||
call ?_25199 ; 100BD8D7 _ E8, 00000014
|
||||
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
|
||||
@ -408,7 +423,7 @@ public EndOfSection
|
||||
pop ebx ; 100BD8EE _ 5B
|
||||
ret ; 100BD8EF _ C3
|
||||
|
||||
?_25199 LABEL NEAR
|
||||
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
|
||||
@ -440,12 +455,12 @@ public EndOfSection
|
||||
; Filler type: INT 3 Debug breakpoint
|
||||
db 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH
|
||||
|
||||
?_25202 LABEL NEAR
|
||||
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 ?_25195 ; 100BD94A _ E8, FFFFFF51
|
||||
call FUN_100bd8a0 ; 100BD94A _ E8, FFFFFF51
|
||||
add esp, 8 ; 100BD94F _ 83. C4, 08
|
||||
ret ; 100BD952 _ C3
|
||||
|
||||
@ -454,7 +469,7 @@ public EndOfSection
|
||||
db 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH
|
||||
db 0CCH, 0CCH, 0CCH, 0CCH, 0CCH
|
||||
|
||||
?_25203 LABEL NEAR
|
||||
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
|
||||
@ -529,7 +544,7 @@ public EndOfSection
|
||||
db 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH
|
||||
db 0CCH, 0CCH, 0CCH, 0CCH
|
||||
|
||||
?_25213 LABEL NEAR
|
||||
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
|
||||
@ -572,7 +587,7 @@ public EndOfSection
|
||||
push edi ; 100BDA70 _ 57
|
||||
push edx ; 100BDA71 _ 52
|
||||
push eax ; 100BDA72 _ 50
|
||||
call ?_25173 ; 100BDA73 _ E8, FFFFFC08
|
||||
call FUN_100bd680 ; 100BDA73 _ E8, FFFFFC08
|
||||
add esp, 24 ; 100BDA78 _ 83. C4, 18
|
||||
jmp ?_25217 ; 100BDA7B _ EB, 23
|
||||
|
||||
@ -586,7 +601,7 @@ public EndOfSection
|
||||
push edi ; 100BDA90 _ 57
|
||||
push ecx ; 100BDA91 _ 51
|
||||
push edx ; 100BDA92 _ 52
|
||||
call ?_25164 ; 100BDA93 _ E8, FFFFFAE8
|
||||
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
|
||||
@ -608,7 +623,7 @@ public EndOfSection
|
||||
; Filler type: INT 3 Debug breakpoint
|
||||
db 0CCH, 0CCH, 0CCH
|
||||
|
||||
?_25220 LABEL NEAR
|
||||
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
|
||||
@ -643,7 +658,7 @@ public EndOfSection
|
||||
push eax ; 100BDB18 _ 50
|
||||
push ecx ; 100BDB19 _ 51
|
||||
push edx ; 100BDB1A _ 52
|
||||
call ?_25162 ; 100BDB1B _ E8, FFFFFA10
|
||||
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
|
||||
@ -677,7 +692,7 @@ public EndOfSection
|
||||
push ecx ; 100BDB7F _ 51
|
||||
add di, bp ; 100BDB80 _ 66: 03. FD
|
||||
push edx ; 100BDB83 _ 52
|
||||
call ?_25164 ; 100BDB84 _ E8, FFFFF9F7
|
||||
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
|
||||
@ -704,7 +719,7 @@ public EndOfSection
|
||||
add di, bp ; 100BDBCD _ 66: 03. FD
|
||||
push edx ; 100BDBD0 _ 52
|
||||
push ecx ; 100BDBD1 _ 51
|
||||
call ?_25176 ; 100BDBD2 _ E8, FFFFFB09
|
||||
call FUN_100bd6e0 ; 100BDBD2 _ E8, FFFFFB09
|
||||
add esp, 24 ; 100BDBD7 _ 83. C4, 18
|
||||
dec bx ; 100BDBDA _ 66: 4B
|
||||
jne ?_25224 ; 100BDBDC _ 0F 85, FFFFFF6A
|
||||
@ -723,7 +738,7 @@ public EndOfSection
|
||||
; Filler type: INT 3 Debug breakpoint
|
||||
db 0CCH, 0CCH, 0CCH
|
||||
|
||||
?_25227 LABEL NEAR
|
||||
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
|
||||
@ -755,7 +770,7 @@ public EndOfSection
|
||||
push 0 ; 100BDC52 _ 6A, 00
|
||||
push ebx ; 100BDC54 _ 53
|
||||
push edi ; 100BDC55 _ 57
|
||||
call ?_25176 ; 100BDC56 _ E8, FFFFFA85
|
||||
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
|
||||
@ -766,7 +781,7 @@ public EndOfSection
|
||||
push eax ; 100BDC6D _ 50
|
||||
push ebx ; 100BDC6E _ 53
|
||||
push edi ; 100BDC6F _ 57
|
||||
call ?_25162 ; 100BDC70 _ E8, FFFFF8BB
|
||||
call FUN_100bd530 ; 100BDC70 _ E8, FFFFF8BB
|
||||
add esp, 20 ; 100BDC75 _ 83. C4, 14
|
||||
?_25229:dec bp ; 100BDC78 _ 66: 4D
|
||||
jns ?_25228 ; 100BDC7A _ 79, CB
|
||||
@ -782,7 +797,7 @@ public EndOfSection
|
||||
db 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH, 0CCH
|
||||
db 0CCH, 0CCH, 0CCH, 0CCH
|
||||
|
||||
?_25231 LABEL NEAR
|
||||
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
|
||||
@ -804,7 +819,7 @@ public EndOfSection
|
||||
push 0 ; 100BDCBD _ 6A, 00
|
||||
push eax ; 100BDCBF _ 50
|
||||
push esi ; 100BDCC0 _ 56
|
||||
call ?_25164 ; 100BDCC1 _ E8, FFFFF8BA
|
||||
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
|
||||
@ -836,7 +851,7 @@ DecodeFLCFrame LABEL NEAR
|
||||
push ecx ; 100BDD02 _ 51
|
||||
push eax ; 100BDD03 _ 50
|
||||
push edx ; 100BDD04 _ 52
|
||||
call ?_25180 ; 100BDD05 _ E8, FFFFFA56
|
||||
call FUN_100bd760 ; 100BDD05 _ E8, FFFFFA56
|
||||
add esp, 24 ; 100BDD0A _ 83. C4, 18
|
||||
?_25235:ret ; 100BDD0D _ C3
|
||||
|
||||
|
||||
BIN
3rdparty/flic/flic.lib
vendored
BIN
3rdparty/flic/flic.lib
vendored
Binary file not shown.
462
CMakeLists.txt
462
CMakeLists.txt
@ -16,136 +16,115 @@ if (MSVC)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
set(lego1_targets)
|
||||
macro(register_lego1_target __target)
|
||||
list(APPEND lego1_targets ${__target})
|
||||
endmacro()
|
||||
|
||||
message(STATUS "MSVC for decompilation: ${MSVC_FOR_DECOMP}")
|
||||
|
||||
option(ISLE_BUILD_APP "Build ISLE.EXE application" ON)
|
||||
option(ISLE_USE_SMARTHEAP "Build with SmartHeap" ${MSVC_FOR_DECOMP})
|
||||
option(ISLE_USE_DX5 "Build with internal DirectX 5 SDK" ON)
|
||||
|
||||
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/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/legocachesound.cpp
|
||||
LEGO1/lego/legoomni/src/audio/legoloadcachesoundpresenter.cpp
|
||||
LEGO1/lego/legoomni/src/audio/legosoundmanager.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/legostream.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/legoentity.cpp
|
||||
LEGO1/lego/legoomni/src/entity/legoentitypresenter.cpp
|
||||
LEGO1/lego/legoomni/src/entity/legojetski.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/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/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/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
|
||||
add_library(DirectX5::DirectX5 INTERFACE IMPORTED)
|
||||
target_include_directories(DirectX5::DirectX5 INTERFACE "${CMAKE_SOURCE_DIR}/3rdparty/dx5/inc")
|
||||
target_link_directories(DirectX5::DirectX5 INTERFACE "${CMAKE_SOURCE_DIR}/3rdparty/dx5/lib")
|
||||
|
||||
add_library(Smacker::Smacker STATIC IMPORTED)
|
||||
set_property(TARGET Smacker::Smacker PROPERTY IMPORTED_LOCATION "${CMAKE_SOURCE_DIR}/3rdparty/smacker/smack.lib")
|
||||
set_property(TARGET Smacker::Smacker PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_SOURCE_DIR}/3rdparty/smacker")
|
||||
|
||||
add_library(FLIC::FLIC STATIC IMPORTED)
|
||||
set_property(TARGET FLIC::FLIC PROPERTY IMPORTED_LOCATION "${CMAKE_SOURCE_DIR}/3rdparty/flic/flic.lib")
|
||||
set_property(TARGET FLIC::FLIC PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_SOURCE_DIR}/3rdparty/flic")
|
||||
|
||||
add_library(Vec::Vec INTERFACE IMPORTED)
|
||||
target_include_directories(Vec::Vec INTERFACE "${CMAKE_SOURCE_DIR}/3rdparty/vec")
|
||||
|
||||
add_library(SmartHeap::SmartHeap STATIC IMPORTED)
|
||||
set_property(TARGET SmartHeap::SmartHeap PROPERTY IMPORTED_LOCATION "${CMAKE_SOURCE_DIR}/3rdparty/smartheap/SHLW32MT.LIB")
|
||||
set_property(TARGET SmartHeap::SmartHeap PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_SOURCE_DIR}/3rdparty/smartheap")
|
||||
set_property(TARGET SmartHeap::SmartHeap PROPERTY INTERFACE_COMPILE_OPTIONS "/FI${CMAKE_SOURCE_DIR}/3rdparty/smartheap/SMRTHEAP.HPP")
|
||||
|
||||
add_library(tglrl STATIC
|
||||
LEGO1/tgl/d3drm/camera.cpp
|
||||
LEGO1/tgl/d3drm/device.cpp
|
||||
LEGO1/tgl/d3drm/group.cpp
|
||||
LEGO1/tgl/d3drm/light.cpp
|
||||
LEGO1/tgl/d3drm/mesh.cpp
|
||||
LEGO1/tgl/d3drm/renderer.cpp
|
||||
LEGO1/tgl/d3drm/texture.cpp
|
||||
LEGO1/tgl/d3drm/unk.cpp
|
||||
LEGO1/tgl/d3drm/view.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/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
|
||||
LEGO1/lego/sources/roi/legoroi.cpp
|
||||
LEGO1/main.cpp
|
||||
LEGO1/mxdirectx/mxdirect3d.cpp
|
||||
LEGO1/mxdirectx/mxdirectdraw.cpp
|
||||
LEGO1/mxgeometry/mxgeometry3d.cpp
|
||||
LEGO1/mxgeometry/mxmatrix.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
|
||||
@ -227,61 +206,165 @@ add_library(lego1 SHARED
|
||||
LEGO1/omni/src/video/mxvideoparam.cpp
|
||||
LEGO1/omni/src/video/mxvideoparamflags.cpp
|
||||
LEGO1/omni/src/video/mxvideopresenter.cpp
|
||||
LEGO1/realtime/matrix.cpp
|
||||
LEGO1/realtime/orientableroi.cpp
|
||||
LEGO1/realtime/realtime.cpp
|
||||
LEGO1/realtime/realtimeview.cpp
|
||||
LEGO1/realtime/vector.cpp
|
||||
LEGO1/tgl/d3drm/camera.cpp
|
||||
LEGO1/tgl/d3drm/device.cpp
|
||||
LEGO1/tgl/d3drm/group.cpp
|
||||
LEGO1/tgl/d3drm/light.cpp
|
||||
LEGO1/tgl/d3drm/mesh.cpp
|
||||
LEGO1/tgl/d3drm/renderer.cpp
|
||||
LEGO1/tgl/d3drm/texture.cpp
|
||||
LEGO1/tgl/d3drm/unk.cpp
|
||||
LEGO1/tgl/d3drm/view.cpp
|
||||
LEGO1/viewmanager/viewlodlist.cpp
|
||||
LEGO1/viewmanager/viewmanager.cpp
|
||||
LEGO1/viewmanager/viewroi.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)
|
||||
target_compile_definitions(lego1 PRIVATE DIRECTINPUT_VERSION=0x0500)
|
||||
endif()
|
||||
|
||||
target_include_directories(lego1 PRIVATE "${CMAKE_SOURCE_DIR}/util")
|
||||
target_include_directories(lego1 PRIVATE "${CMAKE_SOURCE_DIR}/LEGO1")
|
||||
target_include_directories(lego1 PRIVATE "${CMAKE_SOURCE_DIR}/LEGO1/omni/include")
|
||||
target_include_directories(lego1 PRIVATE "${CMAKE_SOURCE_DIR}/LEGO1/lego/sources")
|
||||
target_include_directories(lego1 PRIVATE "${CMAKE_SOURCE_DIR}/LEGO1/lego/legoomni/include")
|
||||
|
||||
# Additional include directories
|
||||
target_include_directories(lego1 PUBLIC "${CMAKE_SOURCE_DIR}/3rdparty/vec")
|
||||
target_include_directories(lego1 PRIVATE "${CMAKE_SOURCE_DIR}/3rdparty/flic")
|
||||
target_include_directories(lego1 PRIVATE "${CMAKE_SOURCE_DIR}/3rdparty/smacker")
|
||||
|
||||
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)
|
||||
if (MSVC)
|
||||
target_sources(lego1 PRIVATE LEGO1/LegoOmni.def)
|
||||
else()
|
||||
target_sources(lego1 PRIVATE LEGO1/LegoOmni.mingw.def)
|
||||
endif()
|
||||
|
||||
# Use internal DirectX 5 if required
|
||||
if (ISLE_USE_DX5)
|
||||
target_include_directories(lego1 PRIVATE "${CMAKE_SOURCE_DIR}/3rdparty/dx5/inc")
|
||||
target_link_directories(lego1 PRIVATE "${CMAKE_SOURCE_DIR}/3rdparty/dx5/lib")
|
||||
endif()
|
||||
|
||||
target_link_directories(lego1 PRIVATE "${CMAKE_SOURCE_DIR}/3rdparty/smacker")
|
||||
target_link_directories(lego1 PRIVATE "${CMAKE_SOURCE_DIR}/3rdparty/flic")
|
||||
target_include_directories(lego1 PUBLIC "${CMAKE_SOURCE_DIR}/util")
|
||||
target_include_directories(lego1 PUBLIC "${CMAKE_SOURCE_DIR}/LEGO1")
|
||||
target_include_directories(lego1 PUBLIC "${CMAKE_SOURCE_DIR}/LEGO1/omni/include")
|
||||
target_include_directories(lego1 PUBLIC "${CMAKE_SOURCE_DIR}/LEGO1/lego/sources")
|
||||
target_include_directories(lego1 PUBLIC "${CMAKE_SOURCE_DIR}/LEGO1/lego/legoomni/include")
|
||||
|
||||
# Link libraries
|
||||
target_link_libraries(lego1 PRIVATE ddraw dsound dinput dxguid winmm d3drm smack flic)
|
||||
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
|
||||
set_property(TARGET lego1 PROPERTY OUTPUT_NAME LEGO1)
|
||||
@ -295,19 +378,8 @@ if (ISLE_BUILD_APP)
|
||||
ISLE/define.cpp
|
||||
)
|
||||
|
||||
target_compile_definitions(isle PRIVATE ISLE_APP)
|
||||
|
||||
target_include_directories(isle PRIVATE "${CMAKE_SOURCE_DIR}/util")
|
||||
target_include_directories(isle PRIVATE "${CMAKE_SOURCE_DIR}/LEGO1")
|
||||
target_include_directories(isle PRIVATE "${CMAKE_SOURCE_DIR}/LEGO1/omni/include")
|
||||
target_include_directories(isle PRIVATE "${CMAKE_SOURCE_DIR}/LEGO1/lego/sources")
|
||||
target_include_directories(isle PRIVATE "${CMAKE_SOURCE_DIR}/LEGO1/lego/legoomni/include")
|
||||
|
||||
# Use internal DirectX 5 if required
|
||||
if (ISLE_USE_DX5)
|
||||
target_include_directories(isle PRIVATE "${CMAKE_SOURCE_DIR}/3rdparty/dx5/inc")
|
||||
target_link_directories(isle PRIVATE "${CMAKE_SOURCE_DIR}/3rdparty/dx5/lib")
|
||||
endif()
|
||||
target_link_libraries(isle PRIVATE $<$<BOOL:${ISLE_USE_DX5}>:DirectX5::DirectX5>)
|
||||
|
||||
if (ISLE_USE_SMARTHEAP)
|
||||
target_link_libraries(isle PRIVATE SmartHeap::SmartHeap)
|
||||
@ -323,15 +395,19 @@ endif()
|
||||
|
||||
if (MSVC)
|
||||
if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL "15")
|
||||
target_compile_definitions(lego1 PRIVATE _CRT_SECURE_NO_WARNINGS)
|
||||
if (ISLE_BUILD_APP)
|
||||
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")
|
||||
target_compile_options(lego1 PRIVATE "-Zc:__cplusplus")
|
||||
if (ISLE_BUILD_APP)
|
||||
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()
|
||||
@ -350,8 +426,13 @@ if (MSVC_FOR_DECOMP)
|
||||
# They ensure a recompilation that can be byte/instruction accurate to the original binaries.
|
||||
if (ISLE_BUILD_APP)
|
||||
target_compile_options(isle PRIVATE "/MT$<$<CONFIG:Debug>:d>")
|
||||
target_link_options(isle PRIVATE "/OPT:REF")
|
||||
endif()
|
||||
|
||||
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_DEBUG "/Gm /Zi /Od /D \"_DEBUG\"")
|
||||
@ -365,6 +446,8 @@ if (MSVC_FOR_DECOMP)
|
||||
set(CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO "/incremental:no /debug")
|
||||
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_DEBUG "/incremental:yes /debug")
|
||||
set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "/incremental:no")
|
||||
@ -373,12 +456,17 @@ if (MSVC_FOR_DECOMP)
|
||||
|
||||
# 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)
|
||||
set_property(GLOBAL PROPERTY JOB_POOLS "msvc_lego=1;msvc_lego1=1")
|
||||
set_property(TARGET isle PROPERTY JOB_POOL_COMPILE msvc_lego)
|
||||
set_property(TARGET isle PROPERTY JOB_POOL_LINK msvc_lego)
|
||||
set_property(TARGET lego1 PROPERTY JOB_POOL_COMPILE msvc_lego1)
|
||||
set_property(TARGET lego1 PROPERTY JOB_POOL_LINK msvc_lego1)
|
||||
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()
|
||||
|
||||
|
||||
@ -52,7 +52,15 @@ IsleApp::IsleApp()
|
||||
m_frameDelta = 10;
|
||||
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());
|
||||
#endif
|
||||
m_videoParam.Flags().Set16Bit(MxDirectDraw::GetPrimaryBitDepth() == 16);
|
||||
|
||||
m_windowHandle = NULL;
|
||||
|
||||
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
|
||||
170
LEGO1/LegoOmni.mingw.def
Normal file
170
LEGO1/LegoOmni.mingw.def
Normal file
@ -0,0 +1,170 @@
|
||||
; 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
|
||||
_ZN10LegoEntityD0Ev
|
||||
_ZN10LegoEntityD1Ev
|
||||
_ZN10LegoEntityD2Ev
|
||||
_ZN10MxDSActionC1Ev
|
||||
_ZN10MxDSActionC2Ev
|
||||
_ZN10MxDSActionD0Ev
|
||||
_ZN10MxDSActionD1Ev
|
||||
_ZN10MxDSActionD2Ev
|
||||
_ZN10MxDSObject13SetObjectNameEPKc
|
||||
_ZN10MxStreamer4OpenEPKct
|
||||
_ZN10MxStreamer5CloseEPKc
|
||||
_ZN11MxPresenter10DoneTickleEv
|
||||
_ZN11MxPresenter10ParseExtraEv
|
||||
_ZN11MxPresenter11StartActionEP18MxStreamControllerP10MxDSAction
|
||||
_ZN11MxPresenter4InitEv
|
||||
_ZN11MxPresenter6EnableEh
|
||||
_ZN11MxPresenter6TickleEv
|
||||
_ZN11MxPresenter9EndActionEv
|
||||
_ZN11MxPresenterD0Ev
|
||||
_ZN11MxPresenterD1Ev
|
||||
_ZN11MxPresenterD2Ev
|
||||
_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_
|
||||
@ -22,6 +22,9 @@ class Act1State : public LegoState {
|
||||
return !strcmp(p_name, Act1State::ClassName()) || LegoState::IsA(p_name);
|
||||
};
|
||||
|
||||
virtual MxBool SetFlag() override; // vtable+0x18
|
||||
virtual 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 void SetUnknown21(MxS16 p_unk0x21) { m_unk0x21 = p_unk0x21; }
|
||||
|
||||
@ -26,6 +26,8 @@ class Act2Brick : public LegoPathActor {
|
||||
return !strcmp(p_name, Act2Brick::ClassName()) || LegoEntity::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual MxS32 VTable0x94() override; // vtable+0x94
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1007a450
|
||||
// Act2Brick::`scalar deleting destructor'
|
||||
};
|
||||
|
||||
@ -11,6 +11,9 @@ class Act3 : public LegoWorld {
|
||||
|
||||
virtual ~Act3() override; // vtable+00
|
||||
|
||||
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x4
|
||||
virtual MxResult Tickle() override; // vtable+0x8
|
||||
|
||||
// FUNCTION: LEGO1 0x10072510
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
@ -24,12 +27,25 @@ class Act3 : public LegoWorld {
|
||||
return !strcmp(p_name, Act3::ClassName()) || LegoWorld::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
|
||||
virtual void Destroy(MxBool p_fromDestructor) override; // vtable+0x1c
|
||||
virtual void ReadyWorld() override; // vtable+0x50
|
||||
virtual MxBool VTable0x5c() override; // vtable+0x5c
|
||||
virtual void VTable0x60() override; // vtable+0x60
|
||||
virtual MxBool VTable0x64() override; // vtable+0x64
|
||||
virtual void VTable0x68(MxBool p_add) 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
|
||||
|
||||
@ -7,12 +7,23 @@
|
||||
class Act3Shark : public LegoAnimActor {
|
||||
public:
|
||||
// FUNCTION: LEGO1 0x100430c0
|
||||
inline virtual const char* ClassName() const override
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f03a0
|
||||
return "Act3Shark";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1001a130
|
||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, Act3Shark::ClassName()) || LegoAnimActor::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual void ParseAction(char*) override; // vtable+0x20
|
||||
virtual void SetWorldSpeed(MxFloat p_worldSpeed) override; // vtable+0x30
|
||||
virtual void VTable0x70(float p_float) override; // vtable+0x70
|
||||
virtual void VTable0x74(Matrix4& p_transform) override; // vtable+0x74
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10043020
|
||||
// Act3Shark::`scalar deleting destructor'
|
||||
};
|
||||
|
||||
@ -9,6 +9,9 @@ class Ambulance : public IslePathActor {
|
||||
public:
|
||||
Ambulance();
|
||||
|
||||
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||
virtual MxResult Tickle() override; // vtable+0x08
|
||||
|
||||
// FUNCTION: LEGO1 0x10035fa0
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
@ -22,6 +25,14 @@ class Ambulance : public IslePathActor {
|
||||
return !strcmp(p_name, Ambulance::ClassName()) || IslePathActor::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
|
||||
virtual void Destroy(MxBool p_fromDestructor) override; // vtable+0x1c
|
||||
virtual void VTable0x70(float p_float) override; // vtable+0x70
|
||||
virtual MxU32 VTable0xcc() override; // vtable+0xcc
|
||||
virtual MxU32 VTable0xd4(MxType17NotificationParam& p_param) override; // vtable+0xd4
|
||||
virtual MxU32 VTable0xdc(MxType19NotificationParam&) override; // vtable+0xdc
|
||||
virtual void VTable0xe4() override; // vtable+0xe4
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10036130
|
||||
// Ambulance::`scalar deleting destructor'
|
||||
|
||||
|
||||
@ -22,6 +22,8 @@ class AmbulanceMissionState : public LegoState {
|
||||
return !strcmp(p_name, AmbulanceMissionState::ClassName()) || LegoState::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual MxResult VTable0x1c(LegoFile* p_legoFile) override; // vtable+0x1c
|
||||
|
||||
inline MxU16 GetColor(MxU8 p_id)
|
||||
{
|
||||
switch (p_id) {
|
||||
|
||||
@ -23,8 +23,8 @@ class AnimState : public LegoState {
|
||||
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
|
||||
virtual MxBool SetFlag() override; // vtable+0x18
|
||||
virtual MxResult VTable0x1c(LegoFile* p_legoFile) override; // vtable+0x1C
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10065130
|
||||
// AnimState::`scalar deleting destructor'
|
||||
|
||||
@ -23,6 +23,11 @@ class Bike : public IslePathActor {
|
||||
return !strcmp(p_name, Bike::ClassName()) || IslePathActor::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
|
||||
virtual MxU32 VTable0xcc() override; // vtable+0xcc
|
||||
virtual MxU32 VTable0xd4(MxType17NotificationParam& p_param) override; // vtable+0xd4
|
||||
virtual void VTable0xe4() override; // vtable+0xe4
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10076880
|
||||
// Bike::`scalar deleting destructor'
|
||||
|
||||
|
||||
@ -7,6 +7,8 @@
|
||||
// VTABLE: LEGO1 0x100d6790
|
||||
class BumpBouy : public LegoAnimActor {
|
||||
public:
|
||||
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x4
|
||||
|
||||
// FUNCTION: LEGO1 0x100274e0
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
@ -20,6 +22,11 @@ class BumpBouy : public LegoAnimActor {
|
||||
return !strcmp(p_name, BumpBouy::ClassName()) || LegoAnimActor::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual void ParseAction(char*) override; // vtable+0x20
|
||||
virtual void SetWorldSpeed(MxFloat p_worldSpeed) override; // vtable+0x30
|
||||
virtual void VTable0x70(float p_float) override; // vtable+0x70
|
||||
virtual void VTable0x74(Matrix4& p_transform) override; // vtable+0x74
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10027490
|
||||
// BumpBouy::`scalar deleting destructor'
|
||||
};
|
||||
|
||||
@ -23,6 +23,14 @@ class CarRace : public LegoRace {
|
||||
return !strcmp(p_name, CarRace::ClassName()) || LegoRace::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
|
||||
virtual void ReadyWorld() override; // vtable+0x50
|
||||
virtual MxBool VTable0x64() override; // vtable+0x64
|
||||
virtual undefined4 VTable0x6c(undefined4) override; // vtable+0x6c
|
||||
virtual undefined4 VTable0x70(undefined4) override; // vtable+0x70
|
||||
virtual undefined4 VTable0x74(undefined4) override; // vtable+0x74
|
||||
virtual undefined4 VTable0x78(undefined4) override; // vtable+0x78
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10016c70
|
||||
// CarRace::`scalar deleting destructor'
|
||||
|
||||
|
||||
@ -20,6 +20,10 @@ class Doors : public LegoPathActor {
|
||||
return !strcmp(p_name, Doors::ClassName()) || LegoPathActor::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual void ParseAction(char*) override; // vtable+0x20
|
||||
virtual void VTable0x70(float p_float) override; // vtable+0x70
|
||||
virtual MxS32 VTable0x94() override; // vtable+0x94
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1000e580
|
||||
// Doors::`scalar deleting destructor'
|
||||
};
|
||||
|
||||
@ -23,6 +23,13 @@ class DuneBuggy : public IslePathActor {
|
||||
return !strcmp(p_name, DuneBuggy::ClassName()) || IslePathActor::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
|
||||
virtual void VTable0x70(float p_float) override; // vtable+0x70
|
||||
virtual MxU32 VTable0xcc() override; // vtable+0xcc
|
||||
virtual MxU32 VTable0xd4(MxType17NotificationParam& p_param) override; // vtable+0xd4
|
||||
virtual MxU32 VTable0xdc(MxType19NotificationParam& p_param) override; // vtable+0xdc
|
||||
virtual void VTable0xe4() override; // vtable+0xe4
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10067dc0
|
||||
// DuneBuggy::`scalar deleting destructor'
|
||||
|
||||
|
||||
@ -27,7 +27,7 @@ class ElevatorBottom : public LegoWorld {
|
||||
}
|
||||
|
||||
virtual MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
|
||||
virtual void VTable0x50() override; // vtable+0x50
|
||||
virtual void ReadyWorld() override; // vtable+0x50
|
||||
|
||||
// FUNCTION: LEGO1 0x10017f10
|
||||
virtual MxBool VTable0x5c() override { return TRUE; } // vtable+0x5c
|
||||
|
||||
@ -29,6 +29,12 @@ class GasStation : public LegoWorld {
|
||||
return !strcmp(p_name, GasStation::ClassName()) || LegoWorld::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
|
||||
virtual void ReadyWorld() override; // vtable+0x50
|
||||
virtual MxBool VTable0x5c() override; // vtable+0x5c
|
||||
virtual MxBool VTable0x64() override; // vtable+0x64
|
||||
virtual void VTable0x68(MxBool p_add) override; // vtable+0x68
|
||||
|
||||
// SYNTHETIC: LEGO1 0x100048a0
|
||||
// GasStation::`scalar deleting destructor'
|
||||
|
||||
|
||||
@ -22,6 +22,8 @@ class GasStationState : public LegoState {
|
||||
return !strcmp(p_name, GasStationState::ClassName()) || LegoState::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual MxResult VTable0x1c(LegoFile* p_legoFile) override; // vtable+0x1c
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10006290
|
||||
// GasStationState::`scalar deleting destructor'
|
||||
|
||||
|
||||
@ -38,8 +38,8 @@ class Helicopter : public IslePathActor {
|
||||
}
|
||||
|
||||
virtual MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
|
||||
void VTable0x70(float p_float) override; // vtable+0x70
|
||||
void VTable0x74(Matrix4& p_transform) override; // vtable+0x74
|
||||
virtual void VTable0x70(float p_float) override; // vtable+0x70
|
||||
virtual void VTable0x74(Matrix4& 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
|
||||
|
||||
@ -21,6 +21,16 @@ class HelicopterState : public LegoState {
|
||||
return !strcmp(p_name, HelicopterState::ClassName()) || LegoState::IsA(p_name);
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1000e0b0
|
||||
virtual MxBool VTable0x14() override { return FALSE; }; // vtable+0x14
|
||||
|
||||
// FUNCTION: LEGO1 0x1000e0c0
|
||||
virtual MxBool SetFlag() override
|
||||
{
|
||||
m_unk0x8 = 0;
|
||||
return TRUE;
|
||||
}; // vtable+0x18
|
||||
|
||||
inline void SetUnknown8(MxU32 p_unk0x8) { m_unk0x8 = p_unk0x8; }
|
||||
inline MxU32 GetUnkown8() { return m_unk0x8; }
|
||||
|
||||
|
||||
@ -25,6 +25,10 @@ class HistoryBook : public LegoWorld {
|
||||
return !strcmp(p_name, HistoryBook::ClassName()) || LegoWorld::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
|
||||
virtual void ReadyWorld() override; // vtable+0x50
|
||||
virtual MxBool VTable0x64() override; // vtable+0x64
|
||||
|
||||
// SYNTHETIC: LEGO1 0x100824b0
|
||||
// HistoryBook::`scalar deleting destructor'
|
||||
};
|
||||
|
||||
@ -12,6 +12,7 @@ class Hospital : public LegoWorld {
|
||||
virtual ~Hospital() override; // vtable+0x0
|
||||
|
||||
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||
virtual MxResult Tickle() override; // vtable+0x08
|
||||
|
||||
// FUNCTION: LEGO1 0x100746b0
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
@ -26,6 +27,12 @@ class Hospital : public LegoWorld {
|
||||
return !strcmp(p_name, Hospital::ClassName()) || LegoWorld::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
|
||||
virtual void ReadyWorld() override; // vtable+0x50
|
||||
virtual MxBool VTable0x5c() override; // vtable+0x5c
|
||||
virtual MxBool VTable0x64() override; // vtable+0x64
|
||||
virtual void VTable0x68(MxBool p_add) override; // vtable+0x68
|
||||
|
||||
// SYNTHETIC: LEGO1 0x100747d0
|
||||
// Hospital::`scalar deleting destructor'
|
||||
|
||||
|
||||
@ -23,6 +23,8 @@ class HospitalState : public LegoState {
|
||||
return !strcmp(p_name, HospitalState::ClassName()) || LegoState::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual MxResult VTable0x1c(LegoFile* p_legoFile) override; // vtable+0x1c
|
||||
|
||||
// SYNTHETIC: LEGO1 0x100764c0
|
||||
// HospitalState::`scalar deleting destructor'
|
||||
|
||||
|
||||
@ -5,13 +5,19 @@
|
||||
#include "radio.h"
|
||||
|
||||
class InfocenterState;
|
||||
class MxStillPresenter;
|
||||
|
||||
// SIZE 0x18
|
||||
struct InfocenterUnkDataEntry {
|
||||
struct InfocenterMapEntry {
|
||||
// FUNCTION: LEGO1 0x1006ec80
|
||||
InfocenterUnkDataEntry() {}
|
||||
InfocenterMapEntry() {}
|
||||
|
||||
undefined m_pad[0x18];
|
||||
MxStillPresenter* m_presenter; // 0x00
|
||||
undefined4 m_unk0x04; // 0x04
|
||||
undefined4 m_unk0x08; // 0x08
|
||||
undefined4 m_unk0x0c; // 0x0c
|
||||
undefined4 m_unk0x10; // 0x10
|
||||
undefined4 m_unk0x14; // 0x14
|
||||
};
|
||||
|
||||
// VTABLE: LEGO1 0x100d9338
|
||||
@ -31,6 +37,22 @@ class Infocenter : public LegoWorld {
|
||||
enum InfomainScript {
|
||||
c_noInfomain = -1,
|
||||
|
||||
c_leftArrowCtl = 1,
|
||||
c_rightArrowCtl = 2,
|
||||
c_infoCtl = 3,
|
||||
c_boatCtl = 10,
|
||||
c_raceCtl = 11,
|
||||
c_pizzaCtl = 12,
|
||||
c_gasCtl = 13,
|
||||
c_medCtl = 14,
|
||||
c_copCtl = 15,
|
||||
c_radioCtl = 18,
|
||||
c_mamaCtl = 21,
|
||||
c_papaCtl = 22,
|
||||
c_pepperCtl = 23,
|
||||
c_nickCtl = 24,
|
||||
c_lauraCtl = 25,
|
||||
|
||||
c_welcomeDialogue = 500,
|
||||
c_goodJobDialogue = 501,
|
||||
|
||||
@ -127,7 +149,7 @@ class Infocenter : public LegoWorld {
|
||||
}
|
||||
|
||||
virtual MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
|
||||
virtual void VTable0x50() override; // vtable+0x50
|
||||
virtual void ReadyWorld() override; // vtable+0x50
|
||||
virtual MxBool VTable0x5c() override; // vtable+0x5c
|
||||
virtual MxBool VTable0x64() override; // vtable+0x64
|
||||
virtual void VTable0x68(MxBool p_add) override; // vtable+0x68
|
||||
@ -167,9 +189,9 @@ class Infocenter : public LegoWorld {
|
||||
Cutscene m_currentCutscene; // 0x108
|
||||
Radio m_radio; // 0x10c
|
||||
undefined4 m_unk0x11c; // 0x11c
|
||||
InfocenterUnkDataEntry m_entries[7]; // 0x120
|
||||
InfocenterMapEntry m_mapAreas[7]; // 0x120
|
||||
MxS16 m_unk0x1c8; // 0x1c8
|
||||
undefined4 m_unk0x1cc; // 0x1cc
|
||||
MxStillPresenter* m_frameHotBitmap; // 0x1cc
|
||||
MxS16 m_infoManDialogueTimer; // 0x1d0
|
||||
MxS16 m_bookAnimationTimer; // 0x1d2
|
||||
MxU16 m_unk0x1d4; // 0x1d4
|
||||
|
||||
@ -26,7 +26,7 @@ class InfocenterDoor : public LegoWorld {
|
||||
}
|
||||
|
||||
virtual MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
|
||||
virtual void VTable0x50() override; // vtable+0x50
|
||||
virtual void ReadyWorld() override; // vtable+0x50
|
||||
|
||||
// FUNCTION: LEGO1 0x100377a0
|
||||
virtual MxBool VTable0x5c() override { return TRUE; } // vtable+0x5c
|
||||
|
||||
@ -20,7 +20,6 @@ class Act1State;
|
||||
|
||||
// VTABLE: LEGO1 0x100d6fb8
|
||||
// SIZE 0x140
|
||||
// Radio at 0x12c
|
||||
class Isle : public LegoWorld {
|
||||
public:
|
||||
Isle();
|
||||
@ -41,8 +40,8 @@ class Isle : public LegoWorld {
|
||||
}
|
||||
|
||||
virtual MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
|
||||
virtual void VTable0x50() override; // vtable+50
|
||||
virtual void VTable0x58(MxCore* p_object) override; // vtable+58
|
||||
virtual void ReadyWorld() override; // vtable+50
|
||||
virtual void Add(MxCore* p_object) override; // vtable+58
|
||||
// FUNCTION: LEGO1 0x10030900
|
||||
virtual MxBool VTable0x5c() override { return TRUE; } // vtable+5c
|
||||
// FUNCTION: LEGO1 0x10033170
|
||||
|
||||
@ -6,6 +6,8 @@
|
||||
// VTABLE: LEGO1 0x100d5178
|
||||
class IsleActor : public LegoActor {
|
||||
public:
|
||||
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x4
|
||||
|
||||
// FUNCTION: LEGO1 0x1000e660
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
@ -18,6 +20,8 @@ class IsleActor : public LegoActor {
|
||||
{
|
||||
return !strcmp(p_name, IsleActor::ClassName()) || LegoActor::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
|
||||
};
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1000e940
|
||||
|
||||
@ -17,6 +17,8 @@ class IslePathActor : public LegoPathActor {
|
||||
// FUNCTION: LEGO1 0x10002e10
|
||||
inline virtual ~IslePathActor() override { IslePathActor::Destroy(TRUE); } // vtable+0x0
|
||||
|
||||
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x4
|
||||
|
||||
// FUNCTION: LEGO1 0x10002ea0
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
|
||||
@ -3,6 +3,7 @@
|
||||
|
||||
#include "decomp.h"
|
||||
#include "islepathactor.h"
|
||||
#include "mxtype17notificationparam.h"
|
||||
|
||||
// VTABLE: LEGO1 0x100d9ec8
|
||||
// SIZE 0x164
|
||||
@ -23,6 +24,12 @@ class Jetski : public IslePathActor {
|
||||
return !strcmp(p_name, Jetski::ClassName()) || IslePathActor::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
|
||||
virtual void VTable0x70(float p_float) override; // vtable+0x70
|
||||
virtual MxU32 VTable0xcc() override; // vtable+0xcc
|
||||
virtual MxU32 VTable0xd4(MxType17NotificationParam&) override; // vtable+0xd4
|
||||
virtual void VTable0xe4() override; // vtable+0xe4
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1007e5c0
|
||||
// Jetski::`scalar deleting destructor'
|
||||
|
||||
|
||||
@ -10,6 +10,9 @@ class JukeBox : public LegoWorld {
|
||||
public:
|
||||
JukeBox();
|
||||
|
||||
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x4
|
||||
virtual MxResult Tickle() override; // vtable+0x8
|
||||
|
||||
// FUNCTION: LEGO1 0x1005d6f0
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
@ -23,6 +26,12 @@ class JukeBox : public LegoWorld {
|
||||
return !strcmp(p_name, JukeBox::ClassName()) || LegoWorld::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
|
||||
virtual void ReadyWorld() override; // vtable+0x50
|
||||
virtual MxBool VTable0x5c() override; // vtable+0x5c
|
||||
virtual MxBool VTable0x64() override; // vtable+0x64
|
||||
virtual void VTable0x68(MxBool p_add) override; // vtable+0x68
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1005d810
|
||||
// JukeBox::`scalar deleting destructor'
|
||||
enum JukeBoxScript {
|
||||
|
||||
@ -10,6 +10,8 @@ class JukeBoxEntity : public LegoEntity {
|
||||
JukeBoxEntity();
|
||||
virtual ~JukeBoxEntity() override; // vtable+0x0
|
||||
|
||||
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x4
|
||||
|
||||
// FUNCTION: LEGO1 0x10085cc0
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
|
||||
@ -20,6 +20,11 @@ class Lego3DWavePresenter : public MxWavePresenter {
|
||||
return !strcmp(p_name, Lego3DWavePresenter::ClassName()) || MxWavePresenter::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual void StartingTickle() override; // vtable+0x1c
|
||||
virtual void StreamingTickle() override; // vtable+0x20
|
||||
virtual MxResult AddToManager() override; // vtable+0x34
|
||||
virtual void Destroy() override; // vtable+0x38
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1000f4b0
|
||||
// Lego3DWavePresenter::`scalar deleting destructor'
|
||||
};
|
||||
|
||||
@ -3,10 +3,21 @@
|
||||
|
||||
#include "legocarraceactor.h"
|
||||
#include "legopathactor.h"
|
||||
#include "legoworld.h"
|
||||
|
||||
// VTABLE: LEGO1 0x100d82e0
|
||||
// SIZE 0x1154
|
||||
class LegoAct2 : public LegoWorld {
|
||||
|
||||
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||
virtual MxResult Tickle() override; // vtable+0x08
|
||||
virtual MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
|
||||
virtual void ReadyWorld() override; // vtable+0x50
|
||||
virtual MxBool VTable0x5c() override; // vtable+0x5c
|
||||
virtual void VTable0x60() override; // vtable+0x60
|
||||
virtual MxBool VTable0x64() override; // vtable+0x64
|
||||
virtual void VTable0x68(MxBool p_add) override; // vtable+0x68
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1004fe20
|
||||
// LegoAct2::`scalar deleting destructor'
|
||||
};
|
||||
|
||||
@ -20,6 +20,8 @@ class LegoAct2State : public LegoState {
|
||||
return !strcmp(p_name, LegoAct2State::ClassName()) || LegoState::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual MxBool VTable0x14() override; // vtable+0x14
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1000e040
|
||||
// LegoAct2State::`scalar deleting destructor'
|
||||
};
|
||||
|
||||
@ -24,6 +24,9 @@ class LegoActor : public LegoEntity {
|
||||
return !strcmp(p_name, LegoActor::ClassName()) || LegoEntity::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual void ParseAction(char*) override; // vtable+0x20
|
||||
virtual void SetROI(LegoROI* p_roi, MxBool p_bool1, MxBool p_bool2) override; // vtable+0x24
|
||||
|
||||
// FUNCTION: LEGO1 0x10002cc0
|
||||
virtual MxFloat VTable0x50() { return m_unk0x68; } // vtable+0x50
|
||||
// FUNCTION: LEGO1 0x10002cd0
|
||||
|
||||
@ -32,7 +32,7 @@ class LegoAnimationManager : public MxCore {
|
||||
void FUN_1005f720(undefined4);
|
||||
void FUN_10064670(MxBool);
|
||||
|
||||
__declspec(dllexport) static void configureLegoAnimationManager(MxS32 p_legoAnimationManagerConfig);
|
||||
static void configureLegoAnimationManager(MxS32 p_legoAnimationManagerConfig);
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1005ed10
|
||||
// LegoAnimationManager::`scalar deleting destructor'
|
||||
|
||||
@ -9,6 +9,8 @@ class LegoAnimMMPresenter : public MxCompositePresenter {
|
||||
public:
|
||||
LegoAnimMMPresenter();
|
||||
|
||||
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||
|
||||
// FUNCTION: LEGO1 0x1004a950
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
@ -22,6 +24,16 @@ class LegoAnimMMPresenter : public MxCompositePresenter {
|
||||
return !strcmp(p_name, LegoAnimMMPresenter::ClassName()) || MxCompositePresenter::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual void ReadyTickle() override; // vtable+0x18
|
||||
virtual void StartingTickle() override; // vtable+0x1c
|
||||
virtual void StreamingTickle() override; // vtable+0x20
|
||||
virtual void RepeatingTickle() override; // vtable+0x24
|
||||
virtual void DoneTickle() override; // vtable+0x2c
|
||||
virtual void ParseExtra() override; // vtable+0x30
|
||||
virtual MxResult StartAction(MxStreamController* p_controller, MxDSAction* p_action) override; // vtable+0x3c
|
||||
virtual void EndAction() override; // vtable+0x40
|
||||
virtual void VTable0x60(MxPresenter* p_presenter) override; // vtable+0x60
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1004aa40
|
||||
// LegoAnimMMPresenter::`scalar deleting destructor'
|
||||
};
|
||||
|
||||
@ -1,11 +1,12 @@
|
||||
#ifndef LEGOANIMPRESENTER_H
|
||||
#define LEGOANIMPRESENTER_H
|
||||
|
||||
#include "lego/sources/misc/legostorage.h"
|
||||
#include "lego/sources/misc/legotree.h"
|
||||
#include "mxgeometry/mxgeometry3d.h"
|
||||
#include "mxvideopresenter.h"
|
||||
|
||||
class LegoWorld;
|
||||
class LegoMemoryStream;
|
||||
class LegoAnimClass;
|
||||
|
||||
// VTABLE: LEGO1 0x100d90c8
|
||||
@ -31,16 +32,20 @@ class LegoAnimPresenter : public MxVideoPresenter {
|
||||
virtual void ReadyTickle() override; // vtable+0x18
|
||||
virtual void StartingTickle() override; // vtable+0x1c
|
||||
virtual void StreamingTickle() override; // vtable+0x20
|
||||
virtual void DoneTickle() override; // vtable+0x2c
|
||||
virtual void ParseExtra() override; // vtable+0x30
|
||||
virtual MxResult AddToManager() override; // vtable+0x34
|
||||
virtual void Destroy() override; // vtable+0x38
|
||||
virtual MxResult StartAction(MxStreamController* p_controller, MxDSAction* p_action) override; // vtable+0x3c
|
||||
virtual void EndAction() override; // vtable+0x40
|
||||
virtual void PutFrame() override; // vtable+0x6c
|
||||
virtual MxResult VTable0x88(MxStreamChunk* p_chunk); // vtable+0x88
|
||||
|
||||
// 6 more virtual functions here
|
||||
inline LegoAnimClass* GetUnknown0x64() { return m_unk0x64; }
|
||||
|
||||
private:
|
||||
const char* GetActionObjectName();
|
||||
|
||||
protected:
|
||||
void Init();
|
||||
void Destroy(MxBool p_fromDestructor);
|
||||
|
||||
@ -71,34 +76,20 @@ class LegoAnimPresenter : public MxVideoPresenter {
|
||||
// SYNTHETIC: LEGO1 0x10068650
|
||||
// LegoAnimPresenter::`scalar deleting destructor'
|
||||
|
||||
// VTABLE: LEGO1 0x100db768
|
||||
// SIZE 0x08
|
||||
class LegoAnimClassBase {
|
||||
public:
|
||||
LegoAnimClassBase();
|
||||
virtual ~LegoAnimClassBase();
|
||||
|
||||
virtual void VTable0x4(); // vtable+0x04
|
||||
virtual void VTable0x8(); // vtable+0x08
|
||||
virtual void VTable0xc(); // vtable+0x0c
|
||||
|
||||
undefined4 m_unk0x4; // 0x04
|
||||
};
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10099de0
|
||||
// LegoAnimClassBase::`scalar deleting destructor'
|
||||
|
||||
// VTABLE: LEGO1 0x100db8d8
|
||||
// SIZE 0x18
|
||||
class LegoAnimClass : public LegoAnimClassBase {
|
||||
class LegoAnimClass : public LegoTree {
|
||||
public:
|
||||
LegoAnimClass();
|
||||
virtual ~LegoAnimClass() override;
|
||||
|
||||
virtual void VTable0x8() override; // vtable+0x08
|
||||
virtual void VTable0xc() override; // vtable+0x0c
|
||||
virtual MxResult VTable0x10(LegoMemoryStream* p_stream, MxS32); // vtable+0x10
|
||||
virtual LegoResult Write(LegoStorage* p_storage) override; // vtable+0x08
|
||||
virtual LegoTreeNodeData* CreateData() override; // vtable+0x0c
|
||||
virtual MxResult VTable0x10(LegoMemory* p_stream, MxS32); // vtable+0x10
|
||||
|
||||
inline MxLong GetUnknown0x8() { return m_unk0x8; }
|
||||
|
||||
private:
|
||||
MxLong m_unk0x8; // 0x08
|
||||
undefined4 m_unk0xc; // 0x0c
|
||||
undefined4 m_unk0x10; // 0x10
|
||||
|
||||
@ -7,7 +7,7 @@
|
||||
// SIZE 0x30
|
||||
class LegoBackgroundColor : public MxVariable {
|
||||
public:
|
||||
__declspec(dllexport) LegoBackgroundColor(const char* p_key, const char* p_value);
|
||||
LegoBackgroundColor(const char* p_key, const char* p_value);
|
||||
virtual void SetValue(const char* p_colorString) override;
|
||||
|
||||
private:
|
||||
|
||||
@ -10,6 +10,8 @@ class LegoBuildingManager : public MxCore {
|
||||
LegoBuildingManager();
|
||||
virtual ~LegoBuildingManager() override;
|
||||
|
||||
virtual MxResult Tickle() override; // vtable+0x08
|
||||
|
||||
// FUNCTION: LEGO1 0x1002f930
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
@ -17,9 +19,10 @@ class LegoBuildingManager : public MxCore {
|
||||
return "LegoBuildingManager";
|
||||
}
|
||||
|
||||
__declspec(dllexport) static void configureLegoBuildingManager(MxS32);
|
||||
static void configureLegoBuildingManager(MxS32);
|
||||
|
||||
void FUN_1002fa00();
|
||||
void FUN_1002fb30();
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1002f940
|
||||
// LegoBuildingManager::`scalar deleting destructor'
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
#ifndef LEGOCACHESOUND_H
|
||||
#define LEGOCACHESOUND_H
|
||||
|
||||
#include "decomp.h"
|
||||
#include "mxcore.h"
|
||||
|
||||
// VTABLE: LEGO1 0x100d4718
|
||||
@ -28,6 +29,8 @@ class LegoCacheSound : public MxCore {
|
||||
|
||||
private:
|
||||
void Init();
|
||||
|
||||
undefined m_padding0x08[0x80]; // 0x08
|
||||
};
|
||||
|
||||
#endif // LEGOCACHESOUND_H
|
||||
|
||||
104
LEGO1/lego/legoomni/include/legocachesoundlist.h
Normal file
104
LEGO1/lego/legoomni/include/legocachesoundlist.h
Normal file
@ -0,0 +1,104 @@
|
||||
#ifndef LEGOCACHESOUNDLIST_H
|
||||
#define LEGOCACHESOUNDLIST_H
|
||||
|
||||
#include "mxlist.h"
|
||||
#include "mxtypes.h"
|
||||
|
||||
class LegoCacheSound;
|
||||
|
||||
// VTABLE: LEGO1 0x100d63b0
|
||||
// class MxCollection<LegoCacheSound *>
|
||||
|
||||
// VTABLE: LEGO1 0x100d63c8
|
||||
// class MxList<LegoCacheSound *>
|
||||
|
||||
// VTABLE: LEGO1 0x100d63e0
|
||||
// class MxPtrList<LegoCacheSound>
|
||||
|
||||
// VTABLE: LEGO1 0x100d63f8
|
||||
// SIZE 0x18
|
||||
class LegoCacheSoundList : public MxPtrList<LegoCacheSound> {
|
||||
public:
|
||||
LegoCacheSoundList(MxBool p_ownership = FALSE) : MxPtrList<LegoCacheSound>(p_ownership) {}
|
||||
|
||||
// FUNCTION: LEGO1 0x1001e650
|
||||
virtual MxS8 Compare(LegoCacheSound* p_a, LegoCacheSound* p_b) override
|
||||
{
|
||||
return p_a == p_b ? 0 : p_a < p_b ? -1 : 1;
|
||||
}; // vtable+0x14
|
||||
};
|
||||
|
||||
// VTABLE: LEGO1 0x100d64a0
|
||||
// class MxListCursor<LegoCacheSound *>
|
||||
|
||||
// VTABLE: LEGO1 0x100d6500
|
||||
// class MxPtrListCursor<LegoCacheSound>
|
||||
|
||||
// VTABLE: LEGO1 0x100d6518
|
||||
// SIZE 0x10
|
||||
class LegoCacheSoundListCursor : public MxPtrListCursor<LegoCacheSound> {
|
||||
public:
|
||||
LegoCacheSoundListCursor(LegoCacheSoundList* p_list) : MxPtrListCursor<LegoCacheSound>(p_list){};
|
||||
};
|
||||
|
||||
// TEMPLATE: LEGO1 0x1001e670
|
||||
// MxCollection<LegoCacheSound *>::Compare
|
||||
|
||||
// TEMPLATE: LEGO1 0x1001e680
|
||||
// MxCollection<LegoCacheSound *>::~MxCollection<LegoCacheSound *>
|
||||
|
||||
// TEMPLATE: LEGO1 0x1001e6d0
|
||||
// MxCollection<LegoCacheSound *>::Destroy
|
||||
|
||||
// TEMPLATE: LEGO1 0x1001e6e0
|
||||
// MxList<LegoCacheSound *>::~MxList<LegoCacheSound *>
|
||||
|
||||
// TEMPLATE: LEGO1 0x1001e770
|
||||
// MxPtrList<LegoCacheSound>::Destroy
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1001e780
|
||||
// LegoCacheSoundList::`scalar deleting destructor'
|
||||
|
||||
// TEMPLATE: LEGO1 0x1001e7f0
|
||||
// MxPtrList<LegoCacheSound>::~MxPtrList<LegoCacheSound>
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1001e840
|
||||
// MxCollection<LegoCacheSound *>::`scalar deleting destructor'
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1001e8b0
|
||||
// MxList<LegoCacheSound *>::`scalar deleting destructor'
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1001e960
|
||||
// MxPtrList<LegoCacheSound>::`scalar deleting destructor'
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1001f350
|
||||
// LegoCacheSoundListCursor::`scalar deleting destructor'
|
||||
|
||||
// TEMPLATE: LEGO1 0x1001f3c0
|
||||
// MxPtrListCursor<LegoCacheSound>::~MxPtrListCursor<LegoCacheSound>
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1001f410
|
||||
// MxListCursor<LegoCacheSound *>::`scalar deleting destructor'
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1001f480
|
||||
// MxPtrListCursor<LegoCacheSound>::`scalar deleting destructor'
|
||||
|
||||
// TEMPLATE: LEGO1 0x1001f4f0
|
||||
// MxListCursor<LegoCacheSound *>::~MxListCursor<LegoCacheSound *>
|
||||
|
||||
// FUNCTION: LEGO1 0x1001f540
|
||||
// LegoCacheSoundListCursor::~LegoCacheSoundListCursor
|
||||
|
||||
// TEMPLATE: LEGO1 0x10020840
|
||||
// MxListCursor<LegoCacheSound *>::MxListCursor<LegoCacheSound *>
|
||||
|
||||
// TEMPLATE: LEGO1 0x100224e0
|
||||
// MxList<LegoCacheSound *>::InsertEntry
|
||||
|
||||
// TEMPLATE: LEGO1 0x10022590
|
||||
// MxListCursor<LegoCacheSound *>::Find
|
||||
|
||||
// TEMPLATE: LEGO1 0x10022680
|
||||
// MxList<LegoCacheSound *>::DeleteEntry
|
||||
|
||||
#endif // LEGOCACHESOUNDLIST_H
|
||||
@ -26,6 +26,12 @@ class LegoCarBuild : public LegoWorld {
|
||||
return !strcmp(p_name, LegoCarBuild::ClassName()) || LegoWorld::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
|
||||
virtual void ReadyWorld() override; // vtable+0x50
|
||||
virtual MxBool VTable0x5c() override; // vtable+0x5c
|
||||
virtual MxBool VTable0x64() override; // vtable+0x64
|
||||
virtual void VTable0x68(MxBool p_add) override; // vtable+0x68
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10022a60
|
||||
// LegoCarBuild::`scalar deleting destructor'
|
||||
};
|
||||
|
||||
@ -23,6 +23,12 @@ class LegoCarBuildAnimPresenter : public LegoAnimPresenter {
|
||||
return !strcmp(p_name, LegoCarBuildAnimPresenter::ClassName()) || LegoAnimPresenter::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual void ReadyTickle() override; // vtable+0x18
|
||||
virtual void StreamingTickle() override; // vtable+0x20
|
||||
virtual void RepeatingTickle() override; // vtable+0x24
|
||||
virtual void EndAction() override; // vtable+0x40
|
||||
virtual void PutFrame() override; // vtable+0x6c
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10078660
|
||||
// LegoCarBuildAnimPresenter::`scalar deleting destructor'
|
||||
};
|
||||
|
||||
@ -19,6 +19,14 @@ class LegoCarRaceActor : public LegoRaceActor {
|
||||
return !strcmp(p_name, LegoCarRaceActor::ClassName()) || LegoRaceActor::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual void VTable0x68() override; // vtable+0x68
|
||||
virtual void VTable0x6c() override; // vtable+0x6c
|
||||
virtual void VTable0x70(float p_float) override; // vtable+0x70
|
||||
virtual MxS32 VTable0x90() override; // vtable+0x90
|
||||
virtual MxS32 VTable0x94() override; // vtable+0x94
|
||||
virtual void VTable0x98() override; // vtable+0x98
|
||||
virtual void VTable0x9c() override; // vtable+0x9c
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10081610
|
||||
// LegoCarRaceActor::`scalar deleting destructor'
|
||||
};
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
#ifndef LEGOCONTROLMANAGER_H
|
||||
#define LEGOCONTROLMANAGER_H
|
||||
|
||||
#include "legoeventnotificationparam.h"
|
||||
#include "mxcore.h"
|
||||
#include "mxpresenterlist.h"
|
||||
|
||||
@ -28,10 +29,20 @@ class LegoControlManager : public MxCore {
|
||||
void FUN_10028df0(MxPresenterList* p_presenterList);
|
||||
void Register(MxCore* p_listener);
|
||||
void Unregister(MxCore* p_listener);
|
||||
MxBool FUN_10029210(LegoEventNotificationParam& p_param, MxPresenter* p_presenter);
|
||||
void FUN_100293c0(undefined4, const char*, undefined2);
|
||||
|
||||
inline undefined4 GetUnknown0x0c() { return m_unk0x0c; }
|
||||
inline undefined GetUnknown0x10() { return m_unk0x10; }
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10028d40
|
||||
// LegoControlManager::`scalar deleting destructor'
|
||||
|
||||
private:
|
||||
undefined4 m_unk0x08; // 0x08
|
||||
undefined4 m_unk0x0c; // 0x0c
|
||||
undefined m_unk0x10; // 0x10
|
||||
undefined m_padding0x14[0x4c]; // 0x14
|
||||
};
|
||||
|
||||
#endif // LEGOCONTROLMANAGER_H
|
||||
|
||||
@ -13,18 +13,15 @@
|
||||
class LegoEntity : public MxEntity {
|
||||
public:
|
||||
enum {
|
||||
c_bit1 = 0x01
|
||||
c_bit1 = 0x01,
|
||||
c_bit2 = 0x02
|
||||
};
|
||||
|
||||
// Inlined at 0x100853f7
|
||||
inline LegoEntity() { Init(); }
|
||||
|
||||
#ifdef ISLE_APP
|
||||
__declspec(dllexport) virtual ~LegoEntity() override;
|
||||
#else
|
||||
// FUNCTION: LEGO1 0x1000c290
|
||||
__declspec(dllexport) virtual ~LegoEntity() override { Destroy(TRUE); }
|
||||
#endif
|
||||
virtual ~LegoEntity() override { Destroy(TRUE); }
|
||||
|
||||
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x4
|
||||
|
||||
@ -62,6 +59,7 @@ class LegoEntity : public MxEntity {
|
||||
void SetLocation(Mx3DPointFloat& p_location, Mx3DPointFloat& p_direction, Mx3DPointFloat& p_up, MxBool);
|
||||
|
||||
inline LegoROI* GetROI() { return m_roi; }
|
||||
inline MxU8 GetFlags() { return m_flags; }
|
||||
|
||||
protected:
|
||||
void Init();
|
||||
|
||||
@ -86,7 +86,16 @@ class LegoEntityListCursor : public MxPtrListCursor<LegoEntity> {
|
||||
// FUNCTION: LEGO1 0x1001f2b0
|
||||
// MxListCursor<LegoEntity *>::~MxListCursor<LegoEntity *>
|
||||
|
||||
// FUNCTION: LEGO1 0x1001edc6
|
||||
// FUNCTION: LEGO1 0x1001f300
|
||||
// LegoEntityListCursor::~LegoEntityListCursor
|
||||
|
||||
// TEMPLATE: LEGO1 0x100207d0
|
||||
// MxListCursor<LegoEntity *>::MxListCursor<LegoEntity *>
|
||||
|
||||
// TEMPLATE: LEGO1 0x10022430
|
||||
// MxList<LegoEntity *>::InsertEntry
|
||||
|
||||
// TEMPLATE: LEGO1 0x10022630
|
||||
// MxList<LegoEntity *>::DeleteEntry
|
||||
|
||||
#endif // LEGOENTITYLIST_H
|
||||
|
||||
@ -3,6 +3,7 @@
|
||||
|
||||
#include "mxnotificationparam.h"
|
||||
#include "mxtypes.h"
|
||||
#include "roi/legoroi.h"
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
@ -10,6 +11,15 @@
|
||||
// SIZE 0x20
|
||||
class LegoEventNotificationParam : public MxNotificationParam {
|
||||
public:
|
||||
// FUNCTION: LEGO1 0x10028690
|
||||
virtual MxNotificationParam* Clone() override
|
||||
{
|
||||
LegoEventNotificationParam* clone =
|
||||
new LegoEventNotificationParam(m_type, m_sender, m_modifier, m_x, m_y, m_key);
|
||||
clone->m_roi = m_roi;
|
||||
return clone;
|
||||
}; // vtable+0x4
|
||||
|
||||
inline LegoEventNotificationParam() : MxNotificationParam(c_notificationType0, NULL) {}
|
||||
inline LegoEventNotificationParam(
|
||||
NotificationId p_type,
|
||||
@ -19,20 +29,23 @@ class LegoEventNotificationParam : public MxNotificationParam {
|
||||
MxS32 p_y,
|
||||
MxU8 p_key
|
||||
)
|
||||
: MxNotificationParam(p_type, p_sender), m_modifier(p_modifier), m_x(p_x), m_y(p_y), m_key(p_key), m_unk0x1c(0)
|
||||
: MxNotificationParam(p_type, p_sender), m_modifier(p_modifier), m_x(p_x), m_y(p_y), m_key(p_key), m_roi(NULL)
|
||||
{
|
||||
}
|
||||
|
||||
inline MxU8 GetModifier() { return m_modifier; }
|
||||
inline MxU8 GetKey() const { return m_key; }
|
||||
inline MxS32 GetX() const { return m_x; }
|
||||
inline MxS32 GetY() const { return m_y; }
|
||||
|
||||
inline void SetROI(LegoROI* p_roi) { m_roi = p_roi; }
|
||||
|
||||
protected:
|
||||
MxU8 m_modifier; // 0x0c
|
||||
MxS32 m_x; // 0x10
|
||||
MxS32 m_y; // 0x14
|
||||
MxU8 m_key; // 0x18
|
||||
MxU32 m_unk0x1c; // 0x1c
|
||||
LegoROI* m_roi; // 0x1c
|
||||
};
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10028770
|
||||
|
||||
@ -17,6 +17,10 @@ class LegoFlcTexturePresenter : public MxFlcPresenter {
|
||||
return "LegoFlcTexturePresenter";
|
||||
}
|
||||
|
||||
virtual void StartingTickle() override; // vtable+0x1c
|
||||
virtual void LoadFrame(MxStreamChunk* p_chunk) override; // vtable+0x68
|
||||
virtual void PutFrame() override; // vtable+0x6c
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1005df00
|
||||
// LegoFlcTexturePresenter::`scalar deleting destructor'
|
||||
|
||||
|
||||
@ -2,10 +2,11 @@
|
||||
#define LEGOGAMESTATE_H
|
||||
|
||||
#include "decomp.h"
|
||||
#include "lego/sources/misc/legostorage.h"
|
||||
#include "legobackgroundcolor.h"
|
||||
#include "legofullscreenmovie.h"
|
||||
#include "legostream.h"
|
||||
#include "mxtypes.h"
|
||||
#include "mxvariabletable.h"
|
||||
|
||||
class LegoState;
|
||||
class MxVariable;
|
||||
@ -19,13 +20,13 @@ struct ColorStringStruct {
|
||||
// SIZE 0x430
|
||||
class LegoGameState {
|
||||
public:
|
||||
__declspec(dllexport) LegoGameState();
|
||||
__declspec(dllexport) ~LegoGameState();
|
||||
__declspec(dllexport) MxResult Load(MxULong);
|
||||
__declspec(dllexport) MxResult Save(MxULong);
|
||||
__declspec(dllexport) void SerializePlayersInfo(MxS16);
|
||||
__declspec(dllexport) void SerializeScoreHistory(MxS16 p_flags);
|
||||
__declspec(dllexport) void SetSavePath(char*);
|
||||
LegoGameState();
|
||||
~LegoGameState();
|
||||
MxResult Load(MxULong);
|
||||
MxResult Save(MxULong);
|
||||
void SerializePlayersInfo(MxS16);
|
||||
void SerializeScoreHistory(MxS16 p_flags);
|
||||
void SetSavePath(char*);
|
||||
|
||||
LegoState* GetState(const char* p_stateName);
|
||||
LegoState* CreateState(const char* p_stateName);
|
||||
@ -47,7 +48,7 @@ class LegoGameState {
|
||||
|
||||
struct ScoreStruct {
|
||||
void WriteScoreHistory();
|
||||
void FUN_1003ccf0(LegoFileStream&);
|
||||
void FUN_1003ccf0(LegoFile&);
|
||||
|
||||
MxU16 m_unk0x00;
|
||||
undefined m_unk0x02[0x2c][20];
|
||||
@ -55,7 +56,9 @@ class LegoGameState {
|
||||
|
||||
private:
|
||||
void RegisterState(LegoState* p_state);
|
||||
MxResult WriteEndOfVariables(LegoStream* p_stream);
|
||||
MxResult WriteVariable(LegoStorage* p_stream, MxVariableTable* p_from, const char* p_variableName);
|
||||
MxResult WriteEndOfVariables(LegoStorage* p_stream);
|
||||
MxS32 ReadVariable(LegoStorage* p_stream, MxVariableTable* p_to);
|
||||
void SetROIHandlerFunction();
|
||||
|
||||
char* m_savePath; // 0x0
|
||||
|
||||
@ -24,7 +24,12 @@ class LegoHideAnimPresenter : public LegoLoopingAnimPresenter {
|
||||
return !strcmp(p_name, ClassName()) || LegoAnimPresenter::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual void Destroy() override; // vtable+0x38
|
||||
virtual void ReadyTickle() override; // vtable+0x18
|
||||
virtual void StartingTickle() override; // vtable+0x18
|
||||
virtual MxResult AddToManager() override; // vtable+0x34
|
||||
virtual void Destroy() override; // vtable+0x38
|
||||
virtual void EndAction() override; // vtable+0x40
|
||||
virtual void PutFrame() override; // vtable+0x6c
|
||||
|
||||
private:
|
||||
void Init();
|
||||
|
||||
@ -25,6 +25,42 @@ class LegoControlManager;
|
||||
// SIZE 0x18
|
||||
class LegoEventQueue : public MxQueue<LegoEventNotificationParam> {};
|
||||
|
||||
// VTABLE: LEGO1 0x100d6a20
|
||||
// class MxCollection<MxCore*>
|
||||
|
||||
// VTABLE: LEGO1 0x100d6a38
|
||||
// class MxList<MxCore*>
|
||||
|
||||
// VTABLE: LEGO1 0x100d6a50
|
||||
// class MxPtrList<MxCore>
|
||||
|
||||
// VTABLE: LEGO1 0x100d6a68
|
||||
// SIZE 0x18
|
||||
class LegoNotifyList : public MxPtrList<MxCore> {
|
||||
protected:
|
||||
// FUNCTION: LEGO1 0x10028830
|
||||
virtual MxS8 Compare(MxCore* p_element1, MxCore* p_element2) override
|
||||
{
|
||||
return p_element1 == p_element2 ? 0 : p_element1 < p_element2 ? -1 : 1;
|
||||
} // vtable+0x14
|
||||
|
||||
public:
|
||||
LegoNotifyList(MxBool p_ownership = FALSE) : MxPtrList<MxCore>(p_ownership) {}
|
||||
};
|
||||
|
||||
// VTABLE: LEGO1 0x100d6ac0
|
||||
// class MxListCursor<MxCore *>
|
||||
|
||||
// VTABLE: LEGO1 0x100d6ad8
|
||||
// class MxPtrListCursor<MxCore>
|
||||
|
||||
// VTABLE: LEGO1 0x100d6aa8
|
||||
// SIZE 0x10
|
||||
class LegoNotifyListCursor : public MxPtrListCursor<MxCore> {
|
||||
public:
|
||||
LegoNotifyListCursor(LegoNotifyList* p_list) : MxPtrListCursor<MxCore>(p_list) {}
|
||||
};
|
||||
|
||||
// VTABLE: LEGO1 0x100d8760
|
||||
// SIZE 0x338
|
||||
class LegoInputManager : public MxPresenter {
|
||||
@ -32,20 +68,23 @@ class LegoInputManager : public MxPresenter {
|
||||
LegoInputManager();
|
||||
virtual ~LegoInputManager() override;
|
||||
|
||||
__declspec(dllexport) void QueueEvent(NotificationId p_id, MxU8 p_modifier, MxLong p_x, MxLong p_y, MxU8 p_key);
|
||||
__declspec(dllexport) void Register(MxCore*);
|
||||
__declspec(dllexport) void UnRegister(MxCore*);
|
||||
void QueueEvent(NotificationId p_id, MxU8 p_modifier, MxLong p_x, MxLong p_y, MxU8 p_key);
|
||||
void Register(MxCore*);
|
||||
void UnRegister(MxCore*);
|
||||
|
||||
virtual MxResult Tickle() override; // vtable+0x8
|
||||
|
||||
// FUNCTION: LEGO1 0x1005b8c0
|
||||
virtual MxResult PutData() override { return SUCCESS; }; // vtable+0x4c
|
||||
|
||||
MxResult Create(HWND p_hwnd);
|
||||
void Destroy();
|
||||
void CreateAndAcquireKeyboard(HWND p_hwnd);
|
||||
void ReleaseDX();
|
||||
MxResult GetJoystickId();
|
||||
MxResult GetJoystickState(MxU32* p_joystickX, MxU32* p_joystickY, DWORD* p_buttonsState, MxU32* p_povPosition);
|
||||
void SetTimer();
|
||||
void KillTimer();
|
||||
void StartAutoDragTimer();
|
||||
void StopAutoDragTimer();
|
||||
void EnableInputProcessing();
|
||||
void SetCamera(LegoCameraController* p_camera);
|
||||
void ClearCamera();
|
||||
@ -70,40 +109,86 @@ class LegoInputManager : public MxPresenter {
|
||||
|
||||
void ProcessEvents();
|
||||
MxBool ProcessOneEvent(LegoEventNotificationParam& p_param);
|
||||
MxBool FUN_1005cdf0(LegoEventNotificationParam& p_param);
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1005b8d0
|
||||
// LegoInputManager::`scalar deleting destructor'
|
||||
|
||||
private:
|
||||
MxCriticalSection m_criticalSection;
|
||||
MxList<undefined4>* m_unk0x5c; // list or hash table
|
||||
LegoCameraController* m_camera;
|
||||
LegoWorld* m_world;
|
||||
LegoEventQueue* m_eventQueue; // +0x68
|
||||
undefined4 m_unk0x6c;
|
||||
undefined4 m_unk0x70;
|
||||
undefined4 m_unk0x74;
|
||||
UINT m_timer;
|
||||
UINT m_timeout;
|
||||
undefined m_unk0x80;
|
||||
undefined m_unk0x81;
|
||||
LegoControlManager* m_controlManager;
|
||||
MxBool m_unk0x88;
|
||||
IDirectInput* m_directInput;
|
||||
IDirectInputDevice* m_directInputDevice;
|
||||
undefined m_unk0x94;
|
||||
undefined4 m_unk0x98;
|
||||
undefined m_unk0x9c[0xF8];
|
||||
undefined m_unk0x194;
|
||||
MxBool m_unk0x195;
|
||||
MxS32 m_joyid;
|
||||
MxS32 m_joystickIndex;
|
||||
JOYCAPS m_joyCaps;
|
||||
MxBool m_useJoystick;
|
||||
MxBool m_unk0x335;
|
||||
MxBool m_unk0x336;
|
||||
MxCriticalSection m_criticalSection; // 0x58
|
||||
LegoNotifyList* m_keyboardNotifyList; // 0x5c
|
||||
LegoCameraController* m_camera; // 0x60
|
||||
LegoWorld* m_world; // 0x64
|
||||
LegoEventQueue* m_eventQueue; // 0x68
|
||||
undefined4 m_unk0x6c; // 0x6c
|
||||
undefined4 m_unk0x70; // 0x70
|
||||
undefined4 m_unk0x74; // 0x74
|
||||
UINT m_autoDragTimerID; // 0x78
|
||||
UINT m_autoDragTime; // 0x7c
|
||||
undefined m_unk0x80; // 0x80
|
||||
undefined m_unk0x81; // 0x81
|
||||
LegoControlManager* m_controlManager; // 0x84
|
||||
MxBool m_unk0x88; // 0x88
|
||||
IDirectInput* m_directInput; // 0x8c
|
||||
IDirectInputDevice* m_directInputDevice; // 0x90
|
||||
undefined m_unk0x94; // 0x94
|
||||
undefined4 m_unk0x98; // 0x98
|
||||
undefined m_unk0x9c[0xf8]; // 0x9c
|
||||
undefined m_unk0x194; // 0x194
|
||||
MxBool m_unk0x195; // 0x195
|
||||
MxS32 m_joyid; // 0x198
|
||||
MxS32 m_joystickIndex; // 0x19c
|
||||
JOYCAPS m_joyCaps; // 0x200
|
||||
MxBool m_useJoystick; // 0x334
|
||||
MxBool m_unk0x335; // 0x335
|
||||
MxBool m_unk0x336; // 0x336
|
||||
};
|
||||
|
||||
// TEMPLATE: LEGO1 0x10028850
|
||||
// MxCollection<MxCore *>::Compare
|
||||
|
||||
// TEMPLATE: LEGO1 0x10028860
|
||||
// MxCollection<MxCore *>::~MxCollection<MxCore *>
|
||||
|
||||
// TEMPLATE: LEGO1 0x100288b0
|
||||
// MxCollection<MxCore *>::Destroy
|
||||
|
||||
// TEMPLATE: LEGO1 0x100288c0
|
||||
// MxList<MxCore *>::~MxList<MxCore *>
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10028950
|
||||
// LegoNotifyList::`scalar deleting destructor'
|
||||
|
||||
// TEMPLATE: LEGO1 0x100289c0
|
||||
// MxPtrList<MxCore>::~MxPtrList<MxCore>
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10028a10
|
||||
// MxCollection<MxCore *>::`scalar deleting destructor'
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10028a80
|
||||
// MxList<MxCore *>::`scalar deleting destructor'
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10028b30
|
||||
// MxPtrList<MxCore>::`scalar deleting destructor'
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10028fd0
|
||||
// LegoNotifyListCursor::`scalar deleting destructor'
|
||||
|
||||
// TEMPLATE: LEGO1 0x10029040
|
||||
// MxPtrListCursor<MxCore>::~MxPtrListCursor<MxCore>
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10029090
|
||||
// MxListCursor<MxCore *>::`scalar deleting destructor'
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10029100
|
||||
// MxPtrListCursor<MxCore>::`scalar deleting destructor'
|
||||
|
||||
// TEMPLATE: LEGO1 0x10029170
|
||||
// MxListCursor<MxCore *>::~MxListCursor<MxCore *>
|
||||
|
||||
// TEMPLATE: LEGO1 0x100291c0
|
||||
// LegoNotifyListCursor::~LegoNotifyListCursor
|
||||
|
||||
// TEMPLATE: LEGO1 0x1005bb80
|
||||
// MxCollection<LegoEventNotificationParam>::Compare
|
||||
|
||||
|
||||
@ -6,6 +6,8 @@
|
||||
// VTABLE: LEGO1 0x100d5a40
|
||||
class LegoJetski : public LegoJetskiRaceActor {
|
||||
public:
|
||||
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||
|
||||
// FUNCTION: LEGO1 0x10013e80
|
||||
inline const char* ClassName() const override // vtable+0xc
|
||||
{
|
||||
@ -19,6 +21,14 @@ class LegoJetski : public LegoJetskiRaceActor {
|
||||
return !strcmp(p_name, LegoJetski::ClassName()) || LegoJetskiRaceActor::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual void ParseAction(char*) override; // vtable+0x20
|
||||
virtual void SetWorldSpeed(MxFloat p_worldSpeed) override; // vtable+0x30
|
||||
virtual void VTable0x6c() override; // vtable+0x6c
|
||||
virtual void VTable0x70(float p_float) override; // vtable+0x70
|
||||
virtual MxS32 VTable0x94() override; // vtable+0x94
|
||||
virtual void VTable0x98() override; // vtable+0x98
|
||||
virtual void VTable0x9c() override; // vtable+0x9c
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10013e20
|
||||
// LegoJetski::`scalar deleting destructor'
|
||||
};
|
||||
|
||||
@ -19,6 +19,11 @@ class LegoJetskiRaceActor : public LegoCarRaceActor {
|
||||
return !strcmp(p_name, LegoJetskiRaceActor::ClassName()) || LegoCarRaceActor::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual void VTable0x6c() override; // vtable+0x6c
|
||||
virtual void VTable0x70(float p_float) override; // vtable+0x70
|
||||
virtual void VTable0x98() override; // vtable+0x98
|
||||
virtual void VTable0x9c() override; // vtable+0x9c
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10081d40
|
||||
// LegoJetskiRaceActor::`scalar deleting destructor'
|
||||
};
|
||||
|
||||
@ -4,6 +4,8 @@
|
||||
#include "decomp.h"
|
||||
#include "mxwavepresenter.h"
|
||||
|
||||
class LegoCacheSound;
|
||||
|
||||
// VTABLE: LEGO1 0x100d5fa8
|
||||
// SIZE 0x90
|
||||
class LegoLoadCacheSoundPresenter : public MxWavePresenter {
|
||||
@ -18,16 +20,21 @@ class LegoLoadCacheSoundPresenter : public MxWavePresenter {
|
||||
return "LegoLoadCacheSoundPresenter";
|
||||
}
|
||||
|
||||
virtual void ReadyTickle() override; // vtable+0x18
|
||||
virtual void StreamingTickle() override; // vtable+0x20
|
||||
virtual void DoneTickle() override; // vtable+0x2c
|
||||
virtual MxResult PutData() override; // vtable+0x4c
|
||||
|
||||
private:
|
||||
void Init();
|
||||
void Destroy(MxBool p_fromDestructor);
|
||||
|
||||
undefined4* m_unk0x6c; // 0x6c
|
||||
undefined4* m_unk0x70; // 0x70
|
||||
undefined4 m_unk0x74; // 0x74
|
||||
undefined4 m_unk0x78; // 0x78
|
||||
undefined m_unk0x7c; // 0x7c
|
||||
undefined4 m_unk0x80[4]; // 0x80
|
||||
LegoCacheSound* m_cacheSound; // 0x6c
|
||||
undefined* m_unk0x70; // 0x70
|
||||
undefined* m_unk0x74; // 0x74
|
||||
undefined4 m_unk0x78; // 0x78
|
||||
undefined m_unk0x7c; // 0x7c
|
||||
PCMWAVEFORMAT m_pcmWaveFormat; // 0x7d
|
||||
};
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10018460
|
||||
|
||||
@ -4,9 +4,11 @@
|
||||
#include "legoloopinganimpresenter.h"
|
||||
|
||||
// VTABLE: LEGO1 0x100d9170
|
||||
// SIZE 0xd8
|
||||
class LegoLocomotionAnimPresenter : public LegoLoopingAnimPresenter {
|
||||
public:
|
||||
LegoLocomotionAnimPresenter();
|
||||
virtual ~LegoLocomotionAnimPresenter() override;
|
||||
|
||||
// FUNCTION: LEGO1 0x1006ce50
|
||||
inline const char* ClassName() const override // vtable+0xc
|
||||
@ -21,11 +23,36 @@ class LegoLocomotionAnimPresenter : public LegoLoopingAnimPresenter {
|
||||
return !strcmp(p_name, ClassName()) || LegoLoopingAnimPresenter::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual void ReadyTickle() override; // vtable+0x18
|
||||
virtual void StartingTickle() override; // vtable+0x1c
|
||||
virtual void StreamingTickle() override; // vtable+0x20
|
||||
virtual MxResult AddToManager() override; // vtable+0x34
|
||||
virtual void Destroy() override; // vtable+0x38
|
||||
virtual void EndAction() override; // vtable+0x40
|
||||
virtual void PutFrame() override; // vtable+0x6c
|
||||
virtual MxResult VTable0x88(MxStreamChunk* p_chunk) override; // vtable+0x88
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1006cfe0
|
||||
// LegoLocomotionAnimPresenter::`scalar deleting destructor'
|
||||
|
||||
inline void DecrementUnknown0xd4()
|
||||
{
|
||||
if (m_unk0xd4)
|
||||
--m_unk0xd4;
|
||||
}
|
||||
|
||||
inline undefined2 GetUnknown0xd4() { return m_unk0xd4; }
|
||||
|
||||
private:
|
||||
void Init();
|
||||
void Destroy(MxBool p_fromDestructor);
|
||||
|
||||
undefined4 m_unk0xc0; // 0xc0
|
||||
undefined4* m_unk0xc4; // 0xc4
|
||||
MxCore* m_unk0xc8; // 0xc8
|
||||
MxS32 m_unk0xcc; // 0xcc
|
||||
MxS32 m_unk0xd0; // 0xd0
|
||||
undefined2 m_unk0xd4; // 0xd4
|
||||
};
|
||||
|
||||
#endif // LEGOLOCOMOTIONANIMPRESENTER_H
|
||||
|
||||
@ -19,6 +19,9 @@ class LegoLoopingAnimPresenter : public LegoAnimPresenter {
|
||||
{
|
||||
return !strcmp(p_name, ClassName()) || LegoAnimPresenter::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual void StreamingTickle() override; // vtable+0x20
|
||||
virtual void PutFrame() override; // vtable+0x6c
|
||||
};
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1006d000
|
||||
|
||||
@ -3,11 +3,13 @@
|
||||
|
||||
#include "mxvideopresenter.h"
|
||||
|
||||
class AutoROI;
|
||||
|
||||
// VTABLE: LEGO1 0x100d4e50
|
||||
// SIZE 0x6c (discovered through inline constructor at 0x10009ae6)
|
||||
class LegoModelPresenter : public MxVideoPresenter {
|
||||
public:
|
||||
__declspec(dllexport) static void configureLegoModelPresenter(MxS32 p_modelPresenterConfig);
|
||||
static void configureLegoModelPresenter(MxS32 p_modelPresenterConfig);
|
||||
|
||||
// FUNCTION: LEGO1 0x1000ccb0
|
||||
inline const char* ClassName() const override // vtable+0xc
|
||||
@ -33,7 +35,7 @@ class LegoModelPresenter : public MxVideoPresenter {
|
||||
void Destroy(MxBool p_fromDestructor);
|
||||
|
||||
private:
|
||||
undefined4 m_unk0x64; // 0x64
|
||||
AutoROI* m_unk0x64; // 0x64
|
||||
MxBool m_addedToView; // 0x68
|
||||
};
|
||||
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
// SIZE 0x70
|
||||
class LegoNavController : public MxCore {
|
||||
public:
|
||||
__declspec(dllexport) static void GetDefaults(
|
||||
static void GetDefaults(
|
||||
int* p_mouseDeadzone,
|
||||
float* p_movementMaxSpeed,
|
||||
float* p_turnMaxSpeed,
|
||||
@ -22,7 +22,7 @@ class LegoNavController : public MxCore {
|
||||
float* p_rotationSensitivity,
|
||||
MxBool* p_turnUseVelocity
|
||||
);
|
||||
__declspec(dllexport) static void SetDefaults(
|
||||
static void SetDefaults(
|
||||
int p_mouseDeadzone,
|
||||
float p_movementMaxSpeed,
|
||||
float p_turnMaxSpeed,
|
||||
@ -37,7 +37,8 @@ class LegoNavController : public MxCore {
|
||||
);
|
||||
|
||||
LegoNavController();
|
||||
virtual ~LegoNavController() override; // vtable+0x0
|
||||
virtual ~LegoNavController() override; // vtable+0x0
|
||||
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x4
|
||||
|
||||
// FUNCTION: LEGO1 0x10054b80
|
||||
inline const char* ClassName() const override // vtable+0xc
|
||||
|
||||
@ -68,11 +68,11 @@ class LegoOmni : public MxOmni {
|
||||
c_clearScreen = 0x04
|
||||
};
|
||||
|
||||
__declspec(dllexport) void CreateBackgroundAudio();
|
||||
__declspec(dllexport) void RemoveWorld(const MxAtomId&, MxLong);
|
||||
__declspec(dllexport) static int GetCurrPathInfo(LegoPathBoundary**, MxS32&);
|
||||
__declspec(dllexport) static void CreateInstance();
|
||||
__declspec(dllexport) static LegoOmni* GetInstance();
|
||||
void CreateBackgroundAudio();
|
||||
void RemoveWorld(const MxAtomId&, MxLong);
|
||||
static int GetCurrPathInfo(LegoPathBoundary**, MxS32&);
|
||||
static void CreateInstance();
|
||||
static LegoOmni* GetInstance();
|
||||
|
||||
LegoOmni();
|
||||
virtual ~LegoOmni(); // vtable+00
|
||||
@ -92,18 +92,18 @@ class LegoOmni : public MxOmni {
|
||||
return !strcmp(p_name, LegoOmni::ClassName()) || MxOmni::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual void Init() override; // vtable+14
|
||||
virtual MxResult Create(MxOmniCreateParam& p_param) override; // vtable+18
|
||||
virtual void Destroy() override; // vtable+1c
|
||||
virtual MxResult Start(MxDSAction* p_dsAction) override; // vtable+20
|
||||
virtual void DeleteObject(MxDSAction& p_dsAction) override; // vtable+24
|
||||
virtual MxBool DoesEntityExist(MxDSAction& p_dsAction) override; // vtable+28
|
||||
virtual MxEntity* FindWorld(const char* p_id, MxS32 p_entityId, MxPresenter* p_presenter) override; // vtable+30
|
||||
virtual void NotifyCurrentEntity(MxNotificationParam* p_param) override; // vtable+34
|
||||
virtual void StartTimer() override; // vtable+38
|
||||
virtual void StopTimer() override; // vtable+3c
|
||||
virtual void Init() override; // vtable+14
|
||||
virtual MxResult Create(MxOmniCreateParam& p_param) override; // vtable+18
|
||||
virtual void Destroy() override; // vtable+1c
|
||||
virtual MxResult Start(MxDSAction* p_dsAction) override; // vtable+20
|
||||
virtual void DeleteObject(MxDSAction& p_dsAction) override; // vtable+24
|
||||
virtual MxBool DoesEntityExist(MxDSAction& p_dsAction) override; // vtable+28
|
||||
virtual MxEntity* AddToWorld(const char* p_id, MxS32 p_entityId, MxPresenter* p_presenter) override; // vtable+30
|
||||
virtual void NotifyCurrentEntity(MxNotificationParam* p_param) override; // vtable+34
|
||||
virtual void StartTimer() override; // vtable+38
|
||||
virtual void StopTimer() override; // vtable+3c
|
||||
|
||||
LegoEntity* FindByEntityIdOrAtomId(const MxAtomId& p_atom, MxS32 p_entityid);
|
||||
LegoWorld* FindWorld(const MxAtomId& p_atom, MxS32 p_entityid);
|
||||
void AddWorld(LegoWorld* p_world);
|
||||
void DeleteEntity(LegoEntity* p_entity);
|
||||
void FUN_1005b4f0(MxBool p_disable, MxU16 p_flags);
|
||||
@ -112,7 +112,7 @@ class LegoOmni : public MxOmni {
|
||||
LegoSoundManager* GetSoundManager() { return (LegoSoundManager*) m_soundManager; }
|
||||
LegoInputManager* GetInputManager() { return m_inputMgr; }
|
||||
GifManager* GetGifManager() { return m_gifManager; }
|
||||
LegoWorld* GetCurrentOmniWorld() { return m_currentWorld; }
|
||||
LegoWorld* GetCurrentWorld() { return m_currentWorld; }
|
||||
LegoNavController* GetNavController() { return m_navController; }
|
||||
IslePathActor* GetCurrentVehicle() { return m_currentVehicle; }
|
||||
LegoPlantManager* GetLegoPlantManager() { return m_plantManager; }
|
||||
@ -154,16 +154,16 @@ class LegoOmni : public MxOmni {
|
||||
MxBool m_unk0x13c; // 0x13c
|
||||
};
|
||||
|
||||
__declspec(dllexport) MxBackgroundAudioManager* BackgroundAudioManager();
|
||||
__declspec(dllexport) LegoGameState* GameState();
|
||||
__declspec(dllexport) const char* GetNoCD_SourceName();
|
||||
__declspec(dllexport) LegoInputManager* InputManager();
|
||||
__declspec(dllexport) LegoOmni* Lego();
|
||||
__declspec(dllexport) LegoEntity* PickEntity(MxLong, MxLong);
|
||||
__declspec(dllexport) LegoROI* PickROI(MxLong, MxLong);
|
||||
__declspec(dllexport) LegoSoundManager* SoundManager();
|
||||
__declspec(dllexport) MxTransitionManager* TransitionManager();
|
||||
__declspec(dllexport) LegoVideoManager* VideoManager();
|
||||
MxBackgroundAudioManager* BackgroundAudioManager();
|
||||
LegoGameState* GameState();
|
||||
const char* GetNoCD_SourceName();
|
||||
LegoInputManager* InputManager();
|
||||
LegoOmni* Lego();
|
||||
LegoEntity* PickEntity(MxLong, MxLong);
|
||||
LegoROI* PickROI(MxLong, MxLong);
|
||||
LegoSoundManager* SoundManager();
|
||||
MxTransitionManager* TransitionManager();
|
||||
LegoVideoManager* VideoManager();
|
||||
|
||||
LegoAnimationManager* AnimationManager();
|
||||
LegoBuildingManager* BuildingManager();
|
||||
@ -175,7 +175,7 @@ LegoUnkSaveDataWriter* GetUnkSaveDataWriter();
|
||||
GifManager* GetGifManager();
|
||||
void FUN_10015820(MxBool p_disable, MxU16 p_flags);
|
||||
void FUN_10015860(const char*, MxU8);
|
||||
LegoEntity* FindEntityByAtomIdOrEntityId(const MxAtomId& p_atom, MxS32 p_entityid);
|
||||
LegoWorld* FindWorld(const MxAtomId& p_atom, MxS32 p_entityid);
|
||||
MxDSAction& GetCurrentAction();
|
||||
|
||||
void PlayMusic(MxU32 p_index);
|
||||
|
||||
@ -20,7 +20,11 @@ class LegoPartPresenter : public MxMediaPresenter {
|
||||
return !strcmp(p_name, LegoPartPresenter::ClassName()) || MxMediaPresenter::IsA(p_name);
|
||||
}
|
||||
|
||||
__declspec(dllexport) static void configureLegoPartPresenter(MxS32, MxS32);
|
||||
virtual void ReadyTickle() override; // vtable+0x18
|
||||
virtual MxResult AddToManager() override; // vtable+0x34
|
||||
virtual void Destroy() override; // vtable+0x38
|
||||
|
||||
static void configureLegoPartPresenter(MxS32, MxS32);
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1000d060
|
||||
// LegoPartPresenter::`scalar deleting destructor'
|
||||
|
||||
@ -25,6 +25,7 @@ class LegoPathActor : public LegoActor {
|
||||
return !strcmp(p_name, LegoPathActor::ClassName()) || LegoActor::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual void ParseAction(char*) override; // vtable+0x20
|
||||
virtual void VTable0x68(); // vtable+0x68
|
||||
virtual void VTable0x6c(); // vtable+0x6c
|
||||
virtual void VTable0x70(float p_float); // vtable+0x70
|
||||
|
||||
@ -48,6 +48,9 @@ class LegoPathControllerList : public MxPtrList<LegoPathController> {
|
||||
// TEMPLATE: LEGO1 0x1001d3c0
|
||||
// MxPtrList<LegoPathController>::Destroy
|
||||
|
||||
// TEMPLATE: LEGO1 0x1001d440
|
||||
// MxPtrList<LegoPathController>::~MxPtrList<LegoPathController>
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1001d490
|
||||
// MxCollection<LegoPathController *>::`scalar deleting destructor'
|
||||
|
||||
@ -57,4 +60,7 @@ class LegoPathControllerList : public MxPtrList<LegoPathController> {
|
||||
// SYNTHETIC: LEGO1 0x1001d5b0
|
||||
// MxPtrList<LegoPathController>::`scalar deleting destructor'
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1001d620
|
||||
// LegoPathControllerList::~LegoPathControllerList
|
||||
|
||||
#endif // LEGOPATHCONTROLLERLIST_H
|
||||
|
||||
@ -20,6 +20,11 @@ class LegoPhonemePresenter : public MxFlcPresenter {
|
||||
return "LegoPhonemePresenter";
|
||||
}
|
||||
|
||||
virtual void StartingTickle() override; // vtable+0x1c
|
||||
virtual void EndAction() override; // vtable+0x40
|
||||
virtual void LoadFrame(MxStreamChunk* p_chunk) override; // vtable+0x68
|
||||
virtual void PutFrame() override; // vtable+0x6c
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1004e320
|
||||
// LegoPhonemePresenter::`scalar deleting destructor'
|
||||
|
||||
|
||||
@ -21,6 +21,7 @@ class LegoPlantManager : public MxCore {
|
||||
}
|
||||
|
||||
void FUN_10026360(undefined4 p_world);
|
||||
void FUN_100263a0(undefined4 p_und);
|
||||
|
||||
// SYNTHETIC: LEGO1 0x100262a0
|
||||
// LegoPlantManager::`scalar deleting destructor'
|
||||
|
||||
@ -2,6 +2,7 @@
|
||||
#define LEGORACEACTOR_H
|
||||
|
||||
#include "legoanimactor.h"
|
||||
#include "realtime/matrix.h"
|
||||
|
||||
// VTABLE: LEGO1 0x100d5b88
|
||||
class LegoRaceActor : public LegoAnimActor {
|
||||
@ -19,6 +20,14 @@ class LegoRaceActor : public LegoAnimActor {
|
||||
return !strcmp(p_name, LegoRaceActor::ClassName()) || LegoAnimActor::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual void ParseAction(char*) override; // vtable+0x20
|
||||
virtual void SetWorldSpeed(MxFloat p_worldSpeed) override; // vtable+0x30
|
||||
virtual void VTable0x68() override; // vtable+0x68
|
||||
virtual void VTable0x70(float p_float) override; // vtable+0x70
|
||||
virtual void VTable0x74(Matrix4& p_transform) override; // vtable+0x74
|
||||
virtual MxS32 VTable0x90() override; // vtable+0x90
|
||||
virtual MxS32 VTable0x94() override; // vtable+0x94
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10014ab0
|
||||
// LegoRaceActor::`scalar deleting destructor'
|
||||
};
|
||||
|
||||
@ -8,6 +8,8 @@
|
||||
// SIZE 0x200
|
||||
class LegoRaceCar : public LegoCarRaceActor {
|
||||
public:
|
||||
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||
|
||||
// FUNCTION: LEGO1 0x10014290
|
||||
inline const char* ClassName() const override // vtable+0xc
|
||||
{
|
||||
@ -21,6 +23,14 @@ class LegoRaceCar : public LegoCarRaceActor {
|
||||
return !strcmp(p_name, LegoCarRaceActor::ClassName()) || LegoCarRaceActor::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual void ParseAction(char*) override; // vtable+0x20
|
||||
virtual void SetWorldSpeed(MxFloat p_worldSpeed) override; // vtable+0x30
|
||||
virtual void VTable0x6c() override; // vtable+0x6c
|
||||
virtual void VTable0x70(float p_float) override; // vtable+0x70
|
||||
virtual MxS32 VTable0x94() override; // vtable+0x94
|
||||
virtual void VTable0x98() override; // vtable+0x98
|
||||
virtual void VTable0x9c() override; // vtable+0x9c
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10014230
|
||||
// LegoRaceCar::`scalar deleting destructor'
|
||||
};
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
#ifndef LEGOSOUNDMANAGER_H
|
||||
#define LEGOSOUNDMANAGER_H
|
||||
|
||||
#include "legounknown100d6b4c.h"
|
||||
#include "mxsoundmanager.h"
|
||||
|
||||
// VTABLE: LEGO1 0x100d6b10
|
||||
@ -17,12 +18,14 @@ class LegoSoundManager : public MxSoundManager {
|
||||
// SYNTHETIC: LEGO1 0x10029920
|
||||
// LegoSoundManager::`scalar deleting destructor'
|
||||
|
||||
inline LegoUnknown100d6b4c* GetUnknown0x40() { return m_unk0x40; }
|
||||
|
||||
private:
|
||||
void Init();
|
||||
void Destroy(MxBool p_fromDestructor);
|
||||
|
||||
undefined4 m_unk0x3c;
|
||||
undefined4 m_unk0x40;
|
||||
undefined4 m_unk0x3c; // 0x3c
|
||||
LegoUnknown100d6b4c* m_unk0x40; // 0x40
|
||||
};
|
||||
|
||||
#endif // LEGOSOUNDMANAGER_H
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
#define LEGOSTATE_H
|
||||
|
||||
#include "decomp.h"
|
||||
#include "legostream.h"
|
||||
#include "lego/sources/misc/legostorage.h"
|
||||
#include "mxcore.h"
|
||||
#include "mxstring.h"
|
||||
|
||||
@ -24,9 +24,9 @@ class LegoState : public MxCore {
|
||||
return !strcmp(p_name, LegoState::ClassName()) || MxCore::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual MxBool VTable0x14(); // vtable+0x14
|
||||
virtual MxBool SetFlag(); // vtable+0x18
|
||||
virtual MxResult VTable0x1c(LegoFileStream* p_legoFileStream); // vtable+0x1C
|
||||
virtual MxBool VTable0x14(); // vtable+0x14
|
||||
virtual MxBool SetFlag(); // vtable+0x18
|
||||
virtual MxResult VTable0x1c(LegoFile* p_legoFile); // vtable+0x1C
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10006160
|
||||
// LegoState::`scalar deleting destructor'
|
||||
|
||||
@ -1,91 +0,0 @@
|
||||
#ifndef LEGOSTREAM_H
|
||||
#define LEGOSTREAM_H
|
||||
|
||||
#include "compat.h"
|
||||
#include "decomp.h"
|
||||
#include "mxstring.h"
|
||||
#include "mxtypes.h"
|
||||
|
||||
#pragma warning(disable : 4237)
|
||||
#include <iosfwd>
|
||||
|
||||
#define LEGOSTREAM_MODE_READ 1
|
||||
#define LEGOSTREAM_MODE_WRITE 2
|
||||
|
||||
class MxVariableTable;
|
||||
|
||||
// VTABLE: LEGO1 0x100d7d80
|
||||
class LegoStream {
|
||||
public:
|
||||
LegoStream() : m_mode(0) {}
|
||||
// FUNCTION: LEGO1 0x10045ad0
|
||||
inline virtual ~LegoStream() {}
|
||||
|
||||
virtual MxResult Read(void* p_buffer, MxU32 p_size) = 0;
|
||||
virtual MxResult Write(const void* p_buffer, MxU32 p_size) = 0;
|
||||
virtual MxResult Tell(MxU32* p_offset) = 0;
|
||||
virtual MxResult Seek(MxU32 p_offset) = 0;
|
||||
|
||||
virtual MxBool IsWriteMode();
|
||||
virtual MxBool IsReadMode();
|
||||
|
||||
enum OpenFlags {
|
||||
c_readBit = 1,
|
||||
c_writeBit = 2,
|
||||
c_binaryBit = 4,
|
||||
};
|
||||
|
||||
static MxResult __stdcall WriteVariable(LegoStream* p_stream, MxVariableTable* p_from, const char* p_variableName);
|
||||
static MxS32 __stdcall ReadVariable(LegoStream* p_stream, MxVariableTable* p_to);
|
||||
|
||||
protected:
|
||||
MxU8 m_mode;
|
||||
};
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10045b00
|
||||
// LegoStream::`scalar deleting destructor'
|
||||
|
||||
// VTABLE: LEGO1 0x100db730
|
||||
class LegoFileStream : public LegoStream {
|
||||
public:
|
||||
LegoFileStream();
|
||||
virtual ~LegoFileStream() override;
|
||||
|
||||
MxResult Read(void* p_buffer, MxU32 p_size) override;
|
||||
MxResult Write(const void* p_buffer, MxU32 p_size) override;
|
||||
MxResult Tell(MxU32* p_offset) override;
|
||||
MxResult Seek(MxU32 p_offset) override;
|
||||
|
||||
MxResult Open(const char* p_filename, OpenFlags p_mode);
|
||||
|
||||
LegoFileStream* FUN_10006030(MxString p_str);
|
||||
|
||||
private:
|
||||
FILE* m_hFile;
|
||||
};
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10099230
|
||||
// LegoFileStream::`scalar deleting destructor'
|
||||
|
||||
// VTABLE: LEGO1 0x100db710
|
||||
class LegoMemoryStream : public LegoStream {
|
||||
public:
|
||||
LegoMemoryStream(char* p_buffer);
|
||||
|
||||
MxResult Read(void* p_buffer, MxU32 p_size) override;
|
||||
MxResult Write(const void* p_buffer, MxU32 p_size) override;
|
||||
MxResult Tell(MxU32* p_offset) override;
|
||||
MxResult Seek(MxU32 p_offset) override;
|
||||
|
||||
private:
|
||||
char* m_buffer;
|
||||
MxU32 m_offset;
|
||||
};
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10045a80
|
||||
// LegoMemoryStream::~LegoMemoryStream
|
||||
|
||||
// SYNTHETIC: LEGO1 0x100990f0
|
||||
// LegoMemoryStream::`scalar deleting destructor'
|
||||
|
||||
#endif // LEGOSTREAM_H
|
||||
15
LEGO1/lego/legoomni/include/legounknown100d6b4c.h
Normal file
15
LEGO1/lego/legoomni/include/legounknown100d6b4c.h
Normal file
@ -0,0 +1,15 @@
|
||||
#ifndef LEGOUNKNOWN100D6B4C_H
|
||||
#define LEGOUNKNOWN100D6B4C_H
|
||||
|
||||
#include "decomp.h"
|
||||
|
||||
class LegoCacheSound;
|
||||
|
||||
// VTABLE: LEGO1 0x100d6b4c
|
||||
// SIZE 0x20
|
||||
class LegoUnknown100d6b4c {
|
||||
public:
|
||||
void FUN_1003dc40(LegoCacheSound** p_und);
|
||||
};
|
||||
|
||||
#endif // LEGOUNKNOWN100D6B4C_H
|
||||
@ -2,10 +2,11 @@
|
||||
#define LEGOUNKSAVEDATAWRITER_H
|
||||
|
||||
#include "decomp.h"
|
||||
#include "lego/sources/misc/legostorage.h"
|
||||
#include "mxtypes.h"
|
||||
|
||||
class AutoROI;
|
||||
class LegoROI;
|
||||
class LegoStream;
|
||||
|
||||
struct LegoSaveDataEntry3 {
|
||||
char* m_name;
|
||||
@ -34,7 +35,8 @@ struct LegoSaveDataEntry3 {
|
||||
|
||||
class LegoUnkSaveDataWriter {
|
||||
public:
|
||||
MxResult WriteSaveData3(LegoStream* p_stream);
|
||||
MxResult WriteSaveData3(LegoStorage* p_stream);
|
||||
AutoROI* FUN_10083500(undefined4, undefined4);
|
||||
void FUN_10083db0(LegoROI* p_roi);
|
||||
};
|
||||
|
||||
|
||||
@ -9,7 +9,9 @@
|
||||
|
||||
class MxAtomId;
|
||||
class LegoEntity;
|
||||
class LegoAnimPresenter;
|
||||
|
||||
void FUN_1003e050(LegoAnimPresenter* p_presenter);
|
||||
Extra::ActionType MatchActionString(const char*);
|
||||
void InvokeAction(Extra::ActionType p_actionId, MxAtomId& p_pAtom, int p_targetEntityId, LegoEntity* p_sender);
|
||||
void ConvertHSVToRGB(float p_h, float p_s, float p_v, float* p_rOut, float* p_bOut, float* p_gOut);
|
||||
|
||||
@ -23,6 +23,8 @@ class LegoVehicleBuildState : public LegoState {
|
||||
return !strcmp(p_name, this->m_className.GetData()) || LegoState::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual MxResult VTable0x1c(LegoFile* p_legoFile) override; // vtable+0x1c
|
||||
|
||||
// SYNTHETIC: LEGO1 0x100260a0
|
||||
// LegoVehicleBuildState::`scalar deleting destructor'
|
||||
|
||||
|
||||
@ -19,11 +19,11 @@ class LegoVideoManager : public MxVideoManager {
|
||||
LegoVideoManager();
|
||||
virtual ~LegoVideoManager() override;
|
||||
|
||||
__declspec(dllexport) int EnableRMDevice();
|
||||
__declspec(dllexport) int DisableRMDevice();
|
||||
int EnableRMDevice();
|
||||
int DisableRMDevice();
|
||||
void EnableFullScreenMovie(MxBool p_enable);
|
||||
__declspec(dllexport) void EnableFullScreenMovie(MxBool p_enable, MxBool p_scale);
|
||||
__declspec(dllexport) void MoveCursor(MxS32 p_cursorX, MxS32 p_cursorY);
|
||||
void EnableFullScreenMovie(MxBool p_enable, MxBool p_scale);
|
||||
void MoveCursor(MxS32 p_cursorX, MxS32 p_cursorY);
|
||||
|
||||
virtual MxResult Tickle() override; // vtable+0x8
|
||||
virtual void Destroy() override; // vtable+0x18
|
||||
@ -31,8 +31,9 @@ class LegoVideoManager : public MxVideoManager {
|
||||
override; // vtable+0x2c
|
||||
virtual MxResult RealizePalette(MxPalette*) override; // vtable+0x30
|
||||
virtual void UpdateView(MxU32 p_x, MxU32 p_y, MxU32 p_width, MxU32 p_height) override; // vtable+0x34
|
||||
virtual void VTable0x38(undefined4, undefined4); // vtable+0x38
|
||||
// FUNCTION: LGEO1 0x1007ab10
|
||||
virtual MxPresenter* GetPresenterAt(MxS32 p_x, MxS32 p_y); // vtable+0x38
|
||||
|
||||
// FUNCTION: LEGO1 0x1007ab10
|
||||
virtual LegoUnknown100d9d00* VTable0x3c() { return m_unk0x100d9d00; } // vtable+0x3c
|
||||
|
||||
void SetSkyColor(float p_red, float p_green, float p_blue);
|
||||
@ -72,8 +73,8 @@ class LegoVideoManager : public MxVideoManager {
|
||||
MxS32 m_cursorYCopy; // 0x508
|
||||
MxS32 m_cursorX; // 0x50c
|
||||
MxS32 m_cursorY; // 0x510
|
||||
LPDIRECTDRAWSURFACE m_unk0x514; // 0x514
|
||||
RECT m_unk0x518; // 0x518
|
||||
LPDIRECTDRAWSURFACE m_cursorSurface; // 0x514
|
||||
RECT m_cursorRect; // 0x518
|
||||
undefined4 m_unk0x528; // 0x528
|
||||
MxBool m_drawFPS; // 0x52c
|
||||
RECT m_fpsRect; // 0x530
|
||||
|
||||
@ -1,23 +1,39 @@
|
||||
#ifndef LEGOWORLD_H
|
||||
#define LEGOWORLD_H
|
||||
|
||||
#include "legocachesound.h"
|
||||
#include "legocachesoundlist.h"
|
||||
#include "legocameracontroller.h"
|
||||
#include "legoentity.h"
|
||||
#include "legoentitylist.h"
|
||||
#include "legopathcontrollerlist.h"
|
||||
#include "mxcorelist.h"
|
||||
#include "mxpresenter.h"
|
||||
#include "mxpresenterlist.h"
|
||||
|
||||
class IslePathActor;
|
||||
class LegoPathBoundary;
|
||||
class LegoHideAnimPresenter;
|
||||
|
||||
struct CoreSetCompare {
|
||||
MxS32 operator()(MxCore* const& p_a, MxCore* const& p_b) const { return (MxS32) p_a < (MxS32) p_b; }
|
||||
};
|
||||
|
||||
typedef set<MxCore*, CoreSetCompare> MxCoreSet;
|
||||
|
||||
// VTABLE: LEGO1 0x100d6280
|
||||
// SIZE 0xf8
|
||||
class LegoWorld : public LegoEntity {
|
||||
public:
|
||||
__declspec(dllexport) LegoWorld();
|
||||
__declspec(dllexport) virtual ~LegoWorld(); // vtable+0x0
|
||||
enum StartupTicks {
|
||||
e_start = 0,
|
||||
e_one,
|
||||
e_two,
|
||||
e_three,
|
||||
e_four
|
||||
};
|
||||
|
||||
LegoWorld();
|
||||
virtual ~LegoWorld() override; // vtable+0x0
|
||||
|
||||
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x4
|
||||
virtual MxResult Tickle() override; // vtable+0x8
|
||||
@ -37,9 +53,9 @@ class LegoWorld : public LegoEntity {
|
||||
|
||||
virtual MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
|
||||
virtual void Destroy(MxBool p_fromDestructor) override; // vtable+0x1c
|
||||
virtual void VTable0x50(); // vtable+0x50
|
||||
virtual void ReadyWorld(); // vtable+0x50
|
||||
virtual LegoCameraController* VTable0x54(); // vtable+0x54
|
||||
virtual void VTable0x58(MxCore* p_object); // vtable+0x58
|
||||
virtual void Add(MxCore* p_object); // vtable+0x58
|
||||
virtual MxBool VTable0x5c(); // vtable+0x5c
|
||||
|
||||
// FUNCTION: LEGO1 0x100010a0
|
||||
@ -51,55 +67,96 @@ class LegoWorld : public LegoEntity {
|
||||
inline LegoCameraController* GetCamera() { return m_cameraController; }
|
||||
inline undefined4 GetUnknown0xec() { return m_unk0xec; }
|
||||
|
||||
undefined FUN_100220e0();
|
||||
void EndAction(MxCore* p_object);
|
||||
MxBool PresentersPending();
|
||||
void Remove(MxCore* p_object);
|
||||
void FUN_1001fc80(IslePathActor* p_actor);
|
||||
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();
|
||||
MxS32 GetCurrPathInfo(LegoPathBoundary** p_path, MxS32& p_value);
|
||||
MxPresenter* FindPresenter(const char* p_presenter, const char* p_name);
|
||||
MxCore* FUN_10021790(const MxAtomId& p_atom, MxS32 p_objectId);
|
||||
MxCore* Find(const char* p_class, const char* p_name);
|
||||
MxCore* Find(const MxAtomId& p_atom, MxS32 p_entityId);
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1001dee0
|
||||
// LegoWorld::`scalar deleting destructor'
|
||||
|
||||
protected:
|
||||
LegoPathControllerList m_list0x68; // 0x68
|
||||
MxPresenterList m_list0x80; // 0x80
|
||||
LegoCameraController* m_cameraController; // 0x98
|
||||
LegoEntityList* m_entityList; // 0x9c
|
||||
MxCoreList* m_coreList; // 0xa0
|
||||
undefined m_unk0xa4[0x14]; // 0xa4
|
||||
MxPresenterList m_list0xb8; // 0xb8
|
||||
undefined m_unk0xd0[0x1c]; // 0xd0
|
||||
undefined4 m_unk0xec; // 0xec
|
||||
undefined4 m_unk0xf0; // 0xf0
|
||||
MxS16 m_unk0xf4; // 0xf4
|
||||
MxBool m_worldStarted; // 0xf6
|
||||
undefined m_unk0xf7; // 0xf7
|
||||
LegoPathControllerList m_list0x68; // 0x68
|
||||
MxPresenterList m_animPresenters; // 0x80
|
||||
LegoCameraController* m_cameraController; // 0x98
|
||||
LegoEntityList* m_entityList; // 0x9c
|
||||
LegoCacheSoundList* m_cacheSoundList; // 0xa0
|
||||
MxBool m_destroyed; // 0xa4
|
||||
MxCoreSet m_set0xa8; // 0xa8
|
||||
MxPresenterList m_controlPresenters; // 0xb8
|
||||
MxCoreSet m_set0xd0; // 0xd0
|
||||
list<AutoROI*> m_list0xe0; // 0xe0
|
||||
undefined4 m_unk0xec; // 0xec
|
||||
LegoHideAnimPresenter* m_hideAnimPresenter; // 0xf0
|
||||
MxS16 m_startupTicks; // 0xf4
|
||||
MxBool m_worldStarted; // 0xf6
|
||||
undefined m_unk0xf7; // 0xf7
|
||||
};
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1001eed0
|
||||
// MxPresenterListCursor::`scalar deleting destructor'
|
||||
// clang-format off
|
||||
// TEMPLATE: LEGO1 0x1001d780
|
||||
// _Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::~_Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >
|
||||
|
||||
// TEMPLATE: LEGO1 0x1001ef40
|
||||
// MxPtrListCursor<MxPresenter>::~MxPtrListCursor<MxPresenter>
|
||||
// TEMPLATE: LEGO1 0x1001d850
|
||||
// _Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::iterator::_Inc
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1001ef90
|
||||
// MxListCursor<MxPresenter *>::`scalar deleting destructor'
|
||||
// TEMPLATE: LEGO1 0x1001d890
|
||||
// _Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::erase
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1001f000
|
||||
// MxPtrListCursor<MxPresenter>::`scalar deleting destructor'
|
||||
// TEMPLATE: LEGO1 0x1001dcf0
|
||||
// _Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Erase
|
||||
|
||||
// TEMPLATE: LEGO1 0x1001f070
|
||||
// MxListCursor<MxPresenter *>::~MxListCursor<MxPresenter *>
|
||||
// TEMPLATE: LEGO1 0x1001dd30
|
||||
// _Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Init
|
||||
|
||||
// FUNCTION: LEGO1 0x1001f0c0
|
||||
// MxPresenterListCursor::~MxPresenterListCursor
|
||||
// TEMPLATE: LEGO1 0x1001ddf0
|
||||
// list<AutoROI *,allocator<AutoROI *> >::~list<AutoROI *,allocator<AutoROI *> >
|
||||
|
||||
// TEMPLATE: LEGO1 0x10020760
|
||||
// MxListCursor<MxPresenter *>::MxListCursor<MxPresenter *>
|
||||
// TEMPLATE: LEGO1 0x1001df50
|
||||
// List<AutoROI *>::~List<AutoROI *>
|
||||
|
||||
// TEMPLATE: LEGO1 0x1001de60
|
||||
// list<AutoROI *,allocator<AutoROI *> >::_Buynode
|
||||
|
||||
// TEMPLATE: LEGO1 0x1001de90
|
||||
// set<MxCore *,CoreSetCompare,allocator<MxCore *> >::~set<MxCore *,CoreSetCompare,allocator<MxCore *> >
|
||||
|
||||
// TEMPLATE: LEGO1 0x1001df00
|
||||
// Set<MxCore *,CoreSetCompare>::~Set<MxCore *,CoreSetCompare>
|
||||
|
||||
// TEMPLATE: LEGO1 0x1001f590
|
||||
// list<AutoROI *,allocator<AutoROI *> >::erase
|
||||
|
||||
// TEMPLATE: LEGO1 0x100208b0
|
||||
// _Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::insert
|
||||
|
||||
// TEMPLATE: LEGO1 0x10020b20
|
||||
// _Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::iterator::_Dec
|
||||
|
||||
// XTEMPLATE LEGO1 0x10020b70
|
||||
|
||||
// TEMPLATE: LEGO1 0x10020bb0
|
||||
// _Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Buynode
|
||||
|
||||
// TEMPLATE: LEGO1 0x10020bd0
|
||||
// _Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Insert
|
||||
|
||||
// TEMPLATE: LEGO1 0x10020e50
|
||||
// _Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Lrotate
|
||||
|
||||
// TEMPLATE: LEGO1 0x10020eb0
|
||||
// _Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Rrotate
|
||||
|
||||
// TEMPLATE: LEGO1 0x10021340
|
||||
// _Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::find
|
||||
|
||||
// TEMPLATE: LEGO1 0x10022360
|
||||
// _Construct
|
||||
|
||||
// GLOBAL: LEGO1 0x100f11a0
|
||||
// _Tree<MxCore *,MxCore *,set<MxCore *,CoreSetCompare,allocator<MxCore *> >::_Kfn,CoreSetCompare,allocator<MxCore *> >::_Nil
|
||||
// clang-format on
|
||||
|
||||
#endif // LEGOWORLD_H
|
||||
|
||||
@ -10,7 +10,7 @@ class LegoWorldPresenter : public LegoEntityPresenter {
|
||||
LegoWorldPresenter();
|
||||
virtual ~LegoWorldPresenter() override; // vtable+0x0
|
||||
|
||||
__declspec(dllexport) static void configureLegoWorldPresenter(MxS32 p_legoWorldPresenterQuality);
|
||||
static void configureLegoWorldPresenter(MxS32 p_legoWorldPresenterQuality);
|
||||
|
||||
// FUNCTION: LEGO1 0x10066630
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
|
||||
@ -23,6 +23,13 @@ class Motocycle : public IslePathActor {
|
||||
return !strcmp(p_name, Motocycle::ClassName()) || IslePathActor::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
|
||||
virtual void VTable0x70(float p_float) override; // vtable+0x70
|
||||
virtual MxU32 VTable0xcc() override; // vtable+0xcc
|
||||
virtual MxU32 VTable0xd4(MxType17NotificationParam& p_param) override; // vtable+0xd4
|
||||
virtual MxU32 VTable0xdc(MxType19NotificationParam&) override; // vtable+0xdc
|
||||
virtual void VTable0xe4() override; // vtable+0xe4
|
||||
|
||||
// SYNTHETIC: LEGO1 0x100359d0
|
||||
// Motocycle::`scalar deleting destructor'
|
||||
|
||||
|
||||
@ -39,7 +39,7 @@ class MxBackgroundAudioManager : public MxCore {
|
||||
void FUN_1007ef40();
|
||||
void FadeInOrFadeOut();
|
||||
|
||||
__declspec(dllexport) void Enable(MxBool p_enable);
|
||||
void Enable(MxBool p_enable);
|
||||
virtual MxResult Create(MxAtomId& p_script, MxU32 p_frequencyMS);
|
||||
|
||||
void Stop();
|
||||
|
||||
@ -41,12 +41,12 @@ class MxControlPresenter : public MxCompositePresenter {
|
||||
MxBool FUN_10044480(undefined4, undefined4*);
|
||||
void FUN_10044540(undefined2);
|
||||
|
||||
undefined2 m_unk0x4c; // 0x4c
|
||||
MxS16 m_unk0x4e; // 0x4e
|
||||
MxBool m_unk0x50; // 0x50
|
||||
undefined2 m_unk0x52; // 0x52
|
||||
undefined2 m_unk0x54; // 0x54
|
||||
undefined4* m_unk0x58; // 0x58
|
||||
undefined2 m_unk0x4c; // 0x4c
|
||||
MxS16 m_unk0x4e; // 0x4e
|
||||
MxBool m_unk0x50; // 0x50
|
||||
undefined2 m_unk0x52; // 0x52
|
||||
undefined2 m_unk0x54; // 0x54
|
||||
MxS16* m_unk0x58; // 0x58
|
||||
};
|
||||
|
||||
// SYNTHETIC: LEGO1 0x100440f0
|
||||
|
||||
@ -13,7 +13,7 @@ class MxTransitionManager : public MxCore {
|
||||
MxTransitionManager();
|
||||
virtual ~MxTransitionManager() override; // vtable+0x0
|
||||
|
||||
__declspec(dllexport) void SetWaitIndicator(MxVideoPresenter* p_waitIndicator);
|
||||
void SetWaitIndicator(MxVideoPresenter* p_waitIndicator);
|
||||
|
||||
virtual MxResult Tickle(); // vtable+0x8
|
||||
|
||||
|
||||
@ -15,21 +15,23 @@ class Pizza : public IsleActor {
|
||||
Pizza();
|
||||
virtual ~Pizza() override;
|
||||
|
||||
virtual MxResult Tickle() override; // vtable+08
|
||||
virtual MxResult Tickle() override; // vtable+0x8
|
||||
|
||||
// FUNCTION: LEGO1 0x10037f90
|
||||
inline const char* ClassName() const // vtable+0c
|
||||
inline const char* ClassName() const // vtable+0xc
|
||||
{
|
||||
// STRING: LEGO1 0x100f038c
|
||||
return "Pizza";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10037fa0
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+10
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, Pizza::ClassName()) || IsleActor::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
|
||||
|
||||
// SYNTHETIC: LEGO1 0x100380e0
|
||||
// Pizza::`scalar deleting destructor'
|
||||
|
||||
|
||||
@ -28,6 +28,8 @@ class PizzaMissionState : public LegoState {
|
||||
return !strcmp(p_name, PizzaMissionState::ClassName()) || LegoState::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual MxResult VTable0x1c(LegoFile* p_legoFile) override; // vtable+0x1c
|
||||
|
||||
inline MxU16 GetColor(MxU8 p_id) { return GetState(p_id)->m_color; }
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10039350
|
||||
|
||||
@ -20,6 +20,8 @@ class Pizzeria : public IsleActor {
|
||||
return !strcmp(p_name, Pizzeria::ClassName()) || IsleActor::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1000e8d0
|
||||
// Pizzeria::`scalar deleting destructor'
|
||||
};
|
||||
|
||||
@ -22,6 +22,8 @@ class PizzeriaState : public LegoState {
|
||||
return !strcmp(p_name, PizzeriaState::ClassName()) || LegoState::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual MxResult VTable0x1c(LegoFile* p_legoFile) override; // vtable+0x1c
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10017ce0
|
||||
// PizzeriaState::`scalar deleting destructor'
|
||||
};
|
||||
|
||||
@ -1,7 +1,11 @@
|
||||
#ifndef POLICE_H
|
||||
#define POLICE_H
|
||||
|
||||
#include "decomp.h"
|
||||
#include "legoworld.h"
|
||||
#include "mxdsaction.h"
|
||||
#include "policestate.h"
|
||||
#include "radio.h"
|
||||
|
||||
// VTABLE: LEGO1 0x100d8a80
|
||||
// SIZE 0x110
|
||||
@ -26,8 +30,19 @@ class Police : public LegoWorld {
|
||||
return !strcmp(p_name, Police::ClassName()) || LegoWorld::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
|
||||
virtual void ReadyWorld() override; // vtable+0x50
|
||||
virtual MxBool VTable0x5c() override; // vtable+0x5c
|
||||
virtual MxBool VTable0x64() override; // vtable+0x64
|
||||
virtual void VTable0x68(MxBool p_add) override; // vtable+0x68
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1005e300
|
||||
// Police::`scalar deleting destructor'
|
||||
|
||||
private:
|
||||
Radio m_radio; // 0xf8
|
||||
PoliceState* m_policeState; // 0x108
|
||||
undefined4 m_unk0x10c; // 0x10c
|
||||
};
|
||||
|
||||
#endif // POLICE_H
|
||||
|
||||
@ -23,6 +23,8 @@ class PoliceState : public LegoState {
|
||||
return !strcmp(p_name, PoliceState::ClassName()) || LegoState::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual MxResult VTable0x1c(LegoFile* p_legoFile) override; // vtable+0x1c
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1005e920
|
||||
// PoliceState::`scalar deleting destructor'
|
||||
|
||||
|
||||
@ -24,6 +24,9 @@ class RaceCar : public IslePathActor {
|
||||
return !strcmp(p_name, RaceCar::ClassName()) || IslePathActor::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
|
||||
virtual MxU32 VTable0xcc() override; // vtable+0xcc
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10028400
|
||||
// RaceCar::`scalar deleting destructor'
|
||||
|
||||
|
||||
@ -6,6 +6,19 @@
|
||||
// VTABLE: LEGO1 0x100d48a8
|
||||
// SIZE 0x68
|
||||
class RaceStandsEntity : public BuildingEntity {
|
||||
// FUNCTION: LEGO1 0x1000efa0
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f0300
|
||||
return "RaceStandsEntity";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1000efb0
|
||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, RaceStandsEntity::ClassName()) || BuildingEntity::IsA(p_name);
|
||||
}
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1000f9e0
|
||||
// RaceStandsEntity::`scalar deleting destructor'
|
||||
};
|
||||
|
||||
@ -30,6 +30,8 @@ class RaceState : public LegoState {
|
||||
return !strcmp(p_name, RaceState::ClassName()) || LegoState::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual MxResult VTable0x1c(LegoFile* p_legoFile) override; // vtable+0x1c
|
||||
|
||||
inline MxU16 GetColor(MxU8 p_id) { return GetState(p_id)->m_color; }
|
||||
|
||||
// SYNTHETIC: LEGO1 0x100160d0
|
||||
|
||||
@ -10,6 +10,8 @@ class Radio : public MxCore {
|
||||
Radio();
|
||||
virtual ~Radio() override;
|
||||
|
||||
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||
|
||||
// FUNCTION: LEGO1 0x1002c8e0
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
@ -23,6 +25,8 @@ class Radio : public MxCore {
|
||||
return !strcmp(p_name, Radio::ClassName()) || MxCore::IsA(p_name);
|
||||
}
|
||||
|
||||
void Initialize(MxBool p_und);
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1002c970
|
||||
// Radio::`scalar deleting destructor'
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user