class A
{
A(int);
};
class B
{
B( int b )
: A(b)
{}
};
class A
{
virtual void func();
};
class B : public A
{
virtual void func();
};
class C : public B
{
virtual void func()
{
... // какой-т код
A::func();
... /// ещё какой-то код
}
};
Бесшовную склейку тоже можно сделать "малой кровью", если между большими локациями содавать небольшие "склеивающие локации". Тогда в памяти нужно держать локацию, в которой находится игрок и все смежные с ней (или не все, а только те, к которым игрок ближе; локация не обязана быть четырёхугольной, смежных может быть хоть 20 штук). Переходишь в минилокацию - подгружаешь смежную мини-локацию. Переходишь в смежную мини-локацию, выгружаешь старую большую и загружаешь новую большую. Переходишь в новую большую и удаляешь старую мини-локацию. Но это я говорю о локациях типа 1000*1000 ячеек. Для 25*25 можно обойтись без мини-смежных и просто грузить соседние.