WiccПо поводу раздвоения - можно попробовать сделать не удаление этого бага, а его лечилку.
Asm говорил что это из-за того что герой хранится в сейве (и в памяти) в двух местах - в списке героев и в списке объектов карты. Раздвоение происходит из-за того что координаты в одном месте отличаются от координат в другом, происходит "залипание" одной из копий.
Соответственно и лечится оно удалением той копии что на карте осталась. Чуть сложнее с замками, если герой раздвоился сидя там (у компа частенько бывает).
То есть можно сделать не устранялку причины бага, а лечилку оного при возникновении.
С замками тоже всё просто.
В структуре замка есть 2 байта - по одному под номер гарнизонного и посещающего героев. Если героя нет, то соответствующее число равно -1.
Следовательно, если гарнизонный герой совпадает с посещающим, то одного из них надо убрать.
Посещающий герой может выйти из замка, это распознаётся по координатам бегающего героя (не совпадает с координатами замка), тогда гарнизонного героя нужно вытереть.
Иногда оба героя умудряются вылезти из замка, тогда в структуре игрока (где хранится 8 бегающих героев) оказываются два одинаковых героя. Это тоже лечится, удалением одной из двух одинаковых рож.
А ещё такой герой может попасть в таверну к сопернику или компу, тогда два игрока будут управлять одним героем. К каким багам это может привести, никому не известно.
А главное, что всем вышеперечисленным баги не ограничиваются!
Есть ещё посерение замка, причём оно тоже бывает разным. Иногда игра вылетает при наведении мышкой на замок (даже без нажатия на клавиши). Один раз во время моего хода замок по очереди менял цвета всех игроков (от красного до пурпурного), причём играли при этом без компов.
Так что тень героя - это далеко не всё...
PS. У меня есть сейв (из оффлайна), где тень героя появляется при нажатии "просмотра хода соперника". Предоставлю по первому запросу.