111 lines
4.6 KiB
Plaintext
111 lines
4.6 KiB
Plaintext
int MaxAppearanceIndex(object oItem, int nPart, int nColor)
|
|
{
|
|
int nMax1;
|
|
int nMax2;
|
|
int nMax3;
|
|
int nMax4;
|
|
int nMax5;
|
|
int nMax6;
|
|
int nMin = 1;
|
|
int nMax;
|
|
int nTotal = 0;
|
|
int nColors = 0;
|
|
switch (GetBaseItemType(oItem))
|
|
{
|
|
case BASE_ITEM_BOLT: { nMax1 = 3; nMax2 = 6; nMax3 = 3; nColors = 4; } break;
|
|
case BASE_ITEM_ARROW: { nTotal = 3; nMax4 = 7; nMax5 = 1; nMax6 = 7; } break;
|
|
case BASE_ITEM_LONGBOW: { nTotal = 8; nColors = 4; } break;
|
|
case BASE_ITEM_SHORTBOW: { nTotal = 6; nColors = 4; } break;
|
|
case BASE_ITEM_HEAVYCROSSBOW: { nTotal = 4; nColors = 4; } break;
|
|
case BASE_ITEM_LIGHTCROSSBOW: { nTotal = 4; nColors = 4; } break;
|
|
case BASE_ITEM_HALBERD: { nTotal = 4; nColors = 4; } break;
|
|
case BASE_ITEM_SCYTHE: { nTotal = 3; nColors = 4; } break;
|
|
case BASE_ITEM_TRIDENT: { nTotal = 4; nColors = 4; } break;
|
|
case BASE_ITEM_SHORTSPEAR: { nTotal = 4; nColors = 4; } break;
|
|
case BASE_ITEM_MAGICSTAFF: { nTotal = 6; nColors = 4; } break;
|
|
case BASE_ITEM_KAMA: { nTotal = 1; nColors = 4; } break;
|
|
case BASE_ITEM_KUKRI: { nTotal = 1; nColors = 4; } break;
|
|
case BASE_ITEM_SICKLE: { nTotal = 1; nColors = 4; } break;
|
|
case BASE_ITEM_THROWINGAXE: { nTotal = 4; nColors = 4; } break;
|
|
case BASE_ITEM_LIGHTMACE: { nTotal = 4; nColors = 4; } break;
|
|
case BASE_ITEM_HEAVYFLAIL: { nTotal = 4; nColors = 4; } break;
|
|
case BASE_ITEM_LIGHTFLAIL: { nTotal = 4; nColors = 4; } break;
|
|
case BASE_ITEM_CLUB: { nTotal = 4; nColors = 4; } break;
|
|
case BASE_ITEM_LIGHTHAMMER: { nTotal = 4; nColors = 4; } break;
|
|
case BASE_ITEM_WARHAMMER: { nTotal = 6; nColors = 4; } break;
|
|
case BASE_ITEM_MORNINGSTAR: { nTotal = 4; nColors = 4; } break;
|
|
case BASE_ITEM_QUARTERSTAFF: { nTotal = 4; nColors = 4; } break;
|
|
case BASE_ITEM_TWOBLADEDSWORD: { nTotal = 3; nColors = 4; } break;
|
|
case BASE_ITEM_DOUBLEAXE: { nTotal = 3; nColors = 4; } break;
|
|
case BASE_ITEM_DIREMACE: { nTotal = 4; nColors = 4; } break;
|
|
case BASE_ITEM_LONGSWORD: { nTotal = 10; nColors = 4; } break;
|
|
case BASE_ITEM_KATANA: { nTotal = 4; nColors = 4; } break;
|
|
case BASE_ITEM_RAPIER: { nTotal = 4; nColors = 4; } break;
|
|
case BASE_ITEM_SCIMITAR: { nTotal = 4; nColors = 4; } break;
|
|
case BASE_ITEM_SHORTSWORD: { nTotal = 6; nColors = 4; } break;
|
|
case BASE_ITEM_BASTARDSWORD: { nTotal = 6; nColors = 4; } break;
|
|
case BASE_ITEM_DAGGER: { nTotal = 6; nColors = 4; } break;
|
|
case BASE_ITEM_GREATSWORD: { nTotal = 4; nColors = 4; } break;
|
|
case BASE_ITEM_BATTLEAXE: { nTotal = 6; nColors = 4; } break;
|
|
case BASE_ITEM_HANDAXE: { nTotal = 4; nColors = 4; } break;
|
|
case BASE_ITEM_GREATAXE: { nTotal = 4; nColors = 4; } break;
|
|
case BASE_ITEM_BULLET: { nMax = 8; } break;
|
|
case BASE_ITEM_SHURIKEN: { nMax = 3; } break;
|
|
case BASE_ITEM_DART: { nMax = 3; } break;
|
|
case BASE_ITEM_SLING: { nMax = 16; } break;
|
|
}
|
|
if (nTotal != 0) {nMax1 = nTotal; nMax2 = nTotal; nMax3 = nTotal; }
|
|
if (nColors != 0) {nMax4 = nColors; nMax5 = nColors; nMax6 = nColors; }
|
|
|
|
if (nColor == TRUE)
|
|
{
|
|
switch (nPart)
|
|
{
|
|
case ITEM_APPR_WEAPON_COLOR_TOP: { nMax = nMax4; } break;
|
|
case ITEM_APPR_WEAPON_COLOR_MIDDLE: { nMax = nMax5; } break;
|
|
case ITEM_APPR_WEAPON_COLOR_BOTTOM: { nMax = nMax6; } break;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
switch (nPart)
|
|
{
|
|
case ITEM_APPR_WEAPON_MODEL_TOP: { nMax = nMax1; } break;
|
|
case ITEM_APPR_WEAPON_MODEL_MIDDLE: { nMax = nMax2; } break;
|
|
case ITEM_APPR_WEAPON_MODEL_BOTTOM: { nMax = nMax3; } break;
|
|
}
|
|
}
|
|
|
|
return nMax;
|
|
}
|
|
|
|
|
|
object ModifiedItem(object oItem, int nType, int nPart, int nColor)
|
|
{
|
|
int nFinalApp = MaxAppearanceIndex(oItem, nPart, nColor); //ITEM_APPR_WEAPON_MODEL_TOP
|
|
int nCurrentApp = GetItemAppearance(oItem, nType, nPart);
|
|
int nNextApp;
|
|
if (nCurrentApp >= nFinalApp) nNextApp = 1;
|
|
else nNextApp = nCurrentApp+1;
|
|
object oNewItem = CopyItemAndModify(oItem, nType, nPart, nNextApp, TRUE);
|
|
SetItemCursedFlag(oNewItem, TRUE);
|
|
if (oNewItem != OBJECT_INVALID) {DestroyObject(oItem); return oNewItem;}
|
|
else return oItem;
|
|
}
|
|
|
|
/*object ModifiedArmor(object oItem, int nPart)
|
|
{
|
|
int nCurrentApp = GetItemAppearance(oItem, ITEM_APPR_TYPE_ARMOR_MODEL , nPart);
|
|
siwtch (nCurrentApp)
|
|
{
|
|
case
|
|
}
|
|
int nNextApp;
|
|
if (nCurrentApp >= nFinalApp) nNextApp = 1;
|
|
else nNextApp = nCurrentApp+1;
|
|
object oNewItem = CopyItemAndModify(oItem, nType, nPart, nNextApp, TRUE);
|
|
SetItemCursedFlag(oNewItem, TRUE);
|
|
if (oNewItem != OBJECT_INVALID) {DestroyObject(oItem); return oNewItem;}
|
|
else return oItem;
|
|
} */
|