<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://springrts-wiki.p2004a.com/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Relinquished</id>
	<title>Spring - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://springrts-wiki.p2004a.com/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Relinquished"/>
	<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/wiki/Special:Contributions/Relinquished"/>
	<updated>2026-11-08T21:57:25Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.11</generator>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Shield_Interception_Tag_Use&amp;diff=16789</id>
		<title>Shield Interception Tag Use</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Shield_Interception_Tag_Use&amp;diff=16789"/>
		<updated>2007-02-26T19:21:36Z</updated>

		<summary type="html">&lt;p&gt;Relinquished: /* &amp;lt;center&amp;gt;Charts&amp;lt;/center&amp;gt; */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== &amp;lt;center&amp;gt;Shield Interception Tags&amp;lt;/center&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The two following tags can be used to control what types of shields can intercept what types of weapons:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;InterceptedByShieldType:&#039;&#039;&#039; This is defined in the weapon that is to be intercepted. It represents a bitfield that is checked against a similar bitfield on the shield for a positive or negative interception (see examples).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ShieldInterceptType:&#039;&#039;&#039; This is defined in the shield. It represents a bitfield that is checked against a similar bitfield on the weapon to determine a positive or negative interception (see examples).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;center&amp;gt;Examples&amp;lt;/center&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In order to check for shield collisions, the two tags above are converted into binary format, for example:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
InterceptedByShieldType=5; becomes 101 in binary&amp;lt;br&amp;gt;&lt;br /&gt;
ShieldInterceptType=7; becomes 111 in binary&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
To then check that weapon&#039;s interception status against the shield, the bitfields need to be lined up as follows: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
101 (Weapon)&amp;lt;br&amp;gt;&lt;br /&gt;
111 (Shield)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
If any of the columns made by this line-up contains two ones, the shield will positively intercept the weapon. In this case there are two columns with two ones in them, so the weapon is intercepted. A final example:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
InterceptedByShieldType=7; becomes 111 in binary&amp;lt;br&amp;gt;&lt;br /&gt;
ShieldInterceptType=24; becomes 11000 in binary&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
00111 (Weapon)&amp;lt;br&amp;gt;&lt;br /&gt;
11000 (Shield)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
No interception is registered because no columns contain two ones.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;center&amp;gt;Charts&amp;lt;/center&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I (Relinquished) felt that it may help some people to have a few charts or reference tables to quickly see which shields work with what.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Table of Shield type hit detections&#039;&#039;&#039; (X&#039;s indicate a collision)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://i170.photobucket.com/albums/u257/apurelinquished/ShieldGroups.jpg Collision Chart]&lt;br /&gt;
http://i170.photobucket.com/albums/u257/apurelinquished/ShieldGroups.jpg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Binary Collision Shield Groups&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1 2 4 8 16 32 Are the only 6 possible distinct shield groups.&lt;br /&gt;
&lt;br /&gt;
Anything in each of the following categories will collide with any other one in the same category:&lt;br /&gt;
&lt;br /&gt;
 000001 Shields:&lt;br /&gt;
 	1	3	5	7	9&lt;br /&gt;
 	11	13	15	17	19&lt;br /&gt;
 	21	23	25	27	29&lt;br /&gt;
 	31&lt;br /&gt;
&lt;br /&gt;
 000010 Shields:&lt;br /&gt;
 	2	3	6	7	10&lt;br /&gt;
 	11	14	15	18	19&lt;br /&gt;
 	22	23	26	27	30&lt;br /&gt;
 	31&lt;br /&gt;
&lt;br /&gt;
 000100 Shields:&lt;br /&gt;
 	4	5	6	7	12&lt;br /&gt;
 	13	14	15	20	21&lt;br /&gt;
 	22	23	28	29	30&lt;br /&gt;
 	31&lt;br /&gt;
&lt;br /&gt;
 001000 Shields:&lt;br /&gt;
 	8	9	10	11	12&lt;br /&gt;
 	13	14	15	24	25&lt;br /&gt;
 	26	27	28	29	30&lt;br /&gt;
 	31&lt;br /&gt;
&lt;br /&gt;
 010000 Shields:&lt;br /&gt;
 	16	17	18	19	20&lt;br /&gt;
 	21	22	23	24	25&lt;br /&gt;
 	26	27	28	29	30&lt;br /&gt;
 	31&lt;br /&gt;
&lt;br /&gt;
 100000 Shields:&lt;br /&gt;
 	32&lt;/div&gt;</summary>
		<author><name>Relinquished</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Shield_Interception_Tag_Use&amp;diff=16788</id>
		<title>Shield Interception Tag Use</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Shield_Interception_Tag_Use&amp;diff=16788"/>
		<updated>2007-02-26T19:21:16Z</updated>

		<summary type="html">&lt;p&gt;Relinquished: /* &amp;lt;center&amp;gt;Charts&amp;lt;/center&amp;gt; */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== &amp;lt;center&amp;gt;Shield Interception Tags&amp;lt;/center&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The two following tags can be used to control what types of shields can intercept what types of weapons:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;InterceptedByShieldType:&#039;&#039;&#039; This is defined in the weapon that is to be intercepted. It represents a bitfield that is checked against a similar bitfield on the shield for a positive or negative interception (see examples).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ShieldInterceptType:&#039;&#039;&#039; This is defined in the shield. It represents a bitfield that is checked against a similar bitfield on the weapon to determine a positive or negative interception (see examples).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;center&amp;gt;Examples&amp;lt;/center&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In order to check for shield collisions, the two tags above are converted into binary format, for example:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
InterceptedByShieldType=5; becomes 101 in binary&amp;lt;br&amp;gt;&lt;br /&gt;
ShieldInterceptType=7; becomes 111 in binary&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
To then check that weapon&#039;s interception status against the shield, the bitfields need to be lined up as follows: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
101 (Weapon)&amp;lt;br&amp;gt;&lt;br /&gt;
111 (Shield)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
If any of the columns made by this line-up contains two ones, the shield will positively intercept the weapon. In this case there are two columns with two ones in them, so the weapon is intercepted. A final example:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
InterceptedByShieldType=7; becomes 111 in binary&amp;lt;br&amp;gt;&lt;br /&gt;
ShieldInterceptType=24; becomes 11000 in binary&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
00111 (Weapon)&amp;lt;br&amp;gt;&lt;br /&gt;
11000 (Shield)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
No interception is registered because no columns contain two ones.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;center&amp;gt;Charts&amp;lt;/center&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I (Relinquished) felt that it may help some people to have a few charts or reference tables to quickly see which shields work with what.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Table of Shield type hit detections&#039;&#039;&#039; (X&#039;s indicate a collision)&lt;br /&gt;
&lt;br /&gt;
[http://i170.photobucket.com/albums/u257/apurelinquished/ShieldGroups.jpg Collision Chart]&lt;br /&gt;
http://i170.photobucket.com/albums/u257/apurelinquished/ShieldGroups.jpg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Binary Collision Shield Groups&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1 2 4 8 16 32 Are the only 6 possible distinct shield groups.&lt;br /&gt;
&lt;br /&gt;
Anything in each of the following categories will collide with any other one in the same category:&lt;br /&gt;
&lt;br /&gt;
 000001 Shields:&lt;br /&gt;
 	1	3	5	7	9&lt;br /&gt;
 	11	13	15	17	19&lt;br /&gt;
 	21	23	25	27	29&lt;br /&gt;
 	31&lt;br /&gt;
&lt;br /&gt;
 000010 Shields:&lt;br /&gt;
 	2	3	6	7	10&lt;br /&gt;
 	11	14	15	18	19&lt;br /&gt;
 	22	23	26	27	30&lt;br /&gt;
 	31&lt;br /&gt;
&lt;br /&gt;
 000100 Shields:&lt;br /&gt;
 	4	5	6	7	12&lt;br /&gt;
 	13	14	15	20	21&lt;br /&gt;
 	22	23	28	29	30&lt;br /&gt;
 	31&lt;br /&gt;
&lt;br /&gt;
 001000 Shields:&lt;br /&gt;
 	8	9	10	11	12&lt;br /&gt;
 	13	14	15	24	25&lt;br /&gt;
 	26	27	28	29	30&lt;br /&gt;
 	31&lt;br /&gt;
&lt;br /&gt;
 010000 Shields:&lt;br /&gt;
 	16	17	18	19	20&lt;br /&gt;
 	21	22	23	24	25&lt;br /&gt;
 	26	27	28	29	30&lt;br /&gt;
 	31&lt;br /&gt;
&lt;br /&gt;
 100000 Shields:&lt;br /&gt;
 	32&lt;/div&gt;</summary>
		<author><name>Relinquished</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Shield_Interception_Tag_Use&amp;diff=16787</id>
		<title>Shield Interception Tag Use</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Shield_Interception_Tag_Use&amp;diff=16787"/>
		<updated>2007-02-26T19:20:19Z</updated>

		<summary type="html">&lt;p&gt;Relinquished: /* &amp;lt;center&amp;gt;Charts&amp;lt;/center&amp;gt; */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== &amp;lt;center&amp;gt;Shield Interception Tags&amp;lt;/center&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The two following tags can be used to control what types of shields can intercept what types of weapons:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;InterceptedByShieldType:&#039;&#039;&#039; This is defined in the weapon that is to be intercepted. It represents a bitfield that is checked against a similar bitfield on the shield for a positive or negative interception (see examples).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ShieldInterceptType:&#039;&#039;&#039; This is defined in the shield. It represents a bitfield that is checked against a similar bitfield on the weapon to determine a positive or negative interception (see examples).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;center&amp;gt;Examples&amp;lt;/center&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In order to check for shield collisions, the two tags above are converted into binary format, for example:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
InterceptedByShieldType=5; becomes 101 in binary&amp;lt;br&amp;gt;&lt;br /&gt;
ShieldInterceptType=7; becomes 111 in binary&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
To then check that weapon&#039;s interception status against the shield, the bitfields need to be lined up as follows: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
101 (Weapon)&amp;lt;br&amp;gt;&lt;br /&gt;
111 (Shield)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
If any of the columns made by this line-up contains two ones, the shield will positively intercept the weapon. In this case there are two columns with two ones in them, so the weapon is intercepted. A final example:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
InterceptedByShieldType=7; becomes 111 in binary&amp;lt;br&amp;gt;&lt;br /&gt;
ShieldInterceptType=24; becomes 11000 in binary&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
00111 (Weapon)&amp;lt;br&amp;gt;&lt;br /&gt;
11000 (Shield)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
No interception is registered because no columns contain two ones.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;center&amp;gt;Charts&amp;lt;/center&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I (Relinquished) felt that it may help some people to have a few charts or reference tables to quickly see which shields work with what.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Table of Shield type hit detections&#039;&#039;&#039; (X&#039;s indicate a collision)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://i170.photobucket.com/albums/u257/apurelinquished/ShieldGroups.jpg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Binary Collision Shield Groups&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1 2 4 8 16 32 Are the only 6 possible distinct shield groups.&lt;br /&gt;
&lt;br /&gt;
Anything in each of the following categories will collide with any other one in the same category:&lt;br /&gt;
&lt;br /&gt;
 000001 Shields:&lt;br /&gt;
 	1	3	5	7	9&lt;br /&gt;
 	11	13	15	17	19&lt;br /&gt;
 	21	23	25	27	29&lt;br /&gt;
 	31&lt;br /&gt;
&lt;br /&gt;
 000010 Shields:&lt;br /&gt;
 	2	3	6	7	10&lt;br /&gt;
 	11	14	15	18	19&lt;br /&gt;
 	22	23	26	27	30&lt;br /&gt;
 	31&lt;br /&gt;
&lt;br /&gt;
 000100 Shields:&lt;br /&gt;
 	4	5	6	7	12&lt;br /&gt;
 	13	14	15	20	21&lt;br /&gt;
 	22	23	28	29	30&lt;br /&gt;
 	31&lt;br /&gt;
&lt;br /&gt;
 001000 Shields:&lt;br /&gt;
 	8	9	10	11	12&lt;br /&gt;
 	13	14	15	24	25&lt;br /&gt;
 	26	27	28	29	30&lt;br /&gt;
 	31&lt;br /&gt;
&lt;br /&gt;
 010000 Shields:&lt;br /&gt;
 	16	17	18	19	20&lt;br /&gt;
 	21	22	23	24	25&lt;br /&gt;
 	26	27	28	29	30&lt;br /&gt;
 	31&lt;br /&gt;
&lt;br /&gt;
 100000 Shields:&lt;br /&gt;
 	32&lt;/div&gt;</summary>
		<author><name>Relinquished</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Shield_Interception_Tag_Use&amp;diff=16786</id>
		<title>Shield Interception Tag Use</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Shield_Interception_Tag_Use&amp;diff=16786"/>
		<updated>2007-02-26T19:08:30Z</updated>

		<summary type="html">&lt;p&gt;Relinquished: /* &amp;lt;center&amp;gt;Charts&amp;lt;/center&amp;gt; */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== &amp;lt;center&amp;gt;Shield Interception Tags&amp;lt;/center&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The two following tags can be used to control what types of shields can intercept what types of weapons:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;InterceptedByShieldType:&#039;&#039;&#039; This is defined in the weapon that is to be intercepted. It represents a bitfield that is checked against a similar bitfield on the shield for a positive or negative interception (see examples).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ShieldInterceptType:&#039;&#039;&#039; This is defined in the shield. It represents a bitfield that is checked against a similar bitfield on the weapon to determine a positive or negative interception (see examples).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;center&amp;gt;Examples&amp;lt;/center&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In order to check for shield collisions, the two tags above are converted into binary format, for example:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
InterceptedByShieldType=5; becomes 101 in binary&amp;lt;br&amp;gt;&lt;br /&gt;
ShieldInterceptType=7; becomes 111 in binary&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
To then check that weapon&#039;s interception status against the shield, the bitfields need to be lined up as follows: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
101 (Weapon)&amp;lt;br&amp;gt;&lt;br /&gt;
111 (Shield)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
If any of the columns made by this line-up contains two ones, the shield will positively intercept the weapon. In this case there are two columns with two ones in them, so the weapon is intercepted. A final example:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
InterceptedByShieldType=7; becomes 111 in binary&amp;lt;br&amp;gt;&lt;br /&gt;
ShieldInterceptType=24; becomes 11000 in binary&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
00111 (Weapon)&amp;lt;br&amp;gt;&lt;br /&gt;
11000 (Shield)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
No interception is registered because no columns contain two ones.&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;center&amp;gt;Charts&amp;lt;/center&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I (Relinquished) felt that it may help some people to have a few charts or reference tables to quickly see which shields work with what.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Table of Shield type hit detections&#039;&#039;&#039; (X&#039;s indicate a collision)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://i170.photobucket.com/albums/u257/apurelinquished/ShieldGroups.jpg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Binary Collision Shield Groups&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1 2 4 8 16 32 Are the only 6 possible distinct shield groups.&lt;br /&gt;
&lt;br /&gt;
Anything in each of the following categories will collide with any other one in the same category:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 000001 Shields:&lt;br /&gt;
 	1	3	5	7	9&lt;br /&gt;
 	11	13	15	17	19&lt;br /&gt;
 	21	23	25	27	29&lt;br /&gt;
 	31&lt;br /&gt;
&lt;br /&gt;
 000010 Shields:&lt;br /&gt;
 	2	3	6	7	10&lt;br /&gt;
 	11	14	15	18	19&lt;br /&gt;
 	22	23	26	27	30&lt;br /&gt;
 	31&lt;br /&gt;
&lt;br /&gt;
 000100 Shields:&lt;br /&gt;
 	4	5	6	7	12&lt;br /&gt;
 	13	14	15	20	21&lt;br /&gt;
 	22	23	28	29	30&lt;br /&gt;
 	31&lt;br /&gt;
&lt;br /&gt;
 001000 Shields:&lt;br /&gt;
 	8	9	10	11	12&lt;br /&gt;
 	13	14	15	24	25&lt;br /&gt;
 	26	27	28	29	30&lt;br /&gt;
 	31&lt;br /&gt;
&lt;br /&gt;
 010000 Shields:&lt;br /&gt;
 	16	17	18	19	20&lt;br /&gt;
 	21	22	23	24	25&lt;br /&gt;
 	26	27	28	29	30&lt;br /&gt;
 	31&lt;br /&gt;
&lt;br /&gt;
 100000 Shields:&lt;br /&gt;
 	32&lt;/div&gt;</summary>
		<author><name>Relinquished</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Shield_Interception_Tag_Use&amp;diff=16785</id>
		<title>Shield Interception Tag Use</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Shield_Interception_Tag_Use&amp;diff=16785"/>
		<updated>2007-02-26T19:05:36Z</updated>

		<summary type="html">&lt;p&gt;Relinquished: /* &amp;lt;center&amp;gt;Charts&amp;lt;/center&amp;gt; */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== &amp;lt;center&amp;gt;Shield Interception Tags&amp;lt;/center&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The two following tags can be used to control what types of shields can intercept what types of weapons:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;InterceptedByShieldType:&#039;&#039;&#039; This is defined in the weapon that is to be intercepted. It represents a bitfield that is checked against a similar bitfield on the shield for a positive or negative interception (see examples).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ShieldInterceptType:&#039;&#039;&#039; This is defined in the shield. It represents a bitfield that is checked against a similar bitfield on the weapon to determine a positive or negative interception (see examples).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;center&amp;gt;Examples&amp;lt;/center&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In order to check for shield collisions, the two tags above are converted into binary format, for example:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
InterceptedByShieldType=5; becomes 101 in binary&amp;lt;br&amp;gt;&lt;br /&gt;
ShieldInterceptType=7; becomes 111 in binary&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
To then check that weapon&#039;s interception status against the shield, the bitfields need to be lined up as follows: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
101 (Weapon)&amp;lt;br&amp;gt;&lt;br /&gt;
111 (Shield)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
If any of the columns made by this line-up contains two ones, the shield will positively intercept the weapon. In this case there are two columns with two ones in them, so the weapon is intercepted. A final example:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
InterceptedByShieldType=7; becomes 111 in binary&amp;lt;br&amp;gt;&lt;br /&gt;
ShieldInterceptType=24; becomes 11000 in binary&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
00111 (Weapon)&amp;lt;br&amp;gt;&lt;br /&gt;
11000 (Shield)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
No interception is registered because no columns contain two ones.&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;center&amp;gt;Charts&amp;lt;/center&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I (Relinquished) felt that it may help some people to have a few charts or reference tables to quickly see which shields work with what.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Table of Shield type hit detections&#039;&#039;&#039; (X&#039;s indicate a collision)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://i170.photobucket.com/albums/u257/apurelinquished/ShieldGroups&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Binary Collision Shield Groups&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1 2 4 8 16 32 Are the only 6 possible distinct shield groups. Anything in each of the categories will collide with any other one in the same category.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 000001 Shields:&lt;br /&gt;
 	1	3	5	7	9&lt;br /&gt;
 	11	13	15	17	19&lt;br /&gt;
 	21	23	25	27	29&lt;br /&gt;
 	31&lt;br /&gt;
&lt;br /&gt;
 000010 Shields:&lt;br /&gt;
 	2	3	6	7	10&lt;br /&gt;
 	11	14	15	18	19&lt;br /&gt;
 	22	23	26	27	30&lt;br /&gt;
 	31&lt;br /&gt;
&lt;br /&gt;
 000100 Shields:&lt;br /&gt;
 	4	5	6	7	12&lt;br /&gt;
 	13	14	15	20	21&lt;br /&gt;
 	22	23	28	29	30&lt;br /&gt;
 	31&lt;br /&gt;
&lt;br /&gt;
 001000 Shields:&lt;br /&gt;
 	8	9	10	11	12&lt;br /&gt;
 	13	14	15	24	25&lt;br /&gt;
 	26	27	28	29	30&lt;br /&gt;
 	31&lt;br /&gt;
&lt;br /&gt;
 010000 Shields:&lt;br /&gt;
 	16	17	18	19	20&lt;br /&gt;
 	21	22	23	24	25&lt;br /&gt;
 	26	27	28	29	30&lt;br /&gt;
 	31&lt;br /&gt;
&lt;br /&gt;
 100000 Shields:&lt;br /&gt;
 	32&lt;/div&gt;</summary>
		<author><name>Relinquished</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Shield_Interception_Tag_Use&amp;diff=16784</id>
		<title>Shield Interception Tag Use</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Shield_Interception_Tag_Use&amp;diff=16784"/>
		<updated>2007-02-26T19:05:24Z</updated>

		<summary type="html">&lt;p&gt;Relinquished: /* &amp;lt;center&amp;gt;Charts&amp;lt;/center&amp;gt; */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== &amp;lt;center&amp;gt;Shield Interception Tags&amp;lt;/center&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The two following tags can be used to control what types of shields can intercept what types of weapons:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;InterceptedByShieldType:&#039;&#039;&#039; This is defined in the weapon that is to be intercepted. It represents a bitfield that is checked against a similar bitfield on the shield for a positive or negative interception (see examples).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ShieldInterceptType:&#039;&#039;&#039; This is defined in the shield. It represents a bitfield that is checked against a similar bitfield on the weapon to determine a positive or negative interception (see examples).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;center&amp;gt;Examples&amp;lt;/center&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In order to check for shield collisions, the two tags above are converted into binary format, for example:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
InterceptedByShieldType=5; becomes 101 in binary&amp;lt;br&amp;gt;&lt;br /&gt;
ShieldInterceptType=7; becomes 111 in binary&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
To then check that weapon&#039;s interception status against the shield, the bitfields need to be lined up as follows: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
101 (Weapon)&amp;lt;br&amp;gt;&lt;br /&gt;
111 (Shield)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
If any of the columns made by this line-up contains two ones, the shield will positively intercept the weapon. In this case there are two columns with two ones in them, so the weapon is intercepted. A final example:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
InterceptedByShieldType=7; becomes 111 in binary&amp;lt;br&amp;gt;&lt;br /&gt;
ShieldInterceptType=24; becomes 11000 in binary&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
00111 (Weapon)&amp;lt;br&amp;gt;&lt;br /&gt;
11000 (Shield)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
No interception is registered because no columns contain two ones.&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;center&amp;gt;Charts&amp;lt;/center&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I (Relinquished) felt that it may help some people to have a few charts or reference tables to quickly see which shields work with what.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Table of Shield type hit detections&#039;&#039;&#039; (X&#039;s indicate a collision)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://i170.photobucket.com/albums/u257/apurelinquished/ShieldGroups.jpg CollisionChart]&lt;br /&gt;
http://i170.photobucket.com/albums/u257/apurelinquished/ShieldGroups&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Binary Collision Shield Groups&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1 2 4 8 16 32 Are the only 6 possible distinct shield groups. Anything in each of the categories will collide with any other one in the same category.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 000001 Shields:&lt;br /&gt;
 	1	3	5	7	9&lt;br /&gt;
 	11	13	15	17	19&lt;br /&gt;
 	21	23	25	27	29&lt;br /&gt;
 	31&lt;br /&gt;
&lt;br /&gt;
 000010 Shields:&lt;br /&gt;
 	2	3	6	7	10&lt;br /&gt;
 	11	14	15	18	19&lt;br /&gt;
 	22	23	26	27	30&lt;br /&gt;
 	31&lt;br /&gt;
&lt;br /&gt;
 000100 Shields:&lt;br /&gt;
 	4	5	6	7	12&lt;br /&gt;
 	13	14	15	20	21&lt;br /&gt;
 	22	23	28	29	30&lt;br /&gt;
 	31&lt;br /&gt;
&lt;br /&gt;
 001000 Shields:&lt;br /&gt;
 	8	9	10	11	12&lt;br /&gt;
 	13	14	15	24	25&lt;br /&gt;
 	26	27	28	29	30&lt;br /&gt;
 	31&lt;br /&gt;
&lt;br /&gt;
 010000 Shields:&lt;br /&gt;
 	16	17	18	19	20&lt;br /&gt;
 	21	22	23	24	25&lt;br /&gt;
 	26	27	28	29	30&lt;br /&gt;
 	31&lt;br /&gt;
&lt;br /&gt;
 100000 Shields:&lt;br /&gt;
 	32&lt;/div&gt;</summary>
		<author><name>Relinquished</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Shield_Interception_Tag_Use&amp;diff=16783</id>
		<title>Shield Interception Tag Use</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Shield_Interception_Tag_Use&amp;diff=16783"/>
		<updated>2007-02-20T11:39:10Z</updated>

		<summary type="html">&lt;p&gt;Relinquished: /* &amp;lt;center&amp;gt;Charts&amp;lt;/center&amp;gt; */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== &amp;lt;center&amp;gt;Shield Interception Tags&amp;lt;/center&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The two following tags can be used to control what types of shields can intercept what types of weapons:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;InterceptedByShieldType:&#039;&#039;&#039; This is defined in the weapon that is to be intercepted. It represents a bitfield that is checked against a similar bitfield on the shield for a positive or negative interception (see examples).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ShieldInterceptType:&#039;&#039;&#039; This is defined in the shield. It represents a bitfield that is checked against a similar bitfield on the weapon to determine a positive or negative interception (see examples).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;center&amp;gt;Examples&amp;lt;/center&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In order to check for shield collisions, the two tags above are converted into binary format, for example:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
InterceptedByShieldType=5; becomes 101 in binary&amp;lt;br&amp;gt;&lt;br /&gt;
ShieldInterceptType=7; becomes 111 in binary&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
To then check that weapon&#039;s interception status against the shield, the bitfields need to be lined up as follows: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
101 (Weapon)&amp;lt;br&amp;gt;&lt;br /&gt;
111 (Shield)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
If any of the columns made by this line-up contains two ones, the shield will positively intercept the weapon. In this case there are two columns with two ones in them, so the weapon is intercepted. A final example:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
InterceptedByShieldType=7; becomes 111 in binary&amp;lt;br&amp;gt;&lt;br /&gt;
ShieldInterceptType=24; becomes 11000 in binary&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
00111 (Weapon)&amp;lt;br&amp;gt;&lt;br /&gt;
11000 (Shield)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
No interception is registered because no columns contain two ones.&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;center&amp;gt;Charts&amp;lt;/center&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I (Relinquished) felt that it may help some people to have a few charts or reference tables to quickly see which shields work with what.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Table of Shield type hit detections&#039;&#039;&#039; (X&#039;s indicate a collision)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://i170.photobucket.com/albums/u257/apurelinquished/ShieldGroups.jpg CollisionChart]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Binary Collision Shield Groups&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1 2 4 8 16 32 Are the only 6 possible distinct shield groups. Anything in each of the categories will collide with any other one in the same category.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 000001 Shields:&lt;br /&gt;
 	1	3	5	7	9&lt;br /&gt;
 	11	13	15	17	19&lt;br /&gt;
 	21	23	25	27	29&lt;br /&gt;
 	31&lt;br /&gt;
&lt;br /&gt;
 000010 Shields:&lt;br /&gt;
 	2	3	6	7	10&lt;br /&gt;
 	11	14	15	18	19&lt;br /&gt;
 	22	23	26	27	30&lt;br /&gt;
 	31&lt;br /&gt;
&lt;br /&gt;
 000100 Shields:&lt;br /&gt;
 	4	5	6	7	12&lt;br /&gt;
 	13	14	15	20	21&lt;br /&gt;
 	22	23	28	29	30&lt;br /&gt;
 	31&lt;br /&gt;
&lt;br /&gt;
 001000 Shields:&lt;br /&gt;
 	8	9	10	11	12&lt;br /&gt;
 	13	14	15	24	25&lt;br /&gt;
 	26	27	28	29	30&lt;br /&gt;
 	31&lt;br /&gt;
&lt;br /&gt;
 010000 Shields:&lt;br /&gt;
 	16	17	18	19	20&lt;br /&gt;
 	21	22	23	24	25&lt;br /&gt;
 	26	27	28	29	30&lt;br /&gt;
 	31&lt;br /&gt;
&lt;br /&gt;
 100000 Shields:&lt;br /&gt;
 	32&lt;/div&gt;</summary>
		<author><name>Relinquished</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Shield_Interception_Tag_Use&amp;diff=16782</id>
		<title>Shield Interception Tag Use</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Shield_Interception_Tag_Use&amp;diff=16782"/>
		<updated>2007-02-20T01:56:48Z</updated>

		<summary type="html">&lt;p&gt;Relinquished: /* &amp;lt;center&amp;gt;Charts&amp;lt;/center&amp;gt; */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== &amp;lt;center&amp;gt;Shield Interception Tags&amp;lt;/center&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The two following tags can be used to control what types of shields can intercept what types of weapons:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;InterceptedByShieldType:&#039;&#039;&#039; This is defined in the weapon that is to be intercepted. It represents a bitfield that is checked against a similar bitfield on the shield for a positive or negative interception (see examples).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ShieldInterceptType:&#039;&#039;&#039; This is defined in the shield. It represents a bitfield that is checked against a similar bitfield on the weapon to determine a positive or negative interception (see examples).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;center&amp;gt;Examples&amp;lt;/center&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In order to check for shield collisions, the two tags above are converted into binary format, for example:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
InterceptedByShieldType=5; becomes 101 in binary&amp;lt;br&amp;gt;&lt;br /&gt;
ShieldInterceptType=7; becomes 111 in binary&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
To then check that weapon&#039;s interception status against the shield, the bitfields need to be lined up as follows: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
101 (Weapon)&amp;lt;br&amp;gt;&lt;br /&gt;
111 (Shield)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
If any of the columns made by this line-up contains two ones, the shield will positively intercept the weapon. In this case there are two columns with two ones in them, so the weapon is intercepted. A final example:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
InterceptedByShieldType=7; becomes 111 in binary&amp;lt;br&amp;gt;&lt;br /&gt;
ShieldInterceptType=24; becomes 11000 in binary&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
00111 (Weapon)&amp;lt;br&amp;gt;&lt;br /&gt;
11000 (Shield)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
No interception is registered because no columns contain two ones.&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;center&amp;gt;Charts&amp;lt;/center&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I (Relinquished) felt that it may help some people to have a few charts or reference tables to quickly see which shields work with what.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Table of Shield type hit detections&#039;&#039;&#039; (X&#039;s indicate a collision)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://i170.photobucket.com/albums/u257/apurelinquished/ShieldGroups.jpg CollisionChart]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Binary Collision Shield Groups&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1 2 4 8 16 32 Are the only 6 possible distinct shield groups. Anything in each of the categories will collide with any other one in the same category.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 000001 Shields:&lt;br /&gt;
 	1	3	5	7	9&lt;br /&gt;
 	11	13	15	17	19&lt;br /&gt;
 	21	23	25	27	29&lt;br /&gt;
 	31&lt;br /&gt;
&lt;br /&gt;
 000010 Shields:&lt;br /&gt;
 	2	3	6	7	10&lt;br /&gt;
 	11	14	15	18	19&lt;br /&gt;
 	22	23	26	27	30&lt;br /&gt;
 	31&lt;br /&gt;
&lt;br /&gt;
 000100 Shields:&lt;br /&gt;
 	4	5	6	7	12&lt;br /&gt;
 	13	14	15	20	21&lt;br /&gt;
 	22	23	28	29	30&lt;br /&gt;
 	31&lt;br /&gt;
&lt;br /&gt;
 001000 Shields:&lt;br /&gt;
 	8	9	10	11	12&lt;br /&gt;
 	13	14	15	24	25&lt;br /&gt;
 	26	27	28	29	30&lt;br /&gt;
 	31&lt;br /&gt;
&lt;br /&gt;
 010000 Shields:&lt;br /&gt;
 	16	17	18	19	20&lt;br /&gt;
 	21	22	23	24	25&lt;br /&gt;
 	26	27	28	29	30&lt;br /&gt;
 	31&lt;br /&gt;
&lt;br /&gt;
 100000 Shields:&lt;br /&gt;
 	32&lt;/div&gt;</summary>
		<author><name>Relinquished</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Shield_Interception_Tag_Use&amp;diff=16781</id>
		<title>Shield Interception Tag Use</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Shield_Interception_Tag_Use&amp;diff=16781"/>
		<updated>2007-02-19T23:32:29Z</updated>

		<summary type="html">&lt;p&gt;Relinquished: /* &amp;lt;center&amp;gt;Charts&amp;lt;/center&amp;gt; */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== &amp;lt;center&amp;gt;Shield Interception Tags&amp;lt;/center&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The two following tags can be used to control what types of shields can intercept what types of weapons:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;InterceptedByShieldType:&#039;&#039;&#039; This is defined in the weapon that is to be intercepted. It represents a bitfield that is checked against a similar bitfield on the shield for a positive or negative interception (see examples).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ShieldInterceptType:&#039;&#039;&#039; This is defined in the shield. It represents a bitfield that is checked against a similar bitfield on the weapon to determine a positive or negative interception (see examples).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;center&amp;gt;Examples&amp;lt;/center&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In order to check for shield collisions, the two tags above are converted into binary format, for example:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
InterceptedByShieldType=5; becomes 101 in binary&amp;lt;br&amp;gt;&lt;br /&gt;
ShieldInterceptType=7; becomes 111 in binary&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
To then check that weapon&#039;s interception status against the shield, the bitfields need to be lined up as follows: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
101 (Weapon)&amp;lt;br&amp;gt;&lt;br /&gt;
111 (Shield)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
If any of the columns made by this line-up contains two ones, the shield will positively intercept the weapon. In this case there are two columns with two ones in them, so the weapon is intercepted. A final example:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
InterceptedByShieldType=7; becomes 111 in binary&amp;lt;br&amp;gt;&lt;br /&gt;
ShieldInterceptType=24; becomes 11000 in binary&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
00111 (Weapon)&amp;lt;br&amp;gt;&lt;br /&gt;
11000 (Shield)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
No interception is registered because no columns contain two ones.&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;center&amp;gt;Charts&amp;lt;/center&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I (Relinquished) felt that it may help some people to have a few charts or reference tables to quickly see which shields work with what.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Table of Shield type hit detections&#039;&#039;&#039; (X&#039;s indicate a collision)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://i170.photobucket.com/albums/u257/apurelinquished/ShieldGroups.jpg CollisionChart]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Binary Collision Shield Groups&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1 2 4 8 16 32 Are the only 6 possible distinct shield groups. Anything in each of the categories will collide with any other one in the same category.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
000001 Shields:&lt;br /&gt;
	1	3	5	7	9&lt;br /&gt;
	11	13	15	17	19&lt;br /&gt;
	21	23	25	27	29&lt;br /&gt;
	31&lt;br /&gt;
&lt;br /&gt;
000010 Shields:&lt;br /&gt;
	2	3	6	7	10&lt;br /&gt;
	11	14	15	18	19&lt;br /&gt;
	22	23	26	27	30&lt;br /&gt;
	31&lt;br /&gt;
&lt;br /&gt;
000100 Shields:&lt;br /&gt;
	4	5	6	7	12&lt;br /&gt;
	13	14	15	20	21&lt;br /&gt;
	22	23	28	29	30&lt;br /&gt;
	31&lt;br /&gt;
&lt;br /&gt;
001000 Shields:&lt;br /&gt;
	8	9	10	11	12&lt;br /&gt;
	13	14	15	24	25&lt;br /&gt;
	26	27	28	29	30&lt;br /&gt;
	31&lt;br /&gt;
&lt;br /&gt;
010000 Shields:&lt;br /&gt;
	16	17	18	19	20&lt;br /&gt;
	21	22	23	24	25&lt;br /&gt;
	26	27	28	29	30&lt;br /&gt;
	31&lt;br /&gt;
&lt;br /&gt;
100000 Shields:&lt;br /&gt;
	32&lt;/div&gt;</summary>
		<author><name>Relinquished</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Shield_Interception_Tag_Use&amp;diff=16780</id>
		<title>Shield Interception Tag Use</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Shield_Interception_Tag_Use&amp;diff=16780"/>
		<updated>2007-02-19T23:32:17Z</updated>

		<summary type="html">&lt;p&gt;Relinquished: /* &amp;lt;center&amp;gt;Charts&amp;lt;/center&amp;gt; */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== &amp;lt;center&amp;gt;Shield Interception Tags&amp;lt;/center&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The two following tags can be used to control what types of shields can intercept what types of weapons:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;InterceptedByShieldType:&#039;&#039;&#039; This is defined in the weapon that is to be intercepted. It represents a bitfield that is checked against a similar bitfield on the shield for a positive or negative interception (see examples).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ShieldInterceptType:&#039;&#039;&#039; This is defined in the shield. It represents a bitfield that is checked against a similar bitfield on the weapon to determine a positive or negative interception (see examples).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;center&amp;gt;Examples&amp;lt;/center&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In order to check for shield collisions, the two tags above are converted into binary format, for example:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
InterceptedByShieldType=5; becomes 101 in binary&amp;lt;br&amp;gt;&lt;br /&gt;
ShieldInterceptType=7; becomes 111 in binary&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
To then check that weapon&#039;s interception status against the shield, the bitfields need to be lined up as follows: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
101 (Weapon)&amp;lt;br&amp;gt;&lt;br /&gt;
111 (Shield)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
If any of the columns made by this line-up contains two ones, the shield will positively intercept the weapon. In this case there are two columns with two ones in them, so the weapon is intercepted. A final example:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
InterceptedByShieldType=7; becomes 111 in binary&amp;lt;br&amp;gt;&lt;br /&gt;
ShieldInterceptType=24; becomes 11000 in binary&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
00111 (Weapon)&amp;lt;br&amp;gt;&lt;br /&gt;
11000 (Shield)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
No interception is registered because no columns contain two ones.&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;center&amp;gt;Charts&amp;lt;/center&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I (Relinquished) felt that it may help some people to have a few charts or reference tables to quickly see which shields work with what.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Table of Shield type hit detections&#039;&#039;&#039; (X&#039;s indicate a collision)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://i170.photobucket.com/albums/u257/apurelinquished/ShieldGroups.jpg CollisionChart]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Binary Collision Shield Groups&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1 2 4 8 16 32 Are the only 6 possible distinct shield groups. Anything in each of the categories will collide with any other one in the same category.&lt;br /&gt;
&lt;br /&gt;
000001 Shields:&lt;br /&gt;
	1	3	5	7	9&lt;br /&gt;
	11	13	15	17	19&lt;br /&gt;
	21	23	25	27	29&lt;br /&gt;
	31&lt;br /&gt;
&lt;br /&gt;
000010 Shields:&lt;br /&gt;
	2	3	6	7	10&lt;br /&gt;
	11	14	15	18	19&lt;br /&gt;
	22	23	26	27	30&lt;br /&gt;
	31&lt;br /&gt;
&lt;br /&gt;
000100 Shields:&lt;br /&gt;
	4	5	6	7	12&lt;br /&gt;
	13	14	15	20	21&lt;br /&gt;
	22	23	28	29	30&lt;br /&gt;
	31&lt;br /&gt;
&lt;br /&gt;
001000 Shields:&lt;br /&gt;
	8	9	10	11	12&lt;br /&gt;
	13	14	15	24	25&lt;br /&gt;
	26	27	28	29	30&lt;br /&gt;
	31&lt;br /&gt;
&lt;br /&gt;
010000 Shields:&lt;br /&gt;
	16	17	18	19	20&lt;br /&gt;
	21	22	23	24	25&lt;br /&gt;
	26	27	28	29	30&lt;br /&gt;
	31&lt;br /&gt;
&lt;br /&gt;
100000 Shields:&lt;br /&gt;
	32&lt;/div&gt;</summary>
		<author><name>Relinquished</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Shield_Interception_Tag_Use&amp;diff=16779</id>
		<title>Shield Interception Tag Use</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Shield_Interception_Tag_Use&amp;diff=16779"/>
		<updated>2007-02-19T23:32:00Z</updated>

		<summary type="html">&lt;p&gt;Relinquished: /* &amp;lt;center&amp;gt;Charts&amp;lt;/center&amp;gt; */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== &amp;lt;center&amp;gt;Shield Interception Tags&amp;lt;/center&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The two following tags can be used to control what types of shields can intercept what types of weapons:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;InterceptedByShieldType:&#039;&#039;&#039; This is defined in the weapon that is to be intercepted. It represents a bitfield that is checked against a similar bitfield on the shield for a positive or negative interception (see examples).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ShieldInterceptType:&#039;&#039;&#039; This is defined in the shield. It represents a bitfield that is checked against a similar bitfield on the weapon to determine a positive or negative interception (see examples).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;center&amp;gt;Examples&amp;lt;/center&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In order to check for shield collisions, the two tags above are converted into binary format, for example:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
InterceptedByShieldType=5; becomes 101 in binary&amp;lt;br&amp;gt;&lt;br /&gt;
ShieldInterceptType=7; becomes 111 in binary&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
To then check that weapon&#039;s interception status against the shield, the bitfields need to be lined up as follows: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
101 (Weapon)&amp;lt;br&amp;gt;&lt;br /&gt;
111 (Shield)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
If any of the columns made by this line-up contains two ones, the shield will positively intercept the weapon. In this case there are two columns with two ones in them, so the weapon is intercepted. A final example:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
InterceptedByShieldType=7; becomes 111 in binary&amp;lt;br&amp;gt;&lt;br /&gt;
ShieldInterceptType=24; becomes 11000 in binary&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
00111 (Weapon)&amp;lt;br&amp;gt;&lt;br /&gt;
11000 (Shield)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
No interception is registered because no columns contain two ones.&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;center&amp;gt;Charts&amp;lt;/center&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I (Relinquished) felt that it may help some people to have a few charts or reference tables to quickly see which shields work with what.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Table of Shield type hit detections&#039;&#039;&#039; (X&#039;s indicate a collision)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://i170.photobucket.com/albums/u257/apurelinquished/ShieldGroups.jpg CollisionChart]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Binary Collision Shield Groups&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1 2 4 8 16 32 Are the only 6 possible distinct shield groups. Anything in each of the categories will collide with any other one in the same category.&lt;br /&gt;
&lt;br /&gt;
000001 Shields:&lt;br /&gt;
	1	3	5	7	9&lt;br /&gt;
	11	13	15	17	19&lt;br /&gt;
	21	23	25	27	29&lt;br /&gt;
	31&lt;br /&gt;
&lt;br /&gt;
000010 Shields:&lt;br /&gt;
	2	3	6	7	10&lt;br /&gt;
	11	14	15	18	19&lt;br /&gt;
	22	23	26	27	30&lt;br /&gt;
	31&lt;br /&gt;
&lt;br /&gt;
000100 Shields:&lt;br /&gt;
	4	5	6	7	12&lt;br /&gt;
	13	14	15	20	21&lt;br /&gt;
	22	23	28	29	30&lt;br /&gt;
	31&lt;br /&gt;
&lt;br /&gt;
001000 Shields:&lt;br /&gt;
	8	9	10	11	12&lt;br /&gt;
	13	14	15	24	25&lt;br /&gt;
	26	27	28	29	30&lt;br /&gt;
	31&lt;br /&gt;
&lt;br /&gt;
010000 Shields:&lt;br /&gt;
	16	17	18	19	20&lt;br /&gt;
	21	22	23	24	25&lt;br /&gt;
	26	27	28	29	30&lt;br /&gt;
	31&lt;br /&gt;
&lt;br /&gt;
100000 Shields:&lt;br /&gt;
	32&lt;/div&gt;</summary>
		<author><name>Relinquished</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Shield_Interception_Tag_Use&amp;diff=16778</id>
		<title>Shield Interception Tag Use</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Shield_Interception_Tag_Use&amp;diff=16778"/>
		<updated>2007-02-19T23:23:46Z</updated>

		<summary type="html">&lt;p&gt;Relinquished: /* &amp;lt;center&amp;gt;Charts&amp;lt;/center&amp;gt; */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== &amp;lt;center&amp;gt;Shield Interception Tags&amp;lt;/center&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The two following tags can be used to control what types of shields can intercept what types of weapons:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;InterceptedByShieldType:&#039;&#039;&#039; This is defined in the weapon that is to be intercepted. It represents a bitfield that is checked against a similar bitfield on the shield for a positive or negative interception (see examples).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ShieldInterceptType:&#039;&#039;&#039; This is defined in the shield. It represents a bitfield that is checked against a similar bitfield on the weapon to determine a positive or negative interception (see examples).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;center&amp;gt;Examples&amp;lt;/center&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In order to check for shield collisions, the two tags above are converted into binary format, for example:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
InterceptedByShieldType=5; becomes 101 in binary&amp;lt;br&amp;gt;&lt;br /&gt;
ShieldInterceptType=7; becomes 111 in binary&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
To then check that weapon&#039;s interception status against the shield, the bitfields need to be lined up as follows: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
101 (Weapon)&amp;lt;br&amp;gt;&lt;br /&gt;
111 (Shield)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
If any of the columns made by this line-up contains two ones, the shield will positively intercept the weapon. In this case there are two columns with two ones in them, so the weapon is intercepted. A final example:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
InterceptedByShieldType=7; becomes 111 in binary&amp;lt;br&amp;gt;&lt;br /&gt;
ShieldInterceptType=24; becomes 11000 in binary&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
00111 (Weapon)&amp;lt;br&amp;gt;&lt;br /&gt;
11000 (Shield)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
No interception is registered because no columns contain two ones.&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;center&amp;gt;Charts&amp;lt;/center&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
I (Relinquished) felt that it may help some people to have a few charts or reference tables to quickly see which shields work with what.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Table of Shield type hit detections&#039;&#039;&#039; (X&#039;s indicate a collision)&lt;br /&gt;
&lt;br /&gt;
[http://i170.photobucket.com/albums/u257/apurelinquished/ShieldGroups.jpg CollisionChart]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Binary Collision Shield Groups&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 2 4 8 16 32 Are the only 6 possible distinct shield groups. Anything in each of the categories will collide with any other one in the same category.&lt;br /&gt;
&lt;br /&gt;
000001 Shields:&lt;br /&gt;
	1	3	5	7	9&lt;br /&gt;
	11	13	15	17	19&lt;br /&gt;
	21	23	25	27	29&lt;br /&gt;
	31&lt;br /&gt;
&lt;br /&gt;
000010 Shields:&lt;br /&gt;
	2	3	6	7	10&lt;br /&gt;
	11	14	15	18	19&lt;br /&gt;
	22	23	26	27	30&lt;br /&gt;
	31&lt;br /&gt;
&lt;br /&gt;
000100 Shields:&lt;br /&gt;
	4	5	6	7	12&lt;br /&gt;
	13	14	15	20	21&lt;br /&gt;
	22	23	28	29	30&lt;br /&gt;
	31&lt;br /&gt;
&lt;br /&gt;
001000 Shields:&lt;br /&gt;
	8	9	10	11	12&lt;br /&gt;
	13	14	15	24	25&lt;br /&gt;
	26	27	28	29	30&lt;br /&gt;
	31&lt;br /&gt;
&lt;br /&gt;
010000 Shields:&lt;br /&gt;
	16	17	18	19	20&lt;br /&gt;
	21	22	23	24	25&lt;br /&gt;
	26	27	28	29	30&lt;br /&gt;
	31&lt;br /&gt;
&lt;br /&gt;
100000 Shields:&lt;br /&gt;
	32&lt;/div&gt;</summary>
		<author><name>Relinquished</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Shield_Interception_Tag_Use&amp;diff=16777</id>
		<title>Shield Interception Tag Use</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Shield_Interception_Tag_Use&amp;diff=16777"/>
		<updated>2007-02-19T23:21:34Z</updated>

		<summary type="html">&lt;p&gt;Relinquished: /* &amp;lt;center&amp;gt;Examples&amp;lt;/center&amp;gt; */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== &amp;lt;center&amp;gt;Shield Interception Tags&amp;lt;/center&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The two following tags can be used to control what types of shields can intercept what types of weapons:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;InterceptedByShieldType:&#039;&#039;&#039; This is defined in the weapon that is to be intercepted. It represents a bitfield that is checked against a similar bitfield on the shield for a positive or negative interception (see examples).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ShieldInterceptType:&#039;&#039;&#039; This is defined in the shield. It represents a bitfield that is checked against a similar bitfield on the weapon to determine a positive or negative interception (see examples).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;center&amp;gt;Examples&amp;lt;/center&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In order to check for shield collisions, the two tags above are converted into binary format, for example:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
InterceptedByShieldType=5; becomes 101 in binary&amp;lt;br&amp;gt;&lt;br /&gt;
ShieldInterceptType=7; becomes 111 in binary&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
To then check that weapon&#039;s interception status against the shield, the bitfields need to be lined up as follows: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
101 (Weapon)&amp;lt;br&amp;gt;&lt;br /&gt;
111 (Shield)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
If any of the columns made by this line-up contains two ones, the shield will positively intercept the weapon. In this case there are two columns with two ones in them, so the weapon is intercepted. A final example:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
InterceptedByShieldType=7; becomes 111 in binary&amp;lt;br&amp;gt;&lt;br /&gt;
ShieldInterceptType=24; becomes 11000 in binary&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
00111 (Weapon)&amp;lt;br&amp;gt;&lt;br /&gt;
11000 (Shield)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
No interception is registered because no columns contain two ones.&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;center&amp;gt;Charts&amp;lt;/center&amp;gt; ==&lt;br /&gt;
I (Relinquished) felt that it may help some people to have a few charts or reference tables to quickly see which shields work with what.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Table of Shield type hit detections&#039;&#039;&#039; (X&#039;s indicate a collision)&lt;br /&gt;
&lt;br /&gt;
[http://i170.photobucket.com/albums/u257/apurelinquished/ShieldGroups.jpg CollisionChart]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Binary Collision Shield Groups&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1 2 4 8 16 32 Are the only 6 possible distinct shield groups&lt;br /&gt;
&lt;br /&gt;
000001 Shields:&lt;br /&gt;
	1	3	5	7	9&lt;br /&gt;
	11	13	15	17	19&lt;br /&gt;
	21	23	25	27	29&lt;br /&gt;
	31&lt;br /&gt;
&lt;br /&gt;
000010 Shields:&lt;br /&gt;
	2	3	6	7	10&lt;br /&gt;
	11	14	15	18	19&lt;br /&gt;
	22	23	26	27	30&lt;br /&gt;
	31&lt;br /&gt;
&lt;br /&gt;
000100 Shields:&lt;br /&gt;
	4	5	6	7	12&lt;br /&gt;
	13	14	15	20	21&lt;br /&gt;
	22	23	28	29	30&lt;br /&gt;
	31&lt;br /&gt;
&lt;br /&gt;
001000 Shields:&lt;br /&gt;
	8	9	10	11	12&lt;br /&gt;
	13	14	15	24	25&lt;br /&gt;
	26	27	28	29	30&lt;br /&gt;
	31&lt;br /&gt;
&lt;br /&gt;
010000 Shields:&lt;br /&gt;
	16	17	18	19	20&lt;br /&gt;
	21	22	23	24	25&lt;br /&gt;
	26	27	28	29	30&lt;br /&gt;
	31&lt;br /&gt;
&lt;br /&gt;
100000 Shields:&lt;br /&gt;
	32&lt;/div&gt;</summary>
		<author><name>Relinquished</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SM3_Map_Format&amp;diff=16105</id>
		<title>SM3 Map Format</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SM3_Map_Format&amp;diff=16105"/>
		<updated>2006-12-05T02:43:26Z</updated>

		<summary type="html">&lt;p&gt;Relinquished: /* Feature placement */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
As opposed to the original SMF renderer, the SM3 map renderer allows multiple texture layers rendered on the terrain. This allows for higher texture resolutions and improved lighting such as bumpmapping/specular mapping.&lt;br /&gt;
&lt;br /&gt;
== Map specification ==&lt;br /&gt;
&lt;br /&gt;
Instead of a binary SMF file and a SMD file, all map information is now stored in a text based .SM3 file. This has the same basic layout as the original .SMD file, but it includes a [TERRAIN] section and an [INFOMAPS] section. It also has  an extra tag in LIGHT (GroundSpecularColor):&lt;br /&gt;
&lt;br /&gt;
 [MAP]&lt;br /&gt;
 {&lt;br /&gt;
   ... regular smd information, such as start positions,&lt;br /&gt;
     [WATER] and [ATMOSPHERE] sections...&lt;br /&gt;
&lt;br /&gt;
 [LIGHT]&lt;br /&gt;
 {&lt;br /&gt;
 // specular color, defaults to 0.1 0.1 0.1&lt;br /&gt;
 	GroundSpecularColor=0.3 0.3 0.3;&lt;br /&gt;
&lt;br /&gt;
   ... other standard tags shared with SMF (such as GroundSunColor)...&lt;br /&gt;
&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 [INFOMAPS]&lt;br /&gt;
 {&lt;br /&gt;
 	metal=Maps/dry_data/metalmap.png;&lt;br /&gt;
 	type=Maps/dry_data/typemap.png;&lt;br /&gt;
 }&lt;br /&gt;
 [TERRAIN]&lt;br /&gt;
 {&lt;br /&gt;
 	HeightScale=400.0;&lt;br /&gt;
 	HeightOffset=10.0;&lt;br /&gt;
 	Heightmap=Maps/dry_data/1026.png;&lt;br /&gt;
&lt;br /&gt;
 	NumTextureStages=2; // all texture stages are multiplied&lt;br /&gt;
 	SpecularExponent=16; // specular exponent AKA &lt;br /&gt;
 		//shininess or polishedness.  defaults to 8&lt;br /&gt;
&lt;br /&gt;
 	[texstage0]&lt;br /&gt;
 	{&lt;br /&gt;
 		// the first texture stage operation is ignored&lt;br /&gt;
 		source=Snow;&lt;br /&gt;
 	}&lt;br /&gt;
 	[texstage1]&lt;br /&gt;
 	{&lt;br /&gt;
 // use the incoming alpha to blend between 2 textures&lt;br /&gt;
 		operation=blend; &lt;br /&gt;
 		source=CrackedDirt;&lt;br /&gt;
 		blender=RockBlender1026;&lt;br /&gt;
 	}&lt;br /&gt;
 /* texture definitions */&lt;br /&gt;
 	[CrackedDirt]&lt;br /&gt;
 	{&lt;br /&gt;
 		File=Maps/dry_data/dirt2.jpg;&lt;br /&gt;
 		Bumpmap=Maps/dry_data/dirt2_bm.jpg;&lt;br /&gt;
 		TileSize=50;&lt;br /&gt;
 	}&lt;br /&gt;
 	[Snow]&lt;br /&gt;
 	{&lt;br /&gt;
 		File=Maps/dry_data/Snow_Sand.jpg;&lt;br /&gt;
 		TileSize=20;&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 /* blender definition, all blenders have &amp;quot;Blendmap=1&amp;quot; */&lt;br /&gt;
 // a rock blender loaded from file for a specific map&lt;br /&gt;
 	[RockBlender1026]&lt;br /&gt;
 	{&lt;br /&gt;
 		Blendmap=1;&lt;br /&gt;
 		File=Maps/dry_data/1026_bm_small.png;&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== Heightmap specification ==&lt;br /&gt;
&lt;br /&gt;
The heightmap is specified with 3 tags located in the [TERRAIN] section:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Heightmap:&#039;&#039;&#039; This should be either:&lt;br /&gt;
*An 8 or 16 bit image file readable by DevIL&lt;br /&gt;
*A 8 or 16 bit RAW file, such as generated by Terragen&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;HeightScale and HeightOffset:&#039;&#039;&#039; The actual height of a heightmap pixel is calculated scaled by HeightScale, after which HeightOffset is added to it (height = pixel * HeightScale + HeightOffset)&lt;br /&gt;
&lt;br /&gt;
== Texturing method specification (how are the textures applied) ==&lt;br /&gt;
&lt;br /&gt;
=== Texture stages/layers ===&lt;br /&gt;
&lt;br /&gt;
Texturing of SM3 terrains works by a series of texture layers that are applied on top of eachother. These layers are called &amp;quot;texture stages&amp;quot;. The stages can be added, multiplied, or alpha blended with the previous stage. This is defined by the stage operation. &lt;br /&gt;
&lt;br /&gt;
The number of stages is given with the tag NumTextureStages like:&lt;br /&gt;
&lt;br /&gt;
 NumTextureStages=2;&lt;br /&gt;
&lt;br /&gt;
Keep in mind that the stages are directly executed on your videocard. This means the more stages you make the slower the map will render. &lt;br /&gt;
 &lt;br /&gt;
The first stage never has an operation:&lt;br /&gt;
&lt;br /&gt;
 [texstage0]&lt;br /&gt;
 {&lt;br /&gt;
 	source=Snow;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Following stages can have &amp;quot;operation=add&amp;quot;, &amp;quot;operation=mul&amp;quot;, &amp;quot;operation=blend&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Operation Add ====&lt;br /&gt;
&lt;br /&gt;
The add operation needs a texture to add to the previous stage, which is specified with the &amp;quot;source=TextureName&amp;quot; tag. The texture specification is explained below.&lt;br /&gt;
&lt;br /&gt;
 [texstage1]&lt;br /&gt;
 {&lt;br /&gt;
 	operation=add;&lt;br /&gt;
 	source=CrackedDirt;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== Operation Multiply ====&lt;br /&gt;
&lt;br /&gt;
Same as add, but with operation=mul&lt;br /&gt;
&lt;br /&gt;
 [texstage1]&lt;br /&gt;
 {&lt;br /&gt;
 	operation=mul;&lt;br /&gt;
 	source=CrackedDirt;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== Operation Blend ====&lt;br /&gt;
&lt;br /&gt;
The blend operation does alpha blending with an extra grayscale alpha texture. Specification of these alpha textures (&amp;quot;Blendmaps&amp;quot;) is explained later in this doc. The blend operation needs a &amp;quot;blender=BlenderName&amp;quot; tag to work. I&#039;m guessing most maps will only be using this operation. &lt;br /&gt;
&lt;br /&gt;
 [texstage1]&lt;br /&gt;
 {&lt;br /&gt;
 	operation=blend; &lt;br /&gt;
 	source=CrackedDirt;&lt;br /&gt;
 	blender=RockBlender1026;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
The avaiable operations are limited to add/mul/blend for techical reasons:&lt;br /&gt;
This way even the most complex maps can be executed with multipass operations on any card with at least 2 textures units. It would even work on a Riva TNT I think.&lt;br /&gt;
&lt;br /&gt;
Obviously because the first stage doesn&#039;t have any previous stage, the operation of the first stage is ignored&lt;br /&gt;
&lt;br /&gt;
=== Textures ===&lt;br /&gt;
&lt;br /&gt;
==== Tiled textures ====&lt;br /&gt;
&lt;br /&gt;
The operations usually have &amp;quot;source=texturename&amp;quot; in them, which points to the name of a tiled texture.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 NumTextureStages=1;&lt;br /&gt;
 [texstage0]&lt;br /&gt;
 {&lt;br /&gt;
 	source=Snow;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 [Snow]&lt;br /&gt;
 {&lt;br /&gt;
 	File=Maps/dry_data/Snow_Sand.jpg;&lt;br /&gt;
 	TileSize=20;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Tilesize is how big a single tile is in the 3D spring world, when the texture is tiled across the map. Imagine a heightmap of 1025x1025 (In spring world space this is 1024*8= 8192x8192 units). &lt;br /&gt;
When you set tilesize=4096, you will see the complete texture 4 times on the map (2 by 2). Set it to 8192 and you&#039;ll see the map completely covered. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Blendmap specification ====&lt;br /&gt;
&lt;br /&gt;
Blendmaps can either be loaded from file or generated from the terrain. They are stretched across the full terrain, so in combination with the blend operation you can specify exactly where you want to see a specific texture on the terrain.&lt;br /&gt;
&lt;br /&gt;
===== Blendmaps from file =====&lt;br /&gt;
&lt;br /&gt;
Blendmaps can be loaded from any grayscale file that DevIL can load:&lt;br /&gt;
&lt;br /&gt;
 [RockBlender]&lt;br /&gt;
 {&lt;br /&gt;
 	Blendmap=1;&lt;br /&gt;
 	File=Maps/dry_data/1026_bm_small.png;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
===== Generated blendmaps =====&lt;br /&gt;
&lt;br /&gt;
Blendmaps can be generated from the heightmap. The final value is computed by&lt;br /&gt;
&lt;br /&gt;
 blendmap_value = SlopeTerm * HeightTerm * coverage * noise&lt;br /&gt;
&lt;br /&gt;
The slope of the terrain is a value between 0 and 1, with 0 being flat and 1 being completely steep. Ofcourse with a heightmap the slope can only be near 1 and not exactly 1&lt;br /&gt;
&lt;br /&gt;
The height of the terrain is between 0 and 1 (the minimum and maximum height value)&lt;br /&gt;
If the height is between minHeight and maxHeight, HeightTerm will be 1. maxHeightFuzzy and minHeightFuzzy determine the &amp;quot;border&amp;quot; size between having a HeightTerm of 0 and a HeightTerm of 1. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GeneratorLOD indicates at which resolution the blendmap should be generated. The blendmap size will be (heightmapsize-1) / (2 ^ generatorLOD). For example with a heightmap width of 1025 and a generatorlod of 2, the blendmap size will be 1024/4=256.&lt;br /&gt;
&lt;br /&gt;
(Images illustrating this will be added later)&lt;br /&gt;
&lt;br /&gt;
== Infomaps ==&lt;br /&gt;
&lt;br /&gt;
The infomaps section defines the metal map and typemap. Both should be 8 bit images in any format DevIL accepts.&lt;br /&gt;
&lt;br /&gt;
== Image file sizes ==&lt;br /&gt;
&lt;br /&gt;
* The heightmap has to be square and its dimensions have to be a power-of-two + 1, like 257x257, 513x513, 1025x1025&lt;br /&gt;
* The blendmaps have to be square too, with power-of-two dimensions like: 256x256, 512x512, 1024x1024.  They should be smaller than the heightmap.&lt;br /&gt;
* The tiled textures should have power-of-two dimensions, but don&#039;t have to be square&lt;br /&gt;
* The minimap can be anything, but it will be resized to an image of 1024x1024. Specifying a 1024x1024 will allow faster loading because no resizing is needed.&lt;br /&gt;
* Typemap and metalmaps dimensions should be (heightmapsize - 1) / 2, so when the heightmap is 1025x1025, the typemap is 512x512.&lt;br /&gt;
* The heightmap can be any [http://openil.sourceforge.net/features.php DevIL] supported format, or RAW such as exported by terragen. All the other maps/texture files can only be a DevIL format.&lt;br /&gt;
[edit by relinquished: fixed typo &amp;quot;to be square two&amp;quot; instead of &amp;quot;to be square too&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
== Feature placement ==&lt;br /&gt;
&lt;br /&gt;
The feature specification is done with a list of feature type names in the SM3 itself, and with a binary datafile that contains all the feature positions, orientations.&lt;br /&gt;
Feature types are specified like this:&lt;br /&gt;
&lt;br /&gt;
 [FeatureTypes]&lt;br /&gt;
 {&lt;br /&gt;
 	NumTypes=4;&lt;br /&gt;
 	type0=TreeType0;     // a tree&lt;br /&gt;
 	type1=MyFeature; &lt;br /&gt;
 	type2=MyOtherFeature;&lt;br /&gt;
 	type3=GeoVent;            // a geothermal	&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
The feature binary file should be made with an editor. I&#039;m hoping Maelstrom will add feature placing to his startpoint editor, but until then there&#039;s only http://user.supradigital.org/jcnossen/FeaturePlacer.zip&lt;br /&gt;
&lt;br /&gt;
[[Image:Featureplacer.png]]&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Pos:&amp;quot; fields are ment to enter the feature X,Y,Z. You can use zero for Y because spring will automatically put the feature on the ground when it loads.&lt;br /&gt;
Type is the index into the feature type list specified in the SM3 file.&lt;br /&gt;
&lt;br /&gt;
The feature data file should be linked to the SM3 with:&lt;br /&gt;
&lt;br /&gt;
 [map]&lt;br /&gt;
 {&lt;br /&gt;
      ..  other map tags ...&lt;br /&gt;
&lt;br /&gt;
      featuredata=FeatureDataFileName;&lt;br /&gt;
&lt;br /&gt;
      ..  other map tags ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
* dynamic shadow mapping support&lt;br /&gt;
* shadowmap storage, so the resolution can be increased&lt;br /&gt;
&lt;br /&gt;
[[Category:Map making]]&lt;br /&gt;
[[Category:SM3 map format]]&lt;/div&gt;</summary>
		<author><name>Relinquished</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SM3_Map_Format&amp;diff=16104</id>
		<title>SM3 Map Format</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SM3_Map_Format&amp;diff=16104"/>
		<updated>2006-12-05T02:40:11Z</updated>

		<summary type="html">&lt;p&gt;Relinquished: /* Image file sizes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
As opposed to the original SMF renderer, the SM3 map renderer allows multiple texture layers rendered on the terrain. This allows for higher texture resolutions and improved lighting such as bumpmapping/specular mapping.&lt;br /&gt;
&lt;br /&gt;
== Map specification ==&lt;br /&gt;
&lt;br /&gt;
Instead of a binary SMF file and a SMD file, all map information is now stored in a text based .SM3 file. This has the same basic layout as the original .SMD file, but it includes a [TERRAIN] section and an [INFOMAPS] section. It also has  an extra tag in LIGHT (GroundSpecularColor):&lt;br /&gt;
&lt;br /&gt;
 [MAP]&lt;br /&gt;
 {&lt;br /&gt;
   ... regular smd information, such as start positions,&lt;br /&gt;
     [WATER] and [ATMOSPHERE] sections...&lt;br /&gt;
&lt;br /&gt;
 [LIGHT]&lt;br /&gt;
 {&lt;br /&gt;
 // specular color, defaults to 0.1 0.1 0.1&lt;br /&gt;
 	GroundSpecularColor=0.3 0.3 0.3;&lt;br /&gt;
&lt;br /&gt;
   ... other standard tags shared with SMF (such as GroundSunColor)...&lt;br /&gt;
&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 [INFOMAPS]&lt;br /&gt;
 {&lt;br /&gt;
 	metal=Maps/dry_data/metalmap.png;&lt;br /&gt;
 	type=Maps/dry_data/typemap.png;&lt;br /&gt;
 }&lt;br /&gt;
 [TERRAIN]&lt;br /&gt;
 {&lt;br /&gt;
 	HeightScale=400.0;&lt;br /&gt;
 	HeightOffset=10.0;&lt;br /&gt;
 	Heightmap=Maps/dry_data/1026.png;&lt;br /&gt;
&lt;br /&gt;
 	NumTextureStages=2; // all texture stages are multiplied&lt;br /&gt;
 	SpecularExponent=16; // specular exponent AKA &lt;br /&gt;
 		//shininess or polishedness.  defaults to 8&lt;br /&gt;
&lt;br /&gt;
 	[texstage0]&lt;br /&gt;
 	{&lt;br /&gt;
 		// the first texture stage operation is ignored&lt;br /&gt;
 		source=Snow;&lt;br /&gt;
 	}&lt;br /&gt;
 	[texstage1]&lt;br /&gt;
 	{&lt;br /&gt;
 // use the incoming alpha to blend between 2 textures&lt;br /&gt;
 		operation=blend; &lt;br /&gt;
 		source=CrackedDirt;&lt;br /&gt;
 		blender=RockBlender1026;&lt;br /&gt;
 	}&lt;br /&gt;
 /* texture definitions */&lt;br /&gt;
 	[CrackedDirt]&lt;br /&gt;
 	{&lt;br /&gt;
 		File=Maps/dry_data/dirt2.jpg;&lt;br /&gt;
 		Bumpmap=Maps/dry_data/dirt2_bm.jpg;&lt;br /&gt;
 		TileSize=50;&lt;br /&gt;
 	}&lt;br /&gt;
 	[Snow]&lt;br /&gt;
 	{&lt;br /&gt;
 		File=Maps/dry_data/Snow_Sand.jpg;&lt;br /&gt;
 		TileSize=20;&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 /* blender definition, all blenders have &amp;quot;Blendmap=1&amp;quot; */&lt;br /&gt;
 // a rock blender loaded from file for a specific map&lt;br /&gt;
 	[RockBlender1026]&lt;br /&gt;
 	{&lt;br /&gt;
 		Blendmap=1;&lt;br /&gt;
 		File=Maps/dry_data/1026_bm_small.png;&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== Heightmap specification ==&lt;br /&gt;
&lt;br /&gt;
The heightmap is specified with 3 tags located in the [TERRAIN] section:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Heightmap:&#039;&#039;&#039; This should be either:&lt;br /&gt;
*An 8 or 16 bit image file readable by DevIL&lt;br /&gt;
*A 8 or 16 bit RAW file, such as generated by Terragen&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;HeightScale and HeightOffset:&#039;&#039;&#039; The actual height of a heightmap pixel is calculated scaled by HeightScale, after which HeightOffset is added to it (height = pixel * HeightScale + HeightOffset)&lt;br /&gt;
&lt;br /&gt;
== Texturing method specification (how are the textures applied) ==&lt;br /&gt;
&lt;br /&gt;
=== Texture stages/layers ===&lt;br /&gt;
&lt;br /&gt;
Texturing of SM3 terrains works by a series of texture layers that are applied on top of eachother. These layers are called &amp;quot;texture stages&amp;quot;. The stages can be added, multiplied, or alpha blended with the previous stage. This is defined by the stage operation. &lt;br /&gt;
&lt;br /&gt;
The number of stages is given with the tag NumTextureStages like:&lt;br /&gt;
&lt;br /&gt;
 NumTextureStages=2;&lt;br /&gt;
&lt;br /&gt;
Keep in mind that the stages are directly executed on your videocard. This means the more stages you make the slower the map will render. &lt;br /&gt;
 &lt;br /&gt;
The first stage never has an operation:&lt;br /&gt;
&lt;br /&gt;
 [texstage0]&lt;br /&gt;
 {&lt;br /&gt;
 	source=Snow;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Following stages can have &amp;quot;operation=add&amp;quot;, &amp;quot;operation=mul&amp;quot;, &amp;quot;operation=blend&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Operation Add ====&lt;br /&gt;
&lt;br /&gt;
The add operation needs a texture to add to the previous stage, which is specified with the &amp;quot;source=TextureName&amp;quot; tag. The texture specification is explained below.&lt;br /&gt;
&lt;br /&gt;
 [texstage1]&lt;br /&gt;
 {&lt;br /&gt;
 	operation=add;&lt;br /&gt;
 	source=CrackedDirt;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== Operation Multiply ====&lt;br /&gt;
&lt;br /&gt;
Same as add, but with operation=mul&lt;br /&gt;
&lt;br /&gt;
 [texstage1]&lt;br /&gt;
 {&lt;br /&gt;
 	operation=mul;&lt;br /&gt;
 	source=CrackedDirt;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==== Operation Blend ====&lt;br /&gt;
&lt;br /&gt;
The blend operation does alpha blending with an extra grayscale alpha texture. Specification of these alpha textures (&amp;quot;Blendmaps&amp;quot;) is explained later in this doc. The blend operation needs a &amp;quot;blender=BlenderName&amp;quot; tag to work. I&#039;m guessing most maps will only be using this operation. &lt;br /&gt;
&lt;br /&gt;
 [texstage1]&lt;br /&gt;
 {&lt;br /&gt;
 	operation=blend; &lt;br /&gt;
 	source=CrackedDirt;&lt;br /&gt;
 	blender=RockBlender1026;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
The avaiable operations are limited to add/mul/blend for techical reasons:&lt;br /&gt;
This way even the most complex maps can be executed with multipass operations on any card with at least 2 textures units. It would even work on a Riva TNT I think.&lt;br /&gt;
&lt;br /&gt;
Obviously because the first stage doesn&#039;t have any previous stage, the operation of the first stage is ignored&lt;br /&gt;
&lt;br /&gt;
=== Textures ===&lt;br /&gt;
&lt;br /&gt;
==== Tiled textures ====&lt;br /&gt;
&lt;br /&gt;
The operations usually have &amp;quot;source=texturename&amp;quot; in them, which points to the name of a tiled texture.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 NumTextureStages=1;&lt;br /&gt;
 [texstage0]&lt;br /&gt;
 {&lt;br /&gt;
 	source=Snow;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 [Snow]&lt;br /&gt;
 {&lt;br /&gt;
 	File=Maps/dry_data/Snow_Sand.jpg;&lt;br /&gt;
 	TileSize=20;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Tilesize is how big a single tile is in the 3D spring world, when the texture is tiled across the map. Imagine a heightmap of 1025x1025 (In spring world space this is 1024*8= 8192x8192 units). &lt;br /&gt;
When you set tilesize=4096, you will see the complete texture 4 times on the map (2 by 2). Set it to 8192 and you&#039;ll see the map completely covered. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Blendmap specification ====&lt;br /&gt;
&lt;br /&gt;
Blendmaps can either be loaded from file or generated from the terrain. They are stretched across the full terrain, so in combination with the blend operation you can specify exactly where you want to see a specific texture on the terrain.&lt;br /&gt;
&lt;br /&gt;
===== Blendmaps from file =====&lt;br /&gt;
&lt;br /&gt;
Blendmaps can be loaded from any grayscale file that DevIL can load:&lt;br /&gt;
&lt;br /&gt;
 [RockBlender]&lt;br /&gt;
 {&lt;br /&gt;
 	Blendmap=1;&lt;br /&gt;
 	File=Maps/dry_data/1026_bm_small.png;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
===== Generated blendmaps =====&lt;br /&gt;
&lt;br /&gt;
Blendmaps can be generated from the heightmap. The final value is computed by&lt;br /&gt;
&lt;br /&gt;
 blendmap_value = SlopeTerm * HeightTerm * coverage * noise&lt;br /&gt;
&lt;br /&gt;
The slope of the terrain is a value between 0 and 1, with 0 being flat and 1 being completely steep. Ofcourse with a heightmap the slope can only be near 1 and not exactly 1&lt;br /&gt;
&lt;br /&gt;
The height of the terrain is between 0 and 1 (the minimum and maximum height value)&lt;br /&gt;
If the height is between minHeight and maxHeight, HeightTerm will be 1. maxHeightFuzzy and minHeightFuzzy determine the &amp;quot;border&amp;quot; size between having a HeightTerm of 0 and a HeightTerm of 1. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GeneratorLOD indicates at which resolution the blendmap should be generated. The blendmap size will be (heightmapsize-1) / (2 ^ generatorLOD). For example with a heightmap width of 1025 and a generatorlod of 2, the blendmap size will be 1024/4=256.&lt;br /&gt;
&lt;br /&gt;
(Images illustrating this will be added later)&lt;br /&gt;
&lt;br /&gt;
== Infomaps ==&lt;br /&gt;
&lt;br /&gt;
The infomaps section defines the metal map and typemap. Both should be 8 bit images in any format DevIL accepts.&lt;br /&gt;
&lt;br /&gt;
== Image file sizes ==&lt;br /&gt;
&lt;br /&gt;
* The heightmap has to be square and its dimensions have to be a power-of-two + 1, like 257x257, 513x513, 1025x1025&lt;br /&gt;
* The blendmaps have to be square too, with power-of-two dimensions like: 256x256, 512x512, 1024x1024.  They should be smaller than the heightmap.&lt;br /&gt;
* The tiled textures should have power-of-two dimensions, but don&#039;t have to be square&lt;br /&gt;
* The minimap can be anything, but it will be resized to an image of 1024x1024. Specifying a 1024x1024 will allow faster loading because no resizing is needed.&lt;br /&gt;
* Typemap and metalmaps dimensions should be (heightmapsize - 1) / 2, so when the heightmap is 1025x1025, the typemap is 512x512.&lt;br /&gt;
* The heightmap can be any [http://openil.sourceforge.net/features.php DevIL] supported format, or RAW such as exported by terragen. All the other maps/texture files can only be a DevIL format.&lt;br /&gt;
[edit by relinquished: fixed typo &amp;quot;to be square two&amp;quot; instead of &amp;quot;to be square too&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
== Feature placement ==&lt;br /&gt;
&lt;br /&gt;
The feature specification is done with a list of feature type names in the SM3 itself, and with an binary datafile that contains all the feature positions, orientations.&lt;br /&gt;
Feature types are specified like this:&lt;br /&gt;
&lt;br /&gt;
 [FeatureTypes]&lt;br /&gt;
 {&lt;br /&gt;
 	NumTypes=4;&lt;br /&gt;
 	type0=TreeType0;     // a tree&lt;br /&gt;
 	type1=MyFeature; &lt;br /&gt;
 	type2=MyOtherFeature;&lt;br /&gt;
 	type3=GeoVent;            // a geothermal	&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
The feature binary file should be made with an editor. I&#039;m hoping Maelstrom will add feature placing to his startpoint editor, but until then there&#039;s only http://user.supradigital.org/jcnossen/FeaturePlacer.zip&lt;br /&gt;
&lt;br /&gt;
[[Image:Featureplacer.png]]&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Pos:&amp;quot; fields are ment to enter the feature X,Y,Z. You can use zero for Y because spring will automatically put the feature on the ground when it loads.&lt;br /&gt;
Type is the index into the feature type list specified in the SM3 file.&lt;br /&gt;
&lt;br /&gt;
The feature data file should be linked to the SM3 with:&lt;br /&gt;
&lt;br /&gt;
 [map]&lt;br /&gt;
 {&lt;br /&gt;
      ..  other map tags ...&lt;br /&gt;
&lt;br /&gt;
      featuredata=FeatureDataFileName;&lt;br /&gt;
&lt;br /&gt;
      ..  other map tags ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
* dynamic shadow mapping support&lt;br /&gt;
* shadowmap storage, so the resolution can be increased&lt;br /&gt;
&lt;br /&gt;
[[Category:Map making]]&lt;br /&gt;
[[Category:SM3 map format]]&lt;/div&gt;</summary>
		<author><name>Relinquished</name></author>
	</entry>
</feed>