PRC8/nwn/nwnprc/trunk/users/jaysyn/hp_string_util.nss
Jaysyn904 8a034b0da0 2025/05/25 Update
Updated all ToB maneuvers with saves to respect Blade Meditation.
Added HasBladeMeditationForDiscipline()
Expanded Witchborn Binder for epic progression.
Fixed a few bugs around Vile Martial strike.
Echo Spell shouldn't target self or items.
Muckdweller should have a -6 STR.
Added new Vile Martial feats to GetVileFeats().
Grappling something now removes invisibility.
Started on Power Attack NUI.
Starmantle shouldn't stack.
Factotum & Shadow Thief of Amn require UMD checks for scroll casting.
2025-05-25 16:16:36 -04:00

99 lines
2.4 KiB
Plaintext

//::///////////////////////////////////////////////
//:: String Util
//:: hp_string_util
//:://////////////////////////////////////////////
/*
A util class for providing useful string functions.
*/
//:://////////////////////////////////////////////
//:: Created By: Rakiov
//:: Created On: 22.05.2005
//:://////////////////////////////////////////////
//
// StringSplit
// Takes a string and splits it by " " into a json list of strings
// i.e. "this is a test" returns
// {
// "this",
// "is",
// "a",
// "test"
// }
//
// Parameters:
// string input the string input
//
// Returns:
// json the json list of words
//
json StringSplit(string input);
//
// TrimString
// Takes a string and trims any leading whitespace characters
// i.e. " this is a test" returns
// "this is a test"
//
// Parameters:
// input string the input string to trim
//
// Returns:
// string the trimmed string
//
string TrimString(string input);
json StringSplit(string input)
{
json retValue = JsonArray();
string subString = "";
//trim any whitespace characters first
string currString = TrimString(input);
// loop until we process the whole string
while(currString != "")
{
string currChar = GetStringLeft(currString, 1);
if (currChar != "" && currChar != " ")
{
// if the current character isn't nothing or whitespace, then add it
// to the current sub string.
subString += currChar;
}
else
{
// otherwise if the substring is not empty, then add it to the list
// of words to return
if(subString != "")
{
retValue = JsonArrayInsert(retValue, JsonString(subString));
subString = "";
}
}
// pop and move to next character
currString = GetStringRight(currString, GetStringLength(currString)-1);
}
// if there is any sub string left at the end of the loop, add it to the list
if(subString != "")
{
retValue = JsonArrayInsert(retValue, JsonString(subString));
}
return retValue;
}
string TrimString(string input)
{
string retValue = input;
// while the string is not empty and we are looking at a whitespace, pop it.
while(retValue != "" && GetStringLeft(retValue, 1) == " ")
{
retValue = GetStringRight(retValue, GetStringLength(retValue)-1);
}
return retValue;
}