Remove debug window (#736)

* Remove debug window

* LEGO1: remove a few exports

* LEGO1: Remove a few `friend class DebugViewer` declarations
This commit is contained in:
Anonymous Maarten 2025-11-21 15:20:37 +01:00 committed by GitHub
parent d182a8057c
commit 85ff14e997
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
13 changed files with 6 additions and 561 deletions

3
.gitmodules vendored
View File

@ -4,9 +4,6 @@
[submodule "3rdparty/miniaudio"]
path = 3rdparty/miniaudio
url = https://github.com/mackron/miniaudio
[submodule "imgui"]
path = 3rdparty/imgui
url = https://github.com/ocornut/imgui
[submodule "3rdparty/libweaver"]
path = 3rdparty/libweaver
url = https://github.com/isledecomp/SIEdit

View File

@ -48,32 +48,6 @@ add_library(libsmacker STATIC
)
target_include_directories(libsmacker PUBLIC ${libsmacker_SOURCE_DIR})
if(DOWNLOAD_DEPENDENCIES)
include(FetchContent)
FetchContent_Declare(
imgui
GIT_REPOSITORY "https://github.com/ocornut/imgui"
GIT_TAG f5befd2d29e66809cd1110a152e375a7f1981f06
)
FetchContent_MakeAvailable(imgui)
else()
set(imgui_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/imgui")
endif()
add_library(imgui STATIC
${imgui_SOURCE_DIR}/imgui.cpp
${imgui_SOURCE_DIR}/imgui_draw.cpp
${imgui_SOURCE_DIR}/imgui_tables.cpp
${imgui_SOURCE_DIR}/imgui_widgets.cpp
${imgui_SOURCE_DIR}/imgui_demo.cpp
${imgui_SOURCE_DIR}/backends/imgui_impl_sdl3.cpp
${imgui_SOURCE_DIR}/backends/imgui_impl_sdlrenderer3.cpp
)
target_include_directories(imgui PUBLIC ${imgui_SOURCE_DIR})
target_link_libraries(imgui PUBLIC SDL3::Headers)
target_link_libraries(imgui PRIVATE SDL3::SDL3)
set_property(TARGET imgui PROPERTY CXX_CLANG_TIDY "")
if(DOWNLOAD_DEPENDENCIES)
include(FetchContent)
FetchContent_Populate(

1
3rdparty/imgui vendored

@ -1 +0,0 @@
Subproject commit f5befd2d29e66809cd1110a152e375a7f1981f06

View File

@ -23,7 +23,6 @@ if (NINTENDO_SWITCH)
add_compile_definitions(__SWITCH__)
add_compile_definitions(SDL_PLATFORM_SWITCH)
add_compile_definitions(SDL_VIDEO_DRIVER_SWITCH)
add_compile_definitions(IMGUI_DISABLE_DEFAULT_SHELL_FUNCTIONS)
endif()
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake")
@ -54,7 +53,6 @@ option(ISLE_BUILD_ASSETS "Build assets from the /assets directory" OFF)
option(ISLE_ASAN "Enable Address Sanitizer" OFF)
option(ISLE_UBSAN "Enable Undefined Behavior Sanitizer" OFF)
option(ISLE_WERROR "Treat warnings as errors" OFF)
cmake_dependent_option(ISLE_DEBUG "Enable imgui debug" ON "NOT VITA" OFF)
cmake_dependent_option(ISLE_USE_DX5 "Build with internal DirectX 5 SDK" "${NOT_MINGW}" "WIN32;CMAKE_SIZEOF_VOID_P EQUAL 4" OFF)
cmake_dependent_option(ISLE_MINIWIN "Use miniwin" ON "NOT ISLE_USE_DX5" OFF)
cmake_dependent_option(ISLE_EXTENSIONS "Use extensions" ON "NOT ISLE_USE_DX5;NOT WINDOWS_STORE" OFF)
@ -72,7 +70,6 @@ message(STATUS "Config app: ${ISLE_BUILD_CONFIG}")
message(STATUS "Internal DirectX5 SDK: ${ISLE_USE_DX5}")
message(STATUS "Internal miniwin: ${ISLE_MINIWIN}")
message(STATUS "Isle extensions: ${ISLE_EXTENSIONS}")
message(STATUS "Isle debugging: ${ISLE_DEBUG}")
message(STATUS "Compile shaders: ${ISLE_COMPILE_SHADERS}")
add_library(Isle::iniparser INTERFACE IMPORTED)
@ -573,21 +570,6 @@ if (ISLE_BUILD_APP)
endif()
# Link LEGO1
target_link_libraries(isle PRIVATE lego1)
if(ISLE_DEBUG)
target_sources(isle PRIVATE
ISLE/isledebug.cpp
)
target_compile_definitions(isle PRIVATE ISLE_DEBUG)
target_link_libraries(isle PRIVATE imgui)
find_path(valgrind_INCLUDE_PATH NAMES valgrind/callgrind.h)
if(valgrind_INCLUDE_PATH)
# Run isle under valgrind to create a profile. Use e.g. kcachegrind to view the profile.
# > valgrind --tool=callgrind --dump-instr=yes --simulate-cache=yes --collect-jumps=yes \
# > --collect-atstart=no --instr-atstart=no ./isle --debug
target_compile_definitions(isle PRIVATE ISLE_VALGRIND)
target_include_directories(isle PRIVATE ${valgrind_INCLUDE_PATH})
endif()
endif()
if(EMSCRIPTEN)
target_sources(isle PRIVATE
ISLE/emscripten/config.cpp
@ -909,7 +891,7 @@ endif()
if(NINTENDO_SWITCH)
find_program(NACPTOOL NAMES nacptool)
find_program(ELF2NRO NAMES elf2nro)
add_custom_command(
OUTPUT "isle.nacp"
COMMAND "${NACPTOOL}"

View File

@ -4,7 +4,6 @@
#include "3dmanager/lego3dmanager.h"
#include "decomp.h"
#include "isledebug.h"
#include "legoanimationmanager.h"
#include "legobuildingmanager.h"
#include "legogamestate.h"
@ -413,8 +412,6 @@ SDL_AppResult SDL_AppIterate(void* appstate)
}
if (!g_closed) {
IsleDebug_Render();
if (g_reqEnableRMDevice) {
g_reqEnableRMDevice = FALSE;
VideoManager()->EnableRMDevice();
@ -455,10 +452,6 @@ SDL_AppResult SDL_AppEvent(void* appstate, SDL_Event* event)
return SDL_APP_CONTINUE;
}
if (IsleDebug_Event(event)) {
return SDL_APP_CONTINUE;
}
if (InputManager()) {
InputManager()->UpdateLastInputMethod(event);
}
@ -498,13 +491,11 @@ SDL_AppResult SDL_AppEvent(void* appstate, SDL_Event* event)
switch (event->type) {
case SDL_EVENT_WINDOW_FOCUS_GAINED:
if (!IsleDebug_Enabled()) {
g_isle->SetWindowActive(TRUE);
Lego()->Resume();
}
g_isle->SetWindowActive(TRUE);
Lego()->Resume();
break;
case SDL_EVENT_WINDOW_FOCUS_LOST:
if (!IsleDebug_Enabled() && g_isle->GetGameStarted()) {
if (g_isle->GetGameStarted()) {
g_isle->SetWindowActive(FALSE);
Lego()->Pause();
#ifdef __EMSCRIPTEN__
@ -869,8 +860,6 @@ SDL_AppResult SDL_AppEvent(void* appstate, SDL_Event* event)
void SDL_AppQuit(void* appstate, SDL_AppResult result)
{
IsleDebug_Quit();
if (appstate != NULL) {
SDL_DestroyWindow((SDL_Window*) appstate);
}
@ -1040,8 +1029,6 @@ MxResult IsleApp::SetupWindow()
}
}
IsleDebug_Init();
return SUCCESS;
}
@ -1265,10 +1252,6 @@ inline bool IsleApp::Tick()
// GLOBAL: ISLE 0x4101bc
static MxS32 g_startupDelay = 1;
if (IsleDebug_Paused() && IsleDebug_StepModeEnabled()) {
IsleDebug_SetPaused(false);
}
if (!m_windowActive) {
SDL_Delay(1);
return true;
@ -1299,11 +1282,6 @@ inline bool IsleApp::Tick()
}
g_lastFrameTime = currentTime;
if (IsleDebug_StepModeEnabled()) {
IsleDebug_SetPaused(true);
IsleDebug_ResetStepMode();
}
if (g_startupDelay == 0) {
return true;
}
@ -1402,14 +1380,6 @@ SDL_AppResult IsleApp::ParseArguments(int argc, char** argv)
m_iniPath = argv[i + 1];
consumed = 2;
}
else if (strcmp(argv[i], "--debug") == 0) {
#ifdef ISLE_DEBUG
IsleDebug_SetEnabled(true);
#else
SDL_Log("isle is built without debug support. Ignoring --debug argument.");
#endif
consumed = 1;
}
else if (strcmp(argv[i], "--help") == 0) {
DisplayArgumentHelp(argv[0]);
return SDL_APP_SUCCESS;
@ -1429,9 +1399,6 @@ void IsleApp::DisplayArgumentHelp(const char* p_execName)
SDL_Log("Usage: %s [options]", p_execName);
SDL_Log("Options:");
SDL_Log(" --ini <path> Set custom path to .ini config");
#ifdef ISLE_DEBUG
SDL_Log(" --debug Launch in debug mode");
#endif
SDL_Log(" --help Show this help message");
}

View File

@ -1,400 +0,0 @@
#include "isledebug.h"
#include "isleapp.h"
#include "lego/sources/roi/legoroi.h"
#include "legobuildingmanager.h"
#include "legoentity.h"
#include "legogamestate.h"
#include "legoplantmanager.h"
#include "legosoundmanager.h"
#include "legovideomanager.h"
#include "misc.h"
#include "mxticklemanager.h"
#include <SDL3/SDL.h>
#include <backends/imgui_impl_sdl3.h>
#include <backends/imgui_impl_sdlrenderer3.h>
#include <imgui.h>
#ifdef ISLE_VALGRIND
#include <valgrind/callgrind.h>
#endif
#define SCANCODE_KEY_PAUSE SDL_SCANCODE_KP_0
#define SCANCODE_KEY_RESUME SDL_SCANCODE_KP_PERIOD
static bool g_debugEnabled;
static bool g_debugPaused;
static bool g_debugDoStep;
static SDL_Window* g_debugWindow;
static SDL_Renderer* g_debugRenderer;
static SDL_Texture* g_videoPalette;
static IDirect3DRMMiniwinDevice* g_d3drmMiniwinDevice;
#ifdef ISLE_VALGRIND
static bool g_instrumentationEnabled;
#endif
class DebugViewer {
public:
static void InsidePlantManager()
{
LegoPlantManager* plantManager = Lego()->GetPlantManager();
ImGui::Value("#plants", plantManager->GetNumPlants());
ImGui::Value("#entries", plantManager->m_numEntries);
if (plantManager->m_numEntries) {
if (ImGui::BeginTable("Animated Entries", 4, ImGuiTableFlags_Borders)) {
ImGui::TableSetupColumn("ROI Name");
ImGui::TableSetupColumn("ROI m_sharedLodList");
ImGui::TableSetupColumn("Entity Name");
ImGui::TableSetupColumn("Time");
ImGui::TableHeadersRow();
for (MxS8 i = 0; i < plantManager->m_numEntries; i++) {
const auto* entry = plantManager->m_entries[i];
ImGui::TableNextRow();
ImGui::Text("%s", entry->m_roi->m_name);
ImGui::TableNextColumn();
ImGui::Text("%d", entry->m_roi->m_sharedLodList);
ImGui::TableNextColumn();
ImGui::Text("%s", entry->m_roi->m_entity->ClassName());
ImGui::TableNextColumn();
ImGui::Text("%d", entry->m_time);
}
ImGui::EndTable();
}
}
}
static void InsideBuildingManager()
{
auto buildingManager = Lego()->GetBuildingManager();
ImGui::Text("nextVariant: %u", buildingManager->m_nextVariant);
ImGui::Text("m_boundariesDetermined: %d", buildingManager->m_boundariesDetermined);
ImGui::Text("m_hideAfterAnimation: %d", buildingManager->m_hideAfterAnimation);
ImGui::Text("#Animated Entries: %d", buildingManager->m_numEntries);
if (buildingManager->m_numEntries) {
if (ImGui::BeginTable("Animated Entries", 6, ImGuiTableFlags_Borders)) {
ImGui::TableSetupColumn("ROI Name");
ImGui::TableSetupColumn("ROI m_sharedLodList");
ImGui::TableSetupColumn("Entity Name");
ImGui::TableSetupColumn("Time");
ImGui::TableSetupColumn("Y");
ImGui::TableSetupColumn("Muted");
ImGui::TableHeadersRow();
for (MxS8 i = 0; i < buildingManager->m_numEntries; i++) {
const auto* entry = buildingManager->m_entries[i];
ImGui::TableNextRow();
ImGui::Text("%s", entry->m_roi->m_name);
ImGui::TableNextColumn();
ImGui::Text("%d", entry->m_roi->m_sharedLodList);
ImGui::TableNextColumn();
ImGui::Text("%s", entry->m_roi->m_entity->ClassName());
ImGui::TableNextColumn();
ImGui::Text("%d", entry->m_time);
ImGui::TableNextColumn();
ImGui::Text("%f", entry->m_y);
ImGui::TableNextColumn();
ImGui::Text("%d", entry->m_muted);
}
ImGui::EndTable();
}
}
}
static void InsideTickleManager()
{
auto tickleManager = Lego()->GetTickleManager();
ImGui::Value("#clients", static_cast<int>(tickleManager->m_clients.size()));
if (ImGui::BeginTable("Clients", 3, ImGuiTableFlags_Borders)) {
ImGui::TableSetupColumn("Client");
ImGui::TableSetupColumn("Interval");
ImGui::TableSetupColumn("Flags");
ImGui::TableHeadersRow();
for (const auto* ticleClient : tickleManager->m_clients) {
ImGui::TableNextRow();
ImGui::TableNextColumn();
ImGui::Text("%s", ticleClient->GetClient()->ClassName());
ImGui::TableNextColumn();
ImGui::Text("%d", ticleClient->GetTickleInterval());
ImGui::TableNextColumn();
ImGui::Text("0x%x", ticleClient->GetFlags());
}
ImGui::EndTable();
}
}
static void InsideVideoManager()
{
auto videoManager = Lego()->GetVideoManager();
SDL_UpdateTexture(g_videoPalette, NULL, videoManager->m_paletteEntries, 4 * 16);
ImGui::Text("Elapsed: %gs", static_cast<float>(videoManager->GetElapsedSeconds()));
ImGui::Text("Render3D: %d", videoManager->GetRender3D());
ImGui::Text("unk0xe5: %d", videoManager->m_unk0xe5);
ImGui::Text("unk0xe5: %d", videoManager->m_unk0xe6);
ImGui::Text("unk0x54c: %f", videoManager->m_unk0x54c);
ImGui::Text("unk0x54c: %f", videoManager->m_unk0x550);
ImGui::Text("unk0x54c: %d", videoManager->m_unk0x554);
ImGui::Text("unk0x70: %u", videoManager->m_unk0x70);
ImGui::Text("Dither: %d", videoManager->m_dither);
ImGui::Text("BufferCount: %u", videoManager->m_bufferCount);
ImGui::Text("Paused: %d", videoManager->m_paused);
ImGui::Text("back: %g", videoManager->m_back);
ImGui::Text("front: %g", videoManager->m_front);
ImGui::Text("cameraWidth: %g", videoManager->m_cameraWidth);
ImGui::Text("cameraHeight: %g", videoManager->m_cameraHeight);
ImGui::Text("fov: %g", videoManager->m_fov);
ImVec2 uv_min = ImVec2(0.0f, 0.0f);
ImVec2 uv_max = ImVec2(1.0f, 1.0f);
ImGui::PushStyleVar(ImGuiStyleVar_ImageBorderSize, SDL_max(1.0f, ImGui::GetStyle().ImageBorderSize));
ImGui::ImageWithBg(
(ImTextureID) (uintptr_t) g_videoPalette,
ImVec2(200, 200),
uv_min,
uv_max,
ImVec4(0.0f, 0.0f, 0.0f, 1.0f)
);
ImGui::PopStyleVar();
}
};
void IsleDebug_Init()
{
do {
if (!g_debugEnabled) {
break;
}
if (!SDL_CreateWindowAndRenderer(
"Debug ISLE",
640,
480,
SDL_WINDOW_RESIZABLE,
&g_debugWindow,
&g_debugRenderer
)) {
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Failed to create debug window");
break;
}
IMGUI_CHECKVERSION();
ImGui::CreateContext();
ImGui::StyleColorsDark();
if (!ImGui_ImplSDL3_InitForSDLRenderer(g_debugWindow, g_debugRenderer)) {
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "ImGui_ImplSDL3_InitForSDLRenderer failed");
g_debugEnabled = false;
break;
}
g_videoPalette =
SDL_CreateTexture(g_debugRenderer, SDL_PIXELFORMAT_RGBX32, SDL_TEXTUREACCESS_STREAMING, 16, 16);
#if SDL_VERSION_ATLEAST(3, 3, 0)
SDL_SetTextureScaleMode(g_videoPalette, SDL_SCALEMODE_PIXELART);
#else
SDL_SetTextureScaleMode(g_videoPalette, SDL_SCALEMODE_NEAREST);
#endif
if (!ImGui_ImplSDLRenderer3_Init(g_debugRenderer)) {
g_debugEnabled = false;
break;
}
g_d3drmMiniwinDevice = GetD3DRMMiniwinDevice();
} while (0);
if (!g_debugEnabled) {
if (g_debugRenderer) {
SDL_DestroyRenderer(g_debugRenderer);
g_debugRenderer = nullptr;
}
if (g_debugWindow) {
SDL_DestroyWindow(g_debugWindow);
g_debugWindow = nullptr;
}
}
}
void IsleDebug_Quit()
{
SDL_DestroyRenderer(g_debugRenderer);
SDL_DestroyWindow(g_debugWindow);
if (g_d3drmMiniwinDevice) {
g_d3drmMiniwinDevice->Release();
}
}
bool IsleDebug_Event(SDL_Event* event)
{
if (!g_debugEnabled) {
return false;
}
if (event->type == SDL_EVENT_KEY_DOWN) {
if (event->key.scancode == SCANCODE_KEY_PAUSE) {
if (!g_debugPaused) {
IsleDebug_SetPaused(true);
}
else {
g_debugDoStep = true;
}
return true;
}
if (event->key.scancode == SCANCODE_KEY_RESUME) {
g_debugDoStep = false;
if (g_debugPaused) {
IsleDebug_SetPaused(false);
}
return true;
}
}
if (SDL_GetWindowFromEvent(event) != g_debugWindow) {
return false;
}
ImGui_ImplSDL3_ProcessEvent(event);
return true;
}
void IsleDebug_Render()
{
if (!g_debugEnabled) {
return;
}
const ImVec4 clear_color = ImVec4(0.45f, 0.55f, 0.60f, 1.00f);
ImGui_ImplSDLRenderer3_NewFrame();
ImGui_ImplSDL3_NewFrame();
ImGui::NewFrame();
ImGuiIO& io = ImGui::GetIO();
{
ImGui::BeginMainMenuBar();
if (ImGui::MenuItem(g_debugPaused ? "Resume" : "Pause")) {
g_debugPaused = !g_debugPaused;
if (g_debugPaused) {
g_isle->SetWindowActive(false);
Lego()->Pause();
}
else {
g_isle->SetWindowActive(true);
Lego()->Resume();
}
}
#ifdef ISLE_VALGRIND
if (ImGui::MenuItem(g_instrumentationEnabled ? "Disable instrumentation" : "Enable instrumentation")) {
g_instrumentationEnabled = !g_instrumentationEnabled;
if (g_instrumentationEnabled) {
CALLGRIND_START_INSTRUMENTATION;
CALLGRIND_TOGGLE_COLLECT;
}
else {
CALLGRIND_TOGGLE_COLLECT;
CALLGRIND_STOP_INSTRUMENTATION;
}
}
#endif
ImGui::EndMainMenuBar();
ImGui::ShowDemoWindow(nullptr);
LegoOmni* lego = Lego();
if (ImGui::Begin("LEGO")) {
if (ImGui::TreeNode("Game State")) {
LegoGameState* gameState = lego->GetGameState();
ImGui::Value("Actor Id", gameState->GetActorId());
ImGui::Text("Actor Name: %s", gameState->GetActorName());
ImGui::Text("Current act: %d", gameState->GetCurrentAct());
ImGui::Text("Loaded act: %d", gameState->GetLoadedAct());
ImGui::Text("Previous area: %d", gameState->m_previousArea);
ImGui::Text("Saved previous area: %d", gameState->m_savedPreviousArea);
ImGui::Value("Player count", gameState->m_playerCount);
ImGui::TreePop();
}
if (ImGui::TreeNode("Renderer")) {
if (g_d3drmMiniwinDevice) {
ImGui::Text("Using miniwin driver");
}
else {
ImGui::Text("No miniwin driver");
}
ImGui::TreePop();
}
if (ImGui::TreeNode("Sound Manager")) {
LegoSoundManager* soundManager = lego->GetSoundManager();
Sint32 oldVolume = soundManager->GetVolume();
int volume = oldVolume;
ImGui::SliderInt("volume", &volume, 0, 100);
if (volume != oldVolume) {
soundManager->SetVolume(volume);
}
ImGui::TreePop();
}
if (ImGui::TreeNode("Video Manager")) {
DebugViewer::InsideVideoManager();
ImGui::TreePop();
}
if (ImGui::TreeNode("Plant Manager")) {
DebugViewer::InsidePlantManager();
ImGui::TreePop();
}
if (ImGui::TreeNode("Building Manager")) {
DebugViewer::InsideBuildingManager();
ImGui::TreePop();
}
if (ImGui::TreeNode("Tickle Manager")) {
DebugViewer::InsideTickleManager();
ImGui::TreePop();
}
}
ImGui::End();
}
ImGui::Render();
SDL_RenderClear(g_debugRenderer);
SDL_SetRenderScale(g_debugRenderer, io.DisplayFramebufferScale.x, io.DisplayFramebufferScale.y);
SDL_SetRenderDrawColor(
g_debugRenderer,
(Uint8) (clear_color.x * 255),
(Uint8) (clear_color.y * 255),
(Uint8) (clear_color.z * 255),
(Uint8) (clear_color.w * 255)
);
ImGui_ImplSDLRenderer3_RenderDrawData(ImGui::GetDrawData(), g_debugRenderer);
SDL_RenderPresent(g_debugRenderer);
}
bool IsleDebug_Enabled()
{
return g_debugEnabled;
}
void IsleDebug_SetEnabled(bool v)
{
if (v) {
SDL_Log(
"Press \"%s\" for pausing/stepping the game",
SDL_GetKeyName(SDL_GetKeyFromScancode(SCANCODE_KEY_PAUSE, 0, false))
);
SDL_Log(
"Press \"%s\" for resuming the game",
SDL_GetKeyName(SDL_GetKeyFromScancode(SCANCODE_KEY_RESUME, 0, false))
);
}
g_debugEnabled = v;
}
void IsleDebug_SetPaused(bool v)
{
SDL_assert(g_debugPaused == !v);
g_debugPaused = v;
if (g_debugPaused) {
g_isle->SetWindowActive(false);
Lego()->Pause();
}
else {
g_isle->SetWindowActive(true);
Lego()->Resume();
}
}
bool IsleDebug_Paused()
{
return g_debugPaused;
}
void IsleDebug_ResetStepMode()
{
g_debugDoStep = false;
}
bool IsleDebug_StepModeEnabled()
{
return g_debugDoStep;
}

View File

@ -1,64 +0,0 @@
#ifndef ISLEDEBUG_H
#define ISLEDEBUG_H
#if defined(ISLE_DEBUG)
typedef union SDL_Event SDL_Event;
extern bool IsleDebug_Enabled();
extern void IsleDebug_SetEnabled(bool);
extern void IsleDebug_Init();
extern void IsleDebug_Quit();
extern bool IsleDebug_Event(SDL_Event* event);
extern void IsleDebug_Render();
extern void IsleDebug_SetPaused(bool v);
extern bool IsleDebug_Paused();
extern bool IsleDebug_StepModeEnabled();
extern void IsleDebug_ResetStepMode();
#else
#define IsleDebug_Enabled() (false)
#define IsleDebug_SetEnabled(V) \
do { \
} while (0)
#define IsleDebug_Init() \
do { \
} while (0)
#define IsleDebug_Quit() \
do { \
} while (0)
#define IsleDebug_Event(EVENT) (false)
#define IsleDebug_Render() \
do { \
} while (0)
#define IsleDebug_SetPaused(X) \
do { \
} while (0)
#define IsleDebug_Paused() (false)
#define IsleDebug_StepModeEnabled() (false)
#define IsleDebug_ResetStepMode() \
do { \
} while (0)
#endif
#endif

View File

@ -109,8 +109,6 @@ class LegoBuildingManager : public MxCore {
LegoCacheSound* m_sound; // 0x24
MxBool m_hideAfterAnimation; // 0x28
LegoWorld* m_world; // 0x2c
friend class DebugViewer;
};
#endif // LEGOBUILDINGMANAGER_H

View File

@ -15,7 +15,7 @@ class LegoStorage;
class MxVariableTable;
class MxString;
LEGO1_EXPORT extern const char* g_actorNames[7];
extern const char* g_actorNames[7];
// SIZE 0x08
struct ColorStringStruct {

View File

@ -14,7 +14,7 @@ class LegoWorld;
// VTABLE: LEGO1 0x100d6758
// SIZE 0x2c
class LEGO1_EXPORT LegoPlantManager : public MxCore {
class LegoPlantManager : public MxCore {
public:
// SIZE 0x0c
struct AnimEntry {
@ -82,8 +82,6 @@ class LEGO1_EXPORT LegoPlantManager : public MxCore {
AnimEntry* m_entries[5]; // 0x10
MxS8 m_numEntries; // 0x24
LegoWorld* m_world; // 0x28
friend class DebugViewer;
};
#endif // LEGOPLANTMANAGER_H

View File

@ -137,8 +137,6 @@ class LegoVideoManager : public MxVideoManager {
D3DRMRENDERMODE m_rendermode; // 0x584
BOOL m_dither; // 0x588
DWORD m_bufferCount; // 0x58c
friend class DebugViewer;
};
#endif // LEGOVIDEOMANAGER_H

View File

@ -101,8 +101,6 @@ class LegoROI : public ViewROI {
BoundingSphere m_sphere; // 0xe8
LegoBool m_sharedLodList; // 0x100
LegoEntity* m_entity; // 0x104
friend class DebugViewer;
};
// VTABLE: LEGO1 0x100dbea8

View File

@ -55,8 +55,6 @@ class MxTickleManager : public MxCore {
private:
MxTickleClientPtrList m_clients; // 0x08
friend class DebugViewer;
};
#define TICKLE_MANAGER_NOT_FOUND 0x80000000