OpenMW compiles and runs w/o render window

c++11
scrawl 10 years ago
parent 12f27123f2
commit 4e69e7cc0f

@ -328,9 +328,6 @@ endif (APPLE)
configure_file(${OpenMW_SOURCE_DIR}/files/settings-default.cfg
"${OpenMW_BINARY_DIR}/settings-default.cfg")
configure_file(${OpenMW_SOURCE_DIR}/files/transparency-overrides.cfg
"${OpenMW_BINARY_DIR}/transparency-overrides.cfg")
configure_file(${OpenMW_SOURCE_DIR}/files/openmw.cfg.local
"${OpenMW_BINARY_DIR}/openmw.cfg")
@ -433,7 +430,6 @@ IF(NOT WIN32 AND NOT APPLE)
# Install global configuration files
INSTALL(FILES "${OpenMW_BINARY_DIR}/settings-default.cfg" DESTINATION "${SYSCONFDIR}" COMPONENT "openmw")
INSTALL(FILES "${OpenMW_BINARY_DIR}/transparency-overrides.cfg" DESTINATION "${SYSCONFDIR}" COMPONENT "openmw")
INSTALL(FILES "${OpenMW_BINARY_DIR}/openmw.cfg.install" DESTINATION "${SYSCONFDIR}" RENAME "openmw.cfg" COMPONENT "openmw")
INSTALL(FILES "${OpenMW_BINARY_DIR}/gamecontrollerdb.txt" DESTINATION "${SYSCONFDIR}" COMPONENT "openmw")
@ -456,7 +452,6 @@ if(WIN32)
"${OpenMW_SOURCE_DIR}/Docs/license/GPL3.txt"
"${OpenMW_SOURCE_DIR}/Docs/license/DejaVu Font License.txt"
"${OpenMW_BINARY_DIR}/settings-default.cfg"
"${OpenMW_BINARY_DIR}/transparency-overrides.cfg"
"${OpenMW_BINARY_DIR}/gamecontrollerdb.txt"
"${OpenMW_BINARY_DIR}/Release/openmw.exe"
DESTINATION ".")
@ -549,7 +544,7 @@ add_subdirectory(libs/openengine)
# Extern
#add_subdirectory (extern/shiny)
#add_subdirectory (extern/ogre-ffmpeg-videoplayer)
#add_subdirectory (extern/oics)
add_subdirectory (extern/oics)
#add_subdirectory (extern/sdl4ogre)
# Components
@ -714,7 +709,6 @@ if (APPLE)
install(FILES "${OpenMW_BINARY_DIR}/openmw.cfg.install" RENAME "openmw.cfg" DESTINATION "${INSTALL_SUBDIR}" COMPONENT Runtime)
install(FILES "${OpenMW_BINARY_DIR}/settings-default.cfg" DESTINATION "${INSTALL_SUBDIR}" COMPONENT Runtime)
install(FILES "${OpenMW_BINARY_DIR}/gamecontrollerdb.txt" DESTINATION "${INSTALL_SUBDIR}" COMPONENT Runtime)
install(FILES "${OpenMW_BINARY_DIR}/transparency-overrides.cfg" DESTINATION "${INSTALL_SUBDIR}" COMPONENT Runtime)
install(FILES "${OpenMW_BINARY_DIR}/opencs.ini" DESTINATION "${INSTALL_SUBDIR}" COMPONENT Runtime)
set(CPACK_GENERATOR "DragNDrop")

@ -20,15 +20,16 @@ set(GAME_HEADER
source_group(game FILES ${GAME} ${GAME_HEADER})
add_openmw_dir (mwrender
renderingmanager debugging sky camera animation npcanimation creatureanimation activatoranimation
actors objects renderinginterface localmap occlusionquery water shadows
characterpreview globalmap ripplesimulation refraction
terrainstorage renderconst effectmanager weaponanimation
actors objects
# renderingmanager debugging sky camera animation npcanimation creatureanimation activatoranimation
# renderinginterface localmap occlusionquery water shadows
# characterpreview globalmap ripplesimulation refraction
# terrainstorage renderconst effectmanager weaponanimation
)
add_openmw_dir (mwinput
inputmanagerimp
)
#add_openmw_dir (mwinput
# inputmanagerimp
# )
add_openmw_dir (mwgui
textinput widgets race class birth review windowmanagerimp console dialogue
@ -57,16 +58,18 @@ add_openmw_dir (mwscript
)
add_openmw_dir (mwsound
soundmanagerimp openal_output ffmpeg_decoder sound sound_decoder sound_output loudness libavwrapper movieaudiofactory
soundmanagerimp openal_output ffmpeg_decoder sound sound_decoder sound_output loudness libavwrapper
# movieaudiofactory
)
add_openmw_dir (mwworld
refdata worldimp physicssystem scene globals class action nullaction actionteleport
refdata worldimp scene globals class action nullaction actionteleport
containerstore actiontalk actiontake manualref player cellfunctors failedaction
cells localscripts customdata weather inventorystore ptr actionopen actionread
cells localscripts customdata inventorystore ptr actionopen actionread
actionequip timestamp actionalchemy cellstore actionapply actioneat
esmstore store recordcmp fallback actionrepair actionsoulgem livecellref actiondoor
contentloader esmloader actiontrap cellreflist projectilemanager cellref
contentloader esmloader actiontrap cellreflist cellref physicssystem
# weather projectilemanager
)
add_openmw_dir (mwclass
@ -75,10 +78,11 @@ add_openmw_dir (mwclass
)
add_openmw_dir (mwmechanics
mechanicsmanagerimp stat character creaturestats magiceffects movement actors objects
mechanicsmanagerimp stat creaturestats magiceffects movement
drawstate spells activespells npcstats aipackage aisequence aipursue alchemy aiwander aitravel aifollow aiavoiddoor
aiescort aiactivate aicombat repair enchanting pathfinding pathgrid security spellsuccess spellcasting
disease pickpocket levelledlist combat steering obstacle autocalcspell difficultyscaling aicombataction actor summoning
# character actors objects
)
add_openmw_dir (mwstate
@ -133,9 +137,7 @@ target_link_libraries(openmw
${MYGUI_LIBRARIES}
${SDL2_LIBRARY}
${MYGUI_PLATFORM_LIBRARIES}
"ogre-ffmpeg-videoplayer"
"oics"
"sdl4ogre"
components
)

@ -14,17 +14,14 @@
#include <components/compiler/extensions0.hpp>
#include <components/bsa/resources.hpp>
#include <components/files/configurationmanager.hpp>
#include <components/translation/translation.hpp>
#include <components/nifoverrides/nifoverrides.hpp>
#include <components/nifbullet/bulletnifloader.hpp>
#include <components/nifogre/ogrenifloader.hpp>
#include <components/esm/loadcell.hpp>
#include "mwinput/inputmanagerimp.hpp"
//#include "mwinput/inputmanagerimp.hpp"
#include "mwgui/windowmanagerimp.hpp"
@ -86,12 +83,12 @@ bool OMW::Engine::frameRenderingQueued (const Ogre::FrameEvent& evt)
mEnvironment.setFrameDuration (frametime);
// update input
MWBase::Environment::get().getInputManager()->update(frametime, false);
//MWBase::Environment::get().getInputManager()->update(frametime, false);
// When the window is minimized, pause everything. Currently this *has* to be here to work around a MyGUI bug.
// If we are not currently rendering, then RenderItems will not be reused resulting in a memory leak upon changing widget textures.
if (!mOgre->getWindow()->isActive() || !mOgre->getWindow()->isVisible())
return true;
//if (!mOgre->getWindow()->isActive() || !mOgre->getWindow()->isVisible())
// return true;
// sound
if (mUseSound)
@ -157,11 +154,12 @@ bool OMW::Engine::frameRenderingQueued (const Ogre::FrameEvent& evt)
if (MWBase::Environment::get().getStateManager()->getState()!=
MWBase::StateManager::State_NoGame)
{
#if 0
Ogre::RenderWindow* window = mOgre->getWindow();
unsigned int tri, batch;
MWBase::Environment::get().getWorld()->getTriangleBatchCount(tri, batch);
MWBase::Environment::get().getWindowManager()->wmUpdateFps(window->getLastFPS(), tri, batch);
#endif
MWBase::Environment::get().getWindowManager()->update();
}
}
@ -210,11 +208,8 @@ OMW::Engine::Engine(Files::ConfigurationManager& configurationManager)
OMW::Engine::~Engine()
{
if (mOgre)
mOgre->restoreWindowGammaRamp();
mEnvironment.cleanup();
delete mScriptContext;
delete mOgre;
SDL_Quit();
}
@ -223,14 +218,10 @@ OMW::Engine::~Engine()
void OMW::Engine::addResourcesDirectory (const boost::filesystem::path& path)
{
mOgre->getRoot()->addResourceLocation (path.string(), "FileSystem",
Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME, true);
}
void OMW::Engine::addZipResource (const boost::filesystem::path& path)
{
mOgre->getRoot()->addResourceLocation (path.string(), "Zip",
Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME, false);
}
void OMW::Engine::enableFSStrict(bool fsStrict)
@ -299,19 +290,6 @@ std::string OMW::Engine::loadSettings (Settings::Manager & settings)
if (boost::filesystem::exists(settingspath))
settings.loadUser(settingspath);
// load nif overrides
NifOverrides::Overrides nifOverrides;
std::string transparencyOverrides = "/transparency-overrides.cfg";
std::string materialOverrides = "/material-overrides.cfg";
if (boost::filesystem::exists(mCfgMgr.getLocalPath().string() + transparencyOverrides))
nifOverrides.loadTransparencyOverrides(mCfgMgr.getLocalPath().string() + transparencyOverrides);
else if (boost::filesystem::exists(mCfgMgr.getGlobalPath().string() + transparencyOverrides))
nifOverrides.loadTransparencyOverrides(mCfgMgr.getGlobalPath().string() + transparencyOverrides);
if (boost::filesystem::exists(mCfgMgr.getLocalPath().string() + materialOverrides))
nifOverrides.loadMaterialOverrides(mCfgMgr.getLocalPath().string() + materialOverrides);
else if (boost::filesystem::exists(mCfgMgr.getGlobalPath().string() + materialOverrides))
nifOverrides.loadMaterialOverrides(mCfgMgr.getGlobalPath().string() + materialOverrides);
return settingspath;
}
@ -330,13 +308,6 @@ void OMW::Engine::prepareEngine (Settings::Manager & settings)
#endif
}
mOgre = new OEngine::Render::OgreRenderer;
mOgre->configure(
mCfgMgr.getLogPath().string(),
renderSystem,
Settings::Manager::getString("opengl rtt mode", "Video"));
// This has to be added BEFORE MyGUI is initialized, as it needs
// to find core.xml here.
@ -361,9 +332,7 @@ void OMW::Engine::prepareEngine (Settings::Manager & settings)
SDL_SetHint(SDL_HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS,
settings.getBool("minimize on focus loss", "Video") ? "1" : "0");
mOgre->createWindow("OpenMW", windowSettings);
Bsa::registerResources (mFileCollections, mArchives, true, mFSStrict);
//Bsa::registerResources (mFileCollections, mArchives, true, mFSStrict);
// Create input and UI first to set up a bootstrapping environment for
// showing a loading screen and keeping the window responsive while doing so
@ -390,19 +359,17 @@ void OMW::Engine::prepareEngine (Settings::Manager & settings)
else
gameControllerdb = ""; //if it doesn't exist, pass in an empty string
MWInput::InputManager* input = new MWInput::InputManager (*mOgre, *this, keybinderUser, keybinderUserExists, gameControllerdb, mGrab);
mEnvironment.setInputManager (input);
//MWInput::InputManager* input = new MWInput::InputManager (*mOgre, *this, keybinderUser, keybinderUserExists, gameControllerdb, mGrab);
//mEnvironment.setInputManager (input);
MWGui::WindowManager* window = new MWGui::WindowManager(
mExtensions, mOgre, mCfgMgr.getLogPath().string() + std::string("/"),
mExtensions, NULL, mCfgMgr.getLogPath().string() + std::string("/"),
mCfgMgr.getCachePath ().string(), mScriptConsoleMode, mTranslationDataStorage, mEncoding, mExportFonts, mFallbackMap);
mEnvironment.setWindowManager (window);
// Create sound system
mEnvironment.setSoundManager (new MWSound::SoundManager(mUseSound));
mOgre->setWindowGammaContrast(Settings::Manager::getFloat("gamma", "General"), Settings::Manager::getFloat("contrast", "General"));
if (!mSkipMenu)
{
std::string logo = mFallbackMap["Movies_Company_Logo"];
@ -411,11 +378,11 @@ void OMW::Engine::prepareEngine (Settings::Manager & settings)
}
// Create the world
mEnvironment.setWorld( new MWWorld::World (*mOgre, mFileCollections, mContentFiles,
mEnvironment.setWorld( new MWWorld::World (mFileCollections, mContentFiles,
mResDir, mCfgMgr.getCachePath(), mEncoder, mFallbackMap,
mActivationDistanceOverride, mCellName, mStartupScript));
MWBase::Environment::get().getWorld()->setupPlayer();
input->setPlayer(&mEnvironment.getWorld()->getPlayer());
//input->setPlayer(&mEnvironment.getWorld()->getPlayer());
window->initUI();
window->renderWorldMap();
@ -443,7 +410,7 @@ void OMW::Engine::prepareEngine (Settings::Manager & settings)
mEnvironment.setJournal (new MWDialogue::Journal);
mEnvironment.setDialogueManager (new MWDialogue::DialogueManager (mExtensions, mVerboseScripts, mTranslationDataStorage));
mOgre->getRoot()->addFrameListener (this);
//mOgre->getRoot()->addFrameListener (this);
// scripts
if (mCompileAll)
@ -473,7 +440,7 @@ void OMW::Engine::prepareEngine (Settings::Manager & settings)
void OMW::Engine::go()
{
assert (!mContentFiles.empty());
assert (!mOgre);
//assert (!mOgre);
Settings::Manager settings;
std::string settingspath;
@ -514,6 +481,7 @@ void OMW::Engine::go()
}
// Start the main rendering loop
/*
Ogre::Timer timer;
while (!MWBase::Environment::get().getStateManager()->hasQuitRequest())
{
@ -523,6 +491,8 @@ void OMW::Engine::go()
timer.reset();
Ogre::Root::getSingleton().renderOneFrame(dt);
}
*/
// Save user settings
settings.saveUser(settingspath);
@ -577,7 +547,7 @@ void OMW::Engine::screenshot()
} while (boost::filesystem::exists(stream.str()));
mOgre->screenshot(stream.str(), format);
//mOgre->screenshot(stream.str(), format);
}
void OMW::Engine::setCompileAll (bool all)

@ -98,7 +98,7 @@ namespace OMW
bool mScriptBlacklistUse;
bool mNewGame;
Nif::Cache mNifCache;
//Nif::Cache mNifCache;
// not implemented
Engine (const Engine&);

@ -163,17 +163,17 @@ namespace MWClass
void Creature::insertObjectRendering (const MWWorld::Ptr& ptr, const std::string& model, MWRender::RenderingInterface& renderingInterface) const
{
MWWorld::LiveCellRef<ESM::Creature> *ref = ptr.get<ESM::Creature>();
//MWWorld::LiveCellRef<ESM::Creature> *ref = ptr.get<ESM::Creature>();
MWRender::Actors& actors = renderingInterface.getActors();
actors.insertCreature(ptr, model, (ref->mBase->mFlags & ESM::Creature::Weapon) != 0);
//MWRender::Actors& actors = renderingInterface.getActors();
//actors.insertCreature(ptr, model, (ref->mBase->mFlags & ESM::Creature::Weapon) != 0);
}
void Creature::insertObject(const MWWorld::Ptr& ptr, const std::string& model, MWWorld::PhysicsSystem& physics) const
{
if(!model.empty())
{
physics.addActor(ptr, model);
//physics.addActor(ptr, model);
if (getCreatureStats(ptr).isDead())
MWBase::Environment::get().getWorld()->enableActorCollision(ptr, false);
}

@ -3,8 +3,6 @@
#include <memory>
#include <OgreSceneNode.h>
#include <openengine/misc/rng.hpp>
#include <components/esm/loadmgef.hpp>
@ -1151,9 +1149,9 @@ namespace MWClass
if (ptr.getClass().getNpcStats(ptr).isWerewolf()
&& ptr.getClass().getCreatureStats(ptr).getStance(MWMechanics::CreatureStats::Stance_Run))
{
MWMechanics::WeaponType weaponType = MWMechanics::WeapType_None;
MWMechanics::getActiveWeapon(ptr.getClass().getCreatureStats(ptr), ptr.getClass().getInventoryStore(ptr), &weaponType);
if (weaponType == MWMechanics::WeapType_None)
//MWMechanics::WeaponType weaponType = MWMechanics::WeapType_None;
//MWMechanics::getActiveWeapon(ptr.getClass().getCreatureStats(ptr), ptr.getClass().getInventoryStore(ptr), &weaponType);
//if (weaponType == MWMechanics::WeapType_None)
return "";
}

@ -183,7 +183,7 @@ namespace MWGui
const ESM::BirthSign *birth =
store.get<ESM::BirthSign>().find(mCurrentBirthId);
mBirthImage->setImageTexture(Misc::ResourceHelpers::correctTexturePath(birth->mTexture));
//mBirthImage->setImageTexture(Misc::ResourceHelpers::correctTexturePath(birth->mTexture));
std::vector<std::string> abilities, powers, spells;

@ -5,8 +5,6 @@
#include <MyGUI_RotatingSkin.h>
#include <MyGUI_Gui.h>
#include <OgreMath.h>
namespace MWGui
{

@ -1,8 +1,5 @@
#include "formatting.hpp"
#include <OgreUTFString.h>
#include <OgreResourceGroupManager.h>
#include <MyGUI_EditText.h>
#include <MyGUI_Gui.h>
#include <MyGUI_EditBox.h>
@ -466,7 +463,7 @@ namespace MWGui
MyGUI::IntCoord(left, pag.getCurrentTop(), width, mImageHeight), MyGUI::Align::Left | MyGUI::Align::Top,
parent->getName() + MyGUI::utility::toString(parent->getChildCount()));
std::string image = Misc::ResourceHelpers::correctBookartPath(src, width, mImageHeight);
std::string image;// = Misc::ResourceHelpers::correctBookartPath(src, width, mImageHeight);
mImageBox->setImageTexture(image);
mImageBox->setProperty("NeedMouse", "false");
}

@ -448,7 +448,7 @@ namespace MWGui
std::string icon = effect->mIcon;
int slashPos = icon.rfind('\\');
icon.insert(slashPos+1, "b_");
icon = Misc::ResourceHelpers::correctIconPath(icon);
//icon = Misc::ResourceHelpers::correctIconPath(icon);
mSpellImage->setItem(MWWorld::Ptr());
mSpellImage->setIcon(icon);

@ -53,7 +53,9 @@ namespace MWGui
, mTrading(false)
, mLastXSize(0)
, mLastYSize(0)
#if 0
, mPreview(new MWRender::InventoryPreview(MWBase::Environment::get().getWorld ()->getPlayerPtr()))
#endif
, mPreviewDirty(true)
, mPreviewResize(true)
, mDragAndDrop(dragAndDrop)
@ -118,10 +120,10 @@ namespace MWGui
MyGUI::ITexture* tex = MyGUI::RenderManager::getInstance().getTexture("CharacterPreview");
if (tex)
MyGUI::RenderManager::getInstance().destroyTexture(tex);
#if 0
mPreview.reset(new MWRender::InventoryPreview(mPtr));
mPreview->setup();
#endif
mPreviewDirty = true;
mPreviewResize = true;
}
@ -481,6 +483,8 @@ namespace MWGui
MWWorld::Ptr InventoryWindow::getAvatarSelectedItem(int x, int y)
{
return MWWorld::Ptr();
#if 0
int slot = mPreview->getSlotSelected (x, y);
if (slot == -1)
@ -499,6 +503,7 @@ namespace MWGui
}
return MWWorld::Ptr();
#endif
}
void InventoryWindow::updateEncumbranceBar()
@ -526,6 +531,7 @@ namespace MWGui
void InventoryWindow::doRenderUpdate ()
{
#if 0
mPreview->onFrame();
if (mPreviewResize || mPreviewDirty)
@ -552,6 +558,7 @@ namespace MWGui
mAvatarImage->setImageTexture("CharacterPreview");
}
#endif
}
void InventoryWindow::notifyContentChanged()
@ -668,6 +675,8 @@ namespace MWGui
void InventoryWindow::rebuildAvatar()
{
#if 0
mPreview->rebuild();
#endif
}
}

@ -77,7 +77,7 @@ namespace MWGui
void ItemWidget::setIcon(const MWWorld::Ptr &ptr)
{
setIcon(Misc::ResourceHelpers::correctIconPath(ptr.getClass().getInventoryIcon(ptr)));
//setIcon(Misc::ResourceHelpers::correctIconPath(ptr.getClass().getInventoryIcon(ptr)));
}

@ -212,6 +212,7 @@ namespace MWGui
void LocalMapBase::applyFogOfWar()
{
#if 0
for (int mx=0; mx<3; ++mx)
{
for (int my=0; my<3; ++my)
@ -225,6 +226,7 @@ namespace MWGui
: "");
}
}
#endif
redraw();
}
@ -338,6 +340,7 @@ namespace MWGui
mDoorMarkerWidgets.clear();
// Update the map textures
#if 0
for (int mx=0; mx<3; ++mx)
{
for (int my=0; my<3; ++my)
@ -354,7 +357,7 @@ namespace MWGui
box->setImageTexture("black.png");
}
}
#endif
MWBase::World* world = MWBase::Environment::get().getWorld();
// Retrieve the door markers we want to show
@ -558,7 +561,7 @@ namespace MWGui
, LocalMapBase(customMarkers)
, mGlobal(false)
, mGlobalMap(0)
, mGlobalMapRender(0)
//, mGlobalMapRender(0)
, mEditNoteDialog()
, mEventBoxGlobal(NULL)
, mEventBoxLocal(NULL)
@ -705,18 +708,19 @@ namespace MWGui
void MapWindow::renderGlobalMap(Loading::Listener* loadingListener)
{
#if 0
mGlobalMapRender = new MWRender::GlobalMap("");
mGlobalMapRender->render(loadingListener);
mGlobalMap->setCanvasSize (mGlobalMapRender->getWidth(), mGlobalMapRender->getHeight());
mGlobalMapImage->setSize(mGlobalMapRender->getWidth(), mGlobalMapRender->getHeight());
mGlobalMapImage->setImageTexture("GlobalMap.png");
mGlobalMapOverlay->setImageTexture("GlobalMapOverlay");
#endif
}
MapWindow::~MapWindow()
{
delete mGlobalMapRender;
//delete mGlobalMapRender;
}
void MapWindow::setCellName(const std::string& cellName)
@ -726,6 +730,7 @@ namespace MWGui
void MapWindow::addVisitedLocation(const std::string& name, int x, int y)
{
#if 0
CellId cell;
cell.first = x;
cell.second = y;
@ -752,6 +757,7 @@ namespace MWGui
markerWidget->eventMouseDrag += MyGUI::newDelegate(this, &MapWindow::onMouseDrag);
markerWidget->eventMouseButtonPressed += MyGUI::newDelegate(this, &MapWindow::onDragStart);
}
#endif
}
void MapWindow::cellExplored(int x, int y)
@ -763,10 +769,12 @@ namespace MWGui
{
LocalMapBase::onFrame(dt);
#if 0
for (std::vector<CellId>::iterator it = mQueuedToExplore.begin(); it != mQueuedToExplore.end(); ++it)
{
mGlobalMapRender->exploreCell(it->first, it->second);
}
#endif
mQueuedToExplore.clear();
NoDrop::onFrame(dt);
@ -823,12 +831,14 @@ namespace MWGui
void MapWindow::globalMapUpdatePlayer ()
{
#if 0
// For interiors, position is set by WindowManager via setGlobalMapPlayerPosition
if (MWBase::Environment::get().getWorld ()->isCellExterior ())
{
Ogre::Vector3 pos = MWBase::Environment::get().getWorld ()->getPlayerPtr().getRefData ().getBaseNode ()->_getDerivedPosition ();
setGlobalMapPlayerPosition(pos.x, pos.y);
}
#endif
}
void MapWindow::notifyPlayerUpdate ()
@ -838,6 +848,7 @@ namespace MWGui
void MapWindow::setGlobalMapPlayerPosition(float worldX, float worldY)
{
#if 0
float x, y;
mGlobalMapRender->worldPosToImageSpace (worldX, worldY, x, y);
x *= mGlobalMapRender->getWidth();
@ -849,6 +860,7 @@ namespace MWGui
MyGUI::IntSize viewsize = mGlobalMap->getSize();
MyGUI::IntPoint viewoffs(static_cast<int>(viewsize.width * 0.5f - x), static_cast<int>(viewsize.height *0.5 - y));
mGlobalMap->setViewOffset(viewoffs);
#endif
}
void MapWindow::setGlobalMapPlayerDir(const float x, const float y)
@ -863,7 +875,8 @@ namespace MWGui
void MapWindow::clear()
{
mMarkers.clear();
mGlobalMapRender->clear();
//mGlobalMapRender->clear();
mChanged = true;
while (mEventBoxGlobal->getChildCount())
@ -872,6 +885,7 @@ namespace MWGui
void MapWindow::write(ESM::ESMWriter &writer, Loading::Listener& progress)
{
#if 0
ESM::GlobalMap map;
mGlobalMapRender->write(map);
@ -880,10 +894,12 @@ namespace MWGui
writer.startRecord(ESM::REC_GMAP);
map.save(writer);
writer.endRecord(ESM::REC_GMAP);
#endif
}
void MapWindow::readRecord(ESM::ESMReader &reader, uint32_t type)
{
#if 0
if (type == ESM::REC_GMAP)
{
ESM::GlobalMap map;
@ -898,6 +914,7 @@ namespace MWGui
addVisitedLocation(cell->mName, it->first, it->second);
}
}
#endif
}
void MapWindow::setAlpha(float alpha)

@ -216,7 +216,7 @@ namespace MWGui
MyGUI::Button* mEventBoxGlobal;
MyGUI::Button* mEventBoxLocal;
MWRender::GlobalMap* mGlobalMapRender;
//MWRender::GlobalMap* mGlobalMapRender;
EditNoteDialog mEditNoteDialog;
ESM::CustomMarker mEditingMarker;

@ -245,7 +245,7 @@ namespace MWGui
std::string path = effect->mIcon;
int slashPos = path.rfind('\\');
path.insert(slashPos+1, "b_");
path = Misc::ResourceHelpers::correctIconPath(path);
//path = Misc::ResourceHelpers::correctIconPath(path);
button->setFrame("textures\\menu_icon_select_magic.dds", MyGUI::IntCoord(2, 2, 40, 40));
button->setIcon(path);

@ -125,18 +125,19 @@ namespace MWGui
updateSkills();
updateSpellPowers();
mPreview.reset(NULL);
//mPreview.reset(NULL);
mPreviewImage->setImageTexture("");
const std::string textureName = "CharacterHeadPreview";
MyGUI::RenderManager::getInstance().destroyTexture(MyGUI::RenderManager::getInstance().getTexture(textureName));
mPreview.reset(new MWRender::RaceSelectionPreview());
mPreview->setup();
mPreview->update (mCurrentAngle);
//mPreview.reset(new MWRender::RaceSelectionPreview());
//mPreview->setup();
//mPreview->update (mCurrentAngle);
const ESM::NPC proto = mPreview->getPrototype();
//const ESM::NPC& proto = mPreview->getPrototype();
ESM::NPC proto;
setRaceId(proto.mRace);
recountParts();
@ -184,7 +185,7 @@ namespace MWGui
mPreviewImage->setImageTexture("");
const std::string textureName = "CharacterHeadPreview";
MyGUI::RenderManager::getInstance().destroyTexture(MyGUI::RenderManager::getInstance().getTexture(textureName));
mPreview.reset(NULL);
//mPreview.reset(NULL);
}
// widget controls
@ -204,7 +205,7 @@ namespace MWGui
void RaceDialog::onHeadRotate(MyGUI::ScrollBar* scroll, size_t _position)
{
float angle = (float(_position) / (scroll->getScrollRange()-1) - 0.5f) * 3.14f * 2;
mPreview->update (angle);
//mPreview->update (angle);
mPreviewDirty = true;
mCurrentAngle = angle;
}
@ -316,7 +317,7 @@ namespace MWGui
void RaceDialog::updatePreview()
{
ESM::NPC record = mPreview->getPrototype();
ESM::NPC record;// = mPreview->getPrototype();
record.mRace = mCurrentRaceId;
record.setIsMale(mGenderIndex == 0);
@ -325,7 +326,7 @@ namespace MWGui
try
{
mPreview->setPrototype(record);
//mPreview->setPrototype(record);
}
catch (std::exception& e)
{
@ -337,13 +338,13 @@ namespace MWGui
void RaceDialog::doRenderUpdate()
{
if (!mPreview.get())
//if (!mPreview.get())
return;
mPreview->onFrame();
//mPreview->onFrame();
if (mPreviewDirty)
{
mPreview->render();
//mPreview->render();
mPreviewDirty = false;
}
}
@ -450,6 +451,8 @@ namespace MWGui
const ESM::NPC& RaceDialog::getResult() const
{
return mPreview->getPrototype();
static ESM::NPC result;
return result;
//return mPreview->getPrototype();
}
}

@ -108,7 +108,7 @@ namespace MWGui
float mCurrentAngle;
std::auto_ptr<MWRender::RaceSelectionPreview> mPreview;
//std::auto_ptr<MWRender::RaceSelectionPreview> mPreview;
bool mPreviewDirty;
};

@ -358,7 +358,7 @@ namespace MWGui
<< " " << hour << " " << (pm ? "#{sSaveMenuHelp05}" : "#{sSaveMenuHelp04}");
mInfoText->setCaptionWithReplacing(text.str());
#if 0
// Decode screenshot
std::vector<char> data = mCurrentSlot->mProfile.mScreenshot; // MemoryDataStream doesn't work with const data :(
Ogre::DataStreamPtr stream(new Ogre::MemoryDataStream(&data[0], data.size()));
@ -382,5 +382,6 @@ namespace MWGui
texture->loadImage(image);
mScreenshot->setImageTexture(textureName);
#endif
}
}

@ -180,7 +180,7 @@ namespace MWGui
void EditEffectDialog::setMagicEffect (const ESM::MagicEffect *effect)
{
mEffectImage->setImageTexture(Misc::ResourceHelpers::correctIconPath(effect->mIcon));
//mEffectImage->setImageTexture(Misc::ResourceHelpers::correctIconPath(effect->mIcon));
mEffectName->setCaptionWithReplacing("#{"+ESM::MagicEffect::effectIdToString (effect->mIndex)+"}");

@ -145,7 +145,7 @@ namespace MWGui
("ImageBox", MyGUI::IntCoord(w,2,16,16), MyGUI::Align::Default);
mWidgetMap[it->first] = image;
image->setImageTexture(Misc::ResourceHelpers::correctIconPath(effect->mIcon));
//image->setImageTexture(Misc::ResourceHelpers::correctIconPath(effect->mIcon));
std::string name = ESM::MagicEffect::effectIdToString (it->first);

@ -388,7 +388,7 @@ namespace MWGui
const int imageCaptionHPadding = (caption != "" ? 8 : 0);
const int imageCaptionVPadding = (caption != "" ? 4 : 0);
std::string realImage = Misc::ResourceHelpers::correctIconPath(image);
std::string realImage;// = Misc::ResourceHelpers::correctIconPath(image);
MyGUI::EditBox* captionWidget = mDynamicToolTipBox->createWidget<MyGUI::EditBox>("NormalText", MyGUI::IntCoord(0, 0, 300, 300), MyGUI::Align::Left | MyGUI::Align::Top, "ToolTipCaption");
captionWidget->setProperty("Static", "true");
@ -686,7 +686,7 @@ namespace MWGui
widget->setUserString("ToolTipType", "Layout");
widget->setUserString("ToolTipLayout", "BirthSignToolTip");
widget->setUserString("ImageTexture_BirthSignImage", Misc::ResourceHelpers::correctTexturePath(sign->mTexture));
widget->setUserString("ImageTexture_BirthSignImage", "");//Misc::ResourceHelpers::correctTexturePath(sign->mTexture));
std::string text;
text += sign->mName;
@ -781,7 +781,7 @@ namespace MWGui
std::string icon = effect->mIcon;
int slashPos = icon.rfind('\\');
icon.insert(slashPos+1, "b_");
icon = Misc::ResourceHelpers::correctIconPath(icon);
//icon = Misc::ResourceHelpers::correctIconPath(icon);
widget->setUserString("ToolTipType", "Layout");
widget->setUserString("ToolTipLayout", "MagicEffectToolTip");

@ -1,51 +1,51 @@
#include "videowidget.hpp"
#include <extern/ogre-ffmpeg-videoplayer/videoplayer.hpp>
//#include <extern/ogre-ffmpeg-videoplayer/videoplayer.hpp>
#include <MyGUI_RenderManager.h>
#include "../mwsound/movieaudiofactory.hpp"
//#include "../mwsound/movieaudiofactory.hpp"
namespace MWGui
{
VideoWidget::VideoWidget()
{
mPlayer.reset(new Video::VideoPlayer());
//mPlayer.reset(new Video::VideoPlayer());
setNeedKeyFocus(true);
}
void VideoWidget::playVideo(const std::string &video)
{
mPlayer->setAudioFactory(new MWSound::MovieAudioFactory());
mPlayer->playVideo(video);
//mPlayer->setAudioFactory(new MWSound::MovieAudioFactory());
//mPlayer->playVideo(video);
setImageTexture(mPlayer->getTextureName());
//setImageTexture(mPlayer->getTextureName());
}
int VideoWidget::getVideoWidth()
{
return mPlayer->getVideoWidth();
return 0;//mPlayer->getVideoWidth();
}
int VideoWidget::getVideoHeight()
{
return mPlayer->getVideoHeight();
return 0;//mPlayer->getVideoHeight();
}
bool VideoWidget::update()
{
return mPlayer->update();
return 0;//mPlayer->update();
}
void VideoWidget::stop()
{
mPlayer->close();
//mPlayer->close();
}
bool VideoWidget::hasAudioStream()
{
return mPlayer->hasAudioStream();
return 0;//mPlayer->hasAudioStream();
}
void VideoWidget::autoResize(bool stretch)

@ -42,7 +42,7 @@ namespace MWGui
void autoResize (bool stretch);
private:
std::auto_ptr<Video::VideoPlayer> mPlayer;
//std::auto_ptr<Video::VideoPlayer> mPlayer;
};
}

@ -474,7 +474,7 @@ namespace MWGui
mTextWidget->setCaptionWithReplacing(spellLine);
mRequestedWidth = mTextWidget->getTextSize().width + 24;
mImageWidget->setImageTexture(Misc::ResourceHelpers::correctIconPath(magicEffect->mIcon));
//mImageWidget->setImageTexture(Misc::ResourceHelpers::correctIconPath(magicEffect->mIcon));
}
MWSpellEffect::~MWSpellEffect()

@ -19,11 +19,12 @@
#include <MyGUI_ClipboardManager.h>
#include <MyGUI_RenderManager.h>
#include <MyGUI_DummyPlatform.h>
#include <SDL_keyboard.h>
#include <SDL_clipboard.h>
#include <openengine/ogre/renderer.hpp>
#include <openengine/gui/manager.hpp>
#include <extern/sdl4ogre/sdlcursormanager.hpp>
@ -102,7 +103,7 @@ namespace MWGui
const std::string& logpath, const std::string& cacheDir, bool consoleOnlyScripts,
Translation::Storage& translationDataStorage, ToUTF8::FromType encoding, bool exportFonts, const std::map<std::string, std::string>& fallbackMap)
: mConsoleOnlyScripts(consoleOnlyScripts)
, mGuiManager(NULL)
//, mGuiManager(NULL)
, mRendering(ogre)
, mHud(NULL)
, mMap(NULL)
@ -177,7 +178,13 @@ namespace MWGui
, mFallbackMap(fallbackMap)
{
// Set up the GUI system
mGuiManager = new OEngine::GUI::MyGUIManager(mRendering->getWindow(), mRendering->getScene(), false, logpath);
//mGuiManager = new OEngine::GUI::MyGUIManager(mRendering->getWindow(), mRendering->getScene(), false, logpath);
MyGUI::DummyPlatform* platform = new MyGUI::DummyPlatform;
platform->initialise(logpath);
MyGUI::Gui* gui = new MyGUI::Gui;
gui->initialise("");
MyGUI::LanguageManager::getInstance().eventRequestTag = MyGUI::newDelegate(this, &WindowManager::onRetrieveTag);
@ -207,11 +214,11 @@ namespace MWGui
MyGUI::FactoryManager::getInstance().registerFactory<ResourceImageSetPointerFix>("Resource", "ResourceImageSetPointer");
MyGUI::ResourceManager::getInstance().load("core.xml");
#if 0
mLoadingScreen = new LoadingScreen(mRendering->getScene (), mRendering->getWindow ());
#endif
//set up the hardware cursor manager
mCursorManager = new SFO::SDLCursorManager();
//mCursorManager = new SFO::SDLCursorManager();
MyGUI::PointerManager::getInstance().eventChangeMousePointer += MyGUI::newDelegate(this, &WindowManager::onCursorChange);
@ -219,7 +226,7 @@ namespace MWGui
onCursorChange(MyGUI::PointerManager::getInstance().getDefaultPointer());
mCursorManager->setEnabled(true);
//mCursorManager->setEnabled(true);
// hide mygui's pointer
MyGUI::PointerManager::getInstance().setVisible(false);
@ -245,6 +252,7 @@ namespace MWGui
void WindowManager::initUI()
{
/*
// Get size info from the Gui object
int w = MyGUI::RenderManager::getInstance().getViewSize().width;
int h = MyGUI::RenderManager::getInstance().getViewSize().height;
@ -328,6 +336,7 @@ namespace MWGui
updateVisible();
MWBase::Environment::get().getInputManager()->changeInputMode(false);
*/
}
void WindowManager::renderWorldMap()
@ -408,11 +417,11 @@ namespace MWGui
delete mDebugWindow;
delete mJailScreen;
delete mCursorManager;
//delete mCursorManager;
cleanupGarbage();
delete mGuiManager;
//delete mGuiManager;
}
void WindowManager::cleanupGarbage()
@ -923,6 +932,7 @@ namespace MWGui
void WindowManager::changeCell(MWWorld::CellStore* cell)
{
/*
std::string name = MWBase::Environment::get().getWorld()->getCellName (cell);
mMap->setCellName( name );
@ -947,10 +957,12 @@ namespace MWGui
MWBase::Environment::get().getWorld()->getPlayer().setLastKnownExteriorPosition(worldPos);
mMap->setGlobalMapPlayerPosition(worldPos.x, worldPos.y);
}
*/
}
void WindowManager::setActiveMap(int x, int y, bool interior)
{
/*
if (!interior)
{
mMap->setCellPrefix("Cell");
@ -959,19 +971,22 @@ namespace MWGui
mMap->setActiveCell(x,y, interior);
mHud->setActiveCell(x,y, interior);
*/
}
void WindowManager::setPlayerPos(int cellX, int cellY, const float x, const float y)
{
mMap->setPlayerPos(cellX, cellY, x, y);
mHud->setPlayerPos(cellX, cellY, x, y);
//mMap->setPlayerPos(cellX, cellY, x, y);
//mHud->setPlayerPos(cellX, cellY, x, y);
}
void WindowManager::setPlayerDir(const float x, const float y)
{
/*
mMap->setPlayerDir(x,y);
mMap->setGlobalMapPlayerDir(x, y);
mHud->setPlayerDir(x,y);
*/
}
void WindowManager::setDrowningBarVisibility(bool visible)
@ -1087,7 +1102,7 @@ namespace MWGui
void WindowManager::windowResized(int x, int y)
{
sizeVideo(x, y);
mGuiManager->windowResized();
//mGuiManager->windowResized();
if (!mHud)
return; // UI not initialized yet
@ -1133,6 +1148,7 @@ namespace MWGui
void WindowManager::onCursorChange(const std::string &name)
{
/*
if(!mCursorManager->cursorChanged(name))
return; //the cursor manager doesn't want any more info about this cursor
//See if we can get the information we need out of the cursor resource
@ -1157,6 +1173,7 @@ namespace MWGui
mCursorManager->receiveCursorInfo(name, rotation, tex, size_x, size_y, hotspot_x, hotspot_y);
}
}
*/
}
void WindowManager::popGuiMode()
@ -1266,7 +1283,7 @@ namespace MWGui
void WindowManager::executeInConsole (const std::string& path)
{
mConsole->executeFile (path);
//mConsole->executeFile (path);
}
void WindowManager::wmUpdateFps(float fps, unsigned int triangleCount, unsigned int batchCount)
@ -1507,7 +1524,7 @@ namespace MWGui
void WindowManager::updatePlayer()
{
mInventoryWindow->updatePlayer();
//mInventoryWindow->updatePlayer();
const MWWorld::Ptr player = MWBase::Environment::get().getWorld()->getPlayerPtr();
if (player.getClass().getNpcStats(player).isWerewolf())
@ -1540,9 +1557,22 @@ namespace MWGui
mHud->setEnemy(enemy);
}
class DummyListener : public Loading::Listener
{
public:
virtual void setLabel (const std::string& label){}
virtual void loadingOn(){}
virtual void loadingOff(){}
virtual void indicateProgress (){}
virtual void setProgressRange (size_t range){}
virtual void setProgress (size_t value){}
virtual void increaseProgress (size_t increase = 1){}
};
Loading::Listener* WindowManager::getLoadingScreen()
{
return mLoadingScreen;
static DummyListener listener;
return &listener;
}
void WindowManager::startRecharge(MWWorld::Ptr soulgem)
@ -1779,23 +1809,29 @@ namespace MWGui
void WindowManager::fadeScreenIn(const float time, bool clearQueue)
{
/*
if (clearQueue)
mScreenFader->clearQueue();
mScreenFader->fadeOut(time);
*/
}
void WindowManager::fadeScreenOut(const float time, bool clearQueue)
{
/*
if (clearQueue)
mScreenFader->clearQueue();
mScreenFader->fadeIn(time);
*/
}
void WindowManager::fadeScreenTo(const int percent, const float time, bool clearQueue)
{
/*
if (clearQueue)
mScreenFader->clearQueue();
mScreenFader->fadeTo(percent, time);
*/
}
void WindowManager::setBlindness(const int percent)

@ -1,23 +1,23 @@
#include "actor.hpp"
#include "character.hpp"
//#include "character.hpp"
namespace MWMechanics
{
Actor::Actor(const MWWorld::Ptr &ptr, MWRender::Animation *animation)
{
mCharacterController.reset(new CharacterController(ptr, animation));
//mCharacterController.reset(new CharacterController(ptr, animation));
}
void Actor::updatePtr(const MWWorld::Ptr &newPtr)
{
mCharacterController->updatePtr(newPtr);
//mCharacterController->updatePtr(newPtr);
}
CharacterController* Actor::getCharacterController()
{
return mCharacterController.get();
return 0;//mCharacterController.get();
}
AiState& Actor::getAiState()

@ -16,13 +16,13 @@
#include "../mwbase/mechanicsmanager.hpp"
#include "../mwbase/dialoguemanager.hpp"
#include "../mwrender/animation.hpp"
//#include "../mwrender/animation.hpp"
#include "creaturestats.hpp"
#include "steering.hpp"
#include "movement.hpp"
#include "character.hpp" // fixme: for getActiveWeapon
//#include "character.hpp" // fixme: for getActiveWeapon
#include "aicombataction.hpp"
#include "combat.hpp"
@ -188,6 +188,7 @@ namespace MWMechanics
*/
bool AiCombat::execute (const MWWorld::Ptr& actor, AiState& state, float duration)
{
#if 0
// get or create temporary storage
AiCombatStorage& storage = state.get<AiCombatStorage>();
@ -673,7 +674,7 @@ namespace MWMechanics
// FIXME: can fool actors to stay behind doors, etc.
// Related to Bug#1102 and to some degree #1155 as well
}
#endif
return false;
}
@ -811,6 +812,7 @@ ESM::Weapon::AttackType chooseBestAttack(const ESM::Weapon* weapon, MWMechanics:
return attackType;
}
#if 0
void getMinMaxAttackDuration(const MWWorld::Ptr& actor, float (*fMinMaxDurations)[2])
{
if (!actor.getClass().hasInventoryStore(actor)) // creatures
@ -873,8 +875,8 @@ void getMinMaxAttackDuration(const MWWorld::Ptr& actor, float (*fMinMaxDurations
fMinMaxDurations[i][1] = fMinMaxDurations[i][0] + (start1 - start2) / weapSpeed;
}
}
#endif
Ogre::Vector3 AimDirToMovingTarget(const MWWorld::Ptr& actor, const MWWorld::Ptr& target, const Ogre::Vector3& vLastTargetPos,
float duration, int weapType, float strength)

@ -3,6 +3,7 @@
#include <cassert>
#include <cstdlib>
#include <cmath>
#include <algorithm>
#include <stdexcept>

@ -269,7 +269,7 @@ namespace MWMechanics
creatureStats.getSpells().add(*it);
// forced update and current value adjustments
mActors.updateActor (ptr, 0);
//mActors.updateActor (ptr, 0);
for (int i=0; i<3; ++i)
{
@ -294,22 +294,27 @@ namespace MWMechanics
void MechanicsManager::add(const MWWorld::Ptr& ptr)
{
/*
if(ptr.getClass().isActor())
mActors.addActor(ptr);
else
mObjects.addObject(ptr);
*/
}
void MechanicsManager::remove(const MWWorld::Ptr& ptr)
{
/*
if(ptr == mWatched)
mWatched = MWWorld::Ptr();
mActors.removeActor(ptr);
mObjects.removeObject(ptr);
*/
}
void MechanicsManager::updateCell(const MWWorld::Ptr &old, const MWWorld::Ptr &ptr)
{
/*
if(old == mWatched)
mWatched = ptr;
@ -317,13 +322,16 @@ namespace MWMechanics
mActors.updateActor(old, ptr);
else
mObjects.updateObject(old, ptr);
*/
}
void MechanicsManager::drop(const MWWorld::CellStore *cellStore)
{
/*
mActors.dropActors(cellStore, mWatched);
mObjects.dropObjects(cellStore);
*/
}
@ -464,24 +472,24 @@ namespace MWMechanics
// HACK? The player has been changed, so a new Animation object may
// have been made for them. Make sure they're properly updated.
MWWorld::Ptr ptr = MWBase::Environment::get().getWorld()->getPlayerPtr();
mActors.removeActor(ptr);
mActors.addActor(ptr, true);
//MWWorld::Ptr ptr = MWBase::Environment::get().getWorld()->getPlayerPtr();
//mActors.removeActor(ptr);
//mActors.addActor(ptr, true);
}
mActors.update(duration, paused);
mObjects.update(duration, paused);
//mActors.update(duration, paused);
//mObjects.update(duration, paused);
}
void MechanicsManager::rest(bool sleep)
{
mActors.restoreDynamicStats (sleep);
mActors.fastForwardAi();
//mActors.restoreDynamicStats (sleep);
//mActors.fastForwardAi();
}
int MechanicsManager::getHoursToRest() const
{
return mActors.getHoursToRest(mWatched);
return 0;//mActors.getHoursToRest(mWatched);
}
void MechanicsManager::setPlayerName (const std::string& name)
@ -671,7 +679,7 @@ namespace MWMechanics
int MechanicsManager::countDeaths (const std::string& id) const
{
return mActors.countDeaths (id);
return 0;//mActors.countDeaths (id);
}
void MechanicsManager::getPersuasionDispositionChange (const MWWorld::Ptr& npc, PersuasionType type,
@ -827,35 +835,39 @@ namespace MWMechanics
void MechanicsManager::forceStateUpdate(const MWWorld::Ptr &ptr)
{
if(ptr.getClass().isActor())
mActors.forceStateUpdate(ptr);
//if(ptr.getClass().isActor())
//mActors.forceStateUpdate(ptr);
}
void MechanicsManager::playAnimationGroup(const MWWorld::Ptr& ptr, const std::string& groupName, int mode, int number)
{
/*
if(ptr.getClass().isActor())
mActors.playAnimationGroup(ptr, groupName, mode, number);
else
mObjects.playAnimationGroup(ptr, groupName, mode, number);
*/
}
void MechanicsManager::skipAnimation(const MWWorld::Ptr& ptr)
{
/*
if(ptr.getClass().isActor())
mActors.skipAnimation(ptr);
else
mObjects.skipAnimation(ptr);
*/
}
bool MechanicsManager::checkAnimationPlaying(const MWWorld::Ptr& ptr, const std::string &groupName)
{
if(ptr.getClass().isActor())
return mActors.checkAnimationPlaying(ptr, groupName);
else
//if(ptr.getClass().isActor())
// return mActors.checkAnimationPlaying(ptr, groupName);
//else
return false;
}
void MechanicsManager::updateMagicEffects(const MWWorld::Ptr &ptr)
{
mActors.updateMagicEffects(ptr);
//mActors.updateMagicEffects(ptr);
}
bool MechanicsManager::toggleAI()
@ -1050,7 +1062,7 @@ namespace MWMechanics
const MWWorld::ESMStore& esmStore = MWBase::Environment::get().getWorld()->getStore();
float radius = esmStore.get<ESM::GameSetting>().find("fAlarmRadius")->getFloat();
mActors.getObjectsInRange(from, radius, neighbors);
//mActors.getObjectsInRange(from, radius, neighbors);
// victim should be considered even beyond alarm radius
if (!victim.isEmpty() && from.squaredDistance(Ogre::Vector3(victim.getRefData().getPosition().pos)) > radius*radius)
@ -1139,7 +1151,7 @@ namespace MWMechanics
Ogre::Vector3 from = Ogre::Vector3(player.getRefData().getPosition().pos);
float radius = esmStore.get<ESM::GameSetting>().find("fAlarmRadius")->getFloat();
mActors.getObjectsInRange(from, radius, neighbors);
//mActors.getObjectsInRange(from, radius, neighbors);
// victim should be considered even beyond alarm radius
if (!victim.isEmpty() && from.squaredDistance(Ogre::Vector3(victim.getRefData().getPosition().pos)) > radius*radius)
@ -1394,6 +1406,7 @@ namespace MWMechanics
// if guard starts combat with player, guards pursuing player should do the same
if (ptr.getClass().isClass(ptr, "Guard"))
{
/*
for (Actors::PtrActorMap::const_iterator iter = mActors.begin(); iter != mActors.end(); ++iter)
{
if (iter->first.getClass().isClass(iter->first, "Guard"))
@ -1406,6 +1419,7 @@ namespace MWMechanics
}
}
}
*/
}
}
@ -1416,27 +1430,27 @@ namespace MWMechanics
void MechanicsManager::getObjectsInRange(const Ogre::Vector3 &position, float radius, std::vector<MWWorld::Ptr> &objects)
{
mActors.getObjectsInRange(position, radius, objects);
mObjects.getObjectsInRange(position, radius, objects);
//mActors.getObjectsInRange(position, radius, objects);
//mObjects.getObjectsInRange(position, radius, objects);
}
void MechanicsManager::getActorsInRange(const Ogre::Vector3 &position, float radius, std::vector<MWWorld::Ptr> &objects)
{
mActors.getObjectsInRange(position, radius, objects);
//mActors.getObjectsInRange(position, radius, objects);
}
std::list<MWWorld::Ptr> MechanicsManager::getActorsFollowing(const MWWorld::Ptr& actor)
{
return mActors.getActorsFollowing(actor);
return std::list<MWWorld::Ptr>();//mActors.getActorsFollowing(actor);
}
std::list<int> MechanicsManager::getActorsFollowingIndices(const MWWorld::Ptr& actor)
{
return mActors.getActorsFollowingIndices(actor);
return std::list<int>(); //mActors.getActorsFollowingIndices(actor);
}
std::list<MWWorld::Ptr> MechanicsManager::getActorsFighting(const MWWorld::Ptr& actor) {
return mActors.getActorsFighting(actor);
return std::list<MWWorld::Ptr>();// mActors.getActorsFighting(actor);
}
int MechanicsManager::countSavedGameRecords() const
@ -1447,7 +1461,7 @@ namespace MWMechanics
void MechanicsManager::write(ESM::ESMWriter &writer, Loading::Listener &listener) const
{
mActors.write(writer, listener);
//mActors.write(writer, listener);
ESM::StolenItems items;
items.mStolenItems = mStolenItems;
@ -1464,13 +1478,13 @@ namespace MWMechanics
items.load(reader);
mStolenItems = items.mStolenItems;
}
else
mActors.readRecord(reader, type);
//else
//mActors.readRecord(reader, type);
}
void MechanicsManager::clear()
{
mActors.clear();
//mActors.clear();
mStolenItems.clear();
}
@ -1516,6 +1530,6 @@ namespace MWMechanics
bool MechanicsManager::isReadyToBlock(const MWWorld::Ptr &ptr) const
{
return mActors.isReadyToBlock(ptr);
return 0;//mActors.isReadyToBlock(ptr);
}
}

@ -7,8 +7,8 @@
#include "creaturestats.hpp"
#include "npcstats.hpp"
#include "objects.hpp"
#include "actors.hpp"
//#include "objects.hpp"
//#include "actors.hpp"
namespace Ogre
{
@ -32,8 +32,8 @@ namespace MWMechanics
bool mRaceSelected;
bool mAI;///< is AI active?
Objects mObjects;
Actors mActors;
//Objects mObjects;
//Actors mActors;
typedef std::pair<std::string, bool> Owner; // < Owner id, bool isFaction >
typedef std::map<Owner, int> OwnerMap; // < Owner, number of stolen items with this id from this owner >

@ -19,7 +19,7 @@
#include "../mwworld/cellstore.hpp"
#include "../mwworld/esmstore.hpp"
#include "../mwrender/animation.hpp"
//#include "../mwrender/animation.hpp"
#include "magiceffects.hpp"
#include "npcstats.hpp"
@ -419,8 +419,8 @@ namespace MWMechanics
if (absorbed)
{
const ESM::Static* absorbStatic = MWBase::Environment::get().getWorld()->getStore().get<ESM::Static>().find ("VFX_Absorb");
MWBase::Environment::get().getWorld()->getAnimation(target)->addEffect(
"meshes\\" + absorbStatic->mModel, ESM::MagicEffect::SpellAbsorption, false, "");
//MWBase::Environment::get().getWorld()->getAnimation(target)->addEffect(
// "meshes\\" + absorbStatic->mModel, ESM::MagicEffect::SpellAbsorption, false, "");
// Magicka is increased by cost of spell
DynamicStat<float> magicka = target.getClass().getCreatureStats(target).getMagicka();
magicka.setCurrent(magicka.getCurrent() + spell->mData.mCost);
@ -467,8 +467,8 @@ namespace MWMechanics
if (isReflected)
{
const ESM::Static* reflectStatic = MWBase::Environment::get().getWorld()->getStore().get<ESM::Static>().find ("VFX_Reflect");
MWBase::Environment::get().getWorld()->getAnimation(target)->addEffect(
"meshes\\" + reflectStatic->mModel, ESM::MagicEffect::Reflect, false, "");
//MWBase::Environment::get().getWorld()->getAnimation(target)->addEffect(
// "meshes\\" + reflectStatic->mModel, ESM::MagicEffect::Reflect, false, "");
reflectedEffects.mList.push_back(*effectIt);
magnitudeMult = 0;
}
@ -574,9 +574,9 @@ namespace MWMechanics
// TODO: VFX are no longer active after saving/reloading the game
bool loop = (magicEffect->mData.mFlags & ESM::MagicEffect::ContinuousVfx) != 0;
// Note: in case of non actor, a free effect should be fine as well
MWRender::Animation* anim = MWBase::Environment::get().getWorld()->getAnimation(target);
if (anim)
anim->addEffect("meshes\\" + castStatic->mModel, magicEffect->mIndex, loop, "");
//MWRender::Animation* anim = MWBase::Environment::get().getWorld()->getAnimation(target);
//if (anim)
// anim->addEffect("meshes\\" + castStatic->mModel, magicEffect->mIndex, loop, "");
}
}
}

@ -12,7 +12,7 @@
#include "../mwworld/manualref.hpp"
#include "../mwworld/inventorystore.hpp"
#include "../mwrender/animation.hpp"
//#include "../mwrender/animation.hpp"
#include "creaturestats.hpp"
#include "aifollow.hpp"
@ -143,8 +143,9 @@ namespace MWMechanics
summonedCreatureStats.getAiSequence().stack(package, ref.getPtr());
int creatureActorId = summonedCreatureStats.getActorId();
MWWorld::Ptr placed = MWBase::Environment::get().getWorld()->safePlaceObject(ref.getPtr(),store,ipos);
/*MWWorld::Ptr placed = */MWBase::Environment::get().getWorld()->safePlaceObject(ref.getPtr(),store,ipos);
/*
MWRender::Animation* anim = MWBase::Environment::get().getWorld()->getAnimation(placed);
if (anim)
{
@ -153,6 +154,7 @@ namespace MWMechanics
if (fx)
anim->addEffect("meshes\\" + fx->mModel, -1, false);
}
*/
creatureMap.insert(std::make_pair(*it, creatureActorId));
}

@ -6,13 +6,14 @@
#include "../mwworld/ptr.hpp"
#include "../mwworld/class.hpp"
#include "../mwrender/renderingmanager.hpp"
//#include "../mwrender/renderingmanager.hpp"
/*
#include "animation.hpp"
#include "activatoranimation.hpp"
#include "creatureanimation.hpp"
#include "npcanimation.hpp"
*/
#include "renderconst.hpp"
@ -22,19 +23,22 @@ using namespace Ogre;
Actors::~Actors()
{
/*
PtrAnimationMap::iterator it = mAllActors.begin();
for(;it != mAllActors.end();++it)
{
delete it->second;
it->second = NULL;
}
*/
}
void Actors::setRootNode(Ogre::SceneNode* root)
{ mRootNode = root; }
//void Actors::setRootNode(Ogre::SceneNode* root)
//{ mRootNode = root; }
void Actors::insertBegin(const MWWorld::Ptr &ptr)
{
/*
Ogre::SceneNode* cellnode;
CellSceneNodeMap::const_iterator celliter = mCellSceneNodes.find(ptr.getCell());
if(celliter != mCellSceneNodes.end())
@ -61,18 +65,22 @@ void Actors::insertBegin(const MWWorld::Ptr &ptr)
insert->setOrientation(zr);
ptr.getRefData().setBaseNode(insert);
*/
}
void Actors::insertNPC(const MWWorld::Ptr& ptr)
{
/*
insertBegin(ptr);
NpcAnimation* anim = new NpcAnimation(ptr, ptr.getRefData().getBaseNode(), RV_Actors);
delete mAllActors[ptr];
mAllActors[ptr] = anim;
mRendering->addWaterRippleEmitter (ptr);
*/
}
void Actors::insertCreature (const MWWorld::Ptr& ptr, const std::string &model, bool weaponsShields)
{
/*
insertBegin(ptr);
Animation* anim = NULL;
if (weaponsShields)
@ -82,9 +90,11 @@ void Actors::insertCreature (const MWWorld::Ptr& ptr, const std::string &model,
delete mAllActors[ptr];
mAllActors[ptr] = anim;
mRendering->addWaterRippleEmitter (ptr);
*/
}
void Actors::insertActivator (const MWWorld::Ptr& ptr, const std::string &model, bool addLight)
{
/*
insertBegin(ptr);
ActivatorAnimation* anim = new ActivatorAnimation(ptr, model);
@ -98,10 +108,12 @@ void Actors::insertActivator (const MWWorld::Ptr& ptr, const std::string &model,
delete mAllActors[ptr];
mAllActors[ptr] = anim;
*/
}
bool Actors::deleteObject (const MWWorld::Ptr& ptr)
{
/*
if (mAllActors.find(ptr) == mAllActors.end())
return false;
@ -127,12 +139,13 @@ bool Actors::deleteObject (const MWWorld::Ptr& ptr)
return false;
}
*/
return true;
}
void Actors::removeCell(MWWorld::CellStore* store)
{
/*
for(PtrAnimationMap::iterator iter = mAllActors.begin();iter != mAllActors.end();)
{
if(iter->first.getCell() == store)
@ -153,26 +166,22 @@ void Actors::removeCell(MWWorld::CellStore* store)
mCellSceneNodes.erase(celliter);
}
}
void Actors::update (Ogre::Camera* camera)
{
for(PtrAnimationMap::iterator iter = mAllActors.begin();iter != mAllActors.end(); ++iter)
{
iter->second->preRender(camera);
}
*/
}
Animation* Actors::getAnimation(const MWWorld::Ptr &ptr)
{
/*
PtrAnimationMap::const_iterator iter = mAllActors.find(ptr);
if(iter != mAllActors.end())
return iter->second;
*/
return NULL;
}
void Actors::updateObjectCell(const MWWorld::Ptr &old, const MWWorld::Ptr &cur)
{
/*
Ogre::SceneNode *node;
MWWorld::CellStore *newCell = cur.getCell();
@ -196,20 +205,7 @@ void Actors::updateObjectCell(const MWWorld::Ptr &old, const MWWorld::Ptr &cur)
}
mRendering->updateWaterRippleEmitterPtr (old, cur);
}
void Actors::enableLights()
{
PtrAnimationMap::const_iterator it = mAllActors.begin();
for(;it != mAllActors.end();++it)
it->second->enableLights(true);
}
void Actors::disableLights()
{
PtrAnimationMap::const_iterator it = mAllActors.begin();
for(;it != mAllActors.end();++it)
it->second->enableLights(false);
*/
}
}

@ -1,7 +1,17 @@
#ifndef GAME_RENDER_ACTORS_H
#define GAME_RENDER_ACTORS_H
#include <openengine/ogre/renderer.hpp>
//#include <openengine/ogre/renderer.hpp>
#include <string>
namespace OEngine
{
namespace Render
{
class OgreRenderer;
}
}
namespace MWWorld
{
@ -17,15 +27,15 @@ namespace MWRender
class Actors
{
typedef std::map<MWWorld::CellStore*,Ogre::SceneNode*> CellSceneNodeMap;
typedef std::map<MWWorld::Ptr,Animation*> PtrAnimationMap;
//typedef std::map<MWWorld::CellStore*,Ogre::SceneNode*> CellSceneNodeMap;
//typedef std::map<MWWorld::Ptr,Animation*> PtrAnimationMap;
OEngine::Render::OgreRenderer &mRend;
MWRender::RenderingManager* mRendering;
Ogre::SceneNode* mRootNode;
//Ogre::SceneNode* mRootNode;
CellSceneNodeMap mCellSceneNodes;
PtrAnimationMap mAllActors;
//CellSceneNodeMap mCellSceneNodes;
//PtrAnimationMap mAllActors;
void insertBegin(const MWWorld::Ptr &ptr);
@ -33,11 +43,11 @@ namespace MWRender
Actors(OEngine::Render::OgreRenderer& _rend, MWRender::RenderingManager* rendering)
: mRend(_rend)
, mRendering(rendering)
, mRootNode(NULL)
//, mRootNode(NULL)
{}
~Actors();
void setRootNode(Ogre::SceneNode* root);
//void setRootNode(Ogre::SceneNode* root);
void insertNPC(const MWWorld::Ptr& ptr);
void insertCreature (const MWWorld::Ptr& ptr, const std::string& model, bool weaponsShields);
@ -45,13 +55,8 @@ namespace MWRender
bool deleteObject (const MWWorld::Ptr& ptr);
///< \return found?
void enableLights();
void disableLights();
void removeCell(MWWorld::CellStore* store);
void update (Ogre::Camera* camera);
/// Updates containing cell for object rendering data
void updateObjectCell(const MWWorld::Ptr &old, const MWWorld::Ptr &cur);

@ -14,7 +14,7 @@
#include <components/esm/loadligh.hpp>
#include <components/esm/loadstat.hpp>
#include <components/nifogre/ogrenifloader.hpp>
//#include <components/nifogre/ogrenifloader.hpp>
#include <components/settings/settings.hpp>
#include "../mwworld/ptr.hpp"
@ -22,7 +22,7 @@
#include "../mwworld/cellstore.hpp"
#include "renderconst.hpp"
#include "animation.hpp"
//#include "animation.hpp"
using namespace MWRender;
@ -76,7 +76,7 @@ void Objects::insertBegin(const MWWorld::Ptr& ptr)
void Objects::insertModel(const MWWorld::Ptr &ptr, const std::string &mesh, bool batch)
{
insertBegin(ptr);
/*
std::auto_ptr<ObjectAnimation> anim(new ObjectAnimation(ptr, mesh));
if (!mesh.empty())
@ -96,70 +96,16 @@ void Objects::insertModel(const MWWorld::Ptr &ptr, const std::string &mesh, bool
mBounds[ptr.getCell()] = Ogre::AxisAlignedBox::BOX_NULL;
mBounds[ptr.getCell()].merge(bounds);
if(batch &&
Settings::Manager::getBool("use static geometry", "Objects") &&
anim->canBatch())
{
Ogre::StaticGeometry* sg = 0;
if (small)
{
if(mStaticGeometrySmall.find(ptr.getCell()) == mStaticGeometrySmall.end())
{
uniqueID = uniqueID+1;
sg = mRenderer.getScene()->createStaticGeometry("sg" + Ogre::StringConverter::toString(uniqueID));
sg->setOrigin(ptr.getRefData().getBaseNode()->getPosition());
mStaticGeometrySmall[ptr.getCell()] = sg;
sg->setRenderingDistance(static_cast<Ogre::Real>(Settings::Manager::getInt("small object distance", "Viewing distance")));
}
else
sg = mStaticGeometrySmall[ptr.getCell()];
}
else
{
if(mStaticGeometry.find(ptr.getCell()) == mStaticGeometry.end())
{
uniqueID = uniqueID+1;
sg = mRenderer.getScene()->createStaticGeometry("sg" + Ogre::StringConverter::toString(uniqueID));
sg->setOrigin(ptr.getRefData().getBaseNode()->getPosition());
mStaticGeometry[ptr.getCell()] = sg;
}
else
sg = mStaticGeometry[ptr.getCell()];
}
// This specifies the size of a single batch region.
// If it is set too high:
// - there will be problems choosing the correct lights
// - the culling will be more inefficient
// If it is set too low:
// - there will be too many batches.
if(ptr.getCell()->isExterior())
sg->setRegionDimensions(Ogre::Vector3(2048,2048,2048));
else
sg->setRegionDimensions(Ogre::Vector3(1024,1024,1024));
sg->setVisibilityFlags(small ? RV_StaticsSmall : RV_Statics);
sg->setCastShadows(true);
sg->setRenderQueueGroup(RQG_Main);
anim->fillBatch(sg);
/* TODO: We could hold on to this and just detach it from the scene graph, so if the Ptr
* ever needs to modify we can reattach it and rebuild the StaticGeometry object without
* it. Would require associating the Ptr with the StaticGeometry. */
anim.reset();
}
}
if(anim.get() != NULL)
mObjects.insert(std::make_pair(ptr, anim.release()));
*/
}
bool Objects::deleteObject (const MWWorld::Ptr& ptr)
{
/*
if(!ptr.getRefData().getBaseNode())
return true;
@ -173,13 +119,14 @@ bool Objects::deleteObject (const MWWorld::Ptr& ptr)
ptr.getRefData().setBaseNode(0);
return true;
}
*/
return false;
}
void Objects::removeCell(MWWorld::CellStore* store)
{
/*
for(PtrAnimationMap::iterator iter = mObjects.begin();iter != mObjects.end();)
{
if(iter->first.getCell() == store)
@ -216,20 +163,7 @@ void Objects::removeCell(MWWorld::CellStore* store)
mRenderer.getScene()->destroySceneNode(cell->second);
mCellSceneNodes.erase(cell);
}
}
void Objects::buildStaticGeometry(MWWorld::CellStore& cell)
{
if(mStaticGeometry.find(&cell) != mStaticGeometry.end())
{
Ogre::StaticGeometry* sg = mStaticGeometry[&cell];
sg->build();
}
if(mStaticGeometrySmall.find(&cell) != mStaticGeometrySmall.end())
{
Ogre::StaticGeometry* sg = mStaticGeometrySmall[&cell];
sg->build();
}
*/
}
Ogre::AxisAlignedBox Objects::getDimensions(MWWorld::CellStore* cell)
@ -239,33 +173,16 @@ Ogre::AxisAlignedBox Objects::getDimensions(MWWorld::CellStore* cell)
void Objects::update(float dt, Ogre::Camera* camera)
{
/*
PtrAnimationMap::const_iterator it = mObjects.begin();
for(;it != mObjects.end();++it)
it->second->runAnimation(dt);
it = mObjects.begin();
for(;it != mObjects.end();++it)
it->second->preRender(camera);
}
void Objects::rebuildStaticGeometry()
{
for (std::map<MWWorld::CellStore *, Ogre::StaticGeometry*>::iterator it = mStaticGeometry.begin(); it != mStaticGeometry.end(); ++it)
{
it->second->destroy();
it->second->build();
}
for (std::map<MWWorld::CellStore *, Ogre::StaticGeometry*>::iterator it = mStaticGeometrySmall.begin(); it != mStaticGeometrySmall.end(); ++it)
{
it->second->destroy();
it->second->build();
}
*/
}
void Objects::updateObjectCell(const MWWorld::Ptr &old, const MWWorld::Ptr &cur)
{
/*
Ogre::SceneNode *node;
MWWorld::CellStore *newCell = cur.getCell();
@ -286,13 +203,16 @@ void Objects::updateObjectCell(const MWWorld::Ptr &old, const MWWorld::Ptr &cur)
anim->updatePtr(cur);
mObjects[cur] = anim;
}
*/
}
ObjectAnimation* Objects::getAnimation(const MWWorld::Ptr &ptr)
{
/*
PtrAnimationMap::const_iterator iter = mObjects.find(ptr);
if(iter != mObjects.end())
return iter->second;
*/
return NULL;
}

@ -55,7 +55,6 @@ public:
///< \return found?
void removeCell(MWWorld::CellStore* store);
void buildStaticGeometry(MWWorld::CellStore &cell);
void setRootNode(Ogre::SceneNode* root);
void rebuildStaticGeometry();

@ -31,7 +31,6 @@
#include "../mwbase/world.hpp" // these includes can be removed once the static-hack is gone
#include "../mwbase/environment.hpp"
#include "../mwbase/inputmanager.hpp" // FIXME
#include "../mwbase/windowmanager.hpp" // FIXME
#include "../mwbase/statemanager.hpp"
@ -40,7 +39,6 @@
#include "../mwworld/ptr.hpp"
#include "shadows.hpp"
#include "localmap.hpp"
#include "water.hpp"
#include "npcanimation.hpp"
@ -59,7 +57,6 @@ RenderingManager::RenderingManager(OEngine::Render::OgreRenderer& _rend, const b
: mRendering(_rend)
, mFallback(fallback)
, mPlayerAnimation(NULL)
, mAmbientMode(0)
, mSunEnabled(0)
, mPhysicsEngine(engine)
, mTerrain(NULL)
@ -162,15 +159,12 @@ RenderingManager::RenderingManager(OEngine::Render::OgreRenderer& _rend, const b
mCamera = new MWRender::Camera(mRendering.getCamera());
mShadows = new Shadows(&mRendering);
mSkyManager = new SkyManager(mRootNode, mRendering.getCamera());
mOcclusionQuery = new OcclusionQuery(&mRendering, mSkyManager->getSunNode());
mSun = 0;
mDebugging = new Debugging(mRootNode, engine);
mLocalMap = new MWRender::LocalMap(&mRendering, this);
mWater = new MWRender::Water(mRendering.getCamera(), this, mFallback);
@ -185,8 +179,6 @@ RenderingManager::~RenderingManager ()
delete mPlayerAnimation;
delete mCamera;
delete mSkyManager;
delete mDebugging;
delete mShadows;
delete mTerrain;
delete mLocalMap;
delete mOcclusionQuery;
@ -222,7 +214,6 @@ void RenderingManager::removeCell (MWWorld::CellStore *store)
mLocalMap->saveFogOfWar(store);
mObjects->removeCell(store);
mActors->removeCell(store);
mDebugging->cellRemoved(store);
}
void RenderingManager::removeWater ()
@ -251,7 +242,6 @@ void RenderingManager::cellAdded (MWWorld::CellStore *store)
mObjects->buildStaticGeometry (*store);
sh::Factory::getInstance().unloadUnreferencedMaterials();
mDebugging->cellAdded(store);
}
void RenderingManager::addObject (const MWWorld::Ptr& ptr, const std::string& model){
@ -477,9 +467,10 @@ void RenderingManager::skySetMoonColour (bool red){
bool RenderingManager::toggleRenderMode(int mode)
{
#if 0
if (mode == MWBase::World::Render_CollisionDebug || mode == MWBase::World::Render_Pathgrid)
return mDebugging->toggleRenderMode(mode);
else if (mode == MWBase::World::Render_Wireframe)
if (mode == MWBase::World::Render_Wireframe)
{
if (mRendering.getCamera()->getPolygonMode() == PM_SOLID)
{
@ -498,6 +489,8 @@ bool RenderingManager::toggleRenderMode(int mode)
mRendering.getScene()->showBoundingBoxes(show);
return show;
}
#endif
return 0;
}
void RenderingManager::configureFog(const MWWorld::CellStore &mCell)
@ -547,20 +540,7 @@ void RenderingManager::applyFog (bool underwater)
void RenderingManager::setAmbientMode()
{
switch (mAmbientMode)
{
case 0:
setAmbientColour(mAmbientColor);
break;
case 1:
setAmbientColour(0.7f*mAmbientColor + 0.3f*ColourValue(1,1,1));
break;
case 2:
setAmbientColour(ColourValue(1,1,1));
break;
}
}
void RenderingManager::configureAmbient(MWWorld::CellStore &mCell)
@ -805,12 +785,6 @@ void RenderingManager::processChangedSettings(const Settings::CategorySettingVec
sh::Factory::getInstance ().setCurrentLanguage (lang);
rebuild = true;
}
else if (it->first == "Shadows")
{
mShadows->recreate ();
rebuild = true;
}
}
if (changeRes)

@ -248,9 +248,6 @@ private:
MWRender::NpcAnimation *mPlayerAnimation;
// 0 normal, 1 more bright, 2 max
int mAmbientMode;
Ogre::ColourValue mAmbientColor;
Ogre::Light* mSun;
@ -264,12 +261,8 @@ private:
MWRender::Camera *mCamera;
MWRender::Debugging *mDebugging;
MWRender::LocalMap* mLocalMap;
MWRender::Shadows* mShadows;
bool mRenderWorld;
};

@ -270,6 +270,7 @@ namespace MWScript
std::string InterpreterContext::getActionBinding(const std::string& action) const
{
/*
MWBase::InputManager* input = MWBase::Environment::get().getInputManager();
std::vector<int> actions = input->getActionKeySorting ();
for (std::vector<int>::const_iterator it = actions.begin(); it != actions.end(); ++it)
@ -286,6 +287,7 @@ namespace MWScript
return input->getActionKeyBindingName (*it);
}
}
*/
return "None";
}

@ -211,6 +211,7 @@ namespace MWSound
Ogre::StringVector filelist;
if (mMusicFiles.find(mCurrentPlaylist) == mMusicFiles.end())
{
#if 0
Ogre::StringVector groups = Ogre::ResourceGroupManager::getSingleton().getResourceGroups ();
for (Ogre::StringVector::iterator it = groups.begin(); it != groups.end(); ++it)
{
@ -219,6 +220,8 @@ namespace MWSound
filelist.insert(filelist.end(), resourcesInThisGroup->begin(), resourcesInThisGroup->end());
}
mMusicFiles[mCurrentPlaylist] = filelist;
#endif
}
else
filelist = mMusicFiles[mCurrentPlaylist];

@ -14,10 +14,9 @@
#include <openengine/bullet/physic.hpp>
#include <openengine/bullet/BtOgreExtras.h>
#include <openengine/ogre/renderer.hpp>
#include <openengine/bullet/BulletShapeLoader.h>
//#include <openengine/bullet/BulletShapeLoader.h>
#include <components/nifbullet/bulletnifloader.hpp>
#include <components/nifogre/skeleton.hpp>
#include <components/misc/resourcehelpers.hpp>
#include <components/esm/loadgmst.hpp>
@ -31,7 +30,7 @@
#include "../mwworld/esmstore.hpp"
#include "../mwworld/cellstore.hpp"
#include "../apps/openmw/mwrender/animation.hpp"
//#include "../apps/openmw/mwrender/animation.hpp"
#include "../apps/openmw/mwbase/world.hpp"
#include "../apps/openmw/mwbase/environment.hpp"
@ -45,6 +44,7 @@ namespace
void animateCollisionShapes (std::map<OEngine::Physic::RigidBody*, OEngine::Physic::AnimatedShapeInstance>& map, btDynamicsWorld* dynamicsWorld)
{
/*
for (std::map<OEngine::Physic::RigidBody*, OEngine::Physic::AnimatedShapeInstance>::iterator it = map.begin();
it != map.end(); ++it)
{
@ -85,6 +85,7 @@ void animateCollisionShapes (std::map<OEngine::Physic::RigidBody*, OEngine::Phys
// needed because we used btDynamicsWorld::setForceUpdateAllAabbs(false)
dynamicsWorld->updateSingleAabb(it->first);
}
*/
}
}
@ -502,8 +503,8 @@ namespace MWWorld
mRender(_rend), mEngine(0), mTimeAccum(0.0f), mWaterEnabled(false), mWaterHeight(0)
{
// Create physics. shapeLoader is deleted by the physic engine
NifBullet::ManualBulletShapeLoader* shapeLoader = new NifBullet::ManualBulletShapeLoader();
mEngine = new OEngine::Physic::PhysicEngine(shapeLoader);
//NifBullet::ManualBulletShapeLoader* shapeLoader = new NifBullet::ManualBulletShapeLoader();
mEngine = new OEngine::Physic::PhysicEngine(0);//shapeLoader);
}
PhysicsSystem::~PhysicsSystem()
@ -521,7 +522,7 @@ namespace MWWorld
std::pair<float, std::string> PhysicsSystem::getFacedHandle(float queryDistance)
{
Ray ray = mRender.getCamera()->getCameraToViewportRay(0.5, 0.5);
Ray ray;// = mRender.getCamera()->getCameraToViewportRay(0.5, 0.5);
Ogre::Vector3 origin_ = ray.getOrigin();
btVector3 origin(origin_.x, origin_.y, origin_.z);
@ -537,7 +538,7 @@ namespace MWWorld
std::vector < std::pair <float, std::string> > PhysicsSystem::getFacedHandles (float queryDistance)
{
Ray ray = mRender.getCamera()->getCameraToViewportRay(0.5, 0.5);
Ray ray;// = mRender.getCamera()->getCameraToViewportRay(0.5, 0.5);
Ogre::Vector3 origin_ = ray.getOrigin();
btVector3 origin(origin_.x, origin_.y, origin_.z);
@ -555,7 +556,7 @@ namespace MWWorld
std::vector < std::pair <float, std::string> > PhysicsSystem::getFacedHandles (float mouseX, float mouseY, float queryDistance)
{
Ray ray = mRender.getCamera()->getCameraToViewportRay(mouseX, mouseY);
Ray ray;// = mRender.getCamera()->getCameraToViewportRay(mouseX, mouseY);
Ogre::Vector3 from = ray.getOrigin();
Ogre::Vector3 to = ray.getPoint(queryDistance);
@ -628,9 +629,9 @@ namespace MWWorld
std::pair<bool, Ogre::Vector3> PhysicsSystem::castRay(float mouseX, float mouseY, Ogre::Vector3* normal, std::string* hit)
{
Ogre::Ray ray = mRender.getCamera()->getCameraToViewportRay(
mouseX,
mouseY);
Ogre::Ray ray;// = mRender.getCamera()->getCameraToViewportRay(
//mouseX,
//mouseY);
Ogre::Vector3 from = ray.getOrigin();
Ogre::Vector3 to = ray.getPoint(200); /// \todo make this distance (ray length) configurable
@ -755,7 +756,7 @@ namespace MWWorld
if(handleToMesh.find(handle) != handleToMesh.end())
{
std::string model = ptr.getClass().getModel(ptr);
model = Misc::ResourceHelpers::correctActorModelPath(model); // FIXME: scaling shouldn't require model
//model = Misc::ResourceHelpers::correctActorModelPath(model); // FIXME: scaling shouldn't require model
bool placeable = false;
if (OEngine::Physic::RigidBody* body = mEngine->getRigidBody(handle,true))
@ -803,8 +804,9 @@ namespace MWWorld
bool PhysicsSystem::getObjectAABB(const MWWorld::Ptr &ptr, Ogre::Vector3 &min, Ogre::Vector3 &max)
{
// FIXME: since raycasting shapes are going away, this should use the osg ComputeBoundingBoxVisitor
std::string model = ptr.getClass().getModel(ptr);
model = Misc::ResourceHelpers::correctActorModelPath(model);
//model = Misc::ResourceHelpers::correctActorModelPath(model);
if (model.empty()) {
return false;
}

@ -4,6 +4,7 @@
#include <components/nif/niffile.hpp>
#include <components/misc/resourcehelpers.hpp>
#include <components/settings/settings.hpp>
#include "../mwbase/environment.hpp"
#include "../mwbase/world.hpp"
@ -11,7 +12,7 @@
#include "../mwbase/mechanicsmanager.hpp"
#include "../mwbase/windowmanager.hpp"
#include "physicssystem.hpp"
//#include "physicssystem.hpp"
#include "player.hpp"
#include "localscripts.hpp"
#include "esmstore.hpp"
@ -22,6 +23,7 @@
namespace
{
#if 0
void addObject(const MWWorld::Ptr& ptr, MWWorld::PhysicsSystem& physics,
MWRender::RenderingManager& rendering)
{
@ -113,6 +115,7 @@ namespace
return true;
}
#endif
}
@ -121,15 +124,15 @@ namespace MWWorld
void Scene::updateObjectLocalRotation (const Ptr& ptr)
{
::updateObjectLocalRotation(ptr, *mPhysics, mRendering);
//::updateObjectLocalRotation(ptr, *mPhysics, mRendering);
}
void Scene::updateObjectRotation (const Ptr& ptr)
{
if(ptr.getRefData().getBaseNode() != 0)
{
mRendering.rotateObject(ptr);
mPhysics->rotateObject(ptr);
//mRendering.rotateObject(ptr);
//mPhysics->rotateObject(ptr);
}
}
@ -161,8 +164,8 @@ namespace MWWorld
{
// Note: exterior cell maps must be updated, even if they were visited before, because the set of surrounding cells might be different
// (and objects in a different cell can "bleed" into another cells map if they cross the border)
for (CellStoreCollection::iterator active = mActiveCells.begin(); active!=mActiveCells.end(); ++active)
mRendering.requestMap(*active);
//for (CellStoreCollection::iterator active = mActiveCells.begin(); active!=mActiveCells.end(); ++active)
//mRendering.requestMap(*active);
mNeedMapUpdate = false;
if (mCurrentCell->isExterior())
@ -173,7 +176,7 @@ namespace MWWorld
}
}
mRendering.update (duration, paused);
//mRendering.update (duration, paused);
}
void Scene::unloadCell (CellStoreCollection::iterator iter)
@ -188,7 +191,7 @@ namespace MWWorld
iter2!=functor.mHandles.end(); ++iter2)
{
Ogre::SceneNode* node = *iter2;
mPhysics->removeObject (node->getName());
//mPhysics->removeObject (node->getName());
}
}
@ -199,11 +202,11 @@ namespace MWWorld
(*iter)->getCell()->getGridX(),
(*iter)->getCell()->getGridY()
);
if (land && land->mDataTypes&ESM::Land::DATA_VHGT)
mPhysics->removeHeightField ((*iter)->getCell()->getGridX(), (*iter)->getCell()->getGridY());
//if (land && land->mDataTypes&ESM::Land::DATA_VHGT)
//mPhysics->removeHeightField ((*iter)->getCell()->getGridX(), (*iter)->getCell()->getGridY());
}
mRendering.removeCell(*iter);
//mRendering.removeCell(*iter);
MWBase::Environment::get().getWorld()->getLocalScripts().clearCell (*iter);
@ -224,6 +227,7 @@ namespace MWWorld
float verts = ESM::Land::LAND_SIZE;
float worldsize = ESM::Land::REAL_SIZE;
#if 0
// Load terrain physics first...
if (cell->getCell()->isExterior())
{
@ -248,6 +252,7 @@ namespace MWWorld
;
}
}
#endif
cell->respawn();
@ -255,6 +260,7 @@ namespace MWWorld
/// \todo rescale depending on the state of a new GMST
insertCell (*cell, true, loadingListener);
#if 0
mRendering.cellAdded (cell);
bool waterEnabled = cell->getCell()->hasWater();
mRendering.setWaterEnabled(waterEnabled);
@ -267,6 +273,7 @@ namespace MWWorld
mPhysics->disableWater();
mRendering.configureAmbient(*cell);
#endif
}
// register local scripts
@ -300,7 +307,7 @@ namespace MWWorld
int newX, newY;
MWBase::Environment::get().getWorld()->positionToIndex(pos.x, pos.y, newX, newY);
changeCellGrid(newX, newY);
mRendering.updateTerrain();
//mRendering.updateTerrain();
}
}
@ -309,7 +316,7 @@ namespace MWWorld
Loading::Listener* loadingListener = MWBase::Environment::get().getWindowManager()->getLoadingScreen();
Loading::ScopedLoad load(loadingListener);
mRendering.enableTerrain(true);
//mRendering.enableTerrain(true);
std::string loadingExteriorText = "#{sLoadingMessage3}";
loadingListener->setLabel(loadingExteriorText);
@ -404,7 +411,7 @@ namespace MWWorld
world->getPlayer().setCell(cell);
MWWorld::Ptr player = world->getPlayerPtr();
mRendering.updatePlayerPtr(player);
//mRendering.updatePlayerPtr(player);
if (adjustPlayerPos) {
world->moveObject(player, pos.pos[0], pos.pos[1], pos.pos[2]);
@ -428,7 +435,7 @@ namespace MWWorld
//We need the ogre renderer and a scene node.
Scene::Scene (MWRender::RenderingManager& rendering, PhysicsSystem *physics)
: mCurrentCell (0), mCellChanged (false), mPhysics(physics), mRendering(rendering), mNeedMapUpdate(false)
: mCurrentCell (0), mCellChanged (false), /*mPhysics(physics), mRendering(rendering),*/ mNeedMapUpdate(false)
{
}
@ -460,7 +467,7 @@ namespace MWWorld
loadingListener->setLabel(loadingInteriorText);
Loading::ScopedLoad load(loadingListener);
mRendering.enableTerrain(false);
//mRendering.enableTerrain(false);
if(!loadcell)
{
@ -497,7 +504,7 @@ namespace MWWorld
changePlayerCell(cell, position, true);
// adjust fog
mRendering.configureFog(*mCurrentCell);
//mRendering.configureFog(*mCurrentCell);
// Sky system
MWBase::Environment::get().getWorld()->adjustSky();
@ -523,7 +530,7 @@ namespace MWWorld
CellStore* current = MWBase::Environment::get().getWorld()->getExterior(x, y);
changePlayerCell(current, position, adjustPlayerPos);
mRendering.updateTerrain();
//mRendering.updateTerrain();
}
CellStore* Scene::getCurrentCell ()
@ -538,17 +545,17 @@ namespace MWWorld
void Scene::insertCell (CellStore &cell, bool rescale, Loading::Listener* loadingListener)
{
InsertFunctor functor (cell, rescale, *loadingListener, *mPhysics, mRendering);
cell.forEach (functor);
//InsertFunctor functor (cell, rescale, *loadingListener, *mPhysics, mRendering);
//cell.forEach (functor);
}
void Scene::addObjectToScene (const Ptr& ptr)
{
try
{
addObject(ptr, *mPhysics, mRendering);
MWBase::Environment::get().getWorld()->rotateObject(ptr, 0, 0, 0, true);
MWBase::Environment::get().getWorld()->scaleObject(ptr, ptr.getCellRef().getScale());
//addObject(ptr, *mPhysics, mRendering);
//MWBase::Environment::get().getWorld()->rotateObject(ptr, 0, 0, 0, true);
//MWBase::Environment::get().getWorld()->scaleObject(ptr, ptr.getCellRef().getScale());
}
catch (std::exception& e)
{
@ -560,8 +567,8 @@ namespace MWWorld
{
MWBase::Environment::get().getMechanicsManager()->remove (ptr);
MWBase::Environment::get().getSoundManager()->stopSound3D (ptr);
mPhysics->removeObject (ptr.getRefData().getHandle());
mRendering.removeObject (ptr);
//mPhysics->removeObject (ptr.getRefData().getHandle());
//mRendering.removeObject (ptr);
}
bool Scene::isCellActive(const CellStore &cell)

@ -1,11 +1,13 @@
#ifndef GAME_MWWORLD_SCENE_H
#define GAME_MWWORLD_SCENE_H
#include "../mwrender/renderingmanager.hpp"
//#include "../mwrender/renderingmanager.hpp"
#include "ptr.hpp"
#include "globals.hpp"
#include <set>
namespace Ogre
{
class Vector3;
@ -35,6 +37,7 @@ namespace MWRender
{
class SkyManager;
class CellRender;
class RenderingManager;
}
namespace MWWorld
@ -55,8 +58,8 @@ namespace MWWorld
CellStore* mCurrentCell; // the cell the player is in
CellStoreCollection mActiveCells;
bool mCellChanged;
PhysicsSystem *mPhysics;
MWRender::RenderingManager& mRendering;
//PhysicsSystem *mPhysics;
//MWRender::RenderingManager& mRendering;
bool mNeedMapUpdate;

@ -13,7 +13,7 @@
#include "../mwsound/sound.hpp"
#include "../mwrender/renderingmanager.hpp"
//#include "../mwrender/renderingmanager.hpp"
#include "player.hpp"
#include "esmstore.hpp"

@ -16,7 +16,6 @@
#include <openengine/misc/rng.hpp>
#include <components/bsa/bsa_archive.hpp>
#include <components/files/collections.hpp>
#include <components/compiler/locals.hpp>
#include <components/esm/cellid.hpp>
@ -37,8 +36,7 @@
#include "../mwmechanics/combat.hpp"
#include "../mwmechanics/aiavoiddoor.hpp" //Used to tell actors to avoid doors
#include "../mwrender/sky.hpp"
#include "../mwrender/animation.hpp"
//#include "../mwrender/animation.hpp"
#include "../mwscript/interpretercontext.hpp"
@ -51,7 +49,8 @@
#include "containerstore.hpp"
#include "inventorystore.hpp"
#include "actionteleport.hpp"
#include "projectilemanager.hpp"
//#include "projectilemanager.hpp"
#include "weather.hpp"
#include "contentloader.hpp"
#include "esmloader.hpp"
@ -129,6 +128,7 @@ namespace MWWorld
void World::adjustSky()
{
#if 0
if (mSky && (isCellExterior() || isCellQuasiExterior()))
{
mRendering->skySetHour (mGlobalVariables["gamehour"].getFloat());
@ -139,9 +139,10 @@ namespace MWWorld
}
else
mRendering->skyDisable();
#endif
}
World::World (OEngine::Render::OgreRenderer& renderer,
World::World (
const Files::Collections& fileCollections,
const std::vector<std::string>& contentFiles,
const boost::filesystem::path& resDir, const boost::filesystem::path& cacheDir,
@ -156,16 +157,16 @@ namespace MWWorld
mStartCell (startCell), mStartupScript(startupScript),
mScriptsEnabled(true)
{
mPhysics = new PhysicsSystem(renderer);
mPhysEngine = mPhysics->getEngine();
//mPhysics = new PhysicsSystem(renderer);
//mPhysEngine = mPhysics->getEngine();
#if 0
mProjectileManager.reset(new ProjectileManager(renderer.getScene(), *mPhysEngine));
#endif
//mRendering = new MWRender::RenderingManager(renderer, resDir, cacheDir, mPhysEngine,&mFallback);
mRendering = new MWRender::RenderingManager(renderer, resDir, cacheDir, mPhysEngine,&mFallback);
mPhysEngine->setSceneManager(renderer.getScene());
//mPhysEngine->setSceneManager(renderer.getScene());
mWeatherManager = new MWWorld::WeatherManager(mRendering,&mFallback);
//mWeatherManager = new MWWorld::WeatherManager(mRendering,&mFallback);
mEsm.resize(contentFiles.size());
Loading::Listener* listener = MWBase::Environment::get().getWindowManager()->getLoadingScreen();
@ -195,7 +196,7 @@ namespace MWWorld
mGlobalVariables.fill (mStore);
mWorldScene = new Scene(*mRendering, mPhysics);
mWorldScene = new Scene(*mRendering, NULL/*mPhysics*/);
}
void World::startNewGame (bool bypass)
@ -208,7 +209,7 @@ namespace MWWorld
setupPlayer();
renderPlayer();
mRendering->resetCamera();
//mRendering->resetCamera();
MWBase::Environment::get().getWindowManager()->updatePlayer();
@ -257,13 +258,13 @@ namespace MWWorld
MWBase::Environment::get().getWindowManager()->playVideo(mFallback.getFallbackString("Movies_New_Game"), true);
// enable collision
if (!mPhysics->toggleCollisionMode())
mPhysics->toggleCollisionMode();
//if (!mPhysics->toggleCollisionMode())
// mPhysics->toggleCollisionMode();
// we don't want old weather to persist on a new game
delete mWeatherManager;
mWeatherManager = 0;
mWeatherManager = new MWWorld::WeatherManager(mRendering,&mFallback);
//delete mWeatherManager;
//mWeatherManager = 0;
//mWeatherManager = new MWWorld::WeatherManager(mRendering,&mFallback);
if (!mStartupScript.empty())
MWBase::Environment::get().getWindowManager()->executeInConsole(mStartupScript);
@ -271,11 +272,11 @@ namespace MWWorld
void World::clear()
{
mWeatherManager->clear();
mRendering->clear();
//mWeatherManager->clear();
//mRendering->clear();
#if 0
mProjectileManager->clear();
#endif
mLocalScripts.clear();
mWorldScene->changeToVoid();
@ -310,7 +311,9 @@ namespace MWWorld
mCells.countSavedGameRecords()
+mStore.countSavedGameRecords()
+mGlobalVariables.countSavedGameRecords()
#if 0
+mProjectileManager->countSavedGameRecords()
#endif
+1 // player record
+1 // weather record
+1 // actorId counter
@ -329,8 +332,8 @@ namespace MWWorld
for (Scene::CellStoreCollection::const_iterator iter (mWorldScene->getActiveCells().begin());
iter!=mWorldScene->getActiveCells().end(); ++iter)
{
CellStore* cellstore = *iter;
mRendering->writeFog(cellstore);
//CellStore* cellstore = *iter;
//mRendering->writeFog(cellstore);
}
MWMechanics::CreatureStats::writeActorIdCounter(writer);
@ -340,9 +343,10 @@ namespace MWWorld
mCells.write (writer, progress);
mGlobalVariables.write (writer, progress);
mPlayer->write (writer, progress);
mWeatherManager->write (writer, progress);
//mWeatherManager->write (writer, progress);
#if 0
mProjectileManager->write (writer, progress);
#endif
writer.startRecord(ESM::REC_ENAB);
writer.writeHNT("TELE", mTeleportEnabled);
writer.writeHNT("LEVT", mLevitationEnabled);
@ -369,9 +373,12 @@ namespace MWWorld
if (!mStore.readRecord (reader, type) &&
!mGlobalVariables.readRecord (reader, type) &&
!mPlayer->readRecord (reader, type) &&
!mWeatherManager->readRecord (reader, type) &&
!mCells.readRecord (reader, type, contentFileMap) &&
!mProjectileManager->readRecord (reader, type))
//!mWeatherManager->readRecord (reader, type) &&
!mCells.readRecord (reader, type, contentFileMap)
#if 0
&& !mProjectileManager->readRecord (reader, type)
#endif
)
{
throw std::runtime_error ("unknown record in saved game");
}
@ -463,13 +470,14 @@ namespace MWWorld
World::~World()
{
#if 0
// Must be cleared before mRendering is destroyed
mProjectileManager->clear();
delete mWeatherManager;
#endif
//delete mWeatherManager;
delete mWorldScene;
delete mRendering;
delete mPhysics;
//delete mRendering;
//delete mPhysics;
delete mPlayer;
}
@ -521,6 +529,7 @@ namespace MWWorld
void World::useDeathCamera()
{
#if 0
if(mRendering->getCamera()->isVanityOrPreviewModeEnabled() )
{
mRendering->getCamera()->togglePreviewMode(false);
@ -528,6 +537,7 @@ namespace MWWorld
}
if(mRendering->getCamera()->isFirstPerson())
mRendering->getCamera()->toggleViewMode(true);
#endif
}
MWWorld::Player& World::getPlayer()
@ -804,7 +814,7 @@ namespace MWWorld
{
MWBase::Environment::get().getMechanicsManager()->advanceTime(static_cast<float>(hours * 3600));
mWeatherManager->advanceTime (hours);
//mWeatherManager->advanceTime (hours);
hours += mGlobalVariables["gamehour"].getFloat();
@ -828,9 +838,9 @@ namespace MWWorld
mGlobalVariables["gamehour"].setFloat(static_cast<float>(hour));
mRendering->skySetHour (hour);
//mRendering->skySetHour (hour);
mWeatherManager->setHour(static_cast<float>(hour));
//mWeatherManager->setHour(static_cast<float>(hour));
if (days>0)
setDay (days + mGlobalVariables["day"].getInteger());
@ -865,7 +875,7 @@ namespace MWWorld
mGlobalVariables["day"].setInteger (day);
mGlobalVariables["month"].setInteger (month);
mRendering->skySetDate (day, month);
//mRendering->skySetDate (day, month);
}
void World::setMonth (int month)
@ -886,7 +896,7 @@ namespace MWWorld
if (years>0)
mGlobalVariables["year"].setInteger (years+mGlobalVariables["year"].getInteger());
mRendering->skySetDate (mGlobalVariables["day"].getInteger(), month);
//mRendering->skySetDate (mGlobalVariables["day"].getInteger(), month);
}
int World::getDay() const
@ -932,6 +942,7 @@ namespace MWWorld
bool World::toggleSky()
{
#if 0
if (mSky)
{
mSky = false;
@ -944,21 +955,23 @@ namespace MWWorld
mRendering->skyEnable();
return true;
}
#endif
return 0;
}
int World::getMasserPhase() const
{
return mRendering->skyGetMasserPhase();
return 0;//mRendering->skyGetMasserPhase();
}
int World::getSecundaPhase() const
{
return mRendering->skyGetSecundaPhase();
return 0;//mRendering->skyGetSecundaPhase();
}
void World::setMoonColour (bool red)
{
mRendering->skySetMoonColour (red);
//mRendering->skySetMoonColour (red);
}
float World::getTimeScaleFactor() const
@ -968,13 +981,15 @@ namespace MWWorld
void World::changeToInteriorCell (const std::string& cellName, const ESM::Position& position)
{
mPhysics->clearQueuedMovement();
//mPhysics->clearQueuedMovement();
if (mCurrentWorldSpace != cellName)
{
// changed worldspace
#if 0
mProjectileManager->clear();
mRendering->notifyWorldSpaceChanged();
#endif
mCurrentWorldSpace = cellName;
}
@ -985,13 +1000,15 @@ namespace MWWorld
void World::changeToExteriorCell (const ESM::Position& position)
{
mPhysics->clearQueuedMovement();
//mPhysics->clearQueuedMovement();
if (mCurrentWorldSpace != "sys::default") // FIXME
{
// changed worldspace
#if 0
mProjectileManager->clear();
mRendering->notifyWorldSpaceChanged();
#endif
}
removeContainerScripts(getPlayerPtr());
mWorldScene->changeToExteriorCell(position, true);
@ -1049,6 +1066,7 @@ namespace MWWorld
std::pair<MWWorld::Ptr,Ogre::Vector3> World::getHitContact(const MWWorld::Ptr &ptr, float distance)
{
/*
const ESM::Position &posdata = ptr.getRefData().getPosition();
Ogre::Vector3 pos(posdata.pos);
Ogre::Quaternion rot = Ogre::Quaternion(Ogre::Radian(posdata.rot[2]), Ogre::Vector3::NEGATIVE_UNIT_Z) *
@ -1063,9 +1081,10 @@ namespace MWWorld
if(node != NULL)
pos += node->_getDerivedPosition();
}
*/
std::pair<std::string,Ogre::Vector3> result = mPhysics->getHitContact(ptr.getRefData().getHandle(),
pos, rot, distance);
std::pair<std::string,Ogre::Vector3> result;// = mPhysics->getHitContact(ptr.getRefData().getHandle(),
// pos, rot, distance);
if(result.first.empty())
return std::make_pair(MWWorld::Ptr(), Ogre::Vector3(0.0f));
@ -1174,7 +1193,7 @@ namespace MWWorld
MWWorld::Ptr copy =
ptr.getClass().copyToCell(ptr, *newCell, pos);
mRendering->updateObjectCell(ptr, copy);
//mRendering->updateObjectCell(ptr, copy);
ptr.getRefData().setBaseNode(NULL);
MWBase::Environment::get().getSoundManager()->updatePtr (ptr, copy);
@ -1196,8 +1215,8 @@ namespace MWWorld
}
if (haveToMove && ptr.getRefData().getBaseNode())
{
mRendering->moveObject(ptr, vec);
mPhysics->moveObject (ptr);
//mRendering->moveObject(ptr, vec);
//mPhysics->moveObject (ptr);
}
if (isPlayer)
{
@ -1235,8 +1254,8 @@ namespace MWWorld
if(ptr.getRefData().getBaseNode() == 0)
return;
mRendering->scaleObject(ptr, Vector3(scale,scale,scale));
mPhysics->scaleObject(ptr);
//mRendering->scaleObject(ptr, Vector3(scale,scale,scale));
//mPhysics->scaleObject(ptr);
}
void World::rotateObjectImp (const Ptr& ptr, Ogre::Vector3 rot, bool adjust)
@ -1322,7 +1341,7 @@ namespace MWWorld
return;
}
float terrainHeight = mRendering->getTerrainHeightAt(Ogre::Vector3(pos.pos));
float terrainHeight = 0;//mRendering->getTerrainHeightAt(Ogre::Vector3(pos.pos));
if (pos.pos[2] < terrainHeight)
pos.pos[2] = terrainHeight;
@ -1333,7 +1352,7 @@ namespace MWWorld
if (force || !isFlying(ptr))
{
Ogre::Vector3 traced = mPhysics->traceDown(ptr, 500);
Ogre::Vector3 traced;// = mPhysics->traceDown(ptr, 500);
if (traced.z < pos.pos[2])
pos.pos[2] = traced.z;
}
@ -1348,7 +1367,7 @@ namespace MWWorld
pos.pos[2] += dist;
actor.getRefData().setPosition(pos);
Ogre::Vector3 traced = mPhysics->traceDown(actor, dist*1.1f);
Ogre::Vector3 traced;// = mPhysics->traceDown(actor, dist*1.1f);
moveObject(actor, actor.getCell(), traced.x, traced.y, traced.z);
}
@ -1389,12 +1408,13 @@ namespace MWWorld
void World::queueMovement(const Ptr &ptr, const Vector3 &velocity)
{
mPhysics->queueObjectMovement(ptr, velocity);
//mPhysics->queueObjectMovement(ptr, velocity);
}
void World::doPhysics(float duration)
{
mPhysics->stepSimulation(duration);
#if 0
//mPhysics->stepSimulation(duration);
processDoors(duration);
@ -1414,17 +1434,19 @@ namespace MWWorld
}
if(player != results.end())
moveObjectImp(player->first, player->second.x, player->second.y, player->second.z);
#endif
}
bool World::castRay (float x1, float y1, float z1, float x2, float y2, float z2)
{
Ogre::Vector3 a(x1,y1,z1);
Ogre::Vector3 b(x2,y2,z2);
return mPhysics->castRay(a,b,false,true);
return 0;//mPhysics->castRay(a,b,false,true);
}
void World::processDoors(float duration)
{
#if 0
std::map<MWWorld::Ptr, int>::iterator it = mDoorStates.begin();
while (it != mDoorStates.end())
{
@ -1475,16 +1497,17 @@ namespace MWWorld
++it;
}
}
#endif
}
bool World::toggleCollisionMode()
{
return mPhysics->toggleCollisionMode();
return 0;//mPhysics->toggleCollisionMode();
}
bool World::toggleRenderMode (RenderMode mode)
{
return mRendering->toggleRenderMode (mode);
return 0;//mRendering->toggleRenderMode (mode);
}
const ESM::Potion *World::createRecord (const ESM::Potion& record)
@ -1544,7 +1567,7 @@ namespace MWWorld
}
const ESM::NPC *ret = mStore.insert(record);
if (update) {
mRendering->renderPlayer(mPlayer->getPlayer());
//mRendering->renderPlayer(mPlayer->getPlayer());
}
return ret;
}
@ -1581,8 +1604,8 @@ namespace MWWorld
updateWeather(duration, paused);
if (!paused)
doPhysics (duration);
//if (!paused)
// doPhysics (duration);
mWorldScene->update (duration, paused);
@ -1625,7 +1648,7 @@ namespace MWWorld
Ogre::AxisAlignedBox bounds = node->_getWorldAABB();
if (bounds.isFinite())
{
Vector4 screenCoords = mRendering->boundingBoxToScreen(bounds);
Vector4 screenCoords;// = mRendering->boundingBoxToScreen(bounds);
MWBase::Environment::get().getWindowManager()->setFocusObjectScreenCoords(
screenCoords[0], screenCoords[1], screenCoords[2], screenCoords[3]);
}
@ -1634,6 +1657,7 @@ namespace MWWorld
void World::performUpdateSceneQueries ()
{
#if 0
if (!mRendering->occlusionQuerySupported())
{
// cast a ray from player to sun to detect if the sun is visible
@ -1643,22 +1667,23 @@ namespace MWWorld
Vector3 sun = mRendering->getSkyManager()->getRealSunPos();
mRendering->getSkyManager()->setGlare(!mPhysics->castRay(Ogre::Vector3(p[0], p[1], p[2]), sun));
}
#endif
}
void World::getFacedHandle(std::string& facedHandle, float maxDistance, bool ignorePlayer)
{
maxDistance += mRendering->getCameraDistance();
//maxDistance += mRendering->getCameraDistance();
std::vector < std::pair < float, std::string > > results;
if (MWBase::Environment::get().getWindowManager()->isGuiMode())
{
float x, y;
MWBase::Environment::get().getWindowManager()->getMousePosition(x, y);
results = mPhysics->getFacedHandles(x, y, maxDistance);
//results = mPhysics->getFacedHandles(x, y, maxDistance);
}
else
{
results = mPhysics->getFacedHandles(maxDistance);
//results = mPhysics->getFacedHandles(maxDistance);
}
if (ignorePlayer &&
@ -1697,17 +1722,17 @@ namespace MWWorld
int World::getCurrentWeather() const
{
return mWeatherManager->getWeatherID();
return 0;//mWeatherManager->getWeatherID();
}
void World::changeWeather(const std::string& region, const unsigned int id)
{
mWeatherManager->changeWeather(region, id);
//mWeatherManager->changeWeather(region, id);
}
void World::modRegion(const std::string &regionid, const std::vector<char> &chances)
{
mWeatherManager->modRegion(regionid, chances);
//mWeatherManager->modRegion(regionid, chances);
}
Ogre::Vector2 World::getNorthVector (CellStore* cell)
@ -1767,33 +1792,33 @@ namespace MWWorld
void World::worldToInteriorMapPosition (Ogre::Vector2 position, float& nX, float& nY, int &x, int& y)
{
mRendering->worldToInteriorMapPosition(position, nX, nY, x, y);
//mRendering->worldToInteriorMapPosition(position, nX, nY, x, y);
}
Ogre::Vector2 World::interiorMapToWorldPosition(float nX, float nY, int x, int y)
{
return mRendering->interiorMapToWorldPosition(nX, nY, x, y);
return Ogre::Vector2();//mRendering->interiorMapToWorldPosition(nX, nY, x, y);
}
bool World::isPositionExplored (float nX, float nY, int x, int y, bool interior)
{
return mRendering->isPositionExplored(nX, nY, x, y, interior);
return 0;//mRendering->isPositionExplored(nX, nY, x, y, interior);
}
void World::setWaterHeight(const float height)
{
mPhysics->setWaterHeight(height);
mRendering->setWaterHeight(height);
//mPhysics->setWaterHeight(height);
//mRendering->setWaterHeight(height);
}
bool World::toggleWater()
{
return mRendering->toggleWater();
return 0;//mRendering->toggleWater();
}
bool World::toggleWorld()
{
return mRendering->toggleWorld();
return 0;//mRendering->toggleWorld();
}
void World::PCDropped (const Ptr& item)
@ -1807,7 +1832,7 @@ namespace MWWorld
MWWorld::Ptr World::placeObject (const MWWorld::Ptr& object, float cursorX, float cursorY, int amount)
{
std::pair<bool, Ogre::Vector3> result = mPhysics->castRay(cursorX, cursorY);
std::pair<bool, Ogre::Vector3> result;// = mPhysics->castRay(cursorX, cursorY);
if (!result.first)
return MWWorld::Ptr();
@ -1838,7 +1863,7 @@ namespace MWWorld
{
Ogre::Vector3 normal(0,0,0);
std::string handle;
std::pair<bool, Ogre::Vector3> result = mPhysics->castRay(cursorX, cursorY, &normal, &handle);
std::pair<bool, Ogre::Vector3> result;// = mPhysics->castRay(cursorX, cursorY, &normal, &handle);
if (result.first)
{
@ -1859,6 +1884,7 @@ namespace MWWorld
Ptr World::copyObjectToCell(const Ptr &object, CellStore* cell, ESM::Position pos, bool adjustPos)
{
#if 0
if (!object.getClass().isActor() && adjustPos)
{
// Adjust position so the location we wanted ends up in the middle of the object bounding box
@ -1879,6 +1905,7 @@ namespace MWWorld
pos.pos[2] -= adjust.z;
}
}
#endif
if (cell->isExterior())
{
@ -1926,12 +1953,12 @@ namespace MWWorld
Ogre::Vector3 orig =
Ogre::Vector3(pos.pos);
orig.z += 20;
Ogre::Vector3 dir = Ogre::Vector3(0, 0, -1);
//Ogre::Vector3 dir = Ogre::Vector3(0, 0, -1);
float len = 100.0;
//float len = 100.0;
std::pair<bool, Ogre::Vector3> hit =
mPhysics->castRay(orig, dir, len);
std::pair<bool, Ogre::Vector3> hit;// =
//mPhysics->castRay(orig, dir, len);
if (hit.first)
pos.pos[2] = hit.second.z;
@ -1948,12 +1975,12 @@ namespace MWWorld
void World::processChangedSettings(const Settings::CategorySettingVector& settings)
{
mRendering->processChangedSettings(settings);
//mRendering->processChangedSettings(settings);
}
void World::getTriangleBatchCount(unsigned int &triangles, unsigned int &batches)
{
mRendering->getTriangleBatchCount(triangles, batches);
//mRendering->getTriangleBatchCount(triangles, batches);
}
bool World::isFlying(const MWWorld::Ptr &ptr) const
@ -2072,12 +2099,12 @@ namespace MWWorld
bool World::vanityRotateCamera(float * rot)
{
return mRendering->vanityRotateCamera(rot);
return 0;//mRendering->vanityRotateCamera(rot);
}
void World::setCameraDistance(float dist, bool adjust, bool override_)
{
return mRendering->setCameraDistance(dist, adjust, override_);
//mRendering->setCameraDistance(dist, adjust, override_);
}
void World::setupPlayer()
@ -2093,13 +2120,13 @@ namespace MWWorld
mPlayer->set(player);
}
Ptr ptr = mPlayer->getPlayer();
mRendering->setupPlayer(ptr);
//Ptr ptr = mPlayer->getPlayer();
//mRendering->setupPlayer(ptr);
}
void World::renderPlayer()
{
mRendering->renderPlayer(mPlayer->getPlayer());
//mRendering->renderPlayer(mPlayer->getPlayer());
// At this point the Animation object is live, and the CharacterController associated with it must be created.
// It has to be done at this point: resetCamera below does animation->setViewMode -> CharacterController::forceStateUpdate
@ -2107,8 +2134,8 @@ namespace MWWorld
MWBase::Environment::get().getMechanicsManager()->add(mPlayer->getPlayer());
std::string model = getPlayerPtr().getClass().getModel(getPlayerPtr());
model = Misc::ResourceHelpers::correctActorModelPath(model);
mPhysics->addActor(mPlayer->getPlayer(), model);
//model = Misc::ResourceHelpers::correctActorModelPath(model);
//mPhysics->addActor(mPlayer->getPlayer(), model);
}
int World::canRest ()
@ -2134,17 +2161,17 @@ namespace MWWorld
MWRender::Animation* World::getAnimation(const MWWorld::Ptr &ptr)
{
return mRendering->getAnimation(ptr);
return 0;//return mRendering->getAnimation(ptr);
}
void World::frameStarted (float dt, bool paused)
{
mRendering->frameStarted(dt, paused);
//mRendering->frameStarted(dt, paused);
}
void World::screenshot(Ogre::Image &image, int w, int h)
{
mRendering->screenshot(image, w, h);
//mRendering->screenshot(image, w, h);
}
void World::activateDoor(const MWWorld::Ptr& door)
@ -2180,27 +2207,27 @@ namespace MWWorld
bool World::getPlayerStandingOn (const MWWorld::Ptr& object)
{
MWWorld::Ptr player = getPlayerPtr();
return mPhysics->isActorStandingOn(player, object);
//MWWorld::Ptr player = getPlayerPtr();
return 0;//mPhysics->isActorStandingOn(player, object);
}
bool World::getActorStandingOn (const MWWorld::Ptr& object)
{
std::vector<std::string> actors;
mPhysics->getActorsStandingOn(object, actors);
//mPhysics->getActorsStandingOn(object, actors);
return !actors.empty();
}
bool World::getPlayerCollidingWith (const MWWorld::Ptr& object)
{
MWWorld::Ptr player = getPlayerPtr();
return mPhysics->isActorCollidingWith(player, object);
//MWWorld::Ptr player = getPlayerPtr();
return 0;//mPhysics->isActorCollidingWith(player, object);
}
bool World::getActorCollidingWith (const MWWorld::Ptr& object)
{
std::vector<std::string> actors;
mPhysics->getActorsCollidingWith(object, actors);
//mPhysics->getActorsCollidingWith(object, actors);
return !actors.empty();
}
@ -2210,7 +2237,7 @@ namespace MWWorld
return;
std::vector<std::string> actors;
mPhysics->getActorsStandingOn(object, actors);
//mPhysics->getActorsStandingOn(object, actors);
for (std::vector<std::string>::iterator it = actors.begin(); it != actors.end(); ++it)
{
MWWorld::Ptr actor = searchPtrViaHandle(*it); // Collision events are from the last frame, actor might no longer exist
@ -2241,7 +2268,7 @@ namespace MWWorld
return;
std::vector<std::string> actors;
mPhysics->getActorsCollidingWith(object, actors);
//mPhysics->getActorsCollidingWith(object, actors);
for (std::vector<std::string>::iterator it = actors.begin(); it != actors.end(); ++it)
{
MWWorld::Ptr actor = searchPtrViaHandle(*it); // Collision events are from the last frame, actor might no longer exist
@ -2269,7 +2296,7 @@ namespace MWWorld
float World::getWindSpeed()
{
if (isCellExterior() || isCellQuasiExterior())
return mWeatherManager->getWindSpeed();
return 0;//mWeatherManager->getWindSpeed();
else
return 0.f;
}
@ -2277,7 +2304,7 @@ namespace MWWorld
bool World::isInStorm() const
{
if (isCellExterior() || isCellQuasiExterior())
return mWeatherManager->isInStorm();
return 0;//mWeatherManager->isInStorm();
else
return false;
}
@ -2285,7 +2312,7 @@ namespace MWWorld
Ogre::Vector3 World::getStormDirection() const
{
if (isCellExterior() || isCellQuasiExterior())
return mWeatherManager->getStormDirection();
return Ogre::Vector3();//mWeatherManager->getStormDirection();
else
return Ogre::Vector3(0,1,0);
}
@ -2479,7 +2506,7 @@ namespace MWWorld
void World::reattachPlayerCamera()
{
mRendering->rebuildPtr(getPlayerPtr());
//mRendering->rebuildPtr(getPlayerPtr());
}
void World::setWerewolf(const MWWorld::Ptr& actor, bool werewolf)
@ -2512,7 +2539,7 @@ namespace MWWorld
// NpcAnimation::updateParts will already rebuild the animation when it detects change of Npc type.
// the following is just for reattaching the camera properly.
mRendering->rebuildPtr(actor);
//mRendering->rebuildPtr(actor);
if(actor == getPlayerPtr())
{
@ -2684,6 +2711,7 @@ namespace MWWorld
{
// For NPCs use facing direction from Head node
Ogre::Vector3 origin(actor.getRefData().getPosition().pos);
#if 0
MWRender::Animation *anim = mRendering->getAnimation(actor);
if(anim != NULL)
{
@ -2693,6 +2721,7 @@ namespace MWWorld
if(node != NULL)
origin += node->_getDerivedPosition();
}
#endif
Ogre::Quaternion orient;
orient = Ogre::Quaternion(Ogre::Radian(actor.getRefData().getPosition().rot[2]), Ogre::Vector3::NEGATIVE_UNIT_Z) *
Ogre::Quaternion(Ogre::Radian(actor.getRefData().getPosition().rot[0]), Ogre::Vector3::NEGATIVE_UNIT_X);
@ -2739,14 +2768,18 @@ namespace MWWorld
void World::launchProjectile (MWWorld::Ptr actor, MWWorld::Ptr projectile,
const Ogre::Vector3& worldPos, const Ogre::Quaternion& orient, MWWorld::Ptr bow, float speed)
{
#if 0
mProjectileManager->launchProjectile(actor, projectile, worldPos, orient, bow, speed);
#endif
}
void World::launchMagicBolt (const std::string& model, const std::string &sound, const std::string &spellId,
float speed, bool stack, const ESM::EffectList& effects,
const MWWorld::Ptr& caster, const std::string& sourceName, const Ogre::Vector3& fallbackDirection)
{
#if 0
mProjectileManager->launchMagicBolt(model, sound, spellId, speed, stack, effects, caster, sourceName, fallbackDirection);
#endif
}
const std::vector<std::string>& World::getContentFiles() const
@ -2768,7 +2801,7 @@ namespace MWWorld
{
MWWorld::CellStore* cell = mPlayer->getPlayer().getCell();
if (cell->isExterior())
return mWeatherManager->isDark();
return 0;//mWeatherManager->isDark();
else
{
uint32_t ambient = cell->getCell()->mAmbi.mAmbient;
@ -2933,10 +2966,10 @@ namespace MWWorld
if (mPlayer->wasTeleported())
{
mPlayer->setTeleported(false);
mWeatherManager->switchToNextWeather(true);
//mWeatherManager->switchToNextWeather(true);
}
mWeatherManager->update(duration, paused);
//mWeatherManager->update(duration, paused);
}
struct AddDetectedReference
@ -3190,12 +3223,12 @@ namespace MWWorld
modelName << roll;
std::string model = "meshes\\" + getFallback()->getFallbackString(modelName.str());
mRendering->spawnEffect(model, texture, worldPosition);
//mRendering->spawnEffect(model, texture, worldPosition);
}
void World::spawnEffect(const std::string &model, const std::string &textureOverride, const Vector3 &worldPos)
{
mRendering->spawnEffect(model, textureOverride, worldPos);
//mRendering->spawnEffect(model, textureOverride, worldPos);
}
void World::explodeSpell(const Vector3 &origin, const ESM::EffectList &effects, const Ptr &caster, ESM::RangeType rangeType,
@ -3211,6 +3244,7 @@ namespace MWWorld
continue; // Not an area effect
// Spawn the explosion orb effect
/*
const ESM::Static* areaStatic;
if (!effect->mCasting.empty())
areaStatic = getStore().get<ESM::Static>().find (effect->mArea);
@ -3218,6 +3252,7 @@ namespace MWWorld
areaStatic = getStore().get<ESM::Static>().find ("VFX_DefaultArea");
mRendering->spawnEffect("meshes\\" + areaStatic->mModel, "", origin, static_cast<float>(effectIt->mArea));
*/
// Play explosion sound (make sure to use NoTrack, since we will delete the projectile now)
static const std::string schools[] = {

@ -8,7 +8,7 @@
#include "ptr.hpp"
#include "scene.hpp"
#include "esmstore.hpp"
#include "physicssystem.hpp"
//#include "physicssystem.hpp"
#include "cells.hpp"
#include "localscripts.hpp"
#include "timestamp.hpp"
@ -19,6 +19,8 @@
#include "contentloader.hpp"
#include <components/settings/settings.hpp>
namespace Ogre
{
class Vector3;
@ -62,7 +64,7 @@ namespace MWWorld
MWWorld::Fallback mFallback;
MWRender::RenderingManager* mRendering;
MWWorld::WeatherManager* mWeatherManager;
//MWWorld::WeatherManager* mWeatherManager;
MWWorld::Scene *mWorldScene;
MWWorld::Player *mPlayer;
@ -152,7 +154,7 @@ namespace MWWorld
public:
World (OEngine::Render::OgreRenderer& renderer,
World (
const Files::Collections& fileCollections,
const std::vector<std::string>& contentFiles,
const boost::filesystem::path& resDir, const boost::filesystem::path& cacheDir,
@ -465,31 +467,31 @@ namespace MWWorld
virtual bool isOnGround(const MWWorld::Ptr &ptr) const;
virtual void togglePOV() {
mRendering->togglePOV();
//mRendering->togglePOV();
}
virtual bool isFirstPerson() const {
return mRendering->getCamera()->isFirstPerson();
return 0;//mRendering->getCamera()->isFirstPerson();
}
virtual void togglePreviewMode(bool enable) {
mRendering->togglePreviewMode(enable);
//mRendering->togglePreviewMode(enable);
}
virtual bool toggleVanityMode(bool enable) {
return mRendering->toggleVanityMode(enable);
return 0;//mRendering->toggleVanityMode(enable);
}
virtual void allowVanityMode(bool allow) {
mRendering->allowVanityMode(allow);
//mRendering->allowVanityMode(allow);
}
virtual void togglePlayerLooking(bool enable) {
mRendering->togglePlayerLooking(enable);
//mRendering->togglePlayerLooking(enable);
}
virtual void changeVanityModeScale(float factor) {
mRendering->changeVanityModeScale(factor);
//mRendering->changeVanityModeScale(factor);
}
virtual bool vanityRotateCamera(float * rot);

@ -67,11 +67,11 @@ ELSE (WIN32) #Unix
SET(MYGUI_INCLUDE_DIRS ${MYGUI_INCLUDE_DIRS})
SET(MYGUI_LIB_DIR ${MYGUI_LIBDIR})
SET(MYGUI_LIBRARIES ${MYGUI_LIBRARIES} CACHE STRING "")
SET(MYGUI_PLATFORM_LIBRARIES "MyGUI.OgrePlatform")
SET(MYGUI_PLATFORM_LIBRARIES "MyGUI.DummyPlatform")
ELSE (MYGUI_INCLUDE_DIRS)
FIND_PATH(MYGUI_INCLUDE_DIRS MyGUI.h PATHS /usr/local/include /usr/include PATH_SUFFIXES MyGUI MYGUI)
FIND_LIBRARY(MYGUI_LIBRARIES myguistatic PATHS /usr/lib /usr/local/lib)
SET(MYGUI_PLATFORM_LIBRARIES "MyGUI.OgrePlatform")
SET(MYGUI_PLATFORM_LIBRARIES "MyGUI.DummyPlatform")
SET(MYGUI_LIB_DIR ${MYGUI_LIBRARIES})
STRING(REGEX REPLACE "(.*)/.*" "\\1" MYGUI_LIB_DIR "${MYGUI_LIB_DIR}")
STRING(REGEX REPLACE ".*/" "" MYGUI_LIBRARIES "${MYGUI_LIBRARIES}")
@ -81,7 +81,7 @@ ELSE (WIN32) #Unix
FIND_PACKAGE(freetype)
FIND_PATH(MYGUI_INCLUDE_DIRS MyGUI.h PATHS /usr/local/include /usr/include PATH_SUFFIXES MyGUI MYGUI)
FIND_LIBRARY(MYGUI_LIBRARIES MyGUIEngineStatic PATHS /usr/lib /usr/local/lib)
SET(MYGUI_PLATFORM_LIBRARIES "MyGUI.OgrePlatform")
SET(MYGUI_PLATFORM_LIBRARIES "MyGUI.DummyPlatform")
SET(MYGUI_LIB_DIR ${MYGUI_LIBRARIES})
STRING(REGEX REPLACE "(.*)/.*" "\\1" MYGUI_LIB_DIR "${MYGUI_LIB_DIR}")
STRING(REGEX REPLACE ".*/" "" MYGUI_LIBRARIES "${MYGUI_LIBRARIES}")
@ -92,11 +92,11 @@ ELSE (WIN32) #Unix
SET(MYGUI_INCLUDE_DIRS ${MYGUI_INCLUDE_DIRS})
SET(MYGUI_LIB_DIR ${MYGUI_LIBDIR})
SET(MYGUI_LIBRARIES ${MYGUI_LIBRARIES} CACHE STRING "")
SET(MYGUI_PLATFORM_LIBRARIES "MyGUI.OgrePlatform")
SET(MYGUI_PLATFORM_LIBRARIES "MyGUI.DummyPlatform")
ELSE (MYGUI_INCLUDE_DIRS)
FIND_PATH(MYGUI_INCLUDE_DIRS MyGUI.h PATHS /usr/local/include /usr/include PATH_SUFFIXES MyGUI MYGUI)
FIND_LIBRARY(MYGUI_LIBRARIES mygui PATHS /usr/lib /usr/local/lib)
SET(MYGUI_PLATFORM_LIBRARIES "MyGUI.OgrePlatform")
SET(MYGUI_PLATFORM_LIBRARIES "MyGUI.DummyPlatform")
SET(MYGUI_LIB_DIR ${MYGUI_LIBRARIES})
STRING(REGEX REPLACE "(.*)/.*" "\\1" MYGUI_LIB_DIR "${MYGUI_LIB_DIR}")
STRING(REGEX REPLACE ".*/" "" MYGUI_LIBRARIES "${MYGUI_LIBRARIES}")

@ -26,10 +26,6 @@ add_component_dir (settings
settings
)
add_component_dir (nifoverrides
nifoverrides
)
add_component_dir (bsa
bsa_file
)

@ -25,6 +25,7 @@ ESMReader::ESMReader()
, mIdx(0)
, mGlobalReaderList(NULL)
, mEncoder(NULL)
, mFileSize(0)
{
}
@ -64,7 +65,7 @@ void ESMReader::openRaw(Files::IStreamPtr _esm, const std::string& name)
mEsm = _esm;
mCtx.filename = name;
mEsm->seekg(0, mEsm->end);
mCtx.leftFile = mEsm->tellg();
mCtx.leftFile = mFileSize = mEsm->tellg();
mEsm->seekg(0, mEsm->beg);
}

@ -261,6 +261,8 @@ public:
/// Get record flags of last record
unsigned int getRecordFlags() { return mRecordFlags; }
size_t getFileSize() const { return mFileSize; }
private:
Files::IStreamPtr mEsm;
@ -277,6 +279,9 @@ private:
std::vector<ESMReader> *mGlobalReaderList;
ToUTF8::Utf8Encoder* mEncoder;
size_t mFileSize;
};
}
#endif

@ -147,6 +147,7 @@ namespace Gui
void FontLoader::loadAllFonts(bool exportToFile)
{
/*
Ogre::StringVector groups = Ogre::ResourceGroupManager::getSingleton().getResourceGroups ();
for (Ogre::StringVector::iterator it = groups.begin(); it != groups.end(); ++it)
{
@ -156,6 +157,7 @@ namespace Gui
loadFont(*resource, exportToFile);
}
}
*/
}

@ -1,80 +0,0 @@
#include "nifoverrides.hpp"
#include <OgreStringConverter.h>
#include <../components/misc/stringops.hpp>
#include "../extern/shiny/Main/MaterialInstance.hpp"
#include <stdexcept>
using namespace NifOverrides;
Overrides::TransparencyOverrideMap Overrides::mTransparencyOverrides = Overrides::TransparencyOverrideMap();
Overrides::MaterialOverrideMap Overrides::mMaterialOverrides = Overrides::MaterialOverrideMap();
void Overrides::loadTransparencyOverrides (const std::string& file)
{
Ogre::ConfigFile cf;
cf.load(file);
Ogre::ConfigFile::SectionIterator seci = cf.getSectionIterator();
while (seci.hasMoreElements())
{
Ogre::String sectionName = seci.peekNextKey();
mTransparencyOverrides[sectionName] =
Ogre::StringConverter::parseInt(cf.getSetting("alphaRejectValue", sectionName));
seci.getNext();
}
}
void Overrides::loadMaterialOverrides(const std::string &file)
{
Ogre::ConfigFile cf;
cf.load(file);
Ogre::ConfigFile::SectionIterator seci = cf.getSectionIterator();
while (seci.hasMoreElements())
{
Ogre::String sectionName = seci.peekNextKey();
Ogre::ConfigFile::SettingsMultiMap *settings = seci.getNext();
Ogre::ConfigFile::SettingsMultiMap::iterator i;
std::map<std::string, std::string> overrides;
for (i = settings->begin(); i != settings->end(); ++i)
{
overrides[i->first] = i->second;
}
mMaterialOverrides[sectionName] = overrides;
}
}
TransparencyResult Overrides::getTransparencyOverride(const std::string& texture)
{
TransparencyResult result;
result.first = false;
TransparencyOverrideMap::iterator it = mTransparencyOverrides.find(Misc::StringUtils::lowerCase(texture));
if (it != mTransparencyOverrides.end())
{
result.first = true;
result.second = it->second;
}
return result;
}
void Overrides::getMaterialOverrides(const std::string &texture, sh::MaterialInstance* material)
{
MaterialOverrideMap::iterator it = mMaterialOverrides.find(Misc::StringUtils::lowerCase(texture));
if (it != mMaterialOverrides.end())
{
const std::map<std::string, std::string>& overrides = it->second;
for (std::map<std::string, std::string>::const_iterator it = overrides.begin(); it != overrides.end(); ++it)
{
material->setProperty(it->first, sh::makeProperty(it->second));
}
}
}

@ -1,38 +0,0 @@
#ifndef OPENMW_COMPONENTS_NIFOVERRIDES_NIFOVERRIDES_HPP
#define OPENMW_COMPONENTS_NIFOVERRIDES_NIFOVERRIDES_HPP
#include <OgreConfigFile.h>
namespace sh
{
class MaterialInstance;
}
namespace NifOverrides
{
typedef std::pair<bool, int> TransparencyResult;
/// Allows to provide overrides for some material properties in NIF files.
/// NIFs are a bit limited in that they don't allow specifying a material externally, which is
/// painful for texture modding.
/// We also use this to patch up transparency settings in certain NIFs that bethesda has chosen poorly.
class Overrides
{
public:
typedef std::map<std::string, int> TransparencyOverrideMap;
static TransparencyOverrideMap mTransparencyOverrides;
typedef std::map<std::string, std::map<std::string, std::string> > MaterialOverrideMap;
static MaterialOverrideMap mMaterialOverrides;
void loadTransparencyOverrides (const std::string& file);
void loadMaterialOverrides (const std::string& file);
static TransparencyResult getTransparencyOverride(const std::string& texture);
static void getMaterialOverrides (const std::string& texture, sh::MaterialInstance* instance);
};
}
#endif

@ -1,623 +0,0 @@
# Bethesda has used wrong transparency settings for many textures
# (who would have guessed)
# This is very unfortunate because objects with real transparency:
# - cannot cast shadows
# - cannot receive advanced framebuffer effects like depth of field or ambient occlusion
# - cannot cover lens flare effects (the lens flare will just shine through)
# This file lists textures that should be using alpha rejection instead of transparency
# basically these are textures that are not translucent (i.e. at one spot on the texture, either transparent or opaque)
# Note: all the texture names here have to be lowercase
# fauna
[textures\tx_wickwheat_01.dds]
alphaRejectValue = 128
[textures\tx_wickwheat_03.dds]
alphaRejectValue = 128
[textures\tx_red_lichen_01.dds]
alphaRejectValue = 128
[textures\tx_stone_flower_01.dds]
alphaRejectValue = 128
[textures\tx_ivy_02.dds]
alphaRejectValue = 128
[textures\tx_ivy_01.dds]
alphaRejectValue = 128
[textures\tx_saltrice_04.dds]
alphaRejectValue = 128
[textures\tx_black_lichen_01.dds]
alphaRejectValue = 128
[textures\tx_leaves_01.dds]
alphaRejectValue = 128
[textures\tx_leaves_02.dds]
alphaRejectValue = 128
[textures\tx_leaves_03.dds]
alphaRejectValue = 128
[textures\tx_leaves_04.dds]
alphaRejectValue = 128
[textures\tx_leaves_06.dds]
alphaRejectValue = 128
[textures\tx_leaves_07.dds]
alphaRejectValue = 128
[textures\tx_ai_heather_01.dds]
alphaRejectValue = 96
[textures\tx_goldkanet_01.dds]
alphaRejectValue = 128
[textures\tx_goldkanet_02.dds]
alphaRejectValue = 128
[textures\tx_plant_tails00.dds]
alphaRejectValue = 128
[textures\tx_vine_01.dds]
alphaRejectValue = 128
[textures\tx_comberry_01.dds]
alphaRejectValue = 128
[textures\tx_willow_flower_02.dds]
alphaRejectValue = 128
[textures\tx_cork_bulb_02.dds]
alphaRejectValue = 128
[textures\tx_green_lichen_01.dds]
alphaRejectValue = 128
[textures\tx_roobrush_01.dds]
alphaRejectValue = 128
[textures\tx_bittergreen_02.dds]
alphaRejectValue = 128
[textures\tx_chokeweed_01.dds]
alphaRejectValue = 128
[textures\tx_branches_01.dds]
alphaRejectValue = 128
[textures\tx_branches_02.dds]
alphaRejectValue = 128
[textures\tx_guarskin_hut_03.dds]
alphaRejectValue = 128
[textures\tx_hackle-lo_02.dds]
alphaRejectValue = 128
[textures\tx_bc_fern_01.dds]
alphaRejectValue = 128
[textures\tx_bc_fern_02.dds]
alphaRejectValue = 128
[textures\tx_bc_leaves_02.dds]
alphaRejectValue = 128
[textures\tx_marshmerrow_03.dds]
alphaRejectValue = 128
[textures\tx_bc_moss_01.dds]
alphaRejectValue = 128
[textures\tx_bc_moss_02.dds]
alphaRejectValue = 128
[textures\tx_bc_lilypad_01.dds]
alphaRejectValue = 128
[textures\tx_bc_lilypad_02.dds]
alphaRejectValue = 128
[textures\tx_bc_lilypad_03.dds]
alphaRejectValue = 128
[textures\tx_fire_fern_01.dds]
alphaRejectValue = 128
# banners and flags
[textures\tx_flag_imp_01.dds]
alphaRejectValue = 128
[textures\tx_v_b_arena_01.dds]
alphaRejectValue = 128
[textures\tx_v_b_comfort_01.dds]
alphaRejectValue = 128
[textures\tx_v_b_child_01.dds]
alphaRejectValue = 128
[textures\tx_v_b_count_01.dds]
alphaRejectValue = 128
[textures\tx_v_b_faith_01.dds]
alphaRejectValue = 128
[textures\tx_v_b_walk_01.dds]
alphaRejectValue = 128
[textures\tx_v_b_imp_01.dds]
alphaRejectValue = 128
[textures\tx_v_b_redoran_01.dds]
alphaRejectValue = 128
[textures\tx_v_b_avs_01.dds]
alphaRejectValue = 128
[textures\tx_v_b_serving_01.dds]
alphaRejectValue = 128
[textures\tx_v_b_speak_01.dds]
alphaRejectValue = 128
[textures\tx_v_b_stdeyln_01.dds]
alphaRejectValue = 128
[textures\tx_v_b_stolms_01.dds]
alphaRejectValue = 128
[textures\tx_v_b_thin_01.dds]
alphaRejectValue = 128
[textures\tx_v_b_vivec_01.dds]
alphaRejectValue = 128
[textures\tx_v_b_vivec_02.dds]
alphaRejectValue = 128
[textures\tx_ashl_banner_01.dds]
alphaRejectValue = 128
[textures\tx_ashl_banner_02.dds]
alphaRejectValue = 128
[textures\tx_ashl_banner_04.dds]
alphaRejectValue = 128
[textures\tx_ashl_banner_05.dds]
alphaRejectValue = 128
[textures\tx_ashl_banner_06.dds]
alphaRejectValue = 128
[textures\tx_ashl_banner_07.dds]
alphaRejectValue = 128
[textures\tx_ashl_a_banner.dds]
alphaRejectValue = 128
[textures\tx_ashl_e_banner.dds]
alphaRejectValue = 128
[textures\tx_ashl_u_banner.dds]
alphaRejectValue = 128
[textures\tx_ashl_z_banner.dds]
alphaRejectValue = 128
[textures\tx_banner_6th.dds]
alphaRejectValue = 128
[textures\tx_banner_6th_tall.dds]
alphaRejectValue = 128
[textures\tx_banner_gnisis_01.dds]
alphaRejectValue = 128
[textures\tx_banner_gnisis_02.dds]
alphaRejectValue = 128
[textures\tx_de_tapestry_bhm_01.dds]
alphaRejectValue = 128
[textures\tx_de_tapestry_02.dds]
alphaRejectValue = 128
[textures\tx_de_tapestry_03.dds]
alphaRejectValue = 128
[textures\tx_de_tapestry_04.dds]
alphaRejectValue = 128
[textures\tx_de_tapestry_05.dds]
alphaRejectValue = 128
[textures\tx_de_tapestry_06.dds]
alphaRejectValue = 128
[textures\tx_de_tapestry_07.dds]
alphaRejectValue = 128
[textures\tx_de_tapestry_08.dds]
alphaRejectValue = 128
[textures\tx_de_tapestry_08.dds]
alphaRejectValue = 128
[textures\tx_de_tapestry_09.dds]
alphaRejectValue = 128
[textures\tx_de_tapestry_10.dds]
alphaRejectValue = 128
[textures\tx_de_tapestry_11.dds]
alphaRejectValue = 128
[textures\tx_de_tapestry_12.dds]
alphaRejectValue = 128
[textures\tx_de_tapestry_13.dds]
alphaRejectValue = 128
[textures\tx_de_lutestrings_01.dds]
alphaRejectValue = 128
[textures\tx_fabric_imp_altar_01.dds]
alphaRejectValue = 128
[textures\tx_c_t_akatosh_01.dds]
alphaRejectValue = 128
[textures\tx_c_t_apprentice_01.dds]
alphaRejectValue = 128
[textures\tx_c_t_arkay_01.dds]
alphaRejectValue = 128
[textures\tx_c_t_dibella_01.dds]
alphaRejectValue = 128
[textures\tx_c_t_golem_01.dds]
alphaRejectValue = 128
[textures\tx_c_t_julianos_01.dds]
alphaRejectValue = 128
[textures\tx_c_t_kynareth_01.dds]
alphaRejectValue = 128
[textures\tx_c_t_lady_01.dds]
alphaRejectValue = 128
[textures\tx_c_t_lord_01.dds]
alphaRejectValue = 128
[textures\tx_c_t_lover_01.dds]
alphaRejectValue = 128
[textures\tx_c_t_mara_01.dds]
alphaRejectValue = 128
[textures\tx_c_t_ritual_01.dds]
alphaRejectValue = 128
[textures\tx_c_t_shadow_01.dds]
alphaRejectValue = 128
[textures\tx_c_t_steed_01.dds]
alphaRejectValue = 128
[textures\tx_c_t_stendarr_01.dds]
alphaRejectValue = 128
[textures\tx_c_t_thief_01.dds]
alphaRejectValue = 128
[textures\tx_c_t_tower_01.dds]
alphaRejectValue = 128
[textures\tx_c_t_warrior_01.dds]
alphaRejectValue = 128
[textures\tx_c_t_wizard_01.dds]
alphaRejectValue = 128
[textures\tx_c_t_zenithar_01.dds]
alphaRejectValue = 128
[textures\tx_banner_dagoth_01.dds]
alphaRejectValue = 128
[textures\tx_bannerd_tavern_01.dds]
alphaRejectValue = 128
[textures\tx_bannerd_goods_01.dds]
alphaRejectValue = 128
[textures\tx_bannerd_danger_01.dds]
alphaRejectValue = 128
[textures\tx_bannerd_welcome_01.dds]
alphaRejectValue = 128
[textures\tx_bannerd_clothing_01.dds]
alphaRejectValue = 128
[textures\tx_bannerd_alchemy_01.dds]
alphaRejectValue = 128
[textures\tx_banner_hlaalu_01.dds]
alphaRejectValue = 128
[textures\tx_banner_redoran_01.dds]
alphaRejectValue = 128
[textures\tx_banner_temple_01.dds]
alphaRejectValue = 128
[textures\tx_banner_temple_03.dds]
alphaRejectValue = 128
[textures\tx_de_banner_book_01.dds]
alphaRejectValue = 128
[textures\tx_de_banner_ald_velothi.dds]
alphaRejectValue = 128
[textures\tx_de_banner_gnaar_mok.dds]
alphaRejectValue = 128
[textures\tx_de_banner_hla_oad.dds]
alphaRejectValue = 128
[textures\tx_de_banner_khull.dds]
alphaRejectValue = 128
[textures\tx_de_banner_pawn_01.dds]
alphaRejectValue = 128
[textures\tx_de_banner_sadrith_mora.dds]
alphaRejectValue = 128
[textures\tx_de_banner_tel_aruhn.dds]
alphaRejectValue = 128
[textures\tx_de_banner_tel_branora.dds]
alphaRejectValue = 128
[textures\tx_de_banner_tel_fyr.dds]
alphaRejectValue = 128
[textures\tx_de_banner_tel_mora.dds]
alphaRejectValue = 128
[textures\tx_de_banner_telvani_01.dds]
alphaRejectValue = 128
[textures\tx_de_banner_tel_vos.dds]
alphaRejectValue = 128
[textures\tx_de_banner_vos.dds]
alphaRejectValue = 128
[textures\tx_bannerd_w_a_shop_01.dds]
alphaRejectValue = 128
[textures\tx_banner_temple_02.dds]
alphaRejectValue = 128
[textures\tx_mural1_00.dds]
alphaRejectValue = 128
[textures\tx_mural1_01.dds]
alphaRejectValue = 128
[textures\tx_mural4_00.dds]
alphaRejectValue = 128
[textures\tx_mural4_01.dds]
alphaRejectValue = 128
[textures\tx_mural5_00.dds]
alphaRejectValue = 128
[textures\tx_v_b_telvanni_01.dds]
alphaRejectValue = 128
[textures\tx_v_b_hlaalu_01.dds]
alphaRejectValue = 128
[textures\tx_fabric_tapestry.dds]
alphaRejectValue = 128
[textures\tx_fabric_tapestry_01.dds]
alphaRejectValue = 128
[textures\tx_fabric_tapestry_02.dds]
alphaRejectValue = 128
[textures\tx_fabric_tapestry_03.dds]
alphaRejectValue = 128
[textures\tx_fabric_tapestry_04.dds]
alphaRejectValue = 128
# characters
[textures\tx_netchgod00.dds]
alphaRejectValue = 128
[textures\tx_b_n_argonian_f_hair02.dds]
alphaRejectValue = 128
[textures\tx_b_n_argonian_f_hair03.dds]
alphaRejectValue = 128
[textures\tx_b_n_argonian_m_hair01.dds]
alphaRejectValue = 128
[textures\tx_b_n_argonian_m_hair04.dds]
alphaRejectValue = 128
[textures\tx_b_n_argonian_m_hair05.dds]
alphaRejectValue = 128
[textures\tx_b_n_khajiit_f_hair01.dds]
alphaRejectValue = 128
[textures\tx_b_n_khajiit_f_hair02.dds]
alphaRejectValue = 128
[textures\tx_b_n_khajiit_m_hair01.dds]
alphaRejectValue = 128
[textures\tx_corprus_stalker12.dds]
alphaRejectValue = 128
[textures\tx_a_clavicus02.dds]
alphaRejectValue = 128
[textures\tx_b_n_dark elf_m_hair11.dds]
alphaRejectValue = 128
[textures\tx_b_n_dark elf_f_hair10.dds]
alphaRejectValue = 128
# misc items
[textures\tx_sail.dds]
alphaRejectValue = 128
[textures\tx_longboatsail01.dds]
alphaRejectValue = 128
[textures\tx_longboatsail01a.dds]
alphaRejectValue = 128
[textures\tx_longboatsail01b.dds]
alphaRejectValue = 128
[textures\tx_longboatsail02.dds]
alphaRejectValue = 128
[textures\tx_quill.dds]
alphaRejectValue = 128
[textures\tx_note_01.dds]
alphaRejectValue = 128
[textures\tx_note_02.dds]
alphaRejectValue = 128
[textures\tx_parchment_02.dds]
alphaRejectValue = 128
[textures\tx_parchment_03.dds]
alphaRejectValue = 128
[textures\tx_scroll_01.dds]
alphaRejectValue = 128
[textures\tx_scroll_02.dds]
alphaRejectValue = 128
[textures\tx_scroll_03.dds]
alphaRejectValue = 128
[textures\tx_alpha_small_edge.dds]
alphaRejectValue = 128
[textures\tx_alpha_shadow_circular.dds]
alphaRejectValue = 128
# building materials
[textures\tx_shack_thatch_strip.dds]
alphaRejectValue = 128
[textures\tx_rug00.dds]
alphaRejectValue = 128
[textures\tx_rug_02.dds]
alphaRejectValue = 128
[textures\tx_rug_edge_01.dds]
alphaRejectValue = 128
[textures\tx_awning_thatch_02.dds]
alphaRejectValue = 128
[textures\tx_awning_woven_01.dds]
alphaRejectValue = 128
[textures\tx_bridgeropes.dds]
alphaRejectValue = 128
[textures\tx_rope_woven_01.dds]
alphaRejectValue = 128
[textures\tx_rope_woven_02.dds]
alphaRejectValue = 128
[textures\tx_ashl_tent_06.dds]
alphaRejectValue = 128
[textures\tx_guar_tarp.dds]
alphaRejectValue = 128
[textures\tx_velothi_glyph00.dds]
alphaRejectValue = 128
# Bloodmoon
[textures\tx_bm_holly_01.dds]
alphaRejectValue = 128
[textures\tx_bm_holly_snow_01.dds]
alphaRejectValue = 128
[textures\tx_bm_pine_04a.dds]
alphaRejectValue = 128
[textures\tx_bm_pine_03a.dds]
alphaRejectValue = 128
[textures\tx_bm_pine_02a.dds]
alphaRejectValue = 128
[textures\tx_bm_pine_01a.dds]
alphaRejectValue = 128
[textures\tx_bm_shrub_02.dds]
alphaRejectValue = 128
[textures\tx_bm_shrub_01.dds]
alphaRejectValue = 128
[textures\tx_bm_snow_pine_01a.dds]
alphaRejectValue = 128
[textures\tx_bm_snow_pine_02a.dds]
alphaRejectValue = 128
[textures\tx_bm_snow_pine_03a.dds]
alphaRejectValue = 128
[textures\tx_bm_snow_pine_04a.dds]
alphaRejectValue = 128
[textures\tx_bm_deadpine_01.dds]
alphaRejectValue = 128
[textures\tx_bm_shrub_snow_02.dds]
alphaRejectValue = 128
[textures\tx_bm_s_deadpine_01.dds]
alphaRejectValue = 128

@ -1,12 +1,12 @@
set(OENGINE_OGRE
ogre/renderer.cpp
#ogre/renderer.cpp
ogre/lights.cpp
ogre/selectionbuffer.cpp
)
set(OENGINE_GUI
gui/loglistener.cpp
gui/manager.cpp
#gui/manager.cpp
gui/layout.cpp
)

Loading…
Cancel
Save