#include "x2_inc_itemprop"

//This is actually the main function.
void script(object oItem, object oPC)
{
     int nCurrentApp = GetItemAppearance(oItem, ITEM_APPR_TYPE_ARMOR_MODEL, ITEM_APPR_ARMOR_MODEL_RFOOT);
     int nNewApp;
     switch (nCurrentApp)
     {
     case 2: nNewApp = 1; break;
     case 3: nNewApp = 2; break;
     case 4: nNewApp = 3; break;
     case 5: nNewApp = 4; break;
     case 6: nNewApp = 5; break;
     case 7: nNewApp = 6; break;
     case 8: nNewApp = 7; break;
     case 9: nNewApp = 8; break;
     case 10: nNewApp = 9; break;
     case 11: nNewApp = 10; break;
     case 12: nNewApp = 11; break;
     case 83: nNewApp = 12; break;
     case 123: nNewApp = 83; break;
     case 124: nNewApp = 123; break;
     case 151: nNewApp = 124; break;
     case 152: nNewApp = 151; break;
     case 186: nNewApp = 152; break;
     case 1: nNewApp = 186; break;
     default: nNewApp = 1; break;
     }
     object oModified1 = CopyItemAndModify(oItem, ITEM_APPR_TYPE_ARMOR_MODEL, ITEM_APPR_ARMOR_MODEL_RFOOT, nNewApp, TRUE);
     object oModified = CopyItemAndModify(oModified1, ITEM_APPR_TYPE_ARMOR_MODEL, ITEM_APPR_ARMOR_MODEL_LFOOT, nNewApp, TRUE);
     DestroyObject(oModified1);
     SetItemCursedFlag(oModified, TRUE);
     if (oModified != OBJECT_INVALID) DestroyObject(oItem);
     ExecuteScript("craft_pcequip", oPC);
     return;
}

void main()
{
     object oPC = GetPCSpeaker();
     int nSlot = 0;
     object oItem;

     //Check if the item being crafted is equipped
     while (nSlot < 18)
     {
     oItem = GetItemInSlot(nSlot, oPC);
     if (GetLocalInt(oItem, "Prototype") == TRUE) {script(oItem, oPC); return; }
     nSlot++;
     }
     //If the item is not equipped, search for it in the inventory
     oItem = GetFirstItemInInventory(oPC);
     while (GetIsObjectValid(oItem))
     {
     if (GetLocalInt(oItem, "Prototype") == TRUE) {script(oItem, oPC); return; }
     oItem = GetNextItemInInventory(oPC);
     }
}