93 lines
3.0 KiB
Plaintext
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);
|
||
|
}
|