Выбрать главу

Окончательно функция стимуляции приобрела следующий вид:

nfBrainAction Operation (System.GetOperation (NEW_DIRECT_ACTION));

if (!Operation.m_lpDispatch) return;

nfImpact Delight (Operation.NewImpact (BRAIN_GLOBAL_PENETRATION));

if (Delight.m_lpDispatch!

{

Delight.SetOperationMode (om_Stimulation, TRUE);

Delight.SubGlobalTarget (LIMBUS);

nfImpactCoordinates Coordinates (Delight.GetPosition (HYPOTHALAMUS));

if (Coordinates.m_lpDispatch)

{

Delight.SetTargetCoordinates (Coordinates);

Delight.SetOperationType (ot_Pulse, ot_Point);

nfImpactParam Imparam (Delight.GetImpactParamDefinition());

if (Imparam.m_lpDispatch)

{

Imparam.SetImpulseIntensity (ii_Normal);

Imparam.HormoneCheckupOn (hc_Dopamine, FALSE);

Imparam.SetInterval (100);

Imparam.Update ();

}

}

else return;

for (int i=0; i<=600; i++) Delight.Activate ();

Clear ();

}

В 7:45 субботним утром бота, который до этого времени непрерывно развлекался с кнопкой «DLGHT», оторвали от пульта. «Малыш» долго приходил в себя. Его лихорадило.

Успокоившись, бот вернулся в депрессивное, полукататоническое состояние.

Тимур таращился на экран, на котором зависло сообщение. Секунды шли, но с ботом ничего не происходило. Время от времени он отключался, погружаясь в тяжелую дремоту. Потом просыпался и тянулся пальцами к пульту, на котором светилась кнопка «DLGHT».

— Ну, давай… давай же… — шептал Тимур. От напряжения у парня на висках выступили капли пота. — Запускай, ну… Догадайся!

После прекращения стимуляции у бота упал артериальное давление, началась брадикардия. Никто не знал доподлинно, то ли он дремлет, то ли теряет сознание.

Прошло несколько минут. Тимур повторил компиляцию. Процедура заново записалась на мозговой плате. И опять успешно — процессор принял код. Тем не менее бот не запускал модуль. Он или не понимал, или не хотел его активировать.

Алан и Хедхантер искоса поглядывали на Тимура.

— Я думаю, ему нужно время, — растерянно пробормотал программист. Хотя он подозревал, что проблема не во времени. Возможно, бот не может построить логическую цепочку «стимуляция — кнопка “DLGHT” — запрет пользоваться кнопкой — запись процедуры». — Он просто не улавливает суть процедуры.

— Попробуй добавить команду на самозапуск после компиляции, — предложил Алан.

Тимур вставил перед телом основной процедуры системную функцию — SetAutoRun (). Она автоматически запускала модуль на выполнение сразу после компиляции. И попробовал скомпилировать измененный код.

Результат получился ожидаемый. Реализованный Хортом функционал по обработке макросов заблокировал компиляцию. На информационной панели появился красный восклицательный знак и надпись: COMPILATION FAILED! ERROR 117: INVALID DESCRIPTOR.

— Оно не хочет компилироваться, — стиснув зубы, произнес Тимур.

— Вижу, — помрачнел Алан.

— Что означает эта ошибка? — ткнула пальцем в экран Лаура.

— INVALID DESCRIPTOR — неправильный указатель на функцию или процедуру. Компилятор не может затолкнуть в голову бота функцию SetAutoRun (). Соответственно, остальной код тоже остается не скомпилированным.

— И что теперь? — спросил из-за их спин Хедхантер.