Initial Commit
Initial Commit [v1.32PRC8]
This commit is contained in:
129
_module/nss/inc_util.nss
Normal file
129
_module/nss/inc_util.nss
Normal file
@@ -0,0 +1,129 @@
|
||||
/*
|
||||
Utility Functions
|
||||
Created By: Daz
|
||||
*/
|
||||
|
||||
#include "nw_inc_gff"
|
||||
#include "nw_inc_nui"
|
||||
|
||||
string Util_GetIconResref(object oItem, json jItem, int nBaseItem);
|
||||
string Util_GetIconResref(object oItem, json jItem, int nBaseItem)
|
||||
{
|
||||
if (nBaseItem == BASE_ITEM_CLOAK) // Cloaks use PLTs so their default icon doesn't really work
|
||||
return "iit_cloak";
|
||||
else if (nBaseItem == BASE_ITEM_SPELLSCROLL || nBaseItem == BASE_ITEM_ENCHANTED_SCROLL)
|
||||
{// Scrolls get their icon from the cast spell property
|
||||
if (GetItemHasItemProperty(oItem, ITEM_PROPERTY_CAST_SPELL))
|
||||
{
|
||||
itemproperty ip = GetFirstItemProperty(oItem);
|
||||
while (GetIsItemPropertyValid(ip))
|
||||
{
|
||||
if (GetItemPropertyType(ip) == ITEM_PROPERTY_CAST_SPELL)
|
||||
return Get2DAString("iprp_spells", "Icon", GetItemPropertySubType(ip));
|
||||
|
||||
ip = GetNextItemProperty(oItem);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (Get2DAString("baseitems", "ModelType", nBaseItem) == "0")
|
||||
{// Create the icon resref for simple modeltype items
|
||||
json jSimpleModel = GffGetByte(jItem, "ModelPart1");
|
||||
if (JsonGetType(jSimpleModel) == JSON_TYPE_INTEGER)
|
||||
{
|
||||
string sSimpleModelId = IntToString(JsonGetInt(jSimpleModel));
|
||||
while (GetStringLength(sSimpleModelId) < 3)// Padding...
|
||||
{
|
||||
sSimpleModelId = "0" + sSimpleModelId;
|
||||
}
|
||||
|
||||
string sDefaultIcon = Get2DAString("baseitems", "DefaultIcon", nBaseItem);
|
||||
switch (nBaseItem)
|
||||
{
|
||||
case BASE_ITEM_MISCSMALL:
|
||||
case BASE_ITEM_CRAFTMATERIALSML:
|
||||
sDefaultIcon = "iit_smlmisc_" + sSimpleModelId;
|
||||
break;
|
||||
case BASE_ITEM_MISCMEDIUM:
|
||||
case BASE_ITEM_CRAFTMATERIALMED:
|
||||
case 112:/* Crafting Base Material */
|
||||
sDefaultIcon = "iit_midmisc_" + sSimpleModelId;
|
||||
break;
|
||||
case BASE_ITEM_MISCLARGE:
|
||||
sDefaultIcon = "iit_talmisc_" + sSimpleModelId;
|
||||
break;
|
||||
case BASE_ITEM_MISCTHIN:
|
||||
sDefaultIcon = "iit_thnmisc_" + sSimpleModelId;
|
||||
break;
|
||||
}
|
||||
|
||||
int nLength = GetStringLength(sDefaultIcon);
|
||||
if (GetSubString(sDefaultIcon, nLength - 4, 1) == "_")// Some items have a default icon of xx_yyy_001, we strip the last 4 symbols if that is the case
|
||||
sDefaultIcon = GetStringLeft(sDefaultIcon, nLength - 4);
|
||||
string sIcon = sDefaultIcon + "_" + sSimpleModelId;
|
||||
if (ResManGetAliasFor(sIcon, RESTYPE_TGA) != "")// Check if the icon actually exists, if not, we'll fall through and return the default icon
|
||||
return sIcon;
|
||||
}
|
||||
}
|
||||
|
||||
// For everything else use the item's default icon
|
||||
return Get2DAString("baseitems", "DefaultIcon", nBaseItem);
|
||||
}
|
||||
|
||||
json Util_GetModelPart(string sDefaultIcon, string sType, json jPart)
|
||||
{
|
||||
if (JsonGetType(jPart) == JSON_TYPE_INTEGER)
|
||||
{
|
||||
string sModelPart = IntToString(JsonGetInt(jPart));
|
||||
while (GetStringLength(sModelPart) < 3)
|
||||
{
|
||||
sModelPart = "0" + sModelPart;
|
||||
}
|
||||
|
||||
string sIcon = sDefaultIcon + sType + sModelPart;
|
||||
if (ResManGetAliasFor(sIcon, RESTYPE_TGA) != "")
|
||||
return JsonString(sIcon);
|
||||
}
|
||||
|
||||
return JsonString("");
|
||||
}
|
||||
|
||||
json Util_GetComplexIconData(json jItem, int nBaseItem);
|
||||
json Util_GetComplexIconData(json jItem, int nBaseItem)
|
||||
{
|
||||
if (Get2DAString("baseitems", "ModelType", nBaseItem) == "2")
|
||||
{
|
||||
string sDefaultIcon = Get2DAString("baseitems", "DefaultIcon", nBaseItem);
|
||||
json jComplexIcon = JsonObject();
|
||||
jComplexIcon = JsonObjectSet(jComplexIcon, "top", Util_GetModelPart(sDefaultIcon, "_t_", GffGetByte(jItem, "ModelPart3")));
|
||||
jComplexIcon = JsonObjectSet(jComplexIcon, "middle", Util_GetModelPart(sDefaultIcon, "_m_", GffGetByte(jItem, "ModelPart2")));
|
||||
jComplexIcon = JsonObjectSet(jComplexIcon, "bottom", Util_GetModelPart(sDefaultIcon, "_b_", GffGetByte(jItem, "ModelPart1")));
|
||||
|
||||
return jComplexIcon;
|
||||
}
|
||||
|
||||
return JsonNull();
|
||||
}
|
||||
|
||||
string Util_Get2DAStringByStrRef(string s2DA, string sColumn, int nRow);
|
||||
string Util_Get2DAStringByStrRef(string s2DA, string sColumn, int nRow)
|
||||
{
|
||||
return GetStringByStrRef(StringToInt(Get2DAString(s2DA, sColumn, nRow)));
|
||||
}
|
||||
|
||||
string Util_GetItemName(object oItem, int bIdentified);
|
||||
string Util_GetItemName(object oItem, int bIdentified)
|
||||
{
|
||||
return bIdentified ? GetName(oItem) : Util_Get2DAStringByStrRef("baseitems", "Name", GetBaseItemType(oItem)) + " (Unidentified)";
|
||||
}
|
||||
|
||||
void Util_SendDebugMessage(string sMessage);
|
||||
void Util_SendDebugMessage(string sMessage)
|
||||
{
|
||||
object oPlayer = GetFirstPC();
|
||||
while (oPlayer != OBJECT_INVALID)
|
||||
{
|
||||
SendMessageToPC(oPlayer, sMessage);
|
||||
oPlayer = GetNextPC();
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user