Автор: Ragamafona ( Версия 1.0 была выпущена когда ещё был ник Emerald )
Версия: 2.0
Описание: В удобном меню игрок может выбирать один из смайлов который появится над его головой. Добавлять/Удалять/Изменять смайлы в меню можно через INI файл.
Умелое использование определённого в рамках допустимого кода есть оптимизация занимаемого пространства - памяти внешнего накопителя (исполняемого - для ОЗУ). По такой логике любой скриптер, написавший код с кол-вом строк в 1к, будет "недоскриптером". Глупо писать подобные комментарии, не умея оперировать понятиями, а уж тем более не стоит кидать подобные замечания без конкретики в общем виде.
Значительно изменение от предыдущей версии это меню на новой системе, вместо таска get_gametime, чтение смайлов с ini, установка времени спрайта и сброса в меню.
Если это были перечисления оптимизационных решений, тот тут я возражу. 1) Система меню здесь ни разу не новая, а старая. 2) С get_gametime-то всё хорошо, только зачем получение функции записывается в статическую переменную - я не понял, ибо меню вызывается не так часто, а смысла хранить эту переменную как локальную нет. 3) Чтение из файла - доп. время обработки, куда быстрее получать данные из настроек, расположенных в исходнике, так что тут не оптимизация, а повышение удобности при работе с плагином для плэйеров.
2) Когда это статика память экономила? Почитайте о динамических и статических переменных. Тут как раз все наоборот. Для динамических переменных по мере их использования выделяется память, после чего (при достижении конца функции, в операторном блоке которого они были объявлены) память высвобождается. То есть это и есть экономия памяти - память под них выделяется в момент их использования, после чего высвобождается, когда они уже не нужны. Статика же единожды заносится в ОЗУ и хранится там до конца выполнения программы. Но скорость работы со статикой выше, так как под нее не нужно выделять/высвобождать память многократно - это делается один раз при старте/завершении программы