Дело не в пихании их в средину, а наоборот оптимизации читаемости и юзабельности.. мы, юзеры, ведь не для парсера пишем код, а выполняемое и редактируемое "рабочее тело".
Конечно, не скажу за всех, но основная часть ведь пишет код под игрушки
а в играх что главное? мобильность и быстрая адаптация под ситуацию.
[spoiler=Вот пример:]
//--------------------------------
#name "sand@Reval_v3.0"
LOGCLEAR
print("INITIALIZING...")
print("===SCRIPT===")
print("=looting Sand at Reval=")
print("..v3.0")
wait(1)
// === SET this area up! ===
$petslots = 8 // !!! needed by #bag_check
$boots = 1 // 1 if you have agility boots
// === unsetting area ===
$runcount = 0 //counts how meny runs done
$starttime = $_time_t //starting time
$grabslots = 40 - 1 - $boots + $petslots - 1 //free bag slots
//--- LIBS INCLUDES - must printed AFTER set up area!
#include "_Window_Rresize.cms" // GOSUB(window_resize)
#include "_system_info.cms" // GOSUB(time_passed ++ #suminfo)
#include "_Captcha.cms" // GOSUB(check_captcha)
#include "_Check_Bag.cms" // GOSUB(check_bag)
#include "_drop_chest.cms" // GOSUB(drop_to_chest)
//--------------------------------------
mainbody:
GOSUB(go_gather)
gathernow:
GOSUB(gather_this)
GOSUB(go_chest)
GOSUB(drop_to_chest)
goto(mainbody)
//halt // for single run
//------SUB going to gathering place-----------
SUB (go_gather)
HINTPOPUP("Wait while RUNNING!", "RUNNING!")
print("goin to gather")
===blah blah blah ===
END_SUB
//------SUB going to chest---------------
SUB (go_chest)
HINTPOPUP("Wait while RUNNING!", "RUNNING!")
print("goin to chest")
===blah blah blah ===
END_SUB
GOSUB(drop_to_chest)
//------SUB wait for gathering---------------
SUB (gather_this)
GOSUB(time_passed)
GETSCREEN
===blah blah blah===
wait(1)
END_SUB
//--------------------------------
[/spoiler]
Итак, вначале я задаю необходимые переменные (постоянные и редактируемые), потом инклуды (которые могут использовать эти переменные), а в некоторых инклудах уже заданы переменные или даже вызов подпрограмм (потому размещение их в начале вполне логично), но потом идёт "основное тело" выполнения (зацикленное), в котором идут ссылки на продпрограммы в конце скрипта!
В чём прок? Ситуация в игре может часто изменяться или я сам дорабатываю код, улучаю и оптимизирую, потому нужен постоянный доступ к переменным и порядку выполнения скрипта (что бы не скроллить каждый раз в самую "Ж.." файла.
Это была одна из основных фишек 4.7, когда вбивался в память весь текст скрипта, но теперь прийдётся переносить всё "главное" в самый низ и постоянно скроллить для редактирования
Хотя, с другой стороны, еще не известно какие идеи по оптимизации придут в голову после введения параметров в подпрограммах, возможно оно и к лучшему, но пока сижу на 4.7 (т.к. инклуды уже сократили размер скриптов раз в 5
)