Есть конкретная задача, которую хотелось бы решить при этом - исправление генерации дорог на шаблоне Jebus Cross.
С SDK от RoseKavalier, появляются какие-то шансы на это.
Вот показательный пример - карта с Seed =777777777 :
- Код: Выделить всё
int __stdcall SetSeed2(LoHook* h, HookContext* c)
{
c->eax = 777777777;
return EXEC_DEFAULT;
}
....
_PI->WriteLoHook(0x536637, SetSeed2 );
Здесь мы имеем и проход на смежный респ, которого быть не должно, и отсутствие дороги в центр, которая, естественно, должна быть:
Первое что хотелось бы попробовать сделать - это добавить на отмеченные тайлы непроходимый одноклеточный объект, например - бревно.
По идее, это сразу же должно полностью исправить генерацию, очень бы хотелось это проверить.
Но мне нужен пример кода добавления объекта на RMG tile.
Я так понимаю, это нужно делать через RMG_MapItem->objects, но я не понимаю как, т.к. там есть вложенные структуры и поля, которые я не знаю как заполнять.
Добавлять блок планирую здесь, прямо перед созданием дорожной сети:
- Код: Выделить всё
bool FirstRoad = false;
_LHF_(TestRMG)
{
if (FirstRoad) return EXEC_DEFAULT;
RMG_Main * rmg = (RMG_Main *)c->esi;
RMG_MapItem * xyz = rmg->map.GetMapItem(6, 67, 0);
//AddBlock(xyz);
FirstRoad = true;
return EXEC_DEFAULT;
}
....
_PI->WriteLoHook(0x548530, TestRMG );