TADS — объектно ориентированный язык программирования. Со всеми вытекающими оттуда последствиями. Комнаты и главный персонаж и вообще всё остальное написано на этом языке.
Флаги, на которые ты намекаешь, устанавливаются описанием свойства в классе.
cavern: room sdesc = "Скудно освещённая пещера" isMossed = true ldesc = { "В этой пещере темно и сыро. "; if (self.isMossed) "Слой мха на стенах служит пристанищем для каких-то насекомых. С "; else "Обнажённые стены покрыты росой, а с "; "потолка капает вода. "; } ;
В этом примере sdesc с точки зрения языка ничем не отличается от любого другого свойства объекта cavern. В том числе флага isMossed. И, по большому счёту, от ldesc (за исключением того, что ldesc это метод). ldesc показывает пример проверки флага isMossed. В зависимости от состояния флага, описание комнаты будет выглядеть по-разному. Если флаг нужно проверить из другого объекта, пиши cavern.isMossed.
Чтобы изменить состояние флага, присваиваешь ему нужное значение:
cavern.isMossed := nil;
ГП такой же объект, как и комната. Всё вышеописанное применимо к нему.
Неактивен