Интеграция

Нарисовал героя и даже сделав для него анимацию, попытался прикрутить его в основной проект.
Для начала пришлось все-таки переписать загрузчик для SWF, теперь он сразу создает нужный клип, название которого приходит ему качестве параметра: function loadclipfromserver(path, loadname,nameclip).

Затем пришлось в структуру(объект) creature добавить mcname,dx,dy,и все другие параметры для анимации
Теперь в функции moveCreature не сразу присваиваются _x и _y, а выполняется ряд действий (может и избыточных, но пока нужных)
creaturesList[i].animate = true;
creaturesList[i].animate_step = 0;
creaturesList[i].frameAnimate = 0;
creaturesList[i].nX = nx;
creaturesList[i].nY = ny;
creaturesList[i].lastTimer = getTimer();

При такой конструкции при перезагрузки основного клипа с уже сделанными ходами наблюдалась "рваные" прыжки, чуть подумав добавил опять же в moveCreature
if (creaturesList[i].animate && creaturesList[i].nX !=undefined)
{
creaturesList[i].x = creaturesList[i].nX;
creaturesList[i].y = creaturesList[i].nY;
}

А именно - завершение(форсирование) предыдущей анимации если она была.

Далее в многострадальную функцию runScene(), которая вызывается при onClipEnter т.е. при idle - вызов функции playAnimateCreatures() - которая и изменяет анимацию, а при ее истечению присваивает координатам существа новые значания.

Нашел также пару багов на серверной части:
1. При запрете передвижения
Было:
if (dx && dy && maybe)
{
if (!mazeAvaibleSquare(m,c->x+dx,c->y)) maybe=false;
if (!mazeAvaibleSquare(m,c->x,c->y+dy)) maybe=false;
}

Стало:
if (dx && dy && maybe)
{
if (!mazeAvaibleSquare(m,c->x+dx,c->y))
if (!mazeAvaibleSquare(m,c->x,c->y+dy)) maybe=false;
}

и дурацкая ошибка при обработки команды "goto" - внутри блока создавалась еще одна переменная ap=-1, она-то и возвращалась всегда, т.е. при любой ходьбе клиент получал что точки движения закончились.