From a6e83f5b9ba5b353d290c3c5a6b7ae8139bf988e Mon Sep 17 00:00:00 2001 From: Marc Zinnschlag Date: Mon, 13 Jun 2011 13:47:59 +0200 Subject: [PATCH 1/7] case-handling fix for references in cells --- components/esm_store/cell_store.hpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/components/esm_store/cell_store.hpp b/components/esm_store/cell_store.hpp index 43860dff3..0b8c25d4f 100644 --- a/components/esm_store/cell_store.hpp +++ b/components/esm_store/cell_store.hpp @@ -17,6 +17,7 @@ #include #include +#include namespace ESMS { @@ -187,7 +188,14 @@ namespace ESMS // Get each reference in turn while(cell->getNextRef(esm, ref)) { - int rec = store.find(ref.refID); + std::string lowerCase; + + std::transform (ref.refID.begin(), ref.refID.end(), std::back_inserter (lowerCase), + (int(*)(int)) std::tolower); + + int rec = store.find(ref.refID); + + ref.refID = lowerCase; /* We can optimize this further by storing the pointer to the record itself in store.all, so that we don't need to look it From 8a84201ba2e3ad7b38038cd905a3389ae65590a8 Mon Sep 17 00:00:00 2001 From: Lukasz Gromanowski Date: Sun, 19 Jun 2011 16:42:35 +0200 Subject: [PATCH 2/7] Mantis: #18 - Move components from global namespace into their own namespace. Moving classes from components/bsa into Bsa namespace. Signed-off-by: Lukasz Gromanowski --- apps/openmw/engine.cpp | 2 +- components/bsa/bsa_archive.cpp | 11 +++++++++++ components/bsa/bsa_archive.hpp | 9 +++++++-- components/bsa/bsa_file.cpp | 1 + components/bsa/bsa_file.hpp | 9 +++++++-- components/bsa/tests/bsa_file_test.cpp | 1 + components/bsa/tests/bsatool.cpp | 1 + components/bsa/tests/ogre_archive_test.cpp | 2 +- 8 files changed, 30 insertions(+), 6 deletions(-) diff --git a/apps/openmw/engine.cpp b/apps/openmw/engine.cpp index b2ed0a767..e1386d3c4 100644 --- a/apps/openmw/engine.cpp +++ b/apps/openmw/engine.cpp @@ -246,7 +246,7 @@ void OMW::Engine::loadBSA() for (Files::MultiDirCollection::TIter iter (bsa.begin()); iter!=bsa.end(); ++iter) { std::cout << "Adding " << iter->second.string() << std::endl; - addBSA (iter->second.string()); + Bsa::addBSA (iter->second.string()); } } diff --git a/components/bsa/bsa_archive.cpp b/components/bsa/bsa_archive.cpp index 4691eb546..937a21d0a 100644 --- a/components/bsa/bsa_archive.cpp +++ b/components/bsa/bsa_archive.cpp @@ -29,8 +29,12 @@ #include "bsa_file.hpp" #include +namespace +{ + using namespace Ogre; using namespace Mangle::Stream; +using namespace Bsa; /// An OGRE Archive wrapping a BSAFile archive class BSAArchive : public Archive @@ -155,6 +159,11 @@ static void insertBSAFactory() } } +} + +namespace Bsa +{ + // The function below is the only publicly exposed part of this file void addBSA(const std::string& name, const std::string& group) @@ -163,3 +172,5 @@ void addBSA(const std::string& name, const std::string& group) ResourceGroupManager::getSingleton(). addResourceLocation(name, "BSA", group); } + +} diff --git a/components/bsa/bsa_archive.hpp b/components/bsa/bsa_archive.hpp index bde6d9c3b..9054966db 100644 --- a/components/bsa/bsa_archive.hpp +++ b/components/bsa/bsa_archive.hpp @@ -23,11 +23,16 @@ #include -#ifndef _BSA_ARCHIVE_H_ -#define _BSA_ARCHIVE_H_ +#ifndef BSA_BSA_ARCHIVE_H +#define BSA_BSA_ARCHIVE_H + +namespace Bsa +{ /// Add the given BSA file as an input archive in the Ogre resource /// system. void addBSA(const std::string& file, const std::string& group="General"); +} + #endif diff --git a/components/bsa/bsa_file.cpp b/components/bsa/bsa_file.cpp index e37d38bb2..95358a362 100644 --- a/components/bsa/bsa_file.cpp +++ b/components/bsa/bsa_file.cpp @@ -32,6 +32,7 @@ using namespace std; using namespace Mangle::Stream; +using namespace Bsa; /// Error handling void BSAFile::fail(const string &msg) diff --git a/components/bsa/bsa_file.hpp b/components/bsa/bsa_file.hpp index 7ec101b43..f54a64d2a 100644 --- a/components/bsa/bsa_file.hpp +++ b/components/bsa/bsa_file.hpp @@ -21,8 +21,8 @@ */ -#ifndef _BSA_FILE_H_ -#define _BSA_FILE_H_ +#ifndef BSA_BSA_FILE_H +#define BSA_BSA_FILE_H #include #include @@ -31,6 +31,9 @@ #include #include +namespace Bsa +{ + /** This class is used to read "Bethesda Archive Files", or BSAs. */ @@ -131,4 +134,6 @@ class BSAFile { return files; } }; +} + #endif diff --git a/components/bsa/tests/bsa_file_test.cpp b/components/bsa/tests/bsa_file_test.cpp index ea3f9291c..07ee73d17 100644 --- a/components/bsa/tests/bsa_file_test.cpp +++ b/components/bsa/tests/bsa_file_test.cpp @@ -11,6 +11,7 @@ #include using namespace std; +using namespace Bsa; BSAFile bsa; diff --git a/components/bsa/tests/bsatool.cpp b/components/bsa/tests/bsatool.cpp index da96c2ed5..df37e3827 100644 --- a/components/bsa/tests/bsatool.cpp +++ b/components/bsa/tests/bsatool.cpp @@ -11,6 +11,7 @@ using namespace std; using namespace Mangle::Stream; +using namespace Bsa; int main(int argc, char** argv) { diff --git a/components/bsa/tests/ogre_archive_test.cpp b/components/bsa/tests/ogre_archive_test.cpp index 1a4334e60..9cd57240f 100644 --- a/components/bsa/tests/ogre_archive_test.cpp +++ b/components/bsa/tests/ogre_archive_test.cpp @@ -19,7 +19,7 @@ int main() Root *root = new Root("","",""); // Add the BSA - addBSA("../../data/Morrowind.bsa"); + Bsa::addBSA("../../data/Morrowind.bsa"); // Pick a sample file String tex = "textures\\tx_natural_cavern_wall13.dds"; From 90985e849efc5b82cd910fde7da6f6a5c7c777bb Mon Sep 17 00:00:00 2001 From: Lukasz Gromanowski Date: Sun, 19 Jun 2011 18:14:03 +0200 Subject: [PATCH 3/7] Mantis: #18 - Move components from global namespace into their own namespace. Moving classes from components/misc into Misc namespace. Note: Misc namespace introduced conflict with ESM::Misc and MWClass::Misc classes, so both of them are renamed to ESM::Miscellaneous and MWClass::Miscellaneous. Signed-off-by: Lukasz Gromanowski --- apps/openmw/engine.cpp | 4 ++-- apps/openmw/main.cpp | 2 +- apps/openmw/mwclass/classes.cpp | 2 +- apps/openmw/mwclass/misc.cpp | 28 +++++++++++++------------- apps/openmw/mwclass/misc.hpp | 2 +- apps/openmw/mwworld/containerstore.hpp | 2 +- apps/openmw/mwworld/world.cpp | 4 ++-- components/esm/esm_reader.cpp | 2 ++ components/esm/loadmisc.cpp | 2 +- components/esm/loadmisc.hpp | 2 +- components/esm_store/cell_store.hpp | 2 +- components/esm_store/store.hpp | 2 +- components/misc/fileops.cpp | 4 ++++ components/misc/fileops.hpp | 9 +++++++-- components/misc/slice_array.hpp | 9 +++++++-- components/misc/stringops.cpp | 5 +++++ components/misc/stringops.hpp | 9 +++++++-- components/nif/controlled.hpp | 2 +- components/nif/data.hpp | 8 ++++---- components/nif/extra.hpp | 4 ++-- components/nif/nif_file.cpp | 1 + components/nif/nif_file.hpp | 10 ++++----- components/nif/record.hpp | 4 +++- components/nifogre/ogre_nif_loader.cpp | 1 + 24 files changed, 75 insertions(+), 45 deletions(-) diff --git a/apps/openmw/engine.cpp b/apps/openmw/engine.cpp index e1386d3c4..dae2c9df7 100644 --- a/apps/openmw/engine.cpp +++ b/apps/openmw/engine.cpp @@ -338,12 +338,12 @@ void OMW::Engine::go() ogreCfg.insert(0, cfgUserDir); //A local plugins.cfg will be used if it exist, otherwise look in the default path - if(!isFile(plugCfg.c_str())) + if(!Misc::isFile(plugCfg.c_str())) { plugCfg.insert(0, cfgDir); } - mOgre.configure(!isFile(ogreCfg.c_str()), cfgUserDir, plugCfg, false); + mOgre.configure(!Misc::isFile(ogreCfg.c_str()), cfgUserDir, plugCfg, false); addResourcesDirectory (mDataDir / "Meshes"); addResourcesDirectory (mDataDir / "Textures"); diff --git a/apps/openmw/main.cpp b/apps/openmw/main.cpp index e117a0688..56f78afe3 100644 --- a/apps/openmw/main.cpp +++ b/apps/openmw/main.cpp @@ -84,7 +84,7 @@ bool parseOptions (int argc, char**argv, OMW::Engine& engine) //If there is an openmw.cfg in the current path use that as global config //Otherwise try getPath std::string cfgFile = "openmw.cfg"; - if(!isFile(cfgFile.c_str())) + if(!Misc::isFile(cfgFile.c_str())) { cfgFile = Files::getPath (Files::Path_ConfigGlobal, "openmw", "openmw.cfg"); } diff --git a/apps/openmw/mwclass/classes.cpp b/apps/openmw/mwclass/classes.cpp index 745614852..e9538a6cb 100644 --- a/apps/openmw/mwclass/classes.cpp +++ b/apps/openmw/mwclass/classes.cpp @@ -42,7 +42,7 @@ namespace MWClass ItemLevList::registerSelf(); Light::registerSelf(); Lockpick::registerSelf(); - Misc::registerSelf(); + Miscellaneous::registerSelf(); Probe::registerSelf(); Repair::registerSelf(); Static::registerSelf(); diff --git a/apps/openmw/mwclass/misc.cpp b/apps/openmw/mwclass/misc.cpp index f9995b77f..2986c812d 100644 --- a/apps/openmw/mwclass/misc.cpp +++ b/apps/openmw/mwclass/misc.cpp @@ -14,11 +14,11 @@ namespace MWClass { - void Misc::insertObj (const MWWorld::Ptr& ptr, MWRender::CellRenderImp& cellRender, + void Miscellaneous::insertObj (const MWWorld::Ptr& ptr, MWRender::CellRenderImp& cellRender, MWWorld::Environment& environment) const { - ESMS::LiveCellRef *ref = - ptr.get(); + ESMS::LiveCellRef *ref = + ptr.get(); assert (ref->base != NULL); const std::string &model = ref->base->model; @@ -31,39 +31,39 @@ namespace MWClass } } - std::string Misc::getName (const MWWorld::Ptr& ptr) const + std::string Miscellaneous::getName (const MWWorld::Ptr& ptr) const { - ESMS::LiveCellRef *ref = - ptr.get(); + ESMS::LiveCellRef *ref = + ptr.get(); return ref->base->name; } - boost::shared_ptr Misc::activate (const MWWorld::Ptr& ptr, + boost::shared_ptr Miscellaneous::activate (const MWWorld::Ptr& ptr, const MWWorld::Ptr& actor, const MWWorld::Environment& environment) const { return boost::shared_ptr ( new MWWorld::ActionTake (ptr)); } - void Misc::insertIntoContainer (const MWWorld::Ptr& ptr, + void Miscellaneous::insertIntoContainer (const MWWorld::Ptr& ptr, MWWorld::ContainerStore& containerStore) const { insertIntoContainerStore (ptr, containerStore.miscItems); } - std::string Misc::getScript (const MWWorld::Ptr& ptr) const + std::string Miscellaneous::getScript (const MWWorld::Ptr& ptr) const { - ESMS::LiveCellRef *ref = - ptr.get(); + ESMS::LiveCellRef *ref = + ptr.get(); return ref->base->script; } - void Misc::registerSelf() + void Miscellaneous::registerSelf() { - boost::shared_ptr instance (new Misc); + boost::shared_ptr instance (new Miscellaneous); - registerClass (typeid (ESM::Misc).name(), instance); + registerClass (typeid (ESM::Miscellaneous).name(), instance); } } diff --git a/apps/openmw/mwclass/misc.hpp b/apps/openmw/mwclass/misc.hpp index 0da1f0d3a..81262cbee 100644 --- a/apps/openmw/mwclass/misc.hpp +++ b/apps/openmw/mwclass/misc.hpp @@ -5,7 +5,7 @@ namespace MWClass { - class Misc : public MWWorld::Class + class Miscellaneous : public MWWorld::Class { public: diff --git a/apps/openmw/mwworld/containerstore.hpp b/apps/openmw/mwworld/containerstore.hpp index c05bfe156..971a79c15 100644 --- a/apps/openmw/mwworld/containerstore.hpp +++ b/apps/openmw/mwworld/containerstore.hpp @@ -16,7 +16,7 @@ namespace MWWorld ESMS::CellRefList ingreds; ESMS::CellRefList lights; ESMS::CellRefList lockpicks; - ESMS::CellRefList miscItems; + ESMS::CellRefList miscItems; ESMS::CellRefList probes; ESMS::CellRefList repairs; ESMS::CellRefList weapons; diff --git a/apps/openmw/mwworld/world.cpp b/apps/openmw/mwworld/world.cpp index f1563e621..3a4151e3a 100644 --- a/apps/openmw/mwworld/world.cpp +++ b/apps/openmw/mwworld/world.cpp @@ -135,7 +135,7 @@ namespace MWWorld if (ESMS::LiveCellRef *ref = cell.lockpicks.find (name)) return Ptr (ref, &cell); - if (ESMS::LiveCellRef *ref = cell.miscItems.find (name)) + if (ESMS::LiveCellRef *ref = cell.miscItems.find (name)) return Ptr (ref, &cell); if (ESMS::LiveCellRef *ref = cell.npcs.find (name)) @@ -198,7 +198,7 @@ namespace MWWorld if (ESMS::LiveCellRef *ref = searchViaHandle (handle, cell.lockpicks)) return Ptr (ref, &cell); - if (ESMS::LiveCellRef *ref = searchViaHandle (handle, cell.miscItems)) + if (ESMS::LiveCellRef *ref = searchViaHandle (handle, cell.miscItems)) return Ptr (ref, &cell); if (ESMS::LiveCellRef *ref = searchViaHandle (handle, cell.npcs)) diff --git a/components/esm/esm_reader.cpp b/components/esm/esm_reader.cpp index 00a34e2df..2c342178b 100644 --- a/components/esm/esm_reader.cpp +++ b/components/esm/esm_reader.cpp @@ -3,6 +3,8 @@ namespace ESM { +using namespace Misc; + ESM_Context ESMReader::getContext() { // Update the file position before returning diff --git a/components/esm/loadmisc.cpp b/components/esm/loadmisc.cpp index dc3d04f50..0206661c4 100644 --- a/components/esm/loadmisc.cpp +++ b/components/esm/loadmisc.cpp @@ -3,7 +3,7 @@ namespace ESM { -void Misc::load(ESMReader &esm) +void Miscellaneous::load(ESMReader &esm) { model = esm.getHNString("MODL"); name = esm.getHNOString("FNAM"); diff --git a/components/esm/loadmisc.hpp b/components/esm/loadmisc.hpp index 36400eb74..7e151f797 100644 --- a/components/esm/loadmisc.hpp +++ b/components/esm/loadmisc.hpp @@ -11,7 +11,7 @@ namespace ESM * carried, bought and sold. It also includes keys. */ -struct Misc +struct Miscellaneous { struct MCDTstruct { diff --git a/components/esm_store/cell_store.hpp b/components/esm_store/cell_store.hpp index 0b8c25d4f..59464236f 100644 --- a/components/esm_store/cell_store.hpp +++ b/components/esm_store/cell_store.hpp @@ -100,7 +100,7 @@ namespace ESMS CellRefList itemLists; CellRefList lights; CellRefList lockpicks; - CellRefList miscItems; + CellRefList miscItems; CellRefList npcs; CellRefList probes; CellRefList repairs; diff --git a/components/esm_store/store.hpp b/components/esm_store/store.hpp index 2af6fab37..e3bbf9e82 100644 --- a/components/esm_store/store.hpp +++ b/components/esm_store/store.hpp @@ -52,7 +52,7 @@ namespace ESMS RecListT itemLists; RecListT lights; RecListT lockpicks; - RecListT miscItems; + RecListT miscItems; RecListWithIDT npcs; RecListT npcChange; RecListT probes; diff --git a/components/misc/fileops.cpp b/components/misc/fileops.cpp index b7b9a8d78..eb3b58d84 100644 --- a/components/misc/fileops.cpp +++ b/components/misc/fileops.cpp @@ -4,9 +4,13 @@ #include +namespace Misc +{ + bool isFile(const char *name) { boost::filesystem::path cfg_file_path(name); return boost::filesystem::exists(cfg_file_path); } +} diff --git a/components/misc/fileops.hpp b/components/misc/fileops.hpp index 004f01dd6..f4e7701bb 100644 --- a/components/misc/fileops.hpp +++ b/components/misc/fileops.hpp @@ -1,8 +1,11 @@ -#ifndef __FILEOPS_H_ -#define __FILEOPS_H_ +#ifndef MISC_FILEOPS_H +#define MISC_FILEOPS_H #include +namespace Misc +{ + /// Check if a given path is an existing file (not a directory) bool isFile(const char *name); @@ -10,4 +13,6 @@ bool isFile(const char *name); std::string macBundlePath(); #endif +} + #endif diff --git a/components/misc/slice_array.hpp b/components/misc/slice_array.hpp index f7e2ffeff..cd58e7bd6 100644 --- a/components/misc/slice_array.hpp +++ b/components/misc/slice_array.hpp @@ -21,14 +21,17 @@ */ -#ifndef _SLICE_ARRAY_H_ -#define _SLICE_ARRAY_H_ +#ifndef MISC_SLICE_ARRAY_H +#define MISC_SLICE_ARRAY_H // A simple array implementation containing a pointer and a // length. Used for holding slices into a data buffer. #include #include +namespace Misc +{ + template struct SliceArray { @@ -74,4 +77,6 @@ typedef SliceArray SString; typedef SliceArray IntArray; typedef SliceArray FloatArray; +} + #endif diff --git a/components/misc/stringops.cpp b/components/misc/stringops.cpp index f6b63372c..53eed1fdc 100644 --- a/components/misc/stringops.cpp +++ b/components/misc/stringops.cpp @@ -3,6 +3,9 @@ #include #include +namespace Misc +{ + bool begins(const char* str1, const char* str2) { while(*str2) @@ -57,3 +60,5 @@ bool iends(const char* str1, const char* str2) return strcasecmp(str2, str1+len1-len2) == 0; } + +} diff --git a/components/misc/stringops.hpp b/components/misc/stringops.hpp index e76b8a87a..a32104bf3 100644 --- a/components/misc/stringops.hpp +++ b/components/misc/stringops.hpp @@ -1,5 +1,8 @@ -#ifndef __STRINGOPS_H -#define __STRINGOPS_H +#ifndef MISC_STRINGOPS_H +#define MISC_STRINGOPS_H + +namespace Misc +{ /// Returns true if str1 begins with substring str2 bool begins(const char* str1, const char* str2); @@ -13,4 +16,6 @@ bool ibegins(const char* str1, const char* str2); /// Case insensitive, returns true if str1 ends with substring str2 bool iends(const char* str1, const char* str2); +} + #endif diff --git a/components/nif/controlled.hpp b/components/nif/controlled.hpp index 67f2dec36..d59950132 100644 --- a/components/nif/controlled.hpp +++ b/components/nif/controlled.hpp @@ -46,7 +46,7 @@ public: class Named : public Controlled { public: - SString name; + Misc::SString name; void read(NIFFile *nif) { diff --git a/components/nif/data.hpp b/components/nif/data.hpp index 6fc2c4b82..ee8a9e4b3 100644 --- a/components/nif/data.hpp +++ b/components/nif/data.hpp @@ -37,7 +37,7 @@ public: // internal (data is inside the nif itself) texture? bool external; - SString filename; // In case of external textures + Misc::SString filename; // In case of external textures NiPixelDataPtr data; // In case of internal textures /* Pixel layout @@ -88,7 +88,7 @@ public: class ShapeData : public Record { public: - FloatArray vertices, normals, colors, uvlist; + Misc::FloatArray vertices, normals, colors, uvlist; const Vector *center; float radius; @@ -123,7 +123,7 @@ class NiTriShapeData : public ShapeData { public: // Triangles, three vertex indices per triangle - SliceArray triangles; + Misc::SliceArray triangles; void read(NIFFile *nif) { @@ -377,7 +377,7 @@ public: { const BoneTrafo *trafo; const Vector4 *unknown; - SliceArray weights; + Misc::SliceArray weights; }; const BoneTrafo *trafo; diff --git a/components/nif/extra.hpp b/components/nif/extra.hpp index 25375c325..eec1aa7b4 100644 --- a/components/nif/extra.hpp +++ b/components/nif/extra.hpp @@ -65,7 +65,7 @@ public: struct TextKey { float time; - SString text; + Misc::SString text; }; std::vector list; @@ -93,7 +93,7 @@ public: "MRK" - marker, only visible in the editor, not rendered in-game "NCO" - no collision */ - SString string; + Misc::SString string; void read(NIFFile *nif) { diff --git a/components/nif/nif_file.cpp b/components/nif/nif_file.cpp index 3c7d7fb17..361e5f6e9 100644 --- a/components/nif/nif_file.cpp +++ b/components/nif/nif_file.cpp @@ -36,6 +36,7 @@ #include using namespace std; using namespace Nif; +using namespace Misc; /* This file implements functions from the NIFFile class. It is also where we stash all the functions we couldn't add as inline diff --git a/components/nif/nif_file.hpp b/components/nif/nif_file.hpp index ebf1fe4a4..951ae1f75 100644 --- a/components/nif/nif_file.hpp +++ b/components/nif/nif_file.hpp @@ -128,24 +128,24 @@ class NIFFile char getByte() { return getType(); } template - SliceArray getArrayLen(int num) - { return SliceArray((const X*)inp->getPtr(num*sizeof(X)),num); } + Misc::SliceArray getArrayLen(int num) + { return Misc::SliceArray((const X*)inp->getPtr(num*sizeof(X)),num); } template - SliceArray getArray() + Misc::SliceArray getArray() { int len = getInt(); return getArrayLen(len); } - SString getString() { return getArray(); } + Misc::SString getString() { return getArray(); } const Vector *getVector() { return getPtr(); } const Matrix *getMatrix() { return getPtr(); } const Transformation *getTrafo() { return getPtr(); } const Vector4 *getVector4() { return getPtr(); } - FloatArray getFloatLen(int num) + Misc::FloatArray getFloatLen(int num) { return getArrayLen(num); } // For fixed-size strings where you already know the size diff --git a/components/nif/record.hpp b/components/nif/record.hpp index 8b8910118..e94e3d0d3 100644 --- a/components/nif/record.hpp +++ b/components/nif/record.hpp @@ -24,6 +24,8 @@ #ifndef _NIF_RECORD_H_ #define _NIF_RECORD_H_ +#include + namespace Nif { @@ -88,7 +90,7 @@ struct Record { // Record type and type name int recType; - SString recName; + Misc::SString recName; Record() : recType(RC_MISSING) {} diff --git a/components/nifogre/ogre_nif_loader.cpp b/components/nifogre/ogre_nif_loader.cpp index 2db51b003..e4d09d941 100644 --- a/components/nifogre/ogre_nif_loader.cpp +++ b/components/nifogre/ogre_nif_loader.cpp @@ -50,6 +50,7 @@ using namespace std; using namespace Ogre; using namespace Nif; using namespace Mangle::VFS; +using namespace Misc; NIFLoader& NIFLoader::getSingleton() { From 514b55766f5daab592c00d1e6381ccd6ad03b19a Mon Sep 17 00:00:00 2001 From: Lukasz Gromanowski Date: Sun, 19 Jun 2011 18:25:09 +0200 Subject: [PATCH 4/7] Mantis: #18 - Move components from global namespace into their own namespace. Updated components/misc tests. Signed-off-by: Lukasz Gromanowski --- components/misc/tests/slice_test.cpp | 10 ++-- components/misc/tests/strops_test.cpp | 78 +++++++++++++-------------- 2 files changed, 44 insertions(+), 44 deletions(-) diff --git a/components/misc/tests/slice_test.cpp b/components/misc/tests/slice_test.cpp index 950194279..a0ea55311 100644 --- a/components/misc/tests/slice_test.cpp +++ b/components/misc/tests/slice_test.cpp @@ -8,21 +8,21 @@ using namespace std; int main() { - SString s, t; - s = SString("hello"); + Misc::SString s, t; + s = Misc::SString("hello"); cout << s.toString() << ", len=" << s.length << endl; cout << (s=="hel") << (s=="hell") << (s=="hello") << endl; t = s; - s = SString("othello"+2, 4); + s = Misc::SString("othello"+2, 4); cout << s.toString() << ", len=" << s.length << endl; cout << (s=="hel") << (s=="hell") << (s=="hello") << endl; - cout << (s==t) << (SString("hello")==t) << endl; + cout << (s==t) << (Misc::SString("hello")==t) << endl; const int arr[4] = {1,2,3,4}; - IntArray ia(arr,4); + Misc::IntArray ia(arr,4); cout << ia.length << " " << ia.ptr[2] << endl; diff --git a/components/misc/tests/strops_test.cpp b/components/misc/tests/strops_test.cpp index ca5bd55a9..2a1fdd77d 100644 --- a/components/misc/tests/strops_test.cpp +++ b/components/misc/tests/strops_test.cpp @@ -4,45 +4,45 @@ int main() { - assert(begins("abc", "a")); - assert(begins("abc", "ab")); - assert(begins("abc", "abc")); - assert(begins("abcd", "abc")); - - assert(!begins("abc", "b")); - assert(!begins("abc", "bc")); - assert(!begins("abc", "bcd")); - assert(!begins("abc", "abcd")); - - assert(ibegins("Abc", "a")); - assert(ibegins("aBc", "ab")); - assert(ibegins("abC", "abc")); - assert(ibegins("abcD", "abc")); - - assert(!ibegins("abc", "b")); - assert(!ibegins("abc", "bc")); - assert(!ibegins("abc", "bcd")); - assert(!ibegins("abc", "abcd")); - - assert(ends("abc", "c")); - assert(ends("abc", "bc")); - assert(ends("abc", "abc")); - assert(ends("abcd", "abcd")); - - assert(!ends("abc", "b")); - assert(!ends("abc", "ab")); - assert(!ends("abc", "bcd")); - assert(!ends("abc", "abcd")); - - assert(iends("Abc", "c")); - assert(iends("aBc", "bc")); - assert(iends("abC", "abc")); - assert(iends("abcD", "abcd")); - - assert(!iends("abc", "b")); - assert(!iends("abc", "ab")); - assert(!iends("abc", "bcd")); - assert(!iends("abc", "abcd")); + assert(Misc::begins("abc", "a")); + assert(Misc::begins("abc", "ab")); + assert(Misc::begins("abc", "abc")); + assert(Misc::begins("abcd", "abc")); + + assert(!Misc::begins("abc", "b")); + assert(!Misc::begins("abc", "bc")); + assert(!Misc::begins("abc", "bcd")); + assert(!Misc::begins("abc", "abcd")); + + assert(Misc::ibegins("Abc", "a")); + assert(Misc::ibegins("aBc", "ab")); + assert(Misc::ibegins("abC", "abc")); + assert(Misc::ibegins("abcD", "abc")); + + assert(!Misc::ibegins("abc", "b")); + assert(!Misc::ibegins("abc", "bc")); + assert(!Misc::ibegins("abc", "bcd")); + assert(!Misc::ibegins("abc", "abcd")); + + assert(Misc::ends("abc", "c")); + assert(Misc::ends("abc", "bc")); + assert(Misc::ends("abc", "abc")); + assert(Misc::ends("abcd", "abcd")); + + assert(!Misc::ends("abc", "b")); + assert(!Misc::ends("abc", "ab")); + assert(!Misc::ends("abc", "bcd")); + assert(!Misc::ends("abc", "abcd")); + + assert(Misc::iends("Abc", "c")); + assert(Misc::iends("aBc", "bc")); + assert(Misc::iends("abC", "abc")); + assert(Misc::iends("abcD", "abcd")); + + assert(!Misc::iends("abc", "b")); + assert(!Misc::iends("abc", "ab")); + assert(!Misc::iends("abc", "bcd")); + assert(!Misc::iends("abc", "abcd")); return 0; } From 2ddd5dba11aca71fd40272e77d58b5916e8f4f5e Mon Sep 17 00:00:00 2001 From: Lukasz Gromanowski Date: Sun, 19 Jun 2011 18:45:23 +0200 Subject: [PATCH 5/7] Mantis: #18 - Move components from global namespace into their own namespace. Moving classes from components/nifbullet into NifBullet namespace. Signed-off-by: Lukasz Gromanowski --- apps/openmw/engine.cpp | 2 +- components/nifbullet/bullet_nif_loader.cpp | 2 +- components/nifbullet/bullet_nif_loader.hpp | 4 ++++ components/nifbullet/test/test.cpp | 4 ++-- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/apps/openmw/engine.cpp b/apps/openmw/engine.cpp index dae2c9df7..709b21fc8 100644 --- a/apps/openmw/engine.cpp +++ b/apps/openmw/engine.cpp @@ -358,7 +358,7 @@ void OMW::Engine::go() loadBSA(); // Create physics. shapeLoader is deleted by the physic engine - ManualBulletShapeLoader* shapeLoader = new ManualBulletShapeLoader(); + NifBullet::ManualBulletShapeLoader* shapeLoader = new NifBullet::ManualBulletShapeLoader(); mPhysicEngine = new OEngine::Physic::PhysicEngine(shapeLoader); // Create the world diff --git a/components/nifbullet/bullet_nif_loader.cpp b/components/nifbullet/bullet_nif_loader.cpp index 1ff78023d..94a3a5aac 100644 --- a/components/nifbullet/bullet_nif_loader.cpp +++ b/components/nifbullet/bullet_nif_loader.cpp @@ -49,7 +49,7 @@ using namespace Ogre; using namespace Nif; using namespace Mangle::VFS; - +using namespace NifBullet; //==================================================================================================== Ogre::Matrix3 ManualBulletShapeLoader::getMatrix(Nif::Transformation* tr) diff --git a/components/nifbullet/bullet_nif_loader.hpp b/components/nifbullet/bullet_nif_loader.hpp index d960c6629..360d9850b 100644 --- a/components/nifbullet/bullet_nif_loader.hpp +++ b/components/nifbullet/bullet_nif_loader.hpp @@ -58,6 +58,8 @@ namespace Mangle } } +namespace NifBullet +{ /** *Load bulletShape from NIF files. @@ -126,4 +128,6 @@ private: btCompoundShape* currentShape;//the shape curently under construction }; +} + #endif diff --git a/components/nifbullet/test/test.cpp b/components/nifbullet/test/test.cpp index b91c48666..261edf512 100644 --- a/components/nifbullet/test/test.cpp +++ b/components/nifbullet/test/test.cpp @@ -90,11 +90,11 @@ int main() //Ressources stuff - addBSA("Morrowind.bsa"); + Bsa::addBSA("Morrowind.bsa"); //Ogre::ResourceGroupManager::getSingleton().createResourceGroup("general"); Ogre::ResourcePtr ptr = BulletShapeManager::getSingleton().getByName(mesh,"General"); - ManualBulletShapeLoader* ShapeLoader = new ManualBulletShapeLoader(); + NifBullet::ManualBulletShapeLoader* ShapeLoader = new NifBullet::ManualBulletShapeLoader(); ShapeLoader->load(mesh,"General"); //BulletShapeManager::getSingleton().unload(mesh); From e9ff9a446b8ecbbbabeac208d41e5e7dfa5a337d Mon Sep 17 00:00:00 2001 From: Lukasz Gromanowski Date: Sun, 19 Jun 2011 19:14:14 +0200 Subject: [PATCH 6/7] Mantis: #18 - Move components from global namespace into their own namespace. Moving classes from components/nifogre into NifOgre namespace. Signed-off-by: Lukasz Gromanowski --- apps/openmw/mwrender/exterior.cpp | 4 ++-- apps/openmw/mwrender/interior.cpp | 4 ++-- components/nifogre/ogre_nif_loader.cpp | 1 + components/nifogre/ogre_nif_loader.hpp | 5 +++++ components/nifogre/tests/ogre_nif_test.cpp | 6 +++--- 5 files changed, 13 insertions(+), 7 deletions(-) diff --git a/apps/openmw/mwrender/exterior.cpp b/apps/openmw/mwrender/exterior.cpp index 1cdc51c98..513fdac2a 100644 --- a/apps/openmw/mwrender/exterior.cpp +++ b/apps/openmw/mwrender/exterior.cpp @@ -124,7 +124,7 @@ void ExteriorCellRender::insertMesh(const std::string &mesh, Ogre::Vector3 vec, } mNpcPart = parent->createChildSceneNode(sceneNodeName); - MeshPtr good2 = NIFLoader::load(mesh); + MeshPtr good2 = NifOgre::NIFLoader::load(mesh); MovableObject *ent = mScene.getMgr()->createEntity(mesh); @@ -213,7 +213,7 @@ void ExteriorCellRender::insertMesh(const std::string &mesh) { assert (mInsert); - NIFLoader::load(mesh); + NifOgre::NIFLoader::load(mesh); Entity *ent = mScene.getMgr()->createEntity(mesh); if(!isStatic) diff --git a/apps/openmw/mwrender/interior.cpp b/apps/openmw/mwrender/interior.cpp index ad0ecf69d..4fa5191b8 100644 --- a/apps/openmw/mwrender/interior.cpp +++ b/apps/openmw/mwrender/interior.cpp @@ -106,7 +106,7 @@ void InteriorCellRender::insertMesh(const std::string &mesh, Ogre::Vector3 vec, npcPart = parent->createChildSceneNode(sceneNodeName); //npcPart->showBoundingBox(true); - MeshPtr good2 = NIFLoader::load(mesh); + MeshPtr good2 = NifOgre::NIFLoader::load(mesh); MovableObject *ent = scene.getMgr()->createEntity(mesh); //ent->extr @@ -184,7 +184,7 @@ void InteriorCellRender::insertMesh(const std::string &mesh) { assert (insert); - NIFLoader::load(mesh); + NifOgre::NIFLoader::load(mesh); MovableObject *ent = scene.getMgr()->createEntity(mesh); insert->attachObject(ent); diff --git a/components/nifogre/ogre_nif_loader.cpp b/components/nifogre/ogre_nif_loader.cpp index e4d09d941..b2b102daf 100644 --- a/components/nifogre/ogre_nif_loader.cpp +++ b/components/nifogre/ogre_nif_loader.cpp @@ -51,6 +51,7 @@ using namespace Ogre; using namespace Nif; using namespace Mangle::VFS; using namespace Misc; +using namespace NifOgre; NIFLoader& NIFLoader::getSingleton() { diff --git a/components/nifogre/ogre_nif_loader.hpp b/components/nifogre/ogre_nif_loader.hpp index cec9d95d7..fd05ee866 100644 --- a/components/nifogre/ogre_nif_loader.hpp +++ b/components/nifogre/ogre_nif_loader.hpp @@ -49,6 +49,9 @@ namespace Mangle } } +namespace NifOgre +{ + /** Manual resource loader for NIF meshes. This is the main class responsible for translating the internal NIF mesh structure into something Ogre can use. Later it will also handle the insertion of @@ -139,4 +142,6 @@ class NIFLoader : Ogre::ManualResourceLoader Ogre::SkeletonPtr mSkel; }; +} + #endif diff --git a/components/nifogre/tests/ogre_nif_test.cpp b/components/nifogre/tests/ogre_nif_test.cpp index 89f99e8ff..decd43df5 100644 --- a/components/nifogre/tests/ogre_nif_test.cpp +++ b/components/nifogre/tests/ogre_nif_test.cpp @@ -13,11 +13,11 @@ const char* mesh = "meshes\\f\\ex_ashl_a_banner_r.nif"; void C::doTest() { // Add Morrowind.bsa resource location - addBSA("../../data/Morrowind.bsa"); + Bsa::addBSA("../../data/Morrowind.bsa"); // Insert the mesh - NIFLoader::load(mesh); - NIFLoader::load(mesh); + NifOgre::NIFLoader::load(mesh); + NifOgre::NIFLoader::load(mesh); /* SceneNode *node = mgr->getRootSceneNode()->createChildSceneNode("node"); From 57972eb04214f28db371ec6edfef01a86e6acd9b Mon Sep 17 00:00:00 2001 From: Lukasz Gromanowski Date: Sun, 19 Jun 2011 19:33:30 +0200 Subject: [PATCH 7/7] Mantis: #18 - Move components from global namespace into their own namespace. Added namespace around generated win_1252 table. Added generation of header guard and ToUTF8 namespace in gen_iconv. Small corrections in Makefile. Signed-off-by: Lukasz Gromanowski --- components/to_utf8/Makefile | 5 ++++- components/to_utf8/gen_iconv.cpp | 15 +++++++++++++++ components/to_utf8/tables_gen.hpp | 11 +++++++++++ components/to_utf8/to_utf8.cpp | 2 +- 4 files changed, 31 insertions(+), 2 deletions(-) diff --git a/components/to_utf8/Makefile b/components/to_utf8/Makefile index a84cc240e..5234d455a 100644 --- a/components/to_utf8/Makefile +++ b/components/to_utf8/Makefile @@ -1,5 +1,8 @@ tables_gen.hpp: gen_iconv - gen_iconv > tables_gen.hpp + ./gen_iconv > tables_gen.hpp gen_iconv: gen_iconv.cpp g++ -Wall $^ -o $@ + +clean: + rm -f ./gen_iconv \ No newline at end of file diff --git a/components/to_utf8/gen_iconv.cpp b/components/to_utf8/gen_iconv.cpp index 42e997783..cf4d9ac3f 100644 --- a/components/to_utf8/gen_iconv.cpp +++ b/components/to_utf8/gen_iconv.cpp @@ -74,13 +74,28 @@ int write_table(const std::string &charset, const std::string &tableName) // Finish table cout << "};\n"; + + return 0; } int main() { cout << hex; + // Write header guard + cout << "#ifndef COMPONENTS_TOUTF8_TABLE_GEN_H\n#define COMPONENTS_TOUTF8_TABLE_GEN_H\n\n"; + + // Write namespace + cout << "namespace ToUTF8\n{\n\n"; + // English write_table("WINDOWS-1252", "windows_1252"); + + // Close namespace + cout << "\n}\n\n"; + + // Close header guard + cout << "#endif\n\n"; + return 0; } diff --git a/components/to_utf8/tables_gen.hpp b/components/to_utf8/tables_gen.hpp index 55a06cd94..a45d5d181 100644 --- a/components/to_utf8/tables_gen.hpp +++ b/components/to_utf8/tables_gen.hpp @@ -1,3 +1,9 @@ +#ifndef COMPONENTS_TOUTF8_TABLE_GEN_H +#define COMPONENTS_TOUTF8_TABLE_GEN_H + +namespace ToUTF8 +{ + static char windows_1252[] = { 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, @@ -257,3 +263,8 @@ static char windows_1252[] = 0x2, 0xc3, 0xbe, 0x0, 0x0, 0x0, 0x2, 0xc3, 0xbf, 0x0, 0x0, 0x0 }; + +} + +#endif + diff --git a/components/to_utf8/to_utf8.cpp b/components/to_utf8/to_utf8.cpp index 6f6933143..5f38313aa 100644 --- a/components/to_utf8/to_utf8.cpp +++ b/components/to_utf8/to_utf8.cpp @@ -131,7 +131,7 @@ std::string ToUTF8::getUtf8(ToUTF8::FromType from) // Pick translation array const char *arr; if(from == ToUTF8::WINDOWS_1252) - arr = windows_1252; + arr = ToUTF8::windows_1252; else assert(0);