<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wiki.sierrahelp.com/index.php?action=history&amp;feed=atom&amp;title=Screen_object</id>
	<title>Screen object - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.sierrahelp.com/index.php?action=history&amp;feed=atom&amp;title=Screen_object"/>
	<link rel="alternate" type="text/html" href="http://wiki.sierrahelp.com/index.php?title=Screen_object&amp;action=history"/>
	<updated>2026-09-14T20:21:16Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>http://wiki.sierrahelp.com/index.php?title=Screen_object&amp;diff=89207&amp;oldid=prev</id>
		<title>Andrew Branscom at 23:52, 3 April 2025</title>
		<link rel="alternate" type="text/html" href="http://wiki.sierrahelp.com/index.php?title=Screen_object&amp;diff=89207&amp;oldid=prev"/>
		<updated>2025-04-03T23:52:30Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&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: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 19:52, 3 April 2025&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-l2&quot;&gt;Line 2:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 2:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;[[Category:AGI Pages to be Edited]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;[[Category:AGI Pages to be Edited]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; 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;div align=&quot;center&quot;&amp;gt;&amp;lt;span style=&quot;font-size: 22pt&quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; 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;div align=&quot;center&quot;&amp;gt;&amp;lt;span style=&quot;font-size: 22pt&quot;&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Screen object&lt;/ins&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Andrew Branscom</name></author>
	</entry>
	<entry>
		<id>http://wiki.sierrahelp.com/index.php?title=Screen_object&amp;diff=89206&amp;oldid=prev</id>
		<title>Andrew Branscom: /*  Introduction */</title>
		<link rel="alternate" type="text/html" href="http://wiki.sierrahelp.com/index.php?title=Screen_object&amp;diff=89206&amp;oldid=prev"/>
		<updated>2025-04-03T23:51:51Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Introduction&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&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: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 19:51, 3 April 2025&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-l7&quot;&gt;Line 7:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 7:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;==&amp;lt;br /&amp;gt; Introduction ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;==&amp;lt;br /&amp;gt; Introduction ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; 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;The screen object data type (sometimes called a VIEW object; not to be confused with a [[View (AGI)]] resource) represents the animated sprites that are controlled by AGI. Unlike [[&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;variable&lt;/del&gt;|variables]] and [[Flag (AGI)|flags]], screen objects must be explicitly created in order to access them in AGI. Each screen object must be initialized, assigned a loaded [[View Resource (AGI)|view]] resource, positioned on the screen and then drawn in order to appear on screen.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; 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;The screen object data type (sometimes called a VIEW object; not to be confused with a [[View (AGI)]] resource) represents the animated sprites that are controlled by AGI. Unlike [[&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Variable (AGI)&lt;/ins&gt;|variables]] and [[Flag (AGI)|flags]], screen objects must be explicitly created in order to access them in AGI. Each screen object must be initialized, assigned a loaded [[View Resource (AGI)|view]] resource, positioned on the screen and then drawn in order to appear on screen.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;Screen objects are represented in source code by the letter &amp;#039;o&amp;#039; and their index number (i.e. o0, o1, etc.)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;Screen objects are represented in source code by the letter &amp;#039;o&amp;#039; and their index number (i.e. o0, o1, etc.)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Andrew Branscom</name></author>
	</entry>
	<entry>
		<id>http://wiki.sierrahelp.com/index.php?title=Screen_object&amp;diff=89205&amp;oldid=prev</id>
		<title>Andrew Branscom: /*  Introduction */</title>
		<link rel="alternate" type="text/html" href="http://wiki.sierrahelp.com/index.php?title=Screen_object&amp;diff=89205&amp;oldid=prev"/>
		<updated>2025-04-03T23:51:24Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Introduction&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&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: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 19:51, 3 April 2025&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-l7&quot;&gt;Line 7:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 7:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;==&amp;lt;br /&amp;gt; Introduction ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;==&amp;lt;br /&amp;gt; Introduction ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; 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;The screen object data type (sometimes called a VIEW object; not to be confused with a [[&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;view&lt;/del&gt;]] resource) represents the animated sprites that are controlled by AGI. Unlike [[variable|variables]] and [[&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;flag&lt;/del&gt;|flags]], screen objects must be explicitly created in order to access them in AGI. Each screen object must be initialized, assigned a loaded [[View Resource (AGI)|view]] resource, positioned on the screen and then drawn in order to appear on screen.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; 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;The screen object data type (sometimes called a VIEW object; not to be confused with a [[&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;View (AGI)&lt;/ins&gt;]] resource) represents the animated sprites that are controlled by AGI. Unlike [[variable|variables]] and [[&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Flag (AGI)&lt;/ins&gt;|flags]], screen objects must be explicitly created in order to access them in AGI. Each screen object must be initialized, assigned a loaded [[View Resource (AGI)|view]] resource, positioned on the screen and then drawn in order to appear on screen.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;Screen objects are represented in source code by the letter &amp;#039;o&amp;#039; and their index number (i.e. o0, o1, etc.)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;Screen objects are represented in source code by the letter &amp;#039;o&amp;#039; and their index number (i.e. o0, o1, etc.)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Andrew Branscom</name></author>
	</entry>
	<entry>
		<id>http://wiki.sierrahelp.com/index.php?title=Screen_object&amp;diff=89103&amp;oldid=prev</id>
		<title>Andrew Branscom: Created page with &quot;Category:AGI Pages Category:AGI Pages to be Edited  &lt;div align=&quot;center&quot;&gt;&lt;span style=&quot;font-size: 22pt&quot;&gt;&lt;/div&gt;  &lt;br /&gt; ==&lt;br /&gt; Introduction ==  The screen object data type (sometimes called a VIEW object; not to be confused with a view resource) represents the animated sprites that are controlled by AGI. Unlike variables and flags, screen objects must be explicitly created in order to access them in AGI. Each screen object must be initial...&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.sierrahelp.com/index.php?title=Screen_object&amp;diff=89103&amp;oldid=prev"/>
		<updated>2025-04-03T21:19:18Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;&lt;a href=&quot;/index.php/Category:AGI_Pages&quot; title=&quot;Category:AGI Pages&quot;&gt;Category:AGI Pages&lt;/a&gt; &lt;a href=&quot;/index.php/Category:AGI_Pages_to_be_Edited&quot; title=&quot;Category:AGI Pages to be Edited&quot;&gt;Category:AGI Pages to be Edited&lt;/a&gt;  &amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;font-size: 22pt&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;  &amp;lt;br /&amp;gt; ==&amp;lt;br /&amp;gt; Introduction ==  The screen object data type (sometimes called a VIEW object; not to be confused with a &lt;a href=&quot;/index.php?title=View&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;View (page does not exist)&quot;&gt;view&lt;/a&gt; resource) represents the animated sprites that are controlled by AGI. Unlike &lt;a href=&quot;/index.php/Variable&quot; title=&quot;Variable&quot;&gt;variables&lt;/a&gt; and &lt;a href=&quot;/index.php?title=Flag&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Flag (page does not exist)&quot;&gt;flags&lt;/a&gt;, screen objects must be explicitly created in order to access them in AGI. Each screen object must be initial...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Category:AGI Pages]]&lt;br /&gt;
[[Category:AGI Pages to be Edited]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;font-size: 22pt&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==&amp;lt;br /&amp;gt; Introduction ==&lt;br /&gt;
&lt;br /&gt;
The screen object data type (sometimes called a VIEW object; not to be confused with a [[view]] resource) represents the animated sprites that are controlled by AGI. Unlike [[variable|variables]] and [[flag|flags]], screen objects must be explicitly created in order to access them in AGI. Each screen object must be initialized, assigned a loaded [[View Resource (AGI)|view]] resource, positioned on the screen and then drawn in order to appear on screen.&lt;br /&gt;
&lt;br /&gt;
Screen objects are represented in source code by the letter &amp;#039;o&amp;#039; and their index number (i.e. o0, o1, etc.)&lt;br /&gt;
&lt;br /&gt;
== [[Screen Object Table]] ==&lt;br /&gt;
&lt;br /&gt;
Each screen object is represented by a structured block of memory that contains all the data associated with the object. AGI creates a table of screen object structures on start up which is then accessed as needed while AGI is running. See the [[Screen Object Table|Screen Object Data Structure]] Topic for details on the information stored in AGI for each screen object.&lt;br /&gt;
&lt;br /&gt;
== Maximum Screen Objects ==&lt;br /&gt;
&lt;br /&gt;
The size of the screen object table is set by the Maximum Screen Objects property of the game&amp;#039;s [[OBJECT File (AGI)|OBJECT]] file. AGI allocates [[memory]] for the screen object table based on the Maximum Screen Objects value when the game starts. The size of the table cannot be adjusted after that.&lt;br /&gt;
&lt;br /&gt;
The screen object table size is always one plus the actual value of Maximum Screen Objects, i.e. if maximum is set to 10, the table will actually hold 11 objects. This is because the first object (o0, known as [[ego]]) is always allocated a space in the screen object table. Due to [[memory]] limitations, you should try to limit the Maximum Screen Objects to as low a value as possible. You can even use a value of zero, which would mean that the only object that would be usable would be the [[ego]] object. A common value in many Sierra games for Maximum Screen Objects was 16.&lt;br /&gt;
&lt;br /&gt;
== Ego Object ==&lt;br /&gt;
&lt;br /&gt;
The first screen object in the table (o0) is reserved by AGI to function as the character that represents the player in the game. This is the screen object which the player can control, moving around the screen as they progress through the game.&lt;br /&gt;
&lt;br /&gt;
In AGI, this screen object (o0) is referred to as &amp;quot;[[ego]]&amp;quot;. AGI provides commands and functionality specifically for ego that is unique from other screen objects. It is the only screen object that can be set to allow [[player.control|player control]] via the [[keyboard]], [[joystick]] and/or [[mouse]]. None of the other objects can be controlled directly by the player.&lt;br /&gt;
&lt;br /&gt;
== Loop Assignment to Screen Objects ==&lt;br /&gt;
&lt;br /&gt;
In order to actually display an object on screen, a [[view]] must be assigned using the &amp;#039;&amp;#039;&amp;#039;[[set.view]]&amp;#039;&amp;#039;&amp;#039; command. In each [[interpreter cycle]], AGI displays each cel in the currently assigned loop successively, which creates the illusion of movement. See the [[Working with Screen Objects]] topic for additional information.&lt;br /&gt;
&lt;br /&gt;
== Auto Loop Feature ==&lt;br /&gt;
&lt;br /&gt;
If the view assigned to an object has 2, 3 or 4 loops, AGI will automatically assign a [[loop]] based on the direction an object is moving. For example, when walking to the right, show a right facing loop, when walking toward the horizon, show a rear view loop, etc. When an object&amp;#039;s direction changes, AGI assigns a loop as follows:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
| style=&amp;quot;background-color: #efefef&amp;quot; width=&amp;quot;200&amp;quot; | &amp;#039;&amp;#039;&amp;#039;Direction&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| style=&amp;quot;background-color: #efefef&amp;quot; width=&amp;quot;175&amp;quot; | &amp;#039;&amp;#039;&amp;#039;New Loop&amp;#039;&amp;#039;&amp;#039;&amp;lt;BR/&amp;gt;(2,3 loops)&lt;br /&gt;
| style=&amp;quot;background-color: #efefef&amp;quot; width=&amp;quot;175&amp;quot; | &amp;#039;&amp;#039;&amp;#039;New Loop&amp;#039;&amp;#039;&amp;#039;&amp;lt;BR/&amp;gt;(4 loops)&lt;br /&gt;
|-&lt;br /&gt;
|0 - STOPPED &lt;br /&gt;
| no change&lt;br /&gt;
| no change&lt;br /&gt;
|-&lt;br /&gt;
|1 - UP&lt;br /&gt;
|no change&lt;br /&gt;
|3&lt;br /&gt;
|-&lt;br /&gt;
|2 - UP_RIGHT&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|3 - RIGHT&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|4 - DOWN_RIGHT&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
|5 - DOWN&lt;br /&gt;
|no change&lt;br /&gt;
|2&lt;br /&gt;
|-&lt;br /&gt;
|6 - DOWN_LEFT&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|7 - LEFT&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|8 - UP_LEFT&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If the view has only one or more than four loops, AGI will not automatically assign loops based on direction. However, in AGI [[version]] 3.002.098 and above, reserved flag [[f20 (force auto-loop)]] can be set to force the auto-loop behavior even if there are more than four loops in the view. (There is a bug in [[version 3.002.086]] that makes all views automatically update no matter how many loops they have.)&lt;br /&gt;
&lt;br /&gt;
The auto-loop feature can be disabled by using the &amp;#039;&amp;#039;&amp;#039;[[fix.loop]]&amp;#039;&amp;#039;&amp;#039; command. Also, there is a bug in all versions of AGI that will disable the auto-loop feature if [[step size]] is set to 0.&lt;br /&gt;
&lt;br /&gt;
== Screen Object Number Validation ==&lt;br /&gt;
&lt;br /&gt;
It is important to be aware that AGI is notorious for failing to validate values passed to commands. In the case of screen objects, beginning in version 2.272, most of the AGI commands no longer verify that the value passed for screen objects is less than or equal to the maximum (exceptions are the &amp;#039;&amp;#039;&amp;#039;[[erase]]&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;[[animate.obj]]&amp;#039;&amp;#039;&amp;#039;, and &amp;#039;&amp;#039;&amp;#039;[[draw]]&amp;#039;&amp;#039;&amp;#039; commands). &lt;br /&gt;
&lt;br /&gt;
This means that when an invalid screen object value is passed to a command, AGI will attempt to read or write data in memory that is outside the screen object table. This will most certainly result in wildly unpredictable results, and usually ends up [[crashing AGI]]. &lt;br /&gt;
&lt;br /&gt;
As a game programmer it is extremely important that you verify all commands involving screen objects are passed a valid value. See the [[Internal Error Handling]] topic for additional information on how AGI handles errors in logic code.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;br /&amp;gt; References ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;br /&amp;gt; Related Links ==&lt;br /&gt;
* &amp;amp;nbsp;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
[[Category:Commands]]&lt;br /&gt;
[[Category:AGI Logic Commands]]&lt;/div&gt;</summary>
		<author><name>Andrew Branscom</name></author>
	</entry>
</feed>