forked from mirror/openmw-tes3mp
Merge branch 'master' into inventoryGUI
This commit is contained in:
commit
1f85475536
3 changed files with 52 additions and 42 deletions
|
@ -482,6 +482,7 @@ void WindowManager::changeCell(MWWorld::Ptr::CellStore* cell)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
const ESM::Region* region = MWBase::Environment::get().getWorld()->getStore().regions.search(cell->cell->region);
|
const ESM::Region* region = MWBase::Environment::get().getWorld()->getStore().regions.search(cell->cell->region);
|
||||||
|
if (region)
|
||||||
name = region->name;
|
name = region->name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -86,7 +86,11 @@ namespace MWWorld
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!((*iter)->cell->data.flags & ESM::Cell::Interior))
|
if (!((*iter)->cell->data.flags & ESM::Cell::Interior))
|
||||||
|
{
|
||||||
|
ESM::Land* land = mWorld->getStore().lands.search((*iter)->cell->data.gridX,(*iter)->cell->data.gridY);
|
||||||
|
if (land)
|
||||||
mPhysics->removeHeightField( (*iter)->cell->data.gridX, (*iter)->cell->data.gridY );
|
mPhysics->removeHeightField( (*iter)->cell->data.gridX, (*iter)->cell->data.gridY );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
mRendering.removeCell(*iter);
|
mRendering.removeCell(*iter);
|
||||||
|
@ -122,6 +126,7 @@ namespace MWWorld
|
||||||
if (!(cell->cell->data.flags & ESM::Cell::Interior))
|
if (!(cell->cell->data.flags & ESM::Cell::Interior))
|
||||||
{
|
{
|
||||||
ESM::Land* land = mWorld->getStore().lands.search(cell->cell->data.gridX,cell->cell->data.gridY);
|
ESM::Land* land = mWorld->getStore().lands.search(cell->cell->data.gridX,cell->cell->data.gridY);
|
||||||
|
if (land)
|
||||||
mPhysics->addHeightField (land->landData->heights,
|
mPhysics->addHeightField (land->landData->heights,
|
||||||
cell->cell->data.gridX, cell->cell->data.gridY,
|
cell->cell->data.gridX, cell->cell->data.gridY,
|
||||||
0, ( worldsize/(verts-1) ), verts);
|
0, ( worldsize/(verts-1) ), verts);
|
||||||
|
@ -255,6 +260,9 @@ namespace MWWorld
|
||||||
void Scene::changeToInteriorCell (const std::string& cellName, const ESM::Position& position)
|
void Scene::changeToInteriorCell (const std::string& cellName, const ESM::Position& position)
|
||||||
{
|
{
|
||||||
std::cout << "Changing to interior\n";
|
std::cout << "Changing to interior\n";
|
||||||
|
|
||||||
|
Ptr::CellStore *cell = mWorld->getInterior(cellName);
|
||||||
|
|
||||||
// remove active
|
// remove active
|
||||||
CellStoreCollection::iterator active = mActiveCells.begin();
|
CellStoreCollection::iterator active = mActiveCells.begin();
|
||||||
|
|
||||||
|
@ -265,11 +273,9 @@ namespace MWWorld
|
||||||
|
|
||||||
// Load cell.
|
// Load cell.
|
||||||
std::cout << "cellName:" << cellName << std::endl;
|
std::cout << "cellName:" << cellName << std::endl;
|
||||||
Ptr::CellStore *cell = mWorld->getInterior(cellName);
|
|
||||||
|
|
||||||
loadCell (cell);
|
loadCell (cell);
|
||||||
|
|
||||||
|
|
||||||
// adjust player
|
// adjust player
|
||||||
mCurrentCell = cell;
|
mCurrentCell = cell;
|
||||||
playerCellChange (cell, position);
|
playerCellChange (cell, position);
|
||||||
|
|
|
@ -499,15 +499,17 @@ void WeatherManager::update(float duration)
|
||||||
mCurrentRegion = regionstr;
|
mCurrentRegion = regionstr;
|
||||||
mWeatherUpdateTime = WeatherGlobals::mWeatherUpdateTime*3600;
|
mWeatherUpdateTime = WeatherGlobals::mWeatherUpdateTime*3600;
|
||||||
|
|
||||||
std::string weather;
|
std::string weather = "clear";
|
||||||
|
|
||||||
if (mRegionOverrides.find(regionstr) != mRegionOverrides.end())
|
if (mRegionOverrides.find(regionstr) != mRegionOverrides.end())
|
||||||
weather = mRegionOverrides[regionstr];
|
weather = mRegionOverrides[regionstr];
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// get weather probabilities for the current region
|
// get weather probabilities for the current region
|
||||||
const ESM::Region *region = MWBase::Environment::get().getWorld()->getStore().regions.find (regionstr);
|
const ESM::Region *region = MWBase::Environment::get().getWorld()->getStore().regions.search (regionstr);
|
||||||
|
|
||||||
|
if (region != 0)
|
||||||
|
{
|
||||||
float clear = region->data.clear/255.f;
|
float clear = region->data.clear/255.f;
|
||||||
float cloudy = region->data.cloudy/255.f;
|
float cloudy = region->data.cloudy/255.f;
|
||||||
float foggy = region->data.foggy/255.f;
|
float foggy = region->data.foggy/255.f;
|
||||||
|
@ -545,6 +547,7 @@ void WeatherManager::update(float duration)
|
||||||
else
|
else
|
||||||
weather = "clear";
|
weather = "clear";
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
setWeather(weather, false);
|
setWeather(weather, false);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue