diff options
Diffstat (limited to 'src/common')
-rw-r--r-- | src/common/README.txt | 7 | ||||
-rw-r--r-- | src/common/event.h | 59 | ||||
-rw-r--r-- | src/common/logger.h | 12 | ||||
-rw-r--r-- | src/common/stringutils.cpp | 10 |
4 files changed, 49 insertions, 39 deletions
diff --git a/src/common/README.txt b/src/common/README.txt index 36653cc..73d65b7 100644 --- a/src/common/README.txt +++ b/src/common/README.txt @@ -1,3 +1,4 @@ -src/common - -Contains headers and modules with common structs and enums. +/** + * \dir common + * \brief Structs and utils shared throughout the application + */ diff --git a/src/common/event.h b/src/common/event.h index 54086d4..1cfab35 100644 --- a/src/common/event.h +++ b/src/common/event.h @@ -40,9 +40,10 @@ enum EventType EVENT_NULL = 0, //! Event sent on user or system quit request - EVENT_QUIT = 1, + EVENT_QUIT = 1, - //? EVENT_FRAME = 2, + //! Frame update event + EVENT_FRAME = 2, //! Event sent after pressing a mouse button EVENT_MOUSE_BUTTON_DOWN = 3, @@ -669,29 +670,41 @@ struct Event //! If true, the event was produced by system (SDL); else, it has come from user interface bool systemEvent; - //! Additional data for EVENT_KEY_DOWN and EVENT_KEY_UP - KeyEventData key; - //! Additional data for EVENT_MOUSE_BUTTON_DOWN and EVENT_MOUSE_BUTTON_UP - MouseButtonEventData mouseButton; - //! Additional data for EVENT_MOUSE_MOVE - MouseMoveEventData mouseMove; - //! Additional data for EVENT_JOY - JoyAxisEventData joyAxis; - //! Additional data for EVENT_JOY_AXIS - JoyButtonEventData joyButton; - //! Additional data for EVENT_ACTIVE - ActiveEventData active; - - //? long param; // parameter - //? Math::Point pos; // mouse position (0 .. 1) - //? float axeX; // control the X axis (-1 .. 1) - //? float axeY; // control of the Y axis (-1 .. 1) - //? float axeZ; // control the Z axis (-1 .. 1) - //? short keyState; // state of the keyboard (KS_ *) - //? float rTime; // relative time + union + { + //! Additional data for EVENT_KEY_DOWN and EVENT_KEY_UP + KeyEventData key; + //! Additional data for EVENT_MOUSE_BUTTON_DOWN and EVENT_MOUSE_BUTTON_UP + MouseButtonEventData mouseButton; + //! Additional data for EVENT_MOUSE_MOVE + MouseMoveEventData mouseMove; + //! Additional data for EVENT_JOY + JoyAxisEventData joyAxis; + //! Additional data for EVENT_JOY_AXIS + JoyButtonEventData joyButton; + //! Additional data for EVENT_ACTIVE + ActiveEventData active; + }; + + // TODO: refactor/rewrite + long param; // parameter + Math::Point pos; // mouse position (0 .. 1) + float axeX; // control the X axis (-1 .. 1) + float axeY; // control of the Y axis (-1 .. 1) + float axeZ; // control the Z axis (-1 .. 1) + short keyState; // state of the keyboard (KS_ *) + float rTime; // relative time Event(EventType aType = EVENT_NULL) - : type(aType), systemEvent(false) {} + { + type = aType; + systemEvent = false; + + param = 0; + axeX = axeY = axeZ = 0.0f; + keyState = 0; + rTime = 0.0f; + } }; diff --git a/src/common/logger.h b/src/common/logger.h index 4febff0..f126e52 100644 --- a/src/common/logger.h +++ b/src/common/logger.h @@ -58,36 +58,36 @@ class CLogger : public CSingleton<CLogger> ~CLogger(); /** Write message to console or file - * @param const char str - message to write + * @param str - message to write * @param ... - additional arguments */ void Message(const char *str, ...); /** Write message to console or file with LOG_INFO level - * @param const char str - message to write + * @param str - message to write * @param ... - additional arguments */ void Info(const char *str, ...); /** Write message to console or file with LOG_WARN level - * @param const char str - message to write + * @param str - message to write * @param ... - additional arguments */ void Warn(const char *str, ...); /** Write message to console or file with LOG_ERROR level - * @param const char str - message to write + * @param str - message to write * @param ... - additional arguments */ void Error(const char *str, ...); /** Set output file to write logs to - * @param std::string filename - output file to write to + * @param filename - output file to write to */ void SetOutputFile(std::string filename); /** Set log level. Logs with level below will not be shown - * @param LogType level - minimum log level to write + * @param level - minimum log level to write */ void SetLogLevel(LogType level); diff --git a/src/common/stringutils.cpp b/src/common/stringutils.cpp index 585bb46..12a3179 100644 --- a/src/common/stringutils.cpp +++ b/src/common/stringutils.cpp @@ -135,15 +135,11 @@ int StrUtils::Utf8CharSizeAt(const std::string &str, unsigned int pos) size_t StrUtils::Utf8StringLength(const std::string &str) { size_t result = 0; - for (unsigned int i = 0; i < str.size(); ++i) + unsigned int i = 0; + while (i < str.size()) { - char ch = str[i]; - if ((ch & 0x80) == 0) + i += Utf8CharSizeAt(str, i); ++result; - else if ((ch & 0xC0) == 0xC0) - result += 2; - else - result += 3; } return result; } |