Quote (Hexing)
Я думаю ты не имеешь права судить об этом, пока не покажешь открытый код движка варика. В некоторых языках программирования(самых простых) boolean = integer = 4 байта. В норм языках вроде c++ это 1 байт. В delphi(насчет си не знаю) есть возможность создания "упаковок": packed record boolean, тоесть так как у булина 2 значения(аля бинарный код), можно создать суммарность по очень выгодной прогрессии (0-1+ 3-4 +...) и уместить в тех же 4 байтах ну очень большое количество булинов. Я думаю что хоть ты булин хоть интегер создавай, на современных компах это не проблема, един. проблема варика в утечках и только в них.
И к чему весь этот оффтоп? Були перезаписываются, это склярные типы, не являющиеся объектами и не происходят от handle. А ведь именно handle и все его дочерние переменные утечны.
В конце концов если речь о прелоаде - прелоадить надо то, что нагружает память. Були память не нагружают, нагружают память убогие конструкции
function Cond_02 takes nothing returns boolean
if not(YourCond==true) then
return false
else
return true
endif
endfunction
function Cond_03 takes nothing returns boolean
if not(YourCond==true) then
return false
else
return true
endif
endfunction
function Cond_01 takes nothing returns boolean
return And(Cond_02,Cond_03)
endfunction
Из-за таких вот массивных вызовов получается самый настоящий лютый капздец. Я как то делал переключение скиллов на гуи кнопками
Тоесть if Ability=="left arrow" then
if unitcur==one then
if unithas==twoforlearn then
change one to two
else
if unithas==threeforlearn then
change one to three
endif
endif
endif
как то так это все выглядело, только на гуи, и примерно в 40 раз больше, и вот именно тут вся веселуха и заключалась, казалось бы, не оперируется ни одним хэндлом (не создаются объекты), откуда утечки? Вы думаете були или булэкспры? Нет же, проблема в том что каждая функция, возвращавшая буль разветвлялась на две другие, а та еще на две другие. Всего условий было порядка 120. И да, это лагало. Не надо прелоадить були, надо оптимизировать методы.