|
|
@ -112,6 +112,7 @@ public final function SetSelf(EPlayer newSelfPlayer) |
|
|
|
private final function InsertPlayer(EPlayer toInsert) |
|
|
|
private final function InsertPlayer(EPlayer toInsert) |
|
|
|
{ |
|
|
|
{ |
|
|
|
local int i; |
|
|
|
local int i; |
|
|
|
|
|
|
|
|
|
|
|
if (toInsert == none) { |
|
|
|
if (toInsert == none) { |
|
|
|
return; |
|
|
|
return; |
|
|
|
} |
|
|
|
} |
|
|
@ -128,6 +129,7 @@ private final function InsertPlayer(EPlayer toInsert) |
|
|
|
private final function AddByKey(int key) |
|
|
|
private final function AddByKey(int key) |
|
|
|
{ |
|
|
|
{ |
|
|
|
local int i; |
|
|
|
local int i; |
|
|
|
|
|
|
|
|
|
|
|
for (i = 0; i < playersSnapshot.length; i += 1) |
|
|
|
for (i = 0; i < playersSnapshot.length; i += 1) |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (playersSnapshot[i].GetIdentity().GetKey() == key) { |
|
|
|
if (playersSnapshot[i].GetIdentity().GetKey() == key) { |
|
|
@ -141,6 +143,7 @@ private final function AddByKey(int key) |
|
|
|
private final function RemoveByKey(int key) |
|
|
|
private final function RemoveByKey(int key) |
|
|
|
{ |
|
|
|
{ |
|
|
|
local int i; |
|
|
|
local int i; |
|
|
|
|
|
|
|
|
|
|
|
while (i < currentSelection.length) |
|
|
|
while (i < currentSelection.length) |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (currentSelection[i].GetIdentity().GetKey() == key) { |
|
|
|
if (currentSelection[i].GetIdentity().GetKey() == key) { |
|
|
@ -157,7 +160,10 @@ private final function AddByName(BaseText name) |
|
|
|
{ |
|
|
|
{ |
|
|
|
local int i; |
|
|
|
local int i; |
|
|
|
local Text nextPlayerName; |
|
|
|
local Text nextPlayerName; |
|
|
|
if (name == none) return; |
|
|
|
|
|
|
|
|
|
|
|
if (name == none) { |
|
|
|
|
|
|
|
return; |
|
|
|
|
|
|
|
} |
|
|
|
for (i = 0; i < playersSnapshot.length; i += 1) |
|
|
|
for (i = 0; i < playersSnapshot.length; i += 1) |
|
|
|
{ |
|
|
|
{ |
|
|
|
nextPlayerName = playersSnapshot[i].GetName(); |
|
|
|
nextPlayerName = playersSnapshot[i].GetName(); |
|
|
@ -174,6 +180,7 @@ private final function RemoveByName(BaseText name) |
|
|
|
{ |
|
|
|
{ |
|
|
|
local int i; |
|
|
|
local int i; |
|
|
|
local Text nextPlayerName; |
|
|
|
local Text nextPlayerName; |
|
|
|
|
|
|
|
|
|
|
|
while (i < currentSelection.length) |
|
|
|
while (i < currentSelection.length) |
|
|
|
{ |
|
|
|
{ |
|
|
|
nextPlayerName = currentSelection[i].GetName(); |
|
|
|
nextPlayerName = currentSelection[i].GetName(); |
|
|
@ -191,6 +198,7 @@ private final function RemoveByName(BaseText name) |
|
|
|
private final function AddAdmins() |
|
|
|
private final function AddAdmins() |
|
|
|
{ |
|
|
|
{ |
|
|
|
local int i; |
|
|
|
local int i; |
|
|
|
|
|
|
|
|
|
|
|
for (i = 0; i < playersSnapshot.length; i += 1) |
|
|
|
for (i = 0; i < playersSnapshot.length; i += 1) |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (playersSnapshot[i].IsAdmin()) { |
|
|
|
if (playersSnapshot[i].IsAdmin()) { |
|
|
@ -203,6 +211,7 @@ private final function AddAdmins() |
|
|
|
private final function RemoveAdmins() |
|
|
|
private final function RemoveAdmins() |
|
|
|
{ |
|
|
|
{ |
|
|
|
local int i; |
|
|
|
local int i; |
|
|
|
|
|
|
|
|
|
|
|
while (i < currentSelection.length) |
|
|
|
while (i < currentSelection.length) |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (currentSelection[i].IsAdmin()) { |
|
|
|
if (currentSelection[i].IsAdmin()) { |
|
|
@ -242,6 +251,7 @@ private final function AddByMacro(BaseText macroText) |
|
|
|
private final function RemoveByMacro(BaseText macroText) |
|
|
|
private final function RemoveByMacro(BaseText macroText) |
|
|
|
{ |
|
|
|
{ |
|
|
|
local int i; |
|
|
|
local int i; |
|
|
|
|
|
|
|
|
|
|
|
if (macroText.Compare(T(TADMIN), SCASE_INSENSITIVE)) |
|
|
|
if (macroText.Compare(T(TADMIN), SCASE_INSENSITIVE)) |
|
|
|
{ |
|
|
|
{ |
|
|
|
RemoveAdmins(); |
|
|
|
RemoveAdmins(); |
|
|
@ -272,6 +282,7 @@ private final function ParseSelector(Parser parser) |
|
|
|
{ |
|
|
|
{ |
|
|
|
local bool additiveSelector; |
|
|
|
local bool additiveSelector; |
|
|
|
local Parser.ParserState confirmedState; |
|
|
|
local Parser.ParserState confirmedState; |
|
|
|
|
|
|
|
|
|
|
|
if (parser == none) return; |
|
|
|
if (parser == none) return; |
|
|
|
if (!parser.Ok()) return; |
|
|
|
if (!parser.Ok()) return; |
|
|
|
|
|
|
|
|
|
|
@ -314,9 +325,11 @@ private final function ParseSelector(Parser parser) |
|
|
|
private final function ParseKeySelector(Parser parser, bool additiveSelector) |
|
|
|
private final function ParseKeySelector(Parser parser, bool additiveSelector) |
|
|
|
{ |
|
|
|
{ |
|
|
|
local int key; |
|
|
|
local int key; |
|
|
|
|
|
|
|
|
|
|
|
if (parser == none) return; |
|
|
|
if (parser == none) return; |
|
|
|
if (!parser.Ok()) return; |
|
|
|
if (!parser.Ok()) return; |
|
|
|
if (!parser.MInteger(key).Ok()) return; |
|
|
|
if (!parser.MInteger(key).Ok()) return; |
|
|
|
|
|
|
|
|
|
|
|
if (additiveSelector) { |
|
|
|
if (additiveSelector) { |
|
|
|
AddByKey(key); |
|
|
|
AddByKey(key); |
|
|
|
} |
|
|
|
} |
|
|
@ -331,6 +344,7 @@ private final function ParseMacroSelector(Parser parser, bool additiveSelector) |
|
|
|
{ |
|
|
|
{ |
|
|
|
local MutableText macroName; |
|
|
|
local MutableText macroName; |
|
|
|
local Parser.ParserState confirmedState; |
|
|
|
local Parser.ParserState confirmedState; |
|
|
|
|
|
|
|
|
|
|
|
if (parser == none) return; |
|
|
|
if (parser == none) return; |
|
|
|
if (!parser.Ok()) return; |
|
|
|
if (!parser.Ok()) return; |
|
|
|
|
|
|
|
|
|
|
@ -356,12 +370,13 @@ private final function ParseNameSelector(Parser parser, bool additiveSelector) |
|
|
|
{ |
|
|
|
{ |
|
|
|
local MutableText playerName; |
|
|
|
local MutableText playerName; |
|
|
|
local Parser.ParserState confirmedState; |
|
|
|
local Parser.ParserState confirmedState; |
|
|
|
|
|
|
|
|
|
|
|
if (parser == none) return; |
|
|
|
if (parser == none) return; |
|
|
|
if (!parser.Ok()) return; |
|
|
|
if (!parser.Ok()) return; |
|
|
|
|
|
|
|
|
|
|
|
confirmedState = parser.GetCurrentState(); |
|
|
|
confirmedState = parser.GetCurrentState(); |
|
|
|
playerName = ParseLiteral(parser); |
|
|
|
playerName = ParseLiteral(parser); |
|
|
|
if (!parser.Ok()) |
|
|
|
if (!parser.Ok() || playerName.IsEmpty()) |
|
|
|
{ |
|
|
|
{ |
|
|
|
_.memory.Free(playerName); |
|
|
|
_.memory.Free(playerName); |
|
|
|
return; |
|
|
|
return; |
|
|
@ -383,6 +398,7 @@ private final function MutableText ParseLiteral(Parser parser) |
|
|
|
{ |
|
|
|
{ |
|
|
|
local MutableText literal; |
|
|
|
local MutableText literal; |
|
|
|
local Parser.ParserState confirmedState; |
|
|
|
local Parser.ParserState confirmedState; |
|
|
|
|
|
|
|
|
|
|
|
if (parser == none) return none; |
|
|
|
if (parser == none) return none; |
|
|
|
if (!parser.Ok()) return none; |
|
|
|
if (!parser.Ok()) return none; |
|
|
|
|
|
|
|
|
|
|
@ -405,6 +421,7 @@ public final function array<EPlayer> GetPlayers() |
|
|
|
{ |
|
|
|
{ |
|
|
|
local int i; |
|
|
|
local int i; |
|
|
|
local array<EPlayer> result; |
|
|
|
local array<EPlayer> result; |
|
|
|
|
|
|
|
|
|
|
|
for (i = 0; i < currentSelection.length; i += 1) |
|
|
|
for (i = 0; i < currentSelection.length; i += 1) |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (currentSelection[i].IsExistent()) { |
|
|
|
if (currentSelection[i].IsExistent()) { |
|
|
@ -426,8 +443,10 @@ public final function array<EPlayer> GetPlayers() |
|
|
|
public final function bool ParseWith(Parser parser) |
|
|
|
public final function bool ParseWith(Parser parser) |
|
|
|
{ |
|
|
|
{ |
|
|
|
local Parser.ParserState confirmedState; |
|
|
|
local Parser.ParserState confirmedState; |
|
|
|
|
|
|
|
|
|
|
|
if (parser == none) return false; |
|
|
|
if (parser == none) return false; |
|
|
|
if (!parser.Ok()) return false; |
|
|
|
if (!parser.Ok()) return false; |
|
|
|
|
|
|
|
if (parser.HasFinished()) return false; |
|
|
|
|
|
|
|
|
|
|
|
Reset(); |
|
|
|
Reset(); |
|
|
|
confirmedState = parser.Skip().GetCurrentState(); |
|
|
|
confirmedState = parser.Skip().GetCurrentState(); |
|
|
@ -482,6 +501,7 @@ public final function bool Parse(BaseText toParse) |
|
|
|
{ |
|
|
|
{ |
|
|
|
local bool wasSuccessful; |
|
|
|
local bool wasSuccessful; |
|
|
|
local Parser parser; |
|
|
|
local Parser parser; |
|
|
|
|
|
|
|
|
|
|
|
if (toParse == none) { |
|
|
|
if (toParse == none) { |
|
|
|
return false; |
|
|
|
return false; |
|
|
|
} |
|
|
|
} |
|
|
|