diff options
| author | Vladimir Menshakov | 2009-09-09 20:42:44 +0000 | 
|---|---|---|
| committer | Vladimir Menshakov | 2009-09-09 20:42:44 +0000 | 
| commit | 153eba4fcf4ab2c5a146d077a8ab6690c5c14315 (patch) | |
| tree | ca66e4892723676651659bf375df3785c846c8b3 | |
| parent | 6f6d4df529ea7e84d851c52683974032e65d7e91 (diff) | |
| download | scummvm-rg350-153eba4fcf4ab2c5a146d077a8ab6690c5c14315.tar.gz scummvm-rg350-153eba4fcf4ab2c5a146d077a8ab6690c5c14315.tar.bz2 scummvm-rg350-153eba4fcf4ab2c5a146d077a8ab6690c5c14315.zip  | |
moved away actor animation from the "lan" animations. added better handling for the asynchronous events.
svn-id: r44019
| -rw-r--r-- | engines/teenagent/callbacks.cpp | 544 | ||||
| -rw-r--r-- | engines/teenagent/dialog.cpp | 4 | ||||
| -rw-r--r-- | engines/teenagent/scene.cpp | 133 | ||||
| -rw-r--r-- | engines/teenagent/scene.h | 8 | ||||
| -rw-r--r-- | engines/teenagent/teenagent.cpp | 14 | ||||
| -rw-r--r-- | engines/teenagent/teenagent.h | 3 | 
6 files changed, 367 insertions, 339 deletions
diff --git a/engines/teenagent/callbacks.cpp b/engines/teenagent/callbacks.cpp index 82a15d849f..17b41f20d8 100644 --- a/engines/teenagent/callbacks.cpp +++ b/engines/teenagent/callbacks.cpp @@ -91,9 +91,9 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  	case 0x4021:  		//pulling out mysterious object  		if (CHECK_FLAG(0xdbe1, 1)) { -			playAnimation(844); -			playAnimation(846); -			playAnimation(845); +			playActorAnimation(844); +			playActorAnimation(846); +			playActorAnimation(845);  			displayMessage(0x5696);  		} else {  			displayMessage(0x570f); @@ -106,24 +106,24 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  			return true;  		} else {  			playSound(76); -			playAnimation(864); -			playAnimation(866); +			playActorAnimation(864); +			playActorAnimation(866);  			//InventoryObject *obj = inventory->selectedObject();  			//if (obj != NULL && obj->id == 0x55) {  			//implement pause and using real object:   			if (inventory->has(0x55)) {  				playSound(5, 4); -				playAnimation(867); +				playActorAnimation(867);  				inventory->remove(0x55);  				inventory->add(0x56);  				moveTo(86, 195, 1, true); -				playAnimation(868); +				playActorAnimation(868);  				SET_FLAG(0xDBE4, 1);  			} else {  				//fail!   				moveTo(86, 195, 1, true);  -				playAnimation(868); +				playActorAnimation(868);  				Dialog::pop(scene, 0xDB72);  			}  			return true; @@ -132,7 +132,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  	case 0x419c: //getting the bird  		setOns(0, 0);  		playSound(56, 10); -		playAnimation(875); +		playActorAnimation(875);  		disableObject(6);  		inventory->add(0x5c);  		return true; @@ -142,7 +142,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		moveTo(197, 159, 4);  		setOns(0, 0);  		playSound(71, 8); -		playAnimation(833); +		playActorAnimation(833);  		moveTo(225, 159, 4);  		inventory->add(0x4e);  		disableObject(3); @@ -151,16 +151,16 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  	case 0x4267:  		playSound(23, 8);  		setOns(1, 0); -		playAnimation(841); +		playActorAnimation(841);  		setOns(1, 0x61);  		setOns(2, 0);  		playSound(63, 12); -		playAnimation(842); +		playActorAnimation(842);  		//shown in different positions  		displayMessage(0x5656);  		displayMessage(0x567a);  		displayMessage(0x5682); -		playAnimation(843); +		playActorAnimation(843);  		moveTo(223, 149, 0, true);  		disableObject(7);  		disableObject(1); @@ -176,14 +176,14 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  	case 0x43b5: //HQ, first trial - prison  		playSound(70, 6); -		playAnimation(962); +		playActorAnimation(962);  		loadScene(7, 30, 184, 2);  		if (res->dseg.get_byte(0xDBDF) < 2) {  			moveTo(134, 167, 2);  			displayMessage(0x54f7);  			setLan(1, 0);  			playAnimation(812, 1, true); -			playAnimation(811); +			playActorAnimation(811);  			Dialog::show(scene, 0x6117, 813);  			loadScene(6, Common::Point(230, 184));  			Dialog::show(scene, 0x626a, 814); @@ -199,18 +199,18 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  	case 0x4482:  		if (CHECK_FLAG(0xDBDF, 0)) { -			playAnimation(968); +			playActorAnimation(968);  			displayMessage(0x5511);  		} else {  			playSound(80); -			playAnimation(968); +			playActorAnimation(968);  			loadScene(6, Common::Point(280, 186));  		}  		return true;  	case 0x44fc:  //pull out spring from bed  		playSound(53, 25); -		playAnimation(839); +		playActorAnimation(839);  		moveTo(278, scene->getPosition().y, 0, true);  		inventory->add(0x50);  		disableObject(1); @@ -221,7 +221,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  			scene->displayMessage((const char *)res->dseg.ptr(0x57c0));  		} else {  			playSound(49); -			playAnimation(869); +			playActorAnimation(869);  			inventory->add(0x58);  			SET_FLAG(0xDBE5, 1);  		} @@ -235,12 +235,12 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  			//playAnimation(825, 1); //very long empty animation. what for?  			setLan(1, 0);  			playSound(71, 4); -			playAnimation(823); +			playActorAnimation(823);  			//skipped one 826 animation for this scene!  			playSound(74, 4); //delay 10 in code  			loadScene(5, scene->getPosition()); -			playAnimation(826); +			playActorAnimation(826);  			loadScene(6, scene->getPosition());  			setOns(3, 0x5b);  			displayMessage(0x55db); @@ -264,7 +264,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		if (CHECK_FLAG(0xDBDD, 3)) {  			moveTo(280, 179, 2);  			playSound(49, 7); -			playAnimation(827); +			playActorAnimation(827);  			inventory->add(0x4d);  			SET_FLAG(0xDBDE, 1);  		} else  @@ -275,11 +275,11 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		if (CHECK_FLAG(0xdbdc, 1)) {  			displayMessage(0x555d);  			setOns(2, 0); -			playAnimation(821); +			playActorAnimation(821);  			setOns(2, 0x5a);  			setOns(3, 0);  			playSound(22, 2); -			playAnimation(822); +			playActorAnimation(822);  			displayMessage(0x5577);  			disableObject(5);  			SET_FLAG(0xdbdd, 1); @@ -291,13 +291,13 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		moveTo(144, 185, 4);  		playSound(56, 15);  		setOns(0, 86); //hiding lamp -		playAnimation(816, 0, true); +		playActorAnimation(816, true);  		playAnimation(817, 1, true);  		waitAnimation();  		setOns(0, 87);  		playSound(34, 1); -		playAnimation(818); +		playActorAnimation(818);  		playAnimation(819, 1, true);  		waitAnimation(); @@ -320,14 +320,14 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  	case 0x47bc: //prison: examining trash can  		playSound(49, 5); -		playAnimation(966); +		playActorAnimation(966);  		displayMessage(0x5955);  		return true;  	case 0x47db: //prison: use switch  		if (CHECK_FLAG(0xDBDF, 1)) {  			playSound(71, 4); -			playAnimation(823); +			playActorAnimation(823);  			if (CHECK_FLAG(0xDBDD, 0)) {  				displayMessage(0x4d80);  			} else { @@ -344,7 +344,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		return true;  	case 0x4871:  -		playAnimation(965); +		playActorAnimation(965);  		displayMessage(0x5511);  		return true; @@ -353,11 +353,11 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  			SET_FLAG(0xDBE6, 2);  			setOns(1, 0x67);  			playSound(5, 9); -			playAnimation(872); +			playActorAnimation(872);  			inventory->add(0x5a);  			disableObject(7);  		} else { -			playAnimation(964); +			playActorAnimation(964);  			displayMessage(0x5511);  		}  		return true; @@ -385,11 +385,11 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  					Dialog::show(scene, 0x6BD6, 857);  				} else {  					Dialog::show(scene, 0x69B5, 857); //taking mug -					playAnimation(859, 0, true); +					playActorAnimation(859, true);  					playAnimation(858, 1, true);  					waitAnimation();  					playSound(75, 6); -					playAnimation(860); +					playActorAnimation(860);  					Dialog::show(scene, 0x69C2, 857);  					inventory->add(0x55);  					SET_FLAG(0xDBE3, 1); @@ -414,7 +414,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		return true;  	case 0x4bf5:  -		playAnimation(959); +		playActorAnimation(959);  		loadScene(8, 40, 152, 3);  		return true; @@ -424,14 +424,14 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  	case 0x4844:  		playSound(80, 4); -		playAnimation(963); +		playActorAnimation(963);  		loadScene(5, 166, 158);  		return true;  	case 0x48ea:   		setOns(0, 0);  		playSound(5, 9); -		playAnimation(836); +		playActorAnimation(836);  		inventory->add(0x4f);  		disableObject(12);  		return true; @@ -439,7 +439,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  	case 0x4a8c:   		if (CHECK_FLAG(0xDBE9, 1)) {  			playSound(89, 5); -			playAnimation(958); +			playActorAnimation(958);  			loadScene(9, 240, 182, 4);  		} else if (CHECK_FLAG(0xDBE9, 1)) {  			displayMessage(0x5894); @@ -450,7 +450,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  	case 0x4af4: //taking the crumbs  		setOns(0, 0); -		playAnimation(861); +		playActorAnimation(861);  		playSound(49);  		inventory->add(0x57);  		disableObject(6); @@ -458,7 +458,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  	case 0x4b35:  		playSound(15, 7); -		playAnimation(884); +		playActorAnimation(884);  		playSound(55, 1);  		playAnimation(885, 1);  		Dialog::show(scene, 0x67e5, 886); @@ -469,7 +469,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		inventory->add(0x1d);  		//showFullscreenMessage(0xe45c);  		loadScene(1, 198, 186); -		playAnimation(956, 0, true); +		playActorAnimation(956, true);  		Dialog::show(scene, 0x8bc4);  		waitAnimation();  		loadScene(15, 157, 199, 1); @@ -478,7 +478,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  	case 0x4c3e: //get the grenade  		playSound(32, 24); -		playAnimation(862); +		playActorAnimation(862);  		reloadLan();  		playAnimation(863, 1);  		inventory->add(0x54); @@ -502,7 +502,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		return true;  	case 0x4c1c: -		playAnimation(960); +		playActorAnimation(960);  		displayMessage(0x5511);  		return true; @@ -527,7 +527,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		playSound(5, 2);  		playSound(5, 19); -		playAnimation(550, 0, true); +		playActorAnimation(550, true);  		playAnimation(551, 1, true);  		waitAnimation(); @@ -563,7 +563,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  	case 0x4ee5:  		setOns(2, 0);  		playSound(5, 12); -		playAnimation(676); +		playActorAnimation(676);  		displayMessage(0x4ab0);  		disableObject(15);  		inventory->add(51); @@ -574,7 +574,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		disableObject(2);  		setOns(0, 0);  		playSound(5, 12); -		playAnimation(547); +		playActorAnimation(547);  		return true; @@ -583,12 +583,12 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		playSound(5, 18);  		inventory->add(0x12);  		setOns(1, 0); -		playAnimation(549); +		playActorAnimation(549);  		disableObject(13);  		return true;  	case 0x4f25: -		playAnimation(967); +		playActorAnimation(967);  		displayMessage(0x3542);  		return true; @@ -604,22 +604,22 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  				playSound(26, 32);  				playSound(26, 34);  				playSound(26, 36); -				playAnimation(590); +				playActorAnimation(590);  				moveTo(204, 178, 3, true);  				playSound(59, 1);  				playSound(60, 16);  				displayMessage(0x372e); -				playAnimation(591); +				playActorAnimation(591);  				SET_FLAG(0xDBA2, 1);  				processCallback(0x9d45);  			}  		} else { -			playAnimation(49); +			playActorAnimation(49);  			playSound(56, 8);  			playSound(56, 12);  			playSound(49, 10);  			//there's some black magic here! investigate!  -			playAnimation(587); +			playActorAnimation(587);  			displayMessage(0x4652);  			displayMessage(0x3668);  		} @@ -631,7 +631,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		} else {  			SET_FLAG(0xDB9E, 1);  			setOns(2, 0); -			playAnimation(552); +			playActorAnimation(552);  			setOns(2, 0x12);  			inventory->add(0x14);  		} @@ -650,7 +650,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		enableObject(2);  		playAnimation(545, 1);  		Dialog::show(scene, 0x0917); -		playAnimation(546); +		playActorAnimation(546);  		SET_FLAG(0xDA96, 1);  		SET_FLAG(0xDA97, 0);  		return true; @@ -658,7 +658,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  	case 0x51f0:  		setOns(0, 0);  		playSound(5, 11); -		playAnimation(637); +		playActorAnimation(637);  		disableObject(7);  		inventory->add(49);  		return true; @@ -675,14 +675,14 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		else {  			moveTo(173, 138, 2);  			playSound(28, 5); -			playAnimation(583); -			playAnimation(584); +			playActorAnimation(583); +			playActorAnimation(584);  			debug(0, "FIXME: darken whole screen");  			playSound(72, 18);  			playSound(73, 39); -			playAnimation(585); +			playActorAnimation(585);  			loadScene(11, 194, 160, 2);  			playSound(28, 2); @@ -720,14 +720,14 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  	case 0x569c:  		playSound(67, 5); -		playAnimation(983); +		playActorAnimation(983);  		displayMessage(0x5955);  		return true;  	case 0x56b7:  		playSound(66, 5);  		playSound(67, 11); -		playAnimation(984); +		playActorAnimation(984);  		displayMessage(0x5955);  		return true; @@ -736,7 +736,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		disableObject(14);  		setOns(0, 0);  		playSound(5, 10); -		playAnimation(566); +		playActorAnimation(566);  		return true;  	case 0x5793: @@ -748,7 +748,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  			SET_FLAG(0xDB95, 1);  			moveTo(188, 179, 0);  			playSound(7, 16); -			playAnimation(519); +			playActorAnimation(519);  			moveTo(168, 179, 2);  			inventory->add(3);  		} @@ -785,7 +785,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  			disableObject(12);  			setOns(0, 0);  			playSound(5, 6); -			playAnimation(541); +			playActorAnimation(541);  		}  		return true; @@ -829,12 +829,12 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  	case 0x65c3:   		if (CHECK_FLAG(0xDBA9, 1)) { -			playAnimation(635); +			playActorAnimation(635);  			setOns(5, 0);  			playSound(63, 11);  			playSound(15, 20);  			playSound(32, 31); -			playAnimation(636); +			playActorAnimation(636);  			inventory->add(47);  			inventory->add(48);  			moveTo(scene->getPosition().x - 1, 139, 1, true); @@ -918,9 +918,9 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  	case 0x7b26: //cutting the fence  		setOns(0, 0);  		playSound(5, 2); -		playAnimation(837); +		playActorAnimation(837);  		playSound(51, 3); -		playAnimation(838); +		playActorAnimation(838);  		setOns(0, 0x60);  		moveTo(281, scene->getPosition().y, 0, true);  		disableObject(4); @@ -929,14 +929,14 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  	case 0x7b89: //digging mysterious object  		if (CHECK_FLAG(0xDBE1, 1)) { -			playAnimation(844); +			playActorAnimation(844);  			setOns(1, 0);  			playSound(5, 5); -			playAnimation(847); +			playActorAnimation(847);  			playSound(5, 11); -			playAnimation(848); +			playActorAnimation(848);  			setOns(1, 0x64); -			playAnimation(845); +			playActorAnimation(845);  			disableObject(3);  			inventory->add(0x52);  			inventory->remove(0x51); @@ -955,7 +955,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		playSound(76, 55);  		playSound(76, 59);  		playSound(76, 63); -		playAnimation(873); +		playActorAnimation(873);  		moveTo(240, 163, 4);  		displayMessage(0x5837);  		playSound(77, 2); @@ -969,7 +969,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  	case 0x7ce5: //put spring on the solid ground  		playSound(5, 2); -		playAnimation(840); +		playActorAnimation(840);  		setOns(1, 0x61);  		inventory->remove(0x50);  		disableObject(2); @@ -981,7 +981,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  			playSound(5, 2);  			playSound(57, 12);  			playSound(70, 19); -			playAnimation(828); +			playActorAnimation(828);  			moveTo(262, 160, 1, true);  			disableObject(4);  			disableObject(3); @@ -1013,7 +1013,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  			displayMessage(0x5632);  		} else {  			playSound(5, 6); -			playAnimation(834, 0, true); +			playActorAnimation(834, true);  			playAnimation(835, 1, true);  			waitAnimation(); @@ -1027,8 +1027,8 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  	case 0x7e4f: //giving magazine to captain  		playSound(5, 3);  		Dialog::show(scene, 0x66c0); -		playAnimation(852, 0, true); -		playAnimation(853, 0, true); +		playActorAnimation(852, true); +		playActorAnimation(853, true);  		displayMessage(0x5742);  		displayMessage(0x5757);  		displayMessage(0x5770); @@ -1036,7 +1036,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		displayMessage(0x5799);  		playAnimation(856, 1);  		playSound(5, 3); -		//playAnimation(854); +		//playActorAnimation(854);  		Dialog::show(scene, 0x66fe);  		playAnimation(855, 1);  		moveTo(30, 181, 0); @@ -1049,7 +1049,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  	case 0x7fbd: //using bird & bartender  		playSound(5, 3); -		playAnimation(876); +		playActorAnimation(876);  		setOns(1, 0);  		playAnimation(877, 2);  		playAnimation(880, 2, true); @@ -1066,7 +1066,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  	case 0x8047:  		playSound(32, 5); -		playAnimation(881); +		playActorAnimation(881);  		setOns(2, 0x6b);  		inventory->remove(0x56);  		inventory->add(0x55); @@ -1081,7 +1081,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  			displayMessage(0x53DD);  			playSound(5, 2);  			playSound(5, 18); -			playAnimation(810, false); +			playActorAnimation(810);  			Dialog::show(scene, 0x60BF);  			SET_FLAG(0xDBDA, 1);  		} @@ -1090,7 +1090,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  	case 0x80c3: //show kaleydoscope to the guard  		Dialog::show(scene, 0x6811, 809);  		playSound(5, 3); -		playAnimation(849, 0, true); +		playActorAnimation(849, true);  		playAnimation(851, 1, true);  		waitAnimation(); @@ -1110,7 +1110,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		} else {  			SET_FLAG(0xDB99, 1);  			playSound(57, 6); -			playAnimation(536); +			playActorAnimation(536);  			Dialog::show(scene, 0x30c3);  			inventory->add(0x8);  		} @@ -1136,7 +1136,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  	case 0x5458: {  		setOns(2, 0);  		playSound(34, 7); -		playAnimation(535); +		playActorAnimation(535);  		inventory->add(11);  		disableObject(1); @@ -1156,7 +1156,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		setOns(1, 0);  		setOns(3, 0);  		playSound(33, 6); -		playAnimation(534); +		playActorAnimation(534);  		inventory->add(10);  		disableObject(2);  		setOns(1, 10); @@ -1175,7 +1175,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  	case 0x5502:  		setOns(0, 0);  		loadScene(15, 115, 180, 1); -		playAnimation(568); +		playActorAnimation(568);  		playMusic(6);  		return true; @@ -1195,7 +1195,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  	case 0x563b:  		playSound(5, 10);  		setOns(1, 0); -		playAnimation(561); +		playActorAnimation(561);  		inventory->add(26);  		disableObject(6);  		return true; @@ -1203,7 +1203,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  	case 0x56f6:  		playSound(32, 7);  		setOns(1, 0); -		playAnimation(626); +		playActorAnimation(626);  		disableObject(12);  		inventory->add(45);  		displayMessage(0x3b04); @@ -1211,7 +1211,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  	case 0x5756://Open car door  		playSound(11, 4); -		playAnimation(514); +		playActorAnimation(514);  		setOns(4, 8);  		setOns(2, 5);  		enableObject(14); @@ -1222,12 +1222,12 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  	case 0x5805://Enter basketball house  		playSound(70, 6); -		playAnimation(513); +		playActorAnimation(513);  		loadScene(22, 51, 180, 2);  		return true;  	case 0x5832://Ring doorbell -		playAnimation(509); +		playActorAnimation(509);  		displayMessage(0x5dce);  		return true; @@ -1240,7 +1240,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		disableObject(14);  		setOns(4,0);  		playSound(5, 7); -		playAnimation(521); +		playActorAnimation(521);  		setOns(4, 0);  		inventory->add(0x6);  		return true; @@ -1249,12 +1249,12 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		SET_FLAG(0xDB94, 1);  		playSound(6, 1);  		setOns(3, 6); -		playAnimation(515); +		playActorAnimation(515);  		return true;  	case 0x593e://Enter annes house  		playSound(89, 4); -		playAnimation(980); +		playActorAnimation(980);  		loadScene(23, 76, 199, 1);  		if (CHECK_FLAG(0xDBEE, 1))   			playMusic(7); @@ -1277,7 +1277,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		playSound(52, 18);  		playSound(52, 21);  		playSound(52, 25); -		playAnimation(601); +		playActorAnimation(601);  		moveTo(230, 179, 3);  		if (!CHECK_FLAG(0xDBA4, 1))  			displayMessage(0x37ea); //it's kinda dark here @@ -1292,14 +1292,14 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  			displayMessage(0x3c16);  		} else if (!CHECK_FLAG(0xDBA3, 1)) {//Dog has bone  			playSound(28, 3); -			playAnimation(596); +			playActorAnimation(596);  			setOns(1, 30);  			SET_FLAG(0xDBA3, 1);  			enableObject(8);  		} else {  			setOns(1, 0);  			playSound(4, 4); -			playAnimation(597); +			playActorAnimation(597);  			SET_FLAG(0xDBA3, 0);  			disableObject(8);  			displayMessage(0x37b8); @@ -1317,13 +1317,13 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		Dialog::show(scene, 0x2dc2);  		moveRel(0, -12, 0);  		playSound(34, 5); -		playAnimation(607); +		playActorAnimation(607);  		setOns(0, 0); -		playAnimation(608); -		playAnimation(609); -		playAnimation(610); +		playActorAnimation(608); +		playActorAnimation(609); +		playActorAnimation(610);  		playSound(5, 25); -		playAnimation(611); +		playActorAnimation(611);  		moveTo(16, scene->getPosition().y, 4);  		inventory->add(38);  		disableObject(12); @@ -1341,7 +1341,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  				Dialog::show(scene, 0x15a0); //can I search your drawers?  			playSound(66); -			playAnimation(631); +			playActorAnimation(631);  			inventory->add(47);  			SET_FLAG(0xDBA7, 1);  		} @@ -1353,7 +1353,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  			disableObject(7);  			playSound(32);  			setOns(0, 0); -			playAnimation(520); +			playActorAnimation(520);  		} else {  			Dialog::pop(scene, 0xDACE);  		} @@ -1361,7 +1361,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  	case 0x5cf0://Exit basketball house  		playSound(88, 5); -		playAnimation(981); +		playActorAnimation(981);  		loadScene(20, 161, 165);  		return true; @@ -1369,7 +1369,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		if (CHECK_FLAG(0xDB92, 1)) {  			setLan(2, 0);  			playSound(32); -			playAnimation(508); +			playActorAnimation(508);  			disableObject(13);  			inventory->add(7);  		} else { @@ -1391,16 +1391,16 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  			SET_FLAG(0xDBEE, 1);  			for(byte i = 3; i <= 17; i += 2)  				playSound(56, i); -			playAnimation(525); +			playActorAnimation(525);  			for(byte i = 1; i <= 13; i += 2)  				playSound(56, i);  			playSound(40, 15);  			playSound(40, 18);  			playSound(40, 22); -			playAnimation(526); +			playActorAnimation(526);  			playSound(54, 1);  			playSound(55, 5); -			playAnimation(527); +			playActorAnimation(527);  			Dialog::show(scene, 0x2219);  			strcpy(scene->getObject(2)->name, (const char *)res->dseg.ptr(0x9820));  		} @@ -1429,7 +1429,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		if (CHECK_FLAG(0xDBA4, 1)) {  			setOns(0, 0);  			playSound(56, 10); -			playAnimation(599); +			playActorAnimation(599);  			inventory->add(37);  			disableObject(2);  		} else @@ -1463,7 +1463,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		playSound(52, 25);  		playSound(52, 28);  		playSound(52, 32); -		playAnimation(600); +		playActorAnimation(600);  		loadScene(21, 297, 178, 3);  		return true; @@ -1473,7 +1473,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  			return true;  		}  		playSound(71, 6); -		playAnimation(598); +		playActorAnimation(598);  		loadScene(24, scene->getPosition());  		setOns(2, 0);  		setLan(1, 0); @@ -1528,7 +1528,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  			setOns(3, 36);  			playSound(56, 7);  			playSound(5, 15); -			playAnimation(613); +			playActorAnimation(613);  			inventory->add(39);  			disableObject(5);  			displayMessage(0x387c); @@ -1541,7 +1541,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  			setOns(2, 35);  			playSound(63, 8);  			playSound(24, 10); -			playAnimation(612); +			playActorAnimation(612);  			inventory->add(40);  			disableObject(6);  		} else  @@ -1558,13 +1558,13 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  	case 0x62d0://Get bone from under rock  		playSound(26, 6);  		setOns(0, 0); -		playAnimation(594); +		playActorAnimation(594);  		setOns(0, 29);  		displayMessage(0x463c);  		disableObject(1);  		inventory->add(36);  		playSound(5, 3); -		playAnimation(595); +		playActorAnimation(595);  		displayMessage(0x3790);  		return true; @@ -1579,7 +1579,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  	case 0x63ea:  		playSound(5, 10);  		setOns(0, 0); -		playAnimation(640); +		playActorAnimation(640);  		inventory->add(50);  		disableObject(6);  		return true; @@ -1592,7 +1592,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  			SET_FLAG(0xdb93, 1);  			playSound(30, 26);  			displayMessage(0x3dc6); -			playAnimation(500, 0, true); +			playActorAnimation(500, true);  			playAnimation(501, 1, true);  			waitAnimation();  			setOns(0, 1); @@ -1604,7 +1604,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  	case 0x6592: //Rake  		setOns(1, 0);  		playSound(18, 10); -		playAnimation(553); +		playActorAnimation(553);  		inventory->add(0x15);  		displayMessage(0x3605);	  		disableObject(11); @@ -1612,14 +1612,14 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  	case 0x66b5:  		playSound(89, 5); -		playAnimation(969); +		playActorAnimation(969);  		loadScene(33, 319, 181, 4);  		return true;  	case 0x6519://Sickle  		setOns(4, 0);  		playSound(5, 11); -		playAnimation(625); +		playActorAnimation(625);  		inventory->add(0x2c);  		disableObject(8);  		return true; @@ -1631,7 +1631,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		} else {  			SET_FLAG(0xdabb, 1);  			playSound(49, 3); -			playAnimation(548); +			playActorAnimation(548);  			inventory->add(0x11);  			displayMessage(0x35b2);  			return true; @@ -1640,14 +1640,14 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  	case 0x663c://Feather  		setOns(0, 0);  		playSound(5, 9); -		playAnimation(511); +		playActorAnimation(511);  		inventory->add(1);  		disableObject(15);  		return true;	  	case 0x667c:  		playSound(70, 4); -		playAnimation(972); +		playActorAnimation(972);  		loadScene(29, 160, 199, 1);  		return true; @@ -1658,7 +1658,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  	case 0x66e2:  		playSound(88, 4); -		playAnimation(970); +		playActorAnimation(970);  		loadScene(35, 160, 199, 1);  		return true; @@ -1673,7 +1673,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  			} else {  				displayMessage(0x4fb1);  				playSound(32, 6); -				playAnimation(717); +				playActorAnimation(717);  				inventory->add(66);  				SET_FLAG(0xDBCE, 1);  			} @@ -1716,7 +1716,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		if (CHECK_FLAG(0xDBCF, 1)) {  			playSound(89, 4); -			playAnimation(719); +			playActorAnimation(719);  			setOns(4, 67);  			++ *res->dseg.ptr(READ_LE_UINT16(res->dseg.ptr(0x6746 + (scene->getId() - 1) * 2)));  			disableObject(5); @@ -1725,7 +1725,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  			playSound(89, 4);  			playSound(89, 4);  			playSound(87, 45); -			playAnimation(718); +			playActorAnimation(718);  			displayMessage(0x4fcb); //fixme: move it to animation  			displayMessage(0x4fe2);  			SET_FLAG(0xDBCF, 1); @@ -1735,7 +1735,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  	case 0x71eb:  		setOns(2, 0);  		playSound(32, 7); -		playAnimation(710); +		playActorAnimation(710);  		inventory->add(62);  		disableObject(7);  		enableObject(8); @@ -1751,11 +1751,11 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		if (CHECK_FLAG(0xDBD0, 1)) {  			setOns(4, 69);  			playSound(32, 5); -			playAnimation(725); +			playActorAnimation(725);  			disableObject(12);  			inventory->add(69);  		} else { -			playAnimation(721); +			playActorAnimation(721);  			displayMessage(0x505e);  		}  		return true; @@ -1763,7 +1763,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  	case 0x721c:  		setOns(3, 0);  		playSound(32, 7); -		playAnimation(715); +		playActorAnimation(715);  		inventory->add(63);  		disableObject(9);  		return true; @@ -1772,7 +1772,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		setOns(1, 0);  		playSound(5, 42);  		displayMessage(0x4d02); -		playAnimation(697); +		playActorAnimation(697);  		inventory->add(56);  		disableObject(1);  		return true; @@ -1783,14 +1783,14 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  			//call 73e6  			playSound(71, 3); -			playAnimation(700); +			playActorAnimation(700);  		} else {  			SET_FLAG(0xdbc5, 1);  			//call 73e6  			playSound(71, 3); -			playAnimation(700);		 +			playActorAnimation(700);		  			playAnimation(CHECK_FLAG(0xDBC6, 0)? 701:702, 1); @@ -1802,7 +1802,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  	case 0x7381:  		playSound(5, 12); -		playAnimation(704); +		playActorAnimation(704);  		disableObject(2);  		inventory->add(58);  		return true; @@ -1818,7 +1818,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  			playSound(26, 37);  			playSound(26, 43);  			playSound(52, 34); -			playAnimation(698); +			playActorAnimation(698);  			setOns(0, 52);  			setOns(2, 61);  			Dialog::show(scene, 0x38b6); @@ -1835,7 +1835,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  			Dialog::show(scene, 0x3aca);  			playSound(61, 5);  			playSound(5, 14); -			playAnimation(705); +			playActorAnimation(705);  			displayMessage(0x4dd3);  			inventory->add(59);  		} @@ -1844,7 +1844,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  	case 0x74d1:  		setOns(2, 0);  		playSound(5, 12); -		playAnimation(699); +		playActorAnimation(699);  		inventory->add(57);  		disableObject(11);  		return true; @@ -1853,10 +1853,10 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		if (CHECK_FLAG(0xDBD7, 1)) {  			if (CHECK_FLAG(0xDBD8, 1)) {  				playSound(88, 4); -				playAnimation(979); +				playActorAnimation(979);  				loadScene(37, 51, 183);  				Dialog::show(scene, 0x54ea, 768, 769); -				playAnimation(770, 0, true); +				playActorAnimation(770, true);  				playAnimation(771, 1, true);  				waitAnimation();  				Dialog::show(scene, 0x5523, 768, 769); @@ -1864,16 +1864,16 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  				playSound(56, 12);  				playSound(23, 20);  				playSound(75, 25); -				playAnimation(772); +				playActorAnimation(772); -				playAnimation(774, 0, true); +				playActorAnimation(774, true);  				playAnimation(773, 1, true);  				waitAnimation();  				setOns(0, 74);  				Dialog::show(scene, 0x5556, 775);  				playAnimation(776, 1);  				Dialog::show(scene, 0x55f7, 777, 778); -				playAnimation(779, 0, true); +				playActorAnimation(779, true);  				playAnimation(780, 1, true);  				waitAnimation(); @@ -1960,9 +1960,9 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  			playSound(46, 56);  			playSound(46, 85);  			playSound(46, 117); -			playAnimation(870); +			playActorAnimation(870);  			playSound(54, 15); -			playAnimation(871); +			playActorAnimation(871);  			SET_FLAG(0xDBE6, 1);  			setOns(1, 0x66);  			moveTo(224, 194, 0, true); @@ -1988,7 +1988,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		processCallback(0x505c);  		setOns(1, 0);  		playSound(5, 10); -		playAnimation(543); +		playActorAnimation(543);  		inventory->add(15);  		disableObject(9);  		return true; @@ -1999,7 +1999,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  				displayMessage(0x52f6);  			else {  				playSound(71, 4); -				playAnimation(796); +				playActorAnimation(796);  				setLan(1, 0);  				SET_FLAG(0xDBD8, 1);  			} @@ -2063,7 +2063,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		playSound(5, 2);  		playSound(5, 44);  		playAnimation(642, 1, true); -		playAnimation(641, 0, true); +		playActorAnimation(641, true);  		waitAnimation();  		Dialog::show(scene, 0x0aff, 529);  		Dialog::show(scene, 0x0ba0, 529); @@ -2080,7 +2080,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		playSound(5, 9);  		playSound(14, 19);  		playSound(5, 50); -		playAnimation(542); +		playActorAnimation(542);  		setOns(1, 15);  		disableObject(3);  		enableObject(9); @@ -2098,7 +2098,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		playSound(56, 144);  		playSound(56, 147);  		playAnimation(589, 1, true); -		playAnimation(588, 0, true); +		playActorAnimation(588, true);  		waitAnimation();  		displayMessage(0x367f);  		inventory->remove(34); @@ -2110,14 +2110,14 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		for(byte i = 16; i <= 28; i += 2)  			playSound(65, i);  		playSound(47, 33); -		playAnimation(620); +		playActorAnimation(620);  		for(byte i = 3; i <= 18; i += 3)  			playSound(56, i); -		playAnimation(621, 0, true); +		playActorAnimation(621, true);  		playAnimation(623, 1, true);  		waitAnimation();  		playSound(35); -		playAnimation(622, 0, true); +		playActorAnimation(622, true);  		playAnimation(624, 1, true);  		displayMessage(0x3afd);  		inventory->remove(43); @@ -2138,7 +2138,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		playSound(22, 102);  		playSound(26, 114);  		playSound(24, 124); -		playAnimation(562, 0, true); +		playActorAnimation(562, true);  		playAnimation(563, 1, true);  		waitAnimation(); @@ -2152,12 +2152,12 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		inventory->remove(32);  		playSound(37, 14);  		playSound(16, 17); -		playAnimation(564, 0, true); +		playActorAnimation(564, true);  		playAnimation(565, 2, true);  		waitAnimation();  		setOns(0, 24);  		playSound(39, 5); -		playAnimation(582); +		playActorAnimation(582);  		moveTo(63, 195, 1);  		playAnimation(571, 1);  		playAnimation(572, 1); @@ -2180,13 +2180,13 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  	case 0x84c7:  		playSound(20, 9); -		playAnimation(530); +		playActorAnimation(530);  		loadScene(16, 236, 95, 1);  		setOns(0, 9); -		playAnimation(531); +		playActorAnimation(531);  		playSound(36, 4); -		playAnimation(532); -		playAnimation(533); +		playActorAnimation(532); +		playActorAnimation(533);  		moveTo(236, 95, 1, true);  		playMusic(9);  		return true; @@ -2199,7 +2199,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		playSound(14, 14);  		playSound(14, 33);  		playSound(5, 43); -		playAnimation(643); +		playActorAnimation(643);  		setOns(2, 43);  		moveTo(236, 179, 3);  		inventory->remove(0x2c); @@ -2212,7 +2212,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  			playSound(25, 10);  			playSound(25, 14);  			playSound(25, 18); -			playAnimation(559); +			playActorAnimation(559);  			setOns(1, 23);  			SET_FLAG(0xDBB0, 2);  		} else  @@ -2224,7 +2224,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		playSound(12, 4);  		playSound(50, 20);  		playSound(50, 29); -		playAnimation(554); +		playActorAnimation(554);  		inventory->remove(19);  		inventory->add(22);  		return true; @@ -2233,7 +2233,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		playSound(5, 3);  		for (byte i = 12; i <= 24; i += 2)  			playSound(56, i); -		playAnimation(567); +		playActorAnimation(567);  		inventory->remove(12);  		inventory->add(33);  		return true; @@ -2249,7 +2249,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  			playSound(1, 29);  			playSound(1, 34);  			playAnimation(506, 1); -			playAnimation(504); +			playActorAnimation(504);  			setOns(0, 0);  			playSound(24, 2);  			playSound(22, 24); @@ -2259,7 +2259,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  			playSound(5, 43);  			playSound(61, 70);  			playSound(61, 91); -			playAnimation(505); +			playActorAnimation(505);  			displayMessage(0x3cfb);  			playAnimation(507, 1);  			setOns(0, 4); @@ -2308,7 +2308,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  	case 0x88de:  		playSound(5);  		Dialog::show(scene, 0x1B5F, 523); -		playAnimation(537); +		playActorAnimation(537);  		playAnimation(538, 1);  		Dialog::show(scene, 0x1BE0, 523);  		return true; @@ -2338,7 +2338,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  	case 0x8942:  		Dialog::show(scene, 0x2293);  		playSound(5, 10); -		playAnimation(540, 0, true); +		playActorAnimation(540, true);  		playAnimation(539, 1, true);  		waitAnimation();  		Dialog::show(scene, 0x24b1); @@ -2365,10 +2365,10 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		inventory->remove(23);  		playSound(5, 6);  		Dialog::show(scene, 0x2634); -		playAnimation(555, 0, true); +		playActorAnimation(555, true);  		playAnimation(556, 1, true);  		waitAnimation(); -		playAnimation(557, 0, true); +		playActorAnimation(557, true);  		playAnimation(558, 1, true);  		waitAnimation();		  		Dialog::show(scene, 0x2971); @@ -2377,7 +2377,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  	case 0x8a22:  		playSound(45, 16); -		playAnimation(560); +		playActorAnimation(560);  		inventory->remove(26);  		inventory->add(27);  		Dialog::show(scene, 0x1ecd); @@ -2390,19 +2390,19 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  			Dialog::show(scene, 0x2992);  			playSound(5, 3);  			playSound(5, 20); -			playAnimation(671, 0, true); +			playActorAnimation(671, true);  			playAnimation(670, 1, true);  			waitAnimation();  			playAnimation(672, 1);  			Dialog::show(scene, 0x2a00, 672);  			//fixme: skipped some text  			playSound(83, 12); -			playAnimation(673); +			playActorAnimation(673);  			loadScene(11, scene->getPosition());  			playSound(24, 31);  			playSound(24, 48);  			playSound(79, 50); -			playAnimation(674, 0, true); +			playActorAnimation(674, true);  			playAnimation(675, 1, true);  			waitAnimation();  			loadScene(28, 0, 167, 2); @@ -2418,9 +2418,9 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  	case 0x8b82: //use fan on laundry  		setOns(0, 0);  		playSound(5); -		playAnimation(602); +		playActorAnimation(602);  		displayMessage(0x464a); -		playAnimation(603); +		playActorAnimation(603);  		setOns(0, 27);  		SET_FLAG(0xDBA5, 1);  		return true; @@ -2428,7 +2428,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  	case 0x8bfc://Give bone to dog  		displayMessage(0x3c31);  		playSound(5, 3); -		playAnimation(657, 0, true); +		playActorAnimation(657, true);  		playAnimation(658, 1, true);  		waitAnimation(); @@ -2442,9 +2442,9 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  	case 0x8c6e://Use car jack on rock  		playSound(5, 3); -		playAnimation(592); +		playActorAnimation(592);  		playSound(1, 5); -		playAnimation(593); +		playActorAnimation(593);  		setOns(0, 28);  		disableObject(35);  		enableObject(1); @@ -2453,18 +2453,18 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  	case 0x8cc8://Cut bush with sickle  		playSound(5, 3); -		playAnimation(644); +		playActorAnimation(644);  		setOns(1, 45);  		playSound(56, 2);  		playSound(26, 4); -		playAnimation(645); +		playActorAnimation(645);  		playSound(56, 1);  		playSound(56, 6);  		playSound(26, 3);  		playSound(26, 8); -		playAnimation(646); +		playActorAnimation(646);  		playSound(5, 21); -		playAnimation(647); +		playActorAnimation(647);  		SET_FLAG(0xdaca, 1);  		inventory->remove(0x2e);  		disableObject(2); @@ -2473,14 +2473,14 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  	case 0x8d57:  		playSound(5, 2);  		playSound(15, 12); -		playAnimation(638); +		playActorAnimation(638);  		inventory->remove(48);  		//fixme: add time challenge here!  		/*  		inventory->add(48);  		playSound(24, 26); -		playAnimation(650, 0, true); +		playActorAnimation(650, true);  		playAnimation(651, 2, true);  		waitAnimation();  		*/ @@ -2490,7 +2490,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		inventory->remove(49);  		//third part -		playAnimation(649); +		playActorAnimation(649);  		setOns(1, 47);  		for (byte i = 1; i <= 37; i += 4)  			playSound(68, i); @@ -2510,7 +2510,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  			playSound(56, i);  		playSound(2, 64);  		playSound(3, 74); -		playAnimation(516, 0, true); +		playActorAnimation(516, true);  		playAnimation(517, 2, true);  		playAnimation(518, 3, true);  		waitAnimation(); @@ -2523,7 +2523,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  	case 0x8fc8:  		displayMessage(0x3b2f);  		playSound(5, 3); -		playAnimation(627, 0, true); +		playActorAnimation(627, true);  		playAnimation(629, 1, true);  		waitAnimation();  		playSound(41, 10); @@ -2531,14 +2531,14 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		playSound(55, 52);  		if (CHECK_FLAG(0xDBA8, 1)) {  			setLan(2, 0); -			playAnimation(628, 0, true); +			playActorAnimation(628, true);  			playAnimation(634, 1, true);  			waitAnimation();  			disableObject(4);  			displayMessage(0x3b6c);  			SET_FLAG(0xDBA9, 1);  		} else { -			playAnimation(628, 0, true); +			playActorAnimation(628, true);  			playAnimation(630, 1, true);  			waitAnimation();  			displayMessage(0x3b59); @@ -2552,10 +2552,10 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  			playSound(5, 11);  			playSound(49, 21);  			moveTo(scene->getPosition().x, 99, 0); -			playAnimation(632); +			playActorAnimation(632);  			setOns(5, 40);  			moveTo(239, 139, 0, true); -			playAnimation(633); +			playActorAnimation(633);  			SET_FLAG(0xDBA8, 1);  			inventory->remove(47);  			if (!CHECK_FLAG(0xDBAA, 1)) { @@ -2584,7 +2584,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		playSound(24, 29);  		playSound(23, 21);  		playSound(74, 25); -		playAnimation(716); +		playActorAnimation(716);  		setOns(1, 66);  		SET_FLAG(0xDBCD, 1);  		return true; @@ -2594,7 +2594,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  			return true;  		playSound(5, 3);  		playSound(86, 11); -		playAnimation(720); +		playActorAnimation(720);  		inventory->add(68);  		inventory->remove(55);  		return true; @@ -2602,14 +2602,14 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  	case 0x93d5: //burning sheet + plate  		setOns(4, 0);  		playSound(87, 7); -		playAnimation(722); +		playActorAnimation(722);  		playSound(5, 3);  		playSound(88, 12);  		playSound(87, 24); -		playAnimation(723); +		playActorAnimation(723);  		displayMessage(0x502b);  		playSound(89, 4); -		playAnimation(724); +		playActorAnimation(724);  		setOns(4, 68);  		displayMessage(0x503e);  		inventory->remove(68); @@ -2637,7 +2637,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  	//very last part of the game:   	case 0x671d:  		moveTo(153, 163, 4); -		playAnimation(973); +		playActorAnimation(973);  		if (CHECK_FLAG(0xDBC1, 0)) {  			SET_FLAG(0xDBC1, random.getRandomNumber(5) + 1);  		} @@ -2646,13 +2646,13 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  	case 0x67a6:  		loadScene(29, 149, 163, 1); -		playAnimation(974); +		playActorAnimation(974);  		moveTo(160, 188, 0);  		return true;  	case 0x6805:  		processCallback(0x6849); -		playAnimation(694); +		playActorAnimation(694);  		playSound(15, 8);  		playAnimation(693, 1);  		setOns(6, 0); @@ -2677,7 +2677,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		} else {  			playSound(49, 5);  			playSound(49, 17); -			playAnimation(691); +			playActorAnimation(691);  			if (!processCallback(0x68e6)) {  				if (!CHECK_FLAG(0xDBC0, 1)) {  					displayMessage(0x4c61); @@ -2714,13 +2714,13 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  			return true;  		}  		if (!CHECK_FLAG(0xDBC3, 1)) { -			playAnimation(695); +			playActorAnimation(695);  			Dialog::show(scene, 0x386a);  			SET_FLAG(0xDBC3, 1);  		}  		playSound(5, 11); -		playAnimation(696); +		playActorAnimation(696);  		inventory->add(55);  		return true; @@ -2728,13 +2728,13 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		if (CHECK_FLAG(0xDBB7, 1)) {  			setOns(0, 0);  			playSound(67, 4); -			playAnimation(678); +			playActorAnimation(678);  			SET_FLAG(0xDBB7, 0);  		} else if (CHECK_FLAG(0xDBB8, 1)) {  			processCallback(0x6b86);  		} else {  			playSound(66, 4); -			playAnimation(677); +			playActorAnimation(677);  			setOns(0, 53);  			SET_FLAG(0xDBB7, 1);  		} @@ -2744,7 +2744,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		if (CHECK_FLAG(0xDBB8, 1)) {  			setOns(1, 0);  			playSound(67, 4); -			playAnimation(680); +			playActorAnimation(680);  			SET_FLAG(0xDBB8, 0);  		} else if (CHECK_FLAG(0xDBB8, 1)) {  			processCallback(0x6b86); @@ -2752,7 +2752,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  			processCallback(0x6b86);  		} else {  			playSound(66, 5); -			playAnimation(679); +			playActorAnimation(679);  			setOns(1, 54);  			SET_FLAG(0xDBB8, 1);  		} @@ -2762,13 +2762,13 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		if (CHECK_FLAG(0xDBB9, 1)) {  			setOns(2, 0);  			playSound(67, 5); -			playAnimation(682); +			playActorAnimation(682);  			SET_FLAG(0xDBB9, 0);  		} else if (CHECK_FLAG(0xDBB8, 1)) {  			processCallback(0x6b86);  		} else {  			playSound(67, 5); -			playAnimation(681); +			playActorAnimation(681);  			setOns(2, 55);  			SET_FLAG(0xDBB9, 1);  		} @@ -2778,11 +2778,11 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		if (CHECK_FLAG(0xDBBA, 1)) {  			setOns(3, 0);  			playSound(67, 4); -			playAnimation(684); +			playActorAnimation(684);  			SET_FLAG(0xDBBA, 0);  		} else if (!CHECK_FLAG(0xDBBB, 1)) {  			playSound(66, 4); -			playAnimation(683); +			playActorAnimation(683);  			setOns(3, 56);  			SET_FLAG(0xDBBA, 1);  		} else @@ -2793,7 +2793,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		if (CHECK_FLAG(0xDBBB, 1)) {  			setOns(4, 0);  			playSound(67, 4); -			playAnimation(686); +			playActorAnimation(686);  			SET_FLAG(0xDBBB, 0);  		} else if (CHECK_FLAG(0xDBBA, 1)) {  			processCallback(0x6b86); @@ -2801,7 +2801,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  			processCallback(0x6b86);  		} else {  			playSound(66, 5); -			playAnimation(685); +			playActorAnimation(685);  			setOns(4, 57);  			SET_FLAG(0xDBBB, 1);  		} @@ -2811,13 +2811,13 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		if (CHECK_FLAG(0xdbbc, 1)) {  			setOns(5, 0);  			playSound(67, 5); -			playAnimation(688); +			playActorAnimation(688);  			SET_FLAG(0xdbbc, 0);  		} else if (CHECK_FLAG(0xdbbc, 1)) {  			processCallback(0x6b86);  		} else {  			playSound(66, 6); -			playAnimation(687); +			playActorAnimation(687);  			setOns(5, 58);  			SET_FLAG(0xDBBC, 1);  		} @@ -2839,20 +2839,20 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  			displayMessage(0x5326); //i'd better catch johnny  		} else {  			playSound(88); -			playAnimation(808); +			playActorAnimation(808);  			loadScene(36, 41, 195);  		}  		return true;  	case 0x6bad:  		playSound(80, 4); -		playAnimation(971); +		playActorAnimation(971);  		loadScene(32, 139, 199, 1);  		return true;  	case 0x6c45:  		playSound(89, 6); -		playAnimation(CHECK_FLAG(0xDBEF, 1)?985: 806); +		playActorAnimation(CHECK_FLAG(0xDBEF, 1)?985: 806);  		loadScene(34, 40, 133, 2);  		return true; @@ -2865,13 +2865,13 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  	case 0x6c9d: //getting jar  		setOns(0, 71);  		playSound(32, 5); -		playAnimation(732); +		playActorAnimation(732);  		disableObject(2);  		inventory->add(72);  		return true;  	case 0x6cc4: -		playAnimation(754); +		playActorAnimation(754);  		displayMessage(0x517b); //position 30430  		playMusic(3); @@ -2879,7 +2879,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		playAnimation(750, 2);  		Dialog::show(scene, 0x4f50, 751, 529); -		playAnimation(752, 0, true); +		playActorAnimation(752, true);  		playAnimation(753, 1, true);  		waitAnimation();  		Dialog::show(scene, 0x5168, 751, 529); @@ -2889,28 +2889,28 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		playSound(75, 13);  		playSound(32, 22); -		playAnimation(735, 0, true); +		playActorAnimation(735, true);  		playAnimation(736, 1, true);  		waitAnimation();  		Dialog::show(scene, 0x46cf, 737, 738);  		playSound(32, 1); -		playAnimation(739, 0, true); +		playActorAnimation(739, true);  		playAnimation(740, 1, true);  		waitAnimation();  		Dialog::show(scene, 0x4772, 733, 734); -		playAnimation(742, 0, true); +		playActorAnimation(742, true);  		playAnimation(741, 1, true);  		waitAnimation();  		Dialog::show(scene, 0x481c, 733, 743); -		playAnimation(744, 0, true); +		playActorAnimation(744, true);  		playAnimation(745, 1, true);  		waitAnimation();  		Dialog::show(scene, 0x4873, 733, 734); -		playAnimation(746, 0, true); +		playActorAnimation(746, true);  		playAnimation(747, 1, true);  		waitAnimation();  		Dialog::show(scene, 0x4da5, 734); @@ -2921,7 +2921,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		playMusic(10);  		loadScene(32, scene->getPosition());  		playSound(26, 10); -		playAnimation(755); +		playActorAnimation(755);  		moveRel(0, 0, 3);  		Dialog::show(scene, 0x51bf); @@ -2945,7 +2945,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  	case 0x6f75: //hiding in left corner  		moveRel(0, 0, 3); -		playAnimation(756); +		playActorAnimation(756);  		playAnimation(758, 1);  		Dialog::show(scene, 0x52e6, 759);  		playSound(40, 5); @@ -2968,7 +2968,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		playAnimation(762, 1);  		loadScene(32, scene->getPosition());  		setOns(2, 0); -		playAnimation(757); +		playActorAnimation(757);  		moveRel(0, 0, 1);  		displayMessage(0x51e7);  		enableObject(8); @@ -2989,14 +2989,14 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		if (CHECK_FLAG(0xDBD5, 1)) {  			displayMessage(0x51a7);  		} else { -			playAnimation(977); +			playActorAnimation(977);  			displayMessage(0x5511);  		}  		return true;  	case 0x7096:  		playSound(32, 5); -		playAnimation(767); +		playActorAnimation(767);  		setOns(1, 0);  		inventory->add(73);  		disableObject(8); @@ -3004,7 +3004,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  	case 0x7291:  		playSound(89, 3); -		playAnimation(975); +		playActorAnimation(975);  		loadScene(31, 298, 177, 4);  		return true; @@ -3014,7 +3014,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		} else {  			playSound(79, 6);  			playSound(84, 9); -			playAnimation(801); +			playActorAnimation(801);  			if (CHECK_FLAG(0xDBD6, 1)) {  				displayMessage(0x538d);  				SET_FLAG(0xDBD6, 2); @@ -3026,7 +3026,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  	case 0x7309:  		playSound(66, 5);  		playSound(67, 11); -		playAnimation(976); +		playActorAnimation(976);  		displayMessage(0x5955);  		return true; @@ -3050,7 +3050,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  			if (!CHECK_FLAG(0xDBBF, 1)) {  				displayMessage(0x4c32);  				playSound(5, 11); -				playAnimation(690); +				playActorAnimation(690);  				inventory->add(53);  				SET_FLAG(0xDBBF, 1);  			} @@ -3085,7 +3085,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  			if (!CHECK_FLAG(0xDBBE, 1)) {  				displayMessage(0x4c0f); //there's dictaphone inside!  				playSound(5, 12); -				playAnimation(689); +				playActorAnimation(689);  				inventory->add(52);  				SET_FLAG(0xDBBE, 1);  			} @@ -3121,7 +3121,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		if (CHECK_FLAG(0xDBD2, 0) || CHECK_FLAG(0xDBD3, 0) || CHECK_FLAG(0xDBD4, 0))  			return true;  		playSound(89, 2); -		playAnimation(731); +		playActorAnimation(731);  		setOns(0, 70);  		setLan(1, 0);  		disableObject(1); @@ -3132,7 +3132,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  	case 0x90bc: //handle on the hole  		playSound(5, 3);  		playSound(6, 9); -		playAnimation(807); +		playActorAnimation(807);  		setOns(0, 83);  		inventory->remove(73);  		disableObject(2); @@ -3159,7 +3159,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		playSound(5, 39);  		displayMessage(0x5124); //fixme: async! delay 35? position 40388 -		playAnimation(728); +		playActorAnimation(728);  		Dialog::show(scene, 0x3d17);  		SET_FLAG(0xDBD2, 1);  		processCallback(0x9175); @@ -3176,7 +3176,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		displayMessage(0x5138);  		playSound(5, 3);  		playSound(5, 23); -		playAnimation(729); +		playActorAnimation(729);  		Dialog::show(scene, 0x3d70);  		SET_FLAG(0xDBD3, 1);  		processCallback(0x9175); @@ -3193,7 +3193,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		displayMessage(0x5161);  		playSound(5, 3);  		playSound(5, 25); -		playAnimation(730); +		playActorAnimation(730);  		Dialog::show(scene, 0x3dd6);  		SET_FLAG(0xDBD4, 1);  		processCallback(0x9175); @@ -3203,7 +3203,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		setOns(2, 64);  		playSound(5, 3);  		playSound(52, 10); -		playAnimation(711); +		playActorAnimation(711);  		moveRel(0, 0, 4);  		Dialog::show(scene, 0x3b21);  		moveTo(300, 190, 4); @@ -3232,7 +3232,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  	case 0x9472:  		playSound(5, 4);  		playSound(19, 14); -		playAnimation(793); +		playActorAnimation(793);  		displayMessage(0x5218);  		inventory->remove(60);  		SET_FLAG(0xDBD6, 1); @@ -3241,7 +3241,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  	case 0x9449: //meat + stew  		playSound(5, 4);  		playSound(63, 12); -		playAnimation(726); +		playActorAnimation(726);  		displayMessage(0x508a);  		inventory->remove(69);  		inventory->add(70); @@ -3251,7 +3251,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		if (CHECK_FLAG(0xDBD6, 2)) {  			playSound(5, 4);  			playSound(5, 25); -			playAnimation(802); +			playActorAnimation(802);  			displayMessage(0x5272);  			inventory->remove(62);  			inventory->add(74); @@ -3266,7 +3266,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  			playSound(5, 3);  			playSound(5, 18);  			playSound(13, 12); -			playAnimation(803); +			playActorAnimation(803);  			disableObject(7);  			inventory->remove(70);  			inventory->add(71); @@ -3277,14 +3277,14 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  	case 0x951b:  		playSound(5, 4);  		playSound(5, 22); -		playAnimation(804); +		playActorAnimation(804);  		displayMessage(0x528b);  		return true;  	case 0x9537: //using remote on VCR  		playSound(5, 3);  		playSound(5, 16); -		playAnimation(703); +		playActorAnimation(703);  		if (CHECK_FLAG(0xDBC8, 1)) {  			if (CHECK_FLAG(0xDBC6, 0)) {  				if (CHECK_FLAG(0xDBC5, 1)) { //tv on @@ -3318,7 +3318,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  				playSound(5, 3);  				playSound(5, 24);  				playSound(90, 18); -				playAnimation(707); +				playActorAnimation(707);  				inventory->add(61);  				SET_FLAG(0xDBCA, 1);  			} @@ -3334,7 +3334,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  				displayMessage(0x4e05);  				playSound(5, 3);  				playSound(5, 27); -				playAnimation(708); +				playActorAnimation(708);  				SET_FLAG(0xDBCB, 1);  			}  		} else  @@ -3345,7 +3345,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  	case 0x95c8:  		playSound(5, 3);  		playSound(91, 12); -		playAnimation(706); +		playActorAnimation(706);  		inventory->remove(54);  		SET_FLAG(0xDBC8, 1);  		return true; @@ -3353,13 +3353,13 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  	case 0x9673:  		playSound(5, 3);  		playSound(24, 10); -		playAnimation(798); +		playActorAnimation(798);  		playSound(63, 11);  		playSound(19, 20);  		playAnimation(799, 1);  		moveTo(50, 170, 1);  		playAnimation(800, 1); -		playAnimation(805); +		playActorAnimation(805);  		moveTo(50, 170, 3);  		displayMessage(0x5349);  		//moveTo(105, 157, 0, true); @@ -3368,22 +3368,22 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		Dialog::show(scene, 0x8409, 938);  		playAnimation(939, 1, true); -		playAnimation(942, 0, true); +		playActorAnimation(942, true);  		waitAnimation();  		playAnimation(939, 1, true);  		playAnimation(935, 1, true); -		playAnimation(943, 0, true); +		playActorAnimation(943, true);  		waitAnimation();  		playAnimation(940, 1, true);  		playAnimation(936, 1, true); -		playAnimation(944, 0, true); +		playActorAnimation(944, true);  		waitAnimation();  		playAnimation(941, 1, true);  		playAnimation(937, 1, true); -		playAnimation(945, 0, true); +		playActorAnimation(945, true);  		waitAnimation();  		playAnimation(945, 1); @@ -3393,7 +3393,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		playSound(24, 7);  		playAnimation(948, 1, true); -		playAnimation(947, 0, true); +		playActorAnimation(947, true);  		waitAnimation();  		loadScene(40, 198, 186, 1); @@ -3412,7 +3412,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		playSound(40, 14);  		playAnimation(951, 1, true); -		playAnimation(952, 0, true); +		playActorAnimation(952, true);  		waitAnimation();  		playMusic(11); @@ -3440,25 +3440,25 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  				playSound(5, 3);  				playSound(38, 16);  				playSound(38, 22); -				playAnimation(614); +				playActorAnimation(614);  				playSound(5, 3);  				playSound(44, 10);  				playSound(20, 26); -				playAnimation(615); +				playActorAnimation(615);  				loadScene(17, p);  				playSound(64, 7);  				playSound(64, 21);  				playSound(64, 42);  				playSound(64, 63); -				playAnimation(617); +				playActorAnimation(617);  				//another time challenge!   				if (true) {  					playSound(64, 7); -					playAnimation(618); +					playActorAnimation(618);  					disableObject(5);  					setOns(0, 0);  					playSound(31); -					playAnimation(619); +					playActorAnimation(619);  					inventory->add(42);  					displayMessage(0x3989);  				} @@ -3473,7 +3473,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  			playSound(26, 19);  			for(uint i = 0; i < 8; ++i)  				playSound(26, 30 + i * 11); -			playAnimation(661); +			playActorAnimation(661);  			//cutscene 3c80 at 30484  			playSound(56, 10);  			playSound(56, 21); @@ -3483,7 +3483,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  				playSound(26, 117 + i * 11);  			moveRel(-20, 0, 0, true); -			playAnimation(662, 0, true); +			playActorAnimation(662, true);  			playAnimation(663, 2, true);  			waitAnimation();  			setOns(1, 49); @@ -3497,7 +3497,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  			playSound(19, 27);  			playSound(24, 38);  			playSound(23, 44); -			playAnimation(664); +			playActorAnimation(664);  			playAnimation(665, 2);  			displayMessage(0x3cbc);  			displayMessage(0x3cea); @@ -3522,12 +3522,12 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  			moveTo(102, 195, 2);  			playSound(5, 3);  			playSound(75, 12); -			playAnimation(794); +			playActorAnimation(794);  			setLan(1, 0);  			//scene->getWalkbox(0)->rect.left = 0;  			//scene->getWalkbox(0)->rect.top = 0;  			moveTo(151, 197, 2); -			playAnimation(795); +			playActorAnimation(795);  			moveTo(186, 198, 2, true);  			moveTo(220, 198, 4);  			//scene->getWalkbox(0)->rect.top = 200; @@ -3569,7 +3569,7 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		case 0x9d90:  			loadScene(34, scene->getPosition());  			Dialog::show(scene, 0x6f60, 987, 986); -			playAnimation(990, 0, true); +			playActorAnimation(990, true);  			playAnimation(991, 1, true);  			waitAnimation();  			return true; @@ -3601,14 +3601,14 @@ bool TeenAgentEngine::processCallback(uint16 addr) {  		case 0x9ec3:  			loadScene(29, scene->getPosition()); -			playAnimation(901, 0, true); +			playActorAnimation(901, true);  			playAnimation(900, 1, true);  			waitAnimation();  			Dialog::show(scene, 0x7161, 902, 903);  			for (byte i = 3; i <= 9; i += 2)  				playSound(56, i); -			playAnimation(905, 0, true); +			playActorAnimation(905, true);  			playAnimation(904, 1, true);  			Dialog::show(scene, 0x71c6, 902, 903);  			return true; diff --git a/engines/teenagent/dialog.cpp b/engines/teenagent/dialog.cpp index b1794dd5ce..c317d0b581 100644 --- a/engines/teenagent/dialog.cpp +++ b/engines/teenagent/dialog.cpp @@ -58,13 +58,13 @@ void Dialog::show(Scene * scene, uint16 addr, uint16 animation, uint16 actor_ani  					if (animation != 0) {  						SceneEvent e(SceneEvent::PlayAnimation);  						e.animation = animation; -						e.color = 0x84; //4th slot, async animation +						e.color = 0x41;  						scene->push(e);  					}  					if (actor_animation != 0) {  						SceneEvent e(SceneEvent::PlayAnimation);  						e.animation = actor_animation; -						e.color = 0x80; //1st slot, async animation +						e.color = 0x40;  						scene->push(e);  					}  					SceneEvent e(SceneEvent::Message); diff --git a/engines/teenagent/scene.cpp b/engines/teenagent/scene.cpp index c9ebdcaf35..9a906c1f0d 100644 --- a/engines/teenagent/scene.cpp +++ b/engines/teenagent/scene.cpp @@ -99,12 +99,16 @@ void Scene::init(TeenAgentEngine *engine, OSystem * system) {  		error("invalid resource data");  	teenagent.load(s, Animation::TypeVaria); +	if (teenagent.empty()) +		error("invalid mark animation");  	s = res->varia.getStream(2);  	if (s == NULL)  		error("invalid resource data");  	teenagent_idle.load(s, Animation::TypeVaria); +	if (teenagent_idle.empty()) +		error("invalid mark animation");  }  byte *Scene::getOns(int id) { @@ -227,14 +231,23 @@ void Scene::init(int id, const Common::Point &pos) {  		_engine->music->load(res->dseg.get_byte(0xDB90));  } -void Scene::playAnimation(byte idx, uint id) { -	assert(idx < 5); +void Scene::playAnimation(byte idx, uint id, bool loop) { +	assert(idx < 4);  	Common::SeekableReadStream * s = Resources::instance()->loadLan(id + 1);  	if (s == NULL)  		error("playing animation %u failed", id);  	custom_animations[idx].load(s); -	custom_animations[idx].loop = idx == 4; //looping face animation. +	custom_animations[idx].loop = loop; +} + +void Scene::playActorAnimation(uint id, bool loop) { +	Common::SeekableReadStream * s = Resources::instance()->loadLan(id + 1); +	if (s == NULL) +		error("playing animation %u failed", id); + +	actor_animation.load(s); +	actor_animation.loop = loop;  }  void Scene::push(const SceneEvent &event) { @@ -250,7 +263,10 @@ bool Scene::processEvent(const Common::Event &event) {  			event.type == Common::EVENT_RBUTTONDOWN  		) {  			message.clear(); -			custom_animations[4].free(); +			for(int i = 0; i < 4; ++i) { +				if (custom_animations[i].loop) +					custom_animations[i].free(); +			}  			nextEvent();  			return true;  		} @@ -274,18 +290,34 @@ bool Scene::render(OSystem * system) {  		}  	} +	//render on +	if (on.pixels != NULL) { +		on.render(surface); +	} + +	bool got_any_animation = false; +  	for (int i = 3; i >= 0; --i) { -		Animation &a = animations[i]; -		Surface *s = a.currentFrame(); +		Animation *a = custom_animations + i; +		Surface *s = a->currentFrame(); +		if (s != NULL) { +			s->render(surface); +			busy = true; +			got_any_animation = true; +			continue; +		} + +		a = animations + i; +		s = a->currentFrame();  		if (s == NULL)  			continue;  		s->render(surface); -		if (a.id == 0) +		if (a->id == 0)  			continue; -		Object * obj = getObject(a.id); +		Object * obj = getObject(a->id);  		if (obj != NULL) {  			obj->rect.left = s->x;  			obj->rect.top = s->y; @@ -294,33 +326,34 @@ bool Scene::render(OSystem * system) {  			//obj->dump();  		}  	} - -	//render on -	if (on.pixels != NULL) { -		on.render(surface); -	} - -	bool hide_actor = false; -	bool got_any_animation = false; -	for (int i = 3; i >= 0; --i) { -		Animation &a = custom_animations[i]; -		Surface *s = a.currentFrame(); -		if (s == NULL) { -			if (!a.empty() && current_event.type == SceneEvent::PlayAnimation) { -				debug(0, "animation %u stopped", current_event.animation); -				a.free(); +	Surface * mark = actor_animation.currentFrame(); +	if (mark == NULL) { +		actor_animation.free(); + +		if (destination != position) { +			Common::Point dp(destination.x - position0.x, destination.y - position0.y); +			int o; +			if (ABS(dp.x) > ABS(dp.y)) +				o = dp.x > 0? Object::ActorRight: Object::ActorLeft; +			else +				o = dp.y > 0? Object::ActorDown: Object::ActorUp; +			 +			position.x = position0.x + dp.x * progress / progress_total; +			position.y = position0.y + dp.y * progress / progress_total; +			teenagent.render(surface, position, o, 1); +			++progress; +			if (progress >= progress_total) { +				position = destination; +				if (orientation == 0) +					orientation = o; //save last orientation  				nextEvent(); -				i = -1; -			} -			continue; -		} - -		s->render(surface); -		if (i == 0) { -			//debug(0, "animation active @%u,%u, hiding actor", s->x, s->y); -			hide_actor = true; -		} +			} else  +				busy = true; +		} else  +			teenagent.render(surface, position, orientation, 0); +	} else { +		mark->render(surface);  		busy = true;  		got_any_animation = true;  	} @@ -328,29 +361,6 @@ bool Scene::render(OSystem * system) {  	if (current_event.type == SceneEvent::WaitForAnimation && !got_any_animation) {  		nextEvent();  	} - -	if (destination != position) { -		Common::Point dp(destination.x - position0.x, destination.y - position0.y); -		int o; -		if (ABS(dp.x) > ABS(dp.y)) -			o = dp.x > 0? Object::ActorRight: Object::ActorLeft; -		else -			o = dp.y > 0? Object::ActorDown: Object::ActorUp; -			 -		position.x = position0.x + dp.x * progress / progress_total; -		position.y = position0.y + dp.y * progress / progress_total; -		teenagent.render(surface, position, o, 1); -		++progress; -		if (progress >= progress_total) { -			position = destination; -			if (orientation == 0) -				orientation = o; //save last orientation -			nextEvent(); -		} else  -			busy = true; -	} else if (!hide_actor) { -		teenagent.render(surface, position, orientation, 0); -	}  	busy |= processEventQueue();  	//if (!current_event.empty()) @@ -437,9 +447,14 @@ bool Scene::processEventQueue() {  		case SceneEvent::PlayAnimation: {  			debug(0, "playing animation %u", current_event.animation); -			playAnimation(current_event.color & 0x7f /*slot actually :)*/, current_event.animation); -			if (current_event.color & 0x80) -				nextEvent(); +			playAnimation(current_event.color & 0x3 /*slot actually :)*/, current_event.animation, (current_event.color & 0x40) != 0); +			current_event.clear(); +		} break; + +		case SceneEvent::PlayActorAnimation: { +			debug(0, "playing actor animation %u", current_event.animation); +			playActorAnimation(current_event.animation, (current_event.color & 0x40) != 0); +			current_event.clear();  		} break;  		case SceneEvent::PlayMusic: { diff --git a/engines/teenagent/scene.h b/engines/teenagent/scene.h index a81932c800..8829cf0dec 100644 --- a/engines/teenagent/scene.h +++ b/engines/teenagent/scene.h @@ -40,7 +40,7 @@ class Dialog;  struct SceneEvent {  	enum Type {  -		None, Message, Walk, PlayAnimation,  +		None, Message, Walk, PlayAnimation, PlayActorAnimation,   		LoadScene, SetOn, SetLan, PlayMusic,   		PlaySound, EnableObject, WaitForAnimation,  		Quit @@ -104,7 +104,6 @@ public:  	void displayMessage(const Common::String &str);  	void setOrientation(uint8 o) { orientation = o; } -	void playAnimation(byte idx, uint id);  	void push(const SceneEvent &event);  	bool processEvent(const Common::Event &event); @@ -122,6 +121,9 @@ public:  private:  	void loadOns();  	void loadLans(); + +	void playAnimation(byte idx, uint id, bool loop); +	void playActorAnimation(uint id, bool loop);  	byte palette[768];  	void setPalette(OSystem *system, const byte * palette, unsigned mul = 1); @@ -141,7 +143,7 @@ private:  	Surface on;  	Surface *ons;  	uint32 ons_count; -	Animation animations[4], custom_animations[5]; +	Animation actor_animation, animations[4], custom_animations[4];  	Actor teenagent, teenagent_idle;  	Common::Point position0, position, destination; diff --git a/engines/teenagent/teenagent.cpp b/engines/teenagent/teenagent.cpp index 909d69f6f6..3aaf33eed4 100644 --- a/engines/teenagent/teenagent.cpp +++ b/engines/teenagent/teenagent.cpp @@ -381,11 +381,21 @@ void TeenAgentEngine::playAnimation(uint16 id, byte slot, bool async) {  	SceneEvent event(SceneEvent::PlayAnimation);  	event.animation = id;  	event.color = slot; -	if (async) -		event.color |= 0x80;  	scene->push(event); +	if (!async) +		waitAnimation();  } +void TeenAgentEngine::playActorAnimation(uint16 id, bool async) { +	SceneEvent event(SceneEvent::PlayActorAnimation); +	event.animation = id; +	event.color = 0; +	scene->push(event); +	if (!async) +		waitAnimation(); +} + +  void TeenAgentEngine::loadScene(byte id, const Common::Point &pos, byte o) {  	loadScene(id, pos.x, pos.y, o);  } diff --git a/engines/teenagent/teenagent.h b/engines/teenagent/teenagent.h index 9728cbb002..31d29c045f 100644 --- a/engines/teenagent/teenagent.h +++ b/engines/teenagent/teenagent.h @@ -71,7 +71,8 @@ public:  	void moveTo(uint16 x, uint16 y, byte o, bool warp = false);  	void moveTo(Object * obj);  	void moveRel(int16 x, int16 y, byte o, bool warp = false); -	void playAnimation(uint16 id, byte slot = 0, bool async = false); +	void playActorAnimation(uint16 id, bool async = false); +	void playAnimation(uint16 id, byte slot, bool async = false);  	void loadScene(byte id, const Common::Point &pos, byte o = 0);  	void loadScene(byte id, uint16 x, uint16 y, byte o = 0);  	void setOns(byte id, byte value, byte scene_id = 0);  | 
