//
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";
}