// function script Easter2009Object { if (@action == 1) goto L_TryPlace; set @result, $Easter2009 >> @object; set @result, @result & 1; if (@result == 1) goto L_GiveEgg; return; L_GiveEgg: set $Easter2009, $Easter2009 & ~(1 << @object); getitem "EasterEgg", 1; return; L_TryPlace: set @has, QUEST_Easter09_slots >> @object; set @has, @has & 1; if (@has == 1) goto L_AlreadyPlaced; set @has, $Easter2009 >> @object; set @has, @has & 1; if (@has == 0) goto L_DoPlace; set @result, 0; return; L_DoPlace: if (countitem("EasterEgg") > 0) goto L_DoPlace_Finish; mes "You don't have any eggs to place!"; close; L_DoPlace_Finish: delitem "EasterEgg", 1; set @has, 1 << @object; set QUEST_Easter09_slots, QUEST_Easter09_slots | @has; set $Easter2009, $Easter2009 | @has; set @result, 1; return; L_AlreadyPlaced: set @result, 2; return; } function script Easter2009Rock { if (QUEST_Easter09 == 1) goto L_PlaceEgg; mes "Do you want to examine this rock?"; next; menu "Yes", -, "No", close; set @action, 0; callfunc "Easter2009Object"; if (@result == 1) goto L_Found; mes "There is nothing strange about this rock."; close; L_Found: mes "You found an egg under the rock."; close; L_PlaceEgg: mes "Do you want to put an egg under this rock?"; next; menu "Yes", -, "No", close; set @action, 1; callfunc "Easter2009Object"; if (@result == 1) goto L_Placed; if (@result == 2) goto L_AlreadyPlaced; mes "Strange, there is already an egg under this rock."; close; L_Placed: mes "You placed an egg under the rock."; close; L_AlreadyPlaced: mes "You already placed an egg under this rock!"; close; } function script Easter2009Tree { if (QUEST_Easter09 == 1) goto L_PlaceEgg; mes "Do you want to examine this tree?"; next; menu "Yes", -, "No", close; set @action, 0; callfunc "Easter2009Object"; if (@result == 1) goto L_Found; mes "There is nothing strange about this tree."; close; L_Found: mes "You found an egg in the tree."; close; L_PlaceEgg: mes "Do you want to put an egg in this tree?"; next; menu "Yes", -, "No", close; set @action, 1; callfunc "Easter2009Object"; if (@result == 1) goto L_Placed; if (@result == 2) goto L_AlreadyPlaced; mes "Strange, there is already an egg in this tree."; close; L_Placed: mes "You placed an egg in the tree."; close; L_AlreadyPlaced: mes "You already placed an egg in this tree!"; close; } function script Easter2009Flower { if (QUEST_Easter09 == 1) goto L_PlaceEgg; mes "Do you want to examine these flowers?"; next; menu "Yes", -, "No", close; set @action, 0; callfunc "Easter2009Object"; if (@result == 1) goto L_Found; mes "There is nothing strange about these flowers."; close; L_Found: mes "You found an egg among the flowers."; close; L_PlaceEgg: mes "Do you want to hide an egg with these flowers?"; next; menu "Yes", -, "No", close; set @action, 1; callfunc "Easter2009Object"; if (@result == 1) goto L_Placed; if (@result == 2) goto L_AlreadyPlaced; mes "Strange, there is already an egg here."; close; L_Placed: mes "You placed an egg with the flowers."; close; L_AlreadyPlaced: mes "You already placed an egg among these flowers!"; close; } function script Easter2009Pot { if (QUEST_Easter09 == 1) goto L_PlaceEgg; mes "Do you want to examine this pot?"; next; menu "Yes", -, "No", close; set @action, 0; callfunc "Easter2009Object"; if (@result == 1) goto L_Found; mes "There is nothing strange about this pot."; close; L_Found: mes "You found an egg in the pot."; close; L_PlaceEgg: mes "Do you want to put an egg in this pot?"; next; menu "Yes", -, "No", close; set @action, 1; callfunc "Easter2009Object"; if (@result == 1) goto L_Placed; if (@result == 2) goto L_AlreadyPlaced; mes "Strange, there is already an egg in this pot."; close; L_Placed: mes "You placed an egg in the pot."; close; L_AlreadyPlaced: mes "You already placed an egg in this pot!"; close; } function script Easter2009Sign { if (QUEST_Easter09 == 1) goto L_PlaceEgg; mes "Do you want to examine this sign?"; next; menu "Yes", -, "No", close; set @action, 0; callfunc "Easter2009Object"; if (@result == 1) goto L_Found; mes "There is nothing strange about this sign."; close; L_Found: mes "You found an egg near the sign."; close; L_PlaceEgg: mes "Do you want to put an egg near this sign?"; next; menu "Yes", -, "No", close; set @action, 1; callfunc "Easter2009Object"; if (@result == 1) goto L_Placed; if (@result == 2) goto L_AlreadyPlaced; mes "Strange, there is already an egg near this sign."; close; L_Placed: mes "You placed an egg near the sign."; close; L_AlreadyPlaced: mes "You already placed an egg near this sign!"; close; } 007-1.gat,126,63,0 script Rock 127,{ set @object, 0; callfunc "Easter2009Rock"; } 009-1.gat,66,33,0 script Pot 127,{ set @object, 1; callfunc "Easter2009Pot"; } 009-1.gat,93,52,0 script Tree 127,{ set @object, 2; callfunc "Easter2009Tree"; } 007-1.gat,37,22,0 script Flowers 127,{ set @object, 3; callfunc "Easter2009Flower"; } 008-1.gat,38,32,0 script Tree 127,{ set @object, 4; callfunc "Easter2009Tree"; } 008-1.gat,43,21,0 script Flowers 127,{ set @object, 5; callfunc "Easter2009Flower"; } 018-1.gat,121,88,0 script Tree 127,{ set @object, 6; callfunc "Easter2009Tree"; } 010-1.gat,103,73,0 script Flowers 127,{ set @object, 7; callfunc "Easter2009Flower"; } 010-1.gat,31,45,0 script Rock 127,{ set @object, 8; callfunc "Easter2009Rock"; } 011-1.gat,83,39,0 script Pot 127,{ set @object, 9; callfunc "Easter2009Pot"; } 011-1.gat,33,78,0 script Tree 127,{ set @object, 10; callfunc "Easter2009Tree"; } 018-1.gat,64,98,0 script Rock 127,{ set @object, 11; callfunc "Easter2009Rock"; } 012-1.gat,88,122,0 script Flowers 127,{ set @object, 12; callfunc "Easter2009Flower"; } 012-1.gat,97,32,0 script Rock 127,{ set @object, 13; callfunc "Easter2009Rock"; } 012-1.gat,153,101,0 script Tree 127,{ set @object, 14; callfunc "Easter2009Tree"; } 013-1.gat,118,92,0 script Rock 127,{ set @object, 15; callfunc "Easter2009Rock"; } 013-1.gat,104,36,0 script Flowers 127,{ set @object, 16; callfunc "Easter2009Flower"; } 014-1.gat,100,37,0 script Flowers 127,{ set @object, 17; callfunc "Easter2009Flower"; } 014-1.gat,38,102,0 script Tree 127,{ set @object, 18; callfunc "Easter2009Tree"; } 014-1.gat,54,50,0 script Sign 127,{ set @object, 19; callfunc "Easter2009Sign"; } 015-1.gat,59,97,0 script Rock 127,{ set @object, 20; callfunc "Easter2009Rock"; } 015-1.gat,29,25,0 script Flowers 127,{ set @object, 21; callfunc "Easter2009Flower"; } 016-1.gat,83,54,0 script Pot 127,{ set @object, 22; callfunc "Easter2009Pot"; } 016-1.gat,62,83,0 script Sign 127,{ set @object, 23; callfunc "Easter2009Sign"; } 016-1.gat,20,51,0 script Tree 127,{ set @object, 24; callfunc "Easter2009Tree"; } 017-1.gat,77,32,0 script Sign 127,{ set @object, 25; callfunc "Easter2009Sign"; } 017-1.gat,104,90,0 script Tree 127,{ set @object, 26; callfunc "Easter2009Tree"; } 017-1.gat,37,76,0 script Flowers 127,{ set @object, 27; callfunc "Easter2009Flower"; } 009-1.gat,29,48,0 script Flowers 127,{ set @object, 28; callfunc "Easter2009Flower"; } 010-1.gat,127,99,0 script Tree 127,{ set @object, 29; callfunc "Easter2009Tree"; } 011-1.gat,34,95,0 script Rock 127,{ set @object, 30; callfunc "Easter2009Rock"; }