Difference between revisions of "Script Classes for Adventure Games/Collection Class"

From SCI Wiki
Jump to navigationJump to search
 
(7 intermediate revisions by the same user not shown)
Line 4: Line 4:
 
Chapter:  
 
Chapter:  
 
[[Script Classes for Adventure Games/Introduction|1]] |  
 
[[Script Classes for Adventure Games/Introduction|1]] |  
[[Script Classes for Adventure Games/RootObj|2]] |  
+
[[Script Classes for Adventure Games/RootObj Class|2]] |  
[[Script Classes for Adventure Games/Object|3]] |  
+
[[Script Classes for Adventure Games/Object Class|3]] |  
[[Script Classes for Adventure Games/Collection|4]] |  
+
[[Script Classes for Adventure Games/Collection Class|4]] |  
[[Script Classes for Adventure Games/List|5]] |  
+
[[Script Classes for Adventure Games/Script Class|5]] |  
[[Script Classes for Adventure Games/Set|6]] |  
+
[[Script Classes for Adventure Games/Timer Class|6]] |  
[[Script Classes for Adventure Games/EventHandler|7]] |  
+
[[Script Classes for Adventure Games/Feature Class|7]] |  
[[Script Classes for Adventure Games/Inventory|8]] |  
+
[[Script Classes for Adventure Games/View Class|8]] |  
[[Script Classes for Adventure Games/Script|9]] |  
+
[[Script Classes for Adventure Games/PicView Class|9]] |  
[[Script Classes for Adventure Games/Timer|10]] |  
+
[[Script Classes for Adventure Games/Cycling Classes|10]] |  
[[Script Classes for Adventure Games/Feature|11]] |  
+
[[Script Classes for Adventure Games/Motion Classes|11]] |  
[[Script Classes for Adventure Games/View|12]] |  
+
[[Script Classes for Adventure Games/Avoider Class|12]] |  
[[Script Classes for Adventure Games/Prop|13]] |  
+
[[Script Classes for Adventure Games/Event Class|13]] |  
[[Script Classes for Adventure Games/Actor|14]] |
+
[[Script Classes for Adventure Games/User Class|14]]<br />
[[Script Classes for Adventure Games/Ego|15]] |
+
[[Script Classes for Adventure Games/Game Class|15]] |  
[[Script Classes for Adventure Games/PicView|16]] |
+
[[Script Classes for Adventure Games/Locale Class|16]] |  
[[Script Classes for Adventure Games/Cycle|17]] |
+
[[Script Classes for Adventure Games/Region Class|17]] |  
[[Script Classes for Adventure Games/Forward|18]] |
+
[[Script Classes for Adventure Games/Room Class|18]] |  
[[Script Classes for Adventure Games/Walk|19]] |
+
[[Script Classes for Adventure Games/Timer2 Class|19]] |  
[[Script Classes for Adventure Games/Reverse|20]] |
+
[[Script Classes for Adventure Games/InvItem Class|20]] |  
[[Script Classes for Adventure Games/CycleTo|21]] |
+
[[Script Classes for Adventure Games/Block Class|21]] |  
[[Script Classes for Adventure Games/EndLoop|22]] |
+
[[Script Classes for Adventure Games/Cage Class|22]] |  
[[Script Classes for Adventure Games/BegLoop|23]] |
+
[[Script Classes for Adventure Games/Sound Class|23]] |  
[[Script Classes for Adventure Games/Motion|24]] |
+
[[Script Classes for Adventure Games/StatusLine Class|24]] |  
[[Script Classes for Adventure Games/MoveTo|25]] |
+
[[Script Classes for Adventure Games/File Class|25]] |  
[[Script Classes for Adventure Games/Wander|26]]<br />
+
[[Script Classes for Adventure Games/Code Class|26]] |  
[[Script Classes for Adventure Games/Follow|27]] |
+
[[Script Classes for Adventure Games/Global Variables|27]] |  
[[Script Classes for Adventure Games/Chase|28]] |
 
[[Script Classes for Adventure Games/Jump|29]] |
 
[[Script Classes for Adventure Games/JumpTo|30]] |
 
[[Script Classes for Adventure Games/Orbit|31]] |
 
[[Script Classes for Adventure Games/Path|32]] |
 
[[Script Classes for Adventure Games/RelPath|33]] |
 
[[Script Classes for Adventure Games/Avoider|34]] |
 
[[Script Classes for Adventure Games/Event|35]] |
 
[[Script Classes for Adventure Games/User|36]] |
 
[[Script Classes for Adventure Games/Game|37]] |  
 
[[Script Classes for Adventure Games/Locale|38]] |  
 
[[Script Classes for Adventure Games/Region|39]] |  
 
[[Script Classes for Adventure Games/Room|40]] |  
 
[[Script Classes for Adventure Games/Timer2|41]] |
 
[[Script Classes for Adventure Games/TimeOut|42]] |  
 
[[Script Classes for Adventure Games/InvItem|43]] |  
 
[[Script Classes for Adventure Games/Block|44]] |  
 
[[Script Classes for Adventure Games/Cage|45]] |  
 
[[Script Classes for Adventure Games/Sound|46]] |  
 
[[Script Classes for Adventure Games/StatusLine|47]] |  
 
[[Script Classes for Adventure Games/File|48]] |  
 
[[Script Classes for Adventure Games/Code|49]] |  
 
[[Script Classes for Adventure Games/Global Variables|50]] |  
 
 
[[Script Classes for Adventure Games/Index|Index]]
 
[[Script Classes for Adventure Games/Index|Index]]
 
</div><br />
 
</div><br />
Line 67: Line 44:
  
 
{|
 
{|
|width= "150" |In file:||system.sc
+
|width= "125" |In file:||system.sc
 
|-
 
|-
 
|Inherits from:||Object
 
|Inherits from:||Object
Line 86: Line 63:
 
<blockquote>The number of elements in the collection.</blockquote>
 
<blockquote>The number of elements in the collection.</blockquote>
  
Methods:  
+
===<br /> Methods: ===
  
 
====<br /> add: element [elements ...] ====
 
====<br /> add: element [elements ...] ====
Line 114: Line 91:
 
====<br /> next: kNode (private) ====
 
====<br /> next: kNode (private) ====
 
<blockquote>Returns a pointer to the kNode following kNode. As in first:, the object may be obtained with (NodeValue kNode). Also as in first:, the lack of ordering in a Collection means that the object which will be returned is unspecified. It is guaranteed, however, that it will not be an object which has been returned since the most recent call to first: (unless the object has been added to the Collection more than once — see Set). If all elements in the Collection have been returned since the last call to first:, 0 is returned.</blockquote>
 
<blockquote>Returns a pointer to the kNode following kNode. As in first:, the object may be obtained with (NodeValue kNode). Also as in first:, the lack of ordering in a Collection means that the object which will be returned is unspecified. It is guaranteed, however, that it will not be an object which has been returned since the most recent call to first: (unless the object has been added to the Collection more than once — see Set). If all elements in the Collection have been returned since the last call to first:, 0 is returned.</blockquote>
 +
 +
===<br /> The List Class ===
 +
 +
A List is just a Collection which has a specified order to its elements.
 +
 +
{|
 +
|In file||system.sc
 +
|-
 +
|Inherits from||Collection
 +
|-
 +
|Inherited by||Inventory
 +
|-
 +
|            || Set
 +
|}
 +
 +
====<br /> Properties ====
 +
 +
&nbsp;
 +
 +
====<br /> Methods ====
 +
 +
=====<br /> add: element [element ...] =====
 +
<blockquote>Adds elements to the end of the list in the order specified.</blockquote>
 +
 +
=====<br /> first =====
 +
<blockquote>Returns the kNode of the first element in the List.</blockquote>
 +
 +
=====<br /> next: kNode =====
 +
<blockquote>Returns the kNode of the element which follows kNode in the List, 0 if kNode is the end of the List.</blockquote>
 +
 +
=====<br /> at: n =====
 +
<blockquote>Returns the element (not the kNode) at position n in the List.</blockquote>
 +
 +
=====<br /> last =====
 +
<blockquote>Returns the kNode of the last element in the List.</blockquote>
 +
 +
=====<br /> prev: kNode =====
 +
<blockquote>Returns the kNode of the element preceding kNode in the List, 0 if kNode is the first element of the List.</blockquote>
 +
 +
=====<br /> addToFront: element [element ...] =====
 +
<blockquote>Add elements to the beginning of the List.</blockquote>
 +
 +
=====<br /> addToEnd: element [element ...] =====
 +
<blockquote>Add elements to the end of the List.</blockquote>
 +
 +
=====<br /> indexOf: element =====
 +
<blockquote>Return the index of element in the list. If the element is not in the list, return -1.</blockquote>
  
 
&nbsp;
 
&nbsp;
Line 126: Line 150:
 
&nbsp;
 
&nbsp;
  
<span style="float: left">[[Script Classes for Adventure Games/Object Class|&lt; Previous: Object Class]]</span>
+
<span style="float: left">[[Script Classes for Adventure Games/Object Class|&lt; Previous: The Object Class]]</span>
<span style="float: right">[[Script Classes for Adventure Games/List|Next: List &gt;]]</span>
+
<span style="float: right">[[Script Classes for Adventure Games/List Class|Next: The List Class &gt;]]</span>
  
 
&nbsp;
 
&nbsp;

Latest revision as of 03:37, 9 December 2015

Official SCI Documentation

Chapter: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14
15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | Index


The Collection Class

Author: Jeff Stephenson

Date: 5 April 1988

 


The Collection Class

The Collection class provides the ability to manipulate collections of objects. Objects which belong to a Collection are said to be elements or members of it. The Collection class has no particular order defined for its elements, so it should not be used for situations in which the objects should be ordered — use a List instead.

In file: system.sc
Inherits from: Object
Inherited by: List
Set
EventHandler


Properties


elements

A pointer to a kernel list (kList) of the elements of the Collection.


size

The number of elements in the collection.


Methods:


add: element [elements ...]

Add elements to the Collection.


delete: element [elements ...]

Delete elements from the Collection.


eachElementDo: action [args...]

Send the message action [args...] to each element of the Collection. There may be from zero to four arguments (args).


firstTrue: action [args...]

Send the message action [args...] to each element of the collection in succession. When an object replies a non-zero value to the message, firstTrue: returns the object ID of that object and does not send the message to any more objects. Up to four arguments are allowed.


allTrue: action [args...]

Returns TRUE if all objects in the collection reply a non-zero value to the message action [args...], FALSE otherwise. Up to four arguments are allowed.


contains: anObject

Returns TRUE if anObject is an element of the collection, FALSE otherwise.


isEmpty

Returns TRUE if the collection has no elements, FALSE otherwise.


first: (private)

Returns a pointer to the kernel node kNode which has the 'first' object in the collection as its value. The object can be obtained with the kernel call (NodeValue kNode). Note that since there is no order associated with a collection, the object which will be returned by first is unspecified.


next: kNode (private)

Returns a pointer to the kNode following kNode. As in first:, the object may be obtained with (NodeValue kNode). Also as in first:, the lack of ordering in a Collection means that the object which will be returned is unspecified. It is guaranteed, however, that it will not be an object which has been returned since the most recent call to first: (unless the object has been added to the Collection more than once — see Set). If all elements in the Collection have been returned since the last call to first:, 0 is returned.


The List Class

A List is just a Collection which has a specified order to its elements.

In file system.sc
Inherits from Collection
Inherited by Inventory
Set


Properties

 


Methods


add: element [element ...]

Adds elements to the end of the list in the order specified.


first

Returns the kNode of the first element in the List.


next: kNode

Returns the kNode of the element which follows kNode in the List, 0 if kNode is the end of the List.


at: n

Returns the element (not the kNode) at position n in the List.


last

Returns the kNode of the last element in the List.


prev: kNode

Returns the kNode of the element preceding kNode in the List, 0 if kNode is the first element of the List.


addToFront: element [element ...]

Add elements to the beginning of the List.


addToEnd: element [element ...]

Add elements to the end of the List.


indexOf: element

Return the index of element in the list. If the element is not in the list, return -1.

 

Notes


 

Table of Contents

 

< Previous: The Object Class Next: The List Class >