Итерируясь по call_ids и посылая каждый элемент на вход calIUIfunction, мы получаем способ управления элементами в рантайме - нет нужды хардкодить дизайн. Теперь давайте скажем, что UI элемент - это структура, которая хранит информацию о его состоянии после вызова calIUIfunction, а саму функцию сделаем членом структуры (хз, на сколько грамотно писать "член-функция структуры", но идея, думаю, ясна):
Я уж грешным делом подумал, что тут будет про immediate mode для ОпенГЛ.
Про опенжл будет дальше
Красавчик! Тоже пилю свой движок, с редактором уровней и свой GUI. Несмотря на увлекательность понял через года полтора разработки игры: что все таки лучше запилить картинку на весь экран - сразу с GUI, чем долго дебажить код своего GUI в рамках каждого меню. Но тебе желаю терпения и успехов!
Спасибо! У меня именно решение для "описал кнопки и пошёл дальше" - их внутренняя логика как раз вынесена в отдельный модуль