У меня созрел один большой вопрос при разборе исходника скрипта Mr. Fixit. Я добрался до вывода строчек диалога, которые в данном случае являются списком рецептов в главном меню этого мода, но я немного завис на вот этом вот фрагменте...
CODE |
... if (cur_pos + ITEMS_PER_SCREEN < items_avail - 1) then SayOption(bstr(105), list_next); ... procedure list_next begin cur_pos += ITEMS_PER_SCREEN; end |
Т.е. иными словами если выполняется условие "(cur_pos + ITEMS_PER_SCREEN < items_avail 1)" должна появиться кнопка "Следующая страница" , при нажатии которой будет вызываться процедура "list_next". Но в этой процедуре происходит только увелицение переменной, отвечающей за пропуск "предыдущих рецептов" (которые "как-бы" были на прошлых страницах) и все, тупик. На практике же видно, что после нажатия этой кнопки появляется следующая страница рецептов.
Я так понял, что когда диалог заходит в такой "тупик", то он начинается сначала, т.е. со сточки "SayStart", только с обновленными параметрами. Так ли это?