示例#1
0
    void realise ()
    {
        ASSERT_MESSAGE(m_unrealised != 0, "ModelResource::realise: already realised");
        if (--m_unrealised == 0) {
            m_path = rootPath(m_originalName);
            m_name = path_make_relative(m_originalName, m_path);

            m_observers.realise();
        }
    }
示例#2
0
  void unrealise()
  {
    if(++m_unrealised == 1)
    {
      m_observers.unrealise();

      //globalOutputStream() << "ModelResource::unrealise: " << m_path.c_str() << m_name.c_str() << "\n";
      clearModel();
    }
  }
示例#3
0
  void realise()
  {
    ASSERT_MESSAGE(m_unrealised != 0, "ModelResource::realise: already realised");
    if(--m_unrealised == 0)
    {
      m_path = rootPath(m_originalName.c_str());
      m_name = path_make_relative(m_originalName.c_str(), m_path.c_str());

      //globalOutputStream() << "ModelResource::realise: " << m_path.c_str() << m_name.c_str() << "\n";

      m_observers.realise();
    }
  }
示例#4
0
void Radiant_Shutdown (void)
{
	Environment::Instance().deletePathsFromRegistry();

	GlobalMRU().saveRecentFiles();

	g_VFSModuleObserver.unrealise();
	Environment::Instance().setMapsPath("");
	g_gameModeObservers.unrealise();
	g_gameToolsPathObservers.unrealise();

	Radiant_Destroy();
}
示例#5
0
void realise(){
	if ( --m_unrealised == 0 ) {
		globalOutputStream() << "searching vfs directory " << makeQuoted( "def" ) << " for *.def\n";
		GlobalFileSystem().forEachFile( "def/", "def", makeCallbackF(EntityClassDoom3_loadFile) );

		{
			for ( Models::iterator i = g_models.begin(); i != g_models.end(); ++i )
			{
				Model_resolveInheritance( ( *i ).first.c_str(), ( *i ).second );
			}
		}
		{
			for ( EntityClasses::iterator i = g_EntityClassDoom3_classes.begin(); i != g_EntityClassDoom3_classes.end(); ++i )
			{
				EntityClass_resolveInheritance( ( *i ).second );
				if ( !string_empty( ( *i ).second->m_modelpath.c_str() ) ) {
					Models::iterator j = g_models.find( ( *i ).second->m_modelpath );
					if ( j != g_models.end() ) {
						( *i ).second->m_modelpath = ( *j ).second.m_mesh;
						( *i ).second->m_skin = ( *j ).second.m_skin;
					}
				}
				eclass_capture_state( ( *i ).second );

				StringOutputStream usage( 256 );

				usage << "-------- NOTES --------\n";

				if ( !string_empty( ( *i ).second->m_comments.c_str() ) ) {
					usage << ( *i ).second->m_comments.c_str() << "\n";
				}

				usage << "\n-------- KEYS --------\n";

				for ( EntityClassAttributes::iterator j = ( *i ).second->m_attributes.begin(); j != ( *i ).second->m_attributes.end(); ++j )
				{
					const char* name = EntityClassAttributePair_getName( *j );
					const char* description = EntityClassAttributePair_getDescription( *j );
					if ( !string_equal( name, description ) ) {
						usage << EntityClassAttributePair_getName( *j ) << " : " << EntityClassAttributePair_getDescription( *j ) << "\n";
					}
				}

				( *i ).second->m_comments = usage.c_str();
			}
		}

		m_observers.realise();
	}
}
示例#6
0
void detach( ModuleObserver& observer ){
	m_observers.detach( observer );
}
示例#7
0
void attach( ModuleObserver& observer ){
	m_observers.attach( observer );
}
示例#8
0
void unrealise(){
	if ( ++m_unrealised == 1 ) {
		m_observers.unrealise();
		EntityClassDoom3_clear();
	}
}
示例#9
0
void Radiant_detachGameToolsPathObserver (ModuleObserver& observer)
{
	g_gameToolsPathObservers.detach(observer);
}
示例#10
0
文件: vfs.cpp 项目: clbr/netradiant
 void shutdown()
 {
   g_observers.unrealise();
   globalOutputStream() << "filesystem shutdown\n";
   Shutdown();
 }
示例#11
0
文件: vfs.cpp 项目: clbr/netradiant
 void initialise()
 {
   globalOutputStream() << "filesystem initialised\n";
   g_observers.realise();
 }