summaryrefslogtreecommitdiff
path: root/public
diff options
context:
space:
mode:
authorTor Andersson <tor@ccxvii.net>2025-03-31 21:14:17 +0200
committerTor Andersson <tor@ccxvii.net>2025-03-31 21:14:46 +0200
commit4a89ecf40e5222f284fc19ba7c47ce4a28e47d97 (patch)
tree18a5571c0385cb3849c71ded3d5d8e72bff36df3 /public
parent6abea53a2413d06ed02314228ed5f9f1813d3043 (diff)
downloadserver-master.tar.gz
Use var instead of let.HEADmaster
Diffstat (limited to 'public')
-rw-r--r--public/common/util.js180
1 files changed, 94 insertions, 86 deletions
diff --git a/public/common/util.js b/public/common/util.js
index b8f1b6c..85684b0 100644
--- a/public/common/util.js
+++ b/public/common/util.js
@@ -1,16 +1,17 @@
/* COMMON LIBRARY */
function clear_undo() {
- if (game.undo) {
- game.undo.length = 0
+ if (G.undo) {
+ G.undo.length = 0
}
}
function push_undo() {
- if (game.undo) {
- let copy = {}
- for (let k in game) {
- let v = game[k]
+ var copy, k, v
+ if (G.undo) {
+ copy = {}
+ for (k in G) {
+ v = G[k]
if (k === "undo")
continue
else if (k === "log")
@@ -19,18 +20,18 @@ function push_undo() {
v = object_copy(v)
copy[k] = v
}
- game.undo.push(copy)
+ G.undo.push(copy)
}
}
function pop_undo() {
- if (game.undo) {
- let save_log = game.log
- let save_undo = game.undo
- game = save_undo.pop()
- save_log.length = game.log
- game.log = save_log
- game.undo = save_undo
+ if (G.undo) {
+ var save_log = G.log
+ var save_undo = G.undo
+ G = save_undo.pop()
+ save_log.length = G.log
+ G.log = save_log
+ G.undo = save_undo
}
}
@@ -38,7 +39,7 @@ function random(range) {
// An MLCG using integer arithmetic with doubles.
// https://www.ams.org/journals/mcom/1999-68-225/S0025-5718-99-00996-5/S0025-5718-99-00996-5.pdf
// m = 2**35 − 31
- return (game.seed = game.seed * 200105 % 34359738337) % range
+ return (G.seed = G.seed * 200105 % 34359738337) % range
}
function random_bigint(range) {
@@ -46,14 +47,15 @@ function random_bigint(range) {
// Uses BigInt for arithmetic, so is an order of magnitude slower.
// https://www.ams.org/journals/mcom/1999-68-225/S0025-5718-99-00996-5/S0025-5718-99-00996-5.pdf
// m = 2**53 - 111
- return (game.seed = Number(BigInt(game.seed) * 5667072534355537n % 9007199254740881n)) % range
+ return (G.seed = Number(BigInt(G.seed) * 5667072534355537n % 9007199254740881n)) % range
}
function shuffle(list) {
// Fisher-Yates shuffle
- for (let i = list.length - 1; i > 0; --i) {
- let j = random(i + 1)
- let tmp = list[j]
+ var i, j, tmp
+ for (i = list.length - 1; i > 0; --i) {
+ j = random(i + 1)
+ tmp = list[j]
list[j] = list[i]
list[i] = tmp
}
@@ -61,9 +63,10 @@ function shuffle(list) {
function shuffle_bigint(list) {
// Fisher-Yates shuffle
- for (let i = list.length - 1; i > 0; --i) {
- let j = random_bigint(i + 1)
- let tmp = list[j]
+ var i, j, tmp
+ for (i = list.length - 1; i > 0; --i) {
+ j = random_bigint(i + 1)
+ tmp = list[j]
list[j] = list[i]
list[i] = tmp
}
@@ -71,11 +74,12 @@ function shuffle_bigint(list) {
// Fast deep copy for objects without cycles
function object_copy(original) {
+ var copy, i, n, v
if (Array.isArray(original)) {
- let n = original.length
- let copy = new Array(n)
- for (let i = 0; i < n; ++i) {
- let v = original[i]
+ n = original.length
+ copy = new Array(n)
+ for (i = 0; i < n; ++i) {
+ v = original[i]
if (typeof v === "object" && v !== null)
copy[i] = object_copy(v)
else
@@ -83,9 +87,9 @@ function object_copy(original) {
}
return copy
} else {
- let copy = {}
- for (let i in original) {
- let v = original[i]
+ copy = {}
+ for (i in original) {
+ v = original[i]
if (typeof v === "object" && v !== null)
copy[i] = object_copy(v)
else
@@ -98,34 +102,34 @@ function object_copy(original) {
// Array remove and insert (faster than splice)
function array_remove(array, index) {
- let n = array.length
- for (let i = index + 1; i < n; ++i)
+ var i, n = array.length
+ for (i = index + 1; i < n; ++i)
array[i - 1] = array[i]
array.length = n - 1
}
function array_remove_item(array, item) {
- let n = array.length
- for (let i = 0; i < n; ++i)
+ var i, n = array.length
+ for (i = 0; i < n; ++i)
if (array[i] === item)
return array_remove(array, i)
}
function array_insert(array, index, item) {
- for (let i = array.length; i > index; --i)
+ for (var i = array.length; i > index; --i)
array[i] = array[i - 1]
array[index] = item
}
function array_remove_pair(array, index) {
- let n = array.length
- for (let i = index + 2; i < n; ++i)
+ var i, n = array.length
+ for (i = index + 2; i < n; ++i)
array[i - 2] = array[i]
array.length = n - 2
}
function array_insert_pair(array, index, key, value) {
- for (let i = array.length; i > index; i -= 2) {
+ for (var i = array.length; i > index; i -= 2) {
array[i] = array[i-2]
array[i+1] = array[i-1]
}
@@ -140,11 +144,11 @@ function set_clear(set) {
}
function set_has(set, item) {
- let a = 0
- let b = set.length - 1
+ var a = 0
+ var b = set.length - 1
while (a <= b) {
- let m = (a + b) >> 1
- let x = set[m]
+ var m = (a + b) >> 1
+ var x = set[m]
if (item < x)
b = m - 1
else if (item > x)
@@ -156,11 +160,11 @@ function set_has(set, item) {
}
function set_add(set, item) {
- let a = 0
- let b = set.length - 1
+ var a = 0
+ var b = set.length - 1
while (a <= b) {
- let m = (a + b) >> 1
- let x = set[m]
+ var m = (a + b) >> 1
+ var x = set[m]
if (item < x)
b = m - 1
else if (item > x)
@@ -172,11 +176,11 @@ function set_add(set, item) {
}
function set_delete(set, item) {
- let a = 0
- let b = set.length - 1
+ var a = 0
+ var b = set.length - 1
while (a <= b) {
- let m = (a + b) >> 1
- let x = set[m]
+ var m = (a + b) >> 1
+ var x = set[m]
if (item < x)
b = m - 1
else if (item > x)
@@ -189,11 +193,11 @@ function set_delete(set, item) {
}
function set_toggle(set, item) {
- let a = 0
- let b = set.length - 1
+ var a = 0
+ var b = set.length - 1
while (a <= b) {
- let m = (a + b) >> 1
- let x = set[m]
+ var m = (a + b) >> 1
+ var x = set[m]
if (item < x)
b = m - 1
else if (item > x)
@@ -213,11 +217,11 @@ function map_clear(map) {
}
function map_has(map, key) {
- let a = 0
- let b = (map.length >> 1) - 1
+ var a = 0
+ var b = (map.length >> 1) - 1
while (a <= b) {
- let m = (a + b) >> 1
- let x = map[m<<1]
+ var m = (a + b) >> 1
+ var x = map[m<<1]
if (key < x)
b = m - 1
else if (key > x)
@@ -229,11 +233,11 @@ function map_has(map, key) {
}
function map_get(map, key, missing) {
- let a = 0
- let b = (map.length >> 1) - 1
+ var a = 0
+ var b = (map.length >> 1) - 1
while (a <= b) {
- let m = (a + b) >> 1
- let x = map[m<<1]
+ var m = (a + b) >> 1
+ var x = map[m<<1]
if (key < x)
b = m - 1
else if (key > x)
@@ -245,11 +249,11 @@ function map_get(map, key, missing) {
}
function map_set(map, key, value) {
- let a = 0
- let b = (map.length >> 1) - 1
+ var a = 0
+ var b = (map.length >> 1) - 1
while (a <= b) {
- let m = (a + b) >> 1
- let x = map[m<<1]
+ var m = (a + b) >> 1
+ var x = map[m<<1]
if (key < x)
b = m - 1
else if (key > x)
@@ -263,11 +267,11 @@ function map_set(map, key, value) {
}
function map_delete(map, key) {
- let a = 0
- let b = (map.length >> 1) - 1
+ var a = 0
+ var b = (map.length >> 1) - 1
while (a <= b) {
- let m = (a + b) >> 1
- let x = map[m<<1]
+ var m = (a + b) >> 1
+ var x = map[m<<1]
if (key < x)
b = m - 1
else if (key > x)
@@ -280,29 +284,31 @@ function map_delete(map, key) {
}
function map_for_each(map, f) {
- for (let i = 0; i < map.length; i += 2)
+ for (var i = 0; i < map.length; i += 2)
f(map[i], map[i+1])
}
function object_diff(a, b) {
+ var i, key
+ var a_length
if (a === b)
return false
if (a !== null && b !== null && typeof a === "object" && typeof b === "object") {
if (Array.isArray(a)) {
if (!Array.isArray(b))
return true
- let a_length = a.length
+ a_length = a.length
if (b.length !== a_length)
return true
- for (let i = 0; i < a_length; ++i)
+ for (i = 0; i < a_length; ++i)
if (object_diff(a[i], b[i]))
return true
return false
}
- for (let key in a)
+ for (key in a)
if (object_diff(a[key], b[key]))
return true
- for (let key in b)
+ for (key in b)
if (!(key in a))
return true
return false
@@ -312,18 +318,19 @@ function object_diff(a, b) {
// same as Object.groupBy
function object_group_by(items, callback) {
- let groups = {}
+ var item, key
+ var groups = {}
if (typeof callback === "function") {
- for (let item of items) {
- let key = callback(item)
+ for (item of items) {
+ key = callback(item)
if (key in groups)
groups[key].push(item)
else
groups[key] = [ item ]
}
} else {
- for (let item of items) {
- let key = item[callback]
+ for (item of items) {
+ key = item[callback]
if (key in groups)
groups[key].push(item)
else
@@ -334,20 +341,21 @@ function object_group_by(items, callback) {
}
function map_group_by(items, callback) {
- let groups = []
+ var item, key, arr
+ var groups = []
if (typeof callback === "function") {
- for (let item of items) {
- let key = callback(item)
- let arr = map_get(groups, key)
+ for (item of items) {
+ key = callback(item)
+ arr = map_get(groups, key)
if (arr)
arr.push(item)
else
map_set(groups, key, [ item ])
}
} else {
- for (let item of items) {
- let key = item[callback]
- let arr = map_get(groups, key)
+ for (item of items) {
+ key = item[callback]
+ arr = map_get(groups, key)
if (arr)
arr.push(item)
else