GammaAge/_module/nss/dmfi_arrays_inc.nss
Jaysyn904 b927d0faf8 File re-organization.
File re-organization.  Added module builder & hak builder.
2021-09-16 10:15:32 -04:00

178 lines
6.9 KiB
Plaintext

//::///////////////////////////////////////////////
//:: DMFI - array functions include
//:: dmfi_arrays_inc
//:://////////////////////////////////////////////
/*
Functions to use object-attached local variables as arrays.
*/
//:://////////////////////////////////////////////
//:: Created By: Noel
//:: Created On: November 17, 2001
//:://////////////////////////////////////////////
//:: 2007.12.24 tsunami282 - yanked most of these routines from Bioware's
//:: nw_o0_itemmaker, then expanded for bounds management.
int GetLocalArrayLowerBound(object oidObject, string sVarName);
int GetLocalArrayUpperBound(object oidObject, string sVarName);
void SetLocalArrayLowerBound(object oidObject, string sVarName, int nMin);
void SetLocalArrayUpperBound(object oidObject, string sVarName, int nMax);
////////////////////////////////////////////////////////////////////////
int GetLocalArrayInitialized(object oidObject, string sVarName)
{
string sFullVarName = sVarName + "_INIT";
return GetLocalInt(oidObject, sFullVarName);
}
////////////////////////////////////////////////////////////////////////
void InitializeLocalArray(object oidObject, string sVarName)
{
int i, iBegin, iEnd;
string sFullVarName;
if (GetLocalArrayInitialized(oidObject, sVarName))
{
// wipe current contents
iBegin = GetLocalArrayLowerBound(oidObject, sVarName);
iEnd = GetLocalArrayUpperBound(oidObject, sVarName);
for (i = iEnd; i >= iBegin; i--)
{
sFullVarName = sVarName + IntToString(i);
DeleteLocalInt(oidObject, sFullVarName);
DeleteLocalFloat(oidObject, sFullVarName);
DeleteLocalString(oidObject, sFullVarName);
DeleteLocalObject(oidObject, sFullVarName);
DeleteLocalLocation(oidObject, sFullVarName);
}
}
SetLocalArrayLowerBound(oidObject, sVarName, 0);
SetLocalArrayUpperBound(oidObject, sVarName, -1);
sFullVarName = sVarName + "_INIT";
SetLocalInt(oidObject, sFullVarName, TRUE);
}
////////////////////////////////////////////////////////////////////////
int GetLocalArrayLowerBound(object oidObject, string sVarName)
{
string sFullVarName = sVarName + "_MIN";
return GetLocalInt(oidObject, sFullVarName);
}
////////////////////////////////////////////////////////////////////////
int GetLocalArrayUpperBound(object oidObject, string sVarName)
{
string sFullVarName = sVarName + "_MAX";
return GetLocalInt(oidObject, sFullVarName);
}
////////////////////////////////////////////////////////////////////////
void SetLocalArrayLowerBound(object oidObject, string sVarName, int nMin)
{
string sFullVarName = sVarName + "_MIN";
SetLocalInt(oidObject, sFullVarName, nMin);
}
////////////////////////////////////////////////////////////////////////
void SetLocalArrayUpperBound(object oidObject, string sVarName, int nMax)
{
string sFullVarName = sVarName + "_MAX";
SetLocalInt(oidObject, sFullVarName, nMax);
}
////////////////////////////////////////////////////////////////////////
int GetLocalArrayInt(object oidObject, string sVarName, int nVarNum)
{
string sFullVarName = sVarName + IntToString(nVarNum) ;
return GetLocalInt(oidObject, sFullVarName);
}
////////////////////////////////////////////////////////////////////////
void SetLocalArrayInt(object oidObject, string sVarName, int nVarNum, int nValue)
{
string sFullVarName = sVarName + IntToString(nVarNum) ;
SetLocalInt(oidObject, sFullVarName, nValue);
// update bounds
if (nVarNum < GetLocalArrayLowerBound(oidObject, sVarName))
SetLocalArrayLowerBound(oidObject, sVarName, nVarNum);
if (nVarNum > GetLocalArrayUpperBound(oidObject, sVarName))
SetLocalArrayUpperBound(oidObject, sVarName, nVarNum);
}
////////////////////////////////////////////////////////////////////////
float GetLocalArrayFloat(object oidObject, string sVarName, int nVarNum)
{
string sFullVarName = sVarName + IntToString(nVarNum) ;
return GetLocalFloat(oidObject, sFullVarName);
}
////////////////////////////////////////////////////////////////////////
void SetLocalArrayFloat(object oidObject, string sVarName, int nVarNum, float fValue)
{
string sFullVarName = sVarName + IntToString(nVarNum) ;
SetLocalFloat(oidObject, sFullVarName, fValue);
// update bounds
if (nVarNum < GetLocalArrayLowerBound(oidObject, sVarName))
SetLocalArrayLowerBound(oidObject, sVarName, nVarNum);
if (nVarNum > GetLocalArrayUpperBound(oidObject, sVarName))
SetLocalArrayUpperBound(oidObject, sVarName, nVarNum);
}
////////////////////////////////////////////////////////////////////////
string GetLocalArrayString(object oidObject, string sVarName, int nVarNum)
{
string sFullVarName = sVarName + IntToString(nVarNum) ;
return GetLocalString(oidObject, sFullVarName);
}
////////////////////////////////////////////////////////////////////////
void SetLocalArrayString(object oidObject, string sVarName, int nVarNum, string nValue)
{
string sFullVarName = sVarName + IntToString(nVarNum) ;
SetLocalString(oidObject, sFullVarName, nValue);
// update bounds
if (nVarNum < GetLocalArrayLowerBound(oidObject, sVarName))
SetLocalArrayLowerBound(oidObject, sVarName, nVarNum);
if (nVarNum > GetLocalArrayUpperBound(oidObject, sVarName))
SetLocalArrayUpperBound(oidObject, sVarName, nVarNum);
}
////////////////////////////////////////////////////////////////////////
object GetLocalArrayObject(object oidObject, string sVarName, int nVarNum)
{
string sFullVarName = sVarName + IntToString(nVarNum) ;
return GetLocalObject(oidObject, sFullVarName);
}
////////////////////////////////////////////////////////////////////////
void SetLocalArrayObject(object oidObject, string sVarName, int nVarNum, object oidValue)
{
string sFullVarName = sVarName + IntToString(nVarNum) ;
SetLocalObject(oidObject, sFullVarName, oidValue);
// update bounds
if (nVarNum < GetLocalArrayLowerBound(oidObject, sVarName))
SetLocalArrayLowerBound(oidObject, sVarName, nVarNum);
if (nVarNum > GetLocalArrayUpperBound(oidObject, sVarName))
SetLocalArrayUpperBound(oidObject, sVarName, nVarNum);
}
////////////////////////////////////////////////////////////////////////
location GetLocalArrayLocation(object oidObject, string sVarName, int nVarNum)
{
string sFullVarName = sVarName + IntToString(nVarNum) ;
return GetLocalLocation(oidObject, sFullVarName);
}
////////////////////////////////////////////////////////////////////////
void SetLocalArrayLocation(object oidObject, string sVarName, int nVarNum, location locValue)
{
string sFullVarName = sVarName + IntToString(nVarNum) ;
SetLocalLocation(oidObject, sFullVarName, locValue);
// update bounds
if (nVarNum < GetLocalArrayLowerBound(oidObject, sVarName))
SetLocalArrayLowerBound(oidObject, sVarName, nVarNum);
if (nVarNum > GetLocalArrayUpperBound(oidObject, sVarName))
SetLocalArrayUpperBound(oidObject, sVarName, nVarNum);
}