| 
 
				Наваял. "Скрытие_и_показ_героя" таки пригодилась. 
Code:
 proc DeleteTown uses ebx esi edi, x, y, l, addrCopyrv esi, GetTownStrucXYL, [x], [y], [l]; получаем структуру города
 .if [addrCopy]; задано копирование
 CopyMemory esi, [addrCopy], sizeof._Town_; копируем структуру города в заданный буфер
 .endif
 movsx edi, [esi + _Town_.Хозяин]
 movsx ebx, [esi + _Town_.Номер]
 mov ecx, [esi+_Town_.Номер_героя_гостя]
 .if signed ecx > -1
 GetHeroStruc ecx
 Скрытие_и_показ_героя eax, 0
 .endif
 mov eax, [y]
 dec eax; удаляем город с клетки выше входа, чтобы не задеть героя, стоящего во вратах
 DeleteObject [x], eax, [l]; удалить город
 mov eax, [x]
 dec eax
 DeleteObject eax, [y], [l]; удалить возможную левую Коновязь
 mov eax, [x]
 inc eax
 DeleteObject eax, [y], [l]; удалить возможную правую Коновязь
 .if edi <> -1; не нейтральный город
 rv esi, GetPlayerStruc, edi
 dec [esi+_Player_.Количество_городов]; вычесть 1 город
 .if bl = [esi+_Player_.Номер_активного_города]
 or [esi+_Player_.Номер_активного_города], -1;
 .endif
 mov al, bl
 lea edi, [esi+_Player_.Номера_городов]
 mov ecx, 48
 repne scasb
 lea eax, [edi-1]
 CopyMemory edi, eax, ecx; сдвигаем список номеров городов на 1 вперёд
 .endif
 mov esi, BASE
 add esi, 21614h
 mov ecx, 48
 mov edi, [esi]; - начало структур городов
 @@:
 cmp [edi + _Town_.Номер], bl
 je @f
 dec ecx
 add edi, sizeof._Town_
 jnz @b
 @@:
 mov eax, [esi+4]; конец структур
 sub eax, sizeof._Town_; переместиться к началу структуры последнего города
 CopyMemory eax, edi, sizeof._Town_; копировать данные последнего города на место освободившегося
 sub dword [esi+4], sizeof._Town_; структуры - уменьшить на одну
 sub dword [esi+8], sizeof._Town_; памяти под города - на 1 меньше
 dec Количество_городов_на_карте
 ret
 endp
 
Вариант, может, и не окончательный, но багов пока не заметил. Герой-гость спокойно остаётся на месте. Герой внутри города исчезает и его не найти нигде в Обзоре Королевства. Однако, на следующий день, если снаружи бегают не 8 героев игрока, он спокойно появляется на месте удалённого города. Если же внешних героев 8 - пропадает неизвестно куда. 
Остаётся выяснить, какие сюрпризы сулит копирование структуры удалённого города на место структуры вновь построенного.
			
 Circle of destruction, hammer comes crushing
 Powerhouse of energy
 Whipping up a fury, dominating flurry
 We create the battery
 |