removed MDArray, wait for Cube 2 backport of nested lists
git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@7452 e016b1c5-ed68-44aa-a2f7-31cac88cffde
This commit is contained in:
@@ -268,39 +268,6 @@ docargument [V] [the list to browse] [] [0];
|
||||
docargument [N] [the alias containing the current element value.] [] [0];
|
||||
docargument [body] [the body to execute on each iteration] [] [0];
|
||||
docexample [looplist "zero one two three" number [ echo $number ]] [];
|
||||
docident [MDArray_Add_To_Subarray] [Adds a string to an existing subarray in a cubescript multidimensional array.];
|
||||
docargument [A] [name of alias (multidimensional array)] [] [0];
|
||||
docargument [N] [name of target subarray to add to] [] [0];
|
||||
docargument [C] [string to add to target subarray] [] [0];
|
||||
docexample [MDArray_New_Subarray test list1 "this is part of list1"; MDArray_Add_To_Subarray test list1 "and so is this"; echo (MDArray_Get test list1 -1)] [Output: "this is part of list1" "and so is this"];
|
||||
docident [MDArray_Delete_Subarray] [Deletes an entire subarray from an existing cubescript multidimensional array.];
|
||||
docargument [A] [name of alias (multidimensional array)] [] [0];
|
||||
docargument [N] [name of target subarray to delete] [] [0];
|
||||
docident [MDArray_Get] [Returns a subarray or a subarray element of a cubescript multidimensional array.];
|
||||
docargument [A] [name of alias (multidimensional array)] [] [0];
|
||||
docargument [N] [name of target subarray to get] [] [0];
|
||||
docargument [E] [element # of subarray to get (-1 to return the whole subarray)] [] [0];
|
||||
docexample [MDArray_New_Subarray test words "how now brown cow"; echo (MDArray_Get test words -1); echo (MDArray_Get test words 2)] [Output: how now brown cow];
|
||||
docident [MDArray_Get_All_Subarray_Names] [Returns a list of all subarray names in a cubescript multidimensional array.];
|
||||
docargument [A] [name of alias (multidimensional array)] [] [0];
|
||||
docexample [MDArray_New_Subarray test chars "a b c d e f"; MDArray_New_Subarray test words "how now brown cow"; echo (MDArray_Get_All_Subarray_Names test)] [Output: chars words];
|
||||
docident [MDArray_Get_Subarray_Count] [Returns the number of subarrays in a cubescript multidimensional array.];
|
||||
docargument [A] [name of alias (multidimensional array)] [] [0];
|
||||
docident [MDArray_Modify_Subarray] [Modifies a subarray element of a cubescript multidimensional array.];
|
||||
docargument [A] [name of alias (multidimensional array)] [] [0];
|
||||
docargument [N] [name of target subarray to modify] [] [0];
|
||||
docargument [E] [element # of subarray to modify] [] [0];
|
||||
docargument [C] [new value of subarray element] [] [0];
|
||||
docexample [MDArray_New_Subarray test numbers "1 2 3 4 5"; MDArray_Modify_Subarray test numbers 2 9; echo (MDArray_Get test numbers -1)] [Output: 1 2 9 4 5];
|
||||
docident [MDArray_New_Subarray] [Adds a subarray to a cubescript multidimensional array. (alias)];
|
||||
docargument [A] [name of alias (multidimensional array)] [] [0];
|
||||
docargument [N] [name of subarray to create] [] [0];
|
||||
docargument [C] [subarray content (string)] [] [0];
|
||||
docexample [MDArray_New_Subarray test words "how now brown cow"; echo (MDArray_Get test words -1); echo (MDArray_Get test words 2)] [Output: how now brown cow];
|
||||
docident [MDArray_Search] [Returns a list of all subarray names that have content matching a specific keyword.];
|
||||
docargument [A] [name of alias (multidimensional array)] [] [0];
|
||||
docargument [K] [keyword to search for] [] [0];
|
||||
docexample [MDArray_New_Subarray test words "how now brown cow"; MDArray_New_Subarray test days "monday tuesday wednesday thursday friday saturday sunday"; MDArray_New_Subarray test sentences [ "his shirt was brown" "her shirt was white" ]; echo (MDArray_Search test brown)] [Output: words sentences];
|
||||
docident [mod] [Performs a modulo operation.];
|
||||
docargument [A] [the dividend] [] [0];
|
||||
docargument [B] [the divisor] [] [0];
|
||||
|
||||
@@ -1,216 +0,0 @@
|
||||
// Cubescript Multidimensional Arrays
|
||||
persistidents 0
|
||||
|
||||
islists = [
|
||||
bool = 0
|
||||
loop il (listlen $arg1) [
|
||||
if (> (listlen (at $arg1 $il)) 1) [
|
||||
bool = 1; break
|
||||
]
|
||||
]
|
||||
result $bool
|
||||
]
|
||||
|
||||
countQuotes = [
|
||||
numquotes = 0
|
||||
loop cq (strlen $arg1) [
|
||||
if (testchar (substr $arg1 $cq 1) 8) [
|
||||
++ numquotes
|
||||
]
|
||||
]
|
||||
result $numquotes
|
||||
]
|
||||
|
||||
getQuotePosition = [
|
||||
open_q = -1
|
||||
loop gqp (strlen $arg1) [
|
||||
if (testchar (substr $arg1 $gqp 1) 8) [
|
||||
open_q = $gqp
|
||||
break
|
||||
]
|
||||
]
|
||||
]
|
||||
|
||||
reverseString = [
|
||||
oldstr = $arg1
|
||||
newstr = []
|
||||
loop ri (strlen $oldstr) [
|
||||
newstr = (concatword $newstr (substr $oldstr (* (+ $ri 1) -1) 1))
|
||||
]
|
||||
result $newstr
|
||||
]
|
||||
// returns the subarray name of a open bracket position in an existing mdarray
|
||||
extractSubarrayName = [
|
||||
open_bracket_pos = $arg2
|
||||
subarray_name = []
|
||||
|
||||
loop esn (strlen $arg1) [
|
||||
tmpchar = (substr $arg1 (- $open_bracket_pos (+ $esn 2)) 1)
|
||||
if (testchar $tmpchar 7) break [
|
||||
if (&& (! (strcmp $tmpchar "[")) (! (strcmp $tmpchar "]"))) [
|
||||
subarray_name = (concatword $subarray_name $tmpchar)
|
||||
]
|
||||
]
|
||||
]
|
||||
result (reverseString $subarray_name)
|
||||
]
|
||||
// adds a new subarray to an existing mdarray
|
||||
MDArray_New_Subarray = [
|
||||
if (= (findlist (getalias $arg1) $arg2) -1) [
|
||||
add2list $arg1 $arg2
|
||||
if (islists $arg3) [
|
||||
add2list $arg1 (addpunct (concatword [ ] $arg3 [ ]) 1)
|
||||
] [
|
||||
add2list $arg1 (addpunct (concatword [ ] (addpunct $arg3) [ ]) 1)
|
||||
]
|
||||
]
|
||||
]
|
||||
// finds the open and close bracket pair positions of a subarray in an existing mdarray
|
||||
MDArray_Get_Bracket_Positions = [
|
||||
targ1 = $arg1
|
||||
targ2 = $arg2
|
||||
open_bracket_pos = (+ (strpos $targ1 $targ2) (+ (strlen $targ2) 1))
|
||||
close_bracket_pos = -1
|
||||
|
||||
loop mgp (- (strlen $targ1) $open_bracket_pos) [
|
||||
next_char = (+ (+ $open_bracket_pos $mgp) 1)
|
||||
if (strstr (substr $targ1 $next_char 1) "]") [
|
||||
close_bracket_pos = $next_char
|
||||
break
|
||||
]
|
||||
]
|
||||
]
|
||||
// returns either an entire subarray or a single element from a subarray of an existing mdarray
|
||||
MDArray_Get = [
|
||||
marg1 = $arg1
|
||||
marg2 = $arg2
|
||||
marg3 = $arg3
|
||||
mdarray = (getalias $marg1)
|
||||
target = (findlist $mdarray $marg2)
|
||||
|
||||
if (!= $target -1) [
|
||||
MDArray_Get_Bracket_Positions $mdarray $marg2
|
||||
if (!= $close_bracket_pos -1) [
|
||||
++ open_bracket_pos // skip the bracket itself when extracting the subarray with the line below
|
||||
-- close_bracket_pos
|
||||
subarray = (substr $mdarray $open_bracket_pos (- $close_bracket_pos $open_bracket_pos))
|
||||
|
||||
if (= (countQuotes $subarray) 2) [
|
||||
getQuotePosition $subarray
|
||||
if (&& (checkrange $open_q 0 1) (testchar (substr $subarray -1) 8)) [ // beginning/end quotes need to be trimmed from single-list subarrays
|
||||
subarray = (substr $subarray (+ $open_q 1))
|
||||
subarray = (substr $subarray 0 (- (strlen $subarray) 1))
|
||||
]
|
||||
]
|
||||
|
||||
if (= $marg3 -1) [
|
||||
result $subarray
|
||||
] [ result (at $subarray $marg3) ]
|
||||
]
|
||||
] [ echo (red)Error: $marg2 is not a subarray of $marg1 ]
|
||||
]
|
||||
// returns a list of all opening bracket "[" positions in an existing mdarray
|
||||
MDArray_Get_All_Opening_Bracket_Positions = [
|
||||
o_positions = []
|
||||
loop mga (strlen $arg1) [
|
||||
if (strcmp (substr $arg1 $mga 1) "[") [
|
||||
add2list o_positions $mga
|
||||
]
|
||||
]
|
||||
if (listlen $o_positions) [
|
||||
result $o_positions
|
||||
] [ result -1 ]
|
||||
]
|
||||
// returns the number of subarrays in an existing mdarray
|
||||
MDArray_Get_Subarray_Count = [
|
||||
result (listlen (MDArray_Get_All_Opening_Bracket_Positions (getalias $arg1)))
|
||||
]
|
||||
// returns a list of all subarray names in an existing mdarray
|
||||
MDArray_Get_All_Subarray_Names = [
|
||||
opening_brackets = (MDArray_Get_All_Opening_Bracket_Positions (getalias $arg1))
|
||||
subarray_names = []
|
||||
|
||||
loop mgn (listlen $opening_brackets) [
|
||||
add2list subarray_names (extractSubarrayName (getalias $arg1) (at $opening_brackets $mgn))
|
||||
]
|
||||
result $subarray_names
|
||||
]
|
||||
// searches the contents of all subarrays in an existing mdarray for a keyword
|
||||
// returns a list of all subarray names that have content with matches
|
||||
MDArray_Search = [
|
||||
mdarray = (getalias $arg1)
|
||||
token = $arg2
|
||||
subarrays = (MDArray_Get_All_Subarray_Names $arg1)
|
||||
search_results = []
|
||||
|
||||
loop ms (listlen $subarrays) [
|
||||
curarray = (MDArray_Get $arg1 (at $subarrays $ms) -1)
|
||||
if (strstr $curarray $token) [
|
||||
if (! (strstr $search_results (at $subarrays $ms))) [
|
||||
add2list search_results (at $subarrays $ms)
|
||||
]
|
||||
]
|
||||
]
|
||||
result $search_results
|
||||
]
|
||||
// deletes an entire subarray from an existing mdarray
|
||||
MDArray_Delete_Subarray = [
|
||||
orig_array = (getalias $arg1)
|
||||
target_subarray = $arg2
|
||||
target_pos = (strpos $orig_array $target_subarray)
|
||||
gotclose = -1
|
||||
delstr = []
|
||||
|
||||
if (!= $target_pos -1) [
|
||||
loop mds (strlen $orig_array) [
|
||||
if (< $mds $target_pos) continue [
|
||||
if (strcmp (substr $orig_array $mds 1) "]") [ gotclose = $mds; break ]
|
||||
]
|
||||
]
|
||||
delstr = (substr $orig_array $target_pos (- (+ $gotclose 1) $target_pos))
|
||||
$arg1 = (strreplace $orig_array $delstr [])
|
||||
result (getalias $arg1)
|
||||
]
|
||||
]
|
||||
// modifies an existing element in an existing subarray
|
||||
MDArray_Modify_Subarray = [
|
||||
original_subarray = (MDArray_Get $arg1 $arg2 -1)
|
||||
target_elem = $arg3
|
||||
new_elem = $arg4
|
||||
new_subarray = []
|
||||
|
||||
if (! (countQuotes $original_subarray)) [
|
||||
original_subarray = (addpunct $original_subarray)
|
||||
]
|
||||
loop mms (listlen $original_subarray) [
|
||||
next_elem = (at $original_subarray $mms)
|
||||
if (= $mms $target_elem) [
|
||||
if (> (listlen $new_elem) 1) [
|
||||
add2list new_subarray (addpunct $new_elem)
|
||||
] [ add2list new_subarray $new_elem ]
|
||||
] [
|
||||
if (> (listlen $next_elem) 1) [
|
||||
add2list new_subarray (addpunct $next_elem)
|
||||
] [ add2list new_subarray $next_elem ]
|
||||
]
|
||||
]
|
||||
MDArray_Delete_Subarray $arg1 $arg2
|
||||
MDArray_New_Subarray $arg1 $arg2 $new_subarray
|
||||
]
|
||||
// adds a new element to an existing subarray
|
||||
MDArray_Add_To_Subarray = [
|
||||
mdarray = (getalias $arg1)
|
||||
to_add = $arg3
|
||||
if (!= (findlist $mdarray $arg2) -1) [
|
||||
subarray = (MDArray_Get $arg1 $arg2 -1)
|
||||
if (! (countQuotes $subarray)) [ subarray = (addpunct $subarray) ]
|
||||
if (! (countQuotes $to_add)) [ to_add = (addpunct $to_add) ]
|
||||
MDArray_Delete_Subarray $arg1 $arg2
|
||||
MDArray_New_Subarray $arg1 $arg2 (format [%1 %2] $subarray $to_add)
|
||||
]
|
||||
]
|
||||
|
||||
// some of these aliases can cause issues if they get stored in saved.cfg (missing bracket errors/etc.)
|
||||
addListOnQuit [bool MDArray_New_Subarray MDArray_Get_Bracket_Positions MDArray_Get reverseString MDArray_Get_All_Opening_Bracket_Positions MDArray_Get_Subarray_Count MDArray_Get_All_Subarray_Names extractSubarrayName MDArray_Search MDArray_Delete_Subarray MDArray_Modify_Subarray original_subarray target_elem new_elem new_subarray next_elem islists hasQuotePair got_open_quote got_close_quote mdarray subarray firstchar lastchar oldstr newstr subarray_names subarray_name tmpchar token subarrays search_results curarray orig_array target_subarray target_pos gotclose delstr next_char]
|
||||
|
||||
persistidents 1
|
||||
@@ -476,7 +476,6 @@ const customclaimadminscript [
|
||||
|
||||
// Execute other .cfgs/scripts.
|
||||
run on_quit
|
||||
run mdarray
|
||||
run parsestring
|
||||
run dyngamma
|
||||
run survival
|
||||
|
||||
Reference in New Issue
Block a user