diff --git a/src/.cproject b/src/.cproject deleted file mode 100644 index 7b92164ba..000000000 --- a/src/.cproject +++ /dev/null @@ -1,1017 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<?fileVersion 4.0.0?> - -<cproject> -<storageModule moduleId="org.eclipse.cdt.core.settings"> -<cconfiguration id="cdt.managedbuild.config.gnu.mingw.exe.debug.1679546692"> -<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.mingw.exe.debug.1679546692" moduleId="org.eclipse.cdt.core.settings" name="Debug"> -<externalSettings/> -<extensions> -<extension id="org.eclipse.cdt.core.PE" point="org.eclipse.cdt.core.BinaryParser"/> -<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> -<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> -<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> -</extensions> -</storageModule> -<storageModule moduleId="cdtBuildSystem" version="4.0.0"> -<configuration artifactExtension="exe" artifactName="eressea" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.mingw.exe.debug.1679546692" name="Debug" parent="cdt.managedbuild.config.gnu.mingw.exe.debug"> -<folderInfo id="cdt.managedbuild.config.gnu.mingw.exe.debug.1679546692." name="/" resourcePath=""> -<toolChain id="cdt.managedbuild.toolchain.gnu.mingw.exe.debug.1541829356" name="MinGW GCC" superClass="cdt.managedbuild.toolchain.gnu.mingw.exe.debug"> -<targetPlatform id="cdt.managedbuild.target.gnu.platform.mingw.exe.debug.1648162047" name="Debug Platform" superClass="cdt.managedbuild.target.gnu.platform.mingw.exe.debug"/> -<builder autoBuildTarget="" buildPath="${workspace_loc:/eressea/Debug}" cleanBuildTarget="" id="cdt.managedbuild.tool.gnu.builder.mingw.base.557341227" incrementalBuildTarget="" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="CDT Internal Builder" parallelBuildOn="true" parallelizationNumber="3" superClass="cdt.managedbuild.tool.gnu.builder.mingw.base"/> -<tool id="cdt.managedbuild.tool.gnu.assembler.mingw.exe.debug.31483649" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.mingw.exe.debug"> -<option id="gnu.both.asm.option.include.paths.516875632" name="Include paths (-I)" superClass="gnu.both.asm.option.include.paths" valueType="includePath"> -<listOptionValue builtIn="false" value=""${workspace_loc:/eressea}""/> -<listOptionValue builtIn="false" value=""${workspace_loc:/eressea/common}""/> -</option> -<option id="gnu.both.asm.option.flags.1162663603" name="Assembler flags" superClass="gnu.both.asm.option.flags"/> -<option id="gnu.both.asm.option.warnings.nowarn.973241866" name="Suppress warnings (-W)" superClass="gnu.both.asm.option.warnings.nowarn"/> -<option id="gnu.both.asm.option.version.440840515" name="Announce version (-v)" superClass="gnu.both.asm.option.version"/> -<inputType id="cdt.managedbuild.tool.gnu.assembler.input.919777733" superClass="cdt.managedbuild.tool.gnu.assembler.input"/> -</tool> -<tool id="cdt.managedbuild.tool.gnu.archiver.mingw.base.1581167035" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.mingw.base"/> -<tool id="cdt.managedbuild.tool.gnu.cpp.compiler.mingw.exe.debug.720079153" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.mingw.exe.debug"> -<option id="gnu.cpp.compiler.mingw.exe.debug.option.optimization.level.301453909" name="Optimization Level" superClass="gnu.cpp.compiler.mingw.exe.debug.option.optimization.level" value="gnu.cpp.compiler.optimization.level.none" valueType="enumerated"/> -<option id="gnu.cpp.compiler.mingw.exe.debug.option.debugging.level.1445940050" name="Debug Level" superClass="gnu.cpp.compiler.mingw.exe.debug.option.debugging.level" value="gnu.cpp.compiler.debugging.level.max" valueType="enumerated"/> -<option id="gnu.cpp.compiler.option.include.paths.1393341890" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" valueType="includePath"> -<listOptionValue builtIn="false" value=""${workspace_loc:/eressea}""/> -<listOptionValue builtIn="false" value=""${workspace_loc:/eressea/common}""/> -</option> -<option id="gnu.cpp.compiler.option.preprocessor.nostdinc.509155758" name="Do not search system directories (-nostdinc)" superClass="gnu.cpp.compiler.option.preprocessor.nostdinc"/> -<option id="gnu.cpp.compiler.option.preprocessor.preprocess.717960248" name="Preprocess only (-E)" superClass="gnu.cpp.compiler.option.preprocessor.preprocess"/> -<option id="gnu.cpp.compiler.option.preprocessor.def.1450722366" name="Defined symbols (-D)" superClass="gnu.cpp.compiler.option.preprocessor.def"/> -<option id="gnu.cpp.compiler.option.preprocessor.undef.1770795656" name="Undefined symbols (-U)" superClass="gnu.cpp.compiler.option.preprocessor.undef"/> -<option id="gnu.cpp.compiler.option.optimization.flags.1297908268" name="Other optimization flags" superClass="gnu.cpp.compiler.option.optimization.flags"/> -<option id="gnu.cpp.compiler.option.debugging.other.1661100664" name="Other debugging flags" superClass="gnu.cpp.compiler.option.debugging.other"/> -<option id="gnu.cpp.compiler.option.debugging.prof.149789394" name="Generate prof information (-p)" superClass="gnu.cpp.compiler.option.debugging.prof"/> -<option id="gnu.cpp.compiler.option.debugging.gprof.1315104379" name="Generate gprof information (-pg)" superClass="gnu.cpp.compiler.option.debugging.gprof"/> -<option id="gnu.cpp.compiler.option.warnings.syntax.390438336" name="Check syntax only (-fsyntax-only)" superClass="gnu.cpp.compiler.option.warnings.syntax"/> -<option id="gnu.cpp.compiler.option.warnings.pedantic.1156620300" name="Pedantic (-pedantic)" superClass="gnu.cpp.compiler.option.warnings.pedantic"/> -<option id="gnu.cpp.compiler.option.warnings.pedantic.error.1016819500" name="Pedantic warnings as errors (-pedantic-errors)" superClass="gnu.cpp.compiler.option.warnings.pedantic.error"/> -<option id="gnu.cpp.compiler.option.warnings.nowarn.1634210671" name="Inhibit all warnings (-w)" superClass="gnu.cpp.compiler.option.warnings.nowarn"/> -<option id="gnu.cpp.compiler.option.warnings.allwarn.693382043" name="All warnings (-Wall)" superClass="gnu.cpp.compiler.option.warnings.allwarn"/> -<option id="gnu.cpp.compiler.option.warnings.toerrors.538309876" name="Warnings as errors (-Werror)" superClass="gnu.cpp.compiler.option.warnings.toerrors"/> -<option id="gnu.cpp.compiler.option.other.other.1521338221" name="Other flags" superClass="gnu.cpp.compiler.option.other.other"/> -<option id="gnu.cpp.compiler.option.other.verbose.7494634" name="Verbose (-v)" superClass="gnu.cpp.compiler.option.other.verbose"/> -<inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.1974319351" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/> -</tool> -<tool id="cdt.managedbuild.tool.gnu.c.compiler.mingw.exe.debug.1339637090" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.mingw.exe.debug"> -<option defaultValue="gnu.c.optimization.level.none" id="gnu.c.compiler.mingw.exe.debug.option.optimization.level.1722840894" name="Optimization Level" superClass="gnu.c.compiler.mingw.exe.debug.option.optimization.level" valueType="enumerated"/> -<option id="gnu.c.compiler.mingw.exe.debug.option.debugging.level.1354306259" name="Debug Level" superClass="gnu.c.compiler.mingw.exe.debug.option.debugging.level" value="gnu.c.debugging.level.max" valueType="enumerated"/> -<option id="gnu.c.compiler.option.include.paths.1649940257" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" valueType="includePath"> -<listOptionValue builtIn="false" value=""${workspace_loc:/eressea}""/> -<listOptionValue builtIn="false" value=""${workspace_loc:/eressea/common}""/> -</option> -<option id="gnu.c.compiler.option.preprocessor.nostdinc.1689698239" name="Do not search system directories (-nostdinc)" superClass="gnu.c.compiler.option.preprocessor.nostdinc"/> -<option id="gnu.c.compiler.option.preprocessor.preprocess.1908177862" name="Preprocess only (-E)" superClass="gnu.c.compiler.option.preprocessor.preprocess"/> -<option id="gnu.c.compiler.option.preprocessor.def.symbols.653444625" name="Defined symbols (-D)" superClass="gnu.c.compiler.option.preprocessor.def.symbols"/> -<option id="gnu.c.compiler.option.preprocessor.undef.symbol.1526697776" name="Undefined symbols (-U)" superClass="gnu.c.compiler.option.preprocessor.undef.symbol"/> -<option id="gnu.c.compiler.option.optimization.flags.1092822849" name="Other optimization flags" superClass="gnu.c.compiler.option.optimization.flags"/> -<option id="gnu.c.compiler.option.debugging.other.1262466036" name="Other debugging flags" superClass="gnu.c.compiler.option.debugging.other"/> -<option id="gnu.c.compiler.option.debugging.gprof.1437169117" name="Generate gprof information (-pg)" superClass="gnu.c.compiler.option.debugging.gprof"/> -<option id="gnu.c.compiler.option.debugging.prof.631194667" name="Generate prof information (-p)" superClass="gnu.c.compiler.option.debugging.prof"/> -<option id="gnu.c.compiler.option.warnings.syntax.530824677" name="Check syntax only (-fsyntax-only)" superClass="gnu.c.compiler.option.warnings.syntax"/> -<option id="gnu.c.compiler.option.warnings.pedantic.880992465" name="Pedantic (-pedantic)" superClass="gnu.c.compiler.option.warnings.pedantic"/> -<option id="gnu.c.compiler.option.warnings.pedantic.error.1762672145" name="Pedantic warnings as errors (-pedantic-errors)" superClass="gnu.c.compiler.option.warnings.pedantic.error"/> -<option id="gnu.c.compiler.option.warnings.nowarn.1367924741" name="Inhibit all warnings (-w)" superClass="gnu.c.compiler.option.warnings.nowarn"/> -<option id="gnu.c.compiler.option.warnings.allwarn.1251886279" name="All warnings (-Wall)" superClass="gnu.c.compiler.option.warnings.allwarn"/> -<option id="gnu.c.compiler.option.warnings.toerrors.1443145734" name="Warnings as errors (-Werror)" superClass="gnu.c.compiler.option.warnings.toerrors"/> -<option id="gnu.c.compiler.option.misc.other.413211066" name="Other flags" superClass="gnu.c.compiler.option.misc.other"/> -<option id="gnu.c.compiler.option.misc.verbose.1710309511" name="Verbose (-v)" superClass="gnu.c.compiler.option.misc.verbose"/> -<option id="gnu.c.compiler.option.misc.ansi.294941930" name="Support ANSI programs (-ansi)" superClass="gnu.c.compiler.option.misc.ansi"/> -<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.652873102" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/> -</tool> -<tool id="cdt.managedbuild.tool.gnu.c.linker.mingw.exe.debug.1649493305" name="MinGW C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.mingw.exe.debug"/> -<tool id="cdt.managedbuild.tool.gnu.cpp.linker.mingw.exe.debug.1371548928" name="MinGW C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.mingw.exe.debug"> -<option id="gnu.cpp.link.option.nostart.1897582052" name="Do not use standard start files (-nostartfiles)" superClass="gnu.cpp.link.option.nostart"/> -<option id="gnu.cpp.link.option.nodeflibs.384976649" name="Do not use default libraries (-nodefaultlibs)" superClass="gnu.cpp.link.option.nodeflibs"/> -<option id="gnu.cpp.link.option.nostdlibs.1142023847" name="No startup or default libs (-nostdlib)" superClass="gnu.cpp.link.option.nostdlibs"/> -<option id="gnu.cpp.link.option.strip.1161196144" name="Omit all symbol information (-s)" superClass="gnu.cpp.link.option.strip"/> -<option id="gnu.cpp.link.option.libs.1662146665" name="Libraries (-l)" superClass="gnu.cpp.link.option.libs" valueType="libs"> -<listOptionValue builtIn="false" value="lua"/> -<listOptionValue builtIn="false" value="luabind"/> -<listOptionValue builtIn="false" value="xml2"/> -<listOptionValue builtIn="false" value="pdcurses"/> -</option> -<option id="gnu.cpp.link.option.paths.1128737822" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths" valueType="libPaths"/> -<option id="gnu.cpp.link.option.flags.727417691" name="Linker flags" superClass="gnu.cpp.link.option.flags"/> -<option id="gnu.cpp.link.option.other.1598614473" name="Other options (-Xlinker [option])" superClass="gnu.cpp.link.option.other"/> -<option id="gnu.cpp.link.option.userobjs.797217777" name="Other objects" superClass="gnu.cpp.link.option.userobjs"/> -<option id="gnu.cpp.link.option.shared.1700596906" name="Shared (-shared)" superClass="gnu.cpp.link.option.shared"/> -<option id="gnu.cpp.link.option.soname.881235808" name="Shared object name (-Wl,-soname=)" superClass="gnu.cpp.link.option.soname"/> -<option id="gnu.cpp.link.option.implname.852975432" name="Import Library name (-Wl,--out-implib=)" superClass="gnu.cpp.link.option.implname"/> -<option id="gnu.cpp.link.option.defname.1384125120" name="DEF file name (-Wl,--output-def=)" superClass="gnu.cpp.link.option.defname"/> -<inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.424704685" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input"> -<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/> -<additionalInput kind="additionalinput" paths="$(LIBS)"/> -</inputType> -</tool> -</toolChain> -</folderInfo> -<sourceEntries> -<entry excluding="common/modules/victoryconditions.c|common/items/studypotion.c|eressea/attributes.c|eressea/triggers.h|eressea/attributes.h|eressea/main.c|eressea/triggers.c|eressea/spells.c|eressea/items.c|common/util/dl|tools|mapper|eressea/gmmain.cpp" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/> -</sourceEntries> -</configuration> -</storageModule> -<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/> -<storageModule moduleId="org.eclipse.cdt.core.language.mapping"/> - -<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/> -<storageModule moduleId="scannerConfiguration"> -<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"/> -<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="makefileGenerator"> -<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.mingw.exe.debug.1679546692;cdt.managedbuild.config.gnu.mingw.exe.debug.1679546692.;cdt.managedbuild.tool.gnu.cpp.compiler.mingw.exe.debug.720079153;cdt.managedbuild.tool.gnu.cpp.compiler.input.1974319351"> -<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP"/> -<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="makefileGenerator"> -<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -</scannerConfigBuildInfo> -<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.mingw.exe.debug.1679546692;cdt.managedbuild.config.gnu.mingw.exe.debug.1679546692.;cdt.managedbuild.tool.gnu.c.compiler.mingw.exe.debug.1339637090;cdt.managedbuild.tool.gnu.c.compiler.input.652873102"> -<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"/> -<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="makefileGenerator"> -<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -</scannerConfigBuildInfo> -<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.mingw.exe.release.1541791553;cdt.managedbuild.config.gnu.mingw.exe.release.1541791553.;cdt.managedbuild.tool.gnu.c.compiler.mingw.exe.release.462340712;cdt.managedbuild.tool.gnu.c.compiler.input.1811165260"> -<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"/> -<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="makefileGenerator"> -<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -</scannerConfigBuildInfo> -<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.mingw.exe.release.1541791553;cdt.managedbuild.config.gnu.mingw.exe.release.1541791553.;cdt.managedbuild.tool.gnu.cpp.compiler.mingw.exe.release.112235286;cdt.managedbuild.tool.gnu.cpp.compiler.input.1399935560"> -<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP"/> -<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="makefileGenerator"> -<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -</scannerConfigBuildInfo> -</storageModule> -</cconfiguration> -<cconfiguration id="cdt.managedbuild.config.gnu.mingw.exe.release.1541791553"> -<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.mingw.exe.release.1541791553" moduleId="org.eclipse.cdt.core.settings" name="Release"> -<externalSettings/> -<extensions> -<extension id="org.eclipse.cdt.core.PE" point="org.eclipse.cdt.core.BinaryParser"/> -<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> -<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> -<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> -</extensions> -</storageModule> -<storageModule moduleId="cdtBuildSystem" version="4.0.0"> -<configuration artifactName="eressea" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.mingw.exe.release.1541791553" name="Release" parent="cdt.managedbuild.config.gnu.mingw.exe.release"> -<folderInfo id="cdt.managedbuild.config.gnu.mingw.exe.release.1541791553." name="/" resourcePath=""> -<toolChain id="cdt.managedbuild.toolchain.gnu.mingw.exe.release.1027782906" name="MinGW GCC" superClass="cdt.managedbuild.toolchain.gnu.mingw.exe.release"> -<targetPlatform id="cdt.managedbuild.target.gnu.platform.mingw.exe.release.1998459463" name="Debug Platform" superClass="cdt.managedbuild.target.gnu.platform.mingw.exe.release"/> -<builder autoBuildTarget="" buildPath="${workspace_loc:/eressea/Release}" cleanBuildTarget="" id="cdt.managedbuild.tool.gnu.builder.mingw.base.452448843" incrementalBuildTarget="" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="CDT Internal Builder" parallelBuildOn="true" parallelizationNumber="-1" superClass="cdt.managedbuild.tool.gnu.builder.mingw.base"/> -<tool id="cdt.managedbuild.tool.gnu.assembler.mingw.exe.release.141808870" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.mingw.exe.release"> -<option id="gnu.both.asm.option.include.paths.1704788626" name="Include paths (-I)" superClass="gnu.both.asm.option.include.paths" valueType="includePath"> -<listOptionValue builtIn="false" value=""${workspace_loc:/eressea}""/> -<listOptionValue builtIn="false" value=""${workspace_loc:/eressea/common}""/> -</option> -<inputType id="cdt.managedbuild.tool.gnu.assembler.input.1185170495" superClass="cdt.managedbuild.tool.gnu.assembler.input"/> -</tool> -<tool id="cdt.managedbuild.tool.gnu.archiver.mingw.base.1876861679" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.mingw.base"/> -<tool id="cdt.managedbuild.tool.gnu.cpp.compiler.mingw.exe.release.112235286" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.mingw.exe.release"> -<option id="gnu.cpp.compiler.mingw.exe.release.option.optimization.level.530685696" name="Optimization Level" superClass="gnu.cpp.compiler.mingw.exe.release.option.optimization.level" value="gnu.cpp.compiler.optimization.level.most" valueType="enumerated"/> -<option id="gnu.cpp.compiler.mingw.exe.release.option.debugging.level.616015470" name="Debug Level" superClass="gnu.cpp.compiler.mingw.exe.release.option.debugging.level" value="gnu.cpp.compiler.debugging.level.none" valueType="enumerated"/> -<option id="gnu.cpp.compiler.option.include.paths.346750431" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" valueType="includePath"> -<listOptionValue builtIn="false" value=""${workspace_loc:/eressea}""/> -<listOptionValue builtIn="false" value=""${workspace_loc:/eressea/common}""/> -</option> -<inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.1399935560" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/> -</tool> -<tool id="cdt.managedbuild.tool.gnu.c.compiler.mingw.exe.release.462340712" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.mingw.exe.release"> -<option defaultValue="gnu.c.optimization.level.most" id="gnu.c.compiler.mingw.exe.release.option.optimization.level.1220414349" name="Optimization Level" superClass="gnu.c.compiler.mingw.exe.release.option.optimization.level" valueType="enumerated"/> -<option id="gnu.c.compiler.mingw.exe.release.option.debugging.level.338289308" name="Debug Level" superClass="gnu.c.compiler.mingw.exe.release.option.debugging.level" value="gnu.c.debugging.level.none" valueType="enumerated"/> -<option id="gnu.c.compiler.option.include.paths.1295238050" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" valueType="includePath"> -<listOptionValue builtIn="false" value=""${workspace_loc:/eressea}""/> -<listOptionValue builtIn="false" value=""${workspace_loc:/eressea/common}""/> -</option> -<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.1811165260" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/> -</tool> -<tool id="cdt.managedbuild.tool.gnu.c.linker.mingw.exe.release.928774754" name="MinGW C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.mingw.exe.release"/> -<tool id="cdt.managedbuild.tool.gnu.cpp.linker.mingw.exe.release.356286294" name="MinGW C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.mingw.exe.release"> -<option id="gnu.cpp.link.option.paths.417330353" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths" valueType="libPaths"/> -<inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.1922446018" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input"> -<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/> -<additionalInput kind="additionalinput" paths="$(LIBS)"/> -</inputType> -</tool> -</toolChain> -</folderInfo> -<sourceEntries> -<entry excluding="common/modules/victoryconditions.c|common/items/studypotion.c|eressea/attributes.c|eressea/triggers.h|eressea/attributes.h|eressea/main.c|eressea/triggers.c|eressea/spells.c|eressea/items.c|common/util/dl|tools|mapper|eressea/gmmain.cpp" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/> -</sourceEntries> -</configuration> -</storageModule> -<storageModule moduleId="org.eclipse.cdt.core.language.mapping"/> - -<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/> -<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/> -<storageModule moduleId="scannerConfiguration"> -<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"/> -<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="makefileGenerator"> -<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.mingw.exe.debug.1679546692;cdt.managedbuild.config.gnu.mingw.exe.debug.1679546692.;cdt.managedbuild.tool.gnu.cpp.compiler.mingw.exe.debug.720079153;cdt.managedbuild.tool.gnu.cpp.compiler.input.1974319351"> -<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP"/> -<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="makefileGenerator"> -<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -</scannerConfigBuildInfo> -<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.mingw.exe.debug.1679546692;cdt.managedbuild.config.gnu.mingw.exe.debug.1679546692.;cdt.managedbuild.tool.gnu.c.compiler.mingw.exe.debug.1339637090;cdt.managedbuild.tool.gnu.c.compiler.input.652873102"> -<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"/> -<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="makefileGenerator"> -<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -</scannerConfigBuildInfo> -<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.mingw.exe.release.1541791553;cdt.managedbuild.config.gnu.mingw.exe.release.1541791553.;cdt.managedbuild.tool.gnu.c.compiler.mingw.exe.release.462340712;cdt.managedbuild.tool.gnu.c.compiler.input.1811165260"> -<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"/> -<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="makefileGenerator"> -<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -</scannerConfigBuildInfo> -<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.mingw.exe.release.1541791553;cdt.managedbuild.config.gnu.mingw.exe.release.1541791553.;cdt.managedbuild.tool.gnu.cpp.compiler.mingw.exe.release.112235286;cdt.managedbuild.tool.gnu.cpp.compiler.input.1399935560"> -<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP"/> -<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="makefileGenerator"> -<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC"> -<buildOutputProvider> -<openAction enabled="true" filePath=""/> -<parser enabled="true"/> -</buildOutputProvider> -<scannerInfoProvider id="specsFile"> -<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/> -<parser enabled="true"/> -</scannerInfoProvider> -</profile> -</scannerConfigBuildInfo> -</storageModule> -</cconfiguration> -</storageModule> -<storageModule moduleId="cdtBuildSystem" version="4.0.0"> -<project id="eressea.cdt.managedbuild.target.gnu.mingw.exe.714986950" name="Executable" projectType="cdt.managedbuild.target.gnu.mingw.exe"/> -</storageModule> -</cproject> diff --git a/src/.project b/src/.project deleted file mode 100644 index a9e0b995a..000000000 --- a/src/.project +++ /dev/null @@ -1,82 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<projectDescription> - <name>eressea</name> - <comment></comment> - <projects> - </projects> - <buildSpec> - <buildCommand> - <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name> - <triggers>clean,full,incremental,</triggers> - <arguments> - <dictionary> - <key>org.eclipse.cdt.make.core.cleanBuildTarget</key> - <value></value> - </dictionary> - <dictionary> - <key>org.eclipse.cdt.make.core.enableCleanBuild</key> - <value>true</value> - </dictionary> - <dictionary> - <key>?name?</key> - <value></value> - </dictionary> - <dictionary> - <key>org.eclipse.cdt.make.core.append_environment</key> - <value>true</value> - </dictionary> - <dictionary> - <key>org.eclipse.cdt.make.core.stopOnError</key> - <value>true</value> - </dictionary> - <dictionary> - <key>org.eclipse.cdt.make.core.buildCommand</key> - <value>make</value> - </dictionary> - <dictionary> - <key>org.eclipse.cdt.make.core.contents</key> - <value>org.eclipse.cdt.make.core.activeConfigSettings</value> - </dictionary> - <dictionary> - <key>org.eclipse.cdt.make.core.buildLocation</key> - <value>${workspace_loc:/eressea/Debug}</value> - </dictionary> - <dictionary> - <key>org.eclipse.cdt.make.core.useDefaultBuildCmd</key> - <value>true</value> - </dictionary> - <dictionary> - <key>org.eclipse.cdt.make.core.enableAutoBuild</key> - <value>false</value> - </dictionary> - <dictionary> - <key>org.eclipse.cdt.make.core.enableFullBuild</key> - <value>true</value> - </dictionary> - <dictionary> - <key>org.eclipse.cdt.make.core.buildArguments</key> - <value></value> - </dictionary> - <dictionary> - <key>org.eclipse.cdt.make.core.fullBuildTarget</key> - <value></value> - </dictionary> - <dictionary> - <key>org.eclipse.cdt.make.core.autoBuildTarget</key> - <value></value> - </dictionary> - </arguments> - </buildCommand> - <buildCommand> - <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name> - <arguments> - </arguments> - </buildCommand> - </buildSpec> - <natures> - <nature>org.eclipse.cdt.core.ccnature</nature> - <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature> - <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature> - <nature>org.eclipse.cdt.core.cnature</nature> - </natures> -</projectDescription> diff --git a/src/build_vs2003.bat b/src/build_vs2003.bat deleted file mode 100644 index 31a76ed95..000000000 --- a/src/build_vs2003.bat +++ /dev/null @@ -1,2 +0,0 @@ -REM rebuild eressea projects for VC7.1 -premake --file premake.lua --target vs2003 diff --git a/src/build_vs2005.bat b/src/build_vs2005.bat deleted file mode 100644 index df460d8b9..000000000 --- a/src/build_vs2005.bat +++ /dev/null @@ -1,2 +0,0 @@ -REM rebuild eressea projects for VC8 -premake --file premake.lua --target vs2005 diff --git a/src/combined/bindings.cpp b/src/combined/bindings.cpp deleted file mode 100644 index fbc3f8d98..000000000 --- a/src/combined/bindings.cpp +++ /dev/null @@ -1,24 +0,0 @@ -#include "common/settings.h" -#include "common/config.h" -#include "stdafx.hpp" - -#include "eressea/server.cpp" - -#ifdef BINDINGS_LUABIND -#include "eressea/lua/alliance.cpp" -#include "eressea/lua/building.cpp" -#include "eressea/lua/eressea.cpp" -#include "eressea/lua/event.cpp" -#include "eressea/lua/faction.cpp" -#include "eressea/lua/gamecode.cpp" -#include "eressea/lua/gm.cpp" -#include "eressea/lua/item.cpp" -#include "eressea/lua/message.cpp" -#include "eressea/lua/objects.cpp" -#include "eressea/lua/region.cpp" -#include "eressea/lua/script.cpp" -#include "eressea/lua/ship.cpp" -#include "eressea/lua/spell.cpp" -#include "eressea/lua/test.cpp" -#include "eressea/lua/unit.cpp" -#endif diff --git a/src/combined/stdafx.cpp b/src/combined/stdafx.cpp deleted file mode 100644 index 7845e6a58..000000000 --- a/src/combined/stdafx.cpp +++ /dev/null @@ -1 +0,0 @@ -#include "stdafx.hpp" diff --git a/src/combined/stdafx.hpp b/src/combined/stdafx.hpp deleted file mode 100644 index 360bf55a4..000000000 --- a/src/combined/stdafx.hpp +++ /dev/null @@ -1,2 +0,0 @@ -#include "common/settings.h" -#include "common/config.h" diff --git a/src/eressea/tolua/bind_attrib.c b/src/common/bindings/bind_attrib.c similarity index 100% rename from src/eressea/tolua/bind_attrib.c rename to src/common/bindings/bind_attrib.c diff --git a/src/eressea/tolua/bind_attrib.h b/src/common/bindings/bind_attrib.h similarity index 100% rename from src/eressea/tolua/bind_attrib.h rename to src/common/bindings/bind_attrib.h diff --git a/src/eressea/tolua/bind_building.c b/src/common/bindings/bind_building.c similarity index 100% rename from src/eressea/tolua/bind_building.c rename to src/common/bindings/bind_building.c diff --git a/src/eressea/tolua/bind_building.h b/src/common/bindings/bind_building.h similarity index 100% rename from src/eressea/tolua/bind_building.h rename to src/common/bindings/bind_building.h diff --git a/src/eressea/tolua/bind_faction.c b/src/common/bindings/bind_faction.c similarity index 100% rename from src/eressea/tolua/bind_faction.c rename to src/common/bindings/bind_faction.c diff --git a/src/eressea/tolua/bind_faction.h b/src/common/bindings/bind_faction.h similarity index 100% rename from src/eressea/tolua/bind_faction.h rename to src/common/bindings/bind_faction.h diff --git a/src/eressea/tolua/bind_gmtool.c b/src/common/bindings/bind_gmtool.c similarity index 100% rename from src/eressea/tolua/bind_gmtool.c rename to src/common/bindings/bind_gmtool.c diff --git a/src/eressea/tolua/bind_gmtool.h b/src/common/bindings/bind_gmtool.h similarity index 100% rename from src/eressea/tolua/bind_gmtool.h rename to src/common/bindings/bind_gmtool.h diff --git a/src/eressea/tolua/bind_hashtable.c b/src/common/bindings/bind_hashtable.c similarity index 100% rename from src/eressea/tolua/bind_hashtable.c rename to src/common/bindings/bind_hashtable.c diff --git a/src/eressea/tolua/bind_hashtable.h b/src/common/bindings/bind_hashtable.h similarity index 100% rename from src/eressea/tolua/bind_hashtable.h rename to src/common/bindings/bind_hashtable.h diff --git a/src/eressea/tolua/bind_message.c b/src/common/bindings/bind_message.c similarity index 100% rename from src/eressea/tolua/bind_message.c rename to src/common/bindings/bind_message.c diff --git a/src/eressea/tolua/bind_message.h b/src/common/bindings/bind_message.h similarity index 100% rename from src/eressea/tolua/bind_message.h rename to src/common/bindings/bind_message.h diff --git a/src/eressea/tolua/bind_region.c b/src/common/bindings/bind_region.c similarity index 100% rename from src/eressea/tolua/bind_region.c rename to src/common/bindings/bind_region.c diff --git a/src/eressea/tolua/bind_region.h b/src/common/bindings/bind_region.h similarity index 100% rename from src/eressea/tolua/bind_region.h rename to src/common/bindings/bind_region.h diff --git a/src/eressea/tolua/bind_ship.c b/src/common/bindings/bind_ship.c similarity index 100% rename from src/eressea/tolua/bind_ship.c rename to src/common/bindings/bind_ship.c diff --git a/src/eressea/tolua/bind_ship.h b/src/common/bindings/bind_ship.h similarity index 100% rename from src/eressea/tolua/bind_ship.h rename to src/common/bindings/bind_ship.h diff --git a/src/eressea/tolua/bind_sqlite.c b/src/common/bindings/bind_sqlite.c similarity index 100% rename from src/eressea/tolua/bind_sqlite.c rename to src/common/bindings/bind_sqlite.c diff --git a/src/eressea/tolua/bind_storage.c b/src/common/bindings/bind_storage.c similarity index 100% rename from src/eressea/tolua/bind_storage.c rename to src/common/bindings/bind_storage.c diff --git a/src/eressea/tolua/bind_storage.h b/src/common/bindings/bind_storage.h similarity index 100% rename from src/eressea/tolua/bind_storage.h rename to src/common/bindings/bind_storage.h diff --git a/src/eressea/tolua/bind_unit.c b/src/common/bindings/bind_unit.c similarity index 100% rename from src/eressea/tolua/bind_unit.c rename to src/common/bindings/bind_unit.c diff --git a/src/eressea/tolua/bind_unit.h b/src/common/bindings/bind_unit.h similarity index 100% rename from src/eressea/tolua/bind_unit.h rename to src/common/bindings/bind_unit.h diff --git a/src/eressea/tolua/bindings.c b/src/common/bindings/bindings.c similarity index 100% rename from src/eressea/tolua/bindings.c rename to src/common/bindings/bindings.c diff --git a/src/eressea/tolua/bindings.h b/src/common/bindings/bindings.h similarity index 100% rename from src/eressea/tolua/bindings.h rename to src/common/bindings/bindings.h diff --git a/src/eressea/tolua/helpers.c b/src/common/bindings/helpers.c similarity index 100% rename from src/eressea/tolua/helpers.c rename to src/common/bindings/helpers.c diff --git a/src/eressea/tolua/helpers.h b/src/common/bindings/helpers.h similarity index 100% rename from src/eressea/tolua/helpers.h rename to src/common/bindings/helpers.h diff --git a/src/combined/Jamfile b/src/common/build/Jamfile similarity index 100% rename from src/combined/Jamfile rename to src/common/build/Jamfile diff --git a/src/combined/atoi36.c b/src/common/build/atoi36.c similarity index 100% rename from src/combined/atoi36.c rename to src/common/build/atoi36.c diff --git a/src/combined/curses.c b/src/common/build/curses.c similarity index 100% rename from src/combined/curses.c rename to src/common/build/curses.c diff --git a/src/combined/gamecode.c b/src/common/build/gamecode.c similarity index 100% rename from src/combined/gamecode.c rename to src/common/build/gamecode.c diff --git a/src/combined/kernel.c b/src/common/build/kernel.c similarity index 100% rename from src/combined/kernel.c rename to src/common/build/kernel.c diff --git a/src/combined/main.c b/src/common/build/main.c similarity index 100% rename from src/combined/main.c rename to src/common/build/main.c diff --git a/src/combined/malloc.c b/src/common/build/malloc.c similarity index 100% rename from src/combined/malloc.c rename to src/common/build/malloc.c diff --git a/src/combined/stdafx.c b/src/common/build/stdafx.c similarity index 100% rename from src/combined/stdafx.c rename to src/common/build/stdafx.c diff --git a/src/combined/stdafx.h b/src/common/build/stdafx.h similarity index 100% rename from src/combined/stdafx.h rename to src/common/build/stdafx.h diff --git a/src/combined/util.c b/src/common/build/util.c similarity index 100% rename from src/combined/util.c rename to src/common/build/util.c diff --git a/src/eressea/editing.c b/src/common/editing.c similarity index 100% rename from src/eressea/editing.c rename to src/common/editing.c diff --git a/src/eressea/editing.h b/src/common/editing.h similarity index 100% rename from src/eressea/editing.h rename to src/common/editing.h diff --git a/src/eressea/gmtool.c b/src/common/gmtool.c similarity index 100% rename from src/eressea/gmtool.c rename to src/common/gmtool.c diff --git a/src/eressea/gmtool.h b/src/common/gmtool.h similarity index 100% rename from src/eressea/gmtool.h rename to src/common/gmtool.h diff --git a/src/eressea/gmtool.vcproj b/src/common/gmtool.vcproj similarity index 100% rename from src/eressea/gmtool.vcproj rename to src/common/gmtool.vcproj diff --git a/src/eressea/gmtool_structs.h b/src/common/gmtool_structs.h similarity index 100% rename from src/eressea/gmtool_structs.h rename to src/common/gmtool_structs.h diff --git a/src/eressea/lua.hpp b/src/common/lua.hpp similarity index 100% rename from src/eressea/lua.hpp rename to src/common/lua.hpp diff --git a/src/eressea/console.c b/src/common/util/console.c similarity index 100% rename from src/eressea/console.c rename to src/common/util/console.c diff --git a/src/eressea/console.h b/src/common/util/console.h similarity index 100% rename from src/eressea/console.h rename to src/common/util/console.h diff --git a/src/eressea/curses/listbox.c b/src/common/util/listbox.c similarity index 100% rename from src/eressea/curses/listbox.c rename to src/common/util/listbox.c diff --git a/src/eressea/curses/listbox.h b/src/common/util/listbox.h similarity index 100% rename from src/eressea/curses/listbox.h rename to src/common/util/listbox.h diff --git a/src/eressea/lua/alliance.cpp b/src/eressea/lua/alliance.cpp deleted file mode 100644 index 27687970b..000000000 --- a/src/eressea/lua/alliance.cpp +++ /dev/null @@ -1,61 +0,0 @@ -#include <config.h> -#include <kernel/eressea.h> - -#include "list.h" - -// kernel includes -#include <kernel/region.h> -#include <kernel/faction.h> -#include <kernel/alliance.h> - -// lua includes -#ifdef _MSC_VER -#pragma warning (push) -#pragma warning (disable: 4127) -#endif -#include <luabind/luabind.hpp> -#include <luabind/iterator_policy.hpp> -#include <luabind/object.hpp> -#ifdef _MSC_VER -#pragma warning (pop) -#endif - -using namespace luabind; - -class factionlist_iterator { -public: - static faction_list * next(faction_list * node) { return node->next; } - static faction * value(faction_list * node) { return node->data; } -}; - -static eressea::list<faction *, faction_list *, factionlist_iterator> -alliance_factions(const alliance& al) -{ - return eressea::list<faction *, faction_list *, factionlist_iterator>(al.members); -} - -static alliance * -add_alliance(int id, const char * name) -{ - return makealliance(id, name); -} - -static eressea::list<alliance *> -get_alliances(void) { - return eressea::list<alliance *>(alliances); -} - -void -bind_alliance(lua_State * L) -{ - module(L)[ - def("alliances", &get_alliances, return_stl_iterator), - def("get_alliance", &findalliance), - def("add_alliance", &add_alliance), - def("victorycondition", &victorycondition), - class_<struct alliance>("alliance") - .def_readonly("name", &alliance::name) - .def_readonly("id", &alliance::id) - .property("factions", &alliance_factions, return_stl_iterator) - ]; -} diff --git a/src/eressea/lua/bindings.h b/src/eressea/lua/bindings.h deleted file mode 100644 index 2dd5dc863..000000000 --- a/src/eressea/lua/bindings.h +++ /dev/null @@ -1,29 +0,0 @@ -#ifndef LUA_BINDINGS_H -#define LUA_BINDINGS_H - -extern bool is_function(struct lua_State * L, const char * fname); - -extern void bind_region(struct lua_State * L); -extern void bind_unit(struct lua_State * L); -extern void bind_ship(struct lua_State * L); -extern void bind_building(struct lua_State * L); -extern void bind_faction(struct lua_State * L); -extern void bind_alliance(struct lua_State * L); -extern void bind_eressea(struct lua_State * L); -extern void bind_spell(struct lua_State * L) ; -extern void bind_item(struct lua_State * L); -extern void bind_event(struct lua_State * L); -extern void bind_message(struct lua_State * L); -extern void bind_objects(struct lua_State * L); - -/* test routines */ -extern void bind_test(struct lua_State * L); - -/* server only */ -extern void bind_script(struct lua_State * L); -extern void bind_gamecode(struct lua_State * L); - -/* gmtool only */ -extern void bind_gmtool(lua_State * L); - -#endif diff --git a/src/eressea/lua/bindings.vcproj b/src/eressea/lua/bindings.vcproj deleted file mode 100644 index 22acbb366..000000000 --- a/src/eressea/lua/bindings.vcproj +++ /dev/null @@ -1,311 +0,0 @@ -<?xml version="1.0" encoding="Windows-1252"?> -<VisualStudioProject - ProjectType="Visual C++" - Version="8.00" - Name="bindings" - ProjectGUID="{74B1CBD4-3B6E-E544-9475-33FBB0BCE165}" - RootNamespace="bindings" - Keyword="Win32Proj" - > - <Platforms> - <Platform - Name="Win32" - /> - </Platforms> - <ToolFiles> - </ToolFiles> - <Configurations> - <Configuration - Name="Debug|Win32" - OutputDirectory="Debug/bindings" - IntermediateDirectory="Debug/bindings" - ConfigurationType="4" - CharacterSet="2" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - /> - <Tool - Name="VCCLCompilerTool" - AdditionalOptions="/MP" - Optimization="0" - AdditionalIncludeDirectories="../..;../../common" - PreprocessorDefinitions="WIN32;_CRT_SECURE_NO_DEPRECATE" - MinimalRebuild="true" - BasicRuntimeChecks="3" - RuntimeLibrary="3" - EnableFunctionLevelLinking="true" - UsePrecompiledHeader="0" - WarningLevel="4" - WarnAsError="true" - Detect64BitPortabilityProblems="true" - DebugInformationFormat="4" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - PreprocessorDefinitions="WIN32;_CRT_SECURE_NO_DEPRECATE" - AdditionalIncludeDirectories="../..;../../common" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLibrarianTool" - OutputFile="$(OutDir)/bindings.lib" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - /> - <Tool - Name="VCFxCopTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - </Configuration> - <Configuration - Name="Profile|Win32" - OutputDirectory="Profile/bindings" - IntermediateDirectory="Profile/bindings" - ConfigurationType="4" - CharacterSet="2" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - /> - <Tool - Name="VCCLCompilerTool" - Optimization="0" - AdditionalIncludeDirectories="../..;../../common" - PreprocessorDefinitions="WIN32;_CRT_SECURE_NO_DEPRECATE;NDEBUG" - MinimalRebuild="true" - BasicRuntimeChecks="3" - RuntimeLibrary="3" - EnableFunctionLevelLinking="true" - UsePrecompiledHeader="0" - WarningLevel="4" - Detect64BitPortabilityProblems="true" - DebugInformationFormat="4" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - PreprocessorDefinitions="WIN32;_CRT_SECURE_NO_DEPRECATE;NDEBUG" - AdditionalIncludeDirectories="../..;../../common" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLibrarianTool" - OutputFile="$(OutDir)/bindings.lib" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - /> - <Tool - Name="VCFxCopTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - </Configuration> - <Configuration - Name="Release|Win32" - OutputDirectory="Release/bindings" - IntermediateDirectory="Release/bindings" - ConfigurationType="4" - CharacterSet="2" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - /> - <Tool - Name="VCCLCompilerTool" - Optimization="3" - AdditionalIncludeDirectories="../..;../../common" - PreprocessorDefinitions="WIN32;_CRT_SECURE_NO_DEPRECATE;NDEBUG" - StringPooling="true" - RuntimeLibrary="2" - EnableFunctionLevelLinking="true" - UsePrecompiledHeader="0" - WarningLevel="4" - Detect64BitPortabilityProblems="true" - DebugInformationFormat="0" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - PreprocessorDefinitions="WIN32;_CRT_SECURE_NO_DEPRECATE;NDEBUG" - AdditionalIncludeDirectories="../..;../../common" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLibrarianTool" - OutputFile="$(OutDir)/bindings.lib" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - /> - <Tool - Name="VCFxCopTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - </Configuration> - </Configurations> - <References> - </References> - <Files> - <File - RelativePath=".\alliance.cpp" - > - </File> - <File - RelativePath=".\bindings.h" - > - </File> - <File - RelativePath=".\building.cpp" - > - </File> - <File - RelativePath=".\eressea.cpp" - > - </File> - <File - RelativePath=".\event.cpp" - > - </File> - <File - RelativePath=".\event.h" - > - </File> - <File - RelativePath=".\export.h" - > - </File> - <File - RelativePath=".\faction.cpp" - > - </File> - <File - RelativePath=".\gamecode.cpp" - > - </File> - <File - RelativePath=".\item.cpp" - > - </File> - <File - RelativePath=".\list.h" - > - </File> - <File - RelativePath=".\message.cpp" - > - </File> - <File - RelativePath=".\objects.cpp" - > - </File> - <File - RelativePath=".\objects.h" - > - </File> - <File - RelativePath=".\region.cpp" - > - </File> - <File - RelativePath=".\script.cpp" - > - </File> - <File - RelativePath=".\script.h" - > - </File> - <File - RelativePath=".\ship.cpp" - > - </File> - <File - RelativePath=".\spell.cpp" - > - </File> - <File - RelativePath=".\test.cpp" - > - </File> - <File - RelativePath=".\unit.cpp" - > - </File> - </Files> - <Globals> - </Globals> -</VisualStudioProject> diff --git a/src/eressea/lua/building.cpp b/src/eressea/lua/building.cpp deleted file mode 100644 index 50f961706..000000000 --- a/src/eressea/lua/building.cpp +++ /dev/null @@ -1,154 +0,0 @@ -#include <config.h> -#include <kernel/eressea.h> -#include "list.h" -#include "objects.h" -#include "bindings.h" - -// kernel includes -#include <kernel/building.h> -#include <kernel/region.h> -#include <kernel/unit.h> - -// lua includes -#ifdef _MSC_VER -#pragma warning (push) -#pragma warning (disable: 4127) -#endif -#include <lua.hpp> -#include <luabind/luabind.hpp> -#include <luabind/iterator_policy.hpp> -#include <luabind/operator.hpp> -#ifdef _MSC_VER -#pragma warning (pop) -#endif - -// util includes -#include <util/attrib.h> -#include <util/base36.h> -#include <util/lists.h> -#include <util/log.h> - -using namespace luabind; - -static building * -add_building(region * r, const char * name) -{ - const building_type * btype = bt_find(name); - if (btype==NULL) return NULL; - return new_building(btype, r, NULL); -} - -static int -lc_age(struct attrib * a) -{ - building_action * data = (building_action*)a->data.v; - const char * fname = data->fname; - const char * fparam = data->param; - building * b = data->b; - int retval = -1; - - assert(b!=NULL); - if (fname!=NULL) { - lua_State * L = (lua_State *)global.vm_state; - if (is_function(L, fname)) { - try { - if (fparam) { - std::string param(fparam); - retval = luabind::call_function<int>(L, fname, b, param); - } else { - retval = luabind::call_function<int>(L, fname, b); - } - } - catch (luabind::error& e) { - lua_State* L = e.state(); - const char* error = lua_tostring(L, -1); - log_error(("An exception occured while %s tried to call '%s': %s.\n", - buildingname(b), fname, error)); - lua_pop(L, 1); - /* std::terminate(); */ - } - } - } - return (retval!=0)?AT_AGE_KEEP:AT_AGE_REMOVE; -} - -static const char * -building_getinfo(const building * b) -{ - return (const char*)b->display; -} - -static void -building_setinfo(building * b, const char * info) -{ - free(b->display); - b->display = strdup(info); -} - -static std::ostream& -operator<<(std::ostream& stream, const building& b) -{ - stream << b.name; - stream << " (" << itoa36(b.no) << ")"; - stream << ", " << b.type->_name; - stream << " size " << b.size; - return stream; -} - -static bool -operator==(const building& a, const building&b) -{ - return a.no==b.no; -} - -class buildingunit { -public: - static unit * next(unit * node) { - building * b = node->building; - do { - node = node->next; - } while (node !=NULL && node->building!=b); - return node; - } - static unit * value(unit * node) { return node; } -}; - - -static eressea::list<unit *, unit *, buildingunit> -building_units(const building * b) { - region * r = b->region; - unit * u = r->units; - while (u!=NULL && (!u->building || u->building->no!=b->no)) u=u->next; - return eressea::list<unit *, unit *, buildingunit>(u); -} - -const char * -building_gettype(const building& b) { - return b.type->_name; -} - -void -bind_building(lua_State * L) -{ - at_building_action.age = lc_age; - module(L)[ - def("get_building", &findbuilding), - def("add_building", &add_building), - - class_<struct building>("building") - .def(self == building()) - .def(tostring(self)) - .property("name", &building_getname, &building_setname) - .property("info", &building_getinfo, &building_setinfo) - .property("units", &building_units, return_stl_iterator) - .property("region", &building_getregion, &building_setregion) - .property("type", &building_gettype) - .def_readonly("id", &building::no) - .def_readwrite("size", &building::size) - .def("add_action", &building_addaction) - .property("objects", &eressea::get_objects<building>) - .scope [ - def("create", &add_building) - ] - ]; -} diff --git a/src/eressea/lua/eressea.cpp b/src/eressea/lua/eressea.cpp deleted file mode 100644 index 166ebb732..000000000 --- a/src/eressea/lua/eressea.cpp +++ /dev/null @@ -1,242 +0,0 @@ -#include <config.h> -#include <kernel/eressea.h> - -#include "bindings.h" - -#include <attributes/key.h> -#include <modules/autoseed.h> -#include <modules/score.h> - -// kernel includes -#include <kernel/alliance.h> -#include <kernel/calendar.h> -#include <kernel/equipment.h> -#include <kernel/faction.h> -#include <kernel/item.h> -#include <kernel/plane.h> -#include <kernel/race.h> -#include <kernel/reports.h> -#include <kernel/save.h> -#include <kernel/skill.h> -#include <kernel/teleport.h> -#include <kernel/unit.h> - -#include <gamecode/laws.h> - -// lua includes -#ifdef _MSC_VER -#pragma warning (push) -#pragma warning (disable: 4127) -#endif -#include <lua.hpp> -#include <luabind/luabind.hpp> -#include <luabind/iterator_policy.hpp> -#ifdef _MSC_VER -#pragma warning (pop) -#endif - -// util includes -#include <util/attrib.h> -#include <util/language.h> -#include <util/lists.h> -#include <util/log.h> -#include <util/base36.h> -#include <util/rand.h> -#include <util/rng.h> - -#include <cstring> -#include <ctime> - -using namespace luabind; - -static int -lua_addequipment(const char * eqname, const char * iname, const char * value) -{ - if (iname==NULL) return -1; - const struct item_type * itype = it_find(iname); - if (itype==NULL) return -1; - equipment_setitem(create_equipment(eqname), itype, value); - return 0; -} - -static int -get_turn(void) -{ - return turn; -} - -static int -get_nmrs(int n) -{ - if (n<=NMRTimeout()) { - if (nmrs==NULL) update_nmrs(); - return nmrs[n]; - } - return 0; -} - -static int -find_plane_id(const char * name) -{ - plane * pl = getplanebyname(name); - return pl?pl->id:0; -} - -static bool -get_key(const char * name) -{ - int flag = atoi36(name); - attrib * a = find_key(global.attribs, flag); - return (a!=NULL); -} - -static void -set_key(const char * name, bool value) -{ - int flag = atoi36(name); - attrib * a = find_key(global.attribs, flag); - if (a==NULL && value) { - add_key(&global.attribs, flag); - } else if (a!=NULL && !value) { - a_remove(&global.attribs, a); - } -} - -static const char * -get_gamename(void) -{ - return global.gamename; -} - -static void -lua_setstring(const char * lname, const char * key, const char * str) -{ - struct locale * lang = find_locale(lname); - locale_setstring(lang, key, str); -} - -static const char * -lua_getstring(const char * lname, const char * key) -{ - if (key) { - struct locale * lang = find_locale(lname); - return (const char*)locale_getstring(lang, key); - } - return NULL; -} - -#define ISLANDSIZE 20 -#define TURNS_PER_ISLAND 5 -static void -lua_autoseed(const char * filename, bool new_island) -{ - newfaction * players = read_newfactions(filename); - if (players!=NULL) { - while (players) { - int n = listlen(players); - int k = (n+ISLANDSIZE-1)/ISLANDSIZE; - k = n / k; - n = autoseed(&players, k, new_island?0:TURNS_PER_ISLAND); - if (n==0) { - break; - } - } - } -} - -#ifdef LUABIND_NO_EXCEPTIONS -static void -error_callback(lua_State * L) -{ -} -#endif - -static int -get_direction(const char * name) -{ - for (int i=0;i!=MAXDIRECTIONS;++i) { - if (strcasecmp(directions[i], name)==0) return i; - } - return NODIRECTION; -} - -static void -lua_equipunit(unit * u, const char * eqname) -{ - equip_unit(u, get_equipment(eqname)); -} - -static void -lua_learnskill(unit * u, const char * skname, float chances) -{ - skill_t sk = sk_find(skname); - if (sk!=NOSKILL) { - learn_skill(u, sk, chances); - } -} - -bool -is_function(struct lua_State * luaState, const char * fname) -{ - object g = globals(luaState); - object fun = g[fname]; - if (fun.is_valid()) { - if (type(fun)==LUA_TFUNCTION) { - return true; - } - if (type(fun)!=LUA_TNIL) { - log_warning(("Lua global object %s is not a function, type is %u\n", fname, type(fun))); - } - } - return false; -} - -static const char * -get_season(int turnno) -{ - gamedate gd; - get_gamedate(turnno, &gd); - return seasonnames[gd.season]; -} - -void -bind_eressea(lua_State * L) -{ - module(L)[ - def("atoi36", &atoi36), - def("rng_int", &rng_int), - def("itoa36", &itoa36), - def("dice_roll", &dice_rand), - def("equipment_setitem", &lua_addequipment), - def("get_turn", &get_turn), - def("get_season", &get_season), - def("get_nmrs", &get_nmrs), - def("remove_empty_units", &remove_empty_units), - - def("update_subscriptions", &update_subscriptions), - def("update_scores", &score), - - def("equip_unit", &lua_equipunit), - def("learn_skill", &lua_learnskill), - - /* map making */ - def("autoseed", lua_autoseed), - - /* string to enum */ - def("direction", &get_direction), - - /* localization: */ - def("set_string", &lua_setstring), - def("get_string", &lua_getstring), - - def("set_key", &set_key), - def("get_key", &get_key), - - def("get_gamename", &get_gamename), - /* planes not really implemented */ - def("get_plane_id", &find_plane_id) - ]; -#ifdef LUABIND_NO_EXCEPTIONS - luabind::set_error_callback(error_callback); -#endif -} diff --git a/src/eressea/lua/event.cpp b/src/eressea/lua/event.cpp deleted file mode 100644 index e39069520..000000000 --- a/src/eressea/lua/event.cpp +++ /dev/null @@ -1,61 +0,0 @@ -#include <config.h> -#include <kernel/eressea.h> -#include "event.h" - -// kernel includes -#include <kernel/unit.h> - -// util includes -#include <util/base36.h> -#include <util/event.h> - -// lua includes -#ifdef _MSC_VER -#pragma warning (push) -#pragma warning (disable: 4127) -#endif -#include <lua.hpp> -#include <luabind/luabind.hpp> -#ifdef _MSC_VER -#pragma warning (pop) -#endif - -using namespace luabind; - - -const char * -event::get_type(int i) const -{ - return args[i].type; -} - -struct unit * -event::get_unit(int i) const -{ - return (struct unit *)args[i].data.v; -} - -const char * -event::get_string(int i) const -{ - return (const char*)args[i].data.v; -} - -int -event::get_int(int i) const -{ - return args[i].data.i; -} - -void -bind_event(lua_State * L) -{ - module(L)[ - class_<event>("event") - .def("message", &event::get_message) - .def("get_type", &event::get_type) - .def("get_string", &event::get_string) - .def("get_unit", &event::get_unit) - .def("get_int", &event::get_int) - ]; -} diff --git a/src/eressea/lua/event.h b/src/eressea/lua/event.h deleted file mode 100644 index f7361a0d2..000000000 --- a/src/eressea/lua/event.h +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef LUA_EVENT_H -#define LUA_EVENT_H -class event { -public: - event(char * m, struct event_arg * a) : args(a), msg(m) {} - - const char * get_message(int i) const { return msg; } - const char * get_type(int i) const; - struct unit * get_unit(int i) const; - const char * get_string(int i) const; - int get_int(int i) const; - -private: - struct event_arg * args; - char * msg; -}; - -#endif diff --git a/src/eressea/lua/export.h b/src/eressea/lua/export.h deleted file mode 100644 index ee52356a1..000000000 --- a/src/eressea/lua/export.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef LUA_EXPORT_H -#define LUA_EXPORT_H - -struct lua_State; - -extern void bind_region(struct lua_State * L); -extern void bind_unit(struct lua_State * L); -extern void bind_ship(struct lua_State * L); -extern void bind_building(struct lua_State * L); -extern void bind_faction(struct lua_State * L); - -#endif diff --git a/src/eressea/lua/faction.cpp b/src/eressea/lua/faction.cpp deleted file mode 100644 index e41a499ec..000000000 --- a/src/eressea/lua/faction.cpp +++ /dev/null @@ -1,315 +0,0 @@ -#include <config.h> -#include <kernel/eressea.h> -#include "list.h" -#include "objects.h" - -// kernel includes -#include <kernel/alliance.h> -#include <kernel/faction.h> -#include <kernel/item.h> -#include <kernel/message.h> -#include <kernel/race.h> -#include <kernel/unit.h> - -// util includes -#include <util/attrib.h> -#include <util/base36.h> -#include <util/language.h> - -// attrib includes -#include <attributes/attributes.h> -#include <attributes/variable.h> - -// lua includes -#ifdef _MSC_VER -#pragma warning (push) -#pragma warning (disable: 4127) -#endif -#include <lua.hpp> -#include <luabind/luabind.hpp> -#include <luabind/iterator_policy.hpp> -#include <luabind/out_value_policy.hpp> -#include <luabind/copy_policy.hpp> -#include <luabind/operator.hpp> -#ifdef _MSC_VER -#pragma warning (pop) -#endif - -#include <ostream> -#include <cstring> -using namespace luabind; - -static faction * -add_faction(const char * email, const char * racename, const char * lang) -{ - const race * frace = findrace(racename, default_locale); - if (frace==NULL) frace = findrace(racename, find_locale("de")); - if (frace==NULL) frace = findrace(racename, find_locale("en")); - if (frace==NULL) return NULL; - locale * loc = find_locale(lang); - faction * f = addfaction(email, NULL, frace, loc, 0); - return f; -} - -static eressea::list<faction *> -get_factions(void) { - return eressea::list<faction *>(factions); -} - -class factionunit { -public: - static unit * next(unit * node) { return node->nextF; } - static unit * value(unit * node) { return node; } -}; - -static eressea::list<unit *, unit *, factionunit> -faction_units(const faction * f) -{ - return eressea::list<unit *, unit *, factionunit>(f->units); -} - -static void -faction_setalliance(faction * f, alliance * team) -{ - if (f->alliance==0) setalliance(f, team); -} - -static alliance * -faction_getalliance(const faction * f) -{ - return f->alliance; -} - -const char * -faction_getlocale(const faction * f) -{ - return locale_name(f->locale); -} - -void -faction_setlocale(faction * f, const char * name) -{ - f->locale = find_locale(name); -} - -static std::ostream& -operator<<(std::ostream& stream, const faction& f) -{ - stream << factionname(&f); - return stream; -} - -static bool -operator==(const faction& a, const faction&b) -{ - return a.no==b.no; -} - -static int -faction_getpolicy(const faction * a, const faction * b, const char * flag) -{ - int mode; - - for (mode=0;helpmodes[mode].name!=NULL;++mode) { - if (strcmp(flag, helpmodes[mode].name)==0) { - return get_alliance(a, b) & mode; - } - } - return 0; -} - -static void -faction_setpolicy(faction * a, faction * b, const char * flag, bool value) -{ - int mode; - - for (mode=0;helpmodes[mode].name!=NULL;++mode) { - if (strcmp(flag, helpmodes[mode].name)==0) { - if (value) set_alliance(a, b, get_alliance(a, b) | helpmodes[mode].status); - else set_alliance(a, b, get_alliance(a, b) & ~helpmodes[mode].status); - break; - } - } -} - -static int -faction_additem(faction * f, const char * iname, int number) -{ - if (iname!=NULL) { - const item_type * itype = it_find(iname); - if (itype!=NULL) { - item * i = i_change(&f->items, itype, number); - return i?i->number:0; - } // if (itype!=NULL) - } - return -1; -} - -static void -faction_addnotice(faction * f, const char * str) -{ - const char * loc = LOC(f->locale, str); - ADDMSG(&f->msgs, msg_message("msg_event", "string", loc)); -} - -static const char * -faction_getrace(const faction * f) -{ - return f->race->_name[0]; -} - -static void -faction_setrace(faction * f, const char * rcname) -{ - race * rc = rc_find(rcname); - if (rc!=NULL) { - f->race = rc; - } -} - -static eressea::list<std::string, item *, eressea::bind_items> -faction_items(const faction * f) { - return eressea::list<std::string, item *, eressea::bind_items>(f->items); -} - -void -faction_set_passw(faction * f, const char * passw) -{ - free(f->passw); - f->passw = strdup(passw); -} - -const char * -faction_get_passw(const faction * f) -{ - return f->passw; -} - -void -faction_set_banner(faction * f, const char * banner) -{ - free(f->banner); - f->banner = strdup(banner); -} - -const char * -faction_get_banner(const faction * f) -{ - if (f->banner) { - return (const char*)f->banner; - } - return ""; -} - -void -faction_set_email(faction * f, const char * email) -{ - free(f->email); - f->email = strdup(email); -} - -const char * -faction_get_email(const faction * f) -{ - return f->email; -} - -void -faction_getorigin(const faction * f, int &x, int &y) -{ - ursprung * origin = f->ursprung; - while (origin!=NULL && origin->id!=0) { - origin = origin->next; - } - if (origin) { - x = origin->x; - y = origin->y; - } else { - x = 0; - y = 0; - } -} -int -faction_getorigin_x(const faction * f) { - return f->ursprung->x; -} -void -faction_setorigin_x(faction * f, int x) { - f->ursprung->x = x; -} - -static int -faction_getorigin_y(const faction * f) { - return f->ursprung->y; -} - -static void -faction_setorigin_y(faction * f, int y) { - f->ursprung->y = y; -} - -static int -faction_countheroes(const faction * f) -{ - return countheroes(f); -} - -static void -faction_renumber(faction * f, int no) -{ - renumber_faction(f, no); -} - -static int -faction_maxheroes(const faction * f) -{ - return maxheroes(f); -} - -void -bind_faction(lua_State * L) -{ - module(L)[ - def("factions", &get_factions, return_stl_iterator), - def("get_faction", &findfaction), - def("faction_origin", &faction_getorigin, pure_out_value(_2) + pure_out_value(_3)), - - class_<struct faction>("faction") - .def(tostring(const_self)) - .def(self == faction()) - .def("set_policy", &faction_setpolicy) - .def("get_policy", &faction_getpolicy) - - // heroes - .def("heroes", &faction_countheroes) - .def("max_heroes", &faction_maxheroes) - - .def_readonly("name", &faction::name) - .def_readonly("score", &faction::score) - .def_readonly("id", &faction::no) - .def_readwrite("age", &faction::age) - .def_readwrite("options", &faction::options) - .def_readwrite("flags", &faction::flags) - .def_readwrite("subscription", &faction::subscription) - .def_readwrite("lastturn", &faction::lastorders) - - .def("add_item", &faction_additem) - .property("items", &faction_items, return_stl_iterator) - .property("x", &faction_getorigin_x, &faction_setorigin_x) - .property("y", &faction_getorigin_y, &faction_setorigin_y) - - .def("renum", &faction_renumber) - .def("add_notice", &faction_addnotice) - .property("password", &faction_get_passw, &faction_set_passw) - .property("info", &faction_get_banner, &faction_set_banner) - .property("email", &faction_get_email, &faction_set_email) - .property("locale", &faction_getlocale, &faction_setlocale) - .property("units", &faction_units, return_stl_iterator) - .property("alliance", &faction_getalliance, &faction_setalliance) - .property("race", &faction_getrace, &faction_setrace) - .property("objects", &eressea::get_objects<faction>) - .scope [ - def("create", &add_faction) - ] - ]; -} diff --git a/src/eressea/lua/gamecode.cpp b/src/eressea/lua/gamecode.cpp deleted file mode 100644 index ef4bf462f..000000000 --- a/src/eressea/lua/gamecode.cpp +++ /dev/null @@ -1,223 +0,0 @@ -#include <config.h> -#include <kernel/eressea.h> - -#include "script.h" -#include "../korrektur.h" - -#include <attributes/key.h> -#include <modules/autoseed.h> -#include <modules/score.h> - -// gamecode includes -#include <gamecode/laws.h> -#include <gamecode/monster.h> -#include <gamecode/creport.h> -#include <gamecode/report.h> -#include <gamecode/summary.h> - -#include <spells/spells.h> - -// kernel includes -#include <kernel/alliance.h> -#include <kernel/equipment.h> -#include <kernel/faction.h> -#include <kernel/item.h> -#include <kernel/ship.h> -#include <kernel/message.h> -#include <kernel/plane.h> -#include <kernel/race.h> -#include <kernel/region.h> -#include <kernel/reports.h> -#include <kernel/save.h> -#include <kernel/skill.h> -#include <kernel/teleport.h> -#include <kernel/unit.h> - -// lua includes -#ifdef _MSC_VER -#pragma warning (push) -#pragma warning (disable: 4127) -#endif -#include <lua.hpp> -#include <luabind/luabind.hpp> -#include <luabind/iterator_policy.hpp> -#ifdef _MSC_VER -#pragma warning (pop) -#endif - -// util includes -#include <util/lists.h> -#include <util/log.h> -#include <util/language.h> -#include <util/base36.h> -#include <util/rand.h> -#include <util/rng.h> - -#include <libxml/encoding.h> - -#include <cstring> -#include <ctime> - -using namespace luabind; - -static void -lua_planmonsters(void) -{ - unit * u; - faction * f = get_monsters(); - - if (f==NULL) return; - plan_monsters(); - for (u=f->units;u;u=u->nextF) { - call_script(u); - } -} - -#ifdef LUABIND_NO_EXCEPTIONS -static void -error_callback(lua_State * L) -{ -} -#endif - -static int -lua_writereport(faction * f) -{ - time_t ltime = time(0); - return write_reports(f, ltime); -} - -static int -lua_writereports(void) -{ - init_reports(); - return reports(); -} - -static void -message_unit(unit * sender, unit * target, const char * str) -{ - deliverMail(target->faction, sender->region, sender, str, target); -} - -static void -message_faction(unit * sender, faction * target, const char * str) -{ - deliverMail(target, sender->region, sender, str, NULL); -} - -static void -message_region(unit * sender, const char * str) -{ - ADDMSG(&sender->region->msgs, msg_message("mail_result", "unit message", sender, str)); -} - -static void -set_encoding(const char * str) -{ - enc_gamedata = xmlParseCharEncoding(str); -} - -static const char * -get_encoding(void) -{ - return xmlGetCharEncodingName((xmlCharEncoding)enc_gamedata); -} - -static int -read_game(const char * filename, const char * mode) -{ - int rv, m = IO_TEXT; - if (strcmp(mode, "binary")==0) m = IO_BINARY; - rv = readgame(filename, m, false); - if (rv==0) { - log_printf(" - Korrekturen Runde %d\n", turn); - korrektur(); - } - return rv; -} - -static int -write_game(const char *filename, const char * mode) -{ - int result, m = IO_TEXT; - if (strcmp(mode, "binary")==0) m = IO_BINARY; - remove_empty_factions(true); - result = writegame(filename, m); - return result; -} - -static summary * sum_begin = 0; - -static int -init_summary() -{ - sum_begin = make_summary(); - return 0; -} - -static int -write_summary() -{ - assert(sum_begin - || !"init_summary must be called before before write_summary"); - if (sum_begin) { - summary * sum_end = make_summary(); - report_summary(sum_end, sum_begin, false); - report_summary(sum_end, sum_begin, true); - return 0; - } - return -1; -} - - -static int -process_orders(void) -{ - turn++; - processorders(); - - return 0; -} - -void -bind_gamecode(lua_State * L) -{ - module(L)[ - def("read_game", &read_game), - def("write_game", &write_game), - def("free_game", &free_gamedata), - - def("get_encoding", &get_encoding), - def("set_encoding", &set_encoding), - - def("init_summary", &init_summary), - def("write_summary", &write_summary), - - def("read_orders", &readorders), - def("process_orders", &process_orders), - - def("write_map", &crwritemap), - def("write_passwords", &writepasswd), - def("init_reports", &init_reports), - def("write_reports", &lua_writereports), - def("write_report", &lua_writereport), - def("update_guards", &update_guards), - - def("message_unit", &message_unit), - def("message_faction", &message_faction), - def("message_region", &message_region), - - /* spells and stuff */ - def("levitate_ship", &levitate_ship), - - /* scripted monsters */ - def("spawn_braineaters", &spawn_braineaters), - def("spawn_undead", &spawn_undead), - def("spawn_dragons", &spawn_dragons), - def("plan_monsters", &lua_planmonsters) - ]; -#ifdef LUABIND_NO_EXCEPTIONS - luabind::set_error_callback(error_callback); -#endif -} diff --git a/src/eressea/lua/gm.cpp b/src/eressea/lua/gm.cpp deleted file mode 100644 index 3f54943d1..000000000 --- a/src/eressea/lua/gm.cpp +++ /dev/null @@ -1,121 +0,0 @@ -#include <config.h> -#include <kernel/eressea.h> - -#include "bindings.h" -#include "list.h" -#include "../gmtool.h" -#include "../gmtool_structs.h" - -#include <kernel/region.h> - -// lua includes -#ifdef _MSC_VER -#pragma warning (push) -#pragma warning (disable: 4127) -#endif -#include <lua.hpp> -#include <luabind/luabind.hpp> -#include <luabind/iterator_policy.hpp> -#ifdef _MSC_VER -#pragma warning (pop) -#endif - -using namespace luabind; - -region * -current_region(void) -{ - map_region * mr = cursor_region(¤t_state->display, ¤t_state->cursor); - return mr?mr->r:NULL; -} - -static tag * -next_tag(int hash, const state * st) -{ - while (st && hash!=MAXTHASH) { - tag * node = st->selected->tags[hash]; - while (node!=NULL) { - region * r = findregion((short)node->coord.x, (short)node->coord.y); - if (r) { - return node; - } - node = node->nexthash; - } - ++hash; - } - return NULL; -} - -class selectedregion { -public: - static tag * next(tag * self) { - tag * node = self->nexthash; - while (node) { - region * r = findregion((short)node->coord.x, (short)node->coord.y); - if (r) return node; - node = node->nexthash; - } - coordinate * c = &self->coord; - unsigned int hash; - int nx, ny; - - cnormalize(c, &nx, &ny); - hash = ((nx << 12) ^ ny) & (MAXTHASH-1); - - return next_tag(hash+1, current_state); - } - - static region * value(tag * node) { - return findregion((short)node->coord.x, (short)node->coord.y); - } -}; - - -static eressea::list<region *, tag *, selectedregion> -selected_regions(void) -{ - return eressea::list<region *, tag *, selectedregion>(next_tag(0, current_state)); -} - -static void -gmtool_select_coordinate(int x, int y, bool select) -{ - int nx = x, ny = y; - plane * pl = findplane(x, y); - pnormalize(&nx, &ny, pl); - select_coordinate(current_state->selected, nx, ny, select?1:0); -} - -static void -gmtool_select_region(region& r, bool select) -{ - select_coordinate(current_state->selected, r.x, r.y, select?1:0); -} - -static void gmtool_open(void) -{ - state_open(); -} - -static void gmtool_close(void) -{ - state_close(current_state); -} - -void -bind_gmtool(lua_State * L) -{ - module(L, "gmtool")[ - def("open", &gmtool_open), - def("close", &gmtool_close), - def("editor", &run_mapper), - def("get_selection", &selected_regions, return_stl_iterator), - def("get_cursor", ¤t_region), - def("highlight", &highlight_region), - def("select", &gmtool_select_region), - def("select_at", &gmtool_select_coordinate) - ]; -#ifdef LUABIND_NO_EXCEPTIONS - luabind::set_error_callback(error_callback); -#endif -} diff --git a/src/eressea/lua/item.cpp b/src/eressea/lua/item.cpp deleted file mode 100644 index f12a60932..000000000 --- a/src/eressea/lua/item.cpp +++ /dev/null @@ -1,133 +0,0 @@ -#include <config.h> -#include <kernel/eressea.h> - -#include "bindings.h" -#include "script.h" - -// kernel includes -#include <kernel/item.h> -#include <kernel/region.h> -#include <kernel/unit.h> - -// util includes -#include <util/attrib.h> -#include <util/functions.h> -#include <util/log.h> - -// lua includes -#ifdef _MSC_VER -#pragma warning (push) -#pragma warning (disable: 4127) -#endif -#include <lua.hpp> -#include <luabind/luabind.hpp> -#include <luabind/iterator_policy.hpp> -#ifdef _MSC_VER -#pragma warning (pop) -#endif - -using namespace luabind; - -static int -lua_giveitem(unit * s, unit * d, const item_type * itype, int n, struct order * ord) -{ - char fname[64]; - int retval = -1; - const char * iname = itype->rtype->_name[0]; - - assert(s!=NULL); - strcat(strcpy(fname, iname), "_give"); - - lua_State * L = (lua_State *)global.vm_state; - if (is_function(L, fname)) { - try { - retval = luabind::call_function<int>(L, fname, s, d, iname, n); - } - catch (luabind::error& e) { - lua_State* L = e.state(); - const char* error = lua_tostring(L, -1); - log_error(("An exception occured while %s tried to call '%s': %s.\n", - unitname(s), fname, error)); - lua_pop(L, 1); - std::terminate(); - } - } - return retval; -} - -static void -item_register(const char * name, const char * appearance) -{ - resource_type * rtype = (resource_type *)calloc(1, sizeof(resource_type)); - item_type * itype = (item_type *)calloc(1, sizeof(item_type)); - - rtype->_name[0] = strdup(name); - rtype->_name[1] = strcat(strcpy((char*)malloc(strlen(name)+3), name), "_p"); - rtype->_appearance[0] = strdup(appearance); - rtype->_appearance[1] = strcat(strcpy((char*)malloc(strlen(appearance)+3), appearance), "_p"); - - itype->use = lua_useitem; - itype->rtype = rtype; - - rt_register(rtype); - it_register(itype); - init_itemnames(); -} - -static int -limit_resource(const region * r, const resource_type * rtype) -{ - char fname[64]; - snprintf(fname, sizeof(fname), "%s_limit", rtype->_name[0]); - int retval = -1; - - lua_State * L = (lua_State *)global.vm_state; - if (is_function(L, fname)) { - try { - retval = call_function<int>(L, fname, r); - } - catch (error& e) { - lua_State* L = e.state(); - const char* error = lua_tostring(L, -1); - log_error(("An exception occured while trying to call '%s': %s.\n", - fname, error)); - lua_pop(L, 1); - std::terminate(); - } - } - return retval; -} - -static void -produce_resource(region * r, const resource_type * rtype, int norders) -{ - char fname[64]; - snprintf(fname, sizeof(fname), "%s_produce", rtype->_name[0]); - - lua_State * L = (lua_State *)global.vm_state; - if (is_function(L, fname)) { - try { - call_function<void>(L, fname, r, norders); - } - catch (error& e) { - lua_State* L = e.state(); - const char* error = lua_tostring(L, -1); - log_error(("An exception occured while trying to call '%s': %s.\n", - fname, error)); - lua_pop(L, 1); - std::terminate(); - } - } -} - -void -bind_item(lua_State * L) -{ - register_function((pf_generic)produce_resource, "lua_produceresource"); - register_function((pf_generic)limit_resource, "lua_limitresource"); - register_item_give(lua_giveitem, "lua_giveitem"); - - module(L)[ - def("register_item", &item_register) - ]; -} diff --git a/src/eressea/lua/list.h b/src/eressea/lua/list.h deleted file mode 100644 index fe9834d76..000000000 --- a/src/eressea/lua/list.h +++ /dev/null @@ -1,56 +0,0 @@ -#ifndef LUA_LIST_H -#define LUA_LIST_H - -#include <string> -#include <kernel/item.h> - -namespace eressea { - - template<class T, class N = T> - class listnode { - public: - static N next(N& node) { return node->next; } - static T value(N& node) { return node; } - }; - - template<class T, class N = T, class nodetype = listnode<T, N> > - class list { - public: - class iterator { - public: - iterator(const N& index) : m_index(index) {} - ~iterator() {} - T operator*() { return nodetype::value(m_index); } - bool operator==(const iterator& iter) { - return iter.m_index==m_index; - } - bool operator!=(const iterator& iter) { - return iter.m_index!=m_index; - } - iterator& operator++() { - if (m_index) m_index = nodetype::next(m_index); - return *this; - } - private: - N m_index; - }; - typedef iterator const_iterator; - list<T, N, nodetype>(const N& clist) : m_clist(clist) {} - iterator begin() const { return iterator(m_clist); } - iterator end() const { return iterator(NULL); } - - public: - N m_clist; - }; - - class bind_items { - public: - static item * next(item * node) { return node->next; } - static std::string value(item * node) { - return std::string(node->type->rtype->_name[0]); - } - }; - -}; - -#endif diff --git a/src/eressea/lua/message.cpp b/src/eressea/lua/message.cpp deleted file mode 100644 index e1c32a6f9..000000000 --- a/src/eressea/lua/message.cpp +++ /dev/null @@ -1,204 +0,0 @@ -#include <config.h> -#include <kernel/eressea.h> - -// kernel includes -#include <kernel/faction.h> -#include <kernel/item.h> -#include <kernel/message.h> -#include <kernel/region.h> -#include <kernel/unit.h> - -// util includes -#include <util/message.h> - -// lua includes -#ifdef _MSC_VER -#pragma warning (push) -#pragma warning (disable: 4127) -#endif -#include <lua.hpp> -#include <luabind/luabind.hpp> -#include <luabind/iterator_policy.hpp> -#include <luabind/operator.hpp> -#ifdef _MSC_VER -#pragma warning (pop) -#endif - -#include <ostream> - -using namespace luabind; - -#define E_OK 0 -#define E_INVALID_MESSAGE 1 -#define E_INVALID_PARAMETER_NAME 2 -#define E_INVALID_PARAMETER_TYPE 3 -#define E_INVALID_PARAMETER_VALUE 4 - -class lua_message { -public: - lua_message(const char *type) : msg(0), args(0) { - mtype = mt_find(type); - if (mtype) { - args = (variant*)calloc(mtype->nparameters, sizeof(variant)); - } - } - - ~lua_message() { - if (msg) msg_release(msg); - if (mtype) { - for (int i=0;i!=mtype->nparameters;++i) { - if (mtype->types[i]->release) { - mtype->types[i]->release(args[i]); - } - } - } - } - - int set_resource(const char * param, const char * resname) { - if (mtype==0) return E_INVALID_MESSAGE; - - int i = get_param(param); - if (i==mtype->nparameters) { - return E_INVALID_PARAMETER_NAME; - } - if (strcmp(mtype->types[i]->name, "resource")!=0) { - return E_INVALID_PARAMETER_TYPE; - } - - args[i].v = (void*)rt_find(resname); - - return E_OK; - } - - int set_unit(const char * param, const unit * u) { - if (mtype==0) return E_INVALID_MESSAGE; - - int i = get_param(param); - if (i==mtype->nparameters) { - return E_INVALID_PARAMETER_NAME; - } - if (strcmp(mtype->types[i]->name, "unit")!=0) { - return E_INVALID_PARAMETER_TYPE; - } - - args[i].v = (void*)u; - - return E_OK; - } - - int set_region(const char * param, const region * r) { - if (mtype==0) return E_INVALID_MESSAGE; - - int i = get_param(param); - if (i==mtype->nparameters) { - return E_INVALID_PARAMETER_NAME; - } - if (strcmp(mtype->types[i]->name, "region")!=0) { - return E_INVALID_PARAMETER_TYPE; - } - - args[i].v = (void*)r; - - return E_OK; - } - - int set_string(const char * param, const char * value) { - if (mtype==0) return E_INVALID_MESSAGE; - - int i = get_param(param); - if (i==mtype->nparameters) { - return E_INVALID_PARAMETER_NAME; - } - if (strcmp(mtype->types[i]->name, "string")!=0) { - return E_INVALID_PARAMETER_TYPE; - } - - variant var; - var.v = (void*)value; - args[i] = mtype->types[i]->copy(var); - - return E_OK; - } - - int set_int(const char * param, int value) { - if (mtype==0) return E_INVALID_MESSAGE; - - int i = get_param(param); - if (i==mtype->nparameters) { - return E_INVALID_PARAMETER_NAME; - } - if (strcmp(mtype->types[i]->name, "int")!=0) { - return E_INVALID_PARAMETER_TYPE; - } - - args[i].i = value; - - return E_OK; - } - - int send_faction(faction * f) { - if (mtype==0) return E_INVALID_MESSAGE; - if (msg==NULL) { - msg = msg_create(mtype, args); - } - add_message(&f->msgs, msg); - return E_OK; - } - - int send_region(region * r) { - if (mtype==0) return E_INVALID_MESSAGE; - if (msg==NULL) { - msg = msg_create(mtype, args); - } - add_message(&r->msgs, msg); - return E_OK; - } - -protected: - int get_param(const char * param) { - for (int i=0;i!=mtype->nparameters;++i) { - if (strcmp(mtype->pnames[i], param)==0) { - return i; - } - } - return mtype->nparameters; - } - - const message_type * mtype; - message * msg; - variant * args; -}; - -static std::ostream& -operator<<(std::ostream& stream, const lua_message& msg) -{ - stream << "(message object)"; - return stream; -} - -lua_message * -create_lua_message(const char * str) -{ - return new lua_message(str); -} - -void -bind_message(lua_State * L) -{ - module(L)[ - class_<lua_message>("message") - .def(constructor<const char *>()) - .def(tostring(const_self)) - - .def("set_unit", &lua_message::set_unit) - .def("set_region", &lua_message::set_region) - .def("set_resource", &lua_message::set_resource) - .def("set_int", &lua_message::set_int) - .def("set_string", &lua_message::set_string) - .def("send_faction", &lua_message::send_faction) - .def("send_region", &lua_message::send_region) - .scope [ - def("create", &create_lua_message) - ] - ]; -} diff --git a/src/eressea/lua/objects.cpp b/src/eressea/lua/objects.cpp deleted file mode 100644 index 5ec723045..000000000 --- a/src/eressea/lua/objects.cpp +++ /dev/null @@ -1,117 +0,0 @@ -#include <config.h> -#include <kernel/eressea.h> -#include "objects.h" - -#include <kernel/region.h> -#include <kernel/unit.h> -#include <kernel/faction.h> -#include <kernel/ship.h> -#include <kernel/building.h> -#include <util/attrib.h> - -// lua includes -#ifdef _MSC_VER -#pragma warning (push) -#pragma warning (disable: 4127) -#endif -#include <lua.hpp> -#include <luabind/luabind.hpp> -#include <luabind/object.hpp> -#ifdef _MSC_VER -#pragma warning (pop) -#endif - -#include <string> - -using namespace luabind; - -namespace eressea { - - object objects::get(const char * name) { - lua_State * L = (lua_State *) global.vm_state; - attrib * a = a_find(*mAttribPtr, &at_object); - for (; a && a->type == &at_object; a = a->next) { - if (strcmp(object_name(a), name) == 0) { - variant val; - object_type type; - - object_get(a, &type, &val); - switch (type) { - case TNONE: - break; - case TINTEGER: - return object(L, val.i); - case TREAL: - return object(L, val.f); - case TREGION: - return object(L, (region*) val.v); - case TBUILDING: - return object(L, (building*) val.v); - case TUNIT: - return object(L, (unit*) val.v); - case TSHIP: - return object(L, (ship*) val.v); - case TSTRING: - return object(L, (const char*) val.v); - default: - assert(!"not implemented"); - } - } - } - return object(); // nil - } - - static void set_object(attrib **attribs, const char * name, object_type type, - variant val) { - attrib * a = a_find(*attribs, &at_object); - for (; a && a->type == &at_object; a = a->next) { - if (strcmp(object_name(a), name) == 0) { - object_set(a, type, val); - return; - } - } - a = a_add(attribs, object_create(name, type, val)); - } - - template<> void objects::set<int, TINTEGER>(const char * name, int value) { - variant val = { 0 }; - val.i = value; - set_object(mAttribPtr, name, TINTEGER, val); - } - - template<> void objects::set<double, TREAL>(const char * name, double value) { - variant val = { 0 }; - val.f = (float) value; - set_object(mAttribPtr, name, TREAL, val); - } - - template<> void objects::set<const char *, TSTRING>(const char * name, - const char * value) { - variant val = { 0 }; - if (value) val.v = strdup(value); - set_object(mAttribPtr, name, TSTRING, val); - } - - template<class V, object_type T> void objects::set(const char * name, V value) { - variant val = { 0 }; - val.v = &value; - set_object(mAttribPtr, name, T, val); - } -} - -void bind_objects(struct lua_State * L) { - using namespace eressea; - - module(L)[class_<objects> ("objects") .def("get", &objects::get) .def( - "set", - (void(objects::*)(const char*, region&))&objects::set<region&, TREGION>) - .def("set", (void(objects::*)(const char*, unit&))&objects::set<unit&, TUNIT>) - .def("set", (void(objects::*)(const char*, faction&))&objects::set<faction&, TFACTION>) - .def("set", (void(objects::*)(const char*, building&))&objects::set<building&, TBUILDING>) - .def("set", (void(objects::*)(const char*, ship&))&objects::set<ship&, TSHIP>) - // POD: - // .def("set", (void(objects::*)(const char*, int))&objects::set<int, TINTEGER>) - .def("set", (void(objects::*)(const char*, double))&objects::set<lua_Number, TREAL>) - .def("set", (void(objects::*)(const char*, const char *))&objects::set<const char *, TSTRING>) - ]; -} diff --git a/src/eressea/lua/objects.h b/src/eressea/lua/objects.h deleted file mode 100644 index 894c33b86..000000000 --- a/src/eressea/lua/objects.h +++ /dev/null @@ -1,40 +0,0 @@ -#ifndef LUA_OBJECTS_H -#define LUA_OBJECTS_H - -#include <attributes/object.h> -#ifdef _MSC_VER -#pragma warning (push) -#pragma warning (disable: 4127) -#endif -#include <luabind/object.hpp> -#ifdef _MSC_VER -#pragma warning (pop) -#endif - -struct lua_State; - -namespace eressea { - - class objects { - public: - objects(struct attrib ** attribs) : mAttribPtr(attribs) {} - - luabind::object get(const char * name); - // void set(const char * name, int type, luabind::object& value); - template <class V, object_type T> void - set(const char * name, V value); - - private: - struct attrib ** mAttribPtr; - }; - - - template<class T> eressea::objects - get_objects(const T& parent) - { - return eressea::objects(&const_cast<attrib *&>(parent.attribs)); - } -}; - -#endif - diff --git a/src/eressea/lua/region.cpp b/src/eressea/lua/region.cpp deleted file mode 100644 index 04e3bce91..000000000 --- a/src/eressea/lua/region.cpp +++ /dev/null @@ -1,381 +0,0 @@ -#include <config.h> -#include <kernel/eressea.h> -#include "list.h" -#include "objects.h" - -// kernel includes -#include <kernel/building.h> -#include <kernel/faction.h> -#include <kernel/item.h> -#include <kernel/message.h> -#include <kernel/plane.h> -#include <kernel/region.h> -#include <kernel/resources.h> -#include <kernel/ship.h> -#include <kernel/terrain.h> -#include <kernel/unit.h> - -#include <util/attrib.h> -#include <util/log.h> - -#include <attributes/key.h> - -// lua includes -#ifdef _MSC_VER -#pragma warning (push) -#pragma warning (disable: 4127) -#endif -#include <lua.hpp> -#include <luabind/luabind.hpp> -#include <luabind/iterator_policy.hpp> -#include <luabind/operator.hpp> -#ifdef _MSC_VER -#pragma warning (pop) -#endif - -#include <ostream> -using namespace luabind; - -static eressea::list<region *> -get_regions(void) { - return eressea::list<region *>(regions); -} - -static eressea::list<unit *> -region_units(const region * r) { - return eressea::list<unit *>(r->units); -} - -static eressea::list<building *> -region_buildings(const region * r) { - return eressea::list<building *>(r->buildings); -} - -static eressea::list<ship *> -region_ships(const region * r) { - return eressea::list<ship *>(r->ships); -} - -static const char * -region_getterrain(const region * r) { - return (const char *)r->terrain->_name; -} - -static void -lua_region_setowner(region * r, faction * f) { - region_set_owner(r, f, turn); -} - -static faction * -lua_region_getowner(const region * r) { - return region_get_owner(r); -} - -static void -region_setherbtype(region * r, const char * str) { - const struct resource_type * rtype = rt_find(str); - if (rtype!=NULL && rtype->itype!=NULL) { - rsetherbtype(r, rtype->itype); - } -} - -static const char * -region_getherbtype(const region * r) { - const struct item_type * itype = rherbtype(r); - if (itype==NULL) return NULL; - return itype->rtype->_name[0]; -} - -static int -region_plane(const region * r) -{ - plane * pl = rplane(r); - return plane_id(pl); -} - -static void -region_addnotice(region * r, const char * str) -{ - addmessage(r, NULL, str, MSG_MESSAGE, ML_IMPORTANT); -} - -static std::ostream& -operator<<(std::ostream& stream, const region& r) -{ - stream << regionname(&r, NULL) << ", " << (const char *)r.terrain->_name; - return stream; -} - -static bool -operator==(const region& a, const region& b) -{ - return a.x==b.x && a.y==b.y; -} - -static bool -region_getflag(const region * r, int bit) -{ - if (r->flags & (1<<bit)) return true; - return false; -} - -static void -region_setflag(region * r, int bit, bool set) -{ - if (set) r->flags |= (1<<bit); - else r->flags &= ~(1<<bit); -} - -static int -region_get_resource(const region * r, const char * type) -{ - const resource_type * rtype = rt_find(type); - if (rtype!=NULL) { - return region_getresource(r, rtype); - } else { - if (strcmp(type, "seed")==0) return rtrees(r, 0); - if (strcmp(type, "sapling")==0) return rtrees(r, 1); - if (strcmp(type, "tree")==0) return rtrees(r, 2); - if (strcmp(type, "grave")==0) return deathcount(r); - if (strcmp(type, "chaos")==0) return chaoscount(r); - } - return 0; -} - -static void -region_set_resource(region * r, const char * type, int value) -{ - const resource_type * rtype = rt_find(type); - if (rtype!=NULL) { - region_setresource(r, rtype, value); - } else { - if (strcmp(type, "seed")==0) { - rsettrees(r, 0, value); - } else if (strcmp(type, "sapling")==0) { - rsettrees(r, 1, value); - } else if (strcmp(type, "tree")==0) { - rsettrees(r, 2, value); - } else if (strcmp(type, "grave")==0) { - int fallen = value-deathcount(r); - deathcounts(r, fallen); - } else if (strcmp(type, "chaos")==0) { - int fallen = value-chaoscount(r); - chaoscounts(r, fallen); - } - } -} - -static void -region_setroad(region * r, int dir, lua_Number size) -{ - if (r->terrain->max_road>0) { - rsetroad(r, (direction_t)dir, (short)(r->terrain->max_road * size)); - } -} - -static lua_Number -region_getroad(region * r, int dir) -{ - lua_Number result = rroad(r, (direction_t)dir); - if (r->terrain->max_road<=0 || result<=0) return 0; - return r->terrain->max_road / result; -} - -static region * -region_terraform(int x, int y, const char * tname) -{ - const terrain_type * terrain = get_terrain(tname); - region * r = findregion(x, y); - if (terrain==NULL) { - if (r!=NULL) { - if (r->units!=NULL) { - // TODO: error message - return r; - } - // TODO: region l�schen - terraform_region(r, NULL); - } - return NULL; - } - if (r==NULL) { - struct plane * pl = findplane(x, y); - r = new_region(x, y, pl, 0); - } - terraform_region(r, terrain); - return r; -} - -static region * -region_next(const region * r, int dir) -{ - if (dir<0 || dir >=MAXDIRECTIONS) return NULL; - return r_connect(r, (direction_t)dir); -} - -static void -region_adddirection(region * r, region * rt, const char * name, const char * info) -{ - create_special_direction(r, rt, -1, info, name); - spec_direction * sd = special_direction(r, rt); - sd->active = 1; -} - -static void -region_remove(region * r) -{ - remove_region(®ions, r); -} - -static void -plane_remove(int plid) -{ - region ** rp = ®ions; - while (*rp) { - region * r = *rp; - plane * pl = rplane(r); - if (pl && pl->id==plid) { - remove_region(rp, r); - } else { - rp = &r->next; - } - } -} - -void -region_move(region * r, int x, int y) -{ - if (findregion(x, y)) { - log_error(("Bei %d, %d gibt es schon eine Region.\n", x, y)); - return; - } -#ifdef FAST_CONNECT - direction_t dir; - plane * pl = rplane(r); - for (dir=0;dir!=MAXDIRECTIONS;++dir) { - region * rn = r->connect[dir]; - int nx = x + delta_x[dir]; - int ny = y + delta_y[dir]; - pnormalize(&nx, &ny, pl); - if (rn!=NULL) { - direction_t reldir = reldirection(rn, r); - rn->connect[reldir] = NULL; - } - rn = findregion(nx, ny); - if (rn!=NULL) { - direction_t reldir = (direction_t)((dir + 3) % MAXDIRECTIONS); - rn->connect[reldir] = r; - } - r->connect[dir] = rn; - } -#endif - runhash(r); - r->x = x; - r->y = y; - rhash(r); -} - -static eressea::list<std::string, item *, eressea::bind_items> -region_items(const region * r) { - if (r->land) { - return eressea::list<std::string, item *, eressea::bind_items>(r->land->items); - } else { - return eressea::list<std::string, item *, eressea::bind_items>(NULL); - } -} - -static int -region_additem(region * r, const char * iname, int number) -{ - if (iname!=NULL) { - const item_type * itype = it_find(iname); - if (itype!=NULL && r->land) { - item * i = i_change(&r->land->items, itype, number); - return i?i->number:0; - } // if (itype!=NULL) - } - return -1; -} - -static bool -region_getkey(region * r, const char * name) -{ - int flag = atoi36(name); - attrib * a = find_key(r->attribs, flag); - return (a!=NULL); -} - -static void -region_setkey(region * r, const char * name, bool value) -{ - int flag = atoi36(name); - attrib * a = find_key(r->attribs, flag); - if (a==NULL && value) { - add_key(&r->attribs, flag); - } else if (a!=NULL && !value) { - a_remove(&r->attribs, a); - } -} - -static int -plane_getbyname(const char * str) -{ - plane * pl = getplanebyname(str); - if (pl) return pl->id; - return 0; -} - - -void -bind_region(lua_State * L) -{ - module(L)[ - def("regions", &get_regions, return_stl_iterator), - def("get_region", &findregion), - def("get_region_by_id", &findregionbyid), - def("terraform", ®ion_terraform), - def("distance", &distance), - def("remove_region", ®ion_remove), - def("remove_plane", &plane_remove), - def("getplanebyname", &plane_getbyname), - - class_<struct region>("region") - .def(tostring(const_self)) - .def(self == region()) - .property("name", ®ion_getname, ®ion_setname) - .property("info", ®ion_getinfo, ®ion_setinfo) - .property("owner", &lua_region_getowner, &lua_region_setowner) - .property("herbtype", ®ion_getherbtype, ®ion_setherbtype) - .property("terrain", ®ion_getterrain) - .def("add_notice", ®ion_addnotice) - .def("add_direction", ®ion_adddirection) - - .def("get_key", ®ion_getkey) - .def("set_key", ®ion_setkey) - - .def("get_flag", ®ion_getflag) - .def("set_flag", ®ion_setflag) - - .def("move", ®ion_move) - - .def("get_road", ®ion_getroad) - .def("set_road", ®ion_setroad) - - .def("next", ®ion_next) - .def("get_resource", ®ion_get_resource) - .def("set_resource", ®ion_set_resource) - .def_readonly("x", ®ion::x) - .def_readonly("y", ®ion::y) - .def_readonly("id", ®ion::uid) - .def_readwrite("age", ®ion::age) - .def("add_item", ®ion_additem) - .property("items", ®ion_items, return_stl_iterator) - .property("plane_id", ®ion_plane) - .property("units", ®ion_units, return_stl_iterator) - .property("buildings", ®ion_buildings, return_stl_iterator) - .property("ships", ®ion_ships, return_stl_iterator) - .property("objects", &eressea::get_objects<region>) - .scope [ - def("create", ®ion_terraform) - ] - ]; -} diff --git a/src/eressea/lua/script.cpp b/src/eressea/lua/script.cpp deleted file mode 100644 index 81179f4c0..000000000 --- a/src/eressea/lua/script.cpp +++ /dev/null @@ -1,330 +0,0 @@ -/* vi: set ts=2: - +-------------------+ - | | Christian Schlittchen <corwin@amber.kn-bremen.de> - | Eressea PBEM host | Enno Rehling <enno@eressea.de> - | (c) 1998 - 2004 | Katja Zedel <katze@felidae.kn-bremen.de> - | | - +-------------------+ - - This program may not be used, modified or distributed - without prior permission by the authors of Eressea. -*/ - -#include <config.h> -#include <boost/version.hpp> -#include <lua.hpp> -#include <kernel/eressea.h> -#include "script.h" -#include "bindings.h" - -// kernel includes -#include <kernel/equipment.h> -#include <kernel/faction.h> -#include <kernel/item.h> -#include <kernel/race.h> -#include <kernel/region.h> -#include <kernel/spell.h> -#include <kernel/unit.h> - -// util includes -#include <util/attrib.h> -#include <util/functions.h> -#include <util/log.h> - -#ifdef _MSC_VER -#pragma warning (push) -#pragma warning (disable: 4127) -#endif -#include <luabind/luabind.hpp> -#include <luabind/operator.hpp> -#ifdef _MSC_VER -#pragma warning (pop) -#endif - -#include <cstdio> -#include <cstring> - -using namespace luabind; - -static void -free_script(attrib * a) { - if (a->data.v!=NULL) { - object * f = (object *)a->data.v; - delete f; - } -} - -attrib_type at_script = { - "script", - NULL, free_script, NULL, - NULL, NULL, ATF_UNIQUE -}; - -int -call_script(struct unit * u) -{ - const attrib * a = a_findc(u->attribs, &at_script); - if (a==NULL) a = a_findc(u->race->attribs, &at_script); - if (a!=NULL && a->data.v!=NULL) { - object * func = (object *)a->data.v; - try { - func->operator()(u); - } - catch (error& e) { - lua_State* L = e.state(); - const char* error = lua_tostring(L, -1); - log_error((error)); - lua_pop(L, 1); - std::terminate(); - } - } - return -1; -} - -void -setscript(struct attrib ** ap, void * fptr) -{ - attrib * a = a_find(*ap, &at_script); - if (a == NULL) { - a = a_add(ap, a_new(&at_script)); - } else if (a->data.v!=NULL) { - object * f = (object *)a->data.v; - delete f; - } - a->data.v = fptr; -} - -/** callback to use lua for spell functions */ -static int -lua_callspell(castorder *co) -{ - const char * fname = co->sp->sname; - unit * mage = co->familiar?co->familiar:co->magician.u; - int retval = -1; - const char * hashpos = strchr(fname, '#'); - char fbuf[64]; - - if (hashpos!=NULL) { - ptrdiff_t len = hashpos - fname; - assert(len<(ptrdiff_t)sizeof(fbuf)); - strncpy(fbuf, fname, len); - fbuf[len] = '\0'; - fname = fbuf; - } - - lua_State * L = (lua_State *)global.vm_state; - if (is_function(L, fname)) { - try { - retval = call_function<int>(L, fname, co->rt, mage, co->level, co->force); - } - catch (error& e) { - lua_State* L = e.state(); - const char* error = lua_tostring(L, -1); - log_error(("An exception occured while %s tried to call '%s': %s.\n", - unitname(mage), fname, error)); - lua_pop(L, 1); - std::terminate(); - } - } - return retval; -} - -/** callback to initialize a familiar from lua. */ -static void -lua_initfamiliar(unit * u) -{ - char fname[64]; - snprintf(fname, sizeof(fname), "initfamiliar_%s", u->race->_name[0]); - - lua_State * L = (lua_State *)global.vm_state; - if (is_function(L, fname)) { - try { - call_function<int>(L, fname, u); - } - catch (error& e) { - lua_State* L = e.state(); - const char* error = lua_tostring(L, -1); - log_error(("An exception occured while %s tried to call '%s': %s.\n", - unitname(u), fname, error)); - lua_pop(L, 1); - std::terminate(); - } - } - - snprintf(fname, sizeof(fname), "%s_familiar", u->race->_name[0]); - create_mage(u, M_GRAY); - equip_unit(u, get_equipment(fname)); -} - -static int -lua_changeresource(unit * u, const struct resource_type * rtype, int delta) -{ - char fname[64]; - snprintf(fname, sizeof(fname), "%s_changeresource", rtype->_name[0]); - int retval = -1; - - lua_State * L = (lua_State *)global.vm_state; - if (is_function(L, fname)) { - try { - retval = call_function<int>(L, fname, u, delta); - } - catch (error& e) { - lua_State* L = e.state(); - const char* error = lua_tostring(L, -1); - log_error(("An exception occured while %s tried to call '%s': %s.\n", - unitname(u), fname, error)); - lua_pop(L, 1); - std::terminate(); - } - } - return retval; -} - -static int -lua_getresource(unit * u, const struct resource_type * rtype) -{ - char fname[64]; - snprintf(fname, sizeof(fname), "%s_getresource", rtype->_name[0]); - int retval = -1; - - lua_State * L = (lua_State *)global.vm_state; - if (is_function(L, fname)) { - try { - retval = call_function<int>(L, fname, u); - } - catch (error& e) { - lua_State* L = e.state(); - const char* error = lua_tostring(L, -1); - log_error(("An exception occured while %s tried to call '%s': %s.\n", - unitname(u), fname, error)); - lua_pop(L, 1); - std::terminate(); - } - } - return retval; -} - -static int -lua_wage(const region * r, const faction * f, const race * rc) -{ - const char * fname = "wage"; - int retval = -1; - lua_State * L = (lua_State *)global.vm_state; - - if (is_function(L, fname)) { - try { - retval = luabind::call_function<int>(L, fname, r, f, rc?rc->_name[0]:NULL); - } - catch (luabind::error& e) { - lua_State* L = e.state(); - const char* error = lua_tostring(L, -1); - log_error(("An exception occured while calling '%s': %s.\n", fname, error)); - lua_pop(L, 1); - } - } - return retval; -} - -static int -lua_maintenance(const unit * u) -{ - const char * fname = "maintenance"; - int retval = -1; - lua_State * L = (lua_State *)global.vm_state; - - if (is_function(L, fname)) { - try { - retval = luabind::call_function<int>(L, fname, u); - } - catch (luabind::error& e) { - lua_State* L = e.state(); - const char* error = lua_tostring(L, -1); - log_error(("An exception occured while calling '%s': %s.\n", fname, error)); - lua_pop(L, 1); - } - } - return retval; -} - -static void -unit_setscript(struct unit * u, const luabind::object& f) -{ - luabind::object * fptr = new luabind::object(f); - setscript(&u->attribs, fptr); -} - -static void -race_setscript(const char * rcname, const luabind::object& f) -{ - race * rc = rc_find(rcname); - if (rc!=NULL) { - luabind::object * fptr = new luabind::object(f); - setscript(&rc->attribs, fptr); - } -} - -static void -lua_equipmentcallback(const struct equipment * eq, unit * u) -{ - char fname[64]; - snprintf(fname, sizeof(fname), "equip_%s", eq->name); - - lua_State * L = (lua_State *)global.vm_state; - if (is_function(L, fname)) { - try { - call_function<int>(L, fname, u); - } - catch (error& e) { - lua_State* L = e.state(); - const char* error = lua_tostring(L, -1); - log_error(("An exception occured while %s tried to call '%s': %s.\n", - unitname(u), fname, error)); - lua_pop(L, 1); - std::terminate(); - } - } -} - -/** callback for an item-use function written in lua. */ -int -lua_useitem(struct unit * u, const struct item_type * itype, int amount, struct order * ord) -{ - int retval = 0; - char fname[64]; - snprintf(fname, sizeof(fname), "use_%s", itype->rtype->_name[0]); - - lua_State * L = (lua_State *)global.vm_state; - if (is_function(L, fname)) { - try { - retval = luabind::call_function<int>(L, fname, u, amount); - } - catch (error& e) { - lua_State* L = e.state(); - const char* error = lua_tostring(L, -1); - log_error(("An exception occured while %s tried to call '%s': %s.\n", - unitname(u), fname, error)); - lua_pop(L, 1); - std::terminate(); - } - } - return retval; -} - -void -bind_script(lua_State * L) -{ - register_function((pf_generic)&lua_callspell, "lua_castspell"); - register_function((pf_generic)&lua_initfamiliar, "lua_initfamiliar"); - register_item_use(&lua_useitem, "lua_useitem"); - register_function((pf_generic)&lua_getresource, "lua_getresource"); - register_function((pf_generic)&lua_changeresource, "lua_changeresource"); - register_function((pf_generic)&lua_equipmentcallback, "lua_equip"); - - register_function((pf_generic)&lua_wage, "lua_wage"); - register_function((pf_generic)&lua_maintenance, "lua_maintenance"); - - module(L)[ - def("set_race_brain", &race_setscript), - def("set_unit_brain", &unit_setscript) - ]; -} diff --git a/src/eressea/lua/script.h b/src/eressea/lua/script.h deleted file mode 100644 index 046ca63d0..000000000 --- a/src/eressea/lua/script.h +++ /dev/null @@ -1,20 +0,0 @@ -/* vi: set ts=2: - +-------------------+ - | | Christian Schlittchen <corwin@amber.kn-bremen.de> - | Eressea PBEM host | Enno Rehling <enno@eressea.de> - | (c) 1998 - 2004 | Katja Zedel <katze@felidae.kn-bremen.de> - | | - +-------------------+ - - This program may not be used, modified or distributed - without prior permission by the authors of Eressea. -*/ -#ifndef KRNL_SCRIPT_H -#define KRNL_SCRIPT_H - -extern int call_script(struct unit * u); -extern void setscript(struct attrib ** ap, void * fptr); - -extern int lua_useitem(struct unit * u, const struct item_type * itype, int amount, struct order * ord); - -#endif diff --git a/src/eressea/lua/ship.cpp b/src/eressea/lua/ship.cpp deleted file mode 100644 index 34c29fda9..000000000 --- a/src/eressea/lua/ship.cpp +++ /dev/null @@ -1,114 +0,0 @@ -#include <config.h> -#include <kernel/eressea.h> -#include "objects.h" - -// kernel includes -#include <kernel/build.h> -#include <kernel/ship.h> -#include <kernel/region.h> -#include <kernel/move.h> - -// lua includes -#ifdef _MSC_VER -#pragma warning (push) -#pragma warning (disable: 4127) -#endif -#include <lua.hpp> -#include <luabind/luabind.hpp> -#include <luabind/iterator_policy.hpp> -#include <luabind/operator.hpp> -#ifdef _MSC_VER -#pragma warning (pop) -#endif - -#include <util/base36.h> - -#include <ostream> -using namespace luabind; - -static std::ostream& -operator<<(std::ostream& stream, const ship& sh) -{ - stream << sh.name; - stream << " (" << itoa36(sh.no) << ")"; - stream << ", " << sh.type->name; - stream << " size " << sh.size; - return stream; -} - -static bool -operator==(const ship& a, const ship& sh) -{ - return a.no==sh.no; -} - -static ship * -add_ship(region * r, const char * sname) -{ - const ship_type * stype = st_find(sname); - ship * sh = new_ship(stype, NULL, r); - sh->size = stype->construction->maxsize; - return sh; -} - -static int -ship_maxsize(const ship * s) { - return s->type->construction->maxsize; -} - -const char * -ship_gettype(const ship * s) { - return s->type->name[0]; -} - -int -ship_getweight(const ship * s) { - int w, c; - getshipweight(s, &w, &c); - return w; -} - -int -ship_getcapacity(const ship * s) { - return shipcapacity(s); -} - -static void -ship_setregion(ship * sh, region * r) -{ - move_ship(sh, sh->region, r, NULL); -} - -static region * -ship_getregion(const ship * sh) -{ - return sh->region; -} - -void -bind_ship(lua_State * L) -{ - module(L)[ - def("get_ship", &findship), - def("add_ship", &add_ship), - - class_<struct ship>("ship") - .def(self == ship()) - .def(tostring(self)) - .property("type", &ship_gettype) - .property("weight", &ship_getweight) - .property("capacity", &ship_getcapacity) - .property("maxsize", &ship_maxsize) - .def_readonly("name", &ship::name) - .property("region", &ship_getregion, &ship_setregion) - .def_readonly("id", &ship::no) - .def_readonly("info", &ship::display) - .def_readwrite("damage", &ship::damage) - .def_readwrite("size", &ship::size) - .def_readwrite("coast", &ship::coast) - .property("objects", &eressea::get_objects<ship>) - .scope [ - def("create", &add_ship) - ] - ]; -} diff --git a/src/eressea/lua/spell.cpp b/src/eressea/lua/spell.cpp deleted file mode 100644 index ffc57c7d5..000000000 --- a/src/eressea/lua/spell.cpp +++ /dev/null @@ -1,35 +0,0 @@ -#include <config.h> -#include <kernel/eressea.h> -#include "list.h" - -// kernel includes -#include <kernel/magic.h> - -// lua includes -#ifdef _MSC_VER -#pragma warning (push) -#pragma warning (disable: 4127) -#endif -#include <luabind/luabind.hpp> -#ifdef _MSC_VER -#pragma warning (pop) -#endif - -using namespace luabind; - -static const char * -spell_getschool(const spell& sp) -{ - return magic_school[sp.magietyp]; -} - -void -bind_spell(lua_State * L) -{ - module(L)[ - class_<struct spell>("spell") - .def_readonly("name", &spell::sname) - .def_readonly("level", &spell::level) - .property("school", &spell_getschool) - ]; -} diff --git a/src/eressea/lua/test.cpp b/src/eressea/lua/test.cpp deleted file mode 100644 index 916f52493..000000000 --- a/src/eressea/lua/test.cpp +++ /dev/null @@ -1,71 +0,0 @@ -#include <config.h> -#include <kernel/eressea.h> - -#include "bindings.h" -#include "list.h" - -// Lua includes -#ifdef _MSC_VER -#pragma warning (push) -#pragma warning (disable: 4127) -#endif -#include <lua.hpp> -#include <luabind/luabind.hpp> -#include <luabind/iterator_policy.hpp> -#ifdef _MSC_VER -#pragma warning (pop) -#endif - -using namespace luabind; - -#include <util/language.h> -#include <util/rng.h> -#include <kernel/region.h> -#include <kernel/skill.h> -#include <kernel/terrainid.h> -#include <modules/autoseed.h> - -static const char * -loc_getskill(const char * loc, const char * locstring) -{ - struct locale * lang = find_locale(loc); - skill_t result = findskill(locstring, lang); - if (result==NOSKILL) return 0; - return skillnames[result]; -} - -static const char * -loc_getkeyword(const char * loc, const char * locstring) -{ - struct locale * lang = find_locale(loc); - keyword_t result = findkeyword(locstring, lang); - if (result==NOKEYWORD) return 0; - return keywords[result]; -} - -static void -adamantium_island(region * r) -{ - region_list *rp, *rlist = NULL; - get_island(r, &rlist); - - for (rp=rlist;rp;rp=rp->next) { - region * ri = rp->data; - if (ri->terrain==newterrain(T_MOUNTAIN)) { - int base = 1 << (rng_int() % 4); - seed_adamantium(ri, base); - } - } - free_regionlist(rlist); -} - -void -bind_test(lua_State * L) -{ - module(L, "test")[ - def("loc_skill", &loc_getskill), - def("loc_keyword", &loc_getkeyword), - def("reorder_units", &reorder_units), - def("adamantium_island", &adamantium_island) - ]; -} diff --git a/src/eressea/lua/unit.cpp b/src/eressea/lua/unit.cpp deleted file mode 100644 index 17078b955..000000000 --- a/src/eressea/lua/unit.cpp +++ /dev/null @@ -1,607 +0,0 @@ -#include <config.h> -#include <kernel/eressea.h> -#include "list.h" -#include "objects.h" -#include "bindings.h" -#include "event.h" - -// Atributes includes -#include <attributes/racename.h> -#include <attributes/key.h> - -// kernel includes -#include <kernel/building.h> -#include <kernel/faction.h> -#include <kernel/item.h> -#include <kernel/magic.h> -#include <kernel/message.h> -#include <kernel/move.h> -#include <kernel/order.h> -#include <kernel/pool.h> -#include <kernel/race.h> -#include <kernel/region.h> -#include <kernel/ship.h> -#include <kernel/skill.h> -#include <kernel/spell.h> -#include <kernel/unit.h> - -// util includes -#include <util/attrib.h> -#include <util/base36.h> -#include <util/event.h> -#include <util/lists.h> -#include <util/log.h> - -// lua includes -#ifdef _MSC_VER -#pragma warning (push) -#pragma warning (disable: 4127) -#endif -#include <lua.hpp> -#include <luabind/luabind.hpp> -#include <luabind/iterator_policy.hpp> -#include <luabind/operator.hpp> -#ifdef _MSC_VER -#pragma warning (pop) -#endif - -#include <ostream> -#include <string> -using namespace luabind; - -class bind_spell_ptr { -public: - static spell_list * next(spell_list * node) { return node->next; } - static spell * value(spell_list * node) { return node->data; } -}; - -static eressea::list<spell *, spell_list *, bind_spell_ptr> -unit_spells(const unit * u) { - sc_mage * mage = get_mage(u); - if (mage==NULL) return eressea::list<spell *, spell_list *, bind_spell_ptr>(NULL); - spell_list * splist = mage->spells; - return eressea::list<spell *, spell_list *, bind_spell_ptr>(splist); -} - -class bind_spell_list { -public: - static spell_list * next(spell_list * node) { return node->next; } - static spell * value(spell_list * node) { return node->data; } -}; - -class bind_orders { -public: - static order * next(order * node) { return node->next; } - static std::string value(order * node) { - char * cmd = (char*)getcommand(node); - std::string s(cmd); - free(cmd); - return s; - } -}; - -static eressea::list<std::string, order *, bind_orders> -unit_orders(const unit * u) { - return eressea::list<std::string, order *, bind_orders>(u->orders); -} - -static eressea::list<std::string, item *, eressea::bind_items> -unit_items(const unit * u) { - return eressea::list<std::string, item *, eressea::bind_items>(u->items); -} - -static unit * -add_unit(faction * f, region * r) -{ - if (f->units==NULL) return addplayer(r, f); - return createunit(r, f, 0, f->race); -} - -static void -unit_setnumber(unit * u, int number) -{ - if (u->number==0) { - set_number(u, number); - u->hp = unit_max_hp(u) * number; - } else { - scale_number(u, number); - } -} - -static void -unit_setracename(unit * u, const char * name) -{ - set_racename(&u->attribs, name); -} - -static int -unit_getnumber(const unit * u) -{ - return u->number; -} - -static int -unit_getitem(const unit * u, const char * iname) -{ - if (iname!=NULL) { - const item_type * itype = it_find(iname); - if (itype!=NULL) { - return i_get(u->items, itype); - } - } - return -1; -} - -static int -unit_additem(unit * u, const char * iname, int number) -{ - if (iname!=NULL) { - const item_type * itype = it_find(iname); - if (itype!=NULL) { - item * i = i_change(&u->items, itype, number); - return i?i->number:0; - } // if (itype!=NULL) - } - const item_type * itype = it_find(iname); - if (itype!=NULL) { - item * i = i_change(&u->items, itype, number); - return i?i->number:0; - } - return -1; -} - -static int -unit_usepooled(unit * u, const char * iname, int number) -{ - const resource_type * rtype = rt_find(iname); - if (rtype!=NULL) { - return use_pooled(u, rtype, GET_DEFAULT, number); - } - return -1; -} - -static int -unit_getpooled(unit * u, const char * iname) -{ - const resource_type * rtype = rt_find(iname); - if (rtype!=NULL) { - return get_pooled(u, rtype, GET_DEFAULT, INT_MAX); - } - return -1; -} - -static int -unit_getskill(const unit * u, const char * skname) -{ - skill_t sk = sk_find(skname); - if (sk!=NOSKILL) { - skill * sv = get_skill(u, sk); - if (sv==NULL) return 0; - return sv->level; - } - return -1; -} - -static int -unit_effskill(const unit * u, const char * skname) -{ - skill_t sk = sk_find(skname); - if (sk!=NOSKILL) { - return effskill(u, sk); - } - return -1; -} - -static int -unit_setskill(unit * u, const char * skname, int level) -{ - skill_t sk = sk_find(skname); - if (sk!=NOSKILL) { - set_level(u, sk, level); - return level; - } // if (sk!=NULL) - return -1; -} - -static const char * -unit_getrace(const unit * u) -{ - return u->race->_name[0]; -} - -static void -unit_setrace(unit * u, const char * rcname) -{ - race * rc = rc_find(rcname); - if (rc!=NULL) { - if (u->irace==u->race) u->irace = rc; - u->race = rc; - } -} - -static void -unit_castspell(unit * u, const char * name) -{ - spell_list * slist = spells; - while (slist!=NULL) { - spell * sp = slist->data; - if (strcmp(name, sp->sname)==0) { - castorder * co = (castorder*)malloc(sizeof(castorder)); - co->distance = 0; - co->familiar = NULL; - co->force = sp->level; - co->level = sp->level; - co->magician.u = u; - co->order = NULL; - co->par = NULL; - co->rt = u->region; - co->sp = sp; - if (sp->sp_function==NULL) { - log_error(("spell '%s' has no function.\n", sp->sname)); - co->level = 0; - } else { - sp->sp_function(co); - } - free(co); - } - slist=slist->next; - } -} - -static void -unit_addspell(unit * u, const char * name) -{ - bool add = false; - spell_list * slist = spells; - while (slist!=NULL) { - spell * sp = slist->data; - if (strcmp(name, sp->sname)==0) { - struct sc_mage * mage = get_mage(u); - if (add) log_error(("two spells are called %s.\n", name)); - add_spell(get_spelllist(mage, u->faction), sp); - add = true; - } - slist=slist->next; - } - if (!add) log_error(("spell %s could not be found\n", name)); -} - -static unit * -unit_isfamiliar(const unit * u) -{ - attrib * a = a_find(u->attribs, &at_familiarmage); - if (a!=NULL) { - return (unit*)a->data.v; - } - return NULL; -} - -static unit * -unit_getfamiliar(const unit * u) -{ - attrib * a = a_find(u->attribs, &at_familiar); - if (a!=NULL) { - return (unit*)a->data.v; - } - return NULL; -} - -static void -unit_setfamiliar(unit * mage, unit * familiar) -{ - create_newfamiliar(mage, familiar); -} - -static void -unit_removespell(unit * u, const spell * sp) -{ - sc_mage * mage = get_mage(u); - if (mage!=NULL) { - spell_list ** isptr = &mage->spells; - while (*isptr && (*isptr)->data != sp) { - isptr = &(*isptr)->next; - } - if (*isptr) { - spell_list * sptr = *isptr; - *isptr = sptr->next; - free(sptr); - } - } -} - -static int -unit_hpmax(const unit * u) -{ - return unit_max_hp(u); -} - -static void -unit_setregion(unit * u, region * r) -{ - move_unit(u, r, NULL); -} - -static region * -unit_getregion(const unit * u) -{ - return u->region; -} - -static void -unit_setship(unit * u, ship * s) -{ - leave(u, true); - if (u->region!=s->region) { - move_unit(u, s->region, NULL); - } - u->ship = s; -} - -static ship * -unit_getship(const unit * u) -{ - return u->ship; -} - -static void -unit_setbuilding(unit * u, building * b) -{ - leave(u, true); - if (u->region!=b->region) { - move_unit(u, b->region, NULL); - } - u->building = b; -} - -static building * -unit_getbuilding(const unit * u) -{ - return u->building; -} - -static bool -get_flag(const unit * u, const char * name) -{ - int flag = atoi36(name); - attrib * a = find_key(u->attribs, flag); - return (a!=NULL); -} - -static void -set_flag(unit * u, const char * name, bool value) -{ - int flag = atoi36(name); - attrib * a = find_key(u->attribs, flag); - if (a==NULL && value) { - add_key(&u->attribs, flag); - } else if (a!=NULL && !value) { - a_remove(&u->attribs, a); - } -} - -static std::ostream& -operator<<(std::ostream& stream, const unit& u) -{ - const char * rcname = get_racename(u.attribs); - stream << u.name << " (" << itoa36(u.no) << "), " << u.number << " " << u.race->_name[0]; - if (rcname) stream << "/" << rcname; - return stream; -} - -static bool -operator==(const unit& a, const unit &b) -{ - return a.no==b.no; -} - -static int -unit_getaura(const unit * u) -{ - return get_spellpoints(u); -} - -static void -unit_setaura(unit * u, int points) -{ - return set_spellpoints(u, points); -} - -static faction * -unit_getfaction(const unit * u) -{ - return u->faction; -} - -static void -unit_setfaction(unit * u, faction * f) -{ - u_setfaction(u, f); -} - -static const char * -unit_getmagic(const unit * u) -{ - sc_mage * mage = get_mage(u); - return mage?magic_school[mage->magietyp]:NULL; -} - -static void -unit_setmagic(unit * u, const char * type) -{ - sc_mage * mage = get_mage(u); - magic_t mtype; - for (mtype=0;mtype!=MAXMAGIETYP;++mtype) { - if (strcmp(magic_school[mtype], type)==0) break; - } - if (mtype==MAXMAGIETYP) return; - if (mage==NULL) { - mage = create_mage(u, mtype); - } -} - -static void -unit_add_order(unit * u, const char * str) -{ - order * ord = parse_order(str, u->faction->locale); - unit_addorder(u, ord); -} - -static void -unit_clear_orders(unit * u) -{ - free_orders(&u->orders); -} - -static int -unit_weight(const struct unit * u) -{ - return weight(u); -} - -typedef struct fctr_data { - unit * target; - luabind::object * fptr; -} fctr_data; - -#include <exception> - -int -fctr_handle(struct trigger * tp, void * data) -{ - trigger * t = tp; - event * evt = new event(NULL, (event_arg*)data); - fctr_data * fd = (fctr_data*)t->data.v; - try { - fd->fptr->operator()(fd->target, evt); - } - catch (luabind::error& e) { - lua_State* L = e.state(); - const char* error = lua_tostring(L, -1); - log_error((error)); - lua_pop(L, 1); - std::terminate(); - } - - delete evt; - return 0; -} - -static void -fctr_init(trigger * t) -{ - t->data.v = calloc(sizeof(fctr_data), 1); -} - -static void -fctr_done(trigger * t) -{ - free(t->data.v); -} - -static struct trigger_type tt_functor = { - "functor", - fctr_init, - fctr_done, - fctr_handle -}; - -static trigger * -trigger_functor(struct unit * u, const object& f) -{ - luabind::object * fptr = new luabind::object(f); - trigger * t = t_new(&tt_functor); - fctr_data * td = (fctr_data*)t->data.v; - td->target = u; - td->fptr = fptr; - return t; -} - -static void -unit_addhandler(struct unit * u, const char * event, const object& f) -{ - add_trigger(&u->attribs, event, trigger_functor(u, f)); -} - -static int -unit_capacity(const struct unit * u) -{ - return walkingcapacity(u); -} - -static void -unit_addnotice(unit * u, const char * str) -{ - addmessage(u->region, u->faction, str, MSG_MESSAGE, ML_IMPORTANT); -} - -void -bind_unit(lua_State * L) -{ - module(L)[ - def("get_unit", &findunit), - def("add_unit", &add_unit), - - class_<struct unit>("unit") - .def(tostring(const_self)) - .def(self == unit()) - .property("name", &unit_getname, &unit_setname) - .property("info", &unit_getinfo, &unit_setinfo) - .property("id", &unit_getid, &unit_setid) - .property("faction", &unit_getfaction, &unit_setfaction) - .def_readwrite("hp", &unit::hp) - .def_readwrite("status", &unit::status) - .property("weight", &unit_weight) - .property("capacity", &unit_capacity) - - .property("is_familiar", &unit_isfamiliar) - .property("familiar", &unit_getfamiliar, &unit_setfamiliar) - - // orders: - .def("add_order", &unit_add_order) - .def("clear_orders", &unit_clear_orders) - .property("orders", &unit_orders, return_stl_iterator) - - // key-attributes for named flags: - .def("set_flag", &set_flag) - .def("get_flag", &get_flag) - .def_readwrite("flags", &unit::flags) - .def_readwrite("age", &unit::age) - - // items: - .def("get_item", &unit_getitem) - .def("add_item", &unit_additem) - .property("items", &unit_items, return_stl_iterator) - - .def("get_pooled", &unit_getpooled) - .def("use_pooled", &unit_usepooled) - - // skills: - .def("get_skill", &unit_getskill) - .def("eff_skill", &unit_effskill) - .def("set_skill", &unit_setskill) - - .def("add_notice", &unit_addnotice) - - // npc logic: - .def("add_handler", &unit_addhandler) - - .def("set_racename", &unit_setracename) - .def("add_spell", &unit_addspell) - .def("remove_spell", &unit_removespell) - .def("cast_spell", &unit_castspell) - - .property("magic", &unit_getmagic, &unit_setmagic) - .property("aura", &unit_getaura, &unit_setaura) - .property("building", &unit_getbuilding, &unit_setbuilding) - .property("ship", &unit_getship, &unit_setship) - .property("region", &unit_getregion, &unit_setregion) - .property("spells", &unit_spells, return_stl_iterator) - .property("number", &unit_getnumber, &unit_setnumber) - .property("race", &unit_getrace, &unit_setrace) - .property("hp_max", &unit_hpmax) - .property("objects", &eressea::get_objects<unit>) - .scope [ - def("create", &add_unit) - ] - ]; -} diff --git a/src/header.txt b/src/header.txt deleted file mode 100644 index eacf4ef04..000000000 --- a/src/header.txt +++ /dev/null @@ -1,9 +0,0 @@ -/* vi: set ts=2: -* +-------------------+ Christian Schlittchen <corwin@amber.kn-bremen.de> -* | | Enno Rehling <enno@eressea.de> -* | Eressea PBEM host | Katja Zedel <katze@felidae.kn-bremen.de> -* | (c) 1998 - 2005 | -* | | This program may not be used, modified or distributed -* +-------------------+ without prior permission by the authors of Eressea. -* -*/ diff --git a/src/premake.lua b/src/premake.lua deleted file mode 100644 index 15604575f..000000000 --- a/src/premake.lua +++ /dev/null @@ -1,164 +0,0 @@ -project.name = "eressea" -project.configs = { "Debug", "Profile", "Release" } - --- the name of the curses library on this system: -c_defines = { } -lib_curses = "curses" -if (windows) then - lib_curses = "pdcurses" - c_defines = { "WIN32", "_CRT_SECURE_NO_DEPRECATE" } -end - -package = newpackage() -package.name = "util" -package.kind = "lib" -package.language = "c" -package.path = "common" -package.includepaths = { "..", "." } -package.files = matchfiles("../config.h", "settings.h", "util/*.c", "util/*.h", "iniparser/*.c", "iniparser/*.h") -package.excludes = { "util/strncpy.c" } -for k,v in project.configs do - package.config[v].objdir = v .. "/" .. package.name - package.config[v].libdir = v .. "/" .. package.name - table.insert(package.config[v].buildflags, "extra-warnings") - table.insert(package.config[v].buildflags, "no-debug-runtime") - table.insert(package.config[v].buildflags, "singlethread-runtime") - for index, name in c_defines do - table.insert(package.config[v].defines, name) - end - if v~="Debug" then - table.insert(package.config[v].defines, "NDEBUG") - end -end - - -package = newpackage() -package.name = "kernel" -package.kind = "lib" -package.language = "c" -package.path = "common" -package.includepaths = { "..", "." } -package.files = matchfiles("kernel/*.c", "triggers/*.c", "spells/*.c", "items/*.c", "kernel/*.h", "triggers/*.h", "spells/*.h", "items/*.h", "modules/*.h", "modules/*.c", "attributes/*.h", "attributes/*.c") -package.excludes = { - "modules/victoryconditions.c", - "modules/victoryconditions.h", - "items/studypotion.c", - "items/studypotion.h", - "kernel/sqlstore.c", - "kernel/sqlstore.h" -} -for k,v in project.configs do - package.config[v].objdir = v .. "/" .. package.name - package.config[v].libdir = v .. "/" .. package.name - table.insert(package.config[v].buildflags, "extra-warnings") - table.insert(package.config[v].buildflags, "no-debug-runtime") - table.insert(package.config[v].buildflags, "singlethread-runtime") - for index, name in c_defines do - table.insert(package.config[v].defines, name) - end - if v~="Debug" then - table.insert(package.config[v].defines, "NDEBUG") - end -end - - -package = newpackage() -package.name = "gamecode" -package.kind = "lib" -package.language = "c" -package.path = "common" -package.includepaths = { "..", "." } -package.files = matchfiles("gamecode/*.c", "races/*.c", "gamecode/*.h", "races/*.h") -for k,v in project.configs do - package.config[v].objdir = v .. "/" .. package.name - package.config[v].libdir = v .. "/" .. package.name - table.insert(package.config[v].buildflags, "extra-warnings") - table.insert(package.config[v].buildflags, "no-debug-runtime") - table.insert(package.config[v].buildflags, "singlethread-runtime") - for index, name in c_defines do - table.insert(package.config[v].defines, name) - end - if v~="Debug" then - table.insert(package.config[v].defines, "NDEBUG") - end -end - - -package = newpackage() -package.name = "bindings" -package.kind = "lib" -package.language = "c++" -package.path = "eressea/lua" -package.includepaths = { "../..", "../../common" } -package.files = matchfiles("*.cpp", "*.h") -package.excludes = { "gm.cpp" } -for k,v in project.configs do - package.config[v].objdir = v .. "/" .. package.name - package.config[v].libdir = v .. "/" .. package.name - table.insert(package.config[v].buildflags, "extra-warnings") - table.insert(package.config[v].buildflags, "no-debug-runtime") - table.insert(package.config[v].buildflags, "singlethread-runtime") - for index, name in c_defines do - table.insert(package.config[v].defines, name) - end - if v~="Debug" then - table.insert(package.config[v].defines, "NDEBUG") - end -end - -package = newpackage() -package.name = "editor" -package.kind = "lib" -package.language = "c++" -package.path = "eressea" -package.includepaths = { "..", "../common" } -package.files = { "gmtool.h", "gmtool.c", "editing.c", "editing.h", "curses/listbox.h", "curses/listbox.c", "lua/gm.cpp" } -for k,v in project.configs do - package.config[v].objdir = v .. "/" .. package.name - package.config[v].libdir = v .. "/" .. package.name - table.insert(package.config[v].buildflags, "extra-warnings") - table.insert(package.config[v].buildflags, "no-debug-runtime") - table.insert(package.config[v].buildflags, "singlethread-runtime") - for index, name in c_defines do - table.insert(package.config[v].defines, name) - end - if v~="Debug" then - table.insert(package.config[v].defines, "NDEBUG") - end -end - -package = newpackage() -package.name = "eressea-lua" -package.kind = "exe" -package.language = "c++" -package.path = "eressea" -package.includepaths = { "..", "../common" } -package.files = { "korrektur.c", "server.cpp", "console.c", "console.h" } -package.links = { "util", "kernel", "gamecode", "bindings", "editor", "libxml2", lib_curses} -for k,v in project.configs do - package.config[v].objdir = v - package.config[v].bindir = v - table.insert(package.config[v].buildflags, "extra-warnings") - table.insert(package.config[v].buildflags, "no-debug-runtime") - table.insert(package.config[v].buildflags, "singlethread-runtime") - for index, name in c_defines do - table.insert(package.config[v].defines, name) - end - if (windows) then - if target=="vs2005" then - if v=="Debug" then - package.config[v].links = { "lua5.1_d", "luabind_d" } - else - package.config[v].links = { "lua5.1", "luabind" } - end - else - package.config[v].links = { "lua50", "luabind" } - end - end - if v~="Debug" then - table.insert(package.config[v].defines, "NDEBUG") - end -end - --- kernel: util, triggers, attributes, spells, items --- gamecode: races diff --git a/src/rts.txt b/src/rts.txt deleted file mode 100644 index 917cc18bf..000000000 --- a/src/rts.txt +++ /dev/null @@ -1,24 +0,0 @@ -Aenderungen fuer Eressea RTS: - -* Befehle abgeschafft: - - ARBEITEN, LEHREN, SPIONIEREN, SABOTIEREN, KRIEG, FRIEDEN, FORSCHEN, TARNEN, TREIBEN, UNTERHALTEN, KAUFEN, VERKAUFEN, ZUECHTEN, LIEFERE, MEINUNG, MAGIEGEBIET, NEUSTART, OPFERE, BETEN, JIHAD, INFO, GM, WERWESEN, ALLIANZ, XONTORMIA, SYNONYM - -* Learning by doing abgeschafft. - -* Skills disabled: - - espionage, entertainment, taxation, tactics, stealth, trade, perception - -* Alle Gebaeude entfernt, mit Ausnahme von Burgen - -* Keine NPC-Monster - -* Einheiten koennen ueber ihre Grundskills hinaus keine neuen Skills lernen - - - -Offene Fragen: - -* Soll es eine Maximalanzahl Einheiten geben? - diff --git a/src/todo.txt b/src/todo.txt deleted file mode 100644 index cc74c5149..000000000 --- a/src/todo.txt +++ /dev/null @@ -1,54 +0,0 @@ -TODO: - -Eressea: -- AI: Nicht mehr als n Wyrme in die gleiche region. Keine 12 auf jeden Fall. -- Gletscheraufl�sung 4./5. welt -- new ITF_NOLOOT f�r sonnensegel -- Deathcloud: Magieresistenz des Magiers in das attribut, nicht aufl�sen wenn magier tot. - -Code cleanup: -- curse type should contain effect-type -- mehr itemtypes auslagern -- getstrtoken() - das static loswerden? -- readline implementieren -- Make asserts into release-mode fails. -- unterschiede in vin3 + wdw per config statt defines? -- age branch (store birthdate instead of age) -- give monsters name with lua -- allocators aus economy nach XML -- reporting units: http://eressea.upb.de/mantis/view.php?id=781 -- wdw pyramid spell could be written in lua (replace attrib with a flag) - -Larger Features: -- eressea (b/g)zip reports? -- ZERST�RE - Man sollte alle Materialien zur�ckkriegen k�nnen: - -Scripts, etc: -- format=flowed annahme, eressea -- english registration confirmation is deutsch! -- XUL for Eressea - -Old Terrain still needed: -- random people encounters (get_allies) -- creating dragons -- drought curse -- volcanoes -- glacier logic -- make_summary, volcano-count -- save.c, conversion -- terraform, old syntax -- terraform, more horses in plains -- dragon name -- arena-module -- build.c, Strassenbau -- monster.c, ent movement -- economy.c, insekten - -unterschiede in vin3 + wdw per config statt defines? - - #define NEWATSROI 1 - #define ATSBONUS 2 - #define ROIBONUS 4 - - #define ARENA_MODULE - #define WORMHOLE_MODULE diff --git a/src/tools/codegen/codegen.cpp b/src/tools/codegen/codegen.cpp deleted file mode 100644 index 3195cb839..000000000 --- a/src/tools/codegen/codegen.cpp +++ /dev/null @@ -1,158 +0,0 @@ -/* libxml includes */ -#include <libxml/tree.h> -#include <libxml/xpath.h> - -/* libc includes */ -#include <string.h> - -const char * prefix = "tolua_"; -const char * tmp_includes = -"#include <lua.h>\n" -"#include <tolua.h>\n" -; -void -read_templates() -{ -} - -xmlDocPtr -readfile(const char * filename) -{ - xmlDocPtr doc; -#ifdef XML_PARSE_XINCLUDE - doc = xmlReadFile(filename, NULL, XML_PARSE_XINCLUDE); -#else - doc = xmlParseFile(filename); -#endif - return doc; -} - -static void -open_function(xmlNodePtr node, FILE * out) -{ - xmlChar * name = xmlGetProp(node, BAD_CAST "name"); - xmlNodePtr call; - - if (fname) { - fprintf(out, " tolua_function(tolua_S, \"%s\", %s);\n", name, fname); - } - xmlFree(name); -} - -static void -open_variable(xmlNodePtr node, FILE * out) -{ - xmlChar * name = xmlGetProp(node, BAD_CAST "name"); - xmlChar * getter = BAD_CAST "0"; - xmlChar * setter = BAD_CAST "0"; - fprintf(out, " tolua_variable(tolua_S, \"%s\", %s%s, %s%s);\n", name, prefix, getter, prefix, setter); - xmlFree(name); -} - -static void -open_method(xmlNodePtr node, FILE * out) -{ - xmlChar * name = xmlGetProp(node, BAD_CAST "name"); - xmlFree(name); -} - -static void -open_class(xmlNodePtr node, FILE * out) -{ - xmlChar * lname = xmlGetProp(node, BAD_CAST "name"); - xmlChar * name = xmlGetProp(node, BAD_CAST "ctype"); - xmlChar * base = xmlGetProp(node, BAD_CAST "base"); - const char * col = "NULL"; - fprintf(out, " tolua_cclass(tolua_S, \"%s\", \"%s\", \"%s\", %s);\n", - lname, name, base, col); - xmlFree(lname); - xmlFree(name); - xmlFree(base); -} - -static void -open_module(xmlNodePtr root, FILE * out) -{ - xmlNodePtr node; - xmlChar * name = xmlGetProp(root, BAD_CAST "name"); - if (name) { - fprintf(out, " tolua_module(tolua_S, \"%s\", 0);\n", name); - fprintf(out, " tolua_beginmodule(tolua_S, \"%s\");\n", name); - xmlFree(name); - } else { - fputs(" tolua_module(tolua_S, 0, 0);\n", out); - fputs(" tolua_beginmodule(tolua_S, 0);\n", out); - } - - for (node=root->children;node;node=node->next) { - if (strcmp((const char *)node->name, "class")==0) { - open_class(node, out); - } else if (strcmp((const char *)node->name, "module")==0) { - open_module(node, out); - } else if (strcmp((const char *)node->name, "function")==0) { - open_function(node, out); - } else if (strcmp((const char *)node->name, "method")==0) { - open_method(node, out); - } else if (strcmp((const char *)node->name, "variable")==0) { - open_variable(node, out); - } - } - fputs(" tolua_endmodule(tolua_S);\n", out); -} - -static void -open_type(xmlNodePtr root, FILE * out) -{ - xmlChar * name = xmlGetProp(root, BAD_CAST "name"); - fprintf(out, " tolua_usertype(tolua_S, \"%s\");\n", name); - xmlFree(name); -} - -void -open_package(xmlNodePtr root, FILE * out) -{ - xmlNodePtr node; - xmlChar * pkg_name = xmlGetProp(root, BAD_CAST "name"); - fprintf(out, "int %s%s_open(struct lua_State * L) {\n", prefix, pkg_name); - xmlFree(pkg_name); - - fputs(" tolua_open(L);\n", out); - - for (node=root->children;node;node=node->next) { - if (strcmp((const char *)node->name, "type")==0) { - open_type(node, out); - } else if (strcmp((const char *)node->name, "module")==0) { - open_module(node, out); - } - } - fputs(" return 0;\n", out); - fputs("}\n", out); -} - -int -writefile(xmlDocPtr doc, FILE * out) -{ - /* includes etc. */ - fputs(tmp_includes, out); - fputc('\n', out); - /* functions */ - - /* open */ - open_package(doc->children, out); - return 0; -} - -int -main(int argc, char* argv[]) -{ - xmlDocPtr doc; - if (argc>1) { - FILE * out = stdout; - read_templates(); - doc = readfile(argv[1]); - if (doc) { - return writefile(doc, stdout); - } - } - return 1; -} diff --git a/src/tools/codegen/codegen.vcproj b/src/tools/codegen/codegen.vcproj deleted file mode 100644 index 17c01e332..000000000 --- a/src/tools/codegen/codegen.vcproj +++ /dev/null @@ -1,206 +0,0 @@ -<?xml version="1.0" encoding="Windows-1252"?> -<VisualStudioProject - ProjectType="Visual C++" - Version="8.00" - Name="codegen" - ProjectGUID="{BEF9E49F-3E98-4CE7-B641-62456E656E34}" - RootNamespace="codegen" - Keyword="Win32Proj" - > - <Platforms> - <Platform - Name="Win32" - /> - </Platforms> - <ToolFiles> - </ToolFiles> - <Configurations> - <Configuration - Name="Debug|Win32" - OutputDirectory="$(SolutionDir)$(ConfigurationName)" - IntermediateDirectory="$(ConfigurationName)" - ConfigurationType="1" - CharacterSet="1" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - /> - <Tool - Name="VCCLCompilerTool" - Optimization="0" - PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE" - MinimalRebuild="true" - BasicRuntimeChecks="3" - RuntimeLibrary="3" - WarningLevel="3" - Detect64BitPortabilityProblems="true" - DebugInformationFormat="4" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLinkerTool" - AdditionalDependencies="kernel32.lib $(NoInherit) libxml2.lib " - LinkIncremental="2" - GenerateDebugInformation="true" - SubSystem="1" - TargetMachine="1" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCManifestTool" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - /> - <Tool - Name="VCFxCopTool" - /> - <Tool - Name="VCAppVerifierTool" - /> - <Tool - Name="VCWebDeploymentTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - </Configuration> - <Configuration - Name="Release|Win32" - OutputDirectory="$(SolutionDir)$(ConfigurationName)" - IntermediateDirectory="$(ConfigurationName)" - ConfigurationType="1" - CharacterSet="1" - WholeProgramOptimization="1" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - /> - <Tool - Name="VCCLCompilerTool" - PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE" - RuntimeLibrary="2" - UsePrecompiledHeader="0" - WarningLevel="3" - Detect64BitPortabilityProblems="true" - DebugInformationFormat="3" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLinkerTool" - AdditionalDependencies="kernel32.lib $(NoInherit)" - LinkIncremental="1" - GenerateDebugInformation="true" - SubSystem="1" - OptimizeReferences="2" - EnableCOMDATFolding="2" - TargetMachine="1" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCManifestTool" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - /> - <Tool - Name="VCFxCopTool" - /> - <Tool - Name="VCAppVerifierTool" - /> - <Tool - Name="VCWebDeploymentTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - </Configuration> - </Configurations> - <References> - </References> - <Files> - <Filter - Name="Source Files" - Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx" - UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}" - > - <File - RelativePath=".\codegen.cpp" - > - </File> - </Filter> - <Filter - Name="Header Files" - Filter="h;hpp;hxx;hm;inl;inc;xsd" - UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}" - > - </Filter> - <Filter - Name="Resource Files" - Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav" - UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}" - > - <File - RelativePath="..\..\eressea\tolua\message.xml" - > - </File> - </Filter> - <File - RelativePath=".\ReadMe.txt" - > - </File> - </Files> - <Globals> - </Globals> -</VisualStudioProject> diff --git a/src/tools/fixes.c b/src/tools/fixes.c deleted file mode 100644 index 86f19495a..000000000 --- a/src/tools/fixes.c +++ /dev/null @@ -1,362 +0,0 @@ -/* vi: set ts=2: - +-------------------+ Christian Schlittchen <corwin@amber.kn-bremen.de> - | | Enno Rehling <enno@eressea-pbem.de> - | Eressea PBEM host | Katja Zedel <katze@felidae.kn-bremen.de> - | (c) 1998 - 2001 | Henning Peters <faroul@beyond.kn-bremen.de> - | | Ingo Wilken <Ingo.Wilken@informatik.uni-oldenburg.de> - +-------------------+ Stefan Reich <reich@halbling.de> - - This program may not be used, modified or distributed - without prior permission by the authors of Eressea. -*/ -#include <config.h> -#include <eressea.h> - -#include <attributes/attributes.h> -#include <attributes/key.h> -#include <spells/spells.h> -#include <triggers/triggers.h> -#include <items/weapons.h> -#include <items/items.h> - -#include <modules/xmas2000.h> -#include <modules/arena.h> -#include <modules/museum.h> -#include <modules/gmcmd.h> - -#include <item.h> -#include <faction.h> -#include <race.h> -#include <region.h> -#include <reports.h> -#include <resources.h> -#include <save.h> -#include <unit.h> -#include <plane.h> -#include <teleport.h> - -#include <ctype.h> -#include <limits.h> -#include <locale.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <time.h> - -extern boolean quiet; - -extern char *reportdir; -extern char *datadir; -extern char *basedir; -extern int maxregions; -char datafile[256]; - -extern char * g_datadir; -extern char * g_resourcedir; -extern char * g_basedir; - -/**/ - -static struct attrib_type at_age = { - "age", NULL, NULL, NULL, NULL, NULL, ATF_UNIQUE -}; - -/* make sure that this is done only once! */ -#define do_once(magic, fun) \ -{ \ - attrib * a = find_key(global.attribs, atoi36(magic)); \ - if (a) { \ - log_warning(("[do_once] a unique fix %d=\"%s\" was called a second time\n", atoi36(magic), magic)); \ - } else { \ - (fun); \ - a_add(&global.attribs, make_key(atoi36(magic))); \ - } \ -} - -#if NEW_RESOURCEGROWTH -static void -convert_resources(void) -{ - region *r; - FILE * fixes = fopen("resource.fix", "w"); - log_open("resourcefix.log"); - for(r=regions;r;r=r->next) { - attrib *a = a_find(r->attribs, &at_resources); - r->resources = 0; - terraform_resources(r); - - if (a==NULL) continue; - else { - int INIT_STONE = 20; /* skip this many weeks */ - double ironmulti = 0.40; - double laenmulti = 0.50; - double stonemulti = 0.30; /* half the stones used */ - rawmaterial * rmiron = rm_get(r, rm_iron.rtype); - rawmaterial * rmlaen = rm_get(r, rm_laen.rtype); - rawmaterial * rmstone = rm_get(r, rm_stones.rtype); - - int oldiron; - int oldlaen = MAXLAENPERTURN * MIN(r->age, 100) / 2; - int oldstone = terrain[rterrain(r)].quarries * MAX(0, r->age - INIT_STONE); - int iron = a->data.sa[0]; - int laen = a->data.sa[1]; - int stone, level; - int i, base; - - /** STONE **/ - for (i=0;terrain[r->terrain].rawmaterials[i].type;++i) { - if (terrain[r->terrain].rawmaterials[i].type == &rm_stones) break; - } - if (terrain[r->terrain].rawmaterials[i].type) { - base = terrain[r->terrain].rawmaterials[i].base; - stone = max (0, (int)(oldstone * stonemulti)); - level = 1; - base = (int)(terrain[r->terrain].rawmaterials[i].base*(1+level*terrain[r->terrain].rawmaterials[i].divisor)); - while (stone >= base) { - stone-=base; - ++level; - base = (int)(terrain[r->terrain].rawmaterials[i].base*(1+level*terrain[r->terrain].rawmaterials[i].divisor)); - } - rmstone->level = level; - rmstone->amount = base - stone; - assert (rmstone->amount > 0); - log_printf("CONVERSION: %d stones @ level %d in %s\n", rmstone->amount, rmstone->level, regionname(r, NULL)); - } else { - log_error(("found stones in %s of %s\n", terrain[r->terrain].name, regionname(r, NULL))); - } - - /** IRON **/ - if (r_isglacier(r) || r->terrain==T_ICEBERG) { - oldiron = GLIRONPERTURN * MIN(r->age, 100) / 2; - } else { - oldiron = IRONPERTURN * r->age; - } - for (i=0;terrain[r->terrain].rawmaterials[i].type;++i) { - if (terrain[r->terrain].rawmaterials[i].type == &rm_iron) break; - } - if (terrain[r->terrain].rawmaterials[i].type) { - base = terrain[r->terrain].rawmaterials[i].base; - iron = MAX(0, (int)(oldiron * ironmulti - iron )); - level = 1; - base = (int)(terrain[r->terrain].rawmaterials[i].base*(1+level*terrain[r->terrain].rawmaterials[i].divisor)); - while (iron >= base) { - iron-=base; - ++level; - base = (int)(terrain[r->terrain].rawmaterials[i].base*(1+level*terrain[r->terrain].rawmaterials[i].divisor)); - } - rmiron->level = level; - rmiron->amount = base - iron; - assert (rmiron->amount > 0); - log_printf("CONVERSION: %d iron @ level %d in %s\n", rmiron->amount, rmiron->level, regionname(r, NULL)); - } else { - log_error(("found iron in %s of %s\n", terrain[r->terrain].name, regionname(r, NULL))); - } - - /** LAEN **/ - if (laen>=0) { - if (rmlaen==NULL) { - rmlaen = calloc(sizeof(rawmaterial), 1); - rmlaen->next = r->resources; - r->resources = rmlaen; - } - for (i=0;terrain[r->terrain].rawmaterials[i].type;++i) { - if (terrain[r->terrain].rawmaterials[i].type == &rm_laen) break; - } - if (terrain[r->terrain].rawmaterials[i].type) { - laen = MAX(0, (int)(oldlaen * laenmulti - laen)); - level = 1; - base = (int)(terrain[r->terrain].rawmaterials[i].base*(1+level*terrain[r->terrain].rawmaterials[i].divisor)); - while (laen >= base) { - laen-=base; - ++level; - base = (int)(terrain[r->terrain].rawmaterials[i].base*(1+level*terrain[r->terrain].rawmaterials[i].divisor)); - } - rmlaen->level = level; - rmlaen->amount = base - laen; - assert(rmlaen->amount>0); - log_printf("CONVERSION: %d laen @ level %d in %s\n", rmlaen->amount, rmlaen->level, regionname(r, NULL)); - rmlaen = NULL; - } - } - if (rmlaen) { - struct rawmaterial *res; - struct rawmaterial ** pres = &r->resources; - if (laen!=-1) log_error(("found laen in %s of %s\n", terrain[r->terrain].name, regionname(r, NULL))); - while (*pres!=rmlaen) pres = &(*pres)->next; - res = *pres; - *pres = (*pres)->next; - free(res); - } -#ifndef NDEBUG - { - rawmaterial * res = r->resources; - while (res) { - assert(res->amount>0); - assert(res->level>0); - res = res->next; - } - } -#endif - { - rawmaterial * rmiron = rm_get(r, rm_iron.rtype); - rawmaterial * rmlaen = rm_get(r, rm_laen.rtype); - rawmaterial * rmstone = rm_get(r, rm_stones.rtype); - fprintf(fixes, "%d %d %d %d %d %d %d %d %d\n", - r->x, r->y, r->age, - (rmstone)?rmstone->amount:-1, (rmiron)?rmiron->amount:-1, (rmlaen)?rmlaen->amount:-1, - (rmstone)?rmstone->level:-1, (rmiron)?rmiron->level:-1, (rmlaen)?rmlaen->level:-1); - } - } - } - log_close(); - fclose(fixes); -} -#endif - -static void -fix_age(void) -{ - region * r; - int c; - for (r=regions;r;r=r->next) { - const unit * u; - attrib * a = a_find(r->attribs, &at_age); - if (a==NULL) { - a = a_add(&r->attribs, a_new(&at_age)); - } - - for (u=r->units;u;u=u->next) { - faction * f = u->faction; - if (f->age<=r->age) { - a->data.sa[0]+= f->age; - a->data.sa[1]++; - if (a->data.sa[0]>0x7000) { - a->data.sa[0] /= 10; - a->data.sa[1] /= 10; - } - } - } - } -#define STEPS 3 - for (c=0;c!=STEPS;++c) for (r=regions;r;r=r->next) { - attrib * a = a_find(r->attribs, &at_age); - int x = 0; - direction_t i; - int age = a->data.sa[0], div = a->data.sa[1]; - if (age) ++x; - for (i=0;i!=MAXDIRECTIONS;++i) { - region * nr = rconnect(r, i); - if (nr!=NULL) { - attrib * na = a_find(nr->attribs, &at_age); - age += na->data.sa[0]; - div += na->data.sa[1]; - ++x; - } - } - if (x) { - a->data.sa[0] = (short)(age / x); - a->data.sa[1] = (short)(div / x); - } - } - - log_open("agefix.log"); - for (r=regions;r;r=r->next) { - attrib * a = a_find(r->attribs, &at_age); - int age = a->data.sa[0]; - if (a->data.sa[1]==0) continue; - age /= a->data.sa[1]; - if (age*100<r->age*90) { - log_printf("AGE: from %d to %d in region %s\n", r->age, age, regionname(r, NULL)); - r->age = age; - } - } - log_close(); -} - -static void -fixit(void) -{ - fix_age(); - do_once("rgrw", convert_resources()); -} - -int -main(int argc, char *argv[]) -{ - char zText[MAX_PATH]; - boolean backup = true; - boolean save = true; - int i = 1; - - setlocale(LC_ALL, ""); - - *datafile = 0; - - while (i < argc && argv[i][0] == '-') { - switch (argv[i][1]) { - case 't': - if (argv[i][2]) - turn = atoi((char *)(argv[i] + 2)); - else - turn = atoi(argv[++i]); - break; - case 'x': - maxregions = atoi(argv[++i]); - maxregions = (maxregions*81+80) / 81; - break; - case 'q': quiet = true; break; - case 'n': - switch (argv[i][2]) { - case 'b' : backup = false; break; - case 's' : save = false; break; - } - break; - case 'd': - g_datadir = argv[++i]; - break; - case 'r': - g_resourcedir = argv[++i]; - break; - case 'o': - strcpy(datafile, argv[++i]); - break; - case 'b': - g_basedir = argv[++i]; - break; - } - i++; - } - - kernel_init(); - - init_triggers(); - - register_races(); - register_spells(); - - debug_language("locales.log"); - sprintf(zText, "%s/%s", resourcepath(), "eressea.xml"); - init_data(zText); - init_locales(); - - init_attributes(); - init_resources(); - register_items(); - - init_rawmaterials(); - init_museum(); - init_arena(); - init_xmas2000(); - - init_gmcmd(); - - if(!*datafile) - sprintf(datafile, "%s/%d", datapath(), turn); - - readgame(backup); - - fixit(); - - if (save) writegame(datafile, 1); - return 0; -} diff --git a/src/tools/misc/Spielerumfrage b/src/tools/misc/Spielerumfrage deleted file mode 100644 index 61e6692a7..000000000 --- a/src/tools/misc/Spielerumfrage +++ /dev/null @@ -1,282 +0,0 @@ - -Nach den sehr erfolgreichen vergangenen drei Spielerbefragungen (unter -http://pegasus.upb.de/umfrage-1999/index.html findet ihr die Ergebnisse -der letzten Befragung) gibt es jetzt die vierte Spielerbefragung. Sie -soll uns helfen, besser zu erfassen, wer die Spieler sind, was sie sich -vom Spiel erhoffen, und ob wir auf dem richtigen Weg sind. - -Diesmal hat sie noch einen ganz besonderen Grund (siehe Frage 2). Und wir -wollen die sehr erfolgreiche Befragung zu den Clients fortsetzen. - -Da wir den Fragebogen automatisch auswerten wollen, halte dich bitte -an folgende Richtlinien: - -- Bei Fragen, in denen ein Feld ([ ]) zur Auswahl steht, kreuze - bitte das Feld an ([x]) oder schreibe die Antwort hinein - ([1234]). - - [x] ich bin ein [99] Jahre alter Ork - - Wo Schulnoten gefragt sind, benutze bitte nur die Standardschulnoten - von 1-6, ohne Modifikatoren (+/-). - - [1] D�monen werden die Welt �bernehmen - -- Aendere die Formatierung des Fragebogens moeglichst nicht! Fuege - insbesondere keine zusaetzlichen Umbrueche ein. - -- Schicke deine Antwort mit dem Betreff 'Spielerumfrage' an - eressea@eressea.amber.kn-bremen.de. Am einfachsten machst du - dafuer einfach ein Reply auf diese Mail. Bitte schicke die - Antwort nicht als Attachment und nicht in HTML! - - -1. Angaben zur Person - - Uns interessiert immer wieder, wer die Person hinter der Partei ist, - fuer wen wir das Spiel eigentlich machen. Wie alt bist Du? Bist du - maennlich oder weiblich? - - 1.1.1 [ ] Jahre alt - 1.1.2 [ ] maennlich - 1.1.3 [ ] weiblich - - In welchem Land lebst du? Bitte keine Scherze wie "Tirol" oder - "Sauerland". Wir werten das ganze elektronisch aus, und sowas kostet - uns immer viel Zeit bei der Bereinigung der Daten. - - 1.2.1 [ ] Deutschland - 1.2.2 [ ] Oesterreich - 1.2.3 [ ] Schweiz - 1.2.4 [ ] anderes Land, und zwar: [ ] - - Wie viele Monate spielst du schon Eressea? - - 1.3.1 [ ] Wochen - - Wieviele Parteien hast du in dieser Zeit gespielt? - (Urlaubsvertretungen nicht mitgezaehlt) - - 1.3.2 [ ] Parteien gespielt - - Was waren der/die Grund/Gruende fuer den Neubeginn: - - 1.4.1 [ ] Schlechte Startbedingungen - 1.4.2 [ ] Krieg verloren - 1.4.3 [ ] Zuviele eigene Fehler - 1.4.4 [ ] Zuviele NMRs - 1.4.5 [ ] Unsympathische/schwierige Nachbarn - 1.4.6 [ ] Zu wenige Nachbarn - 1.4.7 [ ] Zu viele Nachbarn - 1.4.8 [ ] Das Gefuehl, alles erreicht zu haben - 1.4.9 [ ] Sonstiges, und zwar: [ ] - - Wie gef�llt dir das Spiel? - - 1.5.1 [ ] Bestes Spiel der Welt - 1.5.2 [ ] macht Spass - 1.5.3 [ ] ist okay - 1.5.4 [ ] ich mache demnaechst Schluss - - Bitte benote, wie wichtig dir die folgenden Aspekte von Eressea sind. - (1 - sehr wichtig, 6 - mir unwichtig) - - 1.6.1 [ ] Rollenspiel und Diplomatie - 1.6.2 [ ] Schlachten und Konflikte - 1.6.3 [ ] Entwicklung und Forscherdrang - 1.6.4 [ ] Geschichte und Geschichten von Eressea - - Wie benotest du die folgenden Punkte? (1 - Klasse, 6 - Furchtbar) - - 1.7.1 [ ] Hilfe durch Entwickler, z.B. bei technischen Problemen - 1.7.2 [ ] Hilfen f�r Anfaenger - 1.7.3 [ ] Mailhandling (Befehle, Reports nachbestellen, etc.) - 1.7.4 [ ] Lesbarkeit der Reports - 1.7.5 [ ] Anzahl der Reportoptionen - 1.7.6 [ ] Umgangston unter den Spielern - 1.7.7 [ ] Xontormia Express - - Bist Du Schueler, Student oder berufstaetig? - - 1.8.1 [ ] Schueler - 1.8.2 [ ] Student/Auszubildender - 1.8.3 [ ] Berufstaetig - 1.8.4 [ ] Nicht berufstaetig und nicht in Ausbildung - - Noch ein paar Zusatzfragen. Kreuze an, was auf dich zutrifft. - - 1.9.1 [ ] Ich habe schon mindestens eine(n) Freund(in) zum Spiel ueberredet - 1.9.2 [ ] Eressea ist dasjenige Hobby, dem ich die meiste Zeit widme - 1.9.3 [ ] Ich spiele regelmaessig Onlinespiele - (z.B. Halflife, Ultima Online) - 1.9.4 [ ] Meine Telefonrechnung (ohne Grundgebuehr) uebersteigt 40 DM/Monat - 1.9.5 [ ] Ich war schon einmal auf einem Eressea-Spielertreffen - 1.9.6 [ ] Ich spiele regelmaessig Pen&Paper Rollenspiele - 1.9.7 [ ] Ich habe durch das Spiel Freunde gefunden, mit denen ich auch - ausserhalb Eresseas etwas unternehme - - - -2. Zweites Spiel - - Wir haben mehrfach darueber nachgedacht, ein zweites Spiel zu starten. - Vor allem wollen wir das aktuelle Spiel am Leben erhalten, und das - aktuelle Eressea wuerde davon auch nicht betroffen. Aber ein neues - Spiel bietet die Moeglichkeit groesserer Veraenderungen, und die - Beseitigung von Fehlern, die im laufenden Spiel nicht denkbar sind. - Angenommen, es wuerde noch ein zweites Spiel wie Eressea gestartet. - Wuerdest Du da mitspielen? - - 2.1.1 [ ] Ja, und in Eressea weiterspielen - 2.1.2 [ ] Ja, und mit Eressea aufhoeren - 2.1.3 [ ] Nein, ich habe an Eressea genug - - Da so etwas wieder viel zusaetzliche Zeit in Anspruch nimmt, ist es - wahrscheinlich fuer uns nicht vertretbar, so etwas kostenlos - anzubieten. Waerst Du bereit, fuer ein zweites Spiel Geld auszugeben? - - 2.2.1 [ ] Nein, auf keinen Fall. - 2.2.2 [ ] Ja, aber dafuer muss es sich von Eressea ausreichend unterscheiden - 2.2.3 [ ] Ja. - - Viele von uns haben durch Onlinespiele oder Handys bereits eine hohe - Telefonrechnung. Der Preis eines PBeM kann wahrscheinlich mit der - Telefoniersucht des durchschnittlichen Deutschen garnicht - konkurrieren. Bitte ueberleg, wieviel es Dir wirklich wert ist. Ob es - sich fuer uns lohnt, und wir uns fuer ein zweites Spiel einsetzen - haengt vor allem von der Antwort auf diese Frage ab. Uns ist nicht - geholfen, wenn jeder 50 Pfg schreibt, und auch nicht, wenn Fabelpreise - entstehen, die spaeter niemand zahlt. Also: Falls ja, was waerst Du zu - zahlen bereit? - - 2.3.1 [ ] DM/ZAT - - -3. Welche Clients benutzt Du? - - Bitte kreuze nur solche Clients an, die du REGELMAESSIG benutzt, um - deine Zuege zu erstellen, nicht solche, die du nur ausprobiert hast. - Falls Du der Autor eines der Programme bist, kreuze bitte nicht - zusaetzlich 'Selbstgemachtes Programm' an. - - 3.1.1 [ ] crtools, eva, eformat (E. Rehling) - 3.1.2 [ ] Den Java-Client - 3.1.3 [ ] E/V Assistent (M. Pollaschke) - 3.1.4 [ ] ECheck (H. Peters) - 3.1.5 [ ] ECheck Frontend (J. Kirchhoff) - 3.1.6 [ ] EHMV (C. Schubert - 3.1.7 [ ] Einen Namensgenerator - 3.1.8 [ ] EMap (P. Stern) - 3.1.9 [ ] eSurvey (S. Tusk) - 3.1.10 [ ] gReport (S. Reich) - 3.1.11 [ ] HexMap (H. Peters) - 3.1.12 [ ] Kampfsimulator (F. Schatz) - 3.1.13 [ ] Mercator (R. Butenuth) - 3.1.14 [ ] NameMe (H. Peters) - 3.1.15 [ ] Perl Tools (G. Edelmayer, F. Wolkwitz) - 3.1.16 [ ] Vorlage (S. Schuemann) - 3.1.17 [ ] VPP (S. Schuemann) - 3.1.18 [ ] anderes, selbstgemachtes Programm - 3.1.19 [ ] andere, und zwar: [ ] - - -4. Anleitung - - Welches Format fuer die Anleitung ist Dir am liebsten, d.h. welche - benutzt Du am meisten? Mehrfachnennungen sind erlaubt. - - 4.1.1 [ ] Word-Dokument - 4.1.2 [ ] Latex-Quelltext - 4.1.3 [ ] Postscript - 4.1.4 [ ] PDF - 4.1.5 [ ] HTML - 4.1.6 [ ] Windows Hilfedatei (CHM) - 4.1.7 [ ] ASCII - 4.1.8 [ ] andere, und zwar: [ ] - - Wie bewertest du die Qualitaet der folgenden Aspekte der Anleitung? - Bitte benutze normale Schulnoten (1-6). - - 4.2.1 [ ] Einsteigerfreundlichkeit - 4.2.2 [ ] Uebersichtlichkeit - 4.2.3 [ ] Informationsgehalt - 4.2.4 [ ] Stil - - -5. Spielkonzepte - - Natuerlich interessiert uns, wie ihr bestimmte Aspekte des Spiels - bewertet, und wo ihr Handlungsbedarf f�r Aenderungen seht. Bitte - bewerte auf einer Skala von 1-6, f�r wie gelungen du den betreffende - Spielaspekt haelst. (1 - sehr gut/keine Aenderungen notwendig, 6 - - miserabel/sofort aendern) - - 5.1.1 [ ] taktisches Kampfsystem - (Alles, was den Ablauf einer einzigen Schlacht betrifft) - 5.1.2 [ ] strategisches Kampfsystem - (Hierunter fallen 'groessere' Aspekte als eine einzelne Schlacht) - 5.1.3 [ ] Welt/Geographie - 5.1.4 [ ] Handel - 5.1.5 [ ] Seefahrt - 5.1.6 [ ] Monster/NPC - 5.1.7 [ ] Einsteigerbedingungen - 5.1.8 [ ] Rassenbalance - 5.1.9 [ ] anderes, und zwar: [ ] - - In der Vergangenheit wurde in verschiedenen Diskussionen haeufig die - Starre in den aelteren Welten kritisiert und als Abhilfe vorgeschlagen, - drastische 'Questen' einzuf�hren, die bei Nichtgelingen auch schon - einmal eine Welt praktisch zerstoeren koennen. Wie stehst du zu dieser - Idee? - - 5.2.1 [ ] Bin ich voellig gegen - 5.2.2 [ ] Kommt drauf an - 5.2.3 [ ] Von mir aus in Ordnung - - Im Fruehjahr wurde das Magiesystem umgestellt. Uns ist bewusst, das es - noch Schwaechen gibt, trotzdem wuerde uns deine Meinung zum neuen - Magiesystem interessieren. Bitte bewerte die folgenden Aussagen mit - Schulnoten. - - 5.3.1 [ ] Das neue Magiesystem ist besser als das alte. - 5.3.2 [ ] Die Magiegebiete sind ausbalanciert. - 5.3.3 [ ] Die Gebiete und Zauber machen das Spiel interessanter. - 5.3.4 [ ] Die Zauberpatzer machen das Spiel interessanter. - - -6. Uns interessiert, wie die Spielerschaft die 'Staerke' der einzelnen - Rassen einschaetzt. Bitte ordne den unten angegebenen Rassen - Zahlenwerte von 1-6 zu. (1 - sehr gute Rasse, 6 - sehr schlechte - Rasse) - - 6.1.1 [ ] Goblins - 6.1.2 [ ] Trolle - 6.1.3 [ ] Orks - 6.1.4 [ ] Daemonen - 6.1.5 [ ] Elfen - 6.1.6 [ ] Meermenschen - 6.1.7 [ ] Menschen - 6.1.8 [ ] Zwerge - 6.1.9 [ ] Katzen - 6.1.10 [ ] Insekten - 6.1.11 [ ] Halblinge - - Welche Rasse hat deine eigene Partei? - - 6.2.1 [ ] Goblins - 6.2.2 [ ] Trolle - 6.2.3 [ ] Orks - 6.2.4 [ ] Daemonen - 6.2.5 [ ] Elfen - 6.2.6 [ ] Meermenschen - 6.2.7 [ ] Menschen - 6.2.8 [ ] Zwerge - 6.2.9 [ ] Katzen - 6.2.10 [ ] Insekten - 6.2.11 [ ] Halblinge - - -7. Wenn du noch etwas loswerden willst, Kritik, Anregungen, Kommentare - aller Art, dann kannst Du das hier tun: - - diff --git a/src/tools/misc/filter b/src/tools/misc/filter deleted file mode 100644 index 7012499e5..000000000 --- a/src/tools/misc/filter +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh - -sed -e 's/^ *[Ll][Ee][rR].*[Ss][Cc][Hh][Ww].*$/LERNE HIEBWAFFEN/g' | \ -sed -e 's/^ *[Ll][Ee][rR].*[Ss][Pp].*$/LERNE STANGENWAFFEN/g' | \ -sed -e 's/^ *[Ss][Ee][Nn][Dd][Ee] /OPTION /g' - - diff --git a/src/tools/misc/secure-include.pl b/src/tools/misc/secure-include.pl deleted file mode 100644 index fd2e9cbc5..000000000 --- a/src/tools/misc/secure-include.pl +++ /dev/null @@ -1,35 +0,0 @@ -#!/usr/bin/perl - -use Getopt::Std; - -sub output_file { - my $file = shift(@_); - - foreach $dir (@searchpath) { - $absname = $dir."/".$file; - if ( -r $absname ) { - system "cat $absname"; - last; - } - } -} - -getopt('I'); -@searchpath = split(/:/,$opt_I); - -while(<STDIN>) { - $line = $_; - - if( $line =~ /^\s*#include\s+\"(.*)\"/ ) { - $file = $1; - if(not ($file =~ /\.\./ or $file =~ /^\//) or $file =~ /;/) { - output_file($file); - } - } else if ( $line =~ /^\s*#perl\s+\"(.*)\"/ ) { - $script = $1; - do $script; - } else { - print $line; - } -} - diff --git a/src/tools/misc/secure-include.pl.readme b/src/tools/misc/secure-include.pl.readme deleted file mode 100644 index c08dd6786..000000000 --- a/src/tools/misc/secure-include.pl.readme +++ /dev/null @@ -1,5 +0,0 @@ - -Dies ist eine sichere Implementation der #include - Funktionalit�t -der C-Pr�prozessors. Er l��t keine absoluten Pfade oder .. in den -Filenamen zu, und durchsucht nur die mit -I angegebenen Directories. - diff --git a/src/tools/msg2xml.c b/src/tools/msg2xml.c deleted file mode 100644 index 17cd36cec..000000000 --- a/src/tools/msg2xml.c +++ /dev/null @@ -1,246 +0,0 @@ -/* vi: set ts=2: - +-------------------+ Christian Schlittchen <corwin@amber.kn-bremen.de> - | | Enno Rehling <enno@eressea-pbem.de> - | Eressea PBEM host | Katja Zedel <katze@felidae.kn-bremen.de> - | (c) 1998 - 2001 | Henning Peters <faroul@beyond.kn-bremen.de> - | | Ingo Wilken <Ingo.Wilken@informatik.uni-oldenburg.de> - +-------------------+ Stefan Reich <reich@halbling.de> - - This program may not be used, modified or distributed - without prior permission by the authors of Eressea. -*/ -#include <config.h> - -#include <stdio.h> -#include <string.h> - -static struct vartype { - const char * name; - const char * type; - const char * msg; -} vartype[] = { - { "from", "unit", "donation"}, - { "to", "unit", "donation" }, - - /* strange and to be changed */ - { "destruction", "int", "siege" }, - { "mode", "int", "travel" }, - { "discover", "string", "givedumb" }, - { "receipient", "unit", "givecommand" }, - { "sink", "string", "entermaelstrom" }, - { "sink", "string", "storm" }, - { "using", "resource", "errusingpotion" }, - { "type", "string", "scunicorn" }, - { "special", "string", "new_fspecial" }, - { "special", "string", "new_fspecial_level" }, - - /* broadband */ - - { "regions", "string" }, - { "succ", "string" }, - { "renamed", "string" }, - { "reason", "string" }, - { "message", "string" }, - { "value", "string" }, - { "error", "string" }, - { "string", "string" }, - { "command", "string" }, - { "spell", "string" }, /* ? */ - - { "building", "building" }, - - { "ship", "ship" }, - - { "resource", "resource" }, - { "potion", "resource" }, - { "item", "resource" }, - { "herb", "resource" }, - - { "teacher", "unit" }, - { "student", "unit" }, - { "unit", "unit" }, - { "renamer", "unit" }, - { "spy", "unit" }, - { "mage", "unit" }, - { "opfer", "unit" }, - { "target", "unit" }, - { "recipient", "unit" }, - { "follower", "unit" }, - - { "skill", "skill" }, - - { "faction", "faction" }, - - { "region", "region" }, - { "source", "region" }, - { "regionn", "region" }, - { "regionv", "region" }, - { "end", "region" }, - { "start", "region" }, - { "runto", "region" }, - { "to", "region" }, - { "from", "region" }, - - { "kills", "int" }, - { "fallen", "int" }, - { "amount", "int" }, - { "aura", "int" }, - { "months", "int" }, - { "wanted", "int" }, - { "money", "int" }, - { "dead", "int" }, - { "level", "int" }, - { "days", "int" }, - { "damage", "int" }, - { "cost", "int" }, - { "want", "int" }, - { "size", "int" }, - { "alive", "int" }, - { "run", "int" }, - { "hits", "int" }, - { "turns", "int" }, - - { "race", "race" }, - - { "direction", "direction" }, - { "dir", "direction" }, - - { "id", "int" }, - { NULL, NULL } -}; - -static const char * -type(const char * name,const char * msg) -{ - int i = 0; - while (vartype[i].name) { - if (strcmp(name, vartype[i].name)==0 && - (vartype[i].msg==NULL || strcmp(vartype[i].msg, msg)==0)) { - return vartype[i].type; - } - ++i; - } - fprintf(stderr, "unknown type for \"%s\" in message \"%s\".\n", name, msg); - return "unknown"; -} - -static void -parse_message(char * b, FILE * ostream) -{ - const char * vtype; - char *m, *a = NULL, message[8192]; - char * name; - char * language; - char * section = NULL; - int i, level = 0; - char * args[16]; - boolean f_symbol = false; - - /* skip comments */ - if (b[0]=='#' || b[0]==0) return; - - /* the name of this type */ - name = b; - while (*b && *b!=';') ++b; - if (!*b) return; - *b++ = 0; - - /* the section for this type */ - section = b; - while (*b && *b!=';' && *b!=':') ++b; - if (!strcmp(section, "none")) section=NULL; - - /* if available, the level for this type */ - if (*b==':') { - char * x; - *b++ = 0; - x = b; - while (*b && *b!=';') ++b; - level=atoi(x); - } - *b++ = 0; - - /* the locale */ - language = b; - while (*b && *b!=';') ++b; - *b++ = 0; - - /* parse the message */ - i = 0; - m = message; - *m++='\"'; - while (*b) { - switch (*b) { - case '{': - f_symbol = true; - a = ++b; - break; - case '}': - *b++ = '\0'; - args[i] = strdup(a); - vtype = type(args[i], name); - if (strcmp(vtype, "string")==0) { - sprintf(m, "$%s", args[i]); - } else { - sprintf(m, "$%s($%s)", vtype, args[i]); - } - m+=strlen(m); - i++; - f_symbol = false; - break; - case ' ': - if (f_symbol) { - a = ++b; - break; - } - /* fall-through intended */ - default: - if (!f_symbol) { - *m++ = *b++; - } else b++; - } - } - strcpy(m, "\""); - args[i] = NULL; - - /* add the messagetype */ - fprintf(ostream, "<message name=\"%s\">\n", name); - fputs("\t<type>\n", ostream); - for (i=0;args[i];++i) { - fprintf(ostream, "\t\t<arg name=\"%s\" type=\"%s\"></arg>\n", args[i], type(args[i], name)); - } - fputs("\t</type>\n", ostream); - fprintf(ostream, "\t<locale name=\"%s\">\n", language); - fprintf(ostream, "\t\t<nr section=\"%s\">\n", - section); - fprintf(ostream, "\t\t\t<text>%s</text>\n", message); - fputs("\t\t</nr>\n", ostream); - fputs("\t</locale>\n", ostream); - fputs("</message>\n\n", ostream); -} - -void -read_messages(FILE * istream, FILE * ostream) -{ - char buf[8192]; - fputs("<messages>\n", ostream); - while (fgets(buf, sizeof(buf), istream)) { - buf[strlen(buf)-1] = 0; /* \n weg */ - parse_message(buf, ostream); - } - fputs("</messages>\n", ostream); -} - -int -main(int argc, char** argv) -{ - FILE * istream = stdin; - FILE * ostream = stdout; - int nretval = -1; - if (argc>1) istream = fopen(argv[1], "rt+"); - if (argc>2) ostream = fopen(argv[2], "wt+"); - if (istream && ostream) { - read_messages(istream, ostream); - } - return nretval; -} diff --git a/src/tools/prototype-advance/Graph.py b/src/tools/prototype-advance/Graph.py deleted file mode 100644 index a196af810..000000000 --- a/src/tools/prototype-advance/Graph.py +++ /dev/null @@ -1,119 +0,0 @@ -#!/usr/bin/python - -from Stack import * - -class Node: - def __init__(self, obj): - self.obj = obj - self.marker = 0 - -class Vertex: - def __init__(self, node1, node2): - self.nodes = (node1, node2) - self.marker = 0 - -class Graph: - - def __init__(self): - self.nodes = [] - self.vertices = [] - - def remove_node(self, node): - self.nodes.remove(node) - for v in self.vertices: - if v.nodes[0] == node or v.nodes[1] == node: - self.vertices.remove(v) - - def find_node(self, obj): - for n in self.nodes: - if n.obj == obj: - return n - - return None - - def neighbours(self, node): - n = [] - for v in self.vertices: - if v.nodes[0] == node and v.nodes[1] not in n: - n.append(v.nodes[1]) - elif v.nodes[1] == node and v.nodes[0] not in n: - n.append(v.nodes[0]) - - return n - - def reset_marker(self): - for n in self.nodes: - n.marker = 0 - for v in self.vertices: - v.marker = 0 - - def dsearch(self,node): - reset_marker() - dg = [node] - s = Stack() - node.marker = 1 - s.push(node) - while not s.empty(): - n = s.pop() - for nb in self.neighbours(n): - if nb.marker == 0: - nb.marker = 1 - dg.append(nb) - s.push(nb) - return dg - - def dgraphs(self): - rl = [] - nodelist = self.nodes[:] - while nodelist != []: - start = nodelist.pop() - self.reset_marker() - g = Graph() - g.nodes.append(start) - start.marker = 1 - s = Stack() - s.push(start) - while not s.empty(): - tnode = s.pop() - for nb in self.neighbours(tnode): - if nb.marker == 0: - nb.marker = 1 - g.nodes.append(nb) - nodelist.remove(nb) - s.push(nb) - - for v in self.vertices: - if v.nodes[0] in g.nodes: - g.vertices.append(v) - - rl.append(g) - - return rl - -# g = Graph() - -# n1 = Node(1) -# n2 = Node(2) -# n3 = Node(3) -# n4 = Node(4) -# n5 = Node(5) -# n6 = Node(6) - -# g.nodes.append(n1) -# g.nodes.append(n2) -# g.nodes.append(n3) -# g.nodes.append(n4) -# g.nodes.append(n5) -# g.nodes.append(n6) - -# g.vertices.append(Vertex(n1,n2)) -# g.vertices.append(Vertex(n1,n4)) -# g.vertices.append(Vertex(n2,n6)) - -# for dg in g.dgraphs(): -# for e in dg: -# print e.obj, -# print - - - diff --git a/src/tools/prototype-advance/Stack.py b/src/tools/prototype-advance/Stack.py deleted file mode 100644 index 0cec799bb..000000000 --- a/src/tools/prototype-advance/Stack.py +++ /dev/null @@ -1,17 +0,0 @@ -#!/usr/bin/python - -class Stack: - def __init__(self): - self.data = [] - - def push(self, obj): - self.data.append(obj) - - def pop(self): - return self.data.pop() - - def empty(self): - if self.data == []: - return 1 - return 0 - diff --git a/src/tools/prototype-advance/battle.py b/src/tools/prototype-advance/battle.py deleted file mode 100755 index 9652da755..000000000 --- a/src/tools/prototype-advance/battle.py +++ /dev/null @@ -1,145 +0,0 @@ -#!/usr/bin/python -# vi:set ts=4: - -# Algorithmus zur Berechnung von regions�bergreifenden Schlachten. -# Testprogramm. - -# 1) Graph aufbauen aus alle Attackierern und allen direkt attackierten - -# 2) Helfer in den Graphen aufnehmen - -# 3) Disjunkte Teilgraphen ermitteln - -# 4) Innerhalb der Teilgraphen die 'Wer-schl�gt-wen-Beziehung' aufbauen - -import re -from Graph import * - -class heer: - def __init__(self, rx, ry, f, p, o): - self.rx = rx - self.ry = ry - self.f = f - self.part = p - self.o = o - self.attacked = [] - - def toString(self): - return "("+self.f+"/"+str(self.part)+","+str(self.rx)+","+str(self.ry)+")" - - -def dist(x1, y1, x2, y2): - dx = x1 - x2 - dy = y1 - y2 - if dy < 0: - dy = -dy - dx = -dx - if dx >= 0: - return dx + dy; - if -dx >= dy: - return -dx - return dy - - -def is_neighbour(h, r1, r2): - x1 = r1[0] - y1 = r1[1] - x2 = r2[0] - y2 = r2[1] - - if dist(h.rx, h.ry, x1, y1) <= 1 and dist(h.rx, h.ry, x2, y2) <= 1: - return 1 - - return 0 - -heere = [ - Node(heer(0,0, 'A', 1, 'A->B:-1,1')), - Node(heer(0,0, 'A', 2, 'A->B:0,1')), - Node(heer(-1,1, 'B', 1, '')), - Node(heer(1,-1, 'B', 1, '')), - Node(heer(0,1, 'B', 1, '')) -] - -def find_heer_node(x, y, f): - for node in heere: - h = node.obj - if h.rx == x and h.ry == y and h.f == f: - return node - return None - -def allied(f1, f2): - if f1 == f2: - return 1 - return 0 - -g1 = Graph() - -a_re = re.compile('A->(\w):(-?\d+),(-?\d+)') -l_re = re.compile('L->(\w)') - -# Schritt 1 - -for node in heere: - f = '' - h = node.obj - - mo = a_re.match(h.o) - if mo != None: - f = mo.group(1) - x = int(mo.group(2)) - y = int(mo.group(3)) - - mo = l_re.match(h.o) - if mo != None: - f = mo.group(1) - x = h.rx - y = h.ry - - if f != '': - tnode = find_heer_node(x,y,f) - if node not in g1.nodes: - g1.nodes.append(node) - if tnode not in g1.nodes: - g1.nodes.append(tnode) - g1.vertices.append(Vertex(node,tnode)) - tnode.obj.attacked.append((x,y,node)) - -# Schritt 2 - -for node1 in g1.nodes: - heer1 = node1.obj - for attack in heer1.attacked: - attacker_node = attack[2] - for node2 in heere: - heer2 = node2.obj - # heer 1 ist der angegriffene - # heer 2 der potentielle Helfer - if heer1 != heer2 and allied(heer1.f,heer2.f) and not allied(heer2.f, attacker_node.obj.f): - if is_neighbour(heer2, (heer1.rx, heer1.ry), attack): - if node2 not in g1.nodes: - g1.nodes.append(node2) - g1.vertices.append(Vertex(attacker_node,node2)) - -# Schritt 3 - -battles = g1.dgraphs() - -count = 1 - -for battle in battles: - print "Schlacht "+str(count), - count = count + 1 - for node in battle.nodes: - heer = node.obj - print heer.toString()+",", - print - - # Schritt 4 - - for node in battle.nodes: - heer = node.obj - print "\tHeer "+str(heer.toString())+" attackiert gegen", - for enemy in battle.neighbours(node): - print str(enemy.obj.toString())+",", - print - diff --git a/src/tools/reduce.c b/src/tools/reduce.c deleted file mode 100644 index fcbbefc18..000000000 --- a/src/tools/reduce.c +++ /dev/null @@ -1,178 +0,0 @@ -/* vi: set ts=2: - +-------------------+ Christian Schlittchen <corwin@amber.kn-bremen.de> - | | Enno Rehling <enno@eressea-pbem.de> - | Eressea PBEM host | Katja Zedel <katze@felidae.kn-bremen.de> - | (c) 1998 - 2001 | Henning Peters <faroul@beyond.kn-bremen.de> - | | Ingo Wilken <Ingo.Wilken@informatik.uni-oldenburg.de> - +-------------------+ Stefan Reich <reich@halbling.de> - - This program may not be used, modified or distributed - without prior permission by the authors of Eressea. -*/ -#include <config.h> -#include <kernel/eressea.h> - -#include <kernel/region.h> -#include <kernel/faction.h> -#include <kernel/unit.h> -#include <kernel/save.h> - -#include <util/base36.h> - -#include <stdio.h> -#include <string.h> -#include <stdlib.h> -#include <locale.h> - -static char * orderfile = NULL; - -static void mark_region(region * r, boolean mark) -{ - if (!r) return; - if (mark) fset(r, FL_MARK); - else freset(r, FL_MARK); -} - -static void -markup(FILE * in) -{ - char command[16]; - char choice[16]; - int x, y; - region * r; - boolean mark; - - while (!feof(in)) { - fscanf(in, "%s %s", choice, command); - if (choice[0]=='#') { - fgets(buf, sizeof(buf), in); - continue; - } - if (choice[0]=='e') return; /* end */ - if (choice[0]=='o') { - orderfile = strdup(command); - readorders(orderfile); - continue; - } - mark = (choice[0]=='a'); /* add/del */ - switch (command[0]) { - case 'r': - if (!strcmp(command, "region")) { - fscanf(in, "%d %d", &x, &y); - r = findregion(x, y); - if (r==NULL) - printf("region %d,%d not found\n", x, y); - else mark_region(r, mark); - } - break; - case 'a': - if (!strcmp(command, "area")) { - int radius; - fscanf(in, "%d %d %d", &x, &y, &radius); - for (r=regions;r!=NULL;r=r->next) { - if (koor_distance(x, y, r->x, r->y)<=radius) - mark_region(r, mark); - } - } else if (!strcmp(command, "all")) { - for (r==regions;r!=NULL;r=r->next) { - mark_region(r, mark); - } - } - break; - } - } -} - -static void -reduce(void) -{ - faction * f; - region ** rp = ®ions; - /* let's leak regions, big time. */ - for (f=factions;f;f=f->next) f->alive=0; - while (*rp) { - region * r = *rp; - if (fval(r, FL_MARK)) { - unit * u; - for (u=r->units;u;u=u->next) u->faction->alive=1; - rp=&r->next; - } - else *rp = r->next; - } -} - -static int -usage(void) -{ - fputs("usage: reduce [infile]\n", stderr); - fputs("\ninput file syntax:\n" - "\torders orderfile\n" - "\tadd all\n" - "\tadd region x y\n" - "\tadd area x y r\n" - "\tdel all\n" - "\tdel region x y\n" - "\tdel area x y r\n" - "\tend\n", stderr); - return -1; -} - -static void -writeorders(const char * orderfile) -{ - FILE * F = fopen(orderfile, "wt"); - faction * f; - if (F==NULL) return; - - /* let's leak regions, big time. */ - for (f=factions;f;f=f->next) { - region * r; - if (f->alive==0) continue; - fprintf(F, "PARTEI %s \"%s\"\n", itoa36(f->no), f->passw); - for (r=regions;r;r=r->next) { - if (fval(r, FL_MARK)) { - unit * u; - for (u=r->units;u;u=u->next) { - strlist * o; - fprintf(F, "EINHEIT %s\n", itoa36(u->no)); - for (o=u->orders;o;o=o->next) { - fputs(o->s, F); - } - } - } - } - } - fclose(F); -} - -int -main(int argc, char ** argv) -{ - char * datadir = "data"; - char outfile[64]; - FILE * in = stdin; - - setlocale(LC_ALL, ""); - - if (argc>1) { - in = fopen(argv[1], "rt+"); - if (in==NULL) return usage(); - } - - kernel_init(); - readgame(false); - - markup(in); - reduce(); - - remove_empty_factions(); - sprintf(outfile, "%s.cut", orderfile); - if (orderfile) { - writeorders(orderfile); - } - sprintf(outfile, "%s/%d.cut", datadir, turn); - writegame(outfile, 0); - - if (in!=stdin) fclose(in); - return 0; -} diff --git a/src/tools/reduce.txt b/src/tools/reduce.txt deleted file mode 100644 index 3e6395997..000000000 --- a/src/tools/reduce.txt +++ /dev/null @@ -1,10 +0,0 @@ -# we want this region: -add region 1023 999 -# everything within 2 of (985,1035): -add area 985 1035 2 -# but not the center itself: -del region 985 1035 -# that's all folks. -end -# will not be executed: -del all diff --git a/src/tools/syntax-test-messages.pl b/src/tools/syntax-test-messages.pl deleted file mode 100755 index fa7c7aa00..000000000 --- a/src/tools/syntax-test-messages.pl +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/perl -# vi:set ts=2: - -$errorcount = 0; -$linecount = 0; - -while(<>) { - $line = $_; - - $linecount++; - - if($line !~ /^\s*#/ && $line !~ /^\s*$/ && $line !~ /^\w+;(events|magic|errors|study|economy|battle|movement|production):[012345];(de|en);.+/) { - print "syntax error in line $linecount: $line\n"; - $errorcount++; - } -} - -if($errorcount > 0) { - print "$errorcount errors found.\n"; -} else { - print "No errors found.\n"; -} - diff --git a/src/tools/translator.c b/src/tools/translator.c deleted file mode 100644 index 1f13ba79c..000000000 --- a/src/tools/translator.c +++ /dev/null @@ -1,284 +0,0 @@ -/* vi: set ts=2: - +-------------------+ Christian Schlittchen <corwin@amber.kn-bremen.de> - | | Enno Rehling <enno@eressea-pbem.de> - | Eressea PBEM host | Katja Zedel <katze@felidae.kn-bremen.de> - | (c) 1998 - 2001 | Henning Peters <faroul@beyond.kn-bremen.de> - | | Ingo Wilken <Ingo.Wilken@informatik.uni-oldenburg.de> - +-------------------+ Stefan Reich <reich@halbling.de> - - This program may not be used, modified or distributed - without prior permission by the authors of Eressea. -*/ -#include <config.h> - -#include <message.h> -#include <crmessage.h> -#include <nrmessage.h> -#include <translation.h> - -#include <assert.h> -#include <ctype.h> -#include <stdarg.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -static const char * sample = "\"enno and $if($eq($i,0),\"nobody else\",$if($eq($i,1),\"another guy\",\"$int($i) other people\")).\""; - -void -test_translation(void) -{ - int x; - const char * c; - - c = translate_va("\"$name is a godlike $role.\"", "name role", "enno", "coder"); - if (c) puts(c); - - for (x=0;x!=4;++x) { - c = translate_va(sample, "i", x); - if (c) puts(c); - } -} - - -void -test_message(void) -{ - char buffer[1024]; - struct message_type * mt_example = mt_new_va("example", "subject:string", "number:int", "object:string", NULL); - message * msg = msg_create_va(mt_example, "enno", (void*)7, "autos"); - - tsf_register("string", &cr_string); - tsf_register("int", &cr_int); - - crt_register(mt_example); - nrt_register(mt_example, NULL, "\"$subject hat $int($number) $object\"", 0, "default"); - cr_render(msg, buffer); - puts(buffer); - nr_render(msg, NULL, buffer); - puts(buffer); -} - -#include <string.h> -#include <util/language.h> - -message * -new_message(struct faction * receiver, const char* sig, ...) - /* compatibility function, to keep the old function calls valid * - * all old messagetypes are converted into a message with ONLY string parameters, - * this function will convert given parameters to a string representation - * based on the signature - like render() once did */ -{ - const message_type * mtype; - va_list marker; - const char * signature = strchr(sig, '%'); - char buffer[128]; - int i=0; - const char * c = sig; - const char * args[16]; - - strncpy(buffer, sig, signature-sig); - buffer[signature-sig] = '\0'; - mtype = mt_find(buffer); - - if (!mtype) { - fprintf(stderr, "trying to create message of unknown type \"%s\"\n", buffer); - return NULL; - } - - while(*c!='%') buffer[i++] = *(c++); - buffer[i] = 0; - - va_start(marker, sig); - while (*c) { - char type; - char *p = buffer; - assert(*c=='%'); - type = *(++c); - /* - case 'f': (*ep)->type = IT_FACTION; break; - case 'u': (*ep)->type = IT_UNIT; break; - case 'r': (*ep)->type = IT_REGION; break; - case 'h': (*ep)->type = IT_SHIP; break; - case 'b': (*ep)->type = IT_BUILDING; break; - case 'X': (*ep)->type = IT_RESOURCETYPE; break; - case 'x': (*ep)->type = IT_RESOURCE; break; - case 't': (*ep)->type = IT_SKILL; break; - case 's': (*ep)->type = IT_STRING; break; - case 'i': (*ep)->type = IT_INT; break; - case 'd': (*ep)->type = IT_DIRECTION; break; - case 'S': (*ep)->type = IT_FSPECIAL; break; -*/ - c+=2; - while (*c && isalnum(*(unsigned char*)c)) *(p++) = *(c++); - *p = '\0'; - for (i=0;i!=mtype->nparameters;++i) { - if (!strcmp(buffer, mtype->pnames[i])) break; - } - assert(i!=mtype->nparameters || !"unknown parameter"); - - switch(type) { - case 's': - args[i] = va_arg(marker, const char *); - break; - case 'i': - itoa(va_arg(marker, int), buffer, sizeof(buffer)); - args[i] = strdup(buffer); - break; -#ifdef ERESSEA_KERNEL - case 'f': - args[i] = factionname(va_arg(marker, const struct faction*)); - break; - case 'u': - args[i] = unitname(va_arg(marker, const struct unit*)); - break; - case 'r': - args[i] = rname(va_arg(marker, const struct region*), receiver->lang); - break; - case 'h': - args[i] = shipname(va_arg(marker, const struct ship*)); - break; - case 'b': - args[i] = buildingname(va_arg(marker, const struct ship*)); - break; - case 'X': - args[i] = resourcename(va_arg(marker, const resource_type *), 0); - break; - case 'x': - args[i] = resourcename(oldresourcetype[(resource_t)va_arg(marker, resource_t)], 0); - break; - case 't': - args[i] = skillname(va_arg(marker, skill_t), NULL); - break; - case 'd': - args[i] = directions[i]; - break; - case 'S': -#endif - default: - args[i] = NULL; - } - } - return msg_create(mtype, args); -} - -static void -parse_message(char * b) -{ - char *m, *a, message[8192]; - char * name; - char * language; - struct locale * lang; - char * section = NULL; - int i, level = 0; - char * args[16]; - boolean f_symbol = false; - const struct message_type * mtype; - - /* skip comments */ - if (b[0]=='#' || b[0]==0) return; - - /* the name of this type */ - name = b; - while (*b && *b!=';') ++b; - if (!*b) return; - *b++ = 0; - - /* the section for this type */ - section = b; - while (*b && *b!=';' && *b!=':') ++b; - if (!strcmp(section, "none")) section=NULL; - - /* if available, the level for this type */ - if (*b==':') { - char * x; - *b++ = 0; - x = b; - while (*b && *b!=';') ++b; - level=atoi(x); - } - *b++ = 0; - - /* the locale */ - language = b; - while (*b && *b!=';') ++b; - *b++ = 0; - lang = find_locale(language); - if (!lang) lang = make_locale(language); - - /* parse the message */ - i = 0; - m = message; - *m++='\"'; - while (*b) { - switch (*b) { - case '{': - f_symbol = true; - a = ++b; - break; - case '}': - *b++ = '\0'; - args[i] = strdup(a); - sprintf(m, "$%s", args[i]); - m+=strlen(m); - i++; - f_symbol = false; - break; - case ' ': - if (f_symbol) { - a = ++b; - break; - } - /* fall-through intended */ - default: - if (!f_symbol) { - *m++ = *b++; - } else b++; - } - } - strcpy(m, "\""); - args[i] = NULL; - - /* add the messagetype */ - mtype = mt_register(mt_new(name, args)); - nrt_register(mtype, lang, message, 0, "default"); - crt_register(mtype); -} - -static void -read_messages(FILE * F) -{ - char buf[8192]; - while (fgets(buf, sizeof(buf), F)) { - buf[strlen(buf)-1] = 0; /* \n weg */ - parse_message(buf); - } -} - -static void -test_compat() -{ - char buffer[1024]; - FILE * F = fopen("res/de/messages.txt", "rt"); - message * msg; - if (F) { - read_messages(F); - fclose(F); - msg = new_message(NULL, "entrise%s:region", "Porzel (8,7)"); - if (cr_render(msg, buffer)==0) puts(buffer); - if (nr_render(msg, NULL, buffer)==0) puts(buffer); - } -} - -int -main(int argc, char**argv) -{ - translation_init(); - - test_message(); - test_translation(); - test_compat(); - - translation_done(); - return 0; -} diff --git a/src/tools/xmltest.c b/src/tools/xmltest.c deleted file mode 100644 index ebfcc572a..000000000 --- a/src/tools/xmltest.c +++ /dev/null @@ -1,66 +0,0 @@ -/* vi: set ts=2: - +-------------------+ Christian Schlittchen <corwin@amber.kn-bremen.de> - | | Enno Rehling <enno@eressea-pbem.de> - | Eressea PBEM host | Katja Zedel <katze@felidae.kn-bremen.de> - | (c) 1998 - 2001 | Henning Peters <faroul@beyond.kn-bremen.de> - | | Ingo Wilken <Ingo.Wilken@informatik.uni-oldenburg.de> - +-------------------+ Stefan Reich <reich@halbling.de> - - This program may not be used, modified or distributed - without prior permission by the authors of Eressea. -*/ -#include <config.h> -#include <xml.h> - -#include <stdio.h> -#include <string.h> - -static int -cbplaintext(const struct xml_stack * stack, const char * c) -{ - puts(c); - fflush(stdout); - return XML_OK; -} - -static int -cbtagend(const struct xml_stack * stack) -{ - xml_tag * tag = stack->tag; - printf("</%s>\n", tag->name); - fflush(stdout); - return XML_OK; -} - -static int -cbtagbegin(const struct xml_stack * stack) -{ - xml_tag * tag = stack->tag; - xml_attrib * xa= tag->attribs; - printf("<%s", tag->name); - while (xa) { - printf(" %s=\"%s\"", xa->name, xa->value); - xa = xa->next; - } - printf(">\n"); - fflush(stdout); - return XML_OK; -} - -int -main(int argc, char** argv) -{ - FILE * istream = stdin; - int nretval = -1; - if (argc>1) istream = fopen(argv[1], "rt+"); - if (istream) { - xml_callbacks xml_cb = { NULL }; - xml_cb.plaintext = cbplaintext; - xml_cb.tagbegin = cbtagbegin; - - nretval = xml_parse(istream, &xml_cb, NULL); - if (istream!=stdin) fclose(istream); - if (ostream!=stdout) fclose(ostream); - } - return nretval; -}