'From Squeak3.3alpha of 18 January 2002 [latest update: #4891] on 26 June 2002 at 2:57:32 pm'! "Change Set: statusGlitch-sw Date: 26 June 2002 Author: Scott Wallace Fixes a significant glitch in update 4887 that could lead to unpredictable and sometimes bizarre interactions when an object had more than one script that was paused or ticking."! !ScriptInstantiation methodsFor: 'status control' stamp: 'sw 6/26/2002 14:53'! status: newStatus "Set the receiver's status as indicated" | stati actualMorph | actualMorph _ player costume renderedMorph. stati _ ScriptingSystem standardEventStati. (stati includes: status) ifTrue: [actualMorph on: status send: nil to: nil. "remove old link in event handler"]. (stati includes: newStatus) ifTrue: [actualMorph on: newStatus send: selector to: player. "establish new link in evt handler" player assureNoScriptOtherThan: self hasStatus: newStatus]. status _ newStatus. self pausedOrTicking ifTrue: [lastTick _ nil]. self flag: #arNote. "this from fall 2000" self flag: #workaround. "Code below was in #chooseTriggerFrom: which did not reflect status changes from other places (e.g., the stepping/pause buttons). It is not clear why this is necessary though - theoretically, any morph should step when it has a player but alas!! something is broken and I have no idea why and where." "14 feb 2001 - bob - I reinstated this after alan noticed that a newly drawn car would not go until you picked it up and dropped it. The reason is that unscripted players have #wantSteps ^false. If a morph enters the world with an unscripted player and then acquires a scripted player, that would be a good time to change, but this will work too" status == #ticking ifTrue: [player costume isStepping ifFalse: [player costume arrangeToStartStepping]] ! !