<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.renoproject.org/index.php?action=history&amp;feed=atom&amp;title=Habitat_Minor_Missive_-_Dropfix</id>
	<title>Habitat Minor Missive - Dropfix - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.renoproject.org/index.php?action=history&amp;feed=atom&amp;title=Habitat_Minor_Missive_-_Dropfix"/>
	<link rel="alternate" type="text/html" href="https://wiki.renoproject.org/index.php?title=Habitat_Minor_Missive_-_Dropfix&amp;action=history"/>
	<updated>2026-04-18T06:47:49Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>https://wiki.renoproject.org/index.php?title=Habitat_Minor_Missive_-_Dropfix&amp;diff=3650&amp;oldid=prev</id>
		<title>Stu: Created page with &quot;&lt;div style=&#039;text-align: center;&#039;&gt;&#039;&#039;&#039;Proposed fix for the&#039;&#039;&#039; &#039;&#039;&#039;‘‘drop behind object problem’’&#039;&#039;&#039;  &#039;&#039;Chip Morningstar&#039;&#039;  &#039;&#039;Lucasfilm Ltd. Games Division&#039;&#039; &#039;&#039;December 5,...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.renoproject.org/index.php?title=Habitat_Minor_Missive_-_Dropfix&amp;diff=3650&amp;oldid=prev"/>
		<updated>2021-03-22T19:25:35Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;&amp;lt;div style=&amp;#039;text-align: center;&amp;#039;&amp;gt;&amp;#039;&amp;#039;&amp;#039;Proposed fix for the&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;‘‘drop behind object problem’’&amp;#039;&amp;#039;&amp;#039;  &amp;#039;&amp;#039;Chip Morningstar&amp;#039;&amp;#039;  &amp;#039;&amp;#039;Lucasfilm Ltd. Games Division&amp;#039;&amp;#039; &amp;#039;&amp;#039;December 5,...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;div style=&amp;#039;text-align: center;&amp;#039;&amp;gt;&amp;#039;&amp;#039;&amp;#039;Proposed fix for the&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;‘‘drop behind object problem’’&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Chip Morningstar&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Lucasfilm Ltd. Games Division&amp;#039;&amp;#039;&lt;br /&gt;
&amp;#039;&amp;#039;December 5, 1986&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==The Problem==&lt;br /&gt;
It is possible, either by throwing or &amp;#039;&amp;#039;&amp;#039;PUT&amp;#039;&amp;#039;&amp;#039;ting, to place one object behind another in such a manner&lt;br /&gt;
that the rear object become permanently inaccessible to the players (we can extract it with Twiddle if we&lt;br /&gt;
know it there, but that’s clearly not acceptable for a running system).  This is due to the way the &amp;#039;&amp;#039;&amp;#039;PUT&amp;#039;&amp;#039;&amp;#039; and&lt;br /&gt;
throw commands work: you indicate where you want an object to go by pointing at the desired location.&lt;br /&gt;
For certain objects, such as the ground, the object is placed at the location indicated.  For other objects,&lt;br /&gt;
such as the wall, the location’s Y-coordinate is clamped at the horizon (the rationale being that the object&lt;br /&gt;
needs to land on a surface, such as the ground, rather than hovering in mid-air).  This means that you can&lt;br /&gt;
point to the wall above some other object, such as a couch, and throw what the Avatar is holding behind it.&lt;br /&gt;
Conceptually, the object flies through the air, hits the wall, and drops down behind the couch.  Similarly,&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;PUT&amp;#039;&amp;#039;&amp;#039;ting or throwing to many free-standing objects causes the &amp;#039;&amp;#039;&amp;#039;PUT&amp;#039;&amp;#039;&amp;#039; or thrown item to wind up at the target&lt;br /&gt;
object’s (X,Y) location, rather than the precise position pointed at.  The resulting location, however, may be&lt;br /&gt;
obscured by a third object.  If an obscuring object is immobile, the object that is behind is left permanently&lt;br /&gt;
stuck, since there is no way for anyone to point at it in order to indicate that they wish to pick it up.&lt;br /&gt;
&lt;br /&gt;
==The Solution==&lt;br /&gt;
Only allow &amp;#039;&amp;#039;&amp;#039;PUT&amp;#039;&amp;#039;&amp;#039; and throw to work in circumstances where it makes sense.  This means that you can&lt;br /&gt;
only &amp;#039;&amp;#039;&amp;#039;PUT&amp;#039;&amp;#039;&amp;#039; or throw to objects where the exact (X,Y) location indicated may be used, such as the ground or&lt;br /&gt;
the road, or to containers that are going to end up holding the object when the operation is done (such containers include Avatars, so you can still play catch).&lt;br /&gt;
&lt;br /&gt;
==What It Involves==&lt;br /&gt;
This change involves only the removal of capabilities.  Therefore, no Commodore programming is&lt;br /&gt;
required to implement it.  However, substantial (though simple) changes to the Muddle file that describes&lt;br /&gt;
the C64 object disk are needed in order to take out the unwanted &amp;#039;&amp;#039;&amp;#039;RDO&amp;#039;&amp;#039;&amp;#039; (throw) and &amp;#039;&amp;#039;&amp;#039;PUT&amp;#039;&amp;#039;&amp;#039; behaviors. In addition, the host object definitions need to be altered slightly to disallow the now illegal operations.  We estimate that this is about a half day’s work in total.&lt;/div&gt;</summary>
		<author><name>Stu</name></author>
	</entry>
</feed>