Explorar o código

- (linux) fixed searching/loading of scripting libraries
- (linux) moved AI libraries to /lib/vcmi/AI/lib*, ERM lib to /lib/vcmi/Scripting/*
- gcc compile and warnings fixes

Ivan Savenko %!s(int64=14) %!d(string=hai) anos
pai
achega
a89895452a

+ 6 - 4
AI/EmptyAI/Makefile.am

@@ -1,7 +1,9 @@
-pkglib_LTLIBRARIES = EmptyAI.la
-EmptyAI_la_LIBADD = $(top_builddir)/lib/libvcmi.la
-EmptyAI_la_LDFLAGS = -L$(top_builddir)/lib -module
-EmptyAI_la_SOURCES = \
+vcmiaidir = $(VCMI_AI_LIBS_DIR)
+
+vcmiai_LTLIBRARIES = libEmptyAI.la
+libEmptyAI_la_LIBADD = $(top_builddir)/lib/libvcmi.la
+libEmptyAI_la_LDFLAGS = -L$(top_builddir)/lib -module
+libEmptyAI_la_SOURCES = \
 	CEmptyAI.cpp \
 	CEmptyAI.h \
 	exp_funcs.cpp

+ 41 - 37
AI/EmptyAI/Makefile.in

@@ -76,17 +76,18 @@ am__nobase_list = $(am__nobase_strip_setup); \
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__installdirs = "$(DESTDIR)$(pkglibdir)"
-LTLIBRARIES = $(pkglib_LTLIBRARIES)
-EmptyAI_la_DEPENDENCIES = $(top_builddir)/lib/libvcmi.la
-am_EmptyAI_la_OBJECTS = CEmptyAI.lo exp_funcs.lo
-EmptyAI_la_OBJECTS = $(am_EmptyAI_la_OBJECTS)
+am__installdirs = "$(DESTDIR)$(vcmiaidir)"
+LTLIBRARIES = $(vcmiai_LTLIBRARIES)
+libEmptyAI_la_DEPENDENCIES = $(top_builddir)/lib/libvcmi.la
+am_libEmptyAI_la_OBJECTS = CEmptyAI.lo exp_funcs.lo
+libEmptyAI_la_OBJECTS = $(am_libEmptyAI_la_OBJECTS)
 AM_V_lt = $(am__v_lt_$(V))
 am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
 am__v_lt_0 = --silent
-EmptyAI_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
-	$(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
-	$(CXXFLAGS) $(EmptyAI_la_LDFLAGS) $(LDFLAGS) -o $@
+libEmptyAI_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \
+	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \
+	$(AM_CXXFLAGS) $(CXXFLAGS) $(libEmptyAI_la_LDFLAGS) $(LDFLAGS) \
+	-o $@
 DEFAULT_INCLUDES = -I.@am__isrc@
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -129,8 +130,8 @@ am__v_CCLD_0 = @echo "  CCLD  " $@;
 AM_V_GEN = $(am__v_GEN_$(V))
 am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
 am__v_GEN_0 = @echo "  GEN   " $@;
-SOURCES = $(EmptyAI_la_SOURCES)
-DIST_SOURCES = $(EmptyAI_la_SOURCES)
+SOURCES = $(libEmptyAI_la_SOURCES)
+DIST_SOURCES = $(libEmptyAI_la_SOURCES)
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -209,6 +210,8 @@ SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
+VCMI_AI_LIBS_DIR = @VCMI_AI_LIBS_DIR@
+VCMI_SCRIPTING_LIBS_DIR = @VCMI_SCRIPTING_LIBS_DIR@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
@@ -263,10 +266,11 @@ target_alias = @target_alias@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-pkglib_LTLIBRARIES = EmptyAI.la
-EmptyAI_la_LIBADD = $(top_builddir)/lib/libvcmi.la
-EmptyAI_la_LDFLAGS = -L$(top_builddir)/lib -module
-EmptyAI_la_SOURCES = \
+vcmiaidir = $(VCMI_AI_LIBS_DIR)
+vcmiai_LTLIBRARIES = libEmptyAI.la
+libEmptyAI_la_LIBADD = $(top_builddir)/lib/libvcmi.la
+libEmptyAI_la_LDFLAGS = -L$(top_builddir)/lib -module
+libEmptyAI_la_SOURCES = \
 	CEmptyAI.cpp \
 	CEmptyAI.h \
 	exp_funcs.cpp
@@ -305,39 +309,39 @@ $(top_srcdir)/configure:  $(am__configure_deps)
 $(ACLOCAL_M4):  $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
-install-pkglibLTLIBRARIES: $(pkglib_LTLIBRARIES)
+install-vcmiaiLTLIBRARIES: $(vcmiai_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
-	test -z "$(pkglibdir)" || $(MKDIR_P) "$(DESTDIR)$(pkglibdir)"
-	@list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \
+	test -z "$(vcmiaidir)" || $(MKDIR_P) "$(DESTDIR)$(vcmiaidir)"
+	@list='$(vcmiai_LTLIBRARIES)'; test -n "$(vcmiaidir)" || list=; \
 	list2=; for p in $$list; do \
 	  if test -f $$p; then \
 	    list2="$$list2 $$p"; \
 	  else :; fi; \
 	done; \
 	test -z "$$list2" || { \
-	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkglibdir)'"; \
-	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkglibdir)"; \
+	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(vcmiaidir)'"; \
+	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(vcmiaidir)"; \
 	}
 
-uninstall-pkglibLTLIBRARIES:
+uninstall-vcmiaiLTLIBRARIES:
 	@$(NORMAL_UNINSTALL)
-	@list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \
+	@list='$(vcmiai_LTLIBRARIES)'; test -n "$(vcmiaidir)" || list=; \
 	for p in $$list; do \
 	  $(am__strip_dir) \
-	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkglibdir)/$$f'"; \
-	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkglibdir)/$$f"; \
+	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(vcmiaidir)/$$f'"; \
+	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(vcmiaidir)/$$f"; \
 	done
 
-clean-pkglibLTLIBRARIES:
-	-test -z "$(pkglib_LTLIBRARIES)" || rm -f $(pkglib_LTLIBRARIES)
-	@list='$(pkglib_LTLIBRARIES)'; for p in $$list; do \
+clean-vcmiaiLTLIBRARIES:
+	-test -z "$(vcmiai_LTLIBRARIES)" || rm -f $(vcmiai_LTLIBRARIES)
+	@list='$(vcmiai_LTLIBRARIES)'; for p in $$list; do \
 	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
 	  test "$$dir" != "$$p" || dir=.; \
 	  echo "rm -f \"$${dir}/so_locations\""; \
 	  rm -f "$${dir}/so_locations"; \
 	done
-EmptyAI.la: $(EmptyAI_la_OBJECTS) $(EmptyAI_la_DEPENDENCIES) 
-	$(AM_V_CXXLD)$(EmptyAI_la_LINK) -rpath $(pkglibdir) $(EmptyAI_la_OBJECTS) $(EmptyAI_la_LIBADD) $(LIBS)
+libEmptyAI.la: $(libEmptyAI_la_OBJECTS) $(libEmptyAI_la_DEPENDENCIES) 
+	$(AM_V_CXXLD)$(libEmptyAI_la_LINK) -rpath $(vcmiaidir) $(libEmptyAI_la_OBJECTS) $(libEmptyAI_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
 	-rm -f *.$(OBJEXT)
@@ -464,7 +468,7 @@ check-am: all-am
 check: check-am
 all-am: Makefile $(LTLIBRARIES)
 installdirs:
-	for dir in "$(DESTDIR)$(pkglibdir)"; do \
+	for dir in "$(DESTDIR)$(vcmiaidir)"; do \
 	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
 	done
 install: install-am
@@ -494,7 +498,7 @@ maintainer-clean-generic:
 	@echo "it deletes files that may require special tools to rebuild."
 clean: clean-am
 
-clean-am: clean-generic clean-libtool clean-pkglibLTLIBRARIES \
+clean-am: clean-generic clean-libtool clean-vcmiaiLTLIBRARIES \
 	mostlyclean-am
 
 distclean: distclean-am
@@ -515,13 +519,13 @@ info: info-am
 
 info-am:
 
-install-data-am:
+install-data-am: install-vcmiaiLTLIBRARIES
 
 install-dvi: install-dvi-am
 
 install-dvi-am:
 
-install-exec-am: install-pkglibLTLIBRARIES
+install-exec-am:
 
 install-html: install-html-am
 
@@ -561,23 +565,23 @@ ps: ps-am
 
 ps-am:
 
-uninstall-am: uninstall-pkglibLTLIBRARIES
+uninstall-am: uninstall-vcmiaiLTLIBRARIES
 
 .MAKE: install-am install-strip
 
 .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pkglibLTLIBRARIES ctags distclean \
+	clean-libtool clean-vcmiaiLTLIBRARIES ctags distclean \
 	distclean-compile distclean-generic distclean-libtool \
 	distclean-tags distdir dvi dvi-am html html-am info info-am \
 	install install-am install-data install-data-am install-dvi \
 	install-dvi-am install-exec install-exec-am install-html \
 	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-pkglibLTLIBRARIES \
-	install-ps install-ps-am install-strip installcheck \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip install-vcmiaiLTLIBRARIES installcheck \
 	installcheck-am installdirs maintainer-clean \
 	maintainer-clean-generic mostlyclean mostlyclean-compile \
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags uninstall uninstall-am uninstall-pkglibLTLIBRARIES
+	tags uninstall uninstall-am uninstall-vcmiaiLTLIBRARIES
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.

+ 5 - 5
AI/GeniusAI/ExpertSystem.h

@@ -1,6 +1,6 @@
-#include "../vcmi/global.h"
-#include "../vcmi/CCallback.h"
-#include "../vcmi/lib/HeroBonus.h"
+#include "../../global.h"
+#include "../../CCallback.h"
+#include "../../lib/HeroBonus.h"
 #include <boost/bind.hpp>
 #include <vector>
 #include <list>
@@ -199,7 +199,7 @@ public:
 	}
 	bool operator()(int prop, si32 val) const
 	{
-		return first(prop,val) || second(prop,val); 
+		return first(prop,val) || second(prop,val);
 	}
 };
 TLogic operator||(const TLogic &first, const TLogic &second);
@@ -212,4 +212,4 @@ public:
 	void parseKnowledge(std::string &filename){};
 	void addKnowledge(ExpertSystemShell<BRule,Bonus> &expert);
 	void addFacts(ExpertSystemShell<BRule,Bonus> &expert);
-};
+};

+ 6 - 4
AI/GeniusAI/Makefile.am

@@ -1,7 +1,9 @@
-pkglib_LTLIBRARIES = GeniusAI.la
-GeniusAI_la_LIBADD = $(top_builddir)/lib/libvcmi.la
-GeniusAI_la_LDFLAGS = -L$(top_builddir)/lib -module
-GeniusAI_la_SOURCES = \
+vcmiaidir = $(VCMI_AI_LIBS_DIR)
+
+vcmiai_LTLIBRARIES = libGeniusAI.la
+libGeniusAI_la_LIBADD = $(top_builddir)/lib/libvcmi.la
+libGeniusAI_la_LDFLAGS = -L$(top_builddir)/lib -module
+libGeniusAI_la_SOURCES = \
 	AIPriorities.cpp \
 	AIPriorities.h \
 	BattleHelper.cpp \

+ 41 - 37
AI/GeniusAI/Makefile.in

@@ -76,19 +76,20 @@ am__nobase_list = $(am__nobase_strip_setup); \
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__installdirs = "$(DESTDIR)$(pkglibdir)"
-LTLIBRARIES = $(pkglib_LTLIBRARIES)
-GeniusAI_la_DEPENDENCIES = $(top_builddir)/lib/libvcmi.la
-am_GeniusAI_la_OBJECTS = AIPriorities.lo BattleHelper.lo \
+am__installdirs = "$(DESTDIR)$(vcmiaidir)"
+LTLIBRARIES = $(vcmiai_LTLIBRARIES)
+libGeniusAI_la_DEPENDENCIES = $(top_builddir)/lib/libvcmi.la
+am_libGeniusAI_la_OBJECTS = AIPriorities.lo BattleHelper.lo \
 	BattleLogic.lo CGeniusAI.lo DLLMain.lo GeneralAI.lo \
 	neuralNetwork.lo
-GeniusAI_la_OBJECTS = $(am_GeniusAI_la_OBJECTS)
+libGeniusAI_la_OBJECTS = $(am_libGeniusAI_la_OBJECTS)
 AM_V_lt = $(am__v_lt_$(V))
 am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
 am__v_lt_0 = --silent
-GeniusAI_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
-	$(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
-	$(CXXFLAGS) $(GeniusAI_la_LDFLAGS) $(LDFLAGS) -o $@
+libGeniusAI_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \
+	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \
+	$(AM_CXXFLAGS) $(CXXFLAGS) $(libGeniusAI_la_LDFLAGS) \
+	$(LDFLAGS) -o $@
 DEFAULT_INCLUDES = -I.@am__isrc@
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -131,8 +132,8 @@ am__v_CCLD_0 = @echo "  CCLD  " $@;
 AM_V_GEN = $(am__v_GEN_$(V))
 am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
 am__v_GEN_0 = @echo "  GEN   " $@;
-SOURCES = $(GeniusAI_la_SOURCES)
-DIST_SOURCES = $(GeniusAI_la_SOURCES)
+SOURCES = $(libGeniusAI_la_SOURCES)
+DIST_SOURCES = $(libGeniusAI_la_SOURCES)
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -211,6 +212,8 @@ SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
+VCMI_AI_LIBS_DIR = @VCMI_AI_LIBS_DIR@
+VCMI_SCRIPTING_LIBS_DIR = @VCMI_SCRIPTING_LIBS_DIR@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
@@ -265,10 +268,11 @@ target_alias = @target_alias@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-pkglib_LTLIBRARIES = GeniusAI.la
-GeniusAI_la_LIBADD = $(top_builddir)/lib/libvcmi.la
-GeniusAI_la_LDFLAGS = -L$(top_builddir)/lib -module
-GeniusAI_la_SOURCES = \
+vcmiaidir = $(VCMI_AI_LIBS_DIR)
+vcmiai_LTLIBRARIES = libGeniusAI.la
+libGeniusAI_la_LIBADD = $(top_builddir)/lib/libvcmi.la
+libGeniusAI_la_LDFLAGS = -L$(top_builddir)/lib -module
+libGeniusAI_la_SOURCES = \
 	AIPriorities.cpp \
 	AIPriorities.h \
 	BattleHelper.cpp \
@@ -318,39 +322,39 @@ $(top_srcdir)/configure:  $(am__configure_deps)
 $(ACLOCAL_M4):  $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
-install-pkglibLTLIBRARIES: $(pkglib_LTLIBRARIES)
+install-vcmiaiLTLIBRARIES: $(vcmiai_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
-	test -z "$(pkglibdir)" || $(MKDIR_P) "$(DESTDIR)$(pkglibdir)"
-	@list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \
+	test -z "$(vcmiaidir)" || $(MKDIR_P) "$(DESTDIR)$(vcmiaidir)"
+	@list='$(vcmiai_LTLIBRARIES)'; test -n "$(vcmiaidir)" || list=; \
 	list2=; for p in $$list; do \
 	  if test -f $$p; then \
 	    list2="$$list2 $$p"; \
 	  else :; fi; \
 	done; \
 	test -z "$$list2" || { \
-	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkglibdir)'"; \
-	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkglibdir)"; \
+	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(vcmiaidir)'"; \
+	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(vcmiaidir)"; \
 	}
 
-uninstall-pkglibLTLIBRARIES:
+uninstall-vcmiaiLTLIBRARIES:
 	@$(NORMAL_UNINSTALL)
-	@list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \
+	@list='$(vcmiai_LTLIBRARIES)'; test -n "$(vcmiaidir)" || list=; \
 	for p in $$list; do \
 	  $(am__strip_dir) \
-	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkglibdir)/$$f'"; \
-	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkglibdir)/$$f"; \
+	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(vcmiaidir)/$$f'"; \
+	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(vcmiaidir)/$$f"; \
 	done
 
-clean-pkglibLTLIBRARIES:
-	-test -z "$(pkglib_LTLIBRARIES)" || rm -f $(pkglib_LTLIBRARIES)
-	@list='$(pkglib_LTLIBRARIES)'; for p in $$list; do \
+clean-vcmiaiLTLIBRARIES:
+	-test -z "$(vcmiai_LTLIBRARIES)" || rm -f $(vcmiai_LTLIBRARIES)
+	@list='$(vcmiai_LTLIBRARIES)'; for p in $$list; do \
 	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
 	  test "$$dir" != "$$p" || dir=.; \
 	  echo "rm -f \"$${dir}/so_locations\""; \
 	  rm -f "$${dir}/so_locations"; \
 	done
-GeniusAI.la: $(GeniusAI_la_OBJECTS) $(GeniusAI_la_DEPENDENCIES) 
-	$(AM_V_CXXLD)$(GeniusAI_la_LINK) -rpath $(pkglibdir) $(GeniusAI_la_OBJECTS) $(GeniusAI_la_LIBADD) $(LIBS)
+libGeniusAI.la: $(libGeniusAI_la_OBJECTS) $(libGeniusAI_la_DEPENDENCIES) 
+	$(AM_V_CXXLD)$(libGeniusAI_la_LINK) -rpath $(vcmiaidir) $(libGeniusAI_la_OBJECTS) $(libGeniusAI_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
 	-rm -f *.$(OBJEXT)
@@ -482,7 +486,7 @@ check-am: all-am
 check: check-am
 all-am: Makefile $(LTLIBRARIES)
 installdirs:
-	for dir in "$(DESTDIR)$(pkglibdir)"; do \
+	for dir in "$(DESTDIR)$(vcmiaidir)"; do \
 	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
 	done
 install: install-am
@@ -512,7 +516,7 @@ maintainer-clean-generic:
 	@echo "it deletes files that may require special tools to rebuild."
 clean: clean-am
 
-clean-am: clean-generic clean-libtool clean-pkglibLTLIBRARIES \
+clean-am: clean-generic clean-libtool clean-vcmiaiLTLIBRARIES \
 	mostlyclean-am
 
 distclean: distclean-am
@@ -533,13 +537,13 @@ info: info-am
 
 info-am:
 
-install-data-am:
+install-data-am: install-vcmiaiLTLIBRARIES
 
 install-dvi: install-dvi-am
 
 install-dvi-am:
 
-install-exec-am: install-pkglibLTLIBRARIES
+install-exec-am:
 
 install-html: install-html-am
 
@@ -579,23 +583,23 @@ ps: ps-am
 
 ps-am:
 
-uninstall-am: uninstall-pkglibLTLIBRARIES
+uninstall-am: uninstall-vcmiaiLTLIBRARIES
 
 .MAKE: install-am install-strip
 
 .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pkglibLTLIBRARIES ctags distclean \
+	clean-libtool clean-vcmiaiLTLIBRARIES ctags distclean \
 	distclean-compile distclean-generic distclean-libtool \
 	distclean-tags distdir dvi dvi-am html html-am info info-am \
 	install install-am install-data install-data-am install-dvi \
 	install-dvi-am install-exec install-exec-am install-html \
 	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-pkglibLTLIBRARIES \
-	install-ps install-ps-am install-strip installcheck \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip install-vcmiaiLTLIBRARIES installcheck \
 	installcheck-am installdirs maintainer-clean \
 	maintainer-clean-generic mostlyclean mostlyclean-compile \
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags uninstall uninstall-am uninstall-pkglibLTLIBRARIES
+	tags uninstall uninstall-am uninstall-vcmiaiLTLIBRARIES
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.

+ 2 - 0
AI/Makefile.in

@@ -178,6 +178,8 @@ SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
+VCMI_AI_LIBS_DIR = @VCMI_AI_LIBS_DIR@
+VCMI_SCRIPTING_LIBS_DIR = @VCMI_SCRIPTING_LIBS_DIR@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@

+ 6 - 4
AI/StupidAI/Makefile.am

@@ -1,7 +1,9 @@
-pkglib_LTLIBRARIES = StupidAI.la
-StupidAI_la_LIBADD = $(top_builddir)/lib/libvcmi.la
-StupidAI_la_LDFLAGS = -L$(top_builddir)/lib -module
-StupidAI_la_SOURCES = \
+vcmiaidir = $(VCMI_AI_LIBS_DIR)
+
+vcmiai_LTLIBRARIES = libStupidAI.la
+libStupidAI_la_LIBADD = $(top_builddir)/lib/libvcmi.la
+libStupidAI_la_LDFLAGS = -L$(top_builddir)/lib -module
+libStupidAI_la_SOURCES = \
 	main.cpp\
 	stdafx.cpp\
 	stdafx.h\

+ 41 - 37
AI/StupidAI/Makefile.in

@@ -76,17 +76,18 @@ am__nobase_list = $(am__nobase_strip_setup); \
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__installdirs = "$(DESTDIR)$(pkglibdir)"
-LTLIBRARIES = $(pkglib_LTLIBRARIES)
-StupidAI_la_DEPENDENCIES = $(top_builddir)/lib/libvcmi.la
-am_StupidAI_la_OBJECTS = main.lo stdafx.lo StupidAI.lo
-StupidAI_la_OBJECTS = $(am_StupidAI_la_OBJECTS)
+am__installdirs = "$(DESTDIR)$(vcmiaidir)"
+LTLIBRARIES = $(vcmiai_LTLIBRARIES)
+libStupidAI_la_DEPENDENCIES = $(top_builddir)/lib/libvcmi.la
+am_libStupidAI_la_OBJECTS = main.lo stdafx.lo StupidAI.lo
+libStupidAI_la_OBJECTS = $(am_libStupidAI_la_OBJECTS)
 AM_V_lt = $(am__v_lt_$(V))
 am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
 am__v_lt_0 = --silent
-StupidAI_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
-	$(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
-	$(CXXFLAGS) $(StupidAI_la_LDFLAGS) $(LDFLAGS) -o $@
+libStupidAI_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \
+	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \
+	$(AM_CXXFLAGS) $(CXXFLAGS) $(libStupidAI_la_LDFLAGS) \
+	$(LDFLAGS) -o $@
 DEFAULT_INCLUDES = -I.@am__isrc@
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -129,8 +130,8 @@ am__v_CCLD_0 = @echo "  CCLD  " $@;
 AM_V_GEN = $(am__v_GEN_$(V))
 am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
 am__v_GEN_0 = @echo "  GEN   " $@;
-SOURCES = $(StupidAI_la_SOURCES)
-DIST_SOURCES = $(StupidAI_la_SOURCES)
+SOURCES = $(libStupidAI_la_SOURCES)
+DIST_SOURCES = $(libStupidAI_la_SOURCES)
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -209,6 +210,8 @@ SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
+VCMI_AI_LIBS_DIR = @VCMI_AI_LIBS_DIR@
+VCMI_SCRIPTING_LIBS_DIR = @VCMI_SCRIPTING_LIBS_DIR@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
@@ -263,10 +266,11 @@ target_alias = @target_alias@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-pkglib_LTLIBRARIES = StupidAI.la
-StupidAI_la_LIBADD = $(top_builddir)/lib/libvcmi.la
-StupidAI_la_LDFLAGS = -L$(top_builddir)/lib -module
-StupidAI_la_SOURCES = \
+vcmiaidir = $(VCMI_AI_LIBS_DIR)
+vcmiai_LTLIBRARIES = libStupidAI.la
+libStupidAI_la_LIBADD = $(top_builddir)/lib/libvcmi.la
+libStupidAI_la_LDFLAGS = -L$(top_builddir)/lib -module
+libStupidAI_la_SOURCES = \
 	main.cpp\
 	stdafx.cpp\
 	stdafx.h\
@@ -307,39 +311,39 @@ $(top_srcdir)/configure:  $(am__configure_deps)
 $(ACLOCAL_M4):  $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
-install-pkglibLTLIBRARIES: $(pkglib_LTLIBRARIES)
+install-vcmiaiLTLIBRARIES: $(vcmiai_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
-	test -z "$(pkglibdir)" || $(MKDIR_P) "$(DESTDIR)$(pkglibdir)"
-	@list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \
+	test -z "$(vcmiaidir)" || $(MKDIR_P) "$(DESTDIR)$(vcmiaidir)"
+	@list='$(vcmiai_LTLIBRARIES)'; test -n "$(vcmiaidir)" || list=; \
 	list2=; for p in $$list; do \
 	  if test -f $$p; then \
 	    list2="$$list2 $$p"; \
 	  else :; fi; \
 	done; \
 	test -z "$$list2" || { \
-	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkglibdir)'"; \
-	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkglibdir)"; \
+	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(vcmiaidir)'"; \
+	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(vcmiaidir)"; \
 	}
 
-uninstall-pkglibLTLIBRARIES:
+uninstall-vcmiaiLTLIBRARIES:
 	@$(NORMAL_UNINSTALL)
-	@list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \
+	@list='$(vcmiai_LTLIBRARIES)'; test -n "$(vcmiaidir)" || list=; \
 	for p in $$list; do \
 	  $(am__strip_dir) \
-	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkglibdir)/$$f'"; \
-	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkglibdir)/$$f"; \
+	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(vcmiaidir)/$$f'"; \
+	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(vcmiaidir)/$$f"; \
 	done
 
-clean-pkglibLTLIBRARIES:
-	-test -z "$(pkglib_LTLIBRARIES)" || rm -f $(pkglib_LTLIBRARIES)
-	@list='$(pkglib_LTLIBRARIES)'; for p in $$list; do \
+clean-vcmiaiLTLIBRARIES:
+	-test -z "$(vcmiai_LTLIBRARIES)" || rm -f $(vcmiai_LTLIBRARIES)
+	@list='$(vcmiai_LTLIBRARIES)'; for p in $$list; do \
 	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
 	  test "$$dir" != "$$p" || dir=.; \
 	  echo "rm -f \"$${dir}/so_locations\""; \
 	  rm -f "$${dir}/so_locations"; \
 	done
-StupidAI.la: $(StupidAI_la_OBJECTS) $(StupidAI_la_DEPENDENCIES) 
-	$(AM_V_CXXLD)$(StupidAI_la_LINK) -rpath $(pkglibdir) $(StupidAI_la_OBJECTS) $(StupidAI_la_LIBADD) $(LIBS)
+libStupidAI.la: $(libStupidAI_la_OBJECTS) $(libStupidAI_la_DEPENDENCIES) 
+	$(AM_V_CXXLD)$(libStupidAI_la_LINK) -rpath $(vcmiaidir) $(libStupidAI_la_OBJECTS) $(libStupidAI_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
 	-rm -f *.$(OBJEXT)
@@ -467,7 +471,7 @@ check-am: all-am
 check: check-am
 all-am: Makefile $(LTLIBRARIES)
 installdirs:
-	for dir in "$(DESTDIR)$(pkglibdir)"; do \
+	for dir in "$(DESTDIR)$(vcmiaidir)"; do \
 	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
 	done
 install: install-am
@@ -497,7 +501,7 @@ maintainer-clean-generic:
 	@echo "it deletes files that may require special tools to rebuild."
 clean: clean-am
 
-clean-am: clean-generic clean-libtool clean-pkglibLTLIBRARIES \
+clean-am: clean-generic clean-libtool clean-vcmiaiLTLIBRARIES \
 	mostlyclean-am
 
 distclean: distclean-am
@@ -518,13 +522,13 @@ info: info-am
 
 info-am:
 
-install-data-am:
+install-data-am: install-vcmiaiLTLIBRARIES
 
 install-dvi: install-dvi-am
 
 install-dvi-am:
 
-install-exec-am: install-pkglibLTLIBRARIES
+install-exec-am:
 
 install-html: install-html-am
 
@@ -564,23 +568,23 @@ ps: ps-am
 
 ps-am:
 
-uninstall-am: uninstall-pkglibLTLIBRARIES
+uninstall-am: uninstall-vcmiaiLTLIBRARIES
 
 .MAKE: install-am install-strip
 
 .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pkglibLTLIBRARIES ctags distclean \
+	clean-libtool clean-vcmiaiLTLIBRARIES ctags distclean \
 	distclean-compile distclean-generic distclean-libtool \
 	distclean-tags distdir dvi dvi-am html html-am info info-am \
 	install install-am install-data install-data-am install-dvi \
 	install-dvi-am install-exec install-exec-am install-html \
 	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-pkglibLTLIBRARIES \
-	install-ps install-ps-am install-strip installcheck \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip install-vcmiaiLTLIBRARIES installcheck \
 	installcheck-am installdirs maintainer-clean \
 	maintainer-clean-generic mostlyclean mostlyclean-compile \
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags uninstall uninstall-am uninstall-pkglibLTLIBRARIES
+	tags uninstall uninstall-am uninstall-vcmiaiLTLIBRARIES
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.

+ 31 - 21
CGameInterface.cpp

@@ -27,33 +27,29 @@ rett * createAny(std::string dllname, std::string methodName)
 	rett*(*getAI)(); 
 	void(*getName)(char*); 
 
-	std::string dllPath;
-
-	//TODO unify at least partially (code duplication)
 #ifdef _WIN32
-	dllPath = dllname;
-	HINSTANCE dll = LoadLibraryA(dllPath.c_str());
-	if (!dll)
+	HINSTANCE dll = LoadLibraryA(dllname.c_str());
+	if (dll)
 	{
-		tlog1 << "Cannot open dynamic library ("<<dllPath<<"). Throwing..."<<std::endl;
-		throw new std::string("Cannot open dynamic library");
+		getName = (void(*)(char*))GetProcAddress(dll,"GetAiName");
+		getAI = (rett*(*)())GetProcAddress(dll,methodName.c_str());
 	}
-	//int len = dllname.size()+1;
-	getName = (void(*)(char*))GetProcAddress(dll,"GetAiName");
-	getAI = (rett*(*)())GetProcAddress(dll,methodName.c_str());
 #else
-	dllPath = dllname;
-	void *dll = dlopen(dllPath.c_str(), RTLD_LOCAL | RTLD_LAZY);
+	void *dll = dlopen(dllname.c_str(), RTLD_LOCAL | RTLD_LAZY);
+	if (dll)
+	{
+		getName = (void(*)(char*))dlsym(dll,"GetAiName");
+		getAI = (rett*(*)())dlsym(dll,methodName.c_str());
+	}
+#endif
 	if (!dll)
 	{
-		tlog1 << "Cannot open dynamic library ("<<dllPath<<"). Throwing..."<<std::endl;
+		tlog1 << "Cannot open dynamic library ("<<dllname<<"). Throwing..."<<std::endl;
 		throw new std::string("Cannot open dynamic library");
 	}
-	getName = (void(*)(char*))dlsym(dll,"GetAiName");
-	getAI = (rett*(*)())dlsym(dll,methodName.c_str());
-#endif
+
 	getName(temp);
-	tlog0 << "Loaded AI named " << temp << std::endl;
+	tlog0 << "Loaded " << temp << std::endl;
 	ret = getAI();
 
 	if(!ret)
@@ -61,13 +57,27 @@ rett * createAny(std::string dllname, std::string methodName)
 
 	return ret;
 }
-
+
+//Currently AI libraries use "lib" prefix only on non-win systems.
+//May be applied to Win systems as well to remove this ifdef
+#ifdef _WIN32
+std::string getAIFileName(std::string input)
+{
+	return input + '.' + LIB_EXT;
+}
+#else
+std::string getAIFileName(std::string input)
+{
+	return "lib" + input + '.' + LIB_EXT;
+}
+#endif
 
 template<typename rett>
 rett * createAnyAI(std::string dllname, std::string methodName)
 {
-	rett* ret = createAny<rett>(LIB_DIR "/" + dllname + '.' + LIB_EXT, methodName);
-	ret->dllName = dllname;	
+	std::string filename = getAIFileName(dllname);
+	rett* ret = createAny<rett>(LIB_DIR "/AI/" + filename, methodName);
+	ret->dllName = filename;
 	return ret;
 }
 

+ 2 - 0
Makefile.in

@@ -193,6 +193,8 @@ SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
+VCMI_AI_LIBS_DIR = @VCMI_AI_LIBS_DIR@
+VCMI_SCRIPTING_LIBS_DIR = @VCMI_SCRIPTING_LIBS_DIR@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@

+ 1 - 1
Scripting/ERM/ERMInterpreter.cpp

@@ -814,7 +814,7 @@ struct StringFormatter
 	int charsToReplace;
 	std::string &msg;
 
-	StringFormatter(std::string &MSG) : msg(MSG), pos(0) {}
+	StringFormatter(std::string &MSG) : pos(0), msg(MSG) {}
 
 	static void format(std::string &msg)
 	{

+ 3 - 1
Scripting/ERM/Makefile.am

@@ -1,4 +1,6 @@
-pkglib_LTLIBRARIES = libvcmiERM.la
+vcmiscriptingdir = $(VCMI_SCRIPTING_LIBS_DIR)
+
+vcmiscripting_LTLIBRARIES = libvcmiERM.la
 libvcmiERM_la_LIBADD = @BOOST_SYSTEM_LIB@ @BOOST_FILESYSTEM_LIB@ @BOOST_THREAD_LIB@ @BOOST_IOSTREAMS_LIB@
 libvcmiERM_la_CXXFLAGS =
 libvcmiERM_la_SOURCES = \

+ 28 - 25
Scripting/ERM/Makefile.in

@@ -76,8 +76,8 @@ am__nobase_list = $(am__nobase_strip_setup); \
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__installdirs = "$(DESTDIR)$(pkglibdir)"
-LTLIBRARIES = $(pkglib_LTLIBRARIES)
+am__installdirs = "$(DESTDIR)$(vcmiscriptingdir)"
+LTLIBRARIES = $(vcmiscripting_LTLIBRARIES)
 libvcmiERM_la_DEPENDENCIES =
 am_libvcmiERM_la_OBJECTS = libvcmiERM_la-ERMInterpreter.lo \
 	libvcmiERM_la-ERMParser.lo libvcmiERM_la-ERMScriptModule.lo
@@ -211,6 +211,8 @@ SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
+VCMI_AI_LIBS_DIR = @VCMI_AI_LIBS_DIR@
+VCMI_SCRIPTING_LIBS_DIR = @VCMI_SCRIPTING_LIBS_DIR@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
@@ -265,7 +267,8 @@ target_alias = @target_alias@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-pkglib_LTLIBRARIES = libvcmiERM.la
+vcmiscriptingdir = $(VCMI_SCRIPTING_LIBS_DIR)
+vcmiscripting_LTLIBRARIES = libvcmiERM.la
 libvcmiERM_la_LIBADD = @BOOST_SYSTEM_LIB@ @BOOST_FILESYSTEM_LIB@ @BOOST_THREAD_LIB@ @BOOST_IOSTREAMS_LIB@
 libvcmiERM_la_CXXFLAGS = 
 libvcmiERM_la_SOURCES = \
@@ -310,39 +313,39 @@ $(top_srcdir)/configure:  $(am__configure_deps)
 $(ACLOCAL_M4):  $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
-install-pkglibLTLIBRARIES: $(pkglib_LTLIBRARIES)
+install-vcmiscriptingLTLIBRARIES: $(vcmiscripting_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
-	test -z "$(pkglibdir)" || $(MKDIR_P) "$(DESTDIR)$(pkglibdir)"
-	@list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \
+	test -z "$(vcmiscriptingdir)" || $(MKDIR_P) "$(DESTDIR)$(vcmiscriptingdir)"
+	@list='$(vcmiscripting_LTLIBRARIES)'; test -n "$(vcmiscriptingdir)" || list=; \
 	list2=; for p in $$list; do \
 	  if test -f $$p; then \
 	    list2="$$list2 $$p"; \
 	  else :; fi; \
 	done; \
 	test -z "$$list2" || { \
-	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkglibdir)'"; \
-	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkglibdir)"; \
+	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(vcmiscriptingdir)'"; \
+	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(vcmiscriptingdir)"; \
 	}
 
-uninstall-pkglibLTLIBRARIES:
+uninstall-vcmiscriptingLTLIBRARIES:
 	@$(NORMAL_UNINSTALL)
-	@list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \
+	@list='$(vcmiscripting_LTLIBRARIES)'; test -n "$(vcmiscriptingdir)" || list=; \
 	for p in $$list; do \
 	  $(am__strip_dir) \
-	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkglibdir)/$$f'"; \
-	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkglibdir)/$$f"; \
+	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(vcmiscriptingdir)/$$f'"; \
+	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(vcmiscriptingdir)/$$f"; \
 	done
 
-clean-pkglibLTLIBRARIES:
-	-test -z "$(pkglib_LTLIBRARIES)" || rm -f $(pkglib_LTLIBRARIES)
-	@list='$(pkglib_LTLIBRARIES)'; for p in $$list; do \
+clean-vcmiscriptingLTLIBRARIES:
+	-test -z "$(vcmiscripting_LTLIBRARIES)" || rm -f $(vcmiscripting_LTLIBRARIES)
+	@list='$(vcmiscripting_LTLIBRARIES)'; for p in $$list; do \
 	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
 	  test "$$dir" != "$$p" || dir=.; \
 	  echo "rm -f \"$${dir}/so_locations\""; \
 	  rm -f "$${dir}/so_locations"; \
 	done
 libvcmiERM.la: $(libvcmiERM_la_OBJECTS) $(libvcmiERM_la_DEPENDENCIES) 
-	$(AM_V_CXXLD)$(libvcmiERM_la_LINK) -rpath $(pkglibdir) $(libvcmiERM_la_OBJECTS) $(libvcmiERM_la_LIBADD) $(LIBS)
+	$(AM_V_CXXLD)$(libvcmiERM_la_LINK) -rpath $(vcmiscriptingdir) $(libvcmiERM_la_OBJECTS) $(libvcmiERM_la_LIBADD) $(LIBS)
 
 mostlyclean-compile:
 	-rm -f *.$(OBJEXT)
@@ -494,7 +497,7 @@ check-am: all-am
 check: check-am
 all-am: Makefile $(LTLIBRARIES)
 installdirs:
-	for dir in "$(DESTDIR)$(pkglibdir)"; do \
+	for dir in "$(DESTDIR)$(vcmiscriptingdir)"; do \
 	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
 	done
 install: install-am
@@ -524,7 +527,7 @@ maintainer-clean-generic:
 	@echo "it deletes files that may require special tools to rebuild."
 clean: clean-am
 
-clean-am: clean-generic clean-libtool clean-pkglibLTLIBRARIES \
+clean-am: clean-generic clean-libtool clean-vcmiscriptingLTLIBRARIES \
 	mostlyclean-am
 
 distclean: distclean-am
@@ -545,13 +548,13 @@ info: info-am
 
 info-am:
 
-install-data-am:
+install-data-am: install-vcmiscriptingLTLIBRARIES
 
 install-dvi: install-dvi-am
 
 install-dvi-am:
 
-install-exec-am: install-pkglibLTLIBRARIES
+install-exec-am:
 
 install-html: install-html-am
 
@@ -591,23 +594,23 @@ ps: ps-am
 
 ps-am:
 
-uninstall-am: uninstall-pkglibLTLIBRARIES
+uninstall-am: uninstall-vcmiscriptingLTLIBRARIES
 
 .MAKE: install-am install-strip
 
 .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pkglibLTLIBRARIES ctags distclean \
+	clean-libtool clean-vcmiscriptingLTLIBRARIES ctags distclean \
 	distclean-compile distclean-generic distclean-libtool \
 	distclean-tags distdir dvi dvi-am html html-am info info-am \
 	install install-am install-data install-data-am install-dvi \
 	install-dvi-am install-exec install-exec-am install-html \
 	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-pkglibLTLIBRARIES \
-	install-ps install-ps-am install-strip installcheck \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip install-vcmiscriptingLTLIBRARIES installcheck \
 	installcheck-am installdirs maintainer-clean \
 	maintainer-clean-generic mostlyclean mostlyclean-compile \
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags uninstall uninstall-am uninstall-pkglibLTLIBRARIES
+	tags uninstall uninstall-am uninstall-vcmiscriptingLTLIBRARIES
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.

+ 4 - 4
client/CCreatureAnimation.cpp

@@ -73,8 +73,8 @@ CCreatureAnimation::CCreatureAnimation(std::string name) : internalFrame(0), onc
 			SEntries[j].group = group;
 			frameIDs.push_back(j);
 		}
-		int unknown2 = readNormalNr<4>(i,FDef); i+=4; //TODO use me
-		int unknown3 = readNormalNr<4>(i,FDef); i+=4; //TODO use me
+		/*int unknown2 = readNormalNr<4>(i,FDef);*/ i+=4; //TODO use me
+		/*int unknown3 = readNormalNr<4>(i,FDef);*/ i+=4; //TODO use me
 		i+=13*totalInBlock; //ommiting names
 		for (j=0; j<totalInBlock; j++)
 		{ 
@@ -173,7 +173,7 @@ int CCreatureAnimation::nextFrameT(SDL_Surface * dest, int x, int y, bool attack
 	unsigned char SegmentType, SegmentLength;
 
 	i = BaseOffset = SEntries[SIndex].offset;
-	int prSize = readNormalNr<4>(i, FDef); i += 4; //TODO use me
+	/*int prSize = readNormalNr<4>(i, FDef);*/ i += 4; //TODO use me
 	int defType2 = readNormalNr<4>(i, FDef); i += 4;
 	FullWidth = readNormalNr<4>(i, FDef); i += 4;
 	FullHeight = readNormalNr<4>(i, FDef); i += 4;
@@ -219,7 +219,7 @@ int CCreatureAnimation::nextFrameT(SDL_Surface * dest, int x, int y, bool attack
 				int xB = (attacker ? ftcp % FullWidth : FullWidth - ftcp % FullWidth - 1) + x;
 
 
-				unsigned char aCountMod = (animCount & 0x20) ? ((animCount & 0x1e) >> 1) << 4 : 0x0f - ((animCount & 0x1e) >> 1) << 4;
+				unsigned char aCountMod = (animCount & 0x20) ? ((animCount & 0x1e) >> 1) << 4 : (0x0f - ((animCount & 0x1e) >> 1)) << 4;
 
 				for (int k = 0; k <= SegmentLength; k++)
 				{

+ 0 - 1
client/CCreatureWindow.cpp

@@ -402,7 +402,6 @@ CBonusItem::CBonusItem()
 CBonusItem::CBonusItem(const Rect &Pos, const std::string &Name, const std::string &Description, const std::string &graphicsName)
 {
 	OBJ_CONSTRUCTION;
-	SHARE_POS;
 	visible = false;
 
 	name = Name;

+ 2 - 0
client/Makefile.in

@@ -218,6 +218,8 @@ SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
+VCMI_AI_LIBS_DIR = @VCMI_AI_LIBS_DIR@
+VCMI_SCRIPTING_LIBS_DIR = @VCMI_SCRIPTING_LIBS_DIR@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@

+ 28 - 20
configure

@@ -743,6 +743,8 @@ ac_subst_vars='am__EXEEXT_FALSE
 am__EXEEXT_TRUE
 LTLIBOBJS
 LIBOBJS
+VCMI_SCRIPTING_LIBS_DIR
+VCMI_AI_LIBS_DIR
 FFMPEG_CXXFLAGS
 FFMPEG_LIBS
 SDL_CXXFLAGS
@@ -5214,13 +5216,13 @@ if test "${lt_cv_nm_interface+set}" = set; then :
 else
   lt_cv_nm_interface="BSD nm"
   echo "int some_variable = 0;" > conftest.$ac_ext
-  (eval echo "\"\$as_me:5217: $ac_compile\"" >&5)
+  (eval echo "\"\$as_me:5219: $ac_compile\"" >&5)
   (eval "$ac_compile" 2>conftest.err)
   cat conftest.err >&5
-  (eval echo "\"\$as_me:5220: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
+  (eval echo "\"\$as_me:5222: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
   (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
   cat conftest.err >&5
-  (eval echo "\"\$as_me:5223: output\"" >&5)
+  (eval echo "\"\$as_me:5225: output\"" >&5)
   cat conftest.out >&5
   if $GREP 'External.*some_variable' conftest.out > /dev/null; then
     lt_cv_nm_interface="MS dumpbin"
@@ -6426,7 +6428,7 @@ ia64-*-hpux*)
   ;;
 *-*-irix6*)
   # Find out which ABI we are using.
-  echo '#line 6429 "configure"' > conftest.$ac_ext
+  echo '#line 6431 "configure"' > conftest.$ac_ext
   if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
@@ -8422,11 +8424,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:8425: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:8427: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:8429: \$? = $ac_status" >&5
+   echo "$as_me:8431: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -8761,11 +8763,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:8764: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:8766: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:8768: \$? = $ac_status" >&5
+   echo "$as_me:8770: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -8866,11 +8868,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:8869: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:8871: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:8873: \$? = $ac_status" >&5
+   echo "$as_me:8875: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -8921,11 +8923,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:8924: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:8926: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:8928: \$? = $ac_status" >&5
+   echo "$as_me:8930: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -11301,7 +11303,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 11304 "configure"
+#line 11306 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -11397,7 +11399,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 11400 "configure"
+#line 11402 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -13353,11 +13355,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:13356: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:13358: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:13360: \$? = $ac_status" >&5
+   echo "$as_me:13362: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -13452,11 +13454,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:13455: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:13457: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:13459: \$? = $ac_status" >&5
+   echo "$as_me:13461: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -13504,11 +13506,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:13507: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:13509: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:13511: \$? = $ac_status" >&5
+   echo "$as_me:13513: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -16593,6 +16595,12 @@ CXXFLAGS="$CXXFLAGS -DDATA_DIR=\\\"\$(pkgdatadir)\\\" -DBIN_DIR=\\\"\$(bindir)\\
 
 
 
+VCMI_AI_LIBS_DIR="$libdir/vcmi/AI"
+
+
+VCMI_SCRIPTING_LIBS_DIR="$libdir/vcmi/Scripting"
+
+
 ac_config_files="$ac_config_files Makefile lib/Makefile client/Makefile server/Makefile AI/Makefile AI/StupidAI/Makefile AI/GeniusAI/Makefile AI/EmptyAI/Makefile Scripting/ERM/Makefile"
 
 cat >confcache <<\_ACEOF

+ 6 - 0
configure.ac

@@ -115,4 +115,10 @@ AC_SUBST(SDL_CXXFLAGS)
 AC_SUBST(FFMPEG_LIBS)
 AC_SUBST(FFMPEG_CXXFLAGS)
 
+VCMI_AI_LIBS_DIR="$libdir/vcmi/AI"
+AC_SUBST(VCMI_AI_LIBS_DIR)
+
+VCMI_SCRIPTING_LIBS_DIR="$libdir/vcmi/Scripting"
+AC_SUBST(VCMI_SCRIPTING_LIBS_DIR)
+
 AC_OUTPUT(Makefile lib/Makefile client/Makefile server/Makefile AI/Makefile AI/StupidAI/Makefile AI/GeniusAI/Makefile AI/EmptyAI/Makefile Scripting/ERM/Makefile)

+ 1 - 1
global.h

@@ -54,7 +54,7 @@ extern std::string NAME_AFFIX; //client / server
 	#define DATA_DIR "."
 	#define USER_DIR  "."
 	#define BIN_DIR  "."
-	#define LIB_DIR "AI"
+	#define LIB_DIR "."
 	#define SERVER_NAME "VCMI_server.exe"
 	#define LIB_EXT "dll"
 #else

+ 2 - 2
lib/HeroBonus.cpp

@@ -410,7 +410,7 @@ const boost::shared_ptr<BonusList> CBonusSystemNode::getAllBonuses(const CSelect
 	
 		if (cachingStr != "")
 		{
-			std::map<std::string, boost::shared_ptr<BonusList>>::iterator it(cachedRequests.find(cachingStr));
+			std::map<std::string, boost::shared_ptr<BonusList> >::iterator it(cachedRequests.find(cachingStr));
 			if (cachedRequests.size() > 0 && it != cachedRequests.end())
 			{
 				ret = it->second;
@@ -438,7 +438,7 @@ const boost::shared_ptr<BonusList> CBonusSystemNode::getAllBonuses(const CSelect
 	}
 }
 
-CBonusSystemNode::CBonusSystemNode() : nodeType(UNKNOWN), cachedLast(0)
+CBonusSystemNode::CBonusSystemNode() : cachedLast(0), nodeType(UNKNOWN)
 {
 }
 

+ 1 - 1
lib/HeroBonus.h

@@ -445,7 +445,7 @@ class DLL_EXPORT CBonusSystemNode : public IBonusBearer
 	// This string needs to be unique, that's why it has to be setted in the following manner:
 	// [property key]_[value] => only for selector
 	mutable std::string cachingStr;
-	mutable std::map<std::string, boost::shared_ptr<BonusList>> cachedRequests;
+	mutable std::map<std::string, boost::shared_ptr<BonusList> > cachedRequests;
 
 	void getAllBonusesRec(boost::shared_ptr<BonusList> out, const CSelector &selector, const CSelector &limit, const CBonusSystemNode *root = NULL, const bool caching = false) const;
 

+ 2 - 0
lib/Makefile.in

@@ -221,6 +221,8 @@ SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
+VCMI_AI_LIBS_DIR = @VCMI_AI_LIBS_DIR@
+VCMI_SCRIPTING_LIBS_DIR = @VCMI_SCRIPTING_LIBS_DIR@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@

+ 2 - 0
server/Makefile.in

@@ -194,6 +194,8 @@ SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
+VCMI_AI_LIBS_DIR = @VCMI_AI_LIBS_DIR@
+VCMI_SCRIPTING_LIBS_DIR = @VCMI_SCRIPTING_LIBS_DIR@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@