diff options
| author | Markus Mittendrein <git@maxmitti.tk> | 2019-08-01 01:20:24 +0200 |
|---|---|---|
| committer | Markus Mittendrein <git@maxmitti.tk> | 2019-08-01 01:20:24 +0200 |
| commit | 446f7d337e59370056bd2ae66dfe4f9d1e117e9d (patch) | |
| tree | 6fefc7563aaf1ff39c43c8842bee29bd6141bdcc /DTUtility.c | |
| parent | 2325b3df8c5c343ec59f7faf909f890e32ace35e (diff) | |
| download | System.c4g-446f7d337e59370056bd2ae66dfe4f9d1e117e9d.tar.gz System.c4g-446f7d337e59370056bd2ae66dfe4f9d1e117e9d.zip | |
DTUtility: Add recursive option to Extend
Diffstat (limited to 'DTUtility.c')
| -rw-r--r-- | DTUtility.c | 23 |
1 files changed, 20 insertions, 3 deletions
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;
}
|
