void L1_MakeSectorActive() { lua_Object sectorObj = lua_getparam(1); if (!lua_isnumber(sectorObj) && !lua_isstring(sectorObj)) return; // FIXME: This happens on initial load. Are we initting something in the wrong order? if (!g_grim->getCurrScene()) { warning("!!!! Trying to call MakeSectorActive without a scene"); return; } bool visible = !lua_isnil(lua_getparam(2)); int numSectors = g_grim->getCurrScene()->getSectorCount(); if (lua_isstring(sectorObj)) { const char *name = lua_getstring(sectorObj); for (int i = 0; i < numSectors; i++) { Sector *sector = g_grim->getCurrScene()->getSectorBase(i); if (strmatch(sector->getName(), name)) { sector->setVisible(visible); return; } } } else if (lua_isnumber(sectorObj)) { int id = (int)lua_getnumber(sectorObj); for (int i = 0; i < numSectors; i++) { Sector *sector = g_grim->getCurrScene()->getSectorBase(i); if (sector->getSectorId() == id) { sector->setVisible(visible); return; } } } }