@@ -59,24 +59,36 @@ public boolean run(VerbRunner cb) {
59
59
Scene s = actor .getScene (w );
60
60
61
61
final String actorId = actor .getActorId ();
62
- BaseActor a = s .getActor (actorId , true );
63
62
64
- if (a == null ) {
65
- EngineLogger .error (getClass () + "- No not found: " + actorId );
66
- return false ;
67
- }
63
+ if (attr .equals (ActorAttribute .STATE )) {
64
+ BaseActor a = s .getActor (actorId , true );
65
+ if (a == null || !(a instanceof InteractiveActor )) {
66
+ EngineLogger .error (getClass () + "- No not found: " + actorId );
67
+ return false ;
68
+ }
68
69
69
- if (attr .equals (ActorAttribute .STATE ) && a instanceof InteractiveActor ) {
70
70
InteractiveActor ia = (InteractiveActor ) a ;
71
71
if (!ActionUtils .compareNullStr (value , ia .getState ())) {
72
72
gotoElse (cb );
73
73
}
74
74
} else if (attr .equals (ActorAttribute .VISIBLE )) {
75
+ BaseActor a = s .getActor (actorId , true );
76
+ if (a == null ) {
77
+ EngineLogger .error (getClass () + "- No not found: " + actorId );
78
+ return false ;
79
+ }
80
+
75
81
boolean val = Boolean .parseBoolean (value );
76
82
if (val != a .isVisible ()) {
77
83
gotoElse (cb );
78
84
}
79
85
} else if (attr .equals (ActorAttribute .INTERACTIVE )) {
86
+ BaseActor a = s .getActor (actorId , true );
87
+ if (a == null ) {
88
+ EngineLogger .error (getClass () + "- No not found: " + actorId );
89
+ return false ;
90
+ }
91
+
80
92
boolean val = Boolean .parseBoolean (value );
81
93
82
94
if (a instanceof InteractiveActor ) {
@@ -105,8 +117,7 @@ public boolean run(VerbRunner cb) {
105
117
106
118
SpriteActor item = null ;
107
119
108
- if (a != null )
109
- item = inventory .get (a .getId ());
120
+ item = inventory .get (actorId );
110
121
111
122
if ((val && item == null ) || (!val && item != null )) {
112
123
gotoElse (cb );
@@ -130,12 +141,25 @@ public boolean run(VerbRunner cb) {
130
141
131
142
if ((val && a2 == null ) || (!val && a2 != null ))
132
143
gotoElse (cb );
133
- } else if (attr .equals (ActorAttribute .LAYER ) && a instanceof InteractiveActor ) {
144
+ } else if (attr .equals (ActorAttribute .LAYER )) {
145
+ BaseActor a = s .getActor (actorId , true );
146
+ if (a == null || !(a instanceof InteractiveActor )) {
147
+ EngineLogger .error (getClass () + "- No not found: " + actorId );
148
+ return false ;
149
+ }
150
+
134
151
InteractiveActor ia = (InteractiveActor ) a ;
135
152
if (!ActionUtils .compareNullStr (value , ia .getLayer ())) {
136
153
gotoElse (cb );
137
154
}
138
- } else if (attr .equals (ActorAttribute .DIRECTION ) && a instanceof SpriteActor ) {
155
+ } else if (attr .equals (ActorAttribute .DIRECTION )) {
156
+
157
+ BaseActor a = s .getActor (actorId , true );
158
+ if (a == null || !(a instanceof SpriteActor )) {
159
+ EngineLogger .error (getClass () + "- No not found: " + actorId );
160
+ return false ;
161
+ }
162
+
139
163
SpriteActor sa = (SpriteActor ) a ;
140
164
141
165
if (sa .getRenderer () instanceof AnimationRenderer ) {
@@ -152,6 +176,12 @@ public boolean run(VerbRunner cb) {
152
176
}
153
177
}
154
178
} else if (attr .equals (ActorAttribute .INSIDE )) {
179
+ BaseActor a = s .getActor (actorId , true );
180
+ if (a == null ) {
181
+ EngineLogger .error (getClass () + "- No not found: " + actorId );
182
+ return false ;
183
+ }
184
+
155
185
BaseActor insideActor = w .getCurrentScene ().getActor (value , false );
156
186
157
187
if (insideActor == null ) {
0 commit comments