It's not actually your fault, it is a problem with the makefiles.
Both the makefile.common for world and zone specify ../common/rulesys.o in the SF= line.
../common/rulesys.o gets compiled for world first, then, when zone gets compiled, it sees that ../common/rulesys.o is newer than ../common/rulesys.cpp and so it knows it doesn't need to recompile it.
Normally, this is not a problem, however in the case of code bracketed in #ifdef/#endif, where different defines are used between world and zone, it causes problems.
Instead of ../common/rulesys.o, the world and zone makefile.common should specify .obj/rulesys.o
This tells the makefile to compile it's own private version using it's own set of -D flags.
I'll update the makefiles.
The EQOffline:BotCount rule should really be a RULE_INT (integer) rather than a RULE_REAL (floating point).
|