Листинг:
;Описание структуры Structure CFigure ;Имя name.s ;Характеристики (базовые параметры) strength.b ;Сила endurance.b ;Выносливость intelligence.b ;Интеллект charisma.b ;Харизма luck.b ;Удача agility.b ;Ловкость ;Показатели (неактивные параметры) current_health.l ;Текущее здоровье max_health.l ;Максимальное здоровье armor_factor.l ;Коэффициент брони current_weight.l ;Текущая масса инвентаря max_weight.l ;Максимальная масса инвентаря action_points.l ;Очки действия reputation.l ;Репутация ;Навыки (производные параметры) cold_weapon.l ;Холодное оружие projectile.l ;Метательное оружие no_weapon.l ;Без оружия shoot_weapon.l ;Стреляющее оружие (огнестрельное и некоторое метательное оружие [лук и арбалет]) science.l ;Наука computers.l ;Компьютеры repair.l ;Ремонт breaking.l ;Взлом theft.l ;Кража barter.l ;Торговля belief.l ;Убеждение lie.l ;Ложь ;Достижения (бонусные параметры) battle_master.b ;Мастер боевых искусств super_person.b ;Сверхчеловек athlete.l ;Силач weapon_master.b ;Специалист по оружию doctor_of_science.b ;Доктор наук programmer.b ;Программист computer_user.b ;Оператор ЭВМ thief_in_law.b ;Вор в законе pickpocket.b ;Карманник speculator.b ;Аферист ;Инвентарь *armor ;Одетая броня или одежда *current_weapon ;Текущее оружие в руках *Bag_Item[120] ;Массив указателей на предметы EndStructure
Я пишу игру (что-то вроде рогалика) на PB, и у меня возникла проблема с реализацией инвентаря. Дело в том, что по игровым правилам, персонаж (фигура) может носить любое число предметов, суммарная масса которых (current_weight) не превышает максимально допустимой (max_weight). Однако, я столкнулся с проблемой: в PB нельзя описывать внутри структуры динамические массивы данных (связные списки, карты), и это не дает мне нормально реализовать инвентарь (динамический массив ссылок на предметы из глобального множества предметов сцены). Я могу реализовать что-то вроде линейного списка (ссылка на предыдущий, ссылка на следующий, значение), но это по-сути изобретение велосипеда, к тому-же требует реализации отдельной структурой. А я хотел бы привязать инвентарь строго к этой структуре. Как это можно сделать?
Отредактировано Dik_K (30.05.2013 23:41:03)