From 446f7d337e59370056bd2ae66dfe4f9d1e117e9d Mon Sep 17 00:00:00 2001 From: Markus Mittendrein Date: Thu, 1 Aug 2019 01:20:24 +0200 Subject: DTUtility: Add recursive option to Extend --- DTUtility.c | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) (limited to 'DTUtility.c') diff --git a/DTUtility.c b/DTUtility.c index 7312ee9..5d09614 100644 --- a/DTUtility.c +++ b/DTUtility.c @@ -850,11 +850,28 @@ global func GetPlayerByID(int id) return NO_OWNER; } -global func Extend(map base, map extension) +global func Extend(map base, map extension, bool recursive) { - for(var key, value in extension) + if(recursive) { - base[key] = value; + for(var key, value in extension) + { + if(GetType(base[key]) == C4V_Map && GetType(value) == C4V_Map) + { + base[key] = Extend(base[key], value, true); + } + else + { + base[key] = value; + } + } + } + else + { + for(var key, value in extension) + { + base[key] = value; + } } return base; } -- cgit v1.2.3-54-g00ecf