За вчера/сегодня полностью переписали Flash магазина, теперь покупку/продажу можно делать массово и даже одновременно, сначала прицениваясь, а потом одной кнопкой подтверждать.

Начали реализовывать «активируемые» способности, для этого нужно чтобы кнопка в Flash приобретала «нажатый» дизайн при включенной способности.
Т.к. Button вроде как MovieClip – было решение, приаттачить (attachMovieClip) к нему рамку – чтобы было видно что кнопка «нажата».
Но это был неправильный подход, т.к. Button в Flash – это Object, а не MovieClip.
Делаем новый чат и сейчас понадобились цвета, вообще история с чатом и цветами имеет самые долгие корни, но как выяснилось – увы, но это не то что надо.
Цвета – были ужасно похожими очень многие, а потому была составлена вручную палитра цветов (пока 50 штук), для героев.
Было сделана передача в клиент, цвета героя (определяется порядковым номером в лабиринте, тупо позицией в векторе m->creatures.
Передача осуществляется как и другие параметры, при запросе getinfo.
Пока внедрял на клиенте ограничения на стрельбу, наткнулся на кучу багов и мелких ошибок, причем тянулись они друг-за-другом.
Например, есть ограничение, что нельзя стрелять по невидимому противнику, невидимость противника сейчас на клиенте определяется чуть по другому, чем на сервере (на сервере используется алгоритм кругового обзора с прямыми лучами, а на клиенте упрощенный пока вариант – до цели меньше чем 4 клетки), была ошибка при движении невидимых противников – они все-же двигались.
Для успешного запуска бета-версии сервера, меня останавливало несколько сомнений. Одно из них было успешно вчера преодолено.
Это скорость прорисовки, дело в том, что прорисовка на моем домашнем компе (P4 3ГГц 2Гб ОЗУ) было мягко говоря, не очень. Прорисовывалось кусками, и хотя я давно решил потом переписать функцию обрисовки, все равно был осадок. Вроде как – зачем делать гавно?
Вчера буквально одним глазком просмотрев функцию makeMap тут же вставил парочку if - и скорость прорисовки возросла в разы! Это сразу дало мне ощутимый пинок для дальнейшего развития.
Доводим до ума арену, решил уменьшить ее размер (10x10) и сделать ее фиксированной вот, такого вида:
unsigned char pack[13]={255,7,88,111,133,149,86,90,104,191,1,254,7};
Собственно это сжатая на биты карта, для ее отображения небольшой код:
int TMap::MakeMapFromPack(unsigned char *pack)
{
int l =w*h;
int size_pack = l/8;
if (l % 8) size_pack++;
for(int j=0,i=0;i<size_pack;i++)
for(int k=0;k<8;k++)
if (j<l) Map[j++] = pack[i] & (1 << k);
}
Дорисовал набор предметов, которые можно найти в сундуке в подвале старейшины.
Это уже известный нож, ржавый доспех и ржавая каска. Т.е. ничего нового найти у старейшины не получится.
Вещи обладают незначительными характеристиками, нож - +5 к наносимому ущербу, каска - +5 к защите, доспех +10 к защите.

Начал реализовывать сбор вещей из сундуков, для начала нарисовал сундук в двух вариантах: закрытый и открытый
Думаю как реализовывать сундуки, есть два варианта:
Начал внедрять новые стены в лабиринте - которые состоят не из одного куба - а прорисованы по-разному.
Тут же понял, что мой код содержит кучу ошибок, которые пришлось исправлять налету (сейчас код исправлен) и есть живой пример рисования псевдографикой а-ля DOS (кодировка CP866)
В flash нарисовал такие вот стены:

Основная мысль - то что собирать образ персонажа из набора дополнительных картинок, которые визуализируют отдельные доспехи и оружие (ну и уникальные образы, пол/возраст персонажа).
Думаю попробовать реализовывать следующим образом:
Первым делом грузится основа, затем для загруженного клипа вызывается функция инициализации (интересно можно так напрямую, например mc.initAll()?) с передачей параметров, тех вещей, которые нужно загрузить.
Т.е. допустим амуниция/оружие рисуется на все кадры, анимация оружия только на режимах боя.