| 366 | } |
| 367 | |
| 368 | Json NpcDatabase::buildConfig(String const& typeName, Json const& overrides) const { |
| 369 | auto const& baseConfig = m_npcTypes.get(typeName); |
| 370 | auto config = mergeConfigValues(baseConfig, overrides); |
| 371 | |
| 372 | String baseTypeName = baseConfig.getString("baseType", ""); |
| 373 | if (baseTypeName.empty()) { |
| 374 | return config; |
| 375 | } else { |
| 376 | return buildConfig(baseTypeName, config); |
| 377 | } |
| 378 | } |
| 379 | |
| 380 | Json NpcDatabase::mergeConfigValues(Json const& base, Json const& merger) const { |
| 381 | if (base.type() == Json::Type::Object && merger.type() == Json::Type::Object) { |