//! zinc
library FullScreenAbilitySelection requires myAbilityList
{
hashtable hash = InitHashtable();
string model = "4x4Trackable.MDX";
player p = Player(0);
integer rows = 5;
integer perRow = 5;
integer total = rows * perRow;
real startX, startY, bstartX, bstartY, xInterval, yInterval;
rect sRect, aRect;
function TrackActions()
{
destructable d = LoadDestructableHandle(hash, GetHandleId(GetTriggeringTrackable()), 0);
integer id = GetDestructableTypeId(d);
//BJDebugMsg(GetDestructableName(d));
CreateDestructable(id, bstartX, bstartY, 0, 1.5, 0);
bstartX += 125;
}
function onInit()
{
integer i = 0;
integer i2 = 0;
trigger t = CreateTrigger();
trackable tr;
real cx, cy;
destructable d;
sRect = gg_rct_SelectedAbilities;
aRect = gg_rct_TopLeftCorner;
TriggerAddAction(t, function TrackActions);
//SetCameraBoundsToRectForPlayerBJ(p, gg_rct_MAP);
startX = GetRectMinX(aRect) + 35;
startY = GetRectMaxY(aRect) - 35;
bstartX = GetRectMinX(sRect) + 55;
bstartY = GetRectMaxY(sRect) - 40;
xInterval = (GetRectMaxX(aRect) - GetRectMinX(aRect)) / perRow;
yInterval = ((GetRectMaxY(aRect) - GetRectMinY(aRect)) / rows);
cx = startX;
cy = startY;
while(i <= total - 1)
{
tr = CreateTrackable(model, cx, cy, 0);
if(abilityList.IntegerList[i] != null)
{
d = CreateDestructable(abilityList.IntegerList[i], cx, cy, 0, 1, 0);
}
else
{
d = CreateDestructable(defaultAbility, cx, cy, 0, 1, 0);
}
TriggerRegisterTrackableHitEvent(t, tr);
SaveDestructableHandle(hash, GetHandleId(tr), 0, d);
cx += xInterval;
if(i2 == perRow - 1)
{
cy -= yInterval;
cx = startX;
i2 = -1;
}
i2 += 1;
i += 1;
}
}
}
//! endzinc