~ubuntu-branches/ubuntu/wily/gargoyle-free/wily-proposed

« back to all changes in this revision

Viewing changes to tads/tads3/test/data/objloop.t

  • Committer: Bazaar Package Importer
  • Author(s): Sylvain Beucler
  • Date: 2009-09-11 20:09:43 UTC
  • Revision ID: james.westby@ubuntu.com-20090911200943-idgzoyupq6650zpn
Tags: upstream-2009-08-25
ImportĀ upstreamĀ versionĀ 2009-08-25

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 *   object loop tests 
 
3
 */
 
4
 
 
5
#include "tads.h"
 
6
#include "t3.h"
 
7
 
 
8
 
 
9
class Room: object
 
10
    sdesc = "<class Room>"
 
11
;
 
12
 
 
13
startroom: Room
 
14
    sdesc = "Starting Room"
 
15
;
 
16
 
 
17
eastroom: Room
 
18
    sdesc = "East Room"
 
19
;
 
20
 
 
21
westroom: Room
 
22
    sdesc = "West Room"
 
23
;
 
24
 
 
25
class Item: object
 
26
    sdesc = "<class Item>"
 
27
    ldesc = "It looks like an ordinary <<sdesc>>. "
 
28
;
 
29
 
 
30
book: Item
 
31
    location = startroom
 
32
    sdesc = "book"
 
33
    ldesc = "It's a book. "
 
34
;
 
35
 
 
36
ball: Item
 
37
    location = eastroom
 
38
    sdesc = "ball"
 
39
;
 
40
 
 
41
class FixedItem: object
 
42
    sdesc = "&lt;class FixedItem>"
 
43
;
 
44
 
 
45
box: Item, FixedItem
 
46
    location = westroom
 
47
    sdesc = "box"
 
48
;
 
49
 
 
50
preinit()
 
51
{
 
52
}
 
53
 
 
54
main(args)
 
55
{
 
56
    local obj;
 
57
    local lst;
 
58
 
 
59
    "Scanning all objects:\n";
 
60
    for (obj = firstObj() ; obj != nil ; obj = nextObj(obj))
 
61
        "<<obj.sdesc>>\n";
 
62
 
 
63
    "\bScanning all class objects:\n";
 
64
    for (obj = firstObj(ObjClasses) ; obj != nil ;
 
65
         obj = nextObj(obj, ObjClasses))
 
66
        "<<obj.sdesc>>\n";
 
67
 
 
68
    "\bScanning all Rooms:\n";
 
69
    for (obj = firstObj(Room) ; obj != nil ; obj = nextObj(obj, Room))
 
70
        "<<obj.sdesc>>\n";
 
71
 
 
72
    "\bScanning all Items:\n";
 
73
    for (obj = firstObj(Item) ; obj != nil ; obj = nextObj(obj, Item))
 
74
        "<<obj.sdesc>>\n";
 
75
 
 
76
    "\bTesting ofKind:\n";
 
77
    "startroom.ofKind(Room) = <<bool2str(startroom.ofKind(Room))>>\n";
 
78
    "startroom.ofKind(Item) = <<bool2str(startroom.ofKind(Item))>>\n";
 
79
    "box.ofKind(Room) = <<bool2str(box.ofKind(Room))>>\n";
 
80
    "box.ofKind(Item) = <<bool2str(box.ofKind(Item))>>\n";
 
81
 
 
82
    "\bTesting getSuperclassList:\n";
 
83
    lst = startroom.getSuperclassList();
 
84
    for (local i = 1, local len = lst.length() ; i <= len ; ++i)
 
85
        "sc(startroom, <<i>>) = <<lst[i].sdesc>>\n";
 
86
 
 
87
    lst = box.getSuperclassList();
 
88
    for (local i = 1, local len = lst.length() ; i <= len ; ++i)
 
89
        "sc(box, <<i>>) = <<lst[i].sdesc>>\n";
 
90
 
 
91
    "\bTesting propDefined:\n";
 
92
    "startroom.propDefined(sdesc) =
 
93
        <<bool2str(startroom.propDefined(&sdesc))>>\n";
 
94
    "startroom.propDefined(location) =
 
95
        <<bool2str(startroom.propDefined(&location))>>\n";
 
96
    "book.propDefined(sdesc) =
 
97
        <<bool2str(book.propDefined(&sdesc))>>\n";
 
98
    "book.propDefined(location) =
 
99
        <<bool2str(book.propDefined(&location))>>\n";
 
100
 
 
101
    "\b";
 
102
    "book.propDefined(&sdesc, PropDefDirectly) =
 
103
        <<bool2str(book.propDefined(&sdesc, PropDefDirectly))>>\n";
 
104
    "book.propDefined(&sdesc, PropDefInherits) =
 
105
        <<bool2str(book.propDefined(&sdesc, PropDefInherits))>>\n";
 
106
    "book.propDefined(&ldesc, PropDefDirectly) =
 
107
        <<bool2str(book.propDefined(&ldesc, PropDefDirectly))>>\n";
 
108
    "book.propDefined(&ldesc, PropDefInherits) =
 
109
        <<bool2str(book.propDefined(&ldesc, PropDefInherits))>>\n";
 
110
    "book.propDefined(&sdesc, PropDefGetClass) =
 
111
        <<obj2str(book.propDefined(&sdesc, PropDefGetClass))>>\n";
 
112
    "book.propDefined(&ldesc, PropDefGetClass) =
 
113
        <<obj2str(book.propDefined(&ldesc, PropDefGetClass))>>\n";
 
114
 
 
115
    "\b";
 
116
    "ball.propDefined(&sdesc, PropDefDirectly) =
 
117
        <<bool2str(ball.propDefined(&sdesc, PropDefDirectly))>>\n";
 
118
    "ball.propDefined(&sdesc, PropDefInherits) =
 
119
        <<bool2str(ball.propDefined(&sdesc, PropDefInherits))>>\n";
 
120
    "ball.propDefined(&ldesc, PropDefDirectly) =
 
121
        <<bool2str(ball.propDefined(&ldesc, PropDefDirectly))>>\n";
 
122
    "ball.propDefined(&ldesc, PropDefInherits) =
 
123
        <<bool2str(ball.propDefined(&ldesc, PropDefInherits))>>\n";
 
124
    "ball.propDefined(&sdesc, PropDefGetClass) =
 
125
        <<obj2str(ball.propDefined(&sdesc, PropDefGetClass))>>\n";
 
126
    "ball.propDefined(&ldesc, PropDefGetClass) =
 
127
        <<obj2str(ball.propDefined(&ldesc, PropDefGetClass))>>\n";
 
128
 
 
129
    "\bTesting propType:\n";
 
130
    "startroom.propType(&sdesc) = <<startroom.propType(&sdesc)>>\n";
 
131
    "startroom.propType(&location) = <<startroom.propType(&location)>>\n";
 
132
 
 
133
    "\bDone!\n";
 
134
}
 
135
 
 
136
bool2str(x) { return x ? 'true' : 'nil'; }
 
137
 
 
138
obj2str(obj) { obj = nil ? "nil" : obj.sdesc; }