<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.thedarkmod.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=66.206.81.84</id>
	<title>The DarkMod Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.thedarkmod.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=66.206.81.84"/>
	<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Special:Contributions/66.206.81.84"/>
	<updated>2026-04-29T22:44:32Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Adding_New_Decl_Types&amp;diff=2115</id>
		<title>Adding New Decl Types</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Adding_New_Decl_Types&amp;diff=2115"/>
		<updated>2006-12-15T22:00:12Z</updated>

		<summary type="html">&lt;p&gt;66.206.81.84: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a summary of [http://www.doom3world.org/phpbb2/viewtopic.php?t=14797 Slinky&#039;s D3W tutorial].&lt;br /&gt;
&lt;br /&gt;
#In &#039;&#039;&#039;SDK/framework/declmanager.h&#039;&#039;&#039;, add a new type to the declType_t enumeration.&lt;br /&gt;
#In &#039;&#039;&#039;idGameLocal::Init()&#039;&#039;&#039;, register your new decl type.&lt;br /&gt;
#:&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;declManager-&amp;gt;RegisterDeclType( &amp;quot;nameofdecl&amp;quot;, DECL_ENUMTYPE, idDeclAllocator&amp;lt;yourDeclClass&amp;gt; );&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
#:The first argument is the keyword mappers can use to specify what kind of decl they&#039;re making. The second argument links it to the type you made in step 1, and the last argument is used to link it to the declClass you&#039;ll be making to parse and store your decl.&lt;br /&gt;
#Also in &#039;&#039;&#039;idGameLocal::Init()&#039;&#039;&#039;, register the folders and file-types that will be searched for your decls.&lt;br /&gt;
#:&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;declManager-&amp;gt;RegisterDeclFolder( &amp;quot;foldername&amp;quot;, &amp;quot;.file_extension&amp;quot;, DECL_ENUMTYPE );&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
#:The first argument is the folder name to search, the second argument is the file extensions to search, and the last argument links it to the type you made in step 1.&lt;br /&gt;
#Modify &#039;&#039;&#039;idGameLocal::CacheDictionaryMedia()&#039;&#039;&#039; to precache any instances of your declaration specified in the spawnargs of an entity.&lt;br /&gt;
#Create your decl class, inheriting from &#039;&#039;&#039;idDecl&#039;&#039;&#039;.&lt;br /&gt;
##Create the class declaration... at a minimum, it should probably look something like this:&lt;br /&gt;
##:&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;class yourDeclClass : public idDecl&lt;br /&gt;
{&lt;br /&gt;
  public:&lt;br /&gt;
    yourDeclClass();&lt;br /&gt;
    ~yourDeclClass();&lt;br /&gt;
&lt;br /&gt;
    virtual size_t       Size( void ) const;&lt;br /&gt;
    virtual const char * DefaultDefinition( void ) const;&lt;br /&gt;
    virtual void         FreeData( void );&lt;br /&gt;
    virtual bool         Parse( const char *text, const int textLength );&lt;br /&gt;
&lt;br /&gt;
  protected:&lt;br /&gt;
    idStr someOfYourDeclData;&lt;br /&gt;
    int someMoreOfYourDeclData;&lt;br /&gt;
&lt;br /&gt;
};&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
##Define the class constructors/deconstructors. These can do whatever you like. You might want to consider calling &#039;&#039;&#039;FreeData()&#039;&#039;&#039; in the deconstructor.&lt;br /&gt;
##Define &#039;&#039;&#039;Size()&#039;&#039;&#039;. All decl classes need this.&lt;br /&gt;
##:&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;size_t yourDeclClass::Size() const&lt;br /&gt;
{&lt;br /&gt;
   return sizeof(yourDeclClass);&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
##Define &#039;&#039;&#039;DefaultDefinition()&#039;&#039;&#039;. This just returns the default declaration that is used if the mapper writes one that your function can&#039;t parse.&lt;br /&gt;
##:&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;const char *yourDeclClass::DefaultDefinition() const&lt;br /&gt;
{&lt;br /&gt;
   return &amp;quot;{\n}\n&amp;quot;;&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
##:Be careful to ensure that the string returned is parsable by your &#039;&#039;&#039;Parse()&#039;&#039;&#039; function. Maybe Bad Stuff&amp;amp;trade; will happen if you don&#039;t.&lt;br /&gt;
##Define &#039;&#039;&#039;FreeData()&#039;&#039;&#039;. Each time &#039;&#039;&#039;Parse()&#039;&#039;&#039; is called, &#039;&#039;&#039;FreeData()&#039;&#039;&#039; is first called to reset your decl&#039;s state. This way, the decl manager can use an instance of your decl class to keep on parsing definitions until it succeeds, without having to delete it and create a new instance. Example definition:&lt;br /&gt;
##:&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;void yourDeclClass::FreeData()&lt;br /&gt;
{&lt;br /&gt;
    someOfYourDeclData = &amp;quot;&amp;quot;;&lt;br /&gt;
    someMoreOfYourDeclData = 0;&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
##Define &#039;&#039;&#039;Parse()&#039;&#039;&#039;. This is given an array of text, and its length, and is expected to parse it into data or give up. If &#039;&#039;&#039;true&#039;&#039;&#039; is returned, the decl manager will assume the parse was successful. If &#039;&#039;&#039;false&#039;&#039;&#039; is returned, the decl manager will assume the parse failed and a default definition was loaded. If you return false, you should probably call &#039;&#039;&#039;MakeDefault()&#039;&#039;&#039;, which will parse the string returned by &#039;&#039;&#039;DefaultDefinition()&#039;&#039;&#039;.&lt;br /&gt;
##:&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;bool yourClassDecl::Parse( const char *text, const int textLength )&lt;br /&gt;
{&lt;br /&gt;
    idLexer src;&lt;br /&gt;
    idToken token;&lt;br /&gt;
&lt;br /&gt;
    src.LoadMemory( text, textLength, GetFileName(), GetLineNum() );&lt;br /&gt;
    src.SetFlags( DECL_LEXER_FLAGS );&lt;br /&gt;
&lt;br /&gt;
    // Parse the string using the Lexer.&lt;br /&gt;
    // Note that we will be given a block of text like so:&lt;br /&gt;
    //   nameofdecl asset/name&lt;br /&gt;
    //   {&lt;br /&gt;
    //       information&lt;br /&gt;
    //   }&lt;br /&gt;
    // nameofdecl may be omitted if the decl manager is able to assume that the mapper&lt;br /&gt;
    // was creating a decl of our type. (this is commonly the case with materials)&lt;br /&gt;
    // We might also be able to parse information that comes after our decl, so we&lt;br /&gt;
    // should be sure to stop parsing once we reach our outer closing brace.&lt;br /&gt;
&lt;br /&gt;
    if ( the parse failed )&lt;br /&gt;
    {&lt;br /&gt;
        src.Warning(&amp;quot;Unable to parse the file.&amp;quot;);&lt;br /&gt;
        MakeDefault();&lt;br /&gt;
        return false;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    return true;&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>66.206.81.84</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Adding_New_Decl_Types&amp;diff=2114</id>
		<title>Adding New Decl Types</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Adding_New_Decl_Types&amp;diff=2114"/>
		<updated>2006-12-15T21:59:53Z</updated>

		<summary type="html">&lt;p&gt;66.206.81.84: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a summary of [http://www.doom3world.org/phpbb2/viewtopic.php?t=14797 Slinky&#039;s D3W tutorial], so that we can still add declarations if something should happen to D3W.&lt;br /&gt;
&lt;br /&gt;
#In &#039;&#039;&#039;SDK/framework/declmanager.h&#039;&#039;&#039;, add a new type to the declType_t enumeration.&lt;br /&gt;
#In &#039;&#039;&#039;idGameLocal::Init()&#039;&#039;&#039;, register your new decl type.&lt;br /&gt;
#:&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;declManager-&amp;gt;RegisterDeclType( &amp;quot;nameofdecl&amp;quot;, DECL_ENUMTYPE, idDeclAllocator&amp;lt;yourDeclClass&amp;gt; );&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
#:The first argument is the keyword mappers can use to specify what kind of decl they&#039;re making. The second argument links it to the type you made in step 1, and the last argument is used to link it to the declClass you&#039;ll be making to parse and store your decl.&lt;br /&gt;
#Also in &#039;&#039;&#039;idGameLocal::Init()&#039;&#039;&#039;, register the folders and file-types that will be searched for your decls.&lt;br /&gt;
#:&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;declManager-&amp;gt;RegisterDeclFolder( &amp;quot;foldername&amp;quot;, &amp;quot;.file_extension&amp;quot;, DECL_ENUMTYPE );&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
#:The first argument is the folder name to search, the second argument is the file extensions to search, and the last argument links it to the type you made in step 1.&lt;br /&gt;
#Modify &#039;&#039;&#039;idGameLocal::CacheDictionaryMedia()&#039;&#039;&#039; to precache any instances of your declaration specified in the spawnargs of an entity.&lt;br /&gt;
#Create your decl class, inheriting from &#039;&#039;&#039;idDecl&#039;&#039;&#039;.&lt;br /&gt;
##Create the class declaration... at a minimum, it should probably look something like this:&lt;br /&gt;
##:&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;class yourDeclClass : public idDecl&lt;br /&gt;
{&lt;br /&gt;
  public:&lt;br /&gt;
    yourDeclClass();&lt;br /&gt;
    ~yourDeclClass();&lt;br /&gt;
&lt;br /&gt;
    virtual size_t       Size( void ) const;&lt;br /&gt;
    virtual const char * DefaultDefinition( void ) const;&lt;br /&gt;
    virtual void         FreeData( void );&lt;br /&gt;
    virtual bool         Parse( const char *text, const int textLength );&lt;br /&gt;
&lt;br /&gt;
  protected:&lt;br /&gt;
    idStr someOfYourDeclData;&lt;br /&gt;
    int someMoreOfYourDeclData;&lt;br /&gt;
&lt;br /&gt;
};&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
##Define the class constructors/deconstructors. These can do whatever you like. You might want to consider calling &#039;&#039;&#039;FreeData()&#039;&#039;&#039; in the deconstructor.&lt;br /&gt;
##Define &#039;&#039;&#039;Size()&#039;&#039;&#039;. All decl classes need this.&lt;br /&gt;
##:&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;size_t yourDeclClass::Size() const&lt;br /&gt;
{&lt;br /&gt;
   return sizeof(yourDeclClass);&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
##Define &#039;&#039;&#039;DefaultDefinition()&#039;&#039;&#039;. This just returns the default declaration that is used if the mapper writes one that your function can&#039;t parse.&lt;br /&gt;
##:&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;const char *yourDeclClass::DefaultDefinition() const&lt;br /&gt;
{&lt;br /&gt;
   return &amp;quot;{\n}\n&amp;quot;;&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
##:Be careful to ensure that the string returned is parsable by your &#039;&#039;&#039;Parse()&#039;&#039;&#039; function. Maybe Bad Stuff&amp;amp;trade; will happen if you don&#039;t.&lt;br /&gt;
##Define &#039;&#039;&#039;FreeData()&#039;&#039;&#039;. Each time &#039;&#039;&#039;Parse()&#039;&#039;&#039; is called, &#039;&#039;&#039;FreeData()&#039;&#039;&#039; is first called to reset your decl&#039;s state. This way, the decl manager can use an instance of your decl class to keep on parsing definitions until it succeeds, without having to delete it and create a new instance. Example definition:&lt;br /&gt;
##:&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;void yourDeclClass::FreeData()&lt;br /&gt;
{&lt;br /&gt;
    someOfYourDeclData = &amp;quot;&amp;quot;;&lt;br /&gt;
    someMoreOfYourDeclData = 0;&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
##Define &#039;&#039;&#039;Parse()&#039;&#039;&#039;. This is given an array of text, and its length, and is expected to parse it into data or give up. If &#039;&#039;&#039;true&#039;&#039;&#039; is returned, the decl manager will assume the parse was successful. If &#039;&#039;&#039;false&#039;&#039;&#039; is returned, the decl manager will assume the parse failed and a default definition was loaded. If you return false, you should probably call &#039;&#039;&#039;MakeDefault()&#039;&#039;&#039;, which will parse the string returned by &#039;&#039;&#039;DefaultDefinition()&#039;&#039;&#039;.&lt;br /&gt;
##:&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;bool yourClassDecl::Parse( const char *text, const int textLength )&lt;br /&gt;
{&lt;br /&gt;
    idLexer src;&lt;br /&gt;
    idToken token;&lt;br /&gt;
&lt;br /&gt;
    src.LoadMemory( text, textLength, GetFileName(), GetLineNum() );&lt;br /&gt;
    src.SetFlags( DECL_LEXER_FLAGS );&lt;br /&gt;
&lt;br /&gt;
    // Parse the string using the Lexer.&lt;br /&gt;
    // Note that we will be given a block of text like so:&lt;br /&gt;
    //   nameofdecl asset/name&lt;br /&gt;
    //   {&lt;br /&gt;
    //       information&lt;br /&gt;
    //   }&lt;br /&gt;
    // nameofdecl may be omitted if the decl manager is able to assume that the mapper&lt;br /&gt;
    // was creating a decl of our type. (this is commonly the case with materials)&lt;br /&gt;
    // We might also be able to parse information that comes after our decl, so we&lt;br /&gt;
    // should be sure to stop parsing once we reach our outer closing brace.&lt;br /&gt;
&lt;br /&gt;
    if ( the parse failed )&lt;br /&gt;
    {&lt;br /&gt;
        src.Warning(&amp;quot;Unable to parse the file.&amp;quot;);&lt;br /&gt;
        MakeDefault();&lt;br /&gt;
        return false;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    return true;&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>66.206.81.84</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Adding_New_Decl_Types&amp;diff=2113</id>
		<title>Adding New Decl Types</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Adding_New_Decl_Types&amp;diff=2113"/>
		<updated>2006-12-15T21:55:26Z</updated>

		<summary type="html">&lt;p&gt;66.206.81.84: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a summary of [http://www.doom3world.org/phpbb2/viewtopic.php?t=14797 Slinky&#039;s D3W tutorial], so that we can still add declarations if something should happen to D3W.&lt;br /&gt;
&lt;br /&gt;
#In &#039;&#039;&#039;SDK/framework/declmanager.h&#039;&#039;&#039;, add a new type to the declType_t enumeration.&lt;br /&gt;
#In &#039;&#039;&#039;idGameLocal::Init()&#039;&#039;&#039;, register your new decl type.&lt;br /&gt;
#:&amp;lt;pre&amp;gt;declManager-&amp;gt;RegisterDeclType( &amp;quot;nameofdecl&amp;quot;, DECL_ENUMTYPE, idDeclAllocator&amp;lt;yourDeclClass&amp;gt; );&amp;lt;/pre&amp;gt;&lt;br /&gt;
#:The first argument is the keyword mappers can use to specify what kind of decl they&#039;re making. The second argument links it to the type you made in step 1, and the last argument is used to link it to the declClass you&#039;ll be making to parse and store your decl.&lt;br /&gt;
#Also in &#039;&#039;&#039;idGameLocal::Init()&#039;&#039;&#039;, register the folders and file-types that will be searched for your decls.&lt;br /&gt;
#:&amp;lt;pre&amp;gt;declManager-&amp;gt;RegisterDeclFolder( &amp;quot;foldername&amp;quot;, &amp;quot;.file_extension&amp;quot;, DECL_ENUMTYPE );&amp;lt;/pre&amp;gt;&lt;br /&gt;
#:The first argument is the folder name to search, the second argument is the file extensions to search, and the last argument links it to the type you made in step 1.&lt;br /&gt;
#Modify &#039;&#039;&#039;idGameLocal::CacheDictionaryMedia()&#039;&#039;&#039; to precache any instances of your declaration specified in the spawnargs of an entity.&lt;br /&gt;
#Create your decl class, inheriting from &#039;&#039;&#039;idDecl&#039;&#039;&#039;.&lt;br /&gt;
##Create the class declaration... at a minimum, it should probably look something like this:&lt;br /&gt;
##:&amp;lt;pre&amp;gt;class yourDeclClass : public idDecl&lt;br /&gt;
##:{&lt;br /&gt;
##:  public:&lt;br /&gt;
##:    yourDeclClass();&lt;br /&gt;
##:    ~yourDeclClass();&lt;br /&gt;
##:&lt;br /&gt;
##:    virtual size_t       Size( void ) const;&lt;br /&gt;
##:    virtual const char * DefaultDefinition( void ) const;&lt;br /&gt;
##:    virtual void         FreeData( void );&lt;br /&gt;
##:    virtual bool         Parse( const char *text, const int textLength );&lt;br /&gt;
##:&lt;br /&gt;
##:  protected:&lt;br /&gt;
##:    idStr someOfYourDeclData;&lt;br /&gt;
##:    int someMoreOfYourDeclData;&lt;br /&gt;
##:&lt;br /&gt;
##:};&amp;lt;/pre&amp;gt;&lt;br /&gt;
##Define the class constructors/deconstructors. These can do whatever you like. You might want to consider calling &#039;&#039;&#039;FreeData()&#039;&#039;&#039; in the deconstructor.&lt;br /&gt;
##Define &#039;&#039;&#039;Size()&#039;&#039;&#039;. All decl classes need this.&lt;br /&gt;
##:&amp;lt;pre&amp;gt;size_t yourDeclClass::Size() const&lt;br /&gt;
##:{&lt;br /&gt;
##:   return sizeof(yourDeclClass);&lt;br /&gt;
##:}&amp;lt;/pre&amp;gt;&lt;br /&gt;
##Define &#039;&#039;&#039;DefaultDefinition()&#039;&#039;&#039;. This just returns the default declaration that is used if the mapper writes one that your function can&#039;t parse.&lt;br /&gt;
##:&amp;lt;pre&amp;gt;const char *yourDeclClass::DefaultDefinition() const&lt;br /&gt;
##:{&lt;br /&gt;
##:   return &amp;quot;{\n}\n&amp;quot;;&lt;br /&gt;
##:}&amp;lt;/pre&amp;gt;&lt;br /&gt;
##:Be careful to ensure that the string returned is parsable by your &#039;&#039;&#039;Parse()&#039;&#039;&#039; function. Maybe Bad Stuff&amp;amp;trade; will happen if you don&#039;t.&lt;br /&gt;
##Define &#039;&#039;&#039;FreeData()&#039;&#039;&#039;. Each time &#039;&#039;&#039;Parse()&#039;&#039;&#039; is called, &#039;&#039;&#039;FreeData()&#039;&#039;&#039; is first called to reset your decl&#039;s state. This way, the decl manager can use an instance of your decl class to keep on parsing definitions until it succeeds, without having to delete it and create a new instance. Example definition:&lt;br /&gt;
##:&amp;lt;pre&amp;gt;void yourDeclClass::FreeData()&lt;br /&gt;
##:{&lt;br /&gt;
##:    someOfYourDeclData = &amp;quot;&amp;quot;;&lt;br /&gt;
##:    someMoreOfYourDeclData = 0;&lt;br /&gt;
##:}&amp;lt;/pre&amp;gt;&lt;br /&gt;
##Define &#039;&#039;&#039;Parse()&#039;&#039;&#039;. This is given an array of text, and its length, and is expected to parse it into data or give up. If &#039;&#039;&#039;true&#039;&#039;&#039; is returned, the decl manager will assume the parse was successful. If &#039;&#039;&#039;false&#039;&#039;&#039; is returned, the decl manager will assume the parse failed and a default definition was loaded. If you return false, you should probably call &#039;&#039;&#039;MakeDefault()&#039;&#039;&#039;, which will parse the string returned by &#039;&#039;&#039;DefaultDefinition()&#039;&#039;&#039;.&lt;br /&gt;
##:&amp;lt;pre&amp;gt;bool yourClassDecl::Parse( const char *text, const int textLength )&lt;br /&gt;
##:{&lt;br /&gt;
##:    idLexer src;&lt;br /&gt;
##:    idToken token;&lt;br /&gt;
##:&lt;br /&gt;
##:    src.LoadMemory( text, textLength, GetFileName(), GetLineNum() );&lt;br /&gt;
##:    src.SetFlags( DECL_LEXER_FLAGS );&lt;br /&gt;
##:&lt;br /&gt;
##:    // Parse the string using the Lexer.&lt;br /&gt;
##:    // Note that we will be given a block of text like so:&lt;br /&gt;
##:    //   nameofdecl asset/name&lt;br /&gt;
##:    //   {&lt;br /&gt;
##:    //       information&lt;br /&gt;
##:    //   }&lt;br /&gt;
##:    // nameofdecl may be omitted if the decl manager is able to assume that the mapper&lt;br /&gt;
##:    // was creating a decl of our type. (this is commonly the case with materials)&lt;br /&gt;
##:    // We might also be able to parse information that comes after our decl, so we&lt;br /&gt;
##:    // should be sure to stop parsing once we reach our outer closing brace.&lt;br /&gt;
##:&lt;br /&gt;
##:    if ( the parse failed )&lt;br /&gt;
##:    {&lt;br /&gt;
##:        src.Warning(&amp;quot;Unable to parse the file.&amp;quot;);&lt;br /&gt;
##:        MakeDefault();&lt;br /&gt;
##:        return false;&lt;br /&gt;
##:    }&lt;br /&gt;
##:&lt;br /&gt;
##:    return true;&lt;br /&gt;
##:}&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>66.206.81.84</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Adding_New_Decl_Types&amp;diff=2112</id>
		<title>Adding New Decl Types</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Adding_New_Decl_Types&amp;diff=2112"/>
		<updated>2006-12-15T20:33:04Z</updated>

		<summary type="html">&lt;p&gt;66.206.81.84: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a summary of [http://www.doom3world.org/phpbb2/viewtopic.php?t=14797 Slinky&#039;s D3W tutorial].&lt;br /&gt;
&lt;br /&gt;
(under construction)&lt;/div&gt;</summary>
		<author><name>66.206.81.84</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=SDK&amp;diff=2111</id>
		<title>SDK</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=SDK&amp;diff=2111"/>
		<updated>2006-12-15T20:32:00Z</updated>

		<summary type="html">&lt;p&gt;66.206.81.84: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Various articles concerning SDK-related stuff:&lt;br /&gt;
&lt;br /&gt;
* [[Adding new Cvars]]&lt;br /&gt;
* [[Adding Script Events to sys]]&lt;br /&gt;
* [[AI Debug Mode has large Impact on Soundprop Performance]]&lt;br /&gt;
* [[Calling Console Commands From SDK]]&lt;br /&gt;
* [[Clip Functions to check Specific Models]]&lt;br /&gt;
* [[Dynamically Resizing Models]]&lt;br /&gt;
* [[Eventdef System Does Not Like Optional Args]]&lt;br /&gt;
* [[Possible Code For Weapon Bob]]&lt;br /&gt;
* [[Raising/lowering Weapon from outside Player]]&lt;br /&gt;
* [[Saving and Restoring]]&lt;br /&gt;
* [[Savegame Files]]&lt;br /&gt;
* [[Spawn() might be run in D3Ed]]&lt;br /&gt;
* [[Adding New Decl Types]]&lt;br /&gt;
&lt;br /&gt;
[[Category:SDK]]&lt;/div&gt;</summary>
		<author><name>66.206.81.84</name></author>
	</entry>
</feed>