Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const int FLAG_SHOP_ITEM_1 = 100;
- const int FLAG_SHOP_ITEM_2 = 101;
- const int FLAG_SHOP_ITEM_3 = 102;
- const int CMB_SHOP_ITEM = 2500;
- const int SHOP_PRICE_Y_OFFSET = 18;
- const int SHOP_PRICE_X_OFFSET = -4;
- const int SFX_BUYITEM = 63;
- const int SHOP_STRING_LAYER = 2;
- const int SHOP_STRING_SHADOW_X_OFFSET = 1;
- const int SHOP_STRING_SHADOW_Y_OFFSET = 1;
- const int SHOP_STRING_BG_COLOUR = 0x0F;
- const int SHOP_STRING_FG_COLOUR = 0x01;
- ffc script Automatic_Z3_Shop
- {
- void run(int shop_id)
- {
- item shopitems[3];
- shopdata sd = Game->LoadShopData(shop_id);
- for ( int q = 0; q < 176; ++q )
- {
- //FInd the flags and place the items
- if ( Screen->ComboF[q] == FLAG_SHOP_ITEM_1 )
- {
- Screen->ComboD[q] = CMB_SHOP_ITEM;
- shopitems[0] = Screen->CreateItem(sd->Item[0]);
- shopitems[0]->X = ComboX(q);
- shopitems[0]->Y = ComboY(q);
- shopitems[0]->HitXOffset = -32768;
- shopitems[0]->PString = sd->String[0];
- shopitems[0]->PStringFlags |= 0x04;
- }
- if ( Screen->ComboF[q] == FLAG_SHOP_ITEM_2 )
- {
- Screen->ComboD[q] = CMB_SHOP_ITEM;
- shopitems[1] = Screen->CreateItem(sd->Item[1]);
- shopitems[1]->X = ComboX(q);
- shopitems[1]->Y = ComboY(q);
- shopitems[1]->HitXOffset = -32768;
- shopitems[1]->PString = sd->String[1];
- shopitems[1]->PStringFlags |= 0x04;
- }
- if ( Screen->ComboF[q] == FLAG_SHOP_ITEM_3 )
- {
- Screen->ComboD[q] = CMB_SHOP_ITEM;
- shopitems[2] = Screen->CreateItem(sd->Item[2]);
- shopitems[2]->X = ComboX(q);
- shopitems[2]->Y = ComboY(q);
- shopitems[2]->HitXOffset = -32768;
- shopitems[2]->PString = sd->String[2];
- shopitems[2]->PStringFlags |= 0x04;
- }
- }
- while(1)
- {
- //Draw the prices
- Screen->DrawString( SHOP_STRING_LAYER, shopitems[0]->X+SHOP_PRICE_X_OFFSET+SHOP_STRING_SHADOW_X_OFFSET,
- shopitems[0]->Y+SHOP_PRICE_Y_OFFSET+SHOP_STRING_SHADOW_Y_OFFSET, FONT_Z3_SMALL, SHOP_STRING_BG_COLOUR,
- 0, 0, Game->GetMessage(sd->String[0]), OP_OPAQUE);
- Screen->DrawString( SHOP_STRING_LAYER, shopitems[0]->X+SHOP_PRICE_X_OFFSET,
- shopitems[0]->Y+SHOP_PRICE_Y_OFFSET, FONT_Z3_SMALL, SHOP_STRING_FG_COLOUR,
- 0, 0, Game->GetMessage(sd->String[0]), OP_OPAQUE);
- Screen->DrawString( SHOP_STRING_LAYER, shopitems[1]->X+SHOP_PRICE_X_OFFSET+SHOP_STRING_SHADOW_X_OFFSET,
- shopitems[0]->Y+SHOP_PRICE_Y_OFFSET+SHOP_STRING_SHADOW_Y_OFFSET, FONT_Z3_SMALL, SHOP_STRING_BG_COLOUR,
- 0, 0, Game->GetMessage(sd->String[1]), OP_OPAQUE);
- Screen->DrawString( SHOP_STRING_LAYER, shopitems[1]->X+SHOP_PRICE_X_OFFSET,
- shopitems[0]->Y+SHOP_PRICE_Y_OFFSET, FONT_Z3_SMALL, SHOP_STRING_FG_COLOUR,
- 0, 0, Game->GetMessage(sd->String[1]), OP_OPAQUE);
- Screen->DrawString( SHOP_STRING_LAYER, shopitems[2]->X+SHOP_PRICE_X_OFFSET+SHOP_STRING_SHADOW_X_OFFSET,
- shopitems[0]->Y+SHOP_PRICE_Y_OFFSET+SHOP_STRING_SHADOW_Y_OFFSET, FONT_Z3_SMALL, SHOP_STRING_BG_COLOUR,
- 0, 0, Game->GetMessage(sd->String[2]), OP_OPAQUE);
- Screen->DrawString( SHOP_STRING_LAYER, shopitems[2]->X+SHOP_PRICE_X_OFFSET,
- shopitems[0]->Y+SHOP_PRICE_Y_OFFSET, FONT_Z3_SMALL, SHOP_STRING_FG_COLOUR,
- 0, 0, Game->GetMessage(sd->String[2]), OP_OPAQUE);
- for ( int q = 0; q < 3; ++q )
- {
- if ( PressedBuyButton() )
- {
- if ( Link->Dir == DIR_UP )
- {
- if ( Game->Counter[CR_RUPEES] >= sd->Price[q] )
- {
- if ( Below(shopitems[q])
- {
- if ( DistXY(shopitems[q], 12) )
- {
- Audio->PlaySound(SFX_BUYITEM);
- Game->DCounter[CR_RUPEES] += sd->Price[q];
- shopitems[q]->Pickup = IP_HOLDUP;
- shopitems[q]->HitXOffset = 0;
- shopitems[q]->X = Link->X;
- shopitems[q]->Y = Link->Y;
- }
- }
- }
- }
- }
- }
- Waitframe();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement