From fd8b9a3a44cadc048a32e0a6189a59716c2432d1 Mon Sep 17 00:00:00 2001
From: Perttu Ahola <celeron55@gmail.com>
Date: Sun, 27 Nov 2011 13:03:54 +0200
Subject: [PATCH] Warn about unsatisfied dependencies

---
 src/server.cpp | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/src/server.cpp b/src/server.cpp
index 58611bed1..f3e497ff1 100644
--- a/src/server.cpp
+++ b/src/server.cpp
@@ -979,6 +979,7 @@ static core::list<ModSpec> getMods(core::list<std::string> &modspaths)
 				mods_satisfied.push(spec);
 		}
 	}
+	// Sort by depencencies
 	while(!mods_satisfied.empty()){
 		ModSpec mod = mods_satisfied.front();
 		mods_satisfied.pop();
@@ -994,6 +995,22 @@ static core::list<ModSpec> getMods(core::list<std::string> &modspaths)
 			mods_satisfied.push(mod2);
 		}
 	}
+	// Check unsatisfied dependencies
+	for(core::list<ModSpec>::Iterator i = mods_unsorted.begin();
+			i != mods_unsorted.end(); i++){
+		ModSpec mod = *i;
+		if(mod.unsatisfied_depends.empty())
+			continue;
+		errorstream<<"mod \""<<mod.name
+				<<"\" has unsatisfied dependencies:";
+		for(std::set<std::string>::iterator
+				i = mod.unsatisfied_depends.begin();
+				i != mod.unsatisfied_depends.end(); i++){
+			errorstream<<" \""<<(*i)<<"\"";
+		}
+		errorstream<<". Loading nevertheless."<<std::endl;
+		mods_sorted.push_back(mod);
+	}
 	return mods_sorted;
 }
 
-- 
GitLab