Initial Upload
Initial Upload
This commit is contained in:
145
_module/nss/areahandler_inc.nss
Normal file
145
_module/nss/areahandler_inc.nss
Normal file
@@ -0,0 +1,145 @@
|
||||
//::///////////////////////////////////////////////
|
||||
//:: Name: areahandler_inc
|
||||
//:://////////////////////////////////////////////
|
||||
/*
|
||||
This includefile contains all the nessesary
|
||||
functions to set up and loop through all areas
|
||||
that has a placable item in them that has a tag
|
||||
value of your choice. The placable is destroyed
|
||||
when InitializeAreaList is called.
|
||||
|
||||
InitializeArea - Call this only from OnModuleLoad.
|
||||
GetFirstArea - Returns the first area from the modlues arealist.
|
||||
GetNextArea - Returns the next area from the modlues arealist.
|
||||
GetAreaByIndex - Returns the specified area in the modules arealist.
|
||||
GetAreaLocationByIndex - Returns the location of the area designator in the area.
|
||||
*/
|
||||
//:://////////////////////////////////////////////
|
||||
//:: Created By: Flash
|
||||
//:: Created On: 02-mar-2005
|
||||
//:: Updated By: Flash
|
||||
//:: Updated On: 05-mar-2005
|
||||
//:: Update: Save the location of the designator and added GetAreaLocationByIndex.
|
||||
//:: Store Locations only, use Location.area to get area.
|
||||
//:://////////////////////////////////////////////
|
||||
string MOD_AREA_DESIGNATOR_TAG = "area_designator";
|
||||
|
||||
const string MOD_AREA_LIST_LOC = "MOD_AREA_LOC_";
|
||||
const string MOD_AREA_LIST_COUNT = "MOD_AREA_COUNT";
|
||||
const string MOD_AREA_LIST_POINTER = "MOD_AREA_LIST_POINTER";
|
||||
|
||||
//::///////////////////////////////////////////////
|
||||
//:: Name: InitializeAreaList
|
||||
//:://////////////////////////////////////////////
|
||||
/*
|
||||
Initialize the modules list of areas. This will
|
||||
delete all placeables with the tag value defined
|
||||
in AREA_DESIGNATOR_TAG. Add a placable with the
|
||||
defined value in all areas you want to be able
|
||||
to have in the list.
|
||||
Call this function only from OnModuleLoad.
|
||||
*/
|
||||
//:://////////////////////////////////////////////
|
||||
//:: Created By: Flash
|
||||
//:: Created On: 02-mar-2005
|
||||
//:://////////////////////////////////////////////
|
||||
void InitializeAreaList()
|
||||
{
|
||||
int i = 0;
|
||||
object oDesignator = GetObjectByTag(MOD_AREA_DESIGNATOR_TAG, i);
|
||||
location lArea;
|
||||
|
||||
while (GetIsObjectValid(oDesignator))
|
||||
{
|
||||
lArea = GetLocation(oDesignator);
|
||||
SetLocalLocation(GetModule(), MOD_AREA_LIST_LOC+IntToString(i), lArea);
|
||||
DestroyObject(oDesignator);
|
||||
oDesignator = GetObjectByTag(MOD_AREA_DESIGNATOR_TAG, ++i);
|
||||
}
|
||||
|
||||
SetLocalInt(GetModule(), MOD_AREA_LIST_COUNT, --i);
|
||||
}
|
||||
|
||||
//::///////////////////////////////////////////////
|
||||
//:: Name: GetAreaByIndex
|
||||
//:://////////////////////////////////////////////
|
||||
/*
|
||||
Returns the specified area in the modules arealist.
|
||||
This function does not update the area pointer.
|
||||
Returns OBJECT_INVALID on error.
|
||||
*/
|
||||
//:://////////////////////////////////////////////
|
||||
//:: Created By: Flash
|
||||
//:: Created On: 02-mar-2005
|
||||
//:://////////////////////////////////////////////
|
||||
object GetAreaByIndex(int iAreaIndex)
|
||||
{
|
||||
return GetAreaFromLocation(GetLocalLocation(GetModule(), MOD_AREA_LIST_LOC + IntToString(iAreaIndex)));
|
||||
}
|
||||
|
||||
//::///////////////////////////////////////////////
|
||||
//:: Name: GetAreaLocationByIndex
|
||||
//:://////////////////////////////////////////////
|
||||
/*
|
||||
Returns the specified location of the area designator in the modules arealist.
|
||||
*/
|
||||
//:://////////////////////////////////////////////
|
||||
//:: Created By: Flash
|
||||
//:: Created On: 05-mar-2005
|
||||
//:://////////////////////////////////////////////
|
||||
location GetAreaLocationByIndex(int iAreaIndex)
|
||||
{
|
||||
return GetLocalLocation(GetModule(), MOD_AREA_LIST_LOC + IntToString(iAreaIndex));;
|
||||
}
|
||||
|
||||
//::///////////////////////////////////////////////
|
||||
//:: Name: GetFirstArea
|
||||
//:://////////////////////////////////////////////
|
||||
/*
|
||||
Returns the first area in the modules arealist.
|
||||
Returns OBJECT_INVALID on error.
|
||||
*/
|
||||
//:://////////////////////////////////////////////
|
||||
//:: Created By: Flash
|
||||
//:: Created On: 02-mar-2005
|
||||
//:://////////////////////////////////////////////
|
||||
object GetFirstArea()
|
||||
{
|
||||
SetLocalInt(GetModule(), MOD_AREA_LIST_POINTER, 0);
|
||||
return GetAreaByIndex(0);
|
||||
}
|
||||
//::///////////////////////////////////////////////
|
||||
//:: Name: GetNextArea
|
||||
//:://////////////////////////////////////////////
|
||||
/*
|
||||
Returns the next area in the modules arealist
|
||||
Returns OBJECT_INVALID on error.
|
||||
*/
|
||||
//:://////////////////////////////////////////////
|
||||
//:: Created By: Flash
|
||||
//:: Created On: 02-mar-2005
|
||||
//:://////////////////////////////////////////////
|
||||
object GetNextArea()
|
||||
{
|
||||
int i = GetLocalInt(GetModule(), MOD_AREA_LIST_POINTER);
|
||||
object oArea = GetAreaByIndex(i);
|
||||
if(GetIsObjectValid(oArea))
|
||||
SetLocalInt(GetModule(), MOD_AREA_LIST_POINTER, ++i);
|
||||
return oArea;
|
||||
}
|
||||
|
||||
//::///////////////////////////////////////////////
|
||||
//:: Name: GetAreaCount
|
||||
//:://////////////////////////////////////////////
|
||||
/*
|
||||
Returns the number of areas in the list
|
||||
*/
|
||||
//:://////////////////////////////////////////////
|
||||
//:: Created By: Flash
|
||||
//:: Created On: 02-mar-2005
|
||||
//:://////////////////////////////////////////////
|
||||
int GetAreaCount()
|
||||
{
|
||||
return GetLocalInt(GetModule(), MOD_AREA_LIST_COUNT);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user