diff --git a/source/simulation/Technology.cpp b/source/simulation/Technology.cpp index 6bde1bad94..e52c404271 100644 --- a/source/simulation/Technology.cpp +++ b/source/simulation/Technology.cpp @@ -16,13 +16,12 @@ STL_HASH_SET CTechnology::m_scriptsLoaded; -CTechnology::CTechnology( CPlayer* player ) : m_player(player) +CTechnology::CTechnology( const CStrW& name, CPlayer* player ) : m_Name(name), m_player(player) { ONCE( ScriptingInit(); ); m_researched=false; m_excluded = false; - m_JSFirst = false; m_inProgress = false; } bool CTechnology::loadXML( const CStr& filename ) @@ -89,7 +88,7 @@ bool CTechnology::loadELID( XMBElement ID, CXeromyces& XeroFile ) { XMBElement element = children.item(i); int name = element.getNodeName(); - CStr value = CStr(element.getText()); + CStrW value = element.getText(); if ( name == el_generic ) m_Generic = value; @@ -134,7 +133,7 @@ bool CTechnology::loadELReq( XMBElement Req, CXeromyces& XeroFile ) { XMBElement element = children.item(i); int name = element.getNodeName(); - CStr value = element.getText(); + CStrW value = element.getText(); if ( name == el_time ) m_ReqTime = value.ToFloat(); @@ -145,7 +144,7 @@ bool CTechnology::loadELReq( XMBElement Req, CXeromyces& XeroFile ) { XMBElement resElement = resChildren.item(j); int resName = resElement.getNodeName(); - CStr resValue = CStr(resElement.getText()); + CStrW resValue = resElement.getText(); if ( resName == el_food ) //NOT LOADED-GET CHILD NODES m_ReqFood = resValue.ToFloat(); @@ -190,7 +189,6 @@ bool CTechnology::loadELEffect( XMBElement effect, CXeromyces& XeroFile, const C EL(script); EL(function); AT(name); - AT(order); AT(file); #undef EL @@ -215,7 +213,7 @@ bool CTechnology::loadELEffect( XMBElement effect, CXeromyces& XeroFile, const C for ( int j=0; j( "isValid", 0 ); AddMethod( "isResearched", 0 ); AddMethod( "getPlayerID", 0 ); - AddMethod( "isJSFirst", 0 ); CJSObject::ScriptingInit("Technology"); @@ -468,11 +465,6 @@ inline jsval CTechnology::GetPlayerID( JSContext* UNUSED(cx), uintN UNUSED(argc) return ToJSVal( m_player->GetPlayerID() ); } -jsval CTechnology::IsJSFirst( JSContext* UNUSED(cx), uintN UNUSED(argc), jsval* UNUSED(argv) ) -{ - return ToJSVal( m_JSFirst ); -} - diff --git a/source/simulation/Technology.h b/source/simulation/Technology.h index 04b18f72e6..42dd306c23 100644 --- a/source/simulation/Technology.h +++ b/source/simulation/Technology.h @@ -27,7 +27,7 @@ class CTechnology : public CJSObject static STL_HASH_SET m_scriptsLoaded; public: - CTechnology(CPlayer* player); + CTechnology(const CStrW& name, CPlayer* player); ~CTechnology() {} //JS functions @@ -35,7 +35,6 @@ public: jsval ApplyEffects( JSContext* cx, uintN argc, jsval* argv ); jsval IsValid( JSContext* cx, uintN argc, jsval* argv ); jsval IsResearched( JSContext* cx, uintN argc, jsval* argv ); - jsval IsJSFirst( JSContext* cx, uintN argc, jsval* argv ); jsval IsExcluded( JSContext* cx, uintN argc, jsval* argv ); inline jsval GetPlayerID( JSContext* cx, uintN argc, jsval* argv ); @@ -52,13 +51,15 @@ public: bool loadELEffect( XMBElement Effect, CXeromyces& XeroFile, const CStr& filename ); private: - CStr m_Generic; - CStr m_Specific; + CStrW m_Name; // name of the tech file - CStr m_Icon; + CStrW m_Generic; + CStrW m_Specific; + + CStrW m_Icon; int m_IconCell; - CStr m_Classes; - CStr m_History; + CStrW m_Classes; + CStrW m_History; float m_ReqTime; float m_ReqWood; @@ -74,9 +75,8 @@ private: std::vector m_Sets; CPlayer* m_player; //Which player this tech belongs to + CScriptObject m_effectFunction; - - bool m_JSFirst; //Should JS effect function run before C++ bool m_excluded; bool m_researched; diff --git a/source/simulation/TechnologyCollection.cpp b/source/simulation/TechnologyCollection.cpp index 3e96cc5556..c1b852d4f6 100644 --- a/source/simulation/TechnologyCollection.cpp +++ b/source/simulation/TechnologyCollection.cpp @@ -48,7 +48,7 @@ CTechnology* CTechnologyCollection::getTechnology( const CStrW& name, CPlayer* p CStr path( filename_it->second ); //Try to load to the tech - CTechnology* newTemplate = new CTechnology( player ); + CTechnology* newTemplate = new CTechnology( name, player ); if( !newTemplate->loadXML( path ) ) { LOG(ERROR, LOG_CATEGORY, "CTechnologyCollection::getTechnology(): Couldn't load tech \"%s\"", path.c_str());