<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.frictionalgames.com/page?action=history&amp;feed=atom&amp;title=Hpl2%3AResources%3Ascript_modules%3Acoordsys</id>
	<title>Hpl2:Resources:script modules:coordsys - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.frictionalgames.com/page?action=history&amp;feed=atom&amp;title=Hpl2%3AResources%3Ascript_modules%3Acoordsys"/>
	<link rel="alternate" type="text/html" href="https://wiki.frictionalgames.com/page?title=Hpl2:Resources:script_modules:coordsys&amp;action=history"/>
	<updated>2026-04-28T19:25:01Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.34.2</generator>
	<entry>
		<id>https://wiki.frictionalgames.com/page?title=Hpl2:Resources:script_modules:coordsys&amp;diff=3506&amp;oldid=prev</id>
		<title>Mudbill: Added delete notice</title>
		<link rel="alternate" type="text/html" href="https://wiki.frictionalgames.com/page?title=Hpl2:Resources:script_modules:coordsys&amp;diff=3506&amp;oldid=prev"/>
		<updated>2020-08-05T23:20:12Z</updated>

		<summary type="html">&lt;p&gt;Added delete notice&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 23:20, 5 August 2020&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{stub}}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;{{Delete|This page contains a very comprehensive method of achieving something in version &amp;lt;1.3 of Amnesia but has since become redundant due to added script functions.}}&lt;/ins&gt;{{stub}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Global Coordinate System =&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=Global Coordinate System=&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{todo|What does this do? What was it made for? How to use this code?}}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{todo|What does this do? What was it made for? How to use this code?}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wiki:diff::1.12:old-1751:rev-3506 --&gt;
&lt;/table&gt;</summary>
		<author><name>Mudbill</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.frictionalgames.com/page?title=Hpl2:Resources:script_modules:coordsys&amp;diff=1751&amp;oldid=prev</id>
		<title>Darkfire: Syntax highlightin fix</title>
		<link rel="alternate" type="text/html" href="https://wiki.frictionalgames.com/page?title=Hpl2:Resources:script_modules:coordsys&amp;diff=1751&amp;oldid=prev"/>
		<updated>2020-07-22T22:19:01Z</updated>

		<summary type="html">&lt;p&gt;Syntax highlightin fix&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 22:19, 22 July 2020&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{stub}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Global Coordinate System =&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Global Coordinate System =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{todo|What does this do? What was it made for? How to use this code?}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;The following block of code is a global coordinate system made by Homicide13.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;The following block of code is a global coordinate system made by Homicide13.  &lt;/del&gt;Note: These functions were made using [http://wiki.frictionalgames.com/hpl2/resources/improvnotepad Apjjm's Improved Notepad++ HPS Support], and concequently would be viewed best with this plugin.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;{{note|'''&lt;/ins&gt;Note:&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;''' &lt;/ins&gt;These functions were made using [http://wiki.frictionalgames.com/hpl2/resources/improvnotepad Apjjm's Improved Notepad++ HPS Support], and concequently would be viewed best with this plugin.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Copy and paste the following code either into your .hps file or into some form of .phps or .ihps file for use with the [http://wiki.frictionalgames.com/hpl2/resources/preprocess Script Pre-Processer].&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Copy and paste the following code either into your .hps file or into some form of .phps or .ihps file for use with the [http://wiki.frictionalgames.com/hpl2/resources/preprocess Script Pre-Processer].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This code will also require a certain set of entities to be included with your project.  These entities can be downloaded [http://www.mediafire.com/download.php?56eo5jojhya0605 here].  Further instructions for instalation and use are provided within the code.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This code will also require a certain set of entities to be included with your project.  These entities can be downloaded [http://www.mediafire.com/download.php?56eo5jojhya0605 here].  Further instructions for instalation and use are provided within the code.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&amp;quot;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;cpp&lt;/ins&gt;&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&amp;quot;&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//***************************&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//***************************&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//BEGIN GLOBAL COORD SYSTEM *&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//BEGIN GLOBAL COORD SYSTEM *&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wiki:diff::1.12:old-755:rev-1751 --&gt;
&lt;/table&gt;</summary>
		<author><name>Darkfire</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.frictionalgames.com/page?title=Hpl2:Resources:script_modules:coordsys&amp;diff=755&amp;oldid=prev</id>
		<title>Maintenance script: Upload from wiki</title>
		<link rel="alternate" type="text/html" href="https://wiki.frictionalgames.com/page?title=Hpl2:Resources:script_modules:coordsys&amp;diff=755&amp;oldid=prev"/>
		<updated>2020-07-09T13:48:19Z</updated>

		<summary type="html">&lt;p&gt;Upload from wiki&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Global Coordinate System =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following block of code is a global coordinate system made by Homicide13.  Note: These functions were made using [http://wiki.frictionalgames.com/hpl2/resources/improvnotepad Apjjm's Improved Notepad++ HPS Support], and concequently would be viewed best with this plugin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Copy and paste the following code either into your .hps file or into some form of .phps or .ihps file for use with the [http://wiki.frictionalgames.com/hpl2/resources/preprocess Script Pre-Processer].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This code will also require a certain set of entities to be included with your project.  These entities can be downloaded [http://www.mediafire.com/download.php?56eo5jojhya0605 here].  Further instructions for instalation and use are provided within the code.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
//***************************&lt;br /&gt;
//BEGIN GLOBAL COORD SYSTEM *&lt;br /&gt;
//***************************&lt;br /&gt;
//NOTE: All distances are in meters.&lt;br /&gt;
&lt;br /&gt;
//--------------------&lt;br /&gt;
//Begin ADTs&lt;br /&gt;
//--------------------&lt;br /&gt;
&lt;br /&gt;
class Pos {&lt;br /&gt;
&lt;br /&gt;
	float x;&lt;br /&gt;
	float y;&lt;br /&gt;
	float z;&lt;br /&gt;
	bool correct;&lt;br /&gt;
	string entityName;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
//--------------------&lt;br /&gt;
//End ADTs&lt;br /&gt;
//--------------------&lt;br /&gt;
&lt;br /&gt;
//--------------------&lt;br /&gt;
//Begin Constants&lt;br /&gt;
//--------------------&lt;br /&gt;
&lt;br /&gt;
//The density of the grid used to search for the position of objects.&lt;br /&gt;
//Continually dividing this number by 2 should eventually yeild 1, and there should be a sdiv entity for each sub division between and including this value and 1.&lt;br /&gt;
//NOTE: setting this number too low can cause lag.&lt;br /&gt;
const int GRID_DEN = 64;&lt;br /&gt;
&lt;br /&gt;
//The value that the coordinits returned will be +- to.&lt;br /&gt;
//Continually multiplying this number by 2 should eventually yeild 1, and there should be a sdiv entity for each sub division between and including this value and 1.&lt;br /&gt;
//NOTE: setting this number too low can cause lag.&lt;br /&gt;
const float PRECISION = 0.0625;&lt;br /&gt;
&lt;br /&gt;
//The maximum bounds for the coordinates system.&lt;br /&gt;
//(on both sides of the origin - so a MAX_X_POS of 16 would be able to find everything with an x value within -16 to 16)&lt;br /&gt;
//NOTE: the max positions should be evenly divisible by the GRID_DEN&lt;br /&gt;
//NOTE: setting these numbers too high can cause lag.  They should be tailored to fit your map.&lt;br /&gt;
const int MAX_X_POS = 128;&lt;br /&gt;
const int MAX_Y_POS = 128;&lt;br /&gt;
const int MAX_Z_POS = 128;&lt;br /&gt;
&lt;br /&gt;
//This should be the base name of the octtree subdivision entities.&lt;br /&gt;
const string SDIV = &amp;quot;sdiv&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
//Constant strings used to calculate things.&lt;br /&gt;
//These should only be changed if they conflict with anything else you are doing in the map/script.&lt;br /&gt;
const string COORD_NODE = &amp;quot;coord_node&amp;quot;;&lt;br /&gt;
const string POS_DETCTR = &amp;quot;detector&amp;quot;;&lt;br /&gt;
const string POS_FNDR = &amp;quot;finder&amp;quot;;&lt;br /&gt;
const string ENT_ORGN = &amp;quot;origin&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
//--------------------&lt;br /&gt;
//End Constants&lt;br /&gt;
//--------------------&lt;br /&gt;
&lt;br /&gt;
//--------------------&lt;br /&gt;
//Begin Private Variables&lt;br /&gt;
//The names of these should only be changed if they conflict with anything else you are doing in the map/script.&lt;br /&gt;
//--------------------&lt;br /&gt;
&lt;br /&gt;
float _fIterator = 0.0;&lt;br /&gt;
&lt;br /&gt;
//--------------------&lt;br /&gt;
//End Private Variables&lt;br /&gt;
//--------------------&lt;br /&gt;
&lt;br /&gt;
//--------------------&lt;br /&gt;
//Begin Private Functions&lt;br /&gt;
//--------------------&lt;br /&gt;
&lt;br /&gt;
bool IsEven(float i){&lt;br /&gt;
&lt;br /&gt;
	if((i % 2) == 0) return true;&lt;br /&gt;
	else return false;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void FixedAttachPropToProp(string&amp;amp; sAttachTo, string&amp;amp; sAttach, string&amp;amp; sEntityFile, float x, float y, float z){&lt;br /&gt;
   &lt;br /&gt;
	AddAttachedPropToProp(sAttachTo,sAttach,sEntityFile,x,y,0,z,90,z);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void GetPosIter(Pos&amp;amp; entityPos, float x, float y, float z, string &amp;amp;in sEntOrgn){&lt;br /&gt;
	&lt;br /&gt;
	for(float i = GRID_DEN/2; i&amp;gt;= PRECISION; i=i/2){&lt;br /&gt;
		&lt;br /&gt;
		string sItDetector = _fIterator+entityPos.entityName+i; //This makes sure every entity created for the octtree subdivisions has a unique name.&lt;br /&gt;
		float sdivCenterDist = i/2; //This is the distance between the center of each subdivision and the center of the previous correct subdivision (or in the case of the first iteration, the position detector.&lt;br /&gt;
		&lt;br /&gt;
		//These functions attach a subdivision in the correct location from the givin center point.&lt;br /&gt;
		//I proabablly could have come up with some kind of &amp;quot;for&amp;quot; routine to do it so that it looks a bit better, but I'm too lazy.&lt;br /&gt;
		FixedAttachPropToProp(COORD_NODE, sItDetector+1, SDIV+i+&amp;quot;.ent&amp;quot;,x+sdivCenterDist,y+sdivCenterDist,z+sdivCenterDist);&lt;br /&gt;
		FixedAttachPropToProp(COORD_NODE, sItDetector+2, SDIV+i+&amp;quot;.ent&amp;quot;,x-sdivCenterDist,y+sdivCenterDist,z+sdivCenterDist);&lt;br /&gt;
		FixedAttachPropToProp(COORD_NODE, sItDetector+3, SDIV+i+&amp;quot;.ent&amp;quot;,x+sdivCenterDist,y-sdivCenterDist,z+sdivCenterDist);&lt;br /&gt;
		FixedAttachPropToProp(COORD_NODE, sItDetector+4, SDIV+i+&amp;quot;.ent&amp;quot;,x-sdivCenterDist,y-sdivCenterDist,z+sdivCenterDist);&lt;br /&gt;
		FixedAttachPropToProp(COORD_NODE, sItDetector+5, SDIV+i+&amp;quot;.ent&amp;quot;,x+sdivCenterDist,y+sdivCenterDist,z-sdivCenterDist);&lt;br /&gt;
		FixedAttachPropToProp(COORD_NODE, sItDetector+6, SDIV+i+&amp;quot;.ent&amp;quot;,x-sdivCenterDist,y+sdivCenterDist,z-sdivCenterDist);&lt;br /&gt;
		FixedAttachPropToProp(COORD_NODE, sItDetector+7, SDIV+i+&amp;quot;.ent&amp;quot;,x+sdivCenterDist,y-sdivCenterDist,z-sdivCenterDist);&lt;br /&gt;
		FixedAttachPropToProp(COORD_NODE, sItDetector+8, SDIV+i+&amp;quot;.ent&amp;quot;,x-sdivCenterDist,y-sdivCenterDist,z-sdivCenterDist);&lt;br /&gt;
		&lt;br /&gt;
		     if(GetEntitiesCollide(sEntOrgn,sItDetector+1)) { x+=sdivCenterDist; y+=sdivCenterDist; z+=sdivCenterDist; }&lt;br /&gt;
		else if(GetEntitiesCollide(sEntOrgn,sItDetector+2)) { x-=sdivCenterDist; y+=sdivCenterDist; z+=sdivCenterDist; }&lt;br /&gt;
		else if(GetEntitiesCollide(sEntOrgn,sItDetector+3)) { x+=sdivCenterDist; y-=sdivCenterDist; z+=sdivCenterDist; }&lt;br /&gt;
		else if(GetEntitiesCollide(sEntOrgn,sItDetector+4)) { x-=sdivCenterDist; y-=sdivCenterDist; z+=sdivCenterDist; }&lt;br /&gt;
		else if(GetEntitiesCollide(sEntOrgn,sItDetector+5)) { x+=sdivCenterDist; y+=sdivCenterDist; z-=sdivCenterDist; }&lt;br /&gt;
		else if(GetEntitiesCollide(sEntOrgn,sItDetector+6)) { x-=sdivCenterDist; y+=sdivCenterDist; z-=sdivCenterDist; }&lt;br /&gt;
		else if(GetEntitiesCollide(sEntOrgn,sItDetector+7)) { x+=sdivCenterDist; y-=sdivCenterDist; z-=sdivCenterDist; }&lt;br /&gt;
		else if(GetEntitiesCollide(sEntOrgn,sItDetector+8)) { x-=sdivCenterDist; y-=sdivCenterDist; z-=sdivCenterDist; }&lt;br /&gt;
		&lt;br /&gt;
		for(int j = 1;j &amp;lt;= 8; j++) RemoveAttachedPropFromProp(COORD_NODE,sItDetector+j);&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	entityPos.x = x;&lt;br /&gt;
	entityPos.y = y;&lt;br /&gt;
	entityPos.z = z;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//--------------------&lt;br /&gt;
//End Private Functions&lt;br /&gt;
//--------------------&lt;br /&gt;
&lt;br /&gt;
//--------------------&lt;br /&gt;
//Begin Public Functions&lt;br /&gt;
//--------------------&lt;br /&gt;
&lt;br /&gt;
Pos GetPos(string&amp;amp; sEntity) {&lt;br /&gt;
//Finds the position of THE CENTER OF an entity and stores it in a Pos variable.&lt;br /&gt;
//This function can NOT find the origin of &amp;quot;Player&amp;quot;.&lt;br /&gt;
	_fIterator += 0.0001;&lt;br /&gt;
	string sEntOrgn = _fIterator+sEntity+ENT_ORGN; //The name of the origin of the entity.  This ensures that each time an origin is created, it is unique.&lt;br /&gt;
	&lt;br /&gt;
	Pos entityPos;&lt;br /&gt;
	entityPos.entityName = sEntity;&lt;br /&gt;
	FixedAttachPropToProp(sEntity, sEntOrgn, SDIV+PRECISION+&amp;quot;.ent&amp;quot;, 0, 0, 0);&lt;br /&gt;
	&lt;br /&gt;
	for(int x = -(MAX_X_POS/(GRID_DEN/2)); x &amp;lt;= MAX_X_POS/(GRID_DEN/2); x++){&lt;br /&gt;
	for(int y = -(MAX_Y_POS/(GRID_DEN/2)); y &amp;lt;= MAX_Y_POS/(GRID_DEN/2); y++){&lt;br /&gt;
	for(int z = -(MAX_Z_POS/(GRID_DEN/2)); z &amp;lt;= MAX_Z_POS/(GRID_DEN/2); z++){&lt;br /&gt;
	&lt;br /&gt;
		if(IsEven(x) || IsEven(y) || IsEven(z)) continue; //This just prevents detection from an even spacing distance.  This is nessacary, otherwise the Max Positions would not be correct!&lt;br /&gt;
		&lt;br /&gt;
		string sPos_Detctr = POS_DETCTR+_fIterator+x+y+z; //The name of the detector entity.  This ensures that each time a detector, it is unique.&lt;br /&gt;
		&lt;br /&gt;
		FixedAttachPropToProp(COORD_NODE, sPos_Detctr, SDIV+GRID_DEN+&amp;quot;.ent&amp;quot;, x*(GRID_DEN/2), y*(GRID_DEN/2), z*(GRID_DEN/2));&lt;br /&gt;
		&lt;br /&gt;
		if(GetEntitiesCollide(sPos_Detctr,sEntOrgn)){&lt;br /&gt;
		&lt;br /&gt;
			GetPosIter(entityPos,x*(GRID_DEN/2),y*(GRID_DEN/2),z*(GRID_DEN/2),sEntOrgn);&lt;br /&gt;
			RemoveAttachedPropFromProp(COORD_NODE,sPos_Detctr);&lt;br /&gt;
			&lt;br /&gt;
			entityPos.correct = true;&lt;br /&gt;
			return entityPos;&lt;br /&gt;
		}&lt;br /&gt;
		else {&lt;br /&gt;
		&lt;br /&gt;
			RemoveAttachedPropFromProp(COORD_NODE,sPos_Detctr);&lt;br /&gt;
		}&lt;br /&gt;
	} } }&lt;br /&gt;
	&lt;br /&gt;
	RemoveAttachedPropFromProp(sEntity,sEntOrgn);&lt;br /&gt;
	entityPos.correct = false;&lt;br /&gt;
	entityPos.x = 0;&lt;br /&gt;
	entityPos.y = 0;&lt;br /&gt;
	entityPos.z = 0;&lt;br /&gt;
	return entityPos;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//--------------------&lt;br /&gt;
//End Public Functions&lt;br /&gt;
//--------------------&lt;br /&gt;
&lt;br /&gt;
//*************************&lt;br /&gt;
//END GLOBAL COORD SYSTEM *&lt;br /&gt;
//*************************&lt;br /&gt;
&lt;br /&gt;
//////////////////////////////////////////////////&lt;br /&gt;
//&lt;br /&gt;
//	Global Coordinates System by Homicide13&lt;br /&gt;
//&lt;br /&gt;
//	--------------------------------------------------&lt;br /&gt;
//&lt;br /&gt;
//	Installation:&lt;br /&gt;
//	If you plan on using this system you should include in your files all of the nessicary sub division entities (all of the general ones are provided),&lt;br /&gt;
//	and an entity named &amp;quot;coord_node&amp;quot; must be placed so that its center is at the (0,0,0) location of your map (an entity for this is provided as well).&lt;br /&gt;
//	This script should then be pasted at the beginning of your map file and the constants should be adjusted according to yoru needs (see below).&lt;br /&gt;
//&lt;br /&gt;
//	--------------------------------------------------&lt;br /&gt;
//&lt;br /&gt;
//	This system provides a new data type - the &amp;quot;Pos&amp;quot; class.&lt;br /&gt;
//      Pos has 5 member variables:&lt;br /&gt;
//&lt;br /&gt;
//	float x               - This is the x value of the position.&lt;br /&gt;
//	float y               - This is the y value of the position.&lt;br /&gt;
//	float z               - This is the z value of the position.&lt;br /&gt;
//	bool correct          - This is a flag that reflects whether the position has been accruately calculated - more about this later.&lt;br /&gt;
//	string entityName     - This is the name of the object whos position the data type represents.&lt;br /&gt;
//&lt;br /&gt;
//	--------------------------------------------------&lt;br /&gt;
//&lt;br /&gt;
//	This system also provides a new function: Pos GetPos(string&amp;amp; sEntity);&lt;br /&gt;
//&lt;br /&gt;
//	This function calculates the position of an entity (sEntity) and returns a &amp;quot;Pos&amp;quot; variable.&lt;br /&gt;
//	If the entity given to it could not be found (either it is not on the map, or it is not within the system bounds),&lt;br /&gt;
//		this function sets the x y and z values of the Pos it creates to 0, and sets the correct bool to false.&lt;br /&gt;
//	Unfortunatly, this function cannot be used to find the position of the player (&amp;quot;Player&amp;quot;).&lt;br /&gt;
//&lt;br /&gt;
//	NOTE: This function calculates the location of the CENTER of the entity, not the origin.  Therefore the scaling of an entity will effect its loaction.&lt;br /&gt;
//&lt;br /&gt;
//	NOTE: This function only provides information on the location of the entity at the EXACT MOMENT the function is called.&lt;br /&gt;
//		The returned Pos variable will NOT continue to re-update if the entity is moved.&lt;br /&gt;
//&lt;br /&gt;
//	NOTE: This function can only be performed accuratly about 3.402823466e+42 times (estimate) in a single level.&lt;br /&gt;
//		However, if the level is reloaed (ie the player saves and quits and then re-loads the level, or leaves the level and enters again), this number will be reset.&lt;br /&gt;
//&lt;br /&gt;
//	--------------------------------------------------&lt;br /&gt;
//&lt;br /&gt;
//	GLOBAL CONSTANTS:&lt;br /&gt;
//	(All values listed here are the default values.)&lt;br /&gt;
//	(I highly suggest that you modify the GRID_DEN, PRECISION, AND MAX__POS variables to fit your map - otherwise this system can cause lag.)&lt;br /&gt;
//&lt;br /&gt;
//	The density of the grid used to search for the position of objects.&lt;br /&gt;
//	Continually dividing this number by 2 should eventually yeild 1, and there should be a sdiv entity for each sub division between and including this value and 1.&lt;br /&gt;
//	NOTE: setting this number too low can cause lag.&lt;br /&gt;
//		const int GRID_DEN = 64;&lt;br /&gt;
//&lt;br /&gt;
//	The value that the coordinits returned will be +- to.&lt;br /&gt;
//	Continually multiplying this number by 2 should eventually yeild 1, and there should be a sdiv entity for each sub division between and including this value and 1.&lt;br /&gt;
//	NOTE: setting this number too low can cause lag.&lt;br /&gt;
//		const float PRECISION = 0.0625;&lt;br /&gt;
//&lt;br /&gt;
//	The maximum bounds for the coordinates system.&lt;br /&gt;
//	(on both sides of the origin - so a MAX_X_POS of 16 would be able to find everything with an x value within -16 to 16)&lt;br /&gt;
//	NOTE: the max positions should be evenly divisible by the GRID_DEN&lt;br /&gt;
//	NOTE: setting these numbers too high can cause lag.  They should be tailored to fit your map.&lt;br /&gt;
//		const int MAX_X_POS = 128;&lt;br /&gt;
//		const int MAX_Y_POS = 128;&lt;br /&gt;
//		const int MAX_Z_POS = 128;&lt;br /&gt;
//&lt;br /&gt;
//	This should be the base name of the octtree subdivision entities.&lt;br /&gt;
//		const string SDIV = &amp;quot;sdiv&amp;quot;;&lt;br /&gt;
//&lt;br /&gt;
//	Constant strings used to calculate things.&lt;br /&gt;
//	These should only be changed if they conflict with anything else you are doing in the map/script.&lt;br /&gt;
//		const string COORD_NODE = &amp;quot;coord_node&amp;quot;;&lt;br /&gt;
//		const string POS_DETCTR = &amp;quot;detector&amp;quot;;&lt;br /&gt;
//		const string POS_FNDR = &amp;quot;finder&amp;quot;;&lt;br /&gt;
//		const string ENT_ORGN = &amp;quot;origin&amp;quot;;&lt;br /&gt;
//&lt;br /&gt;
//////////////////////////////////////////////////&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
		
	</entry>
</feed>