Создай функцию в events.cpp, в которой будешь отрисовывать все event`ы.
Добавляешь структурку event_info, в ней можешь добавить время, сообщение, цвет лога, позицию и тд.
После добавь переменную с типом контейнера (std::deque например). Выглядеть будет так - std::deque< event_info > logs;
Это нужно добавлять в events.hpp
В том же event.cpp добавь функцию (не обязательно) для добавления event`a в переменную logs. logs.push_front(event_info(время, сообщение, цвет, позиция и тд))
После делай event`ы. Простенький event -
В функции для отрисовки event`ов сделай перебор всех логов, далее получи текущий лог (logs.at(index)), после отрисовывай их (ISurface).
Не забудь вызывать event логи в определенном event`e (в хуке). К примеру -