LoT_PRC8/_module/nss/pgs_build_terr.nss
Jaysyn904 ec287507a1 Initial upload
Initial upload.
2023-09-25 21:32:17 -04:00

93 lines
3.0 KiB
Plaintext

//::///////////////////////////////////////////////
//:: Name: pgs_build_terr
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
Build the territory list the the player's
guild.
*/
//:://////////////////////////////////////////////
//:: Created By: Samius Maximus
//:: Created On:
//:://////////////////////////////////////////////
#include "inc_gsystem"
void main()
{
object oPlayer = GetPCSpeaker();
int iCount = 1;
int iPosition = GetLocalInt (oPlayer, "List_Position");
int iGuild = GetLocalInt (oPlayer, "Player_Guild_Number");
object oTerritory;
SetLocalInt (oPlayer, "Token_Position", 1);
SetLocalInt (oPlayer, "List_Built", 5); /*Guild list is being built.*/
//--------------------------------------------
//Clear "Next" and "Previous" set options.
//--------------------------------------------
SetLocalInt (oPlayer, "Next_Set_Is_Available", FALSE);
SetLocalInt (oPlayer, "Previous_Set_Is_Available", FALSE);
//--------------------------------------------
//Loop through territories.
//--------------------------------------------
while (iCount != 10)
{
oTerritory = GetObjectByTag ("Territory_Flag_" + IntToString (iPosition));
if (!GetIsObjectValid (oTerritory))
{
SetLocalInt (oPlayer, "Temp_List_Position" + IntToString (iCount), 0);
iCount++;
}
else
{
if (GetTerritoryGuildNumber (iPosition) == iGuild)
{
if (iCount == 9) /*Check for next set.*/
SetLocalInt (oPlayer, "Next_Set_Is_Available", TRUE);
else
SetLocalInt (oPlayer, "Temp_List_Position" + IntToString
(iCount), iPosition);
iCount++;
}
else
SetLocalInt (oPlayer, "Temp_List_Position" + IntToString (iCount), 0);
iPosition++;
}
}
//--------------------------------------------
//Save current position for "Next set" action.
//--------------------------------------------
iPosition--;
SetLocalInt (oPlayer, "Next_List_Position", iPosition);
iCount = 1;
//--------------------------------------------
//Loop in reverse to find and store the
//position for the "Previous" function.
//--------------------------------------------
while (iCount != 17)
{
if (iPosition < 1) /*Check if list has returned to the beginning.*/
iCount++;
else if (GetTerritoryGuildNumber (iPosition) == iGuild)
iCount++;
iPosition--; /*Decrement.*/
}
SetLocalInt (oPlayer, "Previous_List_Position", iPosition); /*Update var.*/
//--------------------------------------------
//Check if the "Previous" function is available.
//--------------------------------------------
if (iPosition > 0)
SetLocalInt (oPlayer, "Previous_Set_Is_Available", TRUE);
}