Code:
ffc script MSUShop {
void run(int M_BUY, int I_ITEM, int I_COST, int M_BROKE, int M_SOLDOUT, int I_TYPE) {
// D0 - M_BUY = the message when you make the buy
// D1 - I_ITEM = the item number
// D2 - I_COST = the amount of rupees item costs
// D3 - M_BROKE = the message that plays if you haven't enough cash!
// D4 - M_SOLDOUT = the message that plays if you already have that item
// D5 - I_TYPE = 0 for reg item, 1 for keys, 2 for arrows, 3 for bombs
while(true) {
while(Link->X < this->X - 8 || Link->X > this->X + 24 || Link->Y < this->Y || Link->Y > this->Y + 24 ||
Link->Dir != DIR_UP || !Link->InputA) {
Waitframe();
}
Link->InputA = false;
if(Link->Item[I_ITEM] && I_TYPE == 0)
{
Screen->Rectangle(1, 26, 9, 232, 22, 0, 1, 0, 0, 0, 1, OP_OPAQUE);
Screen->Message(M_SOLDOUT);
}
else if(Game->Counter[CR_RUPEES]<I_COST && !Link->Item[I_ITEM] == 1)
{
Screen->Rectangle(1, 26, 9, 232, 22, 0, 1, 0, 0, 0, 1, OP_OPAQUE);
Screen->Message(M_BROKE);
}
else if(Game->Counter[CR_RUPEES]>=I_COST && (!Link->Item[I_ITEM] || I_TYPE != 0))
{
Screen->Rectangle(1, 26, 9, 232, 22, 0, 1, 0, 0, 0, 1, OP_OPAQUE);
Screen->Message(M_BUY);
if(I_TYPE != 0){
if(I_TYPE == 1){Game->Counter[CR_KEYS]++;}
if(I_TYPE == 2){Game->Counter[CR_ARROWS]++;}
if(I_TYPE == 3){Game->Counter[CR_BOMBS]++;}
}
else if(I_TYPE == 0){
Link->Item[I_ITEM] = true;
this->Data = 0;
}
Game->PlaySound(20);
Game->Counter[CR_RUPEES] = Game->Counter[CR_RUPEES] - I_COST;
}
while(Link->X >= this->X - 8 && Link->X <= this->X + 24 && Link->Y >= this->Y && Link->Y <= this->Y + 24 &&
Link->Dir == DIR_UP) {
Waitframe();
}
Screen->Message(0);
Link->InputA = true;
}
}
}
As explained in the code itself;