mirror of
https://github.com/isledecomp/isle.git
synced 2026-01-28 18:51:16 +00:00
Merge branch 'master' into dong
This commit is contained in:
commit
2e70d642d7
6
.clang-tidy
Normal file
6
.clang-tidy
Normal file
@ -0,0 +1,6 @@
|
||||
Checks: >
|
||||
-*,
|
||||
readability-braces-around-statements,
|
||||
modernize-use-override
|
||||
WarningsAsErrors: '-*,readability-braces-around-statements,modernize-use-override'
|
||||
HeaderFilterRegex: ".*"
|
||||
23
.github/workflows/build.yml
vendored
23
.github/workflows/build.yml
vendored
@ -14,18 +14,20 @@ jobs:
|
||||
matrix:
|
||||
toolchain:
|
||||
- { name: 'MSVC', shell: 'sh', setup-cmake: true, setup-ninja: true, setup-msvc: true }
|
||||
- { name: 'msys2 mingw32', shell: 'msys2 {0}', setup-msys2: true }
|
||||
- { name: 'msys2 mingw32', shell: 'msys2 {0}', msystem: mingw32, msys-env: mingw-w64-i686, clang-tidy: true, werror: true }
|
||||
- { name: 'msys2 clang32', shell: 'msys2 {0}', msystem: clang32, msys-env: mingw-w64-clang-i686, clang-tidy: true, werror: true, no-dx5-libs: true }
|
||||
|
||||
steps:
|
||||
- name: Set up MSYS2
|
||||
if: matrix.toolchain.setup-msys2
|
||||
if: ${{ !!matrix.toolchain.msystem }}
|
||||
uses: msys2/setup-msys2@v2
|
||||
with:
|
||||
msystem: mingw32
|
||||
msystem: ${{ matrix.toolchain.msystem }}
|
||||
install: >-
|
||||
mingw-w64-i686-cc
|
||||
mingw-w64-i686-cmake
|
||||
mingw-w64-i686-ninja
|
||||
${{ matrix.toolchain.msys-env }}-cc
|
||||
${{ matrix.toolchain.msys-env }}-cmake
|
||||
${{ matrix.toolchain.msys-env }}-ninja
|
||||
${{ matrix.toolchain.msys-env }}-clang-tools-extra
|
||||
|
||||
- name: Setup cmake
|
||||
if: matrix.toolchain.setup-cmake
|
||||
@ -45,8 +47,13 @@ jobs:
|
||||
|
||||
- name: Build
|
||||
run: |
|
||||
cmake -S . -B build -DCMAKE_BUILD_TYPE=Debug -GNinja -Werror=dev
|
||||
cmake --build build
|
||||
cmake -S . -B build -GNinja \
|
||||
-DCMAKE_BUILD_TYPE=Debug \
|
||||
-DISLE_USE_DX5_LIBS=${{ !matrix.toolchain.no-dx5-libs }} \
|
||||
-DENABLE_CLANG_TIDY=${{ !!matrix.toolchain.clang-tidy }} \
|
||||
-DISLE_WERROR=${{ !!matrix.toolchain.werror }} \
|
||||
-Werror=dev
|
||||
cmake --build build -- -k0
|
||||
|
||||
build:
|
||||
name: 'MSVC 4.20'
|
||||
|
||||
3
.github/workflows/format.yml
vendored
3
.github/workflows/format.yml
vendored
@ -14,10 +14,9 @@ jobs:
|
||||
run: |
|
||||
find LEGO1 ISLE -iname '*.h' -o -iname '*.cpp' | xargs \
|
||||
pipx run "clang-format>=17,<18" \
|
||||
--Werror \
|
||||
--dry-run \
|
||||
--style=file \
|
||||
-i
|
||||
git diff --exit-code
|
||||
|
||||
python-format:
|
||||
name: 'Python'
|
||||
|
||||
@ -2,6 +2,18 @@ cmake_minimum_required(VERSION 3.13 FATAL_ERROR)
|
||||
|
||||
project(isle CXX)
|
||||
|
||||
include(CheckCXXSourceCompiles)
|
||||
include(CMakeDependentOption)
|
||||
include(CMakePushCheckState)
|
||||
|
||||
set(CMAKE_EXPORT_COMPILE_COMMANDS TRUE)
|
||||
option(ENABLE_CLANG_TIDY "Enable clang-tidy")
|
||||
if (ENABLE_CLANG_TIDY)
|
||||
find_program(CLANG_TIDY_BIN NAMES "clang-tidy")
|
||||
set(CMAKE_C_CLANG_TIDY "${CLANG_TIDY_BIN}")
|
||||
set(CMAKE_CXX_CLANG_TIDY "${CLANG_TIDY_BIN}")
|
||||
endif()
|
||||
|
||||
math(EXPR bits "8 * ${CMAKE_SIZEOF_VOID_P}")
|
||||
message(STATUS "Building ${bits}-bit LEGO Island")
|
||||
if (NOT bits EQUAL 32)
|
||||
@ -21,15 +33,44 @@ macro(register_lego1_target __target)
|
||||
list(APPEND lego1_targets ${__target})
|
||||
endmacro()
|
||||
|
||||
function(add_cxx_warning WARNING)
|
||||
if(ISLE_WERROR)
|
||||
set(compiler_option "-Werror=${WARNING}")
|
||||
else()
|
||||
set(compiler_option "-W${WARNING}")
|
||||
endif()
|
||||
string(MAKE_C_IDENTIFIER "COMPILER_SUPPORTS${compiler_option}" varname)
|
||||
|
||||
cmake_push_check_state(RESET)
|
||||
set(CMAKE_REQUIRED_FLAGS "${compiler_option} ")
|
||||
if(MSVC)
|
||||
string(APPEND CMAKE_REQUIRED_FLAGS "/WX")
|
||||
else()
|
||||
string(APPEND CMAKE_REQUIRED_FLAGS "-Werror")
|
||||
endif()
|
||||
check_cxx_source_compiles("int main() { return 0; }" ${varname})
|
||||
cmake_pop_check_state()
|
||||
|
||||
if(${varname})
|
||||
add_compile_options(${compiler_option})
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
message(STATUS "MSVC for decompilation: ${MSVC_FOR_DECOMP}")
|
||||
|
||||
option(ISLE_WERROR "Treat warnings as errors" OFF)
|
||||
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)
|
||||
cmake_dependent_option(ISLE_USE_DX5_LIBS "Build with internal DirectX 5 SDK Libraries" ON ISLE_USE_DX5 OFF)
|
||||
|
||||
add_cxx_warning(parentheses)
|
||||
|
||||
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")
|
||||
if(ISLE_USE_DX5_LIBS)
|
||||
target_link_directories(DirectX5::DirectX5 INTERFACE "${CMAKE_SOURCE_DIR}/3rdparty/dx5/lib")
|
||||
endif()
|
||||
|
||||
add_library(Smacker::Smacker STATIC IMPORTED)
|
||||
set_property(TARGET Smacker::Smacker PROPERTY IMPORTED_LOCATION "${CMAKE_SOURCE_DIR}/3rdparty/smacker/smack.lib")
|
||||
@ -110,7 +151,7 @@ add_library(misc STATIC
|
||||
)
|
||||
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_include_directories(misc PRIVATE "${CMAKE_SOURCE_DIR}/LEGO1/omni/include" "${CMAKE_SOURCE_DIR}/LEGO1" "${CMAKE_SOURCE_DIR}/LEGO1/realtime" "${CMAKE_SOURCE_DIR}/util")
|
||||
target_link_libraries(misc PRIVATE)
|
||||
|
||||
add_library(3dmanager STATIC
|
||||
@ -208,7 +249,7 @@ add_library(omni STATIC
|
||||
)
|
||||
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_include_directories(omni PRIVATE "${CMAKE_SOURCE_DIR}/LEGO1/omni/include" "${CMAKE_SOURCE_DIR}/LEGO1" "${CMAKE_SOURCE_DIR}/LEGO1" "${CMAKE_SOURCE_DIR}/util")
|
||||
target_link_libraries(omni PRIVATE dsound winmm FLIC::FLIC Smacker::Smacker)
|
||||
|
||||
add_library(lego1 SHARED
|
||||
@ -352,6 +393,7 @@ 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")
|
||||
target_include_directories(lego1 PUBLIC "${CMAKE_SOURCE_DIR}/LEGO1/realtime")
|
||||
|
||||
# Link libraries
|
||||
target_link_libraries(lego1 PRIVATE tglrl viewmanager realtime mxdirectx roi FLIC::FLIC Vec::Vec dinput dxguid misc 3dmanager omni)
|
||||
@ -377,6 +419,8 @@ if (ISLE_BUILD_APP)
|
||||
ISLE/define.cpp
|
||||
)
|
||||
|
||||
target_compile_definitions(isle PRIVATE ISLE_APP)
|
||||
|
||||
# Use internal DirectX 5 if required
|
||||
target_link_libraries(isle PRIVATE $<$<BOOL:${ISLE_USE_DX5}>:DirectX5::DirectX5>)
|
||||
|
||||
|
||||
@ -1,8 +1,10 @@
|
||||
# Contributing
|
||||
|
||||
## Learning Decompilation
|
||||
## Important Note
|
||||
|
||||
Generally, decompilation is a fairly advanced skill. If you aren't already familiar with it, it will likely take you months, or even years, to learn the skills necessary to do it (depending on your current proficiency with C/C++ and x86 assembly). If you're still interested, [part 1 of the decompilation vlog](https://www.youtube.com/watch?v=MToTEqoVv3I) covers the overall process and should give you a starting point that you can dive in from.
|
||||
While we're thrilled that there is so much interest in reverse engineering LEGO Island and are happy to accept contributions from anyone who would like to help progress us further to our goal of a complete codebase, proposed changes to this repository must adhere to a certain degree of engineering quality. While the established contributors here are more than happy to provide code reviews and constructive criticism, it is not their job to teach potential contributors C++ or decompilation fundamentals. As a project that is largely an artifact of the free time of its contributors, the more of that (often scarce) resource that can be dedicated to efficient work, the faster the decompilation will progress. Unfortunately, this results in well-intentioned but poorly constructed contributions actually hurting progress in the long-term. While we are greatly appreciative of the sentiment, if you aren't very confident in your decompilation abilities, it is generally in the project's best interest that you return when you have a better grasp over the process.
|
||||
|
||||
Generally, decompilation is a fairly advanced skill. Depending on your current proficiency with C/C++ and x86 assembly, it could take you months or even years to learn the skills necessary to do it adequately. If you're still interested in learning, [part 1 of the decompilation vlog](https://www.youtube.com/watch?v=MToTEqoVv3I) covers the overall process and should give you a starting point that you can dive in from. Once again, please make yourself familiar with this process before attempting to contribute code to this project.
|
||||
|
||||
## Ghidra Server
|
||||
|
||||
@ -15,7 +17,7 @@ To access the Ghidra repository, use the following details:
|
||||
|
||||
## General Guidelines
|
||||
|
||||
If you have contributions, feel free to create a pull request! Someone will review and merge it (or provide feedback) as soon as possible.
|
||||
If you feel fit to contribute, feel free to create a pull request! Someone will review and merge it (or provide feedback) as soon as possible.
|
||||
|
||||
Please keep your pull requests small and understandable; you may be able to shoot ahead and make a lot of progress in a short amount of time, but this is a collaborative project, so you must allow others to catch up and follow along. Large pull requests become significantly more unwieldy to review, and as such make it exponentially more likely for a mistake or error to go undetected. They also make it harder to merge other pull requests because the more files you modify, the more likely it is for a merge conflict to occur. A general guideline is to keep submissions limited to one class at a time. Sometimes two or more classes may be too interlinked for this to be feasible, so this is not a hard rule, however if your PR is starting to modify more than 10 or so files, it's probably getting too big.
|
||||
|
||||
|
||||
@ -770,12 +770,15 @@ inline void IsleApp::Tick(BOOL sleepIfNotNextFrame)
|
||||
return;
|
||||
}
|
||||
|
||||
if (!Lego())
|
||||
if (!Lego()) {
|
||||
return;
|
||||
if (!TickleManager())
|
||||
}
|
||||
if (!TickleManager()) {
|
||||
return;
|
||||
if (!Timer())
|
||||
}
|
||||
if (!Timer()) {
|
||||
return;
|
||||
}
|
||||
|
||||
MxLong currentTime = Timer()->GetRealTime();
|
||||
if (currentTime < g_lastFrameTime) {
|
||||
@ -828,8 +831,9 @@ inline void IsleApp::Tick(BOOL sleepIfNotNextFrame)
|
||||
this->m_gameStarted = 1;
|
||||
}
|
||||
}
|
||||
else if (sleepIfNotNextFrame != 0)
|
||||
else if (sleepIfNotNextFrame != 0) {
|
||||
Sleep(0);
|
||||
}
|
||||
}
|
||||
|
||||
// FUNCTION: ISLE 0x402e80
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
; LegoOmni.def : Declares the module paarameters for the LEGO1.DLL.
|
||||
|
||||
DESCRIPTION " Lego OMNI Windows Dynamic Link Library"
|
||||
; DESCRIPTION " Lego OMNI Windows Dynamic Link Library"
|
||||
|
||||
EXPORTS
|
||||
|
||||
@ -42,9 +42,6 @@ _Z5Timerv
|
||||
_Z7PickROIii
|
||||
_Z8Streamerv
|
||||
_Z9GameStatev
|
||||
_ZN10LegoEntityD0Ev
|
||||
_ZN10LegoEntityD1Ev
|
||||
_ZN10LegoEntityD2Ev
|
||||
_ZN10MxDSActionC1Ev
|
||||
_ZN10MxDSActionC2Ev
|
||||
_ZN10MxDSActionD0Ev
|
||||
@ -60,9 +57,6 @@ _ZN11MxPresenter4InitEv
|
||||
_ZN11MxPresenter6EnableEh
|
||||
_ZN11MxPresenter6TickleEv
|
||||
_ZN11MxPresenter9EndActionEv
|
||||
_ZN11MxPresenterD0Ev
|
||||
_ZN11MxPresenterD1Ev
|
||||
_ZN11MxPresenterD2Ev
|
||||
_ZN11MxScheduler11GetInstanceEv
|
||||
_ZN11MxScheduler17StartMultiTaskingEj
|
||||
_ZN11ViewManager9RemoveAllEP7ViewROI
|
||||
|
||||
@ -2,49 +2,124 @@
|
||||
#define ACT1STATE_H
|
||||
|
||||
#include "legostate.h"
|
||||
#include "legoutil.h"
|
||||
#include "roi/legoroi.h"
|
||||
|
||||
// VTABLE: LEGO1 0x100d7028
|
||||
// SIZE 0x26c
|
||||
class Act1State : public LegoState {
|
||||
public:
|
||||
enum {
|
||||
e_unk953 = 953,
|
||||
e_unk954 = 954,
|
||||
e_unk955 = 955,
|
||||
};
|
||||
|
||||
Act1State();
|
||||
|
||||
// FUNCTION: LEGO1 0x100338a0
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f0154
|
||||
return "Act1State";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x100338b0
|
||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, Act1State::ClassName()) || LegoState::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual MxBool SetFlag() override; // vtable+0x18
|
||||
virtual MxResult VTable0x1c(LegoFile* p_legoFile) override; // vtable+0x1c
|
||||
MxBool SetFlag() override; // vtable+0x18
|
||||
MxResult VTable0x1c(LegoFile* p_legoFile) override; // vtable+0x1c
|
||||
|
||||
inline void SetUnknown18(MxU32 p_unk0x18) { m_unk0x18 = p_unk0x18; }
|
||||
inline MxU32 GetUnknown18() { return m_unk0x18; }
|
||||
inline void SetUnknown21(MxS16 p_unk0x21) { m_unk0x21 = p_unk0x21; }
|
||||
inline MxS16 GetUnknown21() { return m_unk0x21; }
|
||||
inline void SetUnknown18(MxU32 p_unk0x18) { m_unk0x018 = p_unk0x18; }
|
||||
inline MxU32 GetUnknown18() { return m_unk0x018; }
|
||||
inline MxU32 GetUnknown1c() { return m_unk0x01c; }
|
||||
inline MxS16 GetUnknown21() { return m_unk0x021; }
|
||||
|
||||
inline void SetUnknown1c(MxU32 p_unk0x1c) { m_unk0x01c = p_unk0x1c; }
|
||||
inline void SetUnknown21(MxS16 p_unk0x21) { m_unk0x021 = p_unk0x21; }
|
||||
|
||||
void FUN_10034d00();
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10033960
|
||||
// Act1State::`scalar deleting destructor'
|
||||
|
||||
// SIZE 0x4c
|
||||
class NamedPlane {
|
||||
public:
|
||||
// FUNCTION: LEGO1 0x10033800
|
||||
NamedPlane() {}
|
||||
|
||||
inline void SetName(const char* p_name) { m_name = p_name; }
|
||||
inline const MxString* GetName() const { return &m_name; }
|
||||
|
||||
// FUNCTION: LEGO1 0x100344d0
|
||||
MxResult Serialize(LegoFile* p_file)
|
||||
{
|
||||
if (p_file->IsWriteMode()) {
|
||||
p_file->FUN_10006030(m_name);
|
||||
p_file->WriteVector3(m_point1);
|
||||
p_file->WriteVector3(m_point2);
|
||||
p_file->WriteVector3(m_point3);
|
||||
}
|
||||
else if (p_file->IsReadMode()) {
|
||||
p_file->ReadString(m_name);
|
||||
p_file->ReadVector3(m_point1);
|
||||
p_file->ReadVector3(m_point2);
|
||||
p_file->ReadVector3(m_point3);
|
||||
}
|
||||
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
private:
|
||||
MxString m_name; // 0x00
|
||||
Mx3DPointFloat m_point1; // 0x10
|
||||
Mx3DPointFloat m_point2; // 0x24
|
||||
Mx3DPointFloat m_point3; // 0x38
|
||||
};
|
||||
|
||||
protected:
|
||||
undefined m_unk0x08[0x10]; // 0x08
|
||||
MxU32 m_unk0x18; // 0x18
|
||||
undefined2 m_unk0x1c; // 0x1c
|
||||
undefined m_unk0x1e; // 0x1e
|
||||
undefined m_unk0x1f; // 0x1f
|
||||
undefined m_unk0x20; // 0x20
|
||||
MxBool m_unk0x21; // 0x21
|
||||
undefined m_unk0x22; // 0x22
|
||||
// TODO
|
||||
MxS32* m_unk0x008; // 0x008
|
||||
// FIXME: count for m_unk0x008
|
||||
MxS16 m_unk0x00c; // 0x00c
|
||||
undefined2 m_unk0x00e; // 0x00e
|
||||
undefined2 m_unk0x010; // 0x010
|
||||
undefined m_unk0x012; // 0x012
|
||||
MxS32 m_unk0x014; // 0x014
|
||||
MxU32 m_unk0x018; // 0x018
|
||||
MxU16 m_unk0x01c; // 0x01c
|
||||
undefined m_unk0x01e; // 0x01e
|
||||
undefined m_unk0x01f; // 0x01f
|
||||
undefined m_unk0x020; // 0x020
|
||||
undefined m_unk0x021; // 0x021
|
||||
undefined m_unk0x022; // 0x022
|
||||
undefined m_unk0x023; // 0x023
|
||||
NamedPlane m_unk0x024; // 0x024
|
||||
NamedPlane m_unk0x070; // 0x070
|
||||
NamedPlane m_unk0x0bc; // 0x0bc
|
||||
NamedPlane m_unk0x108; // 0x108
|
||||
NamedTexture* m_unk0x154; // 0x154
|
||||
NamedTexture* m_unk0x158; // 0x158
|
||||
NamedTexture* m_unk0x15c; // 0x15c
|
||||
MxCore* m_unk0x160; // 0x160
|
||||
NamedPlane m_unk0x164; // 0x164
|
||||
NamedTexture* m_unk0x1b0; // 0x1b0
|
||||
NamedTexture* m_unk0x1b4; // 0x1b4
|
||||
MxCore* m_unk0x1b8; // 0x1b8
|
||||
NamedPlane m_unk0x1bc; // 0x1bc
|
||||
NamedTexture* m_unk0x208; // 0x208
|
||||
MxCore* m_unk0x20c; // 0x20c
|
||||
NamedPlane m_unk0x210; // 0x210
|
||||
NamedTexture* m_unk0x25c; // 0x25c
|
||||
NamedTexture* m_unk0x260; // 0x260
|
||||
NamedTexture* m_unk0x264; // 0x264
|
||||
MxCore* m_unk0x268; // 0x268
|
||||
};
|
||||
|
||||
// FUNCTION: LEGO1 0x10033a70
|
||||
// Act1State::NamedPlane::~NamedPlane
|
||||
|
||||
#endif // ACT1STATE_H
|
||||
|
||||
@ -8,25 +8,25 @@
|
||||
class Act2Brick : public LegoPathActor {
|
||||
public:
|
||||
Act2Brick();
|
||||
virtual ~Act2Brick() override; // vtable+0x00
|
||||
~Act2Brick() override; // vtable+0x00
|
||||
|
||||
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||
virtual MxResult Tickle() override; // vtable+0x08
|
||||
MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||
MxResult Tickle() override; // vtable+0x08
|
||||
|
||||
// FUNCTION: LEGO1 0x1007a360
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f0438
|
||||
return "Act2Brick";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1007a370
|
||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, Act2Brick::ClassName()) || LegoEntity::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual MxS32 VTable0x94() override; // vtable+0x94
|
||||
MxS32 VTable0x94() override; // vtable+0x94
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1007a450
|
||||
// Act2Brick::`scalar deleting destructor'
|
||||
|
||||
@ -7,17 +7,17 @@
|
||||
// SIZE 0x68
|
||||
class Act2PoliceStation : public LegoEntity {
|
||||
public:
|
||||
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||
MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||
|
||||
// FUNCTION: LEGO1 0x1000e200
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f03fc
|
||||
return "Act2PoliceStation";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1000e210
|
||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, Act2PoliceStation::ClassName()) || LegoEntity::IsA(p_name);
|
||||
}
|
||||
|
||||
@ -9,31 +9,31 @@ class Act3 : public LegoWorld {
|
||||
public:
|
||||
Act3();
|
||||
|
||||
virtual ~Act3() override; // vtable+00
|
||||
~Act3() override; // vtable+00
|
||||
|
||||
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||
virtual MxResult Tickle() override; // vtable+0x08
|
||||
MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||
MxResult Tickle() override; // vtable+0x08
|
||||
|
||||
// FUNCTION: LEGO1 0x10072510
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f013c
|
||||
return "Act3";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10072520
|
||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, 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
|
||||
MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
|
||||
void Destroy(MxBool p_fromDestructor) override; // vtable+0x1c
|
||||
void ReadyWorld() override; // vtable+0x50
|
||||
MxBool VTable0x5c() override; // vtable+0x5c
|
||||
void VTable0x60() override; // vtable+0x60
|
||||
MxBool VTable0x64() override; // vtable+0x64
|
||||
void Enable(MxBool p_enable) override; // vtable+0x68
|
||||
|
||||
inline void SetUnkown420c(MxEntity* p_entity) { m_unk0x420c = p_entity; }
|
||||
inline void SetUnkown4270(MxU32 p_unk0x4270) { m_unk0x4270 = p_unk0x4270; }
|
||||
|
||||
@ -8,7 +8,7 @@
|
||||
class Act3Actor : public MxCore {
|
||||
public:
|
||||
// FUNCTION: LEGO1 0x100431b0
|
||||
inline virtual const char* ClassName() const override
|
||||
inline const char* ClassName() const override
|
||||
{
|
||||
// STRING: LEGO1 0x100f03ac
|
||||
return "Act3Actor";
|
||||
|
||||
@ -7,22 +7,22 @@
|
||||
class Act3Shark : public LegoAnimActor {
|
||||
public:
|
||||
// FUNCTION: LEGO1 0x100430c0
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
inline 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
|
||||
inline 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
|
||||
void ParseAction(char*) override; // vtable+0x20
|
||||
void SetWorldSpeed(MxFloat p_worldSpeed) override; // vtable+0x30
|
||||
void VTable0x70(float p_float) override; // vtable+0x70
|
||||
void VTable0x74(Matrix4& p_transform) override; // vtable+0x74
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10043020
|
||||
// Act3Shark::`scalar deleting destructor'
|
||||
|
||||
@ -10,19 +10,19 @@ class Act3State : public LegoState {
|
||||
inline Act3State() { m_unk0x08 = 0; }
|
||||
|
||||
// FUNCTION: LEGO1 0x1000e300
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f03f0
|
||||
return "Act3State";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1000e310
|
||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, Act3State::ClassName()) || LegoState::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual MxBool VTable0x14() override;
|
||||
MxBool VTable0x14() override;
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1000e3c0
|
||||
// Act3State::`scalar deleting destructor'
|
||||
|
||||
@ -9,29 +9,29 @@ class Ambulance : public IslePathActor {
|
||||
public:
|
||||
Ambulance();
|
||||
|
||||
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||
virtual MxResult Tickle() override; // vtable+0x08
|
||||
MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||
MxResult Tickle() override; // vtable+0x08
|
||||
|
||||
// FUNCTION: LEGO1 0x10035fa0
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f03c4
|
||||
return "Ambulance";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10035fb0
|
||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, 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(LegoControlManagerEvent& p_param) override; // vtable+0xd4
|
||||
virtual MxU32 VTable0xdc(MxType19NotificationParam&) override; // vtable+0xdc
|
||||
virtual void VTable0xe4() override; // vtable+0xe4
|
||||
MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
|
||||
void Destroy(MxBool p_fromDestructor) override; // vtable+0x1c
|
||||
void VTable0x70(float p_float) override; // vtable+0x70
|
||||
MxU32 VTable0xcc() override; // vtable+0xcc
|
||||
MxU32 VTable0xd4(LegoControlManagerEvent& p_param) override; // vtable+0xd4
|
||||
MxU32 VTable0xdc(MxType19NotificationParam&) override; // vtable+0xdc
|
||||
void VTable0xe4() override; // vtable+0xe4
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10036130
|
||||
// Ambulance::`scalar deleting destructor'
|
||||
|
||||
@ -10,19 +10,19 @@ class AmbulanceMissionState : public LegoState {
|
||||
AmbulanceMissionState();
|
||||
|
||||
// FUNCTION: LEGO1 0x10037600
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f00e8
|
||||
return "AmbulanceMissionState";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10037610
|
||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, AmbulanceMissionState::ClassName()) || LegoState::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual MxResult VTable0x1c(LegoFile* p_legoFile) override; // vtable+0x1c
|
||||
MxResult VTable0x1c(LegoFile* p_legoFile) override; // vtable+0x1c
|
||||
|
||||
inline MxU16 GetColor(MxU8 p_id)
|
||||
{
|
||||
|
||||
@ -8,23 +8,23 @@
|
||||
class AnimState : public LegoState {
|
||||
public:
|
||||
AnimState();
|
||||
virtual ~AnimState() override; // vtable+0x00
|
||||
~AnimState() override; // vtable+0x00
|
||||
|
||||
// FUNCTION: LEGO1 0x10065070
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f0460
|
||||
return "AnimState";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10065080
|
||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, AnimState::ClassName()) || LegoState::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual MxBool SetFlag() override; // vtable+0x18
|
||||
virtual MxResult VTable0x1c(LegoFile* p_legoFile) override; // vtable+0x1C
|
||||
MxBool SetFlag() override; // vtable+0x18
|
||||
MxResult VTable0x1c(LegoFile* p_legoFile) override; // vtable+0x1C
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10065130
|
||||
// AnimState::`scalar deleting destructor'
|
||||
|
||||
@ -8,14 +8,14 @@
|
||||
class BeachHouseEntity : public BuildingEntity {
|
||||
public:
|
||||
// FUNCTION: LEGO1 0x1000ee80
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f0314
|
||||
return "BeachHouseEntity";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1000ee90
|
||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, BeachHouseEntity::ClassName()) || BuildingEntity::IsA(p_name);
|
||||
}
|
||||
|
||||
@ -11,22 +11,22 @@ class Bike : public IslePathActor {
|
||||
Bike();
|
||||
|
||||
// FUNCTION: LEGO1 0x100766f0
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f03d0
|
||||
return "Bike";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10076700
|
||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, Bike::ClassName()) || IslePathActor::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
|
||||
virtual MxU32 VTable0xcc() override; // vtable+0xcc
|
||||
virtual MxU32 VTable0xd4(LegoControlManagerEvent& p_param) override; // vtable+0xd4
|
||||
virtual void VTable0xe4() override; // vtable+0xe4
|
||||
MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
|
||||
MxU32 VTable0xcc() override; // vtable+0xcc
|
||||
MxU32 VTable0xd4(LegoControlManagerEvent& p_param) override; // vtable+0xd4
|
||||
void VTable0xe4() override; // vtable+0xe4
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10076880
|
||||
// Bike::`scalar deleting destructor'
|
||||
|
||||
@ -8,19 +8,19 @@
|
||||
class BuildingEntity : public LegoEntity {
|
||||
public:
|
||||
BuildingEntity();
|
||||
virtual ~BuildingEntity() override; // vtable+0x00
|
||||
~BuildingEntity() override; // vtable+0x00
|
||||
|
||||
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||
MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||
|
||||
// FUNCTION: LEGO1 0x10014f20
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f07e8
|
||||
return "BuildingEntity";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10014f30
|
||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, BuildingEntity::ClassName()) || LegoEntity::IsA(p_name);
|
||||
}
|
||||
|
||||
@ -7,25 +7,25 @@
|
||||
// VTABLE: LEGO1 0x100d6790
|
||||
class BumpBouy : public LegoAnimActor {
|
||||
public:
|
||||
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||
MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||
|
||||
// FUNCTION: LEGO1 0x100274e0
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f0394
|
||||
return "BumpBouy";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10027500
|
||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, 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
|
||||
void ParseAction(char*) override; // vtable+0x20
|
||||
void SetWorldSpeed(MxFloat p_worldSpeed) override; // vtable+0x30
|
||||
void VTable0x70(float p_float) override; // vtable+0x70
|
||||
void VTable0x74(Matrix4& p_transform) override; // vtable+0x74
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10027490
|
||||
// BumpBouy::`scalar deleting destructor'
|
||||
|
||||
@ -11,25 +11,25 @@ class CarRace : public LegoRace {
|
||||
CarRace();
|
||||
|
||||
// FUNCTION: LEGO1 0x10016b20
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f0528
|
||||
return "CarRace";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10016b30
|
||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, 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
|
||||
MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
|
||||
void ReadyWorld() override; // vtable+0x50
|
||||
MxBool VTable0x64() override; // vtable+0x64
|
||||
undefined4 VTable0x6c(undefined4) override; // vtable+0x6c
|
||||
undefined4 VTable0x70(undefined4) override; // vtable+0x70
|
||||
undefined4 VTable0x74(undefined4) override; // vtable+0x74
|
||||
undefined4 VTable0x78(undefined4) override; // vtable+0x78
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10016c70
|
||||
// CarRace::`scalar deleting destructor'
|
||||
|
||||
@ -8,14 +8,14 @@
|
||||
class CarRaceState : public RaceState {
|
||||
public:
|
||||
// FUNCTION: LEGO1 0x1000dd30
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f009c
|
||||
return "CarRaceState";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1000dd40
|
||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, CarRaceState::ClassName()) || RaceState::IsA(p_name);
|
||||
}
|
||||
|
||||
@ -8,21 +8,21 @@
|
||||
class Doors : public LegoPathActor {
|
||||
public:
|
||||
// FUNCTION: LEGO1 0x1000e430
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f03e8
|
||||
return "Doors";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1000e440
|
||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, 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
|
||||
void ParseAction(char*) override; // vtable+0x20
|
||||
void VTable0x70(float p_float) override; // vtable+0x70
|
||||
MxS32 VTable0x94() override; // vtable+0x94
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1000e580
|
||||
// Doors::`scalar deleting destructor'
|
||||
|
||||
@ -11,24 +11,24 @@ class DuneBuggy : public IslePathActor {
|
||||
DuneBuggy();
|
||||
|
||||
// FUNCTION: LEGO1 0x10067c30
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f0410
|
||||
return "DuneBuggy";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10067c40
|
||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, 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(LegoControlManagerEvent& p_param) override; // vtable+0xd4
|
||||
virtual MxU32 VTable0xdc(MxType19NotificationParam& p_param) override; // vtable+0xdc
|
||||
virtual void VTable0xe4() override; // vtable+0xe4
|
||||
MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
|
||||
void VTable0x70(float p_float) override; // vtable+0x70
|
||||
MxU32 VTable0xcc() override; // vtable+0xcc
|
||||
MxU32 VTable0xd4(LegoControlManagerEvent& p_param) override; // vtable+0xd4
|
||||
MxU32 VTable0xdc(MxType19NotificationParam& p_param) override; // vtable+0xdc
|
||||
void VTable0xe4() override; // vtable+0xe4
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10067dc0
|
||||
// DuneBuggy::`scalar deleting destructor'
|
||||
|
||||
@ -4,36 +4,38 @@
|
||||
#include "decomp.h"
|
||||
#include "legoworld.h"
|
||||
|
||||
class LegoControlManagerEvent;
|
||||
|
||||
// VTABLE: LEGO1 0x100d5f20
|
||||
// SIZE: 0xfc (from inlined ctor at 0x1000a8aa)
|
||||
class ElevatorBottom : public LegoWorld {
|
||||
public:
|
||||
ElevatorBottom();
|
||||
virtual ~ElevatorBottom() override; // vtable+0x00
|
||||
~ElevatorBottom() override; // vtable+0x00
|
||||
|
||||
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||
MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||
|
||||
// FUNCTION: LEGO1 0x10017f20
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f04ac
|
||||
return "ElevatorBottom";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10017f30
|
||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, ElevatorBottom::ClassName()) || LegoWorld::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
|
||||
virtual void ReadyWorld() override; // vtable+0x50
|
||||
MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
|
||||
void ReadyWorld() override; // vtable+0x50
|
||||
|
||||
// FUNCTION: LEGO1 0x10017f10
|
||||
virtual MxBool VTable0x5c() override { return TRUE; } // vtable+0x5c
|
||||
MxBool VTable0x5c() override { return TRUE; } // vtable+0x5c
|
||||
|
||||
virtual MxBool VTable0x64() override; // vtable+0x64
|
||||
virtual void VTable0x68(MxBool p_add) override; // vtable+0x68
|
||||
MxBool VTable0x64() override; // vtable+0x64
|
||||
void Enable(MxBool p_enable) override; // vtable+0x68
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10018040
|
||||
// ElevatorBottom::`scalar deleting destructor'
|
||||
@ -41,7 +43,7 @@ class ElevatorBottom : public LegoWorld {
|
||||
private:
|
||||
undefined4 m_unk0xf8; // 0xf8
|
||||
|
||||
MxLong HandleNotification17(MxParam& p_param);
|
||||
MxLong HandleClick(LegoControlManagerEvent& p_param);
|
||||
};
|
||||
|
||||
#endif // ELEVATORBOTTOM_H
|
||||
|
||||
@ -11,29 +11,29 @@
|
||||
class GasStation : public LegoWorld {
|
||||
public:
|
||||
GasStation();
|
||||
virtual ~GasStation() override; // vtable+0x00
|
||||
~GasStation() override; // vtable+0x00
|
||||
|
||||
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||
virtual MxResult Tickle() override; // vtable+0x08
|
||||
MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||
MxResult Tickle() override; // vtable+0x08
|
||||
|
||||
// FUNCTION: LEGO1 0x10004780
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f0168
|
||||
return "GasStation";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10004790
|
||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, 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
|
||||
MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
|
||||
void ReadyWorld() override; // vtable+0x50
|
||||
MxBool VTable0x5c() override; // vtable+0x5c
|
||||
MxBool VTable0x64() override; // vtable+0x64
|
||||
void Enable(MxBool p_enable) override; // vtable+0x68
|
||||
|
||||
// SYNTHETIC: LEGO1 0x100048a0
|
||||
// GasStation::`scalar deleting destructor'
|
||||
|
||||
@ -8,14 +8,14 @@
|
||||
class GasStationEntity : public BuildingEntity {
|
||||
public:
|
||||
// FUNCTION: LEGO1 0x1000eb20
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f0348
|
||||
return "GasStationEntity";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1000eb30
|
||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, GasStationEntity::ClassName()) || BuildingEntity::IsA(p_name);
|
||||
}
|
||||
|
||||
@ -10,19 +10,19 @@ class GasStationState : public LegoState {
|
||||
GasStationState();
|
||||
|
||||
// FUNCTION: LEGO1 0x100061d0
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f0174
|
||||
return "GasStationState";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x100061e0
|
||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, GasStationState::ClassName()) || LegoState::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual MxResult VTable0x1c(LegoFile* p_legoFile) override; // vtable+0x1c
|
||||
MxResult VTable0x1c(LegoFile* p_legoFile) override; // vtable+0x1c
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10006290
|
||||
// GasStationState::`scalar deleting destructor'
|
||||
|
||||
@ -77,7 +77,7 @@ class GifManagerBase {
|
||||
class GifManager : public GifManagerBase {
|
||||
public:
|
||||
GifManager() { m_ownership = TRUE; }
|
||||
virtual ~GifManager() override;
|
||||
~GifManager() override;
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1005a580
|
||||
// GifManager::`scalar deleting destructor'
|
||||
|
||||
@ -22,28 +22,28 @@ class HelicopterSubclass {
|
||||
class Helicopter : public IslePathActor {
|
||||
public:
|
||||
Helicopter();
|
||||
virtual ~Helicopter() override; // vtable+0x00
|
||||
~Helicopter() override; // vtable+0x00
|
||||
|
||||
// FUNCTION: LEGO1 0x10003070
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f0130
|
||||
return "Helicopter";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10003080
|
||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, Helicopter::ClassName()) || IslePathActor::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
|
||||
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(LegoControlManagerEvent& p_param) override; // vtable+0xd4
|
||||
virtual MxU32 VTable0xd8(MxType18NotificationParam& p_param) override; // vtable+0xd8
|
||||
virtual void VTable0xe4() override; // vtable+0xe4
|
||||
MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
|
||||
void VTable0x70(float p_float) override; // vtable+0x70
|
||||
void VTable0x74(Matrix4& p_transform) override; // vtable+0x74
|
||||
MxU32 VTable0xcc() override; // vtable+0xcc
|
||||
MxU32 VTable0xd4(LegoControlManagerEvent& p_param) override; // vtable+0xd4
|
||||
MxU32 VTable0xd8(MxType18NotificationParam& p_param) override; // vtable+0xd8
|
||||
void VTable0xe4() override; // vtable+0xe4
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10003210
|
||||
// Helicopter::`scalar deleting destructor'
|
||||
|
||||
@ -9,23 +9,23 @@
|
||||
class HelicopterState : public LegoState {
|
||||
public:
|
||||
// FUNCTION: LEGO1 0x1000e0d0
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f0144
|
||||
return "HelicopterState";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1000e0e0
|
||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, HelicopterState::ClassName()) || LegoState::IsA(p_name);
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1000e0b0
|
||||
virtual MxBool VTable0x14() override { return FALSE; } // vtable+0x14
|
||||
MxBool VTable0x14() override { return FALSE; } // vtable+0x14
|
||||
|
||||
// FUNCTION: LEGO1 0x1000e0c0
|
||||
virtual MxBool SetFlag() override
|
||||
MxBool SetFlag() override
|
||||
{
|
||||
m_unk0x08 = 0;
|
||||
return TRUE;
|
||||
|
||||
@ -8,26 +8,26 @@
|
||||
class HistoryBook : public LegoWorld {
|
||||
public:
|
||||
HistoryBook();
|
||||
virtual ~HistoryBook() override; // vtable+0x00
|
||||
~HistoryBook() override; // vtable+0x00
|
||||
|
||||
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||
MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||
|
||||
// FUNCTION: LEGO1 0x10082390
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f04bc
|
||||
return "HistoryBook";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x100823a0
|
||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, 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
|
||||
MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
|
||||
void ReadyWorld() override; // vtable+0x50
|
||||
MxBool VTable0x64() override; // vtable+0x64
|
||||
|
||||
// SYNTHETIC: LEGO1 0x100824b0
|
||||
// HistoryBook::`scalar deleting destructor'
|
||||
|
||||
@ -9,29 +9,29 @@
|
||||
class Hospital : public LegoWorld {
|
||||
public:
|
||||
Hospital();
|
||||
virtual ~Hospital() override; // vtable+0x00
|
||||
~Hospital() override; // vtable+0x00
|
||||
|
||||
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||
virtual MxResult Tickle() override; // vtable+0x08
|
||||
MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||
MxResult Tickle() override; // vtable+0x08
|
||||
|
||||
// FUNCTION: LEGO1 0x100746b0
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f0490
|
||||
return "Hospital";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x100746c0
|
||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, 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
|
||||
MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
|
||||
void ReadyWorld() override; // vtable+0x50
|
||||
MxBool VTable0x5c() override; // vtable+0x5c
|
||||
MxBool VTable0x64() override; // vtable+0x64
|
||||
void Enable(MxBool p_enable) override; // vtable+0x68
|
||||
|
||||
// SYNTHETIC: LEGO1 0x100747d0
|
||||
// Hospital::`scalar deleting destructor'
|
||||
|
||||
@ -8,14 +8,14 @@
|
||||
class HospitalEntity : public BuildingEntity {
|
||||
public:
|
||||
// FUNCTION: LEGO1 0x1000ec40
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f0338
|
||||
return "HospitalEntity";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1000ec50
|
||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, HospitalEntity::ClassName()) || BuildingEntity::IsA(p_name);
|
||||
}
|
||||
|
||||
@ -9,22 +9,22 @@
|
||||
class HospitalState : public LegoState {
|
||||
public:
|
||||
HospitalState();
|
||||
virtual ~HospitalState() override {}
|
||||
~HospitalState() override {}
|
||||
|
||||
// FUNCTION: LEGO1 0x10076400
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f0480
|
||||
return "HospitalState";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10076410
|
||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, HospitalState::ClassName()) || LegoState::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual MxResult VTable0x1c(LegoFile* p_legoFile) override; // vtable+0x1c
|
||||
MxResult VTable0x1c(LegoFile* p_legoFile) override; // vtable+0x1c
|
||||
|
||||
// SYNTHETIC: LEGO1 0x100764c0
|
||||
// HospitalState::`scalar deleting destructor'
|
||||
|
||||
@ -2,10 +2,12 @@
|
||||
#define INFOCENTER_H
|
||||
|
||||
#include "legoworld.h"
|
||||
#include "mxrect32.h"
|
||||
#include "radio.h"
|
||||
|
||||
class InfocenterState;
|
||||
class MxStillPresenter;
|
||||
class LegoControlManagerEvent;
|
||||
|
||||
// SIZE 0x18
|
||||
struct InfocenterMapEntry {
|
||||
@ -14,10 +16,7 @@ struct InfocenterMapEntry {
|
||||
|
||||
MxStillPresenter* m_presenter; // 0x00
|
||||
undefined4 m_unk0x04; // 0x04
|
||||
undefined4 m_unk0x08; // 0x08
|
||||
undefined4 m_unk0x0c; // 0x0c
|
||||
undefined4 m_unk0x10; // 0x10
|
||||
undefined4 m_unk0x14; // 0x14
|
||||
MxRect32 m_area; // 0x08
|
||||
};
|
||||
|
||||
// VTABLE: LEGO1 0x100d9338
|
||||
@ -40,12 +39,15 @@ class Infocenter : public LegoWorld {
|
||||
c_leftArrowCtl = 1,
|
||||
c_rightArrowCtl = 2,
|
||||
c_infoCtl = 3,
|
||||
c_doorCtl = 4,
|
||||
c_boatCtl = 10,
|
||||
c_raceCtl = 11,
|
||||
c_pizzaCtl = 12,
|
||||
c_gasCtl = 13,
|
||||
c_medCtl = 14,
|
||||
c_copCtl = 15,
|
||||
c_bigInfoCtl = 16,
|
||||
c_bookCtl = 17,
|
||||
c_radioCtl = 18,
|
||||
c_mamaCtl = 21,
|
||||
c_papaCtl = 22,
|
||||
@ -53,6 +55,23 @@ class Infocenter : public LegoWorld {
|
||||
c_nickCtl = 24,
|
||||
c_lauraCtl = 25,
|
||||
|
||||
c_mamaSelected = 30,
|
||||
c_papaSelected = 31,
|
||||
c_pepperSelected = 32,
|
||||
c_nickSelected = 33,
|
||||
c_lauraSelected = 34,
|
||||
|
||||
c_mamaMovie = 40,
|
||||
c_papaMovie = 41,
|
||||
c_pepperMovie = 42,
|
||||
c_nickMovie = 43,
|
||||
c_lauraMovie = 44,
|
||||
|
||||
c_goToRegBook = 70,
|
||||
c_goToRegBookRed = 71,
|
||||
|
||||
c_unk499 = 499,
|
||||
|
||||
c_welcomeDialogue = 500,
|
||||
c_goodJobDialogue = 501,
|
||||
|
||||
@ -114,11 +133,28 @@ class Infocenter : public LegoWorld {
|
||||
c_noCDDialogueUnused1 = 552,
|
||||
c_noCDDialogueUnused2 = 553,
|
||||
|
||||
c_gasCtlDescription = 555,
|
||||
c_medCtlDescription = 556,
|
||||
c_unk557 = 557,
|
||||
c_boatCtlDescription = 558,
|
||||
c_copCtlDescription = 559,
|
||||
c_pizzaCtlDescription = 560,
|
||||
c_raceCtlDescription = 561,
|
||||
|
||||
c_leaveInfoCenterDialogue1 = 562,
|
||||
c_leaveInfoCenterDialogue2 = 563,
|
||||
c_leaveInfoCenterDialogue3 = 564,
|
||||
c_leaveInfoCenterDialogue4 = 565,
|
||||
|
||||
c_unk566 = 566,
|
||||
c_unk567 = 567,
|
||||
c_unk568 = 568,
|
||||
|
||||
c_unk569 = 569,
|
||||
c_unk570 = 570,
|
||||
c_unk571 = 571,
|
||||
c_unk572 = 572,
|
||||
|
||||
c_registerToContinueDialogue = 573,
|
||||
|
||||
c_bricksterDialogue = 574,
|
||||
@ -130,29 +166,29 @@ class Infocenter : public LegoWorld {
|
||||
};
|
||||
|
||||
Infocenter();
|
||||
virtual ~Infocenter() override;
|
||||
~Infocenter() override;
|
||||
|
||||
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||
virtual MxResult Tickle() override; // vtable+0x08
|
||||
MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||
MxResult Tickle() override; // vtable+0x08
|
||||
|
||||
// FUNCTION: LEGO1 0x1006eb40
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f04ec
|
||||
return "Infocenter";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1006eb50
|
||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, Infocenter::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
|
||||
MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
|
||||
void ReadyWorld() override; // vtable+0x50
|
||||
MxBool VTable0x5c() override; // vtable+0x5c
|
||||
MxBool VTable0x64() override; // vtable+0x64
|
||||
void Enable(MxBool p_enable) override; // vtable+0x68
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1006ec60
|
||||
// Infocenter::`scalar deleting destructor'
|
||||
@ -163,16 +199,18 @@ class Infocenter : public LegoWorld {
|
||||
MxLong HandleKeyPress(MxS8 p_key);
|
||||
MxU8 HandleMouseMove(MxS32 p_x, MxS32 p_y);
|
||||
MxU8 HandleButtonUp(MxS32 p_x, MxS32 p_y);
|
||||
MxU8 HandleNotification17(MxParam&);
|
||||
MxLong HandleEndAction(MxParam& p_param);
|
||||
MxLong HandleNotification0(MxParam&);
|
||||
MxU8 HandleClick(LegoControlManagerEvent& p_param);
|
||||
MxLong HandleEndAction(MxEndActionNotificationParam& p_param);
|
||||
MxLong HandleNotification0(MxNotificationParam& p_param);
|
||||
|
||||
void FUN_10070dc0(MxBool);
|
||||
void UpdateFrameHot(MxBool p_display);
|
||||
void FUN_10070e90();
|
||||
|
||||
void PlayCutscene(Cutscene p_entityId, MxBool p_scale);
|
||||
void StopCutscene();
|
||||
|
||||
void FUN_10070d10(MxS32 p_x, MxS32 p_y);
|
||||
|
||||
void StartCredits();
|
||||
void StopCredits();
|
||||
|
||||
@ -185,10 +223,10 @@ class Infocenter : public LegoWorld {
|
||||
InfomainScript m_currentInfomainScript; // 0xf8
|
||||
MxS16 m_unk0xfc; // 0xfc
|
||||
InfocenterState* m_infocenterState; // 0x100
|
||||
undefined4 m_unk0x104; // 0x104
|
||||
undefined4 m_transitionDestination; // 0x104
|
||||
Cutscene m_currentCutscene; // 0x108
|
||||
Radio m_radio; // 0x10c
|
||||
undefined4 m_unk0x11c; // 0x11c
|
||||
MxStillPresenter* m_unk0x11c; // 0x11c
|
||||
InfocenterMapEntry m_mapAreas[7]; // 0x120
|
||||
MxS16 m_unk0x1c8; // 0x1c8
|
||||
MxStillPresenter* m_frameHotBitmap; // 0x1cc
|
||||
|
||||
@ -3,42 +3,46 @@
|
||||
|
||||
#include "legoworld.h"
|
||||
|
||||
class LegoControlManagerEvent;
|
||||
|
||||
// VTABLE: LEGO1 0x100d72d8
|
||||
// SIZE 0xfc
|
||||
class InfocenterDoor : public LegoWorld {
|
||||
public:
|
||||
InfocenterDoor();
|
||||
virtual ~InfocenterDoor(); // vtable+0x00
|
||||
~InfocenterDoor() override; // vtable+0x00
|
||||
|
||||
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||
MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||
|
||||
// FUNCTION: LEGO1 0x100377b0
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f049c
|
||||
return "InfocenterDoor";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x100377c0
|
||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, InfocenterDoor::ClassName()) || LegoWorld::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
|
||||
virtual void ReadyWorld() override; // vtable+0x50
|
||||
MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
|
||||
void ReadyWorld() override; // vtable+0x50
|
||||
|
||||
// FUNCTION: LEGO1 0x100377a0
|
||||
virtual MxBool VTable0x5c() override { return TRUE; } // vtable+0x5c
|
||||
MxBool VTable0x5c() override { return TRUE; } // vtable+0x5c
|
||||
|
||||
virtual MxBool VTable0x64() override; // vtable+0x64
|
||||
virtual void VTable0x68(MxBool p_add) override; // vtable+0x68
|
||||
MxBool VTable0x64() override; // vtable+0x64
|
||||
void Enable(MxBool p_enable) override; // vtable+0x68
|
||||
|
||||
// SYNTHETIC: LEGO1 0x100378d0
|
||||
// InfocenterDoor::`scalar deleting destructor'
|
||||
|
||||
private:
|
||||
MxS32 m_unk0xf8; // 0xf8
|
||||
|
||||
MxLong HandleClick(LegoControlManagerEvent& p_param);
|
||||
};
|
||||
|
||||
#endif // INFOCENTERDOOR_H
|
||||
|
||||
@ -8,14 +8,14 @@
|
||||
class InfoCenterEntity : public BuildingEntity {
|
||||
public:
|
||||
// FUNCTION: LEGO1 0x1000ea00
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f035c
|
||||
return "InfoCenterEntity";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1000ea10
|
||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, InfoCenterEntity::ClassName()) || BuildingEntity::IsA(p_name);
|
||||
}
|
||||
|
||||
@ -10,27 +10,31 @@
|
||||
class InfocenterState : public LegoState {
|
||||
public:
|
||||
InfocenterState();
|
||||
virtual ~InfocenterState() override;
|
||||
~InfocenterState() override;
|
||||
|
||||
// FUNCTION: LEGO1 0x10071840
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f04dc
|
||||
return "InfocenterState";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10071850
|
||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, InfocenterState::ClassName()) || LegoState::IsA(p_name);
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10071830
|
||||
virtual MxBool VTable0x14() override { return FALSE; } // vtable+0x14
|
||||
MxBool VTable0x14() override { return FALSE; } // vtable+0x14
|
||||
|
||||
inline MxS16 GetInfocenterBufferSize() { return sizeof(m_buffer) / sizeof(m_buffer[0]); }
|
||||
inline MxStillPresenter* GetInfocenterBufferElement(MxS32 p_index) { return m_buffer[p_index]; }
|
||||
inline Playlist& GetUnknown0x08() { return m_unk0x08; }
|
||||
inline Playlist& GetUnknown0x14() { return m_unk0x14; }
|
||||
inline Playlist& GetUnknown0x68() { return m_unk0x68; }
|
||||
inline MxU32 GetUnknown0x74() { return m_unk0x74; }
|
||||
inline Playlist* GetUnknown0x44() { return m_unk0x44; }
|
||||
|
||||
inline void SetUnknown0x74(MxU32 p_unk0x74) { m_unk0x74 = p_unk0x74; }
|
||||
|
||||
@ -38,35 +42,11 @@ class InfocenterState : public LegoState {
|
||||
// InfocenterState::`scalar deleting destructor'
|
||||
|
||||
private:
|
||||
// Members should be renamed with their offsets before use
|
||||
/*
|
||||
struct UnkStruct
|
||||
{
|
||||
undefined4 unk1;
|
||||
undefined2 unk2;
|
||||
undefined2 unk3;
|
||||
undefined2 unk4;
|
||||
};
|
||||
|
||||
undefined2 unk1;
|
||||
undefined2 unk2;
|
||||
undefined4 unk3;
|
||||
undefined4 padding1;
|
||||
void *unk4;
|
||||
undefined2 unk5;
|
||||
undefined2 unk6;
|
||||
undefined2 unk7;
|
||||
undefined2 padding2;
|
||||
void *unk8;
|
||||
undefined2 unk9;
|
||||
undefined2 unk10;
|
||||
undefined2 unk11;
|
||||
undefined2 padding3;
|
||||
UnkStruct unk12[6];
|
||||
undefined4 unk13;
|
||||
*/
|
||||
|
||||
undefined m_pad[0x6c];
|
||||
Playlist m_unk0x08; // 0x08
|
||||
Playlist m_unk0x14; // 0x14
|
||||
Playlist m_unk0x20[3]; // 0x20
|
||||
Playlist m_unk0x44[3]; // 0x44
|
||||
Playlist m_unk0x68; // 0x68
|
||||
MxU32 m_unk0x74; // 0x74
|
||||
MxStillPresenter* m_buffer[7]; // 0x78
|
||||
};
|
||||
|
||||
@ -23,31 +23,31 @@ class Act1State;
|
||||
class Isle : public LegoWorld {
|
||||
public:
|
||||
Isle();
|
||||
virtual ~Isle() override;
|
||||
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||
~Isle() override;
|
||||
MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||
|
||||
// FUNCTION: LEGO1 0x10030910
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f0458
|
||||
return "Isle";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10030920
|
||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, Isle::ClassName()) || LegoWorld::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
|
||||
virtual void ReadyWorld() override; // vtable+50
|
||||
virtual void Add(MxCore* p_object) override; // vtable+58
|
||||
MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
|
||||
void ReadyWorld() override; // vtable+50
|
||||
void Add(MxCore* p_object) override; // vtable+58
|
||||
// FUNCTION: LEGO1 0x10030900
|
||||
virtual MxBool VTable0x5c() override { return TRUE; } // vtable+5c
|
||||
MxBool VTable0x5c() override { return TRUE; } // vtable+5c
|
||||
// FUNCTION: LEGO1 0x10033170
|
||||
virtual void VTable0x60() override {} // vtable+60
|
||||
virtual MxBool VTable0x64() override; // vtable+64
|
||||
virtual void VTable0x68(MxBool p_add) override; // vtable+68
|
||||
void VTable0x60() override {} // vtable+60
|
||||
MxBool VTable0x64() override; // vtable+64
|
||||
void Enable(MxBool p_enable) override; // vtable+68
|
||||
virtual void VTable0x6c(IslePathActor* p_actor); // vtable+6c
|
||||
|
||||
inline void SetUnknown13c(MxU32 p_unk0x13c) { m_unk0x13c = p_unk0x13c; }
|
||||
|
||||
@ -6,22 +6,22 @@
|
||||
// VTABLE: LEGO1 0x100d5178
|
||||
class IsleActor : public LegoActor {
|
||||
public:
|
||||
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||
MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||
|
||||
// FUNCTION: LEGO1 0x1000e660
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f07dc
|
||||
return "IsleActor";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1000e670
|
||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, IsleActor::ClassName()) || LegoActor::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
|
||||
MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
|
||||
};
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1000e940
|
||||
|
||||
@ -15,25 +15,25 @@ class IslePathActor : public LegoPathActor {
|
||||
IslePathActor();
|
||||
|
||||
// FUNCTION: LEGO1 0x10002e10
|
||||
inline virtual ~IslePathActor() override { IslePathActor::Destroy(TRUE); } // vtable+0x00
|
||||
inline ~IslePathActor() override { IslePathActor::Destroy(TRUE); } // vtable+0x00
|
||||
|
||||
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||
MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||
|
||||
// FUNCTION: LEGO1 0x10002ea0
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f0104
|
||||
return "IslePathActor";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10002eb0
|
||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, IslePathActor::ClassName()) || LegoPathActor::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
|
||||
virtual void Destroy(MxBool p_fromDestructor) override; // vtable+0x1c
|
||||
MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
|
||||
void Destroy(MxBool p_fromDestructor) override; // vtable+0x1c
|
||||
// FUNCTION: LEGO1 0x10002e70
|
||||
virtual MxU32 VTable0xcc() { return 0; } // vtable+0xcc
|
||||
// FUNCTION: LEGO1 0x10002df0
|
||||
|
||||
@ -12,23 +12,23 @@ class Jetski : public IslePathActor {
|
||||
Jetski();
|
||||
|
||||
// FUNCTION: LEGO1 0x1007e430
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f03d8
|
||||
return "Jetski";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1007e440
|
||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, 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(LegoControlManagerEvent&) override; // vtable+0xd4
|
||||
virtual void VTable0xe4() override; // vtable+0xe4
|
||||
MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
|
||||
void VTable0x70(float p_float) override; // vtable+0x70
|
||||
MxU32 VTable0xcc() override; // vtable+0xcc
|
||||
MxU32 VTable0xd4(LegoControlManagerEvent&) override; // vtable+0xd4
|
||||
void VTable0xe4() override; // vtable+0xe4
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1007e5c0
|
||||
// Jetski::`scalar deleting destructor'
|
||||
|
||||
@ -8,14 +8,14 @@
|
||||
class JetskiRace : public LegoRace {
|
||||
public:
|
||||
// FUNCTION: LEGO1 0x1000daf0
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f0530
|
||||
return "JetskiRace";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1000db00
|
||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, JetskiRace::ClassName()) || LegoRace::IsA(p_name);
|
||||
}
|
||||
|
||||
@ -8,14 +8,14 @@
|
||||
class JetskiRaceState : public RaceState {
|
||||
public:
|
||||
// FUNCTION: LEGO1 0x1000dc40
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f00ac
|
||||
return "JetskiRaceState";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1000dc50
|
||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, JetskiRaceState::ClassName()) || RaceState::IsA(p_name);
|
||||
}
|
||||
|
||||
@ -10,30 +10,31 @@ class JukeBox : public LegoWorld {
|
||||
public:
|
||||
JukeBox();
|
||||
|
||||
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||
virtual MxResult Tickle() override; // vtable+0x08
|
||||
MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||
MxResult Tickle() override; // vtable+0x08
|
||||
|
||||
// FUNCTION: LEGO1 0x1005d6f0
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f02cc
|
||||
return "JukeBox";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1005d700
|
||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, 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
|
||||
MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
|
||||
void ReadyWorld() override; // vtable+0x50
|
||||
MxBool VTable0x5c() override; // vtable+0x5c
|
||||
MxBool VTable0x64() override; // vtable+0x64
|
||||
void Enable(MxBool p_enable) override; // vtable+0x68
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1005d810
|
||||
// JukeBox::`scalar deleting destructor'
|
||||
|
||||
enum JukeBoxScript {
|
||||
e_mamaPapaBrickolini,
|
||||
e_jailUnused,
|
||||
@ -65,29 +66,18 @@ class JukeBox : public LegoWorld {
|
||||
e_legoRadioReminder2,
|
||||
|
||||
e_legoRadioRacingAd,
|
||||
|
||||
e_legoRadioNews1,
|
||||
e_legoRadioNews2,
|
||||
|
||||
e_legoRadioPizzaAd1,
|
||||
|
||||
e_legoRadioBricksterPSA,
|
||||
|
||||
e_legoRadioSports1,
|
||||
|
||||
e_legoRadioIntermission1,
|
||||
e_legoRadioIntermission2,
|
||||
|
||||
e_legoRadioPizzaAd2,
|
||||
|
||||
e_legoRadioWeatherReport,
|
||||
|
||||
e_legoRadioSports2,
|
||||
|
||||
e_legoRadioPizzaAd3,
|
||||
|
||||
e_legoRadioIntermission3,
|
||||
|
||||
e_legoRadioSuperStoreAd,
|
||||
|
||||
e_legoRadioLuckyYou,
|
||||
|
||||
@ -8,19 +8,19 @@
|
||||
class JukeBoxEntity : public LegoEntity {
|
||||
public:
|
||||
JukeBoxEntity();
|
||||
virtual ~JukeBoxEntity() override; // vtable+0x00
|
||||
~JukeBoxEntity() override; // vtable+0x00
|
||||
|
||||
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||
MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||
|
||||
// FUNCTION: LEGO1 0x10085cc0
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f02f0
|
||||
return "JukeBoxEntity";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10085cd0
|
||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, JukeBoxEntity::ClassName()) || LegoEntity::IsA(p_name);
|
||||
}
|
||||
|
||||
@ -8,19 +8,19 @@
|
||||
class JukeBoxState : public LegoState {
|
||||
public:
|
||||
// FUNCTION: LEGO1 0x1000f310
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f02bc
|
||||
return "JukeBoxState";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1000f320
|
||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, JukeBoxState::ClassName()) || LegoState::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual MxBool VTable0x14() override; // vtable+0x14
|
||||
MxBool VTable0x14() override; // vtable+0x14
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1000f3d0
|
||||
// JukeBoxState::`scalar deleting destructor'
|
||||
|
||||
@ -8,22 +8,22 @@
|
||||
class Lego3DWavePresenter : public MxWavePresenter {
|
||||
public:
|
||||
// FUNCTION: LEGO1 0x1000d890
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f058c
|
||||
return "Lego3DWavePresenter";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1000d8a0
|
||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, 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
|
||||
void StartingTickle() override; // vtable+0x1c
|
||||
void StreamingTickle() override; // vtable+0x20
|
||||
MxResult AddToManager() override; // vtable+0x34
|
||||
void Destroy() override; // vtable+0x38
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1000f4b0
|
||||
// Lego3DWavePresenter::`scalar deleting destructor'
|
||||
|
||||
@ -9,14 +9,14 @@
|
||||
// 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
|
||||
MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||
MxResult Tickle() override; // vtable+0x08
|
||||
MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
|
||||
void ReadyWorld() override; // vtable+0x50
|
||||
MxBool VTable0x5c() override; // vtable+0x5c
|
||||
void VTable0x60() override; // vtable+0x60
|
||||
MxBool VTable0x64() override; // vtable+0x64
|
||||
void Enable(MxBool p_enable) override; // vtable+0x68
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1004fe20
|
||||
// LegoAct2::`scalar deleting destructor'
|
||||
|
||||
@ -7,22 +7,22 @@
|
||||
// SIZE 0x10
|
||||
class LegoAct2State : public LegoState {
|
||||
public:
|
||||
virtual ~LegoAct2State() override {}
|
||||
~LegoAct2State() override {}
|
||||
|
||||
// FUNCTION: LEGO1 0x1000df80
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f0428
|
||||
return "LegoAct2State";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1000df90
|
||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, LegoAct2State::ClassName()) || LegoState::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual MxBool VTable0x14() override; // vtable+0x14
|
||||
MxBool VTable0x14() override; // vtable+0x14
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1000e040
|
||||
// LegoAct2State::`scalar deleting destructor'
|
||||
|
||||
@ -10,25 +10,25 @@
|
||||
class LegoActionControlPresenter : public MxMediaPresenter {
|
||||
public:
|
||||
inline LegoActionControlPresenter() { m_unk0x50 = Extra::ActionType::e_none; }
|
||||
virtual ~LegoActionControlPresenter() override { Destroy(TRUE); } // vtable+0x00
|
||||
~LegoActionControlPresenter() override { Destroy(TRUE); } // vtable+0x00
|
||||
|
||||
// FUNCTION: LEGO1 0x1000d0e0
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f05bc
|
||||
return "LegoActionControlPresenter";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1000d0f0
|
||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, LegoActionControlPresenter::ClassName()) || MxMediaPresenter::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual void ReadyTickle() override; // vtable+0x18
|
||||
virtual void RepeatingTickle() override; // vtable+0x24
|
||||
virtual void ParseExtra() override; // vtable+0x30
|
||||
virtual MxResult AddToManager() override; // vtable+0x34
|
||||
void ReadyTickle() override; // vtable+0x18
|
||||
void RepeatingTickle() override; // vtable+0x24
|
||||
void ParseExtra() override; // vtable+0x30
|
||||
MxResult AddToManager() override; // vtable+0x34
|
||||
virtual void Destroy(MxBool p_fromDestructor); // vtable+0x5c
|
||||
|
||||
private:
|
||||
|
||||
@ -9,23 +9,23 @@
|
||||
class LegoActor : public LegoEntity {
|
||||
public:
|
||||
LegoActor();
|
||||
virtual ~LegoActor() override;
|
||||
~LegoActor() override;
|
||||
|
||||
// FUNCTION: LEGO1 0x1002d210
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f0124
|
||||
return "LegoActor";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1002d220
|
||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, 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
|
||||
void ParseAction(char*) override; // vtable+0x20
|
||||
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
|
||||
|
||||
@ -7,24 +7,24 @@
|
||||
// SIZE 0x50
|
||||
class LegoActorPresenter : public LegoEntityPresenter {
|
||||
public:
|
||||
virtual ~LegoActorPresenter() override{};
|
||||
~LegoActorPresenter() override{};
|
||||
|
||||
// FUNCTION: LEGO1 0x1000cb10
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f06a4
|
||||
return "LegoActorPresenter";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1000cb20
|
||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, LegoActorPresenter::ClassName()) || LegoEntityPresenter::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual void ReadyTickle() override; // vtable+0x18
|
||||
virtual void StartingTickle() override; // vtable+0x1c
|
||||
virtual void ParseExtra() override; // vtable+0x30
|
||||
void ReadyTickle() override; // vtable+0x18
|
||||
void StartingTickle() override; // vtable+0x1c
|
||||
void ParseExtra() override; // vtable+0x30
|
||||
};
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1000cc30
|
||||
|
||||
@ -9,27 +9,30 @@
|
||||
class LegoAnimationManager : public MxCore {
|
||||
public:
|
||||
LegoAnimationManager();
|
||||
virtual ~LegoAnimationManager() override; // vtable+0x00
|
||||
~LegoAnimationManager() override; // vtable+0x00
|
||||
|
||||
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||
virtual MxResult Tickle() override; // vtable+0x08
|
||||
MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||
MxResult Tickle() override; // vtable+0x08
|
||||
|
||||
// FUNCTION: LEGO1 0x1005ec80
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f7508
|
||||
return "LegoAnimationManager";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1005ec90
|
||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, ClassName()) || MxCore::IsA(p_name);
|
||||
}
|
||||
|
||||
void FUN_1005ee80(MxBool);
|
||||
void FUN_1005ef10();
|
||||
void FUN_1005f0b0();
|
||||
void FUN_1005f6d0(MxBool);
|
||||
void FUN_1005f720(undefined4);
|
||||
void FUN_10061010(undefined4);
|
||||
void FUN_10064670(MxBool);
|
||||
|
||||
static void configureLegoAnimationManager(MxS32 p_legoAnimationManagerConfig);
|
||||
|
||||
@ -9,30 +9,30 @@ class LegoAnimMMPresenter : public MxCompositePresenter {
|
||||
public:
|
||||
LegoAnimMMPresenter();
|
||||
|
||||
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||
MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||
|
||||
// FUNCTION: LEGO1 0x1004a950
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f046c
|
||||
return "LegoAnimMMPresenter";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x1004a960
|
||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, 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
|
||||
void ReadyTickle() override; // vtable+0x18
|
||||
void StartingTickle() override; // vtable+0x1c
|
||||
void StreamingTickle() override; // vtable+0x20
|
||||
void RepeatingTickle() override; // vtable+0x24
|
||||
void DoneTickle() override; // vtable+0x2c
|
||||
void ParseExtra() override; // vtable+0x30
|
||||
MxResult StartAction(MxStreamController* p_controller, MxDSAction* p_action) override; // vtable+0x3c
|
||||
void EndAction() override; // vtable+0x40
|
||||
void VTable0x60(MxPresenter* p_presenter) override; // vtable+0x60
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1004aa40
|
||||
// LegoAnimMMPresenter::`scalar deleting destructor'
|
||||
|
||||
@ -14,32 +14,32 @@ class LegoAnimClass;
|
||||
class LegoAnimPresenter : public MxVideoPresenter {
|
||||
public:
|
||||
LegoAnimPresenter();
|
||||
virtual ~LegoAnimPresenter() override;
|
||||
~LegoAnimPresenter() override;
|
||||
|
||||
// FUNCTION: LEGO1 0x10068530
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f071c
|
||||
return "LegoAnimPresenter";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10068540
|
||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, LegoAnimPresenter::ClassName()) || MxVideoPresenter::IsA(p_name);
|
||||
}
|
||||
|
||||
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
|
||||
void ReadyTickle() override; // vtable+0x18
|
||||
void StartingTickle() override; // vtable+0x1c
|
||||
void StreamingTickle() override; // vtable+0x20
|
||||
void DoneTickle() override; // vtable+0x2c
|
||||
void ParseExtra() override; // vtable+0x30
|
||||
MxResult AddToManager() override; // vtable+0x34
|
||||
void Destroy() override; // vtable+0x38
|
||||
MxResult StartAction(MxStreamController* p_controller, MxDSAction* p_action) override; // vtable+0x3c
|
||||
void EndAction() override; // vtable+0x40
|
||||
void PutFrame() override; // vtable+0x6c
|
||||
virtual MxResult VTable0x88(MxStreamChunk* p_chunk); // vtable+0x88
|
||||
|
||||
inline LegoAnimClass* GetUnknown0x64() { return m_unk0x64; }
|
||||
|
||||
@ -81,11 +81,11 @@ class LegoAnimPresenter : public MxVideoPresenter {
|
||||
class LegoAnimClass : public LegoTree {
|
||||
public:
|
||||
LegoAnimClass();
|
||||
virtual ~LegoAnimClass() override;
|
||||
~LegoAnimClass() override;
|
||||
|
||||
virtual LegoResult Write(LegoStorage* p_storage) override; // vtable+0x08
|
||||
virtual LegoTreeNodeData* CreateData() override; // vtable+0x0c
|
||||
virtual MxResult VTable0x10(LegoMemory* p_stream, MxS32); // vtable+0x10
|
||||
LegoResult Write(LegoStorage* p_storage) override; // vtable+0x08
|
||||
LegoTreeNodeData* CreateData() override; // vtable+0x0c
|
||||
virtual MxResult VTable0x10(LegoMemory* p_stream, MxS32); // vtable+0x10
|
||||
|
||||
inline MxLong GetUnknown0x8() { return m_unk0x08; }
|
||||
|
||||
|
||||
@ -8,7 +8,7 @@
|
||||
class LegoBackgroundColor : public MxVariable {
|
||||
public:
|
||||
LegoBackgroundColor(const char* p_key, const char* p_value);
|
||||
virtual void SetValue(const char* p_colorString) override;
|
||||
void SetValue(const char* p_colorString) override;
|
||||
|
||||
private:
|
||||
float m_h;
|
||||
|
||||
@ -8,12 +8,12 @@
|
||||
class LegoBuildingManager : public MxCore {
|
||||
public:
|
||||
LegoBuildingManager();
|
||||
virtual ~LegoBuildingManager() override;
|
||||
~LegoBuildingManager() override;
|
||||
|
||||
virtual MxResult Tickle() override; // vtable+0x08
|
||||
MxResult Tickle() override; // vtable+0x08
|
||||
|
||||
// FUNCTION: LEGO1 0x1002f930
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f37d0
|
||||
return "LegoBuildingManager";
|
||||
|
||||
@ -9,17 +9,17 @@
|
||||
class LegoCacheSound : public MxCore {
|
||||
public:
|
||||
LegoCacheSound();
|
||||
virtual ~LegoCacheSound() override; // vtable+0x00
|
||||
~LegoCacheSound() override; // vtable+0x00
|
||||
|
||||
// FUNCTION: LEGO1 0x10006580
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f01c4
|
||||
return "LegoCacheSound";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10006590
|
||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, LegoCacheSound::ClassName()) || MxCore::IsA(p_name);
|
||||
}
|
||||
|
||||
@ -22,7 +22,7 @@ class LegoCacheSoundList : public MxPtrList<LegoCacheSound> {
|
||||
LegoCacheSoundList(MxBool p_ownership = FALSE) : MxPtrList<LegoCacheSound>(p_ownership) {}
|
||||
|
||||
// FUNCTION: LEGO1 0x1001e650
|
||||
virtual MxS8 Compare(LegoCacheSound* p_a, LegoCacheSound* p_b) override
|
||||
MxS8 Compare(LegoCacheSound* p_a, LegoCacheSound* p_b) override
|
||||
{
|
||||
return p_a == p_b ? 0 : p_a < p_b ? -1 : 1;
|
||||
} // vtable+0x14
|
||||
|
||||
@ -12,19 +12,19 @@
|
||||
class LegoCameraController : public LegoPointOfViewController {
|
||||
public:
|
||||
LegoCameraController();
|
||||
virtual ~LegoCameraController() override; // vtable+0x00
|
||||
~LegoCameraController() override; // vtable+0x00
|
||||
|
||||
virtual MxLong Notify(MxParam& p_param) override; // vtable+04
|
||||
MxLong Notify(MxParam& p_param) override; // vtable+04
|
||||
|
||||
// FUNCTION: LEGO1 0x10011ec0
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f0850
|
||||
return "LegoCameraController";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10011ed0
|
||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, ClassName()) || MxCore::IsA(p_name);
|
||||
}
|
||||
|
||||
@ -8,29 +8,29 @@
|
||||
class LegoCarBuild : public LegoWorld {
|
||||
public:
|
||||
LegoCarBuild();
|
||||
virtual ~LegoCarBuild() override;
|
||||
~LegoCarBuild() override;
|
||||
|
||||
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||
virtual MxResult Tickle() override; // vtable+0x08
|
||||
MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||
MxResult Tickle() override; // vtable+0x08
|
||||
|
||||
// FUNCTION: LEGO1 0x10022940
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f0504
|
||||
return "LegoCarBuild";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10022950
|
||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, 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
|
||||
MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
|
||||
void ReadyWorld() override; // vtable+0x50
|
||||
MxBool VTable0x5c() override; // vtable+0x5c
|
||||
MxBool VTable0x64() override; // vtable+0x64
|
||||
void Enable(MxBool p_enable) override; // vtable+0x68
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10022a60
|
||||
// LegoCarBuild::`scalar deleting destructor'
|
||||
|
||||
@ -8,26 +8,26 @@
|
||||
class LegoCarBuildAnimPresenter : public LegoAnimPresenter {
|
||||
public:
|
||||
LegoCarBuildAnimPresenter();
|
||||
virtual ~LegoCarBuildAnimPresenter() override; // vtable+0x00
|
||||
~LegoCarBuildAnimPresenter() override; // vtable+0x00
|
||||
|
||||
// FUNCTION: LEGO1 0x10078510
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f05ec
|
||||
return "LegoCarBuildAnimPresenter";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10078520
|
||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, 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
|
||||
void ReadyTickle() override; // vtable+0x18
|
||||
void StreamingTickle() override; // vtable+0x20
|
||||
void RepeatingTickle() override; // vtable+0x24
|
||||
void EndAction() override; // vtable+0x40
|
||||
void PutFrame() override; // vtable+0x6c
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10078660
|
||||
// LegoCarBuildAnimPresenter::`scalar deleting destructor'
|
||||
|
||||
@ -7,25 +7,25 @@
|
||||
class LegoCarRaceActor : public LegoRaceActor {
|
||||
public:
|
||||
// FUNCTION: LEGO1 0x10081650
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f0568
|
||||
return "LegoCarRaceActor";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10081670
|
||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, 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
|
||||
void VTable0x68() override; // vtable+0x68
|
||||
void VTable0x6c() override; // vtable+0x6c
|
||||
void VTable0x70(float p_float) override; // vtable+0x70
|
||||
MxS32 VTable0x90() override; // vtable+0x90
|
||||
MxS32 VTable0x94() override; // vtable+0x94
|
||||
void VTable0x98() override; // vtable+0x98
|
||||
void VTable0x9c() override; // vtable+0x9c
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10081610
|
||||
// LegoCarRaceActor::`scalar deleting destructor'
|
||||
|
||||
@ -6,6 +6,8 @@
|
||||
#include "mxcore.h"
|
||||
#include "mxpresenterlist.h"
|
||||
|
||||
class MxControlPresenter;
|
||||
|
||||
// VTABLE: LEGO1 0x100d6a98
|
||||
// SIZE 0x2c
|
||||
class LegoControlManagerEvent : public LegoEventNotificationParam {
|
||||
@ -40,19 +42,19 @@ class LegoControlManagerEvent : public LegoEventNotificationParam {
|
||||
class LegoControlManager : public MxCore {
|
||||
public:
|
||||
LegoControlManager();
|
||||
virtual ~LegoControlManager() override; // vtable+0x00
|
||||
~LegoControlManager() override; // vtable+0x00
|
||||
|
||||
virtual MxResult Tickle() override; // vtable+0x08
|
||||
MxResult Tickle() override; // vtable+0x08
|
||||
|
||||
// FUNCTION: LEGO1 0x10028cb0
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f31b8
|
||||
return "LegoControlManager";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10028cc0
|
||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, LegoControlManager::ClassName()) || MxCore::IsA(p_name);
|
||||
}
|
||||
@ -62,7 +64,7 @@ class LegoControlManager : public MxCore {
|
||||
void Unregister(MxCore* p_listener);
|
||||
MxBool FUN_10029210(LegoEventNotificationParam& p_param, MxPresenter* p_presenter);
|
||||
void FUN_100293c0(undefined4, const char*, undefined2);
|
||||
void FUN_100294e0(MxS32 p_x, MxS32 p_y);
|
||||
MxControlPresenter* FUN_100294e0(MxS32 p_x, MxS32 p_y);
|
||||
MxBool FUN_10029630();
|
||||
MxBool FUN_10029750();
|
||||
void FUN_100292e0();
|
||||
|
||||
@ -20,9 +20,9 @@ class LegoEntity : public MxEntity {
|
||||
inline LegoEntity() { Init(); }
|
||||
|
||||
// FUNCTION: LEGO1 0x1000c290
|
||||
virtual ~LegoEntity() override { Destroy(TRUE); }
|
||||
~LegoEntity() override { Destroy(TRUE); }
|
||||
|
||||
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||
MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||
|
||||
// FUNCTION: LEGO1 0x1000c2f0
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
|
||||
@ -22,7 +22,7 @@ class LegoEntityList : public MxPtrList<LegoEntity> {
|
||||
LegoEntityList(MxBool p_ownership = FALSE) : MxPtrList<LegoEntity>(p_ownership) {}
|
||||
|
||||
// FUNCTION: LEGO1 0x1001e2d0
|
||||
virtual MxS8 Compare(LegoEntity* p_a, LegoEntity* p_b) override
|
||||
MxS8 Compare(LegoEntity* p_a, LegoEntity* p_b) override
|
||||
{
|
||||
return p_a == p_b ? 0 : p_a < p_b ? -1 : 1;
|
||||
} // vtable+0x14
|
||||
@ -74,7 +74,7 @@ class LegoEntityListCursor : public MxPtrListCursor<LegoEntity> {
|
||||
// SYNTHETIC: LEGO1 0x1001f110
|
||||
// LegoEntityListCursor::`scalar deleting destructor'
|
||||
|
||||
// FUNCTION: LEGO1 0x1001f180
|
||||
// TEMPLATE: LEGO1 0x1001f180
|
||||
// MxPtrListCursor<LegoEntity>::~MxPtrListCursor<LegoEntity>
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1001f1d0
|
||||
@ -83,7 +83,7 @@ class LegoEntityListCursor : public MxPtrListCursor<LegoEntity> {
|
||||
// SYNTHETIC: LEGO1 0x1001f240
|
||||
// MxPtrListCursor<LegoEntity>::`scalar deleting destructor'
|
||||
|
||||
// FUNCTION: LEGO1 0x1001f2b0
|
||||
// TEMPLATE: LEGO1 0x1001f2b0
|
||||
// MxListCursor<LegoEntity *>::~MxListCursor<LegoEntity *>
|
||||
|
||||
// FUNCTION: LEGO1 0x1001f300
|
||||
|
||||
@ -10,7 +10,7 @@ class LegoEntity;
|
||||
class LegoEntityPresenter : public MxCompositePresenter {
|
||||
public:
|
||||
LegoEntityPresenter();
|
||||
virtual ~LegoEntityPresenter() override; // vtable+0x00
|
||||
~LegoEntityPresenter() override; // vtable+0x00
|
||||
|
||||
// FUNCTION: LEGO1 0x100534b0
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
@ -25,13 +25,13 @@ class LegoEntityPresenter : public MxCompositePresenter {
|
||||
return !strcmp(p_name, LegoEntityPresenter::ClassName()) || MxCompositePresenter::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual void ReadyTickle() override; // vtable+0x18
|
||||
virtual void RepeatingTickle() override; // vtable+0x24
|
||||
virtual void ParseExtra() override; // vtable+0x30
|
||||
virtual void Destroy() override; // vtable+0x38
|
||||
virtual MxResult StartAction(MxStreamController* p_controller, MxDSAction* p_action) override; // vtable+0x3c
|
||||
virtual void Init(); // vtable+0x68
|
||||
virtual undefined4 SetEntity(LegoEntity* p_entity); // vtable+0x6c
|
||||
void ReadyTickle() override; // vtable+0x18
|
||||
void RepeatingTickle() override; // vtable+0x24
|
||||
void ParseExtra() override; // vtable+0x30
|
||||
void Destroy() override; // vtable+0x38
|
||||
MxResult StartAction(MxStreamController* p_controller, MxDSAction* p_action) override; // vtable+0x3c
|
||||
virtual void Init(); // vtable+0x68
|
||||
virtual undefined4 SetEntity(LegoEntity* p_entity); // vtable+0x6c
|
||||
|
||||
void SetEntityLocation(Mx3DPointFloat& p_location, Mx3DPointFloat& p_direction, Mx3DPointFloat& p_up);
|
||||
|
||||
|
||||
@ -12,7 +12,7 @@
|
||||
class LegoEventNotificationParam : public MxNotificationParam {
|
||||
public:
|
||||
// FUNCTION: LEGO1 0x10028690
|
||||
virtual MxNotificationParam* Clone() override
|
||||
MxNotificationParam* Clone() override
|
||||
{
|
||||
LegoEventNotificationParam* clone =
|
||||
new LegoEventNotificationParam(m_type, m_sender, m_modifier, m_x, m_y, m_key);
|
||||
|
||||
@ -17,9 +17,9 @@ 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
|
||||
void StartingTickle() override; // vtable+0x1c
|
||||
void LoadFrame(MxStreamChunk* p_chunk) override; // vtable+0x68
|
||||
void PutFrame() override; // vtable+0x6c
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1005df00
|
||||
// LegoFlcTexturePresenter::`scalar deleting destructor'
|
||||
|
||||
@ -8,7 +8,7 @@
|
||||
class LegoFullScreenMovie : public MxVariable {
|
||||
public:
|
||||
LegoFullScreenMovie(const char* p_key, const char* p_value);
|
||||
virtual void SetValue(const char* p_option) override;
|
||||
void SetValue(const char* p_option) override;
|
||||
};
|
||||
|
||||
#endif // LEGOFULLSCREENMOVIE_H
|
||||
|
||||
@ -32,19 +32,25 @@ class LegoGameState {
|
||||
LegoState* CreateState(const char* p_stateName);
|
||||
|
||||
void GetFileSavePath(MxString* p_outPath, MxULong p_slotn);
|
||||
void FUN_1003a720(MxU32);
|
||||
void HandleAction(MxU32);
|
||||
void StopArea(MxU32 p_area = 0);
|
||||
void SwitchArea(MxU32 p_area);
|
||||
|
||||
inline MxU8 GetUnknownC() { return m_unk0x0c; }
|
||||
inline MxU32 GetUnknown10() { return m_unk0x10; }
|
||||
inline MxS32 GetCurrentAct() { return m_currentAct; }
|
||||
inline undefined4 GetUnknown424() { return m_unk0x424; }
|
||||
inline MxU32 GetCurrentArea() { return m_currentArea; }
|
||||
inline MxU32 GetPreviousArea() { return m_previousArea; }
|
||||
inline MxU32 GetUnknown0x42c() { return m_unk0x42c; }
|
||||
|
||||
inline void SetDirty(MxBool p_dirty) { m_isDirty = p_dirty; }
|
||||
inline void SetUnknown424(undefined4 p_unk0x424) { m_unk0x424 = p_unk0x424; }
|
||||
inline void SetCurrentArea(MxU32 p_currentArea) { m_currentArea = p_currentArea; }
|
||||
inline void SetPreviousArea(MxU32 p_previousArea) { m_previousArea = p_previousArea; }
|
||||
inline void SetUnknown0x0c(MxU8 p_unk0x0c) { m_unk0x0c = p_unk0x0c; }
|
||||
|
||||
void SetSomeEnumState(undefined4 p_state);
|
||||
void FUN_1003ceb0();
|
||||
void FUN_10039780(MxU8);
|
||||
void FUN_10039940();
|
||||
|
||||
struct ScoreStruct {
|
||||
void WriteScoreHistory();
|
||||
@ -75,8 +81,8 @@ class LegoGameState {
|
||||
ScoreStruct m_unk0xa6; // 0xa6
|
||||
undefined m_unk0x41a[8]; // 0x41a - might be part of the structure at 0xa6
|
||||
MxBool m_isDirty; // 0x420
|
||||
undefined4 m_unk0x424; // 0x424
|
||||
undefined4 m_prevArea; // 0x428
|
||||
MxU32 m_currentArea; // 0x424
|
||||
MxU32 m_previousArea; // 0x428
|
||||
undefined4 m_unk0x42c; // 0x42c
|
||||
};
|
||||
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
class LegoHideAnimPresenter : public LegoLoopingAnimPresenter {
|
||||
public:
|
||||
LegoHideAnimPresenter();
|
||||
virtual ~LegoHideAnimPresenter() override;
|
||||
~LegoHideAnimPresenter() override;
|
||||
|
||||
// FUNCTION: LEGO1 0x1006d880
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
@ -24,12 +24,12 @@ class LegoHideAnimPresenter : public LegoLoopingAnimPresenter {
|
||||
return !strcmp(p_name, ClassName()) || LegoAnimPresenter::IsA(p_name);
|
||||
}
|
||||
|
||||
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
|
||||
void ReadyTickle() override; // vtable+0x18
|
||||
void StartingTickle() override; // vtable+0x18
|
||||
MxResult AddToManager() override; // vtable+0x34
|
||||
void Destroy() override; // vtable+0x38
|
||||
void EndAction() override; // vtable+0x40
|
||||
void PutFrame() override; // vtable+0x6c
|
||||
|
||||
private:
|
||||
void Init();
|
||||
|
||||
@ -42,7 +42,7 @@ class LegoEventQueue : public MxQueue<LegoEventNotificationParam> {};
|
||||
class LegoNotifyList : public MxPtrList<MxCore> {
|
||||
protected:
|
||||
// FUNCTION: LEGO1 0x10028830
|
||||
virtual MxS8 Compare(MxCore* p_element1, MxCore* p_element2) override
|
||||
MxS8 Compare(MxCore* p_element1, MxCore* p_element2) override
|
||||
{
|
||||
return p_element1 == p_element2 ? 0 : p_element1 < p_element2 ? -1 : 1;
|
||||
} // vtable+0x14
|
||||
@ -69,19 +69,19 @@ class LegoNotifyListCursor : public MxPtrListCursor<MxCore> {
|
||||
class LegoInputManager : public MxPresenter {
|
||||
public:
|
||||
LegoInputManager();
|
||||
virtual ~LegoInputManager() override;
|
||||
~LegoInputManager() override;
|
||||
|
||||
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+0x08
|
||||
MxResult Tickle() override; // vtable+0x08
|
||||
|
||||
// FUNCTION: LEGO1 0x1005b8c0
|
||||
virtual MxResult PutData() override { return SUCCESS; } // vtable+0x4c
|
||||
MxResult PutData() override { return SUCCESS; } // vtable+0x4c
|
||||
|
||||
MxResult Create(HWND p_hwnd);
|
||||
void Destroy();
|
||||
void Destroy() override;
|
||||
void CreateAndAcquireKeyboard(HWND p_hwnd);
|
||||
void ReleaseDX();
|
||||
MxResult GetJoystickId();
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
// VTABLE: LEGO1 0x100d5a40
|
||||
class LegoJetski : public LegoJetskiRaceActor {
|
||||
public:
|
||||
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||
MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||
|
||||
// FUNCTION: LEGO1 0x10013e80
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
@ -21,13 +21,13 @@ 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
|
||||
void ParseAction(char*) override; // vtable+0x20
|
||||
void SetWorldSpeed(MxFloat p_worldSpeed) override; // vtable+0x30
|
||||
void VTable0x6c() override; // vtable+0x6c
|
||||
void VTable0x70(float p_float) override; // vtable+0x70
|
||||
MxS32 VTable0x94() override; // vtable+0x94
|
||||
void VTable0x98() override; // vtable+0x98
|
||||
void VTable0x9c() override; // vtable+0x9c
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10013e20
|
||||
// LegoJetski::`scalar deleting destructor'
|
||||
|
||||
@ -19,10 +19,10 @@ 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
|
||||
void VTable0x6c() override; // vtable+0x6c
|
||||
void VTable0x70(float p_float) override; // vtable+0x70
|
||||
void VTable0x98() override; // vtable+0x98
|
||||
void VTable0x9c() override; // vtable+0x9c
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10081d40
|
||||
// LegoJetskiRaceActor::`scalar deleting destructor'
|
||||
|
||||
@ -11,7 +11,7 @@ class LegoCacheSound;
|
||||
class LegoLoadCacheSoundPresenter : public MxWavePresenter {
|
||||
public:
|
||||
LegoLoadCacheSoundPresenter();
|
||||
virtual ~LegoLoadCacheSoundPresenter() override;
|
||||
~LegoLoadCacheSoundPresenter() override;
|
||||
|
||||
// FUNCTION: LEGO1 0x10018450
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
@ -20,10 +20,10 @@ 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
|
||||
void ReadyTickle() override; // vtable+0x18
|
||||
void StreamingTickle() override; // vtable+0x20
|
||||
void DoneTickle() override; // vtable+0x2c
|
||||
MxResult PutData() override; // vtable+0x4c
|
||||
|
||||
private:
|
||||
void Init();
|
||||
|
||||
@ -8,7 +8,7 @@
|
||||
class LegoLocomotionAnimPresenter : public LegoLoopingAnimPresenter {
|
||||
public:
|
||||
LegoLocomotionAnimPresenter();
|
||||
virtual ~LegoLocomotionAnimPresenter() override;
|
||||
~LegoLocomotionAnimPresenter() override;
|
||||
|
||||
// FUNCTION: LEGO1 0x1006ce50
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
@ -23,22 +23,23 @@ 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
|
||||
void ReadyTickle() override; // vtable+0x18
|
||||
void StartingTickle() override; // vtable+0x1c
|
||||
void StreamingTickle() override; // vtable+0x20
|
||||
MxResult AddToManager() override; // vtable+0x34
|
||||
void Destroy() override; // vtable+0x38
|
||||
void EndAction() override; // vtable+0x40
|
||||
void PutFrame() override; // vtable+0x6c
|
||||
MxResult VTable0x88(MxStreamChunk* p_chunk) override; // vtable+0x88
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1006cfe0
|
||||
// LegoLocomotionAnimPresenter::`scalar deleting destructor'
|
||||
|
||||
inline void DecrementUnknown0xd4()
|
||||
{
|
||||
if (m_unk0xd4)
|
||||
if (m_unk0xd4) {
|
||||
--m_unk0xd4;
|
||||
}
|
||||
}
|
||||
|
||||
inline undefined2 GetUnknown0xd4() { return m_unk0xd4; }
|
||||
|
||||
@ -20,8 +20,8 @@ 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
|
||||
void StreamingTickle() override; // vtable+0x20
|
||||
void PutFrame() override; // vtable+0x6c
|
||||
};
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1006d000
|
||||
|
||||
@ -8,13 +8,13 @@
|
||||
class LegoMeterPresenter : public MxStillPresenter {
|
||||
public:
|
||||
LegoMeterPresenter();
|
||||
virtual ~LegoMeterPresenter() override;
|
||||
~LegoMeterPresenter() override;
|
||||
|
||||
// MxStillPresenter's `::ClassName` and `::IsA` are used.
|
||||
|
||||
virtual void StreamingTickle() override; // vtable+0x20
|
||||
virtual void RepeatingTickle() override; // vtable+0x24
|
||||
virtual void ParseExtra() override; // vtable+0x30
|
||||
void StreamingTickle() override; // vtable+0x20
|
||||
void RepeatingTickle() override; // vtable+0x24
|
||||
void ParseExtra() override; // vtable+0x30
|
||||
|
||||
private:
|
||||
void FUN_10043a50();
|
||||
|
||||
@ -24,9 +24,9 @@ class LegoModelPresenter : public MxVideoPresenter {
|
||||
return !strcmp(p_name, ClassName()) || MxVideoPresenter::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual void ReadyTickle() override; // vtable+0x18
|
||||
virtual void ParseExtra() override; // vtable+0x30
|
||||
virtual void Destroy() override; // vtable+0x38
|
||||
void ReadyTickle() override; // vtable+0x18
|
||||
void ParseExtra() override; // vtable+0x30
|
||||
void Destroy() override; // vtable+0x38
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1000cdd0
|
||||
// LegoModelPresenter::`scalar deleting destructor'
|
||||
|
||||
@ -37,8 +37,8 @@ class LegoNavController : public MxCore {
|
||||
);
|
||||
|
||||
LegoNavController();
|
||||
virtual ~LegoNavController() override; // vtable+0x00
|
||||
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||
~LegoNavController() override; // vtable+0x00
|
||||
MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||
|
||||
// FUNCTION: LEGO1 0x10054b80
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
|
||||
@ -105,8 +105,8 @@
|
||||
class LegoObjectFactory : public MxObjectFactory {
|
||||
public:
|
||||
LegoObjectFactory();
|
||||
virtual MxCore* Create(const char* p_name) override; // vtable 0x14
|
||||
virtual void Destroy(MxCore* p_object) override; // vtable 0x18
|
||||
MxCore* Create(const char* p_name) override; // vtable 0x14
|
||||
void Destroy(MxCore* p_object) override; // vtable 0x18
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10009000
|
||||
// LegoObjectFactory::`scalar deleting destructor'
|
||||
|
||||
@ -28,6 +28,7 @@ class MxBackgroundAudioManager;
|
||||
class MxDSFile;
|
||||
class MxTransitionManager;
|
||||
class ViewLODListManager;
|
||||
class ViewManager;
|
||||
|
||||
extern MxAtomId* g_copterScript;
|
||||
extern MxAtomId* g_dunecarScript;
|
||||
@ -75,33 +76,33 @@ class LegoOmni : public MxOmni {
|
||||
static LegoOmni* GetInstance();
|
||||
|
||||
LegoOmni();
|
||||
virtual ~LegoOmni(); // vtable+00
|
||||
~LegoOmni() override; // vtable+00
|
||||
|
||||
virtual MxLong Notify(MxParam& p_param) override; // vtable+04
|
||||
MxLong Notify(MxParam& p_param) override; // vtable+04
|
||||
|
||||
// FUNCTION: LEGO1 0x10058aa0
|
||||
inline virtual const char* ClassName() const override // vtable+0c
|
||||
inline const char* ClassName() const override // vtable+0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f671c
|
||||
return "LegoOmni";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10058ab0
|
||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+10
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+10
|
||||
{
|
||||
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* 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
|
||||
void Init() override; // vtable+14
|
||||
MxResult Create(MxOmniCreateParam& p_param) override; // vtable+18
|
||||
void Destroy() override; // vtable+1c
|
||||
MxResult Start(MxDSAction* p_dsAction) override; // vtable+20
|
||||
void DeleteObject(MxDSAction& p_dsAction) override; // vtable+24
|
||||
MxBool DoesEntityExist(MxDSAction& p_dsAction) override; // vtable+28
|
||||
MxEntity* AddToWorld(const char* p_id, MxS32 p_entityId, MxPresenter* p_presenter) override; // vtable+30
|
||||
void NotifyCurrentEntity(MxNotificationParam* p_param) override; // vtable+34
|
||||
void StartTimer() override; // vtable+38
|
||||
void StopTimer() override; // vtable+3c
|
||||
|
||||
LegoWorld* FindWorld(const MxAtomId& p_atom, MxS32 p_entityid);
|
||||
void AddWorld(LegoWorld* p_world);
|
||||
@ -125,7 +126,7 @@ class LegoOmni : public MxOmni {
|
||||
LegoUnkSaveDataWriter* GetUnkSaveDataWriter() { return m_saveDataWriter; }
|
||||
|
||||
inline void SetNavController(LegoNavController* p_navController) { m_navController = p_navController; }
|
||||
inline void SetWorld(LegoWorld* p_currentWorld) { m_currentWorld = p_currentWorld; }
|
||||
inline void SetCurrentWorld(LegoWorld* p_currentWorld) { m_currentWorld = p_currentWorld; }
|
||||
inline void SetExit(MxBool p_exit) { m_exit = p_exit; }
|
||||
|
||||
inline void CloseMainWindow() { PostMessageA(m_windowHandle, WM_CLOSE, 0, 0); }
|
||||
@ -164,14 +165,15 @@ LegoROI* PickROI(MxLong, MxLong);
|
||||
LegoSoundManager* SoundManager();
|
||||
MxTransitionManager* TransitionManager();
|
||||
LegoVideoManager* VideoManager();
|
||||
|
||||
LegoAnimationManager* AnimationManager();
|
||||
LegoNavController* NavController();
|
||||
LegoBuildingManager* BuildingManager();
|
||||
LegoControlManager* ControlManager();
|
||||
IslePathActor* GetCurrentVehicle();
|
||||
IslePathActor* CurrentVehicle();
|
||||
ViewManager* GetViewManager();
|
||||
LegoPlantManager* PlantManager();
|
||||
LegoWorld* GetCurrentWorld();
|
||||
LegoUnkSaveDataWriter* GetUnkSaveDataWriter();
|
||||
LegoWorld* CurrentWorld();
|
||||
LegoUnkSaveDataWriter* UnkSaveDataWriter();
|
||||
GifManager* GetGifManager();
|
||||
void FUN_10015820(MxBool p_disable, MxU16 p_flags);
|
||||
void FUN_10015860(const char*, MxU8);
|
||||
|
||||
@ -10,7 +10,7 @@
|
||||
class LegoPalettePresenter : public MxVideoPresenter {
|
||||
public:
|
||||
LegoPalettePresenter();
|
||||
virtual ~LegoPalettePresenter() override; // vtable+0x00
|
||||
~LegoPalettePresenter() override; // vtable+0x00
|
||||
|
||||
// FUNCTION: LEGO1 0x10079f30
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
@ -25,8 +25,8 @@ class LegoPalettePresenter : public MxVideoPresenter {
|
||||
return !strcmp(p_name, ClassName()) || MxVideoPresenter::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual void ReadyTickle() override; // vtable+0x18
|
||||
virtual void Destroy() override; // vtable+0x38
|
||||
void ReadyTickle() override; // vtable+0x18
|
||||
void Destroy() override; // vtable+0x38
|
||||
|
||||
MxResult ParsePalette(MxStreamChunk* p_chunk);
|
||||
|
||||
|
||||
@ -20,9 +20,9 @@ class LegoPartPresenter : public MxMediaPresenter {
|
||||
return !strcmp(p_name, LegoPartPresenter::ClassName()) || MxMediaPresenter::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual void ReadyTickle() override; // vtable+0x18
|
||||
virtual MxResult AddToManager() override; // vtable+0x34
|
||||
virtual void Destroy() override; // vtable+0x38
|
||||
void ReadyTickle() override; // vtable+0x18
|
||||
MxResult AddToManager() override; // vtable+0x34
|
||||
void Destroy() override; // vtable+0x38
|
||||
|
||||
static void configureLegoPartPresenter(MxS32, MxS32);
|
||||
|
||||
|
||||
@ -10,7 +10,7 @@
|
||||
class LegoPathActor : public LegoActor {
|
||||
public:
|
||||
LegoPathActor();
|
||||
virtual ~LegoPathActor() override;
|
||||
~LegoPathActor() override;
|
||||
|
||||
// FUNCTION: LEGO1 0x1000c430
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
@ -25,7 +25,7 @@ class LegoPathActor : public LegoActor {
|
||||
return !strcmp(p_name, LegoPathActor::ClassName()) || LegoActor::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual void ParseAction(char*) override; // vtable+0x20
|
||||
void ParseAction(char*) override; // vtable+0x20
|
||||
virtual void VTable0x68(); // vtable+0x68
|
||||
virtual void VTable0x6c(); // vtable+0x6c
|
||||
virtual void VTable0x70(float p_float); // vtable+0x70
|
||||
|
||||
@ -8,9 +8,9 @@
|
||||
class LegoPathController : public MxCore {
|
||||
public:
|
||||
LegoPathController();
|
||||
virtual ~LegoPathController() override { Destroy(); }
|
||||
~LegoPathController() override { Destroy(); }
|
||||
|
||||
virtual MxResult Tickle() override; // vtable+08
|
||||
MxResult Tickle() override; // vtable+08
|
||||
|
||||
// FUNCTION: LEGO1 0x10045110
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
@ -30,6 +30,8 @@ class LegoPathController : public MxCore {
|
||||
|
||||
virtual void VTable0x14(); // vtable+0x14
|
||||
virtual void Destroy(); // vtable+0x18
|
||||
|
||||
void Enable(MxBool p_enable);
|
||||
};
|
||||
|
||||
#endif // LEGOPATHCONTROLLER_H
|
||||
|
||||
@ -5,6 +5,12 @@
|
||||
#include "mxlist.h"
|
||||
#include "mxtypes.h"
|
||||
|
||||
// VTABLE: LEGO1 0x100d6380
|
||||
// class MxCollection<LegoPathController *>
|
||||
|
||||
// VTABLE: LEGO1 0x100d6398
|
||||
// class MxList<LegoPathController *>
|
||||
|
||||
// VTABLE: LEGO1 0x100d6320
|
||||
// class MxPtrList<LegoPathController>
|
||||
|
||||
@ -15,20 +21,24 @@ class LegoPathControllerList : public MxPtrList<LegoPathController> {
|
||||
LegoPathControllerList(MxBool p_ownership = FALSE) : MxPtrList<LegoPathController>(p_ownership) {}
|
||||
|
||||
// FUNCTION: LEGO1 0x1001d210
|
||||
virtual MxS8 Compare(LegoPathController* p_a, LegoPathController* p_b) override
|
||||
MxS8 Compare(LegoPathController* p_a, LegoPathController* p_b) override
|
||||
{
|
||||
return p_a == p_b ? 0 : p_a < p_b ? -1 : 1;
|
||||
} // vtable+0x14
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1001d3d0
|
||||
// LegoPathControllerList::`scalar deleting destructor'
|
||||
};
|
||||
|
||||
// VTABLE: LEGO1 0x100d6380
|
||||
// class MxCollection<LegoPathController *>
|
||||
// VTABLE: LEGO1 0x100d6578
|
||||
// class MxListCursor<LegoPathController *>
|
||||
|
||||
// VTABLE: LEGO1 0x100d6398
|
||||
// class MxList<LegoPathController *>
|
||||
// VTABLE: LEGO1 0x100d6548
|
||||
// class MxPtrListCursor<LegoPathController>
|
||||
|
||||
// VTABLE: LEGO1 0x100d6560
|
||||
// SIZE 0x10
|
||||
class LegoPathControllerListCursor : public MxPtrListCursor<LegoPathController> {
|
||||
public:
|
||||
LegoPathControllerListCursor(LegoPathControllerList* p_list) : MxPtrListCursor<LegoPathController>(p_list){};
|
||||
};
|
||||
|
||||
// TEMPLATE: LEGO1 0x1001d230
|
||||
// MxCollection<LegoPathController *>::Compare
|
||||
@ -48,6 +58,9 @@ class LegoPathControllerList : public MxPtrList<LegoPathController> {
|
||||
// TEMPLATE: LEGO1 0x1001d3c0
|
||||
// MxPtrList<LegoPathController>::Destroy
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1001d3d0
|
||||
// LegoPathControllerList::`scalar deleting destructor'
|
||||
|
||||
// TEMPLATE: LEGO1 0x1001d440
|
||||
// MxPtrList<LegoPathController>::~MxPtrList<LegoPathController>
|
||||
|
||||
@ -63,4 +76,22 @@ class LegoPathControllerList : public MxPtrList<LegoPathController> {
|
||||
// SYNTHETIC: LEGO1 0x1001d620
|
||||
// LegoPathControllerList::~LegoPathControllerList
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1001f830
|
||||
// LegoPathControllerListCursor::`scalar deleting destructor'
|
||||
|
||||
// TEMPLATE: LEGO1 0x1001f8a0
|
||||
// MxPtrListCursor<LegoPathController>::~MxPtrListCursor<LegoPathController>
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1001f8f0
|
||||
// MxListCursor<LegoPathController *>::`scalar deleting destructor'
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1001f960
|
||||
// MxPtrListCursor<LegoPathController>::`scalar deleting destructor'
|
||||
|
||||
// TEMPLATE: LEGO1 0x1001f9d0
|
||||
// MxListCursor<LegoPathController *>::~MxListCursor<LegoPathController *>
|
||||
|
||||
// FUNCTION: LEGO1 0x1001fa20
|
||||
// LegoPathControllerListCursor::~LegoPathControllerListCursor
|
||||
|
||||
#endif // LEGOPATHCONTROLLERLIST_H
|
||||
|
||||
@ -8,7 +8,7 @@
|
||||
class LegoPathPresenter : public MxMediaPresenter {
|
||||
public:
|
||||
LegoPathPresenter();
|
||||
virtual ~LegoPathPresenter() override;
|
||||
~LegoPathPresenter() override;
|
||||
|
||||
// FUNCTION: LEGO1 0x100449a0
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
@ -23,12 +23,12 @@ class LegoPathPresenter : public MxMediaPresenter {
|
||||
return !strcmp(p_name, LegoPathPresenter::ClassName()) || MxMediaPresenter::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual void ReadyTickle() override; // vtable+0x18
|
||||
virtual void StreamingTickle() override; // vtable+0x20
|
||||
virtual void RepeatingTickle() override; // vtable+0x24
|
||||
virtual void ParseExtra() override; // vtable+0x30
|
||||
virtual MxResult AddToManager() override; // vtable+0x34
|
||||
virtual void Destroy() override; // vtable+0x38
|
||||
void ReadyTickle() override; // vtable+0x18
|
||||
void StreamingTickle() override; // vtable+0x20
|
||||
void RepeatingTickle() override; // vtable+0x24
|
||||
void ParseExtra() override; // vtable+0x30
|
||||
MxResult AddToManager() override; // vtable+0x34
|
||||
void Destroy() override; // vtable+0x38
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10044a90
|
||||
// LegoPathPresenter::`scalar deleting destructor'
|
||||
|
||||
@ -11,7 +11,7 @@
|
||||
class LegoPhonemePresenter : public MxFlcPresenter {
|
||||
public:
|
||||
LegoPhonemePresenter();
|
||||
virtual ~LegoPhonemePresenter() override; // vtable+0x00
|
||||
~LegoPhonemePresenter() override; // vtable+0x00
|
||||
|
||||
// FUNCTION: LEGO1 0x1004e310
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
@ -20,10 +20,10 @@ 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
|
||||
void StartingTickle() override; // vtable+0x1c
|
||||
void EndAction() override; // vtable+0x40
|
||||
void LoadFrame(MxStreamChunk* p_chunk) override; // vtable+0x68
|
||||
void PutFrame() override; // vtable+0x6c
|
||||
|
||||
// SYNTHETIC: LEGO1 0x1004e320
|
||||
// LegoPhonemePresenter::`scalar deleting destructor'
|
||||
|
||||
@ -9,9 +9,9 @@
|
||||
class LegoPlantManager : public MxCore {
|
||||
public:
|
||||
LegoPlantManager();
|
||||
virtual ~LegoPlantManager() override; // vtable+0x00
|
||||
~LegoPlantManager() override; // vtable+0x00
|
||||
|
||||
virtual MxResult Tickle() override; // vtable+0x08
|
||||
MxResult Tickle() override; // vtable+0x08
|
||||
|
||||
// FUNCTION: LEGO1 0x10026290
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
|
||||
@ -20,7 +20,7 @@ class LegoNavController;
|
||||
class LegoMouseController : public MxCore {
|
||||
public:
|
||||
LegoMouseController();
|
||||
virtual ~LegoMouseController() override;
|
||||
~LegoMouseController() override;
|
||||
|
||||
virtual void LeftDown(int, int); // vtable+0x14
|
||||
virtual void LeftDrag(int, int); // vtable+0x18
|
||||
@ -44,14 +44,14 @@ class LegoMouseController : public MxCore {
|
||||
class LegoPointOfViewController : public LegoMouseController {
|
||||
public:
|
||||
LegoPointOfViewController();
|
||||
virtual ~LegoPointOfViewController() override;
|
||||
~LegoPointOfViewController() override;
|
||||
|
||||
virtual MxResult Tickle() override; // vtable+0x08
|
||||
virtual void LeftDown(int p_x, int p_y) override; // vtable+0x0c
|
||||
virtual void LeftDrag(int p_x, int p_y) override; // vtable+0x10
|
||||
MxResult Tickle() override; // vtable+0x08
|
||||
void LeftDown(int p_x, int p_y) override; // vtable+0x0c
|
||||
void LeftDrag(int p_x, int p_y) override; // vtable+0x10
|
||||
|
||||
// FUNCTION: LEGO1 0x10011e40
|
||||
virtual void LeftUp(int p_x, int p_y) override
|
||||
void LeftUp(int p_x, int p_y) override
|
||||
{
|
||||
LegoMouseController::LeftUp(p_x, p_y);
|
||||
AffectPointOfView();
|
||||
@ -59,7 +59,7 @@ class LegoPointOfViewController : public LegoMouseController {
|
||||
// vtable+0x14
|
||||
|
||||
// FUNCTION: LEGO1 0x10011e60
|
||||
virtual void RightDown(int p_x, int p_y) override
|
||||
void RightDown(int p_x, int p_y) override
|
||||
{
|
||||
LegoMouseController::RightDown(p_x, p_y);
|
||||
AffectPointOfView();
|
||||
@ -67,7 +67,7 @@ class LegoPointOfViewController : public LegoMouseController {
|
||||
// vtable+0x20
|
||||
|
||||
// FUNCTION: LEGO1 0x10011e80
|
||||
virtual void RightDrag(int p_x, int p_y) override
|
||||
void RightDrag(int p_x, int p_y) override
|
||||
{
|
||||
LegoMouseController::RightDrag(p_x, p_y);
|
||||
AffectPointOfView();
|
||||
@ -75,7 +75,7 @@ class LegoPointOfViewController : public LegoMouseController {
|
||||
// vtable+0x24
|
||||
|
||||
// FUNCTION: LEGO1 0x10011ea0
|
||||
virtual void RightUp(int p_x, int p_y) override
|
||||
void RightUp(int p_x, int p_y) override
|
||||
{
|
||||
LegoMouseController::RightUp(p_x, p_y);
|
||||
AffectPointOfView();
|
||||
@ -86,6 +86,7 @@ class LegoPointOfViewController : public LegoMouseController {
|
||||
void OnViewSize(int p_width, int p_height);
|
||||
|
||||
inline LegoEntity* GetEntity() { return m_entity; }
|
||||
inline LegoNavController* GetNavController() { return m_nav; }
|
||||
|
||||
protected:
|
||||
void AffectPointOfView();
|
||||
|
||||
@ -11,9 +11,9 @@
|
||||
class LegoRace : public LegoWorld {
|
||||
public:
|
||||
LegoRace();
|
||||
virtual ~LegoRace() override; // vtable+0x00
|
||||
~LegoRace() override; // vtable+0x00
|
||||
|
||||
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||
MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||
|
||||
// FUNCTION: LEGO1 0x10015ba0
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
@ -28,15 +28,15 @@ class LegoRace : public LegoWorld {
|
||||
return !strcmp(p_name, LegoRace::ClassName()) || LegoWorld::IsA(p_name);
|
||||
}
|
||||
|
||||
virtual MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
|
||||
virtual MxBool VTable0x5c() override; // vtable+0x5c
|
||||
virtual MxBool VTable0x64() override; // vtable+0x64
|
||||
virtual void VTable0x68(MxBool p_add) override; // vtable+0x68
|
||||
virtual undefined4 VTable0x6c(undefined4) = 0; // vtable+0x6c
|
||||
virtual undefined4 VTable0x70(undefined4); // vtable+0x70
|
||||
virtual undefined4 VTable0x74(undefined4); // vtable+0x74
|
||||
virtual undefined4 VTable0x78(undefined4); // vtable+0x78
|
||||
virtual void VTable0x7c(undefined4, undefined4); // vtable+0x7c
|
||||
MxResult Create(MxDSAction& p_dsAction) override; // vtable+0x18
|
||||
MxBool VTable0x5c() override; // vtable+0x5c
|
||||
MxBool VTable0x64() override; // vtable+0x64
|
||||
void Enable(MxBool p_enable) override; // vtable+0x68
|
||||
virtual undefined4 VTable0x6c(undefined4) = 0; // vtable+0x6c
|
||||
virtual undefined4 VTable0x70(undefined4); // vtable+0x70
|
||||
virtual undefined4 VTable0x74(undefined4); // vtable+0x74
|
||||
virtual undefined4 VTable0x78(undefined4); // vtable+0x78
|
||||
virtual void VTable0x7c(undefined4, undefined4); // vtable+0x7c
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10015cc0
|
||||
// LegoRace::`scalar deleting destructor'
|
||||
|
||||
@ -20,13 +20,13 @@ 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
|
||||
void ParseAction(char*) override; // vtable+0x20
|
||||
void SetWorldSpeed(MxFloat p_worldSpeed) override; // vtable+0x30
|
||||
void VTable0x68() override; // vtable+0x68
|
||||
void VTable0x70(float p_float) override; // vtable+0x70
|
||||
void VTable0x74(Matrix4& p_transform) override; // vtable+0x74
|
||||
MxS32 VTable0x90() override; // vtable+0x90
|
||||
MxS32 VTable0x94() override; // vtable+0x94
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10014ab0
|
||||
// LegoRaceActor::`scalar deleting destructor'
|
||||
|
||||
@ -8,7 +8,7 @@
|
||||
// SIZE 0x200
|
||||
class LegoRaceCar : public LegoCarRaceActor {
|
||||
public:
|
||||
virtual MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||
MxLong Notify(MxParam& p_param) override; // vtable+0x04
|
||||
|
||||
// FUNCTION: LEGO1 0x10014290
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
@ -23,13 +23,13 @@ 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
|
||||
void ParseAction(char*) override; // vtable+0x20
|
||||
void SetWorldSpeed(MxFloat p_worldSpeed) override; // vtable+0x30
|
||||
void VTable0x6c() override; // vtable+0x6c
|
||||
void VTable0x70(float p_float) override; // vtable+0x70
|
||||
MxS32 VTable0x94() override; // vtable+0x94
|
||||
void VTable0x98() override; // vtable+0x98
|
||||
void VTable0x9c() override; // vtable+0x9c
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10014230
|
||||
// LegoRaceCar::`scalar deleting destructor'
|
||||
|
||||
@ -9,11 +9,11 @@
|
||||
class LegoSoundManager : public MxSoundManager {
|
||||
public:
|
||||
LegoSoundManager();
|
||||
virtual ~LegoSoundManager() override;
|
||||
~LegoSoundManager() override;
|
||||
|
||||
virtual MxResult Tickle() override; // vtable+08
|
||||
virtual void Destroy() override; // vtable+18
|
||||
virtual MxResult Create(MxU32 p_frequencyMS, MxBool p_createThread) override; // vtable+0x30
|
||||
MxResult Tickle() override; // vtable+08
|
||||
void Destroy() override; // vtable+18
|
||||
MxResult Create(MxU32 p_frequencyMS, MxBool p_createThread) override; // vtable+0x30
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10029920
|
||||
// LegoSoundManager::`scalar deleting destructor'
|
||||
@ -24,8 +24,11 @@ class LegoSoundManager : public MxSoundManager {
|
||||
void Init();
|
||||
void Destroy(MxBool p_fromDestructor);
|
||||
|
||||
undefined4 m_unk0x3c; // 0x3c
|
||||
LegoUnknown100d6b4c* m_unk0x40; // 0x40
|
||||
LPDIRECTSOUND3DLISTENER m_listener; // 0x3c
|
||||
LegoUnknown100d6b4c* m_unk0x40; // 0x40
|
||||
};
|
||||
|
||||
// GLOBAL: LEGO1 0x100db6d0
|
||||
// IID_IDirectSound3DListener
|
||||
|
||||
#endif // LEGOSOUNDMANAGER_H
|
||||
|
||||
@ -11,17 +11,17 @@
|
||||
class LegoState : public MxCore {
|
||||
public:
|
||||
// FUNCTION: LEGO1 0x10005f40
|
||||
virtual ~LegoState() override {}
|
||||
~LegoState() override {}
|
||||
|
||||
// FUNCTION: LEGO1 0x100060d0
|
||||
inline virtual const char* ClassName() const override // vtable+0x0c
|
||||
inline const char* ClassName() const override // vtable+0x0c
|
||||
{
|
||||
// STRING: LEGO1 0x100f01b8
|
||||
return "LegoState";
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x100060e0
|
||||
inline virtual MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
inline MxBool IsA(const char* p_name) const override // vtable+0x10
|
||||
{
|
||||
return !strcmp(p_name, LegoState::ClassName()) || MxCore::IsA(p_name);
|
||||
}
|
||||
@ -43,6 +43,55 @@ class LegoState : public MxCore {
|
||||
|
||||
// SYNTHETIC: LEGO1 0x10006160
|
||||
// LegoState::`scalar deleting destructor'
|
||||
|
||||
// SIZE 0x0c
|
||||
class Playlist {
|
||||
public:
|
||||
enum Mode {
|
||||
e_loop,
|
||||
e_once,
|
||||
e_random,
|
||||
e_loopSkipFirst
|
||||
};
|
||||
|
||||
// FUNCTION: LEGO1 0x10017c00
|
||||
Playlist()
|
||||
{
|
||||
m_objectIds = NULL;
|
||||
m_length = 0;
|
||||
m_mode = e_loop;
|
||||
m_nextIndex = 0;
|
||||
}
|
||||
|
||||
Playlist(MxU32* p_objectIds, MxS16 p_length)
|
||||
{
|
||||
m_objectIds = p_objectIds;
|
||||
m_length = p_length;
|
||||
m_mode = e_loop;
|
||||
m_nextIndex = 0;
|
||||
}
|
||||
|
||||
// FUNCTION: LEGO1 0x10071800
|
||||
Playlist& operator=(const Playlist& p_shuffle)
|
||||
{
|
||||
m_objectIds = p_shuffle.m_objectIds;
|
||||
m_length = p_shuffle.m_length;
|
||||
m_nextIndex = p_shuffle.m_nextIndex;
|
||||
m_mode = p_shuffle.m_mode;
|
||||
return *this;
|
||||
}
|
||||
|
||||
MxU32 Next();
|
||||
MxBool Contains(MxU32 p_objectId);
|
||||
|
||||
inline void SetUnknown0x08(MxS16 p_unk0x08) { m_nextIndex = p_unk0x08; }
|
||||
|
||||
private:
|
||||
MxU32* m_objectIds; // 0x00
|
||||
MxS16 m_length; // 0x04
|
||||
MxS16 m_mode; // 0x06
|
||||
MxS16 m_nextIndex; // 0x08
|
||||
};
|
||||
};
|
||||
|
||||
#endif // LEGOSTATE_H
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user