Merge remote branch 'upstream/master'

This commit is contained in:
athile 2010-06-27 14:10:46 -07:00
commit d67f0c74b0
151 changed files with 221 additions and 204 deletions

4
.gitmodules vendored
View file

@ -1,3 +1,3 @@
[submodule "mangle"] [submodule "libs/mangle"]
path = mangle path = libs/mangle
url = git://github.com/korslund/mangle.git url = git://github.com/korslund/mangle.git

View file

@ -6,62 +6,78 @@ cmake_minimum_required(VERSION 2.6)
# Add path for CMake scripts # Add path for CMake scripts
set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/) set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/)
# Local files # source directory: apps
set(BSA bsa/bsa_archive.cpp bsa/bsa_file.cpp) set(GAME apps/openmw/main.cpp apps/openmw/engine.cpp)
set(BSA_HEADER bsa/bsa_archive.hpp bsa/bsa_file.hpp) set(GAME_HEADER apps/openmw/mwinput/inputmanager.hpp apps/openmw/engine.hpp)
source_group(bsa FILES ${BSA} ${BSA_HEADER})
set(NIF nif/nif_file.cpp)
set(NIF_HEADER nif/controlled.hpp nif/effect.hpp nif/nif_types.hpp nif/record.hpp
nif/controller.hpp nif/extra.hpp nif/node.hpp nif/record_ptr.hpp
nif/data.hpp nif/nif_file.hpp nif/property.hpp)
source_group(nif FILES ${NIF} ${NIF_HEADER})
set(NIFOGRE nifogre/ogre_nif_loader.cpp)
set(NIFOGRE_HEADER nifogre/ogre_nif_loader.hpp)
source_group(nifogre FILES ${NIFOGRE} ${NIFOGRE_HEADER})
set(TOOLS tools/stringops.cpp tools/fileops.cpp)
set(TOOLS_HEADER tools/fileops.hpp tools/slice_array.hpp tools/stringops.hpp)
source_group(tools FILES ${TOOLS} ${TOOLS_HEADER})
set(MANGLE_VFS mangle/vfs/servers/ogre_vfs.cpp)
source_group(mangle_vfs FILES ${MANGLE_VFS})
set(OGRE ogre/renderer.cpp)
set(OGRE_HEADER ogre/renderer.hpp)
source_group(ogre FILES ${OGRE} ${OGRE_HEADER})
set(INPUT input/oismanager.cpp)
set(INPUT_HEADER input/oismanager.hpp input/listener.hpp input/func_binder.hpp input/dispatch_map.hpp input/dispatcher.hpp input/poller.hpp)
source_group(input FILES ${INPUT} ${INPUT_HEADER})
set(GAME game/main.cpp game/engine.cpp)
set(GAME_HEADER game/mwinput/inputmanager.hpp game/engine.hpp)
source_group(game FILES ${GAME} ${GAME_HEADER}) source_group(game FILES ${GAME} ${GAME_HEADER})
set(ESM_STORE esm_store/store.cpp esm_store/cell_store.cpp) set(GAMEREND apps/openmw/mwrender/mwscene.cpp apps/openmw/mwrender/cell.cpp
set(ESM_STORE_HEADER esm_store/cell_store.hpp esm_store/reclists.hpp esm_store/store.hpp) apps/openmw/mwrender/interior.cpp)
source_group(esm_store FILES ${ESM_STORE} ${ESM_STORE_HEADER}) set(GAMEREND_HEADER apps/openmw/mwrender/cell.hpp apps/openmw/mwrender/mwscene.hpp
apps/openmw/mwrender/interior.hpp apps/openmw/mwrender/playerpos.hpp)
set(GAMEREND game/mwrender/mwscene.cpp game/mwrender/cell.cpp game/mwrender/interior.cpp)
set(GAMEREND_HEADER game/mwrender/cell.hpp game/mwrender/mwscene.hpp
game/mwrender/interior.hpp game/mwrender/playerpos.hpp)
source_group(game_renderer FILES ${GAMEREND} ${GAMEREND_HEADER}) source_group(game_renderer FILES ${GAMEREND} ${GAMEREND_HEADER})
set(ESM_HEADER esm/defs.hpp esm/loadcell.hpp esm/loadfact.hpp esm/loadltex.hpp # set(GAMEINPUT)
esm/loadskil.hpp set(GAMEINPUT_HEADER apps/openmw/mwinput/inputmanager.hpp)
esm/esm_reader.hpp esm/loadclas.hpp esm/loadglob.hpp esm/loadmgef.hpp esm/loadsndg.hpp source_group(game_input FILES ${GAMEINPUT} ${GAMEINPUT_HEADER})
esm/loadacti.hpp esm/loadclot.hpp esm/loadgmst.hpp esm/loadmisc.hpp esm/loadsoun.hpp
esm/loadalch.hpp esm/loadcont.hpp esm/loadinfo.hpp esm/loadnpcc.hpp esm/loadspel.hpp
esm/loadappa.hpp esm/loadcrea.hpp esm/loadingr.hpp esm/loadnpc.hpp esm/loadsscr.hpp
esm/loadarmo.hpp esm/loadcrec.hpp esm/loadland.hpp esm/loadpgrd.hpp esm/loadstat.hpp
esm/loadbody.hpp esm/loaddial.hpp esm/loadlevlist.hpp esm/loadrace.hpp esm/loadweap.hpp
esm/loadbook.hpp esm/loaddoor.hpp esm/loadligh.hpp esm/loadregn.hpp esm/records.hpp
esm/loadbsgn.hpp esm/loadench.hpp esm/loadlocks.hpp esm/loadscpt.hpp)
source_group(esm_header FILES ${ESM_HEADER})
set(APPS ${GAME} ${GAMEREND} ${GAMEINPUT})
set(APPS_HEADER ${GAME_HEADER} ${GAMEREND_HEADER} ${GAMEINPUT_HEADER})
# source directory: components
set(BSA components/bsa/bsa_archive.cpp components/bsa/bsa_file.cpp)
set(BSA_HEADER components/bsa/bsa_archive.hpp components/bsa/bsa_file.hpp)
source_group(bsa FILES ${BSA} ${BSA_HEADER})
set(NIF components/nif/nif_file.cpp)
set(NIF_HEADER components/nif/controlled.hpp components/nif/effect.hpp
components/nif/nif_types.hpp components/nif/record.hpp
components/nif/controller.hpp components/nif/extra.hpp components/nif/node.hpp
components/nif/record_ptr.hpp
components/nif/data.hpp components/nif/nif_file.hpp components/nif/property.hpp)
source_group(nif FILES ${NIF} ${NIF_HEADER})
set(NIFOGRE components/nifogre/ogre_nif_loader.cpp)
set(NIFOGRE_HEADER components/nifogre/ogre_nif_loader.hpp)
source_group(nifogre FILES ${NIFOGRE} ${NIFOGRE_HEADER})
set(ESM_STORE components/esm_store/store.cpp components/esm_store/cell_store.cpp)
set(ESM_STORE_HEADER components/esm_store/cell_store.hpp
components/esm_store/reclists.hpp components/esm_store/store.hpp)
source_group(esm_store FILES ${ESM_STORE} ${ESM_STORE_HEADER})
file(GLOB ESM_HEADER components/esm/*.hpp)
source_group(esm_header FILES ${ESM_HEADER})
set(OGRE components/engine/ogre/renderer.cpp)
set(OGRE_HEADER components/engine/ogre/renderer.hpp)
source_group(ogre FILES ${OGRE} ${OGRE_HEADER})
set(INPUT components/engine/input/oismanager.cpp)
set(INPUT_HEADER components/engine/input/oismanager.hpp components/engine/input/listener.hpp
components/engine/input/func_binder.hpp components/engine/input/dispatch_map.hpp
components/engine/input/dispatcher.hpp components/engine/input/poller.hpp)
source_group(input FILES ${INPUT} ${INPUT_HEADER})
set(MISC components/misc/stringops.cpp components/misc/fileops.cpp)
set(MISC_HEADER components/misc/fileops.hpp components/misc/slice_array.hpp
components/misc/stringops.hpp)
source_group(misc FILES ${MISC} ${MISC_HEADER})
set(COMPONENTS ${BSA} ${NIF} ${NIFOGRE} ${ESM_STORE} ${OGRE} ${INPUT} ${MISC})
set(COMPONENTS_HEADER ${BSA_HEADER} ${NIF_HEADER} ${NIFOGRE_HEADER} ${ESM_STORE_HEADER}
${ESM_HEADER} ${OGRE_HEADER} ${INPUT_HEADER} ${MISC_HEADER})
# source directory: libs
set(MANGLE_VFS libs/mangle/vfs/servers/ogre_vfs.cpp)
source_group(mangle_vfs FILES ${MANGLE_VFS})
set(OPENMW_LIBS ${MANGLE_VFS})
set(OPENMW_LIBS_HEADER)
# Platform specific # Platform specific
if (WIN32) if (WIN32)
set(PLATFORM_INCLUDE_DIR "platform") set(PLATFORM_INCLUDE_DIR "platform")
@ -104,19 +120,17 @@ if (APPLE)
) )
endif (APPLE) endif (APPLE)
# Compiler settings
if (CMAKE_COMPILER_IS_GNUCC)
add_definitions (-Wall)
endif (CMAKE_COMPILER_IS_GNUCC)
# Main executable # Main executable
add_executable(openmw add_executable(openmw
MACOSX_BUNDLE MACOSX_BUNDLE
${BSA} ${BSA_HEADER} ${COMPONENTS} ${COMPONENTS_HEADER}
${TOOLS} ${TOOLS_HEADER} ${OPENMW_LIBS} ${OPENMW_LIBS_HEADER}
${OGRE} ${OGRE_HEADER} ${APPS} ${APPS_HEADER}
${INPUT} ${INPUT_HEADER}
${NIF} ${NIF_HEADER}
${NIFOGRE} ${NIFOGRE_HEADER}
${MANGLE_VFS}
${GAME}
${ESM_STORE} ${ESM_STORE_HEADER}
${GAMEREND} ${GAMEREND_HEADER}
${ESM_HEADER} ${ESM_HEADER}
${APPLE_BUNDLE_RESOURCES} ${APPLE_BUNDLE_RESOURCES}
) )

View file

@ -4,14 +4,14 @@
#include <iostream> #include <iostream>
#include "esm_store/cell_store.hpp" #include "components/esm_store/cell_store.hpp"
#include "bsa/bsa_archive.hpp" #include "components/bsa/bsa_archive.hpp"
#include "ogre/renderer.hpp" #include "components/engine/ogre/renderer.hpp"
#include "tools/fileops.hpp" #include "components/misc/fileops.hpp"
#include "mwrender/interior.hpp" #include "apps/openmw/mwrender/interior.hpp"
#include "mwinput/inputmanager.hpp" #include "mwinput/inputmanager.hpp"
#include "mwrender/playerpos.hpp" #include "apps/openmw/mwrender/playerpos.hpp"
OMW::Engine::Engine() {} OMW::Engine::Engine() {}
@ -20,29 +20,29 @@ OMW::Engine::Engine() {}
void OMW::Engine::prepareMaster() void OMW::Engine::prepareMaster()
{ {
std::string::size_type sep = mMaster.find_last_of ("."); std::string::size_type sep = mMaster.find_last_of (".");
if (sep==std::string::npos) if (sep==std::string::npos)
{ {
mMaster += ".esm"; mMaster += ".esm";
} }
} }
// Load all BSA files in data directory. // Load all BSA files in data directory.
void OMW::Engine::loadBSA() void OMW::Engine::loadBSA()
{ {
boost::filesystem::directory_iterator end; boost::filesystem::directory_iterator end;
for (boost::filesystem::directory_iterator iter (mDataDir); iter!=end; ++iter) for (boost::filesystem::directory_iterator iter (mDataDir); iter!=end; ++iter)
{ {
if (boost::filesystem::extension (iter->path())==".bsa") if (boost::filesystem::extension (iter->path())==".bsa")
{ {
std::cout << "Adding " << iter->path().string() << std::endl; std::cout << "Adding " << iter->path().string() << std::endl;
addBSA(iter->path().file_string()); addBSA(iter->path().file_string());
} }
} }
} }
// add resources directory // add resources directory
// \note This function works recursively. // \note This function works recursively.
@ -50,8 +50,8 @@ void OMW::Engine::addResourcesDirectory (const boost::filesystem::path& path)
{ {
mOgre.getRoot()->addResourceLocation (path.file_string(), "FileSystem", mOgre.getRoot()->addResourceLocation (path.file_string(), "FileSystem",
Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME, true); Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME, true);
} }
// Set data dir // Set data dir
void OMW::Engine::setDataDir (const boost::filesystem::path& dataDir) void OMW::Engine::setDataDir (const boost::filesystem::path& dataDir)
@ -83,9 +83,9 @@ void OMW::Engine::go()
assert (!mDataDir.empty()); assert (!mDataDir.empty());
assert (!mCellName.empty()); assert (!mCellName.empty());
assert (!mMaster.empty()); assert (!mMaster.empty());
std::cout << "Hello, fellow traveler!\n"; std::cout << "Hello, fellow traveler!\n";
std::cout << "Your data directory for today is: " << mDataDir << "\n"; std::cout << "Your data directory for today is: " << mDataDir << "\n";
std::cout << "Initializing OGRE\n"; std::cout << "Initializing OGRE\n";
@ -93,16 +93,16 @@ void OMW::Engine::go()
const char* plugCfg = "plugins.cfg"; const char* plugCfg = "plugins.cfg";
mOgre.configure(!isFile("ogre.cfg"), plugCfg, false); mOgre.configure(!isFile("ogre.cfg"), plugCfg, false);
addResourcesDirectory (mDataDir / "Meshes"); addResourcesDirectory (mDataDir / "Meshes");
addResourcesDirectory (mDataDir / "Textures"); addResourcesDirectory (mDataDir / "Textures");
prepareMaster(); prepareMaster();
loadBSA(); loadBSA();
boost::filesystem::path masterPath (mDataDir); boost::filesystem::path masterPath (mDataDir);
masterPath /= mMaster; masterPath /= mMaster;
std::cout << "Loading ESM " << masterPath.string() << "\n"; std::cout << "Loading ESM " << masterPath.string() << "\n";
ESM::ESMReader esm; ESM::ESMReader esm;
ESMS::ESMStore store; ESMS::ESMStore store;
@ -141,6 +141,6 @@ void OMW::Engine::go()
// Start the main rendering loop // Start the main rendering loop
mOgre.start(); mOgre.start();
std::cout << "\nThat's all for now!\n"; std::cout << "\nThat's all for now!\n";
} }

View file

@ -5,7 +5,7 @@
#include <boost/filesystem.hpp> #include <boost/filesystem.hpp>
#include "mwrender/mwscene.hpp" #include "apps/openmw/mwrender/mwscene.hpp"
namespace OMW namespace OMW
{ {
@ -17,21 +17,21 @@ namespace OMW
Render::OgreRenderer mOgre; Render::OgreRenderer mOgre;
std::string mCellName; std::string mCellName;
std::string mMaster; std::string mMaster;
// not implemented // not implemented
Engine (const Engine&); Engine (const Engine&);
Engine& operator= (const Engine&); Engine& operator= (const Engine&);
/// adjust name and load bsa /// adjust name and load bsa
void prepareMaster(); void prepareMaster();
/// add resources directory /// add resources directory
/// \note This function works recursively. /// \note This function works recursively.
void addResourcesDirectory (const boost::filesystem::path& path); void addResourcesDirectory (const boost::filesystem::path& path);
/// Load all BSA files in data directory. /// Load all BSA files in data directory.
void loadBSA(); void loadBSA();
public: public:
Engine(); Engine();
@ -41,7 +41,7 @@ namespace OMW
/// Set start cell name (only interiors for now) /// Set start cell name (only interiors for now)
void setCell (const std::string& cellName); void setCell (const std::string& cellName);
/// Set master file (esm) /// Set master file (esm)
/// - If the given name does not have an extension, ".esm" is added automatically /// - If the given name does not have an extension, ".esm" is added automatically
/// - Currently OpenMW only supports one master at the same time. /// - Currently OpenMW only supports one master at the same time.

View file

@ -1,12 +1,12 @@
#ifndef _MWINPUT_MWINPUTMANAGER_H #ifndef _MWINPUT_MWINPUTMANAGER_H
#define _MWINPUT_MWINPUTMANAGER_H #define _MWINPUT_MWINPUTMANAGER_H
#include "input/listener.hpp" #include "components/engine/input/listener.hpp"
#include "input/dispatcher.hpp" #include "components/engine/input/dispatcher.hpp"
#include "input/poller.hpp" #include "components/engine/input/poller.hpp"
#include "boost/bind.hpp" #include "boost/bind.hpp"
#include "game/mwrender/playerpos.hpp" #include "apps/openmw/mwrender/playerpos.hpp"
#include "platform/strings.h" #include "libs/platform/strings.h"
namespace MWInput namespace MWInput
{ {
@ -47,7 +47,7 @@ namespace MWInput
{ {
// Find the first unused filename. // Find the first unused filename.
// //
char buf[50]; char buf[50];
do do
{ {
snprintf(buf, 50, "screenshot%03d.png", shotCount++); snprintf(buf, 50, "screenshot%03d.png", shotCount++);

View file

@ -2,11 +2,11 @@
#include <cassert> #include <cassert>
#include "esm_store/cell_store.hpp" #include "components/esm_store/cell_store.hpp"
using namespace MWRender; using namespace MWRender;
template<typename T> template<typename T>
void insertObj(CellRender& cellRender, const T& liveRef) void insertObj(CellRender& cellRender, const T& liveRef)
{ {
assert (liveRef.base != NULL); assert (liveRef.base != NULL);
@ -18,8 +18,8 @@ void insertObj(CellRender& cellRender, const T& liveRef)
cellRender.insertEnd(); cellRender.insertEnd();
} }
} }
template<> template<>
void insertObj(CellRender& cellRender, const ESMS::LiveCellRef<ESM::Light>& liveRef) void insertObj(CellRender& cellRender, const ESMS::LiveCellRef<ESM::Light>& liveRef)
{ {
assert (liveRef.base != NULL); assert (liveRef.base != NULL);
@ -27,9 +27,9 @@ void insertObj(CellRender& cellRender, const ESMS::LiveCellRef<ESM::Light>& live
if(!model.empty()) if(!model.empty())
{ {
cellRender.insertBegin (liveRef.ref); cellRender.insertBegin (liveRef.ref);
cellRender.insertMesh ("meshes\\" + model); cellRender.insertMesh ("meshes\\" + model);
// Extract the color and convert to floating point // Extract the color and convert to floating point
const int color = liveRef.base->data.color; const int color = liveRef.base->data.color;
const float r = ((color >> 0) & 0xFF) / 255.0f; const float r = ((color >> 0) & 0xFF) / 255.0f;
@ -37,9 +37,9 @@ void insertObj(CellRender& cellRender, const ESMS::LiveCellRef<ESM::Light>& live
const float b = ((color >> 16) & 0xFF) / 255.0f; const float b = ((color >> 16) & 0xFF) / 255.0f;
const float radius = float(liveRef.base->data.radius); const float radius = float(liveRef.base->data.radius);
cellRender.insertLight(r, g, b, radius); cellRender.insertLight(r, g, b, radius);
cellRender.insertEnd(); cellRender.insertEnd();
} }
} }
template<typename T> template<typename T>
@ -49,8 +49,8 @@ void insertCellRefList (CellRender& cellRender, const T& cellRefList)
it != cellRefList.list.end(); it++) it != cellRefList.list.end(); it++)
{ {
insertObj (cellRender, *it); insertObj (cellRender, *it);
} }
} }
void CellRender::insertCell(const ESMS::CellStore &cell) void CellRender::insertCell(const ESMS::CellStore &cell)
{ {

View file

@ -3,7 +3,7 @@
#include <OgreEntity.h> #include <OgreEntity.h>
#include <OgreLight.h> #include <OgreLight.h>
#include "nifogre/ogre_nif_loader.hpp" #include "components/nifogre/ogre_nif_loader.hpp"
#include "mwscene.hpp" #include "mwscene.hpp"
using namespace MWRender; using namespace MWRender;
@ -30,7 +30,7 @@ bool InteriorCellRender::lightOutQuadInLin = false;
void InteriorCellRender::insertBegin (const ESM::CellRef &ref) void InteriorCellRender::insertBegin (const ESM::CellRef &ref)
{ {
assert (!insert); assert (!insert);
// Create and place scene node for this object // Create and place scene node for this object
insert = base->createChildSceneNode(); insert = base->createChildSceneNode();
@ -59,7 +59,7 @@ void InteriorCellRender::insertBegin (const ESM::CellRef &ref)
void InteriorCellRender::insertMesh(const std::string &mesh) void InteriorCellRender::insertMesh(const std::string &mesh)
{ {
assert (insert); assert (insert);
NIFLoader::load(mesh); NIFLoader::load(mesh);
MovableObject *ent = scene.getMgr()->createEntity(mesh); MovableObject *ent = scene.getMgr()->createEntity(mesh);
insert->attachObject(ent); insert->attachObject(ent);
@ -74,7 +74,7 @@ void InteriorCellRender::insertLight(float r, float g, float b, float radius)
light->setDiffuseColour (r, g, b); light->setDiffuseColour (r, g, b);
float cval=0.0f, lval=0.0f, qval=0.0f; float cval=0.0f, lval=0.0f, qval=0.0f;
if(lightConst) if(lightConst)
cval = lightConstValue; cval = lightConstValue;
if(!lightOutQuadInLin) if(!lightOutQuadInLin)
@ -95,9 +95,9 @@ void InteriorCellRender::insertLight(float r, float g, float b, float radius)
// Do quadratic or linear, depending if we're in an exterior or interior // Do quadratic or linear, depending if we're in an exterior or interior
// cell, respectively. Ignore lightLinear and lightQuadratic. // cell, respectively. Ignore lightLinear and lightQuadratic.
} }
light->setAttenuation(10*radius, cval, lval, qval); light->setAttenuation(10*radius, cval, lval, qval);
insert->attachObject(light); insert->attachObject(light);
} }
@ -108,19 +108,19 @@ std::string InteriorCellRender::insertEnd()
assert (insert); assert (insert);
std::string handle = insert->getName(); std::string handle = insert->getName();
insert = 0; insert = 0;
return handle; return handle;
} }
// configure lighting according to cell // configure lighting according to cell
void InteriorCellRender::configureAmbient() void InteriorCellRender::configureAmbient()
{ {
ambientColor.setAsABGR (cell.cell->ambi.ambient); ambientColor.setAsABGR (cell.cell->ambi.ambient);
setAmbientMode(); setAmbientMode();
// Create a "sun" that shines light downwards. It doesn't look // Create a "sun" that shines light downwards. It doesn't look
// completely right, but leave it for now. // completely right, but leave it for now.
Ogre::Light *light = scene.getMgr()->createLight(); Ogre::Light *light = scene.getMgr()->createLight();
@ -130,7 +130,7 @@ void InteriorCellRender::configureAmbient()
light->setType(Ogre::Light::LT_DIRECTIONAL); light->setType(Ogre::Light::LT_DIRECTIONAL);
light->setDirection(0,-1,0); light->setDirection(0,-1,0);
} }
// configure fog according to cell // configure fog according to cell
void InteriorCellRender::configureFog() void InteriorCellRender::configureFog()
{ {
@ -144,28 +144,28 @@ void InteriorCellRender::configureFog()
scene.getCamera()->setFarClipDistance (high + 10 * 1000); scene.getCamera()->setFarClipDistance (high + 10 * 1000);
scene.getViewport()->setBackgroundColour (color); scene.getViewport()->setBackgroundColour (color);
} }
void InteriorCellRender::setAmbientMode() void InteriorCellRender::setAmbientMode()
{ {
switch (ambientMode) switch (ambientMode)
{ {
case 0: case 0:
scene.getMgr()->setAmbientLight(ambientColor); scene.getMgr()->setAmbientLight(ambientColor);
break; break;
case 1: case 1:
scene.getMgr()->setAmbientLight(0.7f*ambientColor + 0.3f*ColourValue(1,1,1)); scene.getMgr()->setAmbientLight(0.7f*ambientColor + 0.3f*ColourValue(1,1,1));
break; break;
case 2: case 2:
scene.getMgr()->setAmbientLight(ColourValue(1,1,1)); scene.getMgr()->setAmbientLight(ColourValue(1,1,1));
break; break;
} }
} }
void InteriorCellRender::show() void InteriorCellRender::show()
{ {
// If already loaded, just make the cell visible. // If already loaded, just make the cell visible.
@ -208,14 +208,14 @@ void InteriorCellRender::toggleLight()
ambientMode = 0; ambientMode = 0;
else else
++ambientMode; ++ambientMode;
switch (ambientMode) switch (ambientMode)
{ {
case 0: std::cout << "Setting lights to normal\n"; break; case 0: std::cout << "Setting lights to normal\n"; break;
case 1: std::cout << "Turning the lights up\n"; break; case 1: std::cout << "Turning the lights up\n"; break;
case 2: std::cout << "Turning the lights to full\n"; break; case 2: std::cout << "Turning the lights to full\n"; break;
} }
setAmbientMode(); setAmbientMode();
} }

View file

@ -2,7 +2,7 @@
#define _GAME_RENDER_INTERIOR_H #define _GAME_RENDER_INTERIOR_H
#include "cell.hpp" #include "cell.hpp"
#include "esm_store/cell_store.hpp" #include "components/esm_store/cell_store.hpp"
#include "OgreColourValue.h" #include "OgreColourValue.h"
@ -14,7 +14,7 @@ namespace Ogre
namespace MWRender namespace MWRender
{ {
class MWScene; class MWScene;
/** /**
This class is responsible for inserting meshes and other This class is responsible for inserting meshes and other
rendering objects from the given cell into the given rendering rendering objects from the given cell into the given rendering
@ -22,10 +22,10 @@ namespace MWRender
TODO FIXME: Doesn't do full cleanup yet. TODO FIXME: Doesn't do full cleanup yet.
*/ */
class InteriorCellRender : private CellRender class InteriorCellRender : private CellRender
{ {
static bool lightConst; static bool lightConst;
static float lightConstValue; static float lightConstValue;
@ -40,19 +40,19 @@ namespace MWRender
static float lightQuadraticRadiusMult; static float lightQuadraticRadiusMult;
static bool lightOutQuadInLin; static bool lightOutQuadInLin;
const ESMS::CellStore &cell; const ESMS::CellStore &cell;
MWScene &scene; MWScene &scene;
/// The scene node that contains all objects belonging to this /// The scene node that contains all objects belonging to this
/// cell. /// cell.
Ogre::SceneNode *base; Ogre::SceneNode *base;
Ogre::SceneNode *insert; Ogre::SceneNode *insert;
// 0 normal, 1 more bright, 2 max // 0 normal, 1 more bright, 2 max
int ambientMode; int ambientMode;
Ogre::ColourValue ambientColor; Ogre::ColourValue ambientColor;
/// start inserting a new reference. /// start inserting a new reference.
@ -60,28 +60,28 @@ namespace MWRender
/// insert a mesh related to the most recent insertBegin call. /// insert a mesh related to the most recent insertBegin call.
virtual void insertMesh(const std::string &mesh); virtual void insertMesh(const std::string &mesh);
/// insert a light related to the most recent insertBegin call. /// insert a light related to the most recent insertBegin call.
virtual void insertLight(float r, float g, float b, float radius); virtual void insertLight(float r, float g, float b, float radius);
/// finish inserting a new reference and return a handle to it. /// finish inserting a new reference and return a handle to it.
virtual std::string insertEnd(); virtual std::string insertEnd();
/// configure lighting according to cell /// configure lighting according to cell
void configureAmbient(); void configureAmbient();
/// configure fog according to cell /// configure fog according to cell
void configureFog(); void configureFog();
void setAmbientMode(); void setAmbientMode();
public: public:
InteriorCellRender(const ESMS::CellStore &_cell, MWScene &_scene) InteriorCellRender(const ESMS::CellStore &_cell, MWScene &_scene)
: cell(_cell), scene(_scene), base(NULL), insert(NULL), ambientMode (0) {} : cell(_cell), scene(_scene), base(NULL), insert(NULL), ambientMode (0) {}
virtual ~InteriorCellRender() { destroy(); } virtual ~InteriorCellRender() { destroy(); }
/// Make the cell visible. Load the cell if necessary. /// Make the cell visible. Load the cell if necessary.
void show(); void show();
@ -90,8 +90,8 @@ namespace MWRender
void hide(); void hide();
/// Destroy all rendering objects connected with this cell. /// Destroy all rendering objects connected with this cell.
void destroy(); void destroy();
/// Switch through lighting modes. /// Switch through lighting modes.
void toggleLight(); void toggleLight();
}; };

View file

@ -1,7 +1,7 @@
#ifndef _GAME_RENDER_MWSCENE_H #ifndef _GAME_RENDER_MWSCENE_H
#define _GAME_RENDER_MWSCENE_H #define _GAME_RENDER_MWSCENE_H
#include "ogre/renderer.hpp" #include "components/engine/ogre/renderer.hpp"
namespace Ogre namespace Ogre
{ {

View file

@ -15,7 +15,7 @@ namespace MWRender
public: public:
PlayerPos(Ogre::Camera *cam) : PlayerPos(Ogre::Camera *cam) :
camera(cam), x(0), y(0), z(0) {} x(0), y(0), z(0), camera(cam) {}
// Set the player position. Uses Morrowind coordinates. // Set the player position. Uses Morrowind coordinates.
void setPos(float _x, float _y, float _z) void setPos(float _x, float _y, float _z)

View file

@ -27,7 +27,7 @@
#include <OgreArchiveFactory.h> #include <OgreArchiveFactory.h>
#include <OgreArchiveManager.h> #include <OgreArchiveManager.h>
#include "bsa_file.hpp" #include "bsa_file.hpp"
#include <mangle/stream/clients/ogre_datastream.hpp> #include <libs/mangle/stream/clients/ogre_datastream.hpp>
using namespace Ogre; using namespace Ogre;
using namespace Mangle::Stream; using namespace Mangle::Stream;
@ -137,7 +137,7 @@ public:
return name; return name;
} }
Archive *createInstance( const String& name ) Archive *createInstance( const String& name )
{ {
return new BSAArchive(name); return new BSAArchive(name);
} }

View file

@ -23,9 +23,9 @@
#include "bsa_file.hpp" #include "bsa_file.hpp"
#include <mangle/stream/servers/file_stream.hpp> #include <libs/mangle/stream/servers/file_stream.hpp>
#include <mangle/stream/filters/slice_stream.hpp> #include <libs/mangle/stream/filters/slice_stream.hpp>
#include <mangle/tools/str_exception.hpp> #include <libs/mangle/tools/str_exception.hpp>
#include <stdlib.h> #include <stdlib.h>
#include <assert.h> #include <assert.h>
@ -129,7 +129,7 @@ void BSAFile::readHeader()
// Set up the the FileStruct table // Set up the the FileStruct table
files.resize(filenum); files.resize(filenum);
for(int i=0;i<filenum;i++) for(size_t i=0;i<filenum;i++)
{ {
FileStruct &fs = files[i]; FileStruct &fs = files[i];
fs.fileSize = offsets[i*2]; fs.fileSize = offsets[i*2];
@ -156,7 +156,7 @@ int BSAFile::getIndex(const char *str)
else else
{ {
int res = it->second; int res = it->second;
assert(res >= 0 && res < files.size()); assert(res >= 0 && res < static_cast<int> (files.size()));
return res; return res;
} }
} }

View file

@ -24,7 +24,7 @@
#ifndef _BSA_FILE_H_ #ifndef _BSA_FILE_H_
#define _BSA_FILE_H_ #define _BSA_FILE_H_
#include <mangle/stream/stream.hpp> #include <libs/mangle/stream/stream.hpp>
#include <stdint.h> #include <stdint.h>
#include <strings.h> #include <strings.h>

View file

@ -2,7 +2,7 @@
#define _INPUT_LISTENER_H #define _INPUT_LISTENER_H
#include "oismanager.hpp" #include "oismanager.hpp"
#include "ogre/renderer.hpp" #include "components/engine/ogre/renderer.hpp"
#include "dispatcher.hpp" #include "dispatcher.hpp"
#include <OgreFrameListener.h> #include <OgreFrameListener.h>
@ -17,7 +17,7 @@ namespace Input
InputListener(Render::OgreRenderer &rend, InputListener(Render::OgreRenderer &rend,
Input::OISManager &input, Input::OISManager &input,
const Input::Dispatcher &_disp) const Input::Dispatcher &_disp)
: doExit(false), disp(_disp) : disp(_disp), doExit(false)
{ {
// Set up component pointers // Set up component pointers
mWindow = rend.getWindow(); mWindow = rend.getWindow();

View file

@ -1,7 +1,7 @@
#ifndef _INPUT_OISMANAGER_H #ifndef _INPUT_OISMANAGER_H
#define _INPUT_OISMANAGER_H #define _INPUT_OISMANAGER_H
#include "ogre/renderer.hpp" #include "components/engine/ogre/renderer.hpp"
#include <OIS/OIS.h> #include <OIS/OIS.h>
namespace Input namespace Input

View file

@ -9,10 +9,10 @@
#include <sstream> #include <sstream>
#include <iomanip> #include <iomanip>
#include <mangle/stream/stream.hpp> #include <libs/mangle/stream/stream.hpp>
#include <mangle/stream/servers/file_stream.hpp> #include <libs/mangle/stream/servers/file_stream.hpp>
#include <mangle/tools/str_exception.hpp> #include <libs/mangle/tools/str_exception.hpp>
#include "tools/stringops.hpp" #include "components/misc/stringops.hpp"
#ifdef __APPLE__ #ifdef __APPLE__
// need our own implementation of strnlen // need our own implementation of strnlen
@ -394,7 +394,7 @@ public:
void getHExact(void*p, int size) void getHExact(void*p, int size)
{ {
getSubHeader(); getSubHeader();
if(size != c.leftSub) if(size !=static_cast<int> (c.leftSub))
fail("getHExact() size mismatch"); fail("getHExact() size mismatch");
getExact(p,size); getExact(p,size);
} }
@ -480,7 +480,7 @@ public:
void skipHSubSize(int size) void skipHSubSize(int size)
{ {
skipHSub(); skipHSub();
if(c.leftSub != size) if(static_cast<int> (c.leftSub) != size)
fail("skipHSubSize() mismatch"); fail("skipHSubSize() mismatch");
} }
@ -508,7 +508,7 @@ public:
void getSubHeaderIs(int size) void getSubHeaderIs(int size)
{ {
getSubHeader(); getSubHeader();
if(size != c.leftSub) if(size != static_cast<int> (c.leftSub))
fail("getSubHeaderIs(): Sub header mismatch"); fail("getSubHeaderIs(): Sub header mismatch");
} }

View file

@ -1,6 +1,6 @@
#include "cell_store.hpp" #include "cell_store.hpp"
#include <iostream> #include <iostream>
#include "mangle/tools/str_exception.hpp" #include "libs/mangle/tools/str_exception.hpp"
using namespace ESMS; using namespace ESMS;
using namespace std; using namespace std;
@ -24,7 +24,7 @@ void CellStore::loadExt(int X, int Y, const ESMStore &store, ESMReader &esm)
void CellStore::loadRefs(const ESMStore &store, ESMReader &esm) void CellStore::loadRefs(const ESMStore &store, ESMReader &esm)
{ {
assert (cell); assert (cell);
// Reopen the ESM reader and seek to the right position. // Reopen the ESM reader and seek to the right position.
cell->restore(esm); cell->restore(esm);

View file

@ -11,9 +11,9 @@
*/ */
#include "store.hpp" #include "store.hpp"
#include "esm/records.hpp" #include "components/esm/records.hpp"
#include "esm/loadcell.hpp" #include "components/esm/loadcell.hpp"
#include <mangle/tools/str_exception.hpp> #include <libs/mangle/tools/str_exception.hpp>
#include <list> #include <list>
namespace ESMS namespace ESMS
@ -70,9 +70,9 @@ namespace ESMS
{ {
public: public:
CellStore() : cell (0) {} CellStore() : cell (0) {}
const ESM::Cell *cell; const ESM::Cell *cell;
// Lists for each individual object type // Lists for each individual object type
CellRefList<Activator> activators; CellRefList<Activator> activators;
CellRefList<Potion> potions; CellRefList<Potion> potions;

View file

@ -1,7 +1,7 @@
#ifndef _GAME_ESM_RECLISTS_H #ifndef _GAME_ESM_RECLISTS_H
#define _GAME_ESM_RECLISTS_H #define _GAME_ESM_RECLISTS_H
#include "esm/records.hpp" #include "components/esm/records.hpp"
#include <map> #include <map>
#include <string> #include <string>
#include <assert.h> #include <assert.h>

Some files were not shown because too many files have changed in this diff Show more