Enhanced logging, option to auto-start mission
* added logging of application events * changed debug mode flag to independent debug modes * added option to auto-start mission (load a mission immediately after startup) * removed "enum value out of range" prints * some refactoringdev-ui
parent
7cf8811888
commit
7874aca10c
|
@ -98,6 +98,8 @@ option(INSTALL_DOCS "Install Doxygen-generated documentation" OFF)
|
|||
# Build openal sound support
|
||||
option(OPENAL_SOUND "Build openal sound support" OFF)
|
||||
|
||||
# Change to false in case static boost libraries are not available
|
||||
option(STATIC_BOOST "Link with static boost libraries" ON)
|
||||
|
||||
##
|
||||
# Searching for packages
|
||||
|
@ -110,9 +112,9 @@ find_package(SDL_ttf 2.0 REQUIRED)
|
|||
find_package(PNG 1.2 REQUIRED)
|
||||
find_package(Gettext REQUIRED)
|
||||
|
||||
set(Boost_USE_STATIC_LIBS ON)
|
||||
set(Boost_USE_MULTITHREADED ON)
|
||||
set(Boost_USE_STATIC_RUNTIME OFF)
|
||||
set(Boost_USE_STATIC_LIBS ${STATIC_BOOST})
|
||||
set(Boost_USE_MULTITHREADED ON)
|
||||
set(Boost_USE_STATIC_RUNTIME OFF)
|
||||
|
||||
set(Boost_ADDITIONALVERSION "1.51" "1.51.0")
|
||||
find_package(Boost COMPONENTS system filesystem regex REQUIRED)
|
||||
|
@ -184,7 +186,7 @@ endif()
|
|||
##
|
||||
# Clipboard support
|
||||
##
|
||||
set(CLIPBOARD_DIR ${colobot_SOURCE_DIR}/lib/clipboard/include)
|
||||
set(CLIPBOARD_INCLUDE_DIR ${colobot_SOURCE_DIR}/lib/clipboard/include)
|
||||
add_subdirectory(${colobot_SOURCE_DIR}/lib/clipboard bin/clipboard)
|
||||
|
||||
|
||||
|
|
|
@ -219,7 +219,7 @@ ${GLEW_INCLUDE_PATH}
|
|||
${Boost_INCLUDE_DIRS}
|
||||
${LIBSNDFILE_INCLUDE_DIR}
|
||||
${OPTIONAL_INCLUDE_DIRS}
|
||||
${CLIPBOARD_DIR}
|
||||
${CLIPBOARD_INCLUDE_DIR}
|
||||
)
|
||||
|
||||
link_directories(${CMAKE_CURRENT_SOURCE_DIR}/CBot)
|
||||
|
|
363
src/app/app.cpp
363
src/app/app.cpp
|
@ -25,13 +25,19 @@
|
|||
#include "common/iman.h"
|
||||
#include "common/image.h"
|
||||
#include "common/key.h"
|
||||
#include "common/stringutils.h"
|
||||
|
||||
#include "graphics/engine/modelmanager.h"
|
||||
#include "graphics/opengl/gldevice.h"
|
||||
|
||||
#include "object/robotmain.h"
|
||||
|
||||
#ifdef OPENAL_SOUND
|
||||
#include "sound/oalsound/alsound.h"
|
||||
#endif
|
||||
|
||||
#include <boost/filesystem.hpp>
|
||||
#include <boost/tokenizer.hpp>
|
||||
|
||||
#include <SDL.h>
|
||||
#include <SDL_image.h>
|
||||
|
@ -42,11 +48,6 @@
|
|||
#include <getopt.h>
|
||||
|
||||
|
||||
#ifdef OPENAL_SOUND
|
||||
#include "sound/oalsound/alsound.h"
|
||||
#endif
|
||||
|
||||
|
||||
template<> CApplication* CSingleton<CApplication>::m_instance = nullptr;
|
||||
|
||||
//! Static buffer for putenv locale
|
||||
|
@ -107,7 +108,7 @@ CApplication::CApplication()
|
|||
|
||||
m_exitCode = 0;
|
||||
m_active = false;
|
||||
m_debugMode = false;
|
||||
m_debugModes = 0;
|
||||
|
||||
m_windowTitle = "COLOBOT";
|
||||
|
||||
|
@ -148,10 +149,15 @@ CApplication::CApplication()
|
|||
m_langPath = COLOBOT_I18N_DIR;
|
||||
m_texPackPath = "";
|
||||
|
||||
m_runSceneName = "";
|
||||
m_runSceneRank = 0;
|
||||
|
||||
m_language = LANGUAGE_ENV;
|
||||
|
||||
m_lowCPU = true;
|
||||
|
||||
m_protoMode = false;
|
||||
|
||||
for (int i = 0; i < DIR_MAX; ++i)
|
||||
m_standardDataDirs[i] = nullptr;
|
||||
|
||||
|
@ -216,24 +222,27 @@ ParseArgsStatus CApplication::ParseArguments(int argc, char *argv[])
|
|||
{
|
||||
OPT_HELP = 1,
|
||||
OPT_DEBUG,
|
||||
OPT_DATADIR,
|
||||
OPT_RUNSCENE,
|
||||
OPT_LOGLEVEL,
|
||||
OPT_LANGUAGE,
|
||||
OPT_DATADIR,
|
||||
OPT_LANGDIR,
|
||||
OPT_TEXPACK,
|
||||
OPT_VBO,
|
||||
OPT_TEXPACK
|
||||
OPT_PROTO
|
||||
};
|
||||
|
||||
option options[] =
|
||||
{
|
||||
{ "help", no_argument, nullptr, OPT_HELP },
|
||||
{ "debug", no_argument, nullptr, OPT_DEBUG },
|
||||
{ "datadir", required_argument, nullptr, OPT_DATADIR },
|
||||
{ "debug", required_argument, nullptr, OPT_DEBUG },
|
||||
{ "runscene", required_argument, nullptr, OPT_RUNSCENE },
|
||||
{ "loglevel", required_argument, nullptr, OPT_LOGLEVEL },
|
||||
{ "language", required_argument, nullptr, OPT_LANGUAGE },
|
||||
{ "datadir", required_argument, nullptr, OPT_DATADIR },
|
||||
{ "langdir", required_argument, nullptr, OPT_LANGDIR },
|
||||
{ "vbo", required_argument, nullptr, OPT_VBO },
|
||||
{ "texpack", required_argument, nullptr, OPT_TEXPACK },
|
||||
{ "vbo", required_argument, nullptr, OPT_VBO },
|
||||
{ nullptr, 0, nullptr, 0}
|
||||
};
|
||||
|
||||
|
@ -264,19 +273,70 @@ ParseArgsStatus CApplication::ParseArguments(int argc, char *argv[])
|
|||
GetLogger()->Message("Colobot %s (%s)\n", COLOBOT_CODENAME, COLOBOT_VERSION);
|
||||
GetLogger()->Message("\n");
|
||||
GetLogger()->Message("List of available options:\n");
|
||||
GetLogger()->Message(" -help this help\n");
|
||||
GetLogger()->Message(" -debug enable debug mode (more info printed in logs)\n");
|
||||
GetLogger()->Message(" -datadir path set custom data directory path\n");
|
||||
GetLogger()->Message(" -loglevel level set log level to level (one of: trace, debug, info, warn, error, none)\n");
|
||||
GetLogger()->Message(" -language lang set language (one of: en, de, fr, pl)\n");
|
||||
GetLogger()->Message(" -langdir path set custom language directory path\n");
|
||||
GetLogger()->Message(" -vbo mode set OpenGL VBO mode (one of: auto, enable, disable)\n");
|
||||
GetLogger()->Message(" -texpack path set path to custom texture pack\n");
|
||||
GetLogger()->Message(" -help this help\n");
|
||||
GetLogger()->Message(" -debug modes enable debug modes (more info printed in logs; see code for reference of modes)\n");
|
||||
GetLogger()->Message(" -runscene sceneNNN run given scene on start\n");
|
||||
GetLogger()->Message(" -loglevel level set log level to level (one of: trace, debug, info, warn, error, none)\n");
|
||||
GetLogger()->Message(" -language lang set language (one of: en, de, fr, pl)\n");
|
||||
GetLogger()->Message(" -datadir path set custom data directory path\n");
|
||||
GetLogger()->Message(" -langdir path set custom language directory path\n");
|
||||
GetLogger()->Message(" -texpack path set path to custom texture pack\n");
|
||||
GetLogger()->Message(" -vbo mode set OpenGL VBO mode (one of: auto, enable, disable)\n");
|
||||
GetLogger()->Message(" -proto show prototype levels\n");
|
||||
return PARSE_ARGS_HELP;
|
||||
}
|
||||
case OPT_DEBUG:
|
||||
{
|
||||
SetDebugMode(true);
|
||||
if (optarg == nullptr)
|
||||
{
|
||||
m_debugModes = DEBUG_ALL;
|
||||
GetLogger()->Info("All debug modes active\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
int debugModes;
|
||||
if (! ParseDebugModes(optarg, debugModes))
|
||||
{
|
||||
return PARSE_ARGS_FAIL;
|
||||
}
|
||||
|
||||
m_debugModes = debugModes;
|
||||
GetLogger()->Info("Active debug modes: %s\n", optarg);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case OPT_RUNSCENE:
|
||||
{
|
||||
std::string file = optarg;
|
||||
m_runSceneName = file.substr(0, file.size()-3);
|
||||
m_runSceneRank = StrUtils::FromString<int>(file.substr(file.size()-3, 3));
|
||||
GetLogger()->Info("Running scene '%s%d' on start\n", m_runSceneName.c_str(), m_runSceneRank);
|
||||
break;
|
||||
}
|
||||
case OPT_LOGLEVEL:
|
||||
{
|
||||
LogLevel logLevel;
|
||||
if (! CLogger::ParseLogLevel(optarg, logLevel))
|
||||
{
|
||||
GetLogger()->Error("Invalid log level: '%s'\n", optarg);
|
||||
return PARSE_ARGS_FAIL;
|
||||
}
|
||||
|
||||
GetLogger()->Message("[*****] Log level changed to %s\n", optarg);
|
||||
GetLogger()->SetLogLevel(logLevel);
|
||||
break;
|
||||
}
|
||||
case OPT_LANGUAGE:
|
||||
{
|
||||
Language language;
|
||||
if (! ParseLanguage(optarg, language))
|
||||
{
|
||||
GetLogger()->Error("Invalid language: '%s'\n", optarg);
|
||||
return PARSE_ARGS_FAIL;
|
||||
}
|
||||
|
||||
GetLogger()->Info("Using language %s\n", optarg);
|
||||
m_language = language;
|
||||
break;
|
||||
}
|
||||
case OPT_DATADIR:
|
||||
|
@ -297,32 +357,6 @@ ParseArgsStatus CApplication::ParseArguments(int argc, char *argv[])
|
|||
GetLogger()->Info("Using texturepack: '%s'\n", m_texPackPath.c_str());
|
||||
break;
|
||||
}
|
||||
case OPT_LOGLEVEL:
|
||||
{
|
||||
LogLevel logLevel;
|
||||
if (! CLogger::ParseLogLevel(optarg, logLevel))
|
||||
{
|
||||
GetLogger()->Error("Invalid log level: \"%s\"\n", optarg);
|
||||
return PARSE_ARGS_FAIL;
|
||||
}
|
||||
|
||||
GetLogger()->Message("[*****] Log level changed to %s\n", optarg);
|
||||
GetLogger()->SetLogLevel(logLevel);
|
||||
break;
|
||||
}
|
||||
case OPT_LANGUAGE:
|
||||
{
|
||||
Language language;
|
||||
if (! ParseLanguage(optarg, language))
|
||||
{
|
||||
GetLogger()->Error("Invalid language: \"%s\"\n", optarg);
|
||||
return PARSE_ARGS_FAIL;
|
||||
}
|
||||
|
||||
GetLogger()->Info("Using language %s\n", optarg);
|
||||
m_language = language;
|
||||
break;
|
||||
}
|
||||
case OPT_VBO:
|
||||
{
|
||||
std::string vbo;
|
||||
|
@ -335,12 +369,17 @@ ParseArgsStatus CApplication::ParseArguments(int argc, char *argv[])
|
|||
m_deviceConfig.vboMode = Gfx::VBO_MODE_DISABLE;
|
||||
else
|
||||
{
|
||||
GetLogger()->Error("Invalid vbo mode: \"%s\"\n", optarg);
|
||||
GetLogger()->Error("Invalid vbo mode: '%s'\n", optarg);
|
||||
return PARSE_ARGS_FAIL;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
case OPT_PROTO:
|
||||
{
|
||||
m_protoMode = true;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
assert(false); // should never get here
|
||||
}
|
||||
|
@ -517,7 +556,10 @@ bool CApplication::Create()
|
|||
|
||||
if (defaultValues) m_robotMain->CreateIni();
|
||||
|
||||
m_robotMain->ChangePhase(PHASE_WELCOME1);
|
||||
if (! m_runSceneName.empty())
|
||||
m_robotMain->LoadSceneOnStart(m_runSceneName, m_runSceneRank);
|
||||
else
|
||||
m_robotMain->ChangePhase(PHASE_WELCOME1);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -641,7 +683,7 @@ bool CApplication::ChangeVideoConfig(const Gfx::GLDeviceConfig &newConfig)
|
|||
if (! CreateVideoSurface())
|
||||
{
|
||||
// Fatal error, so post the quit event
|
||||
m_eventQueue->AddEvent(Event(EVENT_QUIT));
|
||||
m_eventQueue->AddEvent(Event(EVENT_SYS_QUIT));
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -670,7 +712,7 @@ bool CApplication::ChangeVideoConfig(const Gfx::GLDeviceConfig &newConfig)
|
|||
|
||||
|
||||
// Fatal error, so post the quit event
|
||||
m_eventQueue->AddEvent(Event(EVENT_QUIT));
|
||||
m_eventQueue->AddEvent(Event(EVENT_SYS_QUIT));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
@ -854,31 +896,15 @@ int CApplication::Run()
|
|||
|
||||
Event event = ProcessSystemEvent();
|
||||
|
||||
if (event.type == EVENT_QUIT)
|
||||
if (event.type == EVENT_SYS_QUIT)
|
||||
goto end; // exit the loop
|
||||
|
||||
if (event.type != EVENT_NULL)
|
||||
{
|
||||
bool passOn = ProcessEvent(event);
|
||||
|
||||
if (m_engine != nullptr && passOn)
|
||||
passOn = m_engine->ProcessEvent(event);
|
||||
|
||||
if (passOn)
|
||||
m_eventQueue->AddEvent(event);
|
||||
}
|
||||
m_eventQueue->AddEvent(event);
|
||||
|
||||
Event virtualEvent = CreateVirtualEvent(event);
|
||||
if (virtualEvent.type != EVENT_NULL)
|
||||
{
|
||||
bool passOn = ProcessEvent(virtualEvent);
|
||||
|
||||
if (m_engine != nullptr && passOn)
|
||||
passOn = m_engine->ProcessEvent(virtualEvent);
|
||||
|
||||
if (passOn)
|
||||
m_eventQueue->AddEvent(virtualEvent);
|
||||
}
|
||||
m_eventQueue->AddEvent(virtualEvent);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -889,19 +915,11 @@ int CApplication::Run()
|
|||
|
||||
Event event = ProcessSystemEvent();
|
||||
|
||||
if (event.type == EVENT_QUIT)
|
||||
if (event.type == EVENT_SYS_QUIT)
|
||||
goto end; // exit the loop
|
||||
|
||||
if (event.type != EVENT_NULL)
|
||||
{
|
||||
bool passOn = ProcessEvent(event);
|
||||
|
||||
if (m_engine != nullptr && passOn)
|
||||
passOn = m_engine->ProcessEvent(event);
|
||||
|
||||
if (passOn)
|
||||
m_eventQueue->AddEvent(event);
|
||||
}
|
||||
m_eventQueue->AddEvent(event);
|
||||
}
|
||||
|
||||
// Enter game update & frame rendering only if active
|
||||
|
@ -910,22 +928,17 @@ int CApplication::Run()
|
|||
Event event;
|
||||
while (m_eventQueue->GetEvent(event))
|
||||
{
|
||||
if (event.type == EVENT_QUIT)
|
||||
if (event.type == EVENT_SYS_QUIT || event.type == EVENT_QUIT)
|
||||
goto end; // exit both loops
|
||||
|
||||
LogEvent(event);
|
||||
|
||||
bool passOn = true;
|
||||
|
||||
// Skip system events (they have been processed earlier)
|
||||
if (! event.systemEvent)
|
||||
{
|
||||
passOn = ProcessEvent(event);
|
||||
|
||||
if (passOn && m_engine != nullptr)
|
||||
passOn = m_engine->ProcessEvent(event);
|
||||
}
|
||||
if (m_engine != nullptr)
|
||||
passOn = m_engine->ProcessEvent(event);
|
||||
|
||||
if (passOn && m_robotMain != nullptr)
|
||||
m_robotMain->EventProcess(event);
|
||||
m_robotMain->ProcessEvent(event);
|
||||
}
|
||||
|
||||
StopPerformanceCounter(PCNT_EVENT_PROCESSING);
|
||||
|
@ -936,6 +949,8 @@ int CApplication::Run()
|
|||
event = CreateUpdateEvent();
|
||||
if (event.type != EVENT_NULL && m_robotMain != nullptr)
|
||||
{
|
||||
LogEvent(event);
|
||||
|
||||
StartPerformanceCounter(PCNT_UPDATE_ENGINE);
|
||||
m_engine->FrameUpdate();
|
||||
StopPerformanceCounter(PCNT_UPDATE_ENGINE);
|
||||
|
@ -943,7 +958,7 @@ int CApplication::Run()
|
|||
m_sound->FrameMove(m_relTime);
|
||||
|
||||
StartPerformanceCounter(PCNT_UPDATE_GAME);
|
||||
m_robotMain->EventProcess(event);
|
||||
m_robotMain->ProcessEvent(event);
|
||||
StopPerformanceCounter(PCNT_UPDATE_GAME);
|
||||
}
|
||||
|
||||
|
@ -989,11 +1004,10 @@ const std::string& CApplication::GetErrorMessage() const
|
|||
Event CApplication::ProcessSystemEvent()
|
||||
{
|
||||
Event event;
|
||||
event.systemEvent = true;
|
||||
|
||||
if (m_private->currentEvent.type == SDL_QUIT)
|
||||
{
|
||||
event.type = EVENT_QUIT;
|
||||
event.type = EVENT_SYS_QUIT;
|
||||
}
|
||||
else if (m_private->currentEvent.type == SDL_VIDEORESIZE)
|
||||
{
|
||||
|
@ -1139,76 +1153,74 @@ Event CApplication::ProcessSystemEvent()
|
|||
return event;
|
||||
}
|
||||
|
||||
/**
|
||||
* Processes incoming events. It is the first function called after an event is captured.
|
||||
* Event is modified, updating its tracked keys state and mouse position to current values.
|
||||
* Function returns \c true if the event is to be passed on to other processing functions
|
||||
* or \c false if not. */
|
||||
bool CApplication::ProcessEvent(const Event &event)
|
||||
void CApplication::LogEvent(const Event &event)
|
||||
{
|
||||
CLogger *l = GetLogger();
|
||||
|
||||
// Print the events in debug mode to test the code
|
||||
if (m_debugMode)
|
||||
auto PrintEventDetails = [&]()
|
||||
{
|
||||
switch (event.type)
|
||||
{
|
||||
case EVENT_KEY_DOWN:
|
||||
case EVENT_KEY_UP:
|
||||
l->Trace("EVENT_KEY_%s:\n", (event.type == EVENT_KEY_DOWN) ? "DOWN" : "UP");
|
||||
l->Trace(" virt = %s\n", (event.key.virt) ? "true" : "false");
|
||||
l->Trace(" key = %d\n", event.key.key);
|
||||
l->Trace(" unicode = 0x%04x\n", event.key.unicode);
|
||||
break;
|
||||
case EVENT_MOUSE_MOVE:
|
||||
l->Trace("EVENT_MOUSE_MOVE:\n");
|
||||
break;
|
||||
case EVENT_MOUSE_BUTTON_DOWN:
|
||||
case EVENT_MOUSE_BUTTON_UP:
|
||||
l->Trace("EVENT_MOUSE_BUTTON_%s:\n", (event.type == EVENT_MOUSE_BUTTON_DOWN) ? "DOWN" : "UP");
|
||||
l->Trace(" button = %d\n", event.mouseButton.button);
|
||||
break;
|
||||
case EVENT_MOUSE_WHEEL:
|
||||
l->Trace("EVENT_MOUSE_WHEEL:\n");
|
||||
l->Trace(" dir = %s\n", (event.mouseWheel.dir == WHEEL_DOWN) ? "WHEEL_DOWN" : "WHEEL_UP");
|
||||
break;
|
||||
case EVENT_JOY_AXIS:
|
||||
l->Trace("EVENT_JOY_AXIS:\n");
|
||||
l->Trace(" axis = %d\n", event.joyAxis.axis);
|
||||
l->Trace(" value = %d\n", event.joyAxis.value);
|
||||
break;
|
||||
case EVENT_JOY_BUTTON_DOWN:
|
||||
case EVENT_JOY_BUTTON_UP:
|
||||
l->Trace("EVENT_JOY_BUTTON_%s:\n", (event.type == EVENT_JOY_BUTTON_DOWN) ? "DOWN" : "UP");
|
||||
l->Trace(" button = %d\n", event.joyButton.button);
|
||||
break;
|
||||
case EVENT_ACTIVE:
|
||||
l->Trace("EVENT_ACTIVE:\n");
|
||||
l->Trace(" flags = 0x%x\n", event.active.flags);
|
||||
l->Trace(" gain = %s\n", event.active.gain ? "true" : "false");
|
||||
break;
|
||||
default:
|
||||
l->Trace("Event type = %d:\n", static_cast<int>(event.type));
|
||||
break;
|
||||
}
|
||||
|
||||
l->Trace(" systemEvent = %s\n", event.systemEvent ? "true" : "false");
|
||||
l->Trace(" rTime = %f\n", event.rTime);
|
||||
l->Trace(" kmodState = %04x\n", event.kmodState);
|
||||
l->Trace(" trackedKeysState = %04x\n", event.trackedKeysState);
|
||||
l->Trace(" mousePos = %f, %f\n", event.mousePos.x, event.mousePos.y);
|
||||
l->Trace(" mouseButtonsState = %02x\n", event.mouseButtonsState);
|
||||
}
|
||||
l->Trace(" customParam = %d\n", event.customParam);
|
||||
};
|
||||
|
||||
// By default, pass on all events
|
||||
return true;
|
||||
// Print the events in debug mode to test the code
|
||||
if (IsDebugModeActive(DEBUG_SYS_EVENTS) || IsDebugModeActive(DEBUG_APP_EVENTS))
|
||||
{
|
||||
std::string eventType = ParseEventType(event.type);
|
||||
|
||||
if (IsDebugModeActive(DEBUG_SYS_EVENTS) && event.type <= EVENT_SYS_MAX)
|
||||
{
|
||||
l->Trace("System event %s:\n", eventType.c_str());
|
||||
switch (event.type)
|
||||
{
|
||||
case EVENT_KEY_DOWN:
|
||||
case EVENT_KEY_UP:
|
||||
l->Trace(" virt = %s\n", (event.key.virt) ? "true" : "false");
|
||||
l->Trace(" key = %d\n", event.key.key);
|
||||
l->Trace(" unicode = 0x%04x\n", event.key.unicode);
|
||||
break;
|
||||
case EVENT_MOUSE_BUTTON_DOWN:
|
||||
case EVENT_MOUSE_BUTTON_UP:
|
||||
l->Trace(" button = %d\n", event.mouseButton.button);
|
||||
break;
|
||||
case EVENT_MOUSE_WHEEL:
|
||||
l->Trace(" dir = %s\n", (event.mouseWheel.dir == WHEEL_DOWN) ? "WHEEL_DOWN" : "WHEEL_UP");
|
||||
break;
|
||||
case EVENT_JOY_AXIS:
|
||||
l->Trace(" axis = %d\n", event.joyAxis.axis);
|
||||
l->Trace(" value = %d\n", event.joyAxis.value);
|
||||
break;
|
||||
case EVENT_JOY_BUTTON_DOWN:
|
||||
case EVENT_JOY_BUTTON_UP:
|
||||
l->Trace(" button = %d\n", event.joyButton.button);
|
||||
break;
|
||||
case EVENT_ACTIVE:
|
||||
l->Trace(" flags = 0x%x\n", event.active.flags);
|
||||
l->Trace(" gain = %s\n", event.active.gain ? "true" : "false");
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
PrintEventDetails();
|
||||
}
|
||||
|
||||
if (IsDebugModeActive(DEBUG_APP_EVENTS) && event.type > EVENT_SYS_MAX)
|
||||
{
|
||||
l->Trace("App event %s:\n", eventType.c_str());
|
||||
PrintEventDetails();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Event CApplication::CreateVirtualEvent(const Event& sourceEvent)
|
||||
{
|
||||
Event virtualEvent;
|
||||
virtualEvent.systemEvent = true;
|
||||
|
||||
if ((sourceEvent.type == EVENT_KEY_DOWN) || (sourceEvent.type == EVENT_KEY_UP))
|
||||
{
|
||||
|
@ -1316,7 +1328,7 @@ Event CApplication::CreateUpdateEvent()
|
|||
{
|
||||
GetLogger()->Error("Fatal error: got negative system counter difference!\n");
|
||||
GetLogger()->Error("This should never happen. Please report this error.\n");
|
||||
m_eventQueue->AddEvent(Event(EVENT_QUIT));
|
||||
m_eventQueue->AddEvent(Event(EVENT_SYS_QUIT));
|
||||
return Event(EVENT_NULL);
|
||||
}
|
||||
else
|
||||
|
@ -1332,7 +1344,6 @@ Event CApplication::CreateUpdateEvent()
|
|||
}
|
||||
|
||||
Event frameEvent(EVENT_FRAME);
|
||||
frameEvent.systemEvent = true;
|
||||
frameEvent.trackedKeysState = m_trackedKeys;
|
||||
frameEvent.kmodState = m_kmodState;
|
||||
frameEvent.mousePos = m_mousePos;
|
||||
|
@ -1425,14 +1436,55 @@ VideoQueryResult CApplication::GetVideoResolutionList(std::vector<Math::IntPoint
|
|||
return VIDEO_QUERY_OK;
|
||||
}
|
||||
|
||||
void CApplication::SetDebugMode(bool mode)
|
||||
void CApplication::SetDebugModeActive(DebugMode mode, bool active)
|
||||
{
|
||||
m_debugMode = mode;
|
||||
if (active)
|
||||
m_debugModes |= mode;
|
||||
else
|
||||
m_debugModes &= (~mode);
|
||||
}
|
||||
|
||||
bool CApplication::GetDebugMode() const
|
||||
bool CApplication::IsDebugModeActive(DebugMode mode) const
|
||||
{
|
||||
return m_debugMode;
|
||||
return (m_debugModes & mode) != 0;
|
||||
}
|
||||
|
||||
bool CApplication::ParseDebugModes(const std::string& str, int& debugModes)
|
||||
{
|
||||
debugModes = 0;
|
||||
|
||||
boost::char_separator<char> sep(",");
|
||||
boost::tokenizer<boost::char_separator<char>> tokens(str, sep);
|
||||
for (const auto& modeToken : tokens)
|
||||
{
|
||||
if (modeToken == "sys_events")
|
||||
{
|
||||
debugModes |= DEBUG_SYS_EVENTS;
|
||||
}
|
||||
else if (modeToken == "app_events")
|
||||
{
|
||||
debugModes |= DEBUG_APP_EVENTS;
|
||||
}
|
||||
else if (modeToken == "events")
|
||||
{
|
||||
debugModes |= DEBUG_EVENTS;
|
||||
}
|
||||
else if (modeToken == "models")
|
||||
{
|
||||
debugModes |= DEBUG_MODELS;
|
||||
}
|
||||
else if (modeToken == "all")
|
||||
{
|
||||
debugModes = DEBUG_ALL;
|
||||
}
|
||||
else
|
||||
{
|
||||
GetLogger()->Error("Invalid debug mode: '%s'\n", modeToken.c_str());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
int CApplication::GetKmods() const
|
||||
|
@ -1782,3 +1834,8 @@ void CApplication::UpdatePerformanceCountersData()
|
|||
}
|
||||
}
|
||||
|
||||
bool CApplication::GetProtoMode() const
|
||||
{
|
||||
return m_protoMode;
|
||||
}
|
||||
|
||||
|
|
|
@ -143,6 +143,15 @@ enum PerformanceCounter
|
|||
PCNT_MAX
|
||||
};
|
||||
|
||||
enum DebugMode
|
||||
{
|
||||
DEBUG_SYS_EVENTS = 1 << 0,
|
||||
DEBUG_APP_EVENTS = 1 << 1,
|
||||
DEBUG_EVENTS = DEBUG_SYS_EVENTS | DEBUG_APP_EVENTS,
|
||||
DEBUG_MODELS = 1 << 2,
|
||||
DEBUG_ALL = DEBUG_SYS_EVENTS | DEBUG_APP_EVENTS | DEBUG_MODELS
|
||||
};
|
||||
|
||||
struct ApplicationPrivate;
|
||||
|
||||
/**
|
||||
|
@ -312,10 +321,11 @@ public:
|
|||
//! Moves (warps) the mouse cursor to the specified position (in interface coords)
|
||||
void MoveMouse(Math::Point pos);
|
||||
|
||||
//! Management of debug mode (prints more info in logger)
|
||||
//! Management of debug modes (printing more info in logger)
|
||||
//@{
|
||||
void SetDebugMode(bool mode);
|
||||
bool GetDebugMode() const;
|
||||
void SetDebugModeActive(DebugMode mode, bool active);
|
||||
bool IsDebugModeActive(DebugMode mode) const;
|
||||
static bool ParseDebugModes(const std::string& str, int& debugModes);
|
||||
//@}
|
||||
|
||||
//! Returns the full path to data directory
|
||||
|
@ -351,6 +361,8 @@ public:
|
|||
float GetPerformanceCounterData(PerformanceCounter counter) const;
|
||||
//@}
|
||||
|
||||
bool GetProtoMode() const;
|
||||
|
||||
protected:
|
||||
//! Creates the window's SDL_Surface
|
||||
bool CreateVideoSurface();
|
||||
|
@ -361,8 +373,8 @@ protected:
|
|||
Event CreateVirtualEvent(const Event& sourceEvent);
|
||||
//! Prepares a simulation update event
|
||||
TEST_VIRTUAL Event CreateUpdateEvent();
|
||||
//! Handles some incoming events
|
||||
bool ProcessEvent(const Event& event);
|
||||
//! Logs debug data for event
|
||||
void LogEvent(const Event& event);
|
||||
//! Renders the image in window
|
||||
void Render();
|
||||
|
||||
|
@ -406,8 +418,8 @@ protected:
|
|||
int m_exitCode;
|
||||
//! Whether application window is active
|
||||
bool m_active;
|
||||
//! Whether debug mode is enabled
|
||||
bool m_debugMode;
|
||||
//! Bit array of active debug modes
|
||||
long m_debugModes;
|
||||
|
||||
//! Message to be displayed as error to the user
|
||||
std::string m_errorMessage;
|
||||
|
@ -474,6 +486,12 @@ protected:
|
|||
//! Path to directory with user texture pack
|
||||
std::string m_texPackPath;
|
||||
|
||||
//@{
|
||||
//! Scene to run on startup
|
||||
std::string m_runSceneName;
|
||||
int m_runSceneRank;
|
||||
//@}
|
||||
|
||||
const char* m_standardDataDirs[DIR_MAX];
|
||||
|
||||
//! Application language
|
||||
|
@ -481,5 +499,8 @@ protected:
|
|||
|
||||
//! Low cpu mode
|
||||
bool m_lowCPU;
|
||||
|
||||
//! Show prototype levels
|
||||
bool m_protoMode;
|
||||
};
|
||||
|
||||
|
|
|
@ -78,7 +78,9 @@ int SDL_MAIN_FUNC(int argc, char *argv[])
|
|||
{
|
||||
CLogger logger; // single istance of logger
|
||||
|
||||
InitializeRestext(); // init static translation strings
|
||||
// Initialize static string arrays
|
||||
InitializeRestext();
|
||||
InitializeEventTypeTexts();
|
||||
|
||||
CSystemUtils* systemUtils = CSystemUtils::Create(); // platform-specific utils
|
||||
systemUtils->Init();
|
||||
|
|
|
@ -19,15 +19,541 @@
|
|||
|
||||
#include "common/logger.h"
|
||||
|
||||
static EventType g_uniqueEventType = EVENT_USER;
|
||||
|
||||
|
||||
namespace
|
||||
{
|
||||
static EventType UNIQUE_EVENT_TYPE = EVENT_USER;
|
||||
const char* EVENT_TYPE_TEXT[EVENT_STD_MAX];
|
||||
}
|
||||
|
||||
EventType GetUniqueEventType()
|
||||
{
|
||||
int i = static_cast<int>(g_uniqueEventType+1);
|
||||
g_uniqueEventType = static_cast<EventType>(i);
|
||||
return g_uniqueEventType;
|
||||
int i = static_cast<int>(UNIQUE_EVENT_TYPE+1);
|
||||
UNIQUE_EVENT_TYPE = static_cast<EventType>(i);
|
||||
return UNIQUE_EVENT_TYPE;
|
||||
}
|
||||
|
||||
void InitializeEventTypeTexts()
|
||||
{
|
||||
for (int i = 0; i < EVENT_STD_MAX; ++i)
|
||||
EVENT_TYPE_TEXT[i] = "";
|
||||
|
||||
EVENT_TYPE_TEXT[EVENT_NULL] = "EVENT_NULL";
|
||||
|
||||
EVENT_TYPE_TEXT[EVENT_QUIT] = "EVENT_QUIT";
|
||||
|
||||
EVENT_TYPE_TEXT[EVENT_FRAME] = "EVENT_FRAME";
|
||||
|
||||
EVENT_TYPE_TEXT[EVENT_MOUSE_BUTTON_DOWN] = "EVENT_MOUSE_BUTTON_DOWN";
|
||||
EVENT_TYPE_TEXT[EVENT_MOUSE_BUTTON_UP] = "EVENT_MOUSE_BUTTON_UP";
|
||||
EVENT_TYPE_TEXT[EVENT_MOUSE_WHEEL] = "EVENT_MOUSE_WHEEL";
|
||||
EVENT_TYPE_TEXT[EVENT_MOUSE_MOVE] = "EVENT_MOUSE_MOVE";
|
||||
EVENT_TYPE_TEXT[EVENT_KEY_DOWN] = "EVENT_KEY_DOWN";
|
||||
EVENT_TYPE_TEXT[EVENT_KEY_UP] = "EVENT_KEY_UP";
|
||||
|
||||
EVENT_TYPE_TEXT[EVENT_ACTIVE] = "EVENT_ACTIVE";
|
||||
|
||||
EVENT_TYPE_TEXT[EVENT_JOY_AXIS] = "EVENT_JOY_AXIS";
|
||||
EVENT_TYPE_TEXT[EVENT_JOY_BUTTON_DOWN] = "EVENT_JOY_BUTTON_DOWN";
|
||||
EVENT_TYPE_TEXT[EVENT_JOY_BUTTON_UP] = "EVENT_JOY_BUTTON_UP";
|
||||
|
||||
|
||||
EVENT_TYPE_TEXT[EVENT_UPDINTERFACE] = "EVENT_UPDINTERFACE";
|
||||
EVENT_TYPE_TEXT[EVENT_WIN] = "EVENT_WIN";
|
||||
EVENT_TYPE_TEXT[EVENT_LOST] = "EVENT_LOST";
|
||||
|
||||
EVENT_TYPE_TEXT[EVENT_FOCUS] = "EVENT_FOCUS";
|
||||
|
||||
EVENT_TYPE_TEXT[EVENT_BUTTON_OK] = "EVENT_BUTTON_OK";
|
||||
EVENT_TYPE_TEXT[EVENT_BUTTON_CANCEL] = "EVENT_BUTTON_CANCEL";
|
||||
EVENT_TYPE_TEXT[EVENT_BUTTON_NEXT] = "EVENT_BUTTON_NEXT";
|
||||
EVENT_TYPE_TEXT[EVENT_BUTTON_PREV] = "EVENT_BUTTON_PREV";
|
||||
EVENT_TYPE_TEXT[EVENT_BUTTON_QUIT] = "EVENT_BUTTON_QUIT";
|
||||
|
||||
EVENT_TYPE_TEXT[EVENT_BUTTON0] = "EVENT_BUTTON0";
|
||||
EVENT_TYPE_TEXT[EVENT_BUTTON1] = "EVENT_BUTTON1";
|
||||
EVENT_TYPE_TEXT[EVENT_BUTTON2] = "EVENT_BUTTON2";
|
||||
EVENT_TYPE_TEXT[EVENT_BUTTON3] = "EVENT_BUTTON3";
|
||||
EVENT_TYPE_TEXT[EVENT_BUTTON4] = "EVENT_BUTTON4";
|
||||
EVENT_TYPE_TEXT[EVENT_BUTTON5] = "EVENT_BUTTON5";
|
||||
EVENT_TYPE_TEXT[EVENT_BUTTON6] = "EVENT_BUTTON6";
|
||||
EVENT_TYPE_TEXT[EVENT_BUTTON7] = "EVENT_BUTTON7";
|
||||
EVENT_TYPE_TEXT[EVENT_BUTTON8] = "EVENT_BUTTON8";
|
||||
EVENT_TYPE_TEXT[EVENT_BUTTON9] = "EVENT_BUTTON9";
|
||||
EVENT_TYPE_TEXT[EVENT_BUTTON10] = "EVENT_BUTTON10";
|
||||
EVENT_TYPE_TEXT[EVENT_BUTTON11] = "EVENT_BUTTON11";
|
||||
EVENT_TYPE_TEXT[EVENT_BUTTON12] = "EVENT_BUTTON12";
|
||||
EVENT_TYPE_TEXT[EVENT_BUTTON13] = "EVENT_BUTTON13";
|
||||
EVENT_TYPE_TEXT[EVENT_BUTTON14] = "EVENT_BUTTON14";
|
||||
EVENT_TYPE_TEXT[EVENT_BUTTON15] = "EVENT_BUTTON15";
|
||||
EVENT_TYPE_TEXT[EVENT_BUTTON16] = "EVENT_BUTTON16";
|
||||
EVENT_TYPE_TEXT[EVENT_BUTTON17] = "EVENT_BUTTON17";
|
||||
EVENT_TYPE_TEXT[EVENT_BUTTON18] = "EVENT_BUTTON18";
|
||||
EVENT_TYPE_TEXT[EVENT_BUTTON19] = "EVENT_BUTTON19";
|
||||
|
||||
EVENT_TYPE_TEXT[EVENT_EDIT0] = "EVENT_EDIT0";
|
||||
EVENT_TYPE_TEXT[EVENT_EDIT1] = "EVENT_EDIT1";
|
||||
EVENT_TYPE_TEXT[EVENT_EDIT2] = "EVENT_EDIT2";
|
||||
EVENT_TYPE_TEXT[EVENT_EDIT3] = "EVENT_EDIT3";
|
||||
EVENT_TYPE_TEXT[EVENT_EDIT4] = "EVENT_EDIT4";
|
||||
EVENT_TYPE_TEXT[EVENT_EDIT5] = "EVENT_EDIT5";
|
||||
EVENT_TYPE_TEXT[EVENT_EDIT6] = "EVENT_EDIT6";
|
||||
EVENT_TYPE_TEXT[EVENT_EDIT7] = "EVENT_EDIT7";
|
||||
EVENT_TYPE_TEXT[EVENT_EDIT8] = "EVENT_EDIT8";
|
||||
EVENT_TYPE_TEXT[EVENT_EDIT9] = "EVENT_EDIT9";
|
||||
|
||||
EVENT_TYPE_TEXT[EVENT_WINDOW0] = "EVENT_WINDOW0";
|
||||
EVENT_TYPE_TEXT[EVENT_WINDOW1] = "EVENT_WINDOW1";
|
||||
EVENT_TYPE_TEXT[EVENT_WINDOW2] = "EVENT_WINDOW2";
|
||||
EVENT_TYPE_TEXT[EVENT_WINDOW3] = "EVENT_WINDOW3";
|
||||
EVENT_TYPE_TEXT[EVENT_WINDOW4] = "EVENT_WINDOW4";
|
||||
EVENT_TYPE_TEXT[EVENT_WINDOW5] = "EVENT_WINDOW5";
|
||||
EVENT_TYPE_TEXT[EVENT_WINDOW6] = "EVENT_WINDOW6";
|
||||
EVENT_TYPE_TEXT[EVENT_WINDOW7] = "EVENT_WINDOW7";
|
||||
EVENT_TYPE_TEXT[EVENT_WINDOW8] = "EVENT_WINDOW8";
|
||||
EVENT_TYPE_TEXT[EVENT_WINDOW9] = "EVENT_WINDOW9";
|
||||
|
||||
EVENT_TYPE_TEXT[EVENT_LABEL0] = "EVENT_LABEL0";
|
||||
EVENT_TYPE_TEXT[EVENT_LABEL1] = "EVENT_LABEL1";
|
||||
EVENT_TYPE_TEXT[EVENT_LABEL2] = "EVENT_LABEL2";
|
||||
EVENT_TYPE_TEXT[EVENT_LABEL3] = "EVENT_LABEL3";
|
||||
EVENT_TYPE_TEXT[EVENT_LABEL4] = "EVENT_LABEL4";
|
||||
EVENT_TYPE_TEXT[EVENT_LABEL5] = "EVENT_LABEL5";
|
||||
EVENT_TYPE_TEXT[EVENT_LABEL6] = "EVENT_LABEL6";
|
||||
EVENT_TYPE_TEXT[EVENT_LABEL7] = "EVENT_LABEL7";
|
||||
EVENT_TYPE_TEXT[EVENT_LABEL8] = "EVENT_LABEL8";
|
||||
EVENT_TYPE_TEXT[EVENT_LABEL9] = "EVENT_LABEL9";
|
||||
EVENT_TYPE_TEXT[EVENT_LABEL10] = "EVENT_LABEL10";
|
||||
EVENT_TYPE_TEXT[EVENT_LABEL11] = "EVENT_LABEL11";
|
||||
EVENT_TYPE_TEXT[EVENT_LABEL12] = "EVENT_LABEL12";
|
||||
EVENT_TYPE_TEXT[EVENT_LABEL13] = "EVENT_LABEL13";
|
||||
EVENT_TYPE_TEXT[EVENT_LABEL14] = "EVENT_LABEL14";
|
||||
EVENT_TYPE_TEXT[EVENT_LABEL15] = "EVENT_LABEL15";
|
||||
EVENT_TYPE_TEXT[EVENT_LABEL16] = "EVENT_LABEL16";
|
||||
EVENT_TYPE_TEXT[EVENT_LABEL17] = "EVENT_LABEL17";
|
||||
EVENT_TYPE_TEXT[EVENT_LABEL18] = "EVENT_LABEL18";
|
||||
EVENT_TYPE_TEXT[EVENT_LABEL19] = "EVENT_LABEL19";
|
||||
|
||||
EVENT_TYPE_TEXT[EVENT_LIST0] = "EVENT_LIST0";
|
||||
EVENT_TYPE_TEXT[EVENT_LIST1] = "EVENT_LIST1";
|
||||
EVENT_TYPE_TEXT[EVENT_LIST2] = "EVENT_LIST2";
|
||||
EVENT_TYPE_TEXT[EVENT_LIST3] = "EVENT_LIST3";
|
||||
EVENT_TYPE_TEXT[EVENT_LIST4] = "EVENT_LIST4";
|
||||
EVENT_TYPE_TEXT[EVENT_LIST5] = "EVENT_LIST5";
|
||||
EVENT_TYPE_TEXT[EVENT_LIST6] = "EVENT_LIST6";
|
||||
EVENT_TYPE_TEXT[EVENT_LIST7] = "EVENT_LIST7";
|
||||
EVENT_TYPE_TEXT[EVENT_LIST8] = "EVENT_LIST8";
|
||||
EVENT_TYPE_TEXT[EVENT_LIST9] = "EVENT_LIST9";
|
||||
|
||||
EVENT_TYPE_TEXT[EVENT_TOOLTIP] = "EVENT_TOOLTIP";
|
||||
|
||||
EVENT_TYPE_TEXT[EVENT_DIALOG_OK] = "EVENT_DIALOG_OK";
|
||||
EVENT_TYPE_TEXT[EVENT_DIALOG_CANCEL] = "EVENT_DIALOG_CANCEL";
|
||||
EVENT_TYPE_TEXT[EVENT_DIALOG_LABEL] = "EVENT_DIALOG_LABEL";
|
||||
EVENT_TYPE_TEXT[EVENT_DIALOG_LABEL1] = "EVENT_DIALOG_LABEL1";
|
||||
EVENT_TYPE_TEXT[EVENT_DIALOG_LABEL2] = "EVENT_DIALOG_LABEL2";
|
||||
EVENT_TYPE_TEXT[EVENT_DIALOG_LABEL3] = "EVENT_DIALOG_LABEL3";
|
||||
EVENT_TYPE_TEXT[EVENT_DIALOG_LIST] = "EVENT_DIALOG_LIST";
|
||||
EVENT_TYPE_TEXT[EVENT_DIALOG_EDIT] = "EVENT_DIALOG_EDIT";
|
||||
EVENT_TYPE_TEXT[EVENT_DIALOG_CHECK1] = "EVENT_DIALOG_CHECK1";
|
||||
EVENT_TYPE_TEXT[EVENT_DIALOG_CHECK2] = "EVENT_DIALOG_CHECK2";
|
||||
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_TRAINER] = "EVENT_INTERFACE_TRAINER";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_DEFI] = "EVENT_INTERFACE_DEFI";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_MISSION] = "EVENT_INTERFACE_MISSION";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_FREE] = "EVENT_INTERFACE_FREE";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_PROTO] = "EVENT_INTERFACE_PROTO";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_NAME] = "EVENT_INTERFACE_NAME";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_SETUP] = "EVENT_INTERFACE_SETUP";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_QUIT] = "EVENT_INTERFACE_QUIT";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_BACK] = "EVENT_INTERFACE_BACK";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_AGAIN] = "EVENT_INTERFACE_AGAIN";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_WRITE] = "EVENT_INTERFACE_WRITE";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_READ] = "EVENT_INTERFACE_READ";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_ABORT] = "EVENT_INTERFACE_ABORT";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_USER] = "EVENT_INTERFACE_USER";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_TEEN] = "EVENT_INTERFACE_TEEN";
|
||||
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_CHAP] = "EVENT_INTERFACE_CHAP";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_LIST] = "EVENT_INTERFACE_LIST";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_RESUME] = "EVENT_INTERFACE_RESUME";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_PLAY] = "EVENT_INTERFACE_PLAY";
|
||||
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_SETUPd] = "EVENT_INTERFACE_SETUPd";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_SETUPg] = "EVENT_INTERFACE_SETUPg";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_SETUPp] = "EVENT_INTERFACE_SETUPp";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_SETUPc] = "EVENT_INTERFACE_SETUPc";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_SETUPs] = "EVENT_INTERFACE_SETUPs";
|
||||
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_DEVICE] = "EVENT_INTERFACE_DEVICE";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_RESOL] = "EVENT_INTERFACE_RESOL";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_FULL] = "EVENT_INTERFACE_FULL";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_APPLY] = "EVENT_INTERFACE_APPLY";
|
||||
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_TOTO] = "EVENT_INTERFACE_TOTO";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_SHADOW] = "EVENT_INTERFACE_SHADOW";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_DIRTY] = "EVENT_INTERFACE_DIRTY";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_LENS] = "EVENT_INTERFACE_LENS";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_SKY] = "EVENT_INTERFACE_SKY";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_PLANET] = "EVENT_INTERFACE_PLANET";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_LIGHT] = "EVENT_INTERFACE_LIGHT";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_PARTI] = "EVENT_INTERFACE_PARTI";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_CLIP] = "EVENT_INTERFACE_CLIP";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_DETAIL] = "EVENT_INTERFACE_DETAIL";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_TEXTURE] = "EVENT_INTERFACE_TEXTURE";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_RAIN] = "EVENT_INTERFACE_RAIN";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_GLINT] = "EVENT_INTERFACE_GLINT";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_TOOLTIP] = "EVENT_INTERFACE_TOOLTIP";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_MOVIES] = "EVENT_INTERFACE_MOVIES";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_NICERST] = "EVENT_INTERFACE_NICERST";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_SCROLL] = "EVENT_INTERFACE_SCROLL";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_INVERTX] = "EVENT_INTERFACE_INVERTX";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_INVERTY] = "EVENT_INTERFACE_INVERTY";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_EFFECT] = "EVENT_INTERFACE_EFFECT";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_MOUSE] = "EVENT_INTERFACE_MOUSE";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_GROUND] = "EVENT_INTERFACE_GROUND";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_GADGET] = "EVENT_INTERFACE_GADGET";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_FOG] = "EVENT_INTERFACE_FOG";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_HIMSELF] = "EVENT_INTERFACE_HIMSELF";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_EDITMODE]= "EVENT_INTERFACE_EDITMODE";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_EDITVALUE]= "EVENT_INTERFACE_EDITVALUE";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_SOLUCE4] = "EVENT_INTERFACE_SOLUCE4";
|
||||
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_KINFO1] = "EVENT_INTERFACE_KINFO1";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_KINFO2] = "EVENT_INTERFACE_KINFO2";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_KGROUP] = "EVENT_INTERFACE_KGROUP";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_KSCROLL] = "EVENT_INTERFACE_KSCROLL";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_KDEF] = "EVENT_INTERFACE_KDEF";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_KLEFT] = "EVENT_INTERFACE_KLEFT";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_KRIGHT] = "EVENT_INTERFACE_KRIGHT";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_KUP] = "EVENT_INTERFACE_KUP";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_KDOWN] = "EVENT_INTERFACE_KDOWN";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_KGUP] = "EVENT_INTERFACE_KGUP";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_KGDOWN] = "EVENT_INTERFACE_KGDOWN";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_KCAMERA] = "EVENT_INTERFACE_KCAMERA";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_KDESEL] = "EVENT_INTERFACE_KDESEL";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_KACTION] = "EVENT_INTERFACE_KACTION";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_KNEAR] = "EVENT_INTERFACE_KNEAR";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_KAWAY] = "EVENT_INTERFACE_KAWAY";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_KNEXT] = "EVENT_INTERFACE_KNEXT";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_KHUMAN] = "EVENT_INTERFACE_KHUMAN";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_KQUIT] = "EVENT_INTERFACE_KQUIT";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_KHELP] = "EVENT_INTERFACE_KHELP";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_KPROG] = "EVENT_INTERFACE_KPROG";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_KCBOT] = "EVENT_INTERFACE_KCBOT";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_KVISIT] = "EVENT_INTERFACE_KVISIT";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_KSPEED10]= "EVENT_INTERFACE_KSPEED10";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_KSPEED15]= "EVENT_INTERFACE_KSPEED15";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_KSPEED20]= "EVENT_INTERFACE_KSPEED20";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_KSPEED30]= "EVENT_INTERFACE_KSPEED30";
|
||||
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_VOLSOUND]= "EVENT_INTERFACE_VOLSOUND";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_VOLMUSIC]= "EVENT_INTERFACE_VOLMUSIC";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_SOUND3D] = "EVENT_INTERFACE_SOUND3D";
|
||||
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_MIN] = "EVENT_INTERFACE_MIN";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_NORM] = "EVENT_INTERFACE_NORM";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_MAX] = "EVENT_INTERFACE_MAX";
|
||||
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_SILENT] = "EVENT_INTERFACE_SILENT";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_NOISY] = "EVENT_INTERFACE_NOISY";
|
||||
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_JOYSTICK]= "EVENT_INTERFACE_JOYSTICK";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_SOLUCE] = "EVENT_INTERFACE_SOLUCE";
|
||||
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_GLINTl] = "EVENT_INTERFACE_GLINTl";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_GLINTr] = "EVENT_INTERFACE_GLINTr";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_GLINTu] = "EVENT_INTERFACE_GLINTu";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_GLINTb] = "EVENT_INTERFACE_GLINTb";
|
||||
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_NEDIT] = "EVENT_INTERFACE_NEDIT";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_NLIST] = "EVENT_INTERFACE_NLIST";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_NOK] = "EVENT_INTERFACE_NOK";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_NCANCEL] = "EVENT_INTERFACE_NCANCEL";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_NDELETE] = "EVENT_INTERFACE_NDELETE";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_NLABEL] = "EVENT_INTERFACE_NLABEL";
|
||||
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_IOWRITE] = "EVENT_INTERFACE_IOWRITE";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_IOREAD] = "EVENT_INTERFACE_IOREAD";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_IOLIST] = "EVENT_INTERFACE_IOLIST";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_IONAME] = "EVENT_INTERFACE_IONAME";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_IOLABEL] = "EVENT_INTERFACE_IOLABEL";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_IOIMAGE] = "EVENT_INTERFACE_IOIMAGE";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_IODELETE]= "EVENT_INTERFACE_IODELETE";
|
||||
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_PERSO] = "EVENT_INTERFACE_PERSO";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_POK] = "EVENT_INTERFACE_POK";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_PCANCEL] = "EVENT_INTERFACE_PCANCEL";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_PDEF] = "EVENT_INTERFACE_PDEF";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_PHEAD] = "EVENT_INTERFACE_PHEAD";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_PBODY] = "EVENT_INTERFACE_PBODY";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_PLROT] = "EVENT_INTERFACE_PLROT";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_PRROT] = "EVENT_INTERFACE_PRROT";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_PC0a] = "EVENT_INTERFACE_PC0a";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_PC1a] = "EVENT_INTERFACE_PC1a";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_PC2a] = "EVENT_INTERFACE_PC2a";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_PC3a] = "EVENT_INTERFACE_PC3a";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_PC4a] = "EVENT_INTERFACE_PC4a";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_PC5a] = "EVENT_INTERFACE_PC5a";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_PC6a] = "EVENT_INTERFACE_PC6a";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_PC7a] = "EVENT_INTERFACE_PC7a";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_PC8a] = "EVENT_INTERFACE_PC8a";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_PC9a] = "EVENT_INTERFACE_PC9a";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_PCRa] = "EVENT_INTERFACE_PCRa";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_PCGa] = "EVENT_INTERFACE_PCGa";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_PCBa] = "EVENT_INTERFACE_PCBa";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_PC0b] = "EVENT_INTERFACE_PC0b";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_PC1b] = "EVENT_INTERFACE_PC1b";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_PC2b] = "EVENT_INTERFACE_PC2b";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_PC3b] = "EVENT_INTERFACE_PC3b";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_PC4b] = "EVENT_INTERFACE_PC4b";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_PC5b] = "EVENT_INTERFACE_PC5b";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_PC6b] = "EVENT_INTERFACE_PC6b";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_PC7b] = "EVENT_INTERFACE_PC7b";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_PC8b] = "EVENT_INTERFACE_PC8b";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_PC9b] = "EVENT_INTERFACE_PC9b";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_PCRb] = "EVENT_INTERFACE_PCRb";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_PCGb] = "EVENT_INTERFACE_PCGb";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_PCBb] = "EVENT_INTERFACE_PCBb";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_PFACE1] = "EVENT_INTERFACE_PFACE1";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_PFACE2] = "EVENT_INTERFACE_PFACE2";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_PFACE3] = "EVENT_INTERFACE_PFACE3";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_PFACE4] = "EVENT_INTERFACE_PFACE4";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_PGLASS0] = "EVENT_INTERFACE_PGLASS0";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_PGLASS1] = "EVENT_INTERFACE_PGLASS1";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_PGLASS2] = "EVENT_INTERFACE_PGLASS2";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_PGLASS3] = "EVENT_INTERFACE_PGLASS3";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_PGLASS4] = "EVENT_INTERFACE_PGLASS4";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_PGLASS5] = "EVENT_INTERFACE_PGLASS5";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_PGLASS6] = "EVENT_INTERFACE_PGLASS6";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_PGLASS7] = "EVENT_INTERFACE_PGLASS7";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_PGLASS8] = "EVENT_INTERFACE_PGLASS8";
|
||||
EVENT_TYPE_TEXT[EVENT_INTERFACE_PGLASS9] = "EVENT_INTERFACE_PGLASS9";
|
||||
|
||||
EVENT_TYPE_TEXT[EVENT_DT_GROUP0] = "EVENT_DT_GROUP0";
|
||||
EVENT_TYPE_TEXT[EVENT_DT_GROUP1] = "EVENT_DT_GROUP1";
|
||||
EVENT_TYPE_TEXT[EVENT_DT_GROUP2] = "EVENT_DT_GROUP2";
|
||||
EVENT_TYPE_TEXT[EVENT_DT_GROUP3] = "EVENT_DT_GROUP3";
|
||||
EVENT_TYPE_TEXT[EVENT_DT_GROUP4] = "EVENT_DT_GROUP4";
|
||||
EVENT_TYPE_TEXT[EVENT_DT_LABEL0] = "EVENT_DT_LABEL0";
|
||||
EVENT_TYPE_TEXT[EVENT_DT_LABEL1] = "EVENT_DT_LABEL1";
|
||||
EVENT_TYPE_TEXT[EVENT_DT_LABEL2] = "EVENT_DT_LABEL2";
|
||||
EVENT_TYPE_TEXT[EVENT_DT_LABEL3] = "EVENT_DT_LABEL3";
|
||||
EVENT_TYPE_TEXT[EVENT_DT_LABEL4] = "EVENT_DT_LABEL4";
|
||||
EVENT_TYPE_TEXT[EVENT_DT_VISIT0] = "EVENT_DT_VISIT0";
|
||||
EVENT_TYPE_TEXT[EVENT_DT_VISIT1] = "EVENT_DT_VISIT1";
|
||||
EVENT_TYPE_TEXT[EVENT_DT_VISIT2] = "EVENT_DT_VISIT2";
|
||||
EVENT_TYPE_TEXT[EVENT_DT_VISIT3] = "EVENT_DT_VISIT3";
|
||||
EVENT_TYPE_TEXT[EVENT_DT_VISIT4] = "EVENT_DT_VISIT4";
|
||||
EVENT_TYPE_TEXT[EVENT_DT_END] = "EVENT_DT_END";
|
||||
|
||||
EVENT_TYPE_TEXT[EVENT_CMD] = "EVENT_CMD";
|
||||
EVENT_TYPE_TEXT[EVENT_SPEED] = "EVENT_SPEED";
|
||||
|
||||
EVENT_TYPE_TEXT[EVENT_HYPER_PREV] = "EVENT_HYPER_PREV";
|
||||
EVENT_TYPE_TEXT[EVENT_HYPER_NEXT] = "EVENT_HYPER_NEXT";
|
||||
EVENT_TYPE_TEXT[EVENT_HYPER_HOME] = "EVENT_HYPER_HOME";
|
||||
EVENT_TYPE_TEXT[EVENT_HYPER_COPY] = "EVENT_HYPER_COPY";
|
||||
EVENT_TYPE_TEXT[EVENT_HYPER_SIZE1] = "EVENT_HYPER_SIZE1";
|
||||
EVENT_TYPE_TEXT[EVENT_HYPER_SIZE2] = "EVENT_HYPER_SIZE2";
|
||||
EVENT_TYPE_TEXT[EVENT_HYPER_SIZE3] = "EVENT_HYPER_SIZE3";
|
||||
EVENT_TYPE_TEXT[EVENT_HYPER_SIZE4] = "EVENT_HYPER_SIZE4";
|
||||
EVENT_TYPE_TEXT[EVENT_HYPER_SIZE5] = "EVENT_HYPER_SIZE5";
|
||||
|
||||
EVENT_TYPE_TEXT[EVENT_SATCOM_HUSTON] = "EVENT_SATCOM_HUSTON";
|
||||
EVENT_TYPE_TEXT[EVENT_SATCOM_SAT] = "EVENT_SATCOM_SAT";
|
||||
EVENT_TYPE_TEXT[EVENT_SATCOM_LOADING] = "EVENT_SATCOM_LOADING";
|
||||
EVENT_TYPE_TEXT[EVENT_SATCOM_OBJECT] = "EVENT_SATCOM_OBJECT";
|
||||
EVENT_TYPE_TEXT[EVENT_SATCOM_PROG] = "EVENT_SATCOM_PROG";
|
||||
EVENT_TYPE_TEXT[EVENT_SATCOM_SOLUCE] = "EVENT_SATCOM_SOLUCE";
|
||||
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_DESELECT] = "EVENT_OBJECT_DESELECT";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_LEFT] = "EVENT_OBJECT_LEFT";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_RIGHT] = "EVENT_OBJECT_RIGHT";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_UP] = "EVENT_OBJECT_UP";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_DOWN] = "EVENT_OBJECT_DOWN";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_GASUP] = "EVENT_OBJECT_GASUP";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_GASDOWN] = "EVENT_OBJECT_GASDOWN";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_HTAKE] = "EVENT_OBJECT_HTAKE";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_MTAKE] = "EVENT_OBJECT_MTAKE";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_MFRONT] = "EVENT_OBJECT_MFRONT";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_MBACK] = "EVENT_OBJECT_MBACK";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_MPOWER] = "EVENT_OBJECT_MPOWER";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_BHELP] = "EVENT_OBJECT_BHELP";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_BTAKEOFF] = "EVENT_OBJECT_BTAKEOFF";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_BDESTROY] = "EVENT_OBJECT_BDESTROY";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_BDERRICK] = "EVENT_OBJECT_BDERRICK";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_BSTATION] = "EVENT_OBJECT_BSTATION";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_BFACTORY] = "EVENT_OBJECT_BFACTORY";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_BCONVERT] = "EVENT_OBJECT_BCONVERT";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_BTOWER] = "EVENT_OBJECT_BTOWER";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_BREPAIR] = "EVENT_OBJECT_BREPAIR";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_BRESEARCH] = "EVENT_OBJECT_BRESEARCH";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_BRADAR] = "EVENT_OBJECT_BRADAR";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_BENERGY] = "EVENT_OBJECT_BENERGY";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_BLABO] = "EVENT_OBJECT_BLABO";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_BNUCLEAR] = "EVENT_OBJECT_BNUCLEAR";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_BPARA] = "EVENT_OBJECT_BPARA";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_BINFO] = "EVENT_OBJECT_BINFO";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_BDESTROYER] = "EVENT_OBJECT_BDESTROYER";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_GFLAT] = "EVENT_OBJECT_GFLAT";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_FCREATE] = "EVENT_OBJECT_FCREATE";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_FDELETE] = "EVENT_OBJECT_FDELETE";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_FCOLORb] = "EVENT_OBJECT_FCOLORb";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_FCOLORr] = "EVENT_OBJECT_FCOLORr";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_FCOLORg] = "EVENT_OBJECT_FCOLORg";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_FCOLORy] = "EVENT_OBJECT_FCOLORy";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_FCOLORv] = "EVENT_OBJECT_FCOLORv";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_FACTORYwa] = "EVENT_OBJECT_FACTORYwa";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_FACTORYta] = "EVENT_OBJECT_FACTORYta";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_FACTORYfa] = "EVENT_OBJECT_FACTORYfa";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_FACTORYia] = "EVENT_OBJECT_FACTORYia";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_FACTORYwc] = "EVENT_OBJECT_FACTORYwc";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_FACTORYtc] = "EVENT_OBJECT_FACTORYtc";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_FACTORYfc] = "EVENT_OBJECT_FACTORYfc";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_FACTORYic] = "EVENT_OBJECT_FACTORYic";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_FACTORYwi] = "EVENT_OBJECT_FACTORYwi";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_FACTORYti] = "EVENT_OBJECT_FACTORYti";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_FACTORYfi] = "EVENT_OBJECT_FACTORYfi";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_FACTORYii] = "EVENT_OBJECT_FACTORYii";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_FACTORYws] = "EVENT_OBJECT_FACTORYws";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_FACTORYts] = "EVENT_OBJECT_FACTORYts";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_FACTORYfs] = "EVENT_OBJECT_FACTORYfs";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_FACTORYis] = "EVENT_OBJECT_FACTORYis";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_FACTORYrt] = "EVENT_OBJECT_FACTORYrt";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_FACTORYrc] = "EVENT_OBJECT_FACTORYrc";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_FACTORYrr] = "EVENT_OBJECT_FACTORYrr";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_FACTORYrs] = "EVENT_OBJECT_FACTORYrs";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_FACTORYsa] = "EVENT_OBJECT_FACTORYsa";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_SEARCH] = "EVENT_OBJECT_SEARCH";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_TERRAFORM] = "EVENT_OBJECT_TERRAFORM";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_FIRE] = "EVENT_OBJECT_FIRE";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_FIREANT] = "EVENT_OBJECT_FIREANT";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_SPIDEREXPLO]= "EVENT_OBJECT_SPIDEREXPLO";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_RECOVER] = "EVENT_OBJECT_RECOVER";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_BEGSHIELD] = "EVENT_OBJECT_BEGSHIELD";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_ENDSHIELD] = "EVENT_OBJECT_ENDSHIELD";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_RTANK] = "EVENT_OBJECT_RTANK";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_RFLY] = "EVENT_OBJECT_RFLY";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_RTHUMP] = "EVENT_OBJECT_RTHUMP";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_RCANON] = "EVENT_OBJECT_RCANON";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_RTOWER] = "EVENT_OBJECT_RTOWER";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_RPHAZER] = "EVENT_OBJECT_RPHAZER";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_RSHIELD] = "EVENT_OBJECT_RSHIELD";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_RATOMIC] = "EVENT_OBJECT_RATOMIC";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_RiPAW] = "EVENT_OBJECT_RiPAW";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_RiGUN] = "EVENT_OBJECT_RiGUN";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_RESET] = "EVENT_OBJECT_RESET";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_DIMSHIELD] = "EVENT_OBJECT_DIMSHIELD";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_TARGET] = "EVENT_OBJECT_TARGET";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_PROGLIST] = "EVENT_OBJECT_PROGLIST";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_PROGRUN] = "EVENT_OBJECT_PROGRUN";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_PROGEDIT] = "EVENT_OBJECT_PROGEDIT";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_PROGSTART] = "EVENT_OBJECT_PROGSTART";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_PROGSTOP] = "EVENT_OBJECT_PROGSTOP";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_INFOOK] = "EVENT_OBJECT_INFOOK";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_DELETE] = "EVENT_OBJECT_DELETE";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_GENERGY] = "EVENT_OBJECT_GENERGY";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_GSHIELD] = "EVENT_OBJECT_GSHIELD";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_GRANGE] = "EVENT_OBJECT_GRANGE";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_COMPASS] = "EVENT_OBJECT_COMPASS";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_MAP] = "EVENT_OBJECT_MAP";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_MAPZOOM] = "EVENT_OBJECT_MAPZOOM";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_GPROGRESS] = "EVENT_OBJECT_GPROGRESS";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_GRADAR] = "EVENT_OBJECT_GRADAR";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_GINFO] = "EVENT_OBJECT_GINFO";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_TYPE] = "EVENT_OBJECT_TYPE";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_CROSSHAIR] = "EVENT_OBJECT_CROSSHAIR";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_CORNERul] = "EVENT_OBJECT_CORNERul";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_CORNERur] = "EVENT_OBJECT_CORNERur";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_CORNERdl] = "EVENT_OBJECT_CORNERdl";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_CORNERdr] = "EVENT_OBJECT_CORNERdr";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_MAPi] = "EVENT_OBJECT_MAPi";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_MAPg] = "EVENT_OBJECT_MAPg";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_CAMERA] = "EVENT_OBJECT_CAMERA";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_HELP] = "EVENT_OBJECT_HELP";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_SOLUCE] = "EVENT_OBJECT_SOLUCE";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_CAMERAleft] = "EVENT_OBJECT_CAMERAleft";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_CAMERAright]= "EVENT_OBJECT_CAMERAright";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_CAMERAnear] = "EVENT_OBJECT_CAMERAnear";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_CAMERAaway] = "EVENT_OBJECT_CAMERAaway";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_SHORTCUT00] = "EVENT_OBJECT_SHORTCUT00";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_SHORTCUT01] = "EVENT_OBJECT_SHORTCUT01";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_SHORTCUT02] = "EVENT_OBJECT_SHORTCUT02";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_SHORTCUT03] = "EVENT_OBJECT_SHORTCUT03";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_SHORTCUT04] = "EVENT_OBJECT_SHORTCUT04";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_SHORTCUT05] = "EVENT_OBJECT_SHORTCUT05";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_SHORTCUT06] = "EVENT_OBJECT_SHORTCUT06";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_SHORTCUT07] = "EVENT_OBJECT_SHORTCUT07";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_SHORTCUT08] = "EVENT_OBJECT_SHORTCUT08";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_SHORTCUT09] = "EVENT_OBJECT_SHORTCUT09";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_SHORTCUT10] = "EVENT_OBJECT_SHORTCUT10";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_SHORTCUT11] = "EVENT_OBJECT_SHORTCUT11";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_SHORTCUT12] = "EVENT_OBJECT_SHORTCUT12";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_SHORTCUT13] = "EVENT_OBJECT_SHORTCUT13";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_SHORTCUT14] = "EVENT_OBJECT_SHORTCUT14";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_SHORTCUT15] = "EVENT_OBJECT_SHORTCUT15";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_SHORTCUT16] = "EVENT_OBJECT_SHORTCUT16";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_SHORTCUT17] = "EVENT_OBJECT_SHORTCUT17";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_SHORTCUT18] = "EVENT_OBJECT_SHORTCUT18";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_SHORTCUT19] = "EVENT_OBJECT_SHORTCUT19";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_MOVIELOCK] = "EVENT_OBJECT_MOVIELOCK";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_EDITLOCK] = "EVENT_OBJECT_EDITLOCK";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_LIMIT] = "EVENT_OBJECT_LIMIT";
|
||||
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_PEN0] = "EVENT_OBJECT_PEN0";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_PEN1] = "EVENT_OBJECT_PEN1";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_PEN2] = "EVENT_OBJECT_PEN2";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_PEN3] = "EVENT_OBJECT_PEN3";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_PEN4] = "EVENT_OBJECT_PEN4";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_PEN5] = "EVENT_OBJECT_PEN5";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_PEN6] = "EVENT_OBJECT_PEN6";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_PEN7] = "EVENT_OBJECT_PEN7";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_PEN8] = "EVENT_OBJECT_PEN8";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_REC] = "EVENT_OBJECT_REC";
|
||||
EVENT_TYPE_TEXT[EVENT_OBJECT_STOP] = "EVENT_OBJECT_STOP";
|
||||
|
||||
EVENT_TYPE_TEXT[EVENT_STUDIO_OK] = "EVENT_STUDIO_OK";
|
||||
EVENT_TYPE_TEXT[EVENT_STUDIO_CANCEL] = "EVENT_STUDIO_CANCEL";
|
||||
EVENT_TYPE_TEXT[EVENT_STUDIO_EDIT] = "EVENT_STUDIO_EDIT";
|
||||
EVENT_TYPE_TEXT[EVENT_STUDIO_LIST] = "EVENT_STUDIO_LIST";
|
||||
EVENT_TYPE_TEXT[EVENT_STUDIO_NEW] = "EVENT_STUDIO_NEW";
|
||||
EVENT_TYPE_TEXT[EVENT_STUDIO_OPEN] = "EVENT_STUDIO_OPEN";
|
||||
EVENT_TYPE_TEXT[EVENT_STUDIO_SAVE] = "EVENT_STUDIO_SAVE";
|
||||
EVENT_TYPE_TEXT[EVENT_STUDIO_UNDO] = "EVENT_STUDIO_UNDO";
|
||||
EVENT_TYPE_TEXT[EVENT_STUDIO_CUT] = "EVENT_STUDIO_CUT";
|
||||
EVENT_TYPE_TEXT[EVENT_STUDIO_COPY] = "EVENT_STUDIO_COPY";
|
||||
EVENT_TYPE_TEXT[EVENT_STUDIO_PASTE] = "EVENT_STUDIO_PASTE";
|
||||
EVENT_TYPE_TEXT[EVENT_STUDIO_SIZE] = "EVENT_STUDIO_SIZE";
|
||||
EVENT_TYPE_TEXT[EVENT_STUDIO_TOOL] = "EVENT_STUDIO_TOOL";
|
||||
EVENT_TYPE_TEXT[EVENT_STUDIO_HELP] = "EVENT_STUDIO_HELP";
|
||||
EVENT_TYPE_TEXT[EVENT_STUDIO_COMPILE] = "EVENT_STUDIO_COMPILE";
|
||||
EVENT_TYPE_TEXT[EVENT_STUDIO_RUN] = "EVENT_STUDIO_RUN";
|
||||
EVENT_TYPE_TEXT[EVENT_STUDIO_REALTIME] = "EVENT_STUDIO_REALTIME";
|
||||
EVENT_TYPE_TEXT[EVENT_STUDIO_STEP] = "EVENT_STUDIO_STEP";
|
||||
}
|
||||
|
||||
std::string ParseEventType(EventType eventType)
|
||||
{
|
||||
auto Other = [&](const char* name)
|
||||
{
|
||||
std::stringstream str;
|
||||
str << name << "(" << static_cast<int>(eventType) << ")";
|
||||
return str.str();
|
||||
};
|
||||
|
||||
if (eventType < EVENT_STD_MAX)
|
||||
{
|
||||
const char* stdEvent = EVENT_TYPE_TEXT[eventType];
|
||||
if (stdEvent[0] == 0)
|
||||
return Other("STD_UNDEFINED");
|
||||
|
||||
return stdEvent;
|
||||
}
|
||||
|
||||
if (eventType >= EVENT_USER)
|
||||
return Other("USER_EVENT");
|
||||
|
||||
return Other("UNDEFINED");
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -40,8 +40,10 @@ enum EventType
|
|||
//! Invalid event / no event
|
||||
EVENT_NULL = 0,
|
||||
|
||||
//! Event sent on user or system quit request
|
||||
EVENT_QUIT = 1,
|
||||
// System events (originating in CApplication)
|
||||
|
||||
//! Event sent on system quit request
|
||||
EVENT_SYS_QUIT = 1,
|
||||
|
||||
//! Frame update event
|
||||
EVENT_FRAME = 2,
|
||||
|
@ -69,10 +71,15 @@ enum EventType
|
|||
//! Event sent after releasing a joystick button
|
||||
EVENT_JOY_BUTTON_UP = 14,
|
||||
|
||||
//!< Maximum value of system events
|
||||
EVENT_SYS_MAX,
|
||||
|
||||
|
||||
/* Events sent/received in game and user interface */
|
||||
|
||||
EVENT_UPDINTERFACE = 20,
|
||||
//! Event sent on user quit request
|
||||
EVENT_QUIT = 20,
|
||||
EVENT_UPDINTERFACE = 21,
|
||||
EVENT_WIN = 30,
|
||||
EVENT_LOST = 31,
|
||||
|
||||
|
@ -548,7 +555,8 @@ enum EventType
|
|||
EVENT_STUDIO_REALTIME = 2052,
|
||||
EVENT_STUDIO_STEP = 2053,
|
||||
|
||||
EVENT_STD_MAX, //! < maximum value of standard events
|
||||
//! Maximum value of standard events
|
||||
EVENT_STD_MAX,
|
||||
|
||||
EVENT_USER = 10000,
|
||||
EVENT_FORCE_LONG = 0x7fffffff
|
||||
|
@ -669,8 +677,8 @@ struct ActiveEventData
|
|||
* \struct Event
|
||||
* \brief Event sent by system, interface or game
|
||||
*
|
||||
* Event is described by its type (EventType) and the union
|
||||
* \a data contains additional data about the event.
|
||||
* Event is described by its type (EventType) and anonymous union that
|
||||
* contains additional data about the event.
|
||||
* Different members of the union are filled with different event types.
|
||||
* With some events, nothing is filled (it's zeroed out).
|
||||
* The union contains roughly the same information as SDL_Event struct
|
||||
|
@ -681,9 +689,6 @@ struct Event
|
|||
//! Type of event
|
||||
EventType type;
|
||||
|
||||
//! If true, the event was produced by system in CApplication; else, it has come from game engine
|
||||
bool systemEvent;
|
||||
|
||||
//! Relative time since last EVENT_FRAME
|
||||
//! Scope: only EVENT_FRAME events
|
||||
// TODO: gradually replace the usage of this with new CApplication's time functions
|
||||
|
@ -732,7 +737,6 @@ struct Event
|
|||
|
||||
explicit Event(EventType _type = EVENT_NULL)
|
||||
: type(_type)
|
||||
, systemEvent(false)
|
||||
, rTime(0.0f)
|
||||
, kmodState(0)
|
||||
, trackedKeysState(0)
|
||||
|
@ -745,6 +749,11 @@ struct Event
|
|||
//! Returns an unique event type (above the standard IDs)
|
||||
EventType GetUniqueEventType();
|
||||
|
||||
//! Initializes static array with event type strings
|
||||
void InitializeEventTypeTexts();
|
||||
|
||||
//! Parses event type to string
|
||||
std::string ParseEventType(EventType eventType);
|
||||
|
||||
/**
|
||||
* \class CEventQueue
|
||||
|
|
|
@ -43,7 +43,7 @@ class CProfile : public CSingleton<CProfile>
|
|||
{
|
||||
public:
|
||||
CProfile();
|
||||
~CProfile();
|
||||
virtual ~CProfile();
|
||||
|
||||
/** Loads colobot.ini from current directory
|
||||
* \return return true on success
|
||||
|
|
|
@ -848,10 +848,8 @@ static const char* GetResourceBase(ResType type, int num)
|
|||
|
||||
case RES_EVENT:
|
||||
if (num >= EVENT_STD_MAX)
|
||||
{
|
||||
GetLogger()->Trace("GetResource event num out of range: %d\n", num); // TODO: fix later
|
||||
return "";
|
||||
}
|
||||
return ""; // can be safely ignored (user events)
|
||||
|
||||
str = stringsEvent[num];
|
||||
break;
|
||||
|
||||
|
|
|
@ -310,6 +310,7 @@ bool ReadLineString(std::istream& stream, const std::string& prefix, std::string
|
|||
|
||||
|
||||
CModelFile::CModelFile()
|
||||
: m_printDebugInfo(false)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -615,23 +616,26 @@ bool CModelFile::ReadModel(std::istream& stream)
|
|||
if (m_triangles[i].tex1Name == "plant.png")
|
||||
m_triangles[i].state |= ENG_RSTATE_ALPHA;
|
||||
|
||||
GetLogger()->Trace("ModelTriangle %d\n", i+1);
|
||||
std::string s1 = m_triangles[i].p1.ToString();
|
||||
GetLogger()->Trace(" p1: %s\n", s1.c_str());
|
||||
std::string s2 = m_triangles[i].p2.ToString();
|
||||
GetLogger()->Trace(" p2: %s\n", s2.c_str());
|
||||
std::string s3 = m_triangles[i].p3.ToString();
|
||||
GetLogger()->Trace(" p3: %s\n", s3.c_str());
|
||||
if (m_printDebugInfo)
|
||||
{
|
||||
GetLogger()->Trace("ModelTriangle %d\n", i+1);
|
||||
std::string s1 = m_triangles[i].p1.ToString();
|
||||
GetLogger()->Trace(" p1: %s\n", s1.c_str());
|
||||
std::string s2 = m_triangles[i].p2.ToString();
|
||||
GetLogger()->Trace(" p2: %s\n", s2.c_str());
|
||||
std::string s3 = m_triangles[i].p3.ToString();
|
||||
GetLogger()->Trace(" p3: %s\n", s3.c_str());
|
||||
|
||||
std::string d = m_triangles[i].material.diffuse.ToString();
|
||||
std::string a = m_triangles[i].material.ambient.ToString();
|
||||
std::string s = m_triangles[i].material.specular.ToString();
|
||||
GetLogger()->Trace(" mat: d: %s a: %s s: %s\n", d.c_str(), a.c_str(), s.c_str());
|
||||
std::string d = m_triangles[i].material.diffuse.ToString();
|
||||
std::string a = m_triangles[i].material.ambient.ToString();
|
||||
std::string s = m_triangles[i].material.specular.ToString();
|
||||
GetLogger()->Trace(" mat: d: %s a: %s s: %s\n", d.c_str(), a.c_str(), s.c_str());
|
||||
|
||||
GetLogger()->Trace(" tex1: %s tex2: %s\n", m_triangles[i].tex1Name.c_str(),
|
||||
m_triangles[i].variableTex2 ? "(variable)" : m_triangles[i].tex2Name.c_str());
|
||||
GetLogger()->Trace(" lod level: %d\n", m_triangles[i].lodLevel);
|
||||
GetLogger()->Trace(" state: %ld\n", m_triangles[i].state);
|
||||
GetLogger()->Trace(" tex1: %s tex2: %s\n", m_triangles[i].tex1Name.c_str(),
|
||||
m_triangles[i].variableTex2 ? "(variable)" : m_triangles[i].tex2Name.c_str());
|
||||
GetLogger()->Trace(" lod level: %d\n", m_triangles[i].lodLevel);
|
||||
GetLogger()->Trace(" state: %ld\n", m_triangles[i].state);
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
|
@ -1093,24 +1097,27 @@ bool CModelFile::ReadBinaryModel(std::istream& stream)
|
|||
return false;
|
||||
}
|
||||
|
||||
for (int i = 0; i < static_cast<int>( m_triangles.size() ); ++i)
|
||||
if (m_printDebugInfo)
|
||||
{
|
||||
GetLogger()->Trace("ModelTriangle %d\n", i+1);
|
||||
std::string s1 = m_triangles[i].p1.ToString();
|
||||
GetLogger()->Trace(" p1: %s\n", s1.c_str());
|
||||
std::string s2 = m_triangles[i].p2.ToString();
|
||||
GetLogger()->Trace(" p2: %s\n", s2.c_str());
|
||||
std::string s3 = m_triangles[i].p3.ToString();
|
||||
GetLogger()->Trace(" p3: %s\n", s3.c_str());
|
||||
for (int i = 0; i < static_cast<int>( m_triangles.size() ); ++i)
|
||||
{
|
||||
GetLogger()->Trace("ModelTriangle %d\n", i+1);
|
||||
std::string s1 = m_triangles[i].p1.ToString();
|
||||
GetLogger()->Trace(" p1: %s\n", s1.c_str());
|
||||
std::string s2 = m_triangles[i].p2.ToString();
|
||||
GetLogger()->Trace(" p2: %s\n", s2.c_str());
|
||||
std::string s3 = m_triangles[i].p3.ToString();
|
||||
GetLogger()->Trace(" p3: %s\n", s3.c_str());
|
||||
|
||||
std::string d = m_triangles[i].material.diffuse.ToString();
|
||||
std::string a = m_triangles[i].material.ambient.ToString();
|
||||
std::string s = m_triangles[i].material.specular.ToString();
|
||||
GetLogger()->Trace(" mat: d: %s a: %s s: %s\n", d.c_str(), a.c_str(), s.c_str());
|
||||
std::string d = m_triangles[i].material.diffuse.ToString();
|
||||
std::string a = m_triangles[i].material.ambient.ToString();
|
||||
std::string s = m_triangles[i].material.specular.ToString();
|
||||
GetLogger()->Trace(" mat: d: %s a: %s s: %s\n", d.c_str(), a.c_str(), s.c_str());
|
||||
|
||||
GetLogger()->Trace(" tex1: %s tex2: %s\n", m_triangles[i].tex1Name.c_str(), m_triangles[i].tex2Name.c_str());
|
||||
GetLogger()->Trace(" lod level: %d\n", m_triangles[i].lodLevel);
|
||||
GetLogger()->Trace(" state: %ld\n", m_triangles[i].state);
|
||||
GetLogger()->Trace(" tex1: %s tex2: %s\n", m_triangles[i].tex1Name.c_str(), m_triangles[i].tex2Name.c_str());
|
||||
GetLogger()->Trace(" lod level: %d\n", m_triangles[i].lodLevel);
|
||||
GetLogger()->Trace(" state: %ld\n", m_triangles[i].state);
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
|
@ -1197,6 +1204,10 @@ int CModelFile::GetTriangleCount()
|
|||
return m_triangles.size();
|
||||
}
|
||||
|
||||
void CModelFile::SetPrintDebugInfo(bool printDebugInfo)
|
||||
{
|
||||
m_printDebugInfo = printDebugInfo;
|
||||
}
|
||||
|
||||
} // namespace Gfx
|
||||
|
||||
|
|
|
@ -137,6 +137,9 @@ public:
|
|||
//! Returns the triangle vector
|
||||
const std::vector<ModelTriangle>& GetTriangles();
|
||||
|
||||
//! Controls printing of debug information
|
||||
void SetPrintDebugInfo(bool printDebugInfo);
|
||||
|
||||
protected:
|
||||
//@{
|
||||
//! @deprecated min, max conversions
|
||||
|
@ -147,6 +150,7 @@ protected:
|
|||
protected:
|
||||
//! Model triangles
|
||||
std::vector<ModelTriangle> m_triangles;
|
||||
bool m_printDebugInfo;
|
||||
};
|
||||
|
||||
}; // namespace Gfx
|
||||
|
|
|
@ -27,6 +27,9 @@ bool CModelManager::LoadModel(const std::string& fileName, bool mirrored)
|
|||
|
||||
CModelFile modelFile;
|
||||
|
||||
if (CApplication::GetInstance().IsDebugModeActive(DEBUG_MODELS))
|
||||
modelFile.SetPrintDebugInfo(true);
|
||||
|
||||
std::string filePath = CApplication::GetInstance().GetDataFilePath(DIR_MODEL, fileName);
|
||||
|
||||
if (!modelFile.ReadModel(filePath))
|
||||
|
|
|
@ -940,6 +940,14 @@ Ui::CDisplayText* CRobotMain::GetDisplayText()
|
|||
return m_displayText;
|
||||
}
|
||||
|
||||
void CRobotMain::LoadSceneOnStart(const std::string& name, int rank)
|
||||
{
|
||||
// TODO: fix this ugly dependency :(
|
||||
m_dialog->SetSceneName(name.c_str());
|
||||
m_dialog->SetSceneRank(rank);
|
||||
ChangePhase(PHASE_LOADING);
|
||||
}
|
||||
|
||||
|
||||
//! Creates the file colobot.ini at the first time
|
||||
void CRobotMain::CreateIni()
|
||||
|
@ -1010,28 +1018,24 @@ void CRobotMain::SetDefaultInputBindings()
|
|||
void CRobotMain::SetInputBinding(InputSlot slot, InputBinding binding)
|
||||
{
|
||||
unsigned int index = static_cast<unsigned int>(slot);
|
||||
assert(index >= 0 && index < INPUT_SLOT_MAX);
|
||||
m_inputBindings[index] = binding;
|
||||
}
|
||||
|
||||
const InputBinding& CRobotMain::GetInputBinding(InputSlot slot)
|
||||
{
|
||||
unsigned int index = static_cast<unsigned int>(slot);
|
||||
assert(index >= 0 && index < INPUT_SLOT_MAX);
|
||||
return m_inputBindings[index];
|
||||
}
|
||||
|
||||
void CRobotMain::SetJoyAxisBinding(JoyAxisSlot slot, JoyAxisBinding binding)
|
||||
{
|
||||
unsigned int index = static_cast<unsigned int>(slot);
|
||||
assert(index >= 0 && index < JOY_AXIS_SLOT_MAX);
|
||||
m_joyAxisBindings[index] = binding;
|
||||
}
|
||||
|
||||
const JoyAxisBinding& CRobotMain::GetJoyAxisBinding(JoyAxisSlot slot)
|
||||
{
|
||||
unsigned int index = static_cast<unsigned int>(slot);
|
||||
assert(index >= 0 && index < JOY_AXIS_SLOT_MAX);
|
||||
return m_joyAxisBindings[index];
|
||||
}
|
||||
|
||||
|
@ -1300,7 +1304,7 @@ void CRobotMain::ChangePhase(Phase phase)
|
|||
}
|
||||
|
||||
//! Processes an event
|
||||
bool CRobotMain::EventProcess(Event &event)
|
||||
bool CRobotMain::ProcessEvent(Event &event)
|
||||
{
|
||||
/* Motion vector management */
|
||||
|
||||
|
@ -1997,7 +2001,14 @@ void CRobotMain::ExecuteCmd(char *cmd)
|
|||
|
||||
if (strcmp(cmd, "debugmode") == 0)
|
||||
{
|
||||
m_app->SetDebugMode(!m_app->GetDebugMode());
|
||||
if (m_app->IsDebugModeActive(DEBUG_ALL))
|
||||
{
|
||||
m_app->SetDebugModeActive(DEBUG_ALL, false);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_app->SetDebugModeActive(DEBUG_ALL, true);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -199,6 +199,9 @@ public:
|
|||
Ui::CInterface* GetInterface();
|
||||
Ui::CDisplayText* GetDisplayText();
|
||||
|
||||
//! Caused the given mission to be loaded immediately after start
|
||||
void LoadSceneOnStart(const std::string& name, int rank);
|
||||
|
||||
void CreateIni();
|
||||
|
||||
//! Sets the default input bindings (key and axes)
|
||||
|
@ -226,7 +229,7 @@ public:
|
|||
void ResetKeyStates();
|
||||
|
||||
void ChangePhase(Phase phase);
|
||||
bool EventProcess(Event &event);
|
||||
bool ProcessEvent(Event &event);
|
||||
|
||||
bool CreateShortcuts();
|
||||
void ScenePerso();
|
||||
|
|
|
@ -366,7 +366,8 @@ pb->SetState(STATE_SHADOW);
|
|||
}
|
||||
// #endif
|
||||
|
||||
if ( m_app->GetDebugMode() )
|
||||
// TODO: remove?
|
||||
if (m_app->GetProtoMode())
|
||||
{
|
||||
pos.x = 139.0f/640.0f;
|
||||
pos.y = 313.0f/480.0f;
|
||||
|
|
|
@ -207,7 +207,7 @@ ${GLEW_INCLUDE_PATH}
|
|||
${Boost_INCLUDE_DIRS}
|
||||
${OPTIONAL_INCLUDE_DIRS}
|
||||
${LIBSNDFILE_INCLUDE_DIR}
|
||||
${CLIPBOARD_DIR}
|
||||
${CLIPBOARD_INCLUDE_DIR}
|
||||
)
|
||||
|
||||
set(LIBS
|
||||
|
|
|
@ -5,7 +5,7 @@ include_directories(
|
|||
${SRC_DIR}
|
||||
${GTEST_INCLUDE_DIR}
|
||||
${GMOCK_INCLUDE_DIR}
|
||||
${CLIPBOARD_DIR}
|
||||
${CLIPBOARD_INCLUDE_DIR}
|
||||
)
|
||||
|
||||
# Platform-dependent implementation of CSystemUtils
|
||||
|
|
Loading…
Reference in New Issue