#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_PELVIS );
     int nNewApp;
     switch (nCurrentApp)
     {
     case 1: nNewApp = 2; break;
     case 2: nNewApp = 3; break;
     case 3: nNewApp = 4; break;
     case 4: nNewApp = 5; break;
     case 5: nNewApp = 6; break;
     case 6: nNewApp = 7; break;
     case 7: nNewApp = 8; break;
     case 8: nNewApp = 9; break;
     case 9: nNewApp = 10; break;
     case 10: nNewApp = 13; break;
     case 13: nNewApp = 14; break;
     case 14: nNewApp = 15; break;
     case 15: nNewApp = 16; break;
     case 16: nNewApp = 17; break;
     case 17: nNewApp = 18; break;
     case 18: nNewApp = 19; break;
     case 19: nNewApp = 20; break;
     case 20: nNewApp = 21; break;
     case 21: nNewApp = 22; break;
     case 22: nNewApp = 23; break;
     case 23: nNewApp = 24; break;
     case 24: nNewApp = 25; break;
     case 25: nNewApp = 26; break;
     case 26: nNewApp = 28; break;
     case 28: nNewApp = 29; break;
     case 29: nNewApp = 37; break;
     case 37: nNewApp = 63; break;
     case 63: nNewApp = 121; break;
     case 121: nNewApp = 122; break;
     case 122: nNewApp = 123; break;
     case 123: nNewApp = 124; break;
     case 124: nNewApp = 1; break;
     default: nNewApp = 1; break;
     }
     object oModified = CopyItemAndModify(oItem, ITEM_APPR_TYPE_ARMOR_MODEL, ITEM_APPR_ARMOR_MODEL_PELVIS, nNewApp, TRUE);
     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);
     }
}