From: <mg...@us...> - 2007-10-19 17:07:09
|
Revision: 20 http://planeshift.svn.sourceforge.net/planeshift/?rev=20&view=rev Author: mgist Date: 2007-10-19 10:06:59 -0700 (Fri, 19 Oct 2007) Log Message: ----------- - Merged from personal branch to trunk. Added Paths: ----------- trunk/Jamfile.in trunk/Jamrules trunk/autogen.sh trunk/configure.ac trunk/data/ trunk/data/eedit/ trunk/data/eedit/camera.xml trunk/data/eedit/editeffect.xml trunk/data/eedit/eedit.xml trunk/data/eedit/error.xml trunk/data/eedit/filenavigation.xml trunk/data/eedit/fps.xml trunk/data/eedit/imagelist.xml trunk/data/eedit/inputbox/ trunk/data/eedit/inputbox/editanchor.xml trunk/data/eedit/inputbox/editanchorkeyframe.xml trunk/data/eedit/inputbox/float.xml trunk/data/eedit/inputbox/list.xml trunk/data/eedit/inputbox/newanchor.xml trunk/data/eedit/inputbox/newanchorkeyframe.xml trunk/data/eedit/inputbox/string.xml trunk/data/eedit/inputbox/vec3.xml trunk/data/eedit/inputbox/yesno.xml trunk/data/eedit/keys.xml trunk/data/eedit/keys_def.xml trunk/data/eedit/loadeffect.xml trunk/data/eedit/loadmap.xml trunk/data/eedit/position.xml trunk/data/eedit/render.xml trunk/data/eedit/shortcuts.xml trunk/data/eedit/target.xml trunk/data/effects/ trunk/data/effects/examples/ trunk/data/effects/examples/obj_quad.eff trunk/data/effects/examples/obj_spire.eff trunk/data/effects/examples/obj_star.eff trunk/data/effects/misc/ trunk/data/effects/misc/admin_location.eff trunk/data/effects/misc/admin_path_point.eff trunk/data/effects/misc/admin_waypoint.eff trunk/data/effects/misc/chatbubble.eff trunk/data/effects/misc/chatbubble_longphrase.eff trunk/data/effects/misc/chatbubble_metal.eff trunk/data/effects/misc/chatbubble_normal.eff trunk/data/effects/misc/chatbubble_shortphrase.eff trunk/data/effects/misc/entitylabel.eff trunk/data/effects/misc/marker.eff trunk/data/effects/misc/shadow.eff trunk/data/effects/misc/target.eff trunk/data/emotes.xml trunk/data/gui/ trunk/data/gui/actionlocation.xml trunk/data/gui/activemagicwindow.xml trunk/data/gui/bankwindow.xml trunk/data/gui/birth.xml trunk/data/gui/bookwriting.xml trunk/data/gui/borderlist.xml trunk/data/gui/buddy.xml trunk/data/gui/charcreate.xml trunk/data/gui/chardescwindow.xml trunk/data/gui/charpick.xml trunk/data/gui/chat.xml trunk/data/gui/chatmenu.xml trunk/data/gui/childhood.xml trunk/data/gui/configcamera.xml trunk/data/gui/configchat.xml trunk/data/gui/configchatfilter.xml trunk/data/gui/configchattabs.xml trunk/data/gui/configdetails.xml trunk/data/gui/configentityinter.xml trunk/data/gui/configentitylabels.xml trunk/data/gui/configkeys.xml trunk/data/gui/configmouse.xml trunk/data/gui/configpvp.xml trunk/data/gui/configsound.xml trunk/data/gui/configwindow.xml trunk/data/gui/containerdesc.xml trunk/data/gui/control.xml trunk/data/gui/control_styles.xml trunk/data/gui/craft.xml trunk/data/gui/credits_config.xml trunk/data/gui/creditswindow.xml trunk/data/gui/customwidgetslist.xml trunk/data/gui/detailwindow.xml trunk/data/gui/eedit.xml trunk/data/gui/exchange.xml trunk/data/gui/filenavigation.xml trunk/data/gui/fingering.xml trunk/data/gui/gameboard.xml trunk/data/gui/glyph.xml trunk/data/gui/gmaddeditaction.xml trunk/data/gui/gmguiwindow.xml trunk/data/gui/gmspawn.xml trunk/data/gui/group.xml trunk/data/gui/guildwindow.xml trunk/data/gui/helpwindow.xml trunk/data/gui/ignorewindow.xml trunk/data/gui/illumination.xml trunk/data/gui/infowindow.xml trunk/data/gui/interact.xml trunk/data/gui/inventory.xml trunk/data/gui/itemdesc.xml trunk/data/gui/lifeevents.xml trunk/data/gui/loadwindow.xml trunk/data/gui/loginwindow.xml trunk/data/gui/loot.xml trunk/data/gui/merchant.xml trunk/data/gui/money.xml trunk/data/gui/newoptions.xml trunk/data/gui/ok.xml trunk/data/gui/parents.xml trunk/data/gui/paths.xml trunk/data/gui/paws_generic.xml trunk/data/gui/petition.xml trunk/data/gui/petitiongm.xml trunk/data/gui/petstatwindow.xml trunk/data/gui/questnotebook.xml trunk/data/gui/questrewardwindow.xml trunk/data/gui/quitinfo.xml trunk/data/gui/readbook.xml trunk/data/gui/shortcutwindow.xml trunk/data/gui/skillwindow.xml trunk/data/gui/smallinventory.xml trunk/data/gui/spell_effect.xml trunk/data/gui/spellcancelwindow.xml trunk/data/gui/spellwindow.xml trunk/data/gui/splash.xml trunk/data/gui/styles.xml trunk/data/gui/summary.xml trunk/data/gui/tutorial.xml trunk/data/gui/widgetconfigwindow.xml trunk/data/gui/yesno.xml trunk/data/gui/zodiacs.xml trunk/data/guikeys.xml trunk/data/help.xml trunk/data/npcbehave.xml trunk/data/npcdefs.xml trunk/data/options/ trunk/data/options/camera_def.xml trunk/data/options/chat_def.xml trunk/data/options/chatbubbles.xml trunk/data/options/controls_def.xml trunk/data/options/entityinter_def.xml trunk/data/options/entitylabels_def.xml trunk/data/options/mouse_def.xml trunk/data/options/pvp_def.xml trunk/data/options/shortcutcommands_def.xml trunk/data/options/sound_def.xml trunk/data/phonics.xml trunk/data/prefs.xml trunk/data/pvp_regions.xml trunk/data/races/ trunk/data/races/descriptions.xml trunk/data/races/quickpaths.xml trunk/data/servers.xml trunk/data/ttf/ trunk/data/ttf/LiberationMono-Regular.ttf trunk/data/ttf/LiberationSans-Regular.ttf trunk/data/ttf/becker-m.ttf trunk/data/ttf/cupandtalon.ttf trunk/data/ttf/scurlock.ttf trunk/data/zoneinfo.xml trunk/docs/ trunk/docs/compiling.html trunk/docs/credit.txt trunk/docs/credits_AtomicBlue.txt trunk/docs/credits_CrystalBlue.txt trunk/docs/credits_MolecularBlue.txt trunk/docs/history.txt trunk/docs/history2003.txt trunk/docs/history2004.txt trunk/docs/history2005.txt trunk/docs/history2006.txt trunk/docs/svn_guidelines.txt trunk/eedit.cfg trunk/include/ trunk/include/msvc/ trunk/include/msvc/psconfig.h trunk/include/msvc/psstdint.h trunk/lang/ trunk/lang/cesky/ trunk/lang/cesky/data/ trunk/lang/cesky/data/help.xml trunk/lang/cesky/stringtable.xml trunk/lang/deutsch/ trunk/lang/deutsch/data/ trunk/lang/deutsch/data/help.xml trunk/lang/deutsch/stringtable.xml trunk/mk/ trunk/mk/autoconf/ trunk/mk/autoconf/ac_check_typedef.m4 trunk/mk/autoconf/ac_compile_check_sizeof.m4 trunk/mk/autoconf/ac_need_stdint_h.m4 trunk/mk/autoconf/cel.m4 trunk/mk/autoconf/checkbinutils.m4 trunk/mk/autoconf/checkbuild.m4 trunk/mk/autoconf/checkcommon.m4 trunk/mk/autoconf/checkcppunit.m4 trunk/mk/autoconf/checkcswin32libs.m4 trunk/mk/autoconf/checklib.m4 trunk/mk/autoconf/checklibtool.m4 trunk/mk/autoconf/checkopengl.m4 trunk/mk/autoconf/checkpic.m4 trunk/mk/autoconf/checkprog.m4 trunk/mk/autoconf/checkpthread.m4 trunk/mk/autoconf/checkpython.m4 trunk/mk/autoconf/checktt2.m4 trunk/mk/autoconf/compiler.m4 trunk/mk/autoconf/config.guess trunk/mk/autoconf/config.sub trunk/mk/autoconf/crystal.m4 trunk/mk/autoconf/cs_check_host.m4 trunk/mk/autoconf/csbuild.m4 trunk/mk/autoconf/diagnose.m4 trunk/mk/autoconf/embed.m4 trunk/mk/autoconf/emit.m4 trunk/mk/autoconf/headercache.m4 trunk/mk/autoconf/install-sh trunk/mk/autoconf/installdirs.m4 trunk/mk/autoconf/jam.m4 trunk/mk/autoconf/jamcache.m4 trunk/mk/autoconf/libcurl.m4 trunk/mk/autoconf/makecache.m4 trunk/mk/autoconf/mkdir.m4 trunk/mk/autoconf/packageinfo.m4 trunk/mk/autoconf/path.m4 trunk/mk/autoconf/pkg.m4 trunk/mk/autoconf/progver.m4 trunk/mk/autoconf/qualify.m4 trunk/mk/autoconf/split.m4 trunk/mk/autoconf/textcache.m4 trunk/mk/autoconf/trim.m4 trunk/mk/autoconf/type_socklen_t.m4 trunk/mk/autoconf/warnings.m4 trunk/mk/jam/ trunk/mk/jam/application.jam trunk/mk/jam/assembler.jam trunk/mk/jam/bisonflex.jam trunk/mk/jam/build.jam trunk/mk/jam/cel_staticplugins_msvc.jam trunk/mk/jam/clean.jam trunk/mk/jam/compiler.jam trunk/mk/jam/crystalspace_staticplugins_msvc.jam trunk/mk/jam/docs.jam trunk/mk/jam/dump.jam trunk/mk/jam/flags.jam trunk/mk/jam/groups.jam trunk/mk/jam/help.jam trunk/mk/jam/helper.jam trunk/mk/jam/icons.jam trunk/mk/jam/install.jam trunk/mk/jam/jamcompatibility.jam trunk/mk/jam/library.jam trunk/mk/jam/macosx.jam trunk/mk/jam/msvcgen.jam trunk/mk/jam/objectivec.jam trunk/mk/jam/objects.jam trunk/mk/jam/options.jam trunk/mk/jam/plugin.jam trunk/mk/jam/property.jam trunk/mk/jam/pymarshall.jam trunk/mk/jam/pythmod.jam trunk/mk/jam/resource.jam trunk/mk/jam/static.jam trunk/mk/jam/strip.jam trunk/mk/jam/subdir.jam trunk/mk/jam/swig.jam trunk/mk/jam/unittest.jam trunk/mk/jam/unix.jam trunk/mk/jam/variant.jam trunk/mk/jam/win32.jam trunk/mk/msvc/ trunk/mk/msvc/appeedit.manifest trunk/mk/msvc/appeedit.rc trunk/mk/msvc/apppsclient.manifest trunk/mk/msvc/apppsclient.rc trunk/mk/msvc/apppsclient_static.manifest trunk/mk/msvc/apppsclient_static.rc trunk/mk/msvc/apppsclient_static_staticuse_CEL.cpp trunk/mk/msvc/apppsclient_static_staticuse_CRYSTAL.cpp trunk/mk/msvc/apppsnpcclient.manifest trunk/mk/msvc/apppsnpcclient.rc trunk/mk/msvc/apppsnpcclient_static.manifest trunk/mk/msvc/apppsnpcclient_static.rc trunk/mk/msvc/apppsnpcclient_static_staticuse.cpp trunk/mk/msvc/apppsnpcclient_static_staticuse_CEL.cpp trunk/mk/msvc/apppsnpcclient_static_staticuse_CRYSTAL.cpp trunk/mk/msvc/apppsserver.manifest trunk/mk/msvc/apppsserver.rc trunk/mk/msvc/apppsserver_static.manifest trunk/mk/msvc/apppsserver_static.rc trunk/mk/msvc/apppsserver_static_staticuse.cpp trunk/mk/msvc/apppsserver_static_staticuse_CEL.cpp trunk/mk/msvc/apppsserver_static_staticuse_CRYSTAL.cpp trunk/mk/msvc/dbmysqlstatic_msvc.jam trunk/mk/msvc/libdbmysql_staticreg.cpp trunk/mk/msvc/plgdbmysql.rc trunk/mk/msvc7/ trunk/mk/msvc7/appeedit.vcproj trunk/mk/msvc7/apppsclient.vcproj trunk/mk/msvc7/apppsclient_static.vcproj trunk/mk/msvc7/apppsnpcclient.vcproj trunk/mk/msvc7/apppsnpcclient_static.vcproj trunk/mk/msvc7/apppsserver.vcproj trunk/mk/msvc7/apppsserver_static.vcproj trunk/mk/msvc7/grpall_psminimal.vcproj trunk/mk/msvc7/grpall_psminimalstatic.vcproj trunk/mk/msvc7/grpall_psstatic.vcproj trunk/mk/msvc7/grpall_pstypical.vcproj trunk/mk/msvc7/grpapps_psminimal.vcproj trunk/mk/msvc7/grpapps_psminimalstatic.vcproj trunk/mk/msvc7/grpapps_psstatic.vcproj trunk/mk/msvc7/grpapps_pstypical.vcproj trunk/mk/msvc7/grpclient_psminimal.vcproj trunk/mk/msvc7/grpclient_psminimalstatic.vcproj trunk/mk/msvc7/grpclient_psstatic.vcproj trunk/mk/msvc7/grpclient_pstypical.vcproj trunk/mk/msvc7/grpclient_static_psminimal.vcproj trunk/mk/msvc7/grpclient_static_psminimalstatic.vcproj trunk/mk/msvc7/grpclient_static_psstatic.vcproj trunk/mk/msvc7/grpclient_static_pstypical.vcproj trunk/mk/msvc7/grplibs_psminimal.vcproj trunk/mk/msvc7/grplibs_psminimalstatic.vcproj trunk/mk/msvc7/grplibs_psstatic.vcproj trunk/mk/msvc7/grplibs_pstypical.vcproj trunk/mk/msvc7/grpplugins_psminimal.vcproj trunk/mk/msvc7/grpplugins_psminimalstatic.vcproj trunk/mk/msvc7/grpplugins_psstatic.vcproj trunk/mk/msvc7/grpplugins_pstypical.vcproj trunk/mk/msvc7/grpserver_psminimal.vcproj trunk/mk/msvc7/grpserver_psminimalstatic.vcproj trunk/mk/msvc7/grpserver_psstatic.vcproj trunk/mk/msvc7/grpserver_pstypical.vcproj trunk/mk/msvc7/grpserver_static_psminimal.vcproj trunk/mk/msvc7/grpserver_static_psminimalstatic.vcproj trunk/mk/msvc7/grpserver_static_psstatic.vcproj trunk/mk/msvc7/grpserver_static_pstypical.vcproj trunk/mk/msvc7/grptools_psminimal.vcproj trunk/mk/msvc7/grptools_psminimalstatic.vcproj trunk/mk/msvc7/grptools_psstatic.vcproj trunk/mk/msvc7/grptools_pstypical.vcproj trunk/mk/msvc7/libbulkobjects.vcproj trunk/mk/msvc7/libdbmysqlstatic.vcproj trunk/mk/msvc7/libeffects.vcproj trunk/mk/msvc7/libfparser.vcproj trunk/mk/msvc7/libgui.vcproj trunk/mk/msvc7/libpaws.vcproj trunk/mk/msvc7/libpsengine.vcproj trunk/mk/msvc7/libpsnet.vcproj trunk/mk/msvc7/libpsrpgrules.vcproj trunk/mk/msvc7/libpssound.vcproj trunk/mk/msvc7/libpsutil.vcproj trunk/mk/msvc7/plgdbmysql.vcproj trunk/mk/msvc7/wkspsminimal.sln trunk/mk/msvc7/wkspsminimalstatic.sln trunk/mk/msvc7/wkspsstatic.sln trunk/mk/msvc7/wkspstypical.sln trunk/mk/msvc71/ trunk/mk/msvc71/appeedit.vcproj trunk/mk/msvc71/apppsclient.vcproj trunk/mk/msvc71/apppsclient_static.vcproj trunk/mk/msvc71/apppsnpcclient.vcproj trunk/mk/msvc71/apppsnpcclient_static.vcproj trunk/mk/msvc71/apppsserver.vcproj trunk/mk/msvc71/apppsserver_static.vcproj trunk/mk/msvc71/grpall_psminimal.vcproj trunk/mk/msvc71/grpall_psminimalstatic.vcproj trunk/mk/msvc71/grpall_psstatic.vcproj trunk/mk/msvc71/grpall_pstypical.vcproj trunk/mk/msvc71/grpapps_psminimal.vcproj trunk/mk/msvc71/grpapps_psminimalstatic.vcproj trunk/mk/msvc71/grpapps_psstatic.vcproj trunk/mk/msvc71/grpapps_pstypical.vcproj trunk/mk/msvc71/grpclient_psminimal.vcproj trunk/mk/msvc71/grpclient_psminimalstatic.vcproj trunk/mk/msvc71/grpclient_psstatic.vcproj trunk/mk/msvc71/grpclient_pstypical.vcproj trunk/mk/msvc71/grpclient_static_psminimal.vcproj trunk/mk/msvc71/grpclient_static_psminimalstatic.vcproj trunk/mk/msvc71/grpclient_static_psstatic.vcproj trunk/mk/msvc71/grpclient_static_pstypical.vcproj trunk/mk/msvc71/grplibs_psminimal.vcproj trunk/mk/msvc71/grplibs_psminimalstatic.vcproj trunk/mk/msvc71/grplibs_psstatic.vcproj trunk/mk/msvc71/grplibs_pstypical.vcproj trunk/mk/msvc71/grpplugins_psminimal.vcproj trunk/mk/msvc71/grpplugins_psminimalstatic.vcproj trunk/mk/msvc71/grpplugins_psstatic.vcproj trunk/mk/msvc71/grpplugins_pstypical.vcproj trunk/mk/msvc71/grpserver_psminimal.vcproj trunk/mk/msvc71/grpserver_psminimalstatic.vcproj trunk/mk/msvc71/grpserver_psstatic.vcproj trunk/mk/msvc71/grpserver_pstypical.vcproj trunk/mk/msvc71/grpserver_static_psminimal.vcproj trunk/mk/msvc71/grpserver_static_psminimalstatic.vcproj trunk/mk/msvc71/grpserver_static_psstatic.vcproj trunk/mk/msvc71/grpserver_static_pstypical.vcproj trunk/mk/msvc71/grptools_psminimal.vcproj trunk/mk/msvc71/grptools_psminimalstatic.vcproj trunk/mk/msvc71/grptools_psstatic.vcproj trunk/mk/msvc71/grptools_pstypical.vcproj trunk/mk/msvc71/libbulkobjects.vcproj trunk/mk/msvc71/libdbmysqlstatic.vcproj trunk/mk/msvc71/libeffects.vcproj trunk/mk/msvc71/libfparser.vcproj trunk/mk/msvc71/libgui.vcproj trunk/mk/msvc71/libpaws.vcproj trunk/mk/msvc71/libpsengine.vcproj trunk/mk/msvc71/libpsnet.vcproj trunk/mk/msvc71/libpsrpgrules.vcproj trunk/mk/msvc71/libpssound.vcproj trunk/mk/msvc71/libpsutil.vcproj trunk/mk/msvc71/plgdbmysql.vcproj trunk/mk/msvc71/wkspsminimal.sln trunk/mk/msvc71/wkspsminimalstatic.sln trunk/mk/msvc71/wkspsstatic.sln trunk/mk/msvc71/wkspstypical.sln trunk/mk/msvc8/ trunk/mk/msvc8/appeedit.vcproj trunk/mk/msvc8/apppsclient.vcproj trunk/mk/msvc8/apppsclient_static.vcproj trunk/mk/msvc8/apppsnpcclient.vcproj trunk/mk/msvc8/apppsnpcclient_static.vcproj trunk/mk/msvc8/apppsserver.vcproj trunk/mk/msvc8/apppsserver_static.vcproj trunk/mk/msvc8/grpall_psminimal.vcproj trunk/mk/msvc8/grpall_psminimalstatic.vcproj trunk/mk/msvc8/grpall_psstatic.vcproj trunk/mk/msvc8/grpall_pstypical.vcproj trunk/mk/msvc8/grpapps_psminimal.vcproj trunk/mk/msvc8/grpapps_psminimalstatic.vcproj trunk/mk/msvc8/grpapps_psstatic.vcproj trunk/mk/msvc8/grpapps_pstypical.vcproj trunk/mk/msvc8/grpclient_psminimal.vcproj trunk/mk/msvc8/grpclient_psminimalstatic.vcproj trunk/mk/msvc8/grpclient_psstatic.vcproj trunk/mk/msvc8/grpclient_pstypical.vcproj trunk/mk/msvc8/grpclient_static_psminimal.vcproj trunk/mk/msvc8/grpclient_static_psminimalstatic.vcproj trunk/mk/msvc8/grpclient_static_psstatic.vcproj trunk/mk/msvc8/grpclient_static_pstypical.vcproj trunk/mk/msvc8/grplibs_psminimal.vcproj trunk/mk/msvc8/grplibs_psminimalstatic.vcproj trunk/mk/msvc8/grplibs_psstatic.vcproj trunk/mk/msvc8/grplibs_pstypical.vcproj trunk/mk/msvc8/grpplugins_psminimal.vcproj trunk/mk/msvc8/grpplugins_psminimalstatic.vcproj trunk/mk/msvc8/grpplugins_psstatic.vcproj trunk/mk/msvc8/grpplugins_pstypical.vcproj trunk/mk/msvc8/grpserver_psminimal.vcproj trunk/mk/msvc8/grpserver_psminimalstatic.vcproj trunk/mk/msvc8/grpserver_psstatic.vcproj trunk/mk/msvc8/grpserver_pstypical.vcproj trunk/mk/msvc8/grpserver_static_psminimal.vcproj trunk/mk/msvc8/grpserver_static_psminimalstatic.vcproj trunk/mk/msvc8/grpserver_static_psstatic.vcproj trunk/mk/msvc8/grpserver_static_pstypical.vcproj trunk/mk/msvc8/grptools_psminimal.vcproj trunk/mk/msvc8/grptools_psminimalstatic.vcproj trunk/mk/msvc8/grptools_psstatic.vcproj trunk/mk/msvc8/grptools_pstypical.vcproj trunk/mk/msvc8/libbulkobjects.vcproj trunk/mk/msvc8/libdbmysqlstatic.vcproj trunk/mk/msvc8/libeffects.vcproj trunk/mk/msvc8/libfparser.vcproj trunk/mk/msvc8/libgui.vcproj trunk/mk/msvc8/libpaws.vcproj trunk/mk/msvc8/libpsengine.vcproj trunk/mk/msvc8/libpsnet.vcproj trunk/mk/msvc8/libpsrpgrules.vcproj trunk/mk/msvc8/libpssound.vcproj trunk/mk/msvc8/libpsutil.vcproj trunk/mk/msvc8/plgdbmysql.vcproj trunk/mk/msvc8/wkspsminimal.sln trunk/mk/msvc8/wkspsminimalstatic.sln trunk/mk/msvc8/wkspsstatic.sln trunk/mk/msvc8/wkspstypical.sln trunk/mk/msvcgen/ trunk/mk/msvcgen/control.tlib trunk/mk/msvcgen/custom.cslib trunk/mk/msvcgen/custom2.cslib trunk/mk/msvcgen/custom3.cslib trunk/mk/msvcgen/macros.tlib trunk/mk/msvcgen/project6.tlib trunk/mk/msvcgen/project7.tlib trunk/mk/msvcgen/projectx6.tlib trunk/mk/msvcgen/projectx7.tlib trunk/mk/msvcgen/workspace6.tlib trunk/mk/msvcgen/workspace7.tlib trunk/mk/msvcgen/workspaces.jam trunk/npcclient.cfg trunk/planeshift.cfg trunk/psclient.cfg trunk/psserver.cfg trunk/src/ trunk/src/Jamfile trunk/src/client/ trunk/src/client/Jamfile trunk/src/client/actionhandler.cpp trunk/src/client/actionhandler.h trunk/src/client/authentclient.cpp trunk/src/client/authentclient.h trunk/src/client/charapp.cpp trunk/src/client/charapp.h trunk/src/client/chatbubbles.cpp trunk/src/client/chatbubbles.h trunk/src/client/clientcachemanager.cpp trunk/src/client/clientcachemanager.h trunk/src/client/clientvitals.cpp trunk/src/client/clientvitals.h trunk/src/client/cmdadmin.cpp trunk/src/client/cmdadmin.h trunk/src/client/cmdgroups.cpp trunk/src/client/cmdgroups.h trunk/src/client/cmdguilds.cpp trunk/src/client/cmdguilds.h trunk/src/client/cmdusers.cpp trunk/src/client/cmdusers.h trunk/src/client/cmdutil.cpp trunk/src/client/cmdutil.h trunk/src/client/entitylabels.cpp trunk/src/client/entitylabels.h trunk/src/client/globals.h trunk/src/client/gui/ trunk/src/client/gui/Jamfile trunk/src/client/gui/chatwindow.cpp trunk/src/client/gui/chatwindow.h trunk/src/client/gui/inventorywindow.cpp trunk/src/client/gui/inventorywindow.h trunk/src/client/gui/pawsactionlocationwindow.cpp trunk/src/client/gui/pawsactionlocationwindow.h trunk/src/client/gui/pawsactivemagicwindow.cpp trunk/src/client/gui/pawsactivemagicwindow.h trunk/src/client/gui/pawsbankwindow.cpp trunk/src/client/gui/pawsbankwindow.h trunk/src/client/gui/pawsbookreadingwindow.cpp trunk/src/client/gui/pawsbookreadingwindow.h trunk/src/client/gui/pawsbuddy.cpp trunk/src/client/gui/pawsbuddy.h trunk/src/client/gui/pawscharbirth.cpp trunk/src/client/gui/pawscharbirth.h trunk/src/client/gui/pawscharcreatemain.cpp trunk/src/client/gui/pawscharcreatemain.h trunk/src/client/gui/pawschardescription.cpp trunk/src/client/gui/pawschardescription.h trunk/src/client/gui/pawscharparents.cpp trunk/src/client/gui/pawscharparents.h trunk/src/client/gui/pawscharpick.cpp trunk/src/client/gui/pawscharpick.h trunk/src/client/gui/pawschild.cpp trunk/src/client/gui/pawschild.h trunk/src/client/gui/pawsconfigcamera.cpp trunk/src/client/gui/pawsconfigcamera.h trunk/src/client/gui/pawsconfigchat.cpp trunk/src/client/gui/pawsconfigchat.h trunk/src/client/gui/pawsconfigchatfilter.cpp trunk/src/client/gui/pawsconfigchatfilter.h trunk/src/client/gui/pawsconfigchattabs.cpp trunk/src/client/gui/pawsconfigchattabs.h trunk/src/client/gui/pawsconfigdetails.cpp trunk/src/client/gui/pawsconfigdetails.h trunk/src/client/gui/pawsconfigentityinter.cpp trunk/src/client/gui/pawsconfigentityinter.h trunk/src/client/gui/pawsconfigentitylabels.cpp trunk/src/client/gui/pawsconfigentitylabels.h trunk/src/client/gui/pawsconfigkeys.cpp trunk/src/client/gui/pawsconfigkeys.h trunk/src/client/gui/pawsconfigmouse.cpp trunk/src/client/gui/pawsconfigmouse.h trunk/src/client/gui/pawsconfigpvp.cpp trunk/src/client/gui/pawsconfigpvp.h trunk/src/client/gui/pawsconfigsound.cpp trunk/src/client/gui/pawsconfigsound.h trunk/src/client/gui/pawsconfigwindow.cpp trunk/src/client/gui/pawsconfigwindow.h trunk/src/client/gui/pawscontainerdescwindow.cpp trunk/src/client/gui/pawscontainerdescwindow.h trunk/src/client/gui/pawscontrolwindow.cpp trunk/src/client/gui/pawscontrolwindow.h trunk/src/client/gui/pawscraft.cpp trunk/src/client/gui/pawscraft.h trunk/src/client/gui/pawscreditswindow.cpp trunk/src/client/gui/pawscreditswindow.h trunk/src/client/gui/pawsdetailwindow.cpp trunk/src/client/gui/pawsdetailwindow.h trunk/src/client/gui/pawsexchangewindow.cpp trunk/src/client/gui/pawsexchangewindow.h trunk/src/client/gui/pawsgameboard.cpp trunk/src/client/gui/pawsgameboard.h trunk/src/client/gui/pawsglyphwindow.cpp trunk/src/client/gui/pawsglyphwindow.h trunk/src/client/gui/pawsgmaction.cpp trunk/src/client/gui/pawsgmaction.h trunk/src/client/gui/pawsgmgui.cpp trunk/src/client/gui/pawsgmgui.h trunk/src/client/gui/pawsgmspawn.cpp trunk/src/client/gui/pawsgmspawn.h trunk/src/client/gui/pawsgroupwindow.cpp trunk/src/client/gui/pawsgroupwindow.h trunk/src/client/gui/pawsguildwindow.cpp trunk/src/client/gui/pawsguildwindow.h trunk/src/client/gui/pawshelp.cpp trunk/src/client/gui/pawshelp.h trunk/src/client/gui/pawsignore.cpp trunk/src/client/gui/pawsignore.h trunk/src/client/gui/pawsilluminationwindow.cpp trunk/src/client/gui/pawsilluminationwindow.h trunk/src/client/gui/pawsinfowindow.cpp trunk/src/client/gui/pawsinfowindow.h trunk/src/client/gui/pawsinteractwindow.cpp trunk/src/client/gui/pawsinteractwindow.h trunk/src/client/gui/pawsinventorydollview.cpp trunk/src/client/gui/pawsinventorydollview.h trunk/src/client/gui/pawsitemdescriptionwindow.cpp trunk/src/client/gui/pawsitemdescriptionwindow.h trunk/src/client/gui/pawslife.cpp trunk/src/client/gui/pawslife.h trunk/src/client/gui/pawsloading.cpp trunk/src/client/gui/pawsloading.h trunk/src/client/gui/pawsloginwindow.cpp trunk/src/client/gui/pawsloginwindow.h trunk/src/client/gui/pawslootwindow.cpp trunk/src/client/gui/pawslootwindow.h trunk/src/client/gui/pawsmerchantwindow.cpp trunk/src/client/gui/pawsmerchantwindow.h trunk/src/client/gui/pawsmoney.cpp trunk/src/client/gui/pawsmoney.h trunk/src/client/gui/pawspath.cpp trunk/src/client/gui/pawspath.h trunk/src/client/gui/pawspetitiongmwindow.cpp trunk/src/client/gui/pawspetitiongmwindow.h trunk/src/client/gui/pawspetitionwindow.cpp trunk/src/client/gui/pawspetitionwindow.h trunk/src/client/gui/pawspetstatwindow.cpp trunk/src/client/gui/pawspetstatwindow.h trunk/src/client/gui/pawsquestrewardwindow.cpp trunk/src/client/gui/pawsquestrewardwindow.h trunk/src/client/gui/pawsquestwindow.cpp trunk/src/client/gui/pawsquestwindow.h trunk/src/client/gui/pawsquitinfobox.cpp trunk/src/client/gui/pawsquitinfobox.h trunk/src/client/gui/pawsskillwindow.cpp trunk/src/client/gui/pawsskillwindow.h trunk/src/client/gui/pawsslot.cpp trunk/src/client/gui/pawsslot.h trunk/src/client/gui/pawssmallinventory.cpp trunk/src/client/gui/pawssmallinventory.h trunk/src/client/gui/pawsspellbookwindow.cpp trunk/src/client/gui/pawsspellbookwindow.h trunk/src/client/gui/pawsspellcancelwindow.cpp trunk/src/client/gui/pawsspellcancelwindow.h trunk/src/client/gui/pawssplashwindow.cpp trunk/src/client/gui/pawssplashwindow.h trunk/src/client/gui/pawssummary.cpp trunk/src/client/gui/pawssummary.h trunk/src/client/gui/pawstutorialwindow.cpp trunk/src/client/gui/pawstutorialwindow.h trunk/src/client/gui/pawswritingwindow.cpp trunk/src/client/gui/pawswritingwindow.h trunk/src/client/gui/psmainwidget.cpp trunk/src/client/gui/psmainwidget.h trunk/src/client/gui/shortcutwindow.cpp trunk/src/client/gui/shortcutwindow.h trunk/src/client/guihandler.cpp trunk/src/client/guihandler.h trunk/src/client/iclient/ trunk/src/client/iclient/isoundmngr.h trunk/src/client/iclient/netmanager.h trunk/src/client/modehandler.cpp trunk/src/client/modehandler.h trunk/src/client/pscal3dcallback.cpp trunk/src/client/pscal3dcallback.h trunk/src/client/pscamera.cpp trunk/src/client/pscamera.h trunk/src/client/pscelclient.cpp trunk/src/client/pscelclient.h trunk/src/client/pscharcontrol.cpp trunk/src/client/pscharcontrol.h trunk/src/client/psclientchar.cpp trunk/src/client/psclientchar.h trunk/src/client/psclientdr.cpp trunk/src/client/psclientdr.h trunk/src/client/psengine.cpp trunk/src/client/psengine.h trunk/src/client/psinventorycache.cpp trunk/src/client/psinventorycache.h trunk/src/client/psmovement.cpp trunk/src/client/psmovement.h trunk/src/client/psnetmanager.cpp trunk/src/client/psnetmanager.h trunk/src/client/psoptions.cpp trunk/src/client/psoptions.h trunk/src/client/psslotmgr.cpp trunk/src/client/psslotmgr.h trunk/src/client/questionclient.cpp trunk/src/client/questionclient.h trunk/src/client/shadowmanager.cpp trunk/src/client/shadowmanager.h trunk/src/client/sound/ trunk/src/client/sound/Jamfile trunk/src/client/sound/pssoundmngr.cpp trunk/src/client/sound/pssoundmngr.h trunk/src/client/weather.cpp trunk/src/client/weather.h trunk/src/client/win32/ trunk/src/client/win32/mdump.cpp trunk/src/client/win32/mdump.h trunk/src/client/zonehandler.cpp trunk/src/client/zonehandler.h trunk/src/common/ trunk/src/common/Jamfile trunk/src/common/effects/ trunk/src/common/effects/Jamfile trunk/src/common/effects/pseffect.cpp trunk/src/common/effects/pseffect.h trunk/src/common/effects/pseffect2drenderer.cpp trunk/src/common/effects/pseffect2drenderer.h trunk/src/common/effects/pseffectanchor.cpp trunk/src/common/effects/pseffectanchor.h trunk/src/common/effects/pseffectanchorbasic.cpp trunk/src/common/effects/pseffectanchorbasic.h trunk/src/common/effects/pseffectanchorsocket.cpp trunk/src/common/effects/pseffectanchorsocket.h trunk/src/common/effects/pseffectanchorspline.cpp trunk/src/common/effects/pseffectanchorspline.h trunk/src/common/effects/pseffectmanager.cpp trunk/src/common/effects/pseffectmanager.h trunk/src/common/effects/pseffectobj.cpp trunk/src/common/effects/pseffectobj.h trunk/src/common/effects/pseffectobjdecal.cpp trunk/src/common/effects/pseffectobjdecal.h trunk/src/common/effects/pseffectobjmesh.cpp trunk/src/common/effects/pseffectobjmesh.h trunk/src/common/effects/pseffectobjparticles.cpp trunk/src/common/effects/pseffectobjparticles.h trunk/src/common/effects/pseffectobjquad.cpp trunk/src/common/effects/pseffectobjquad.h trunk/src/common/effects/pseffectobjsimpmesh.cpp trunk/src/common/effects/pseffectobjsimpmesh.h trunk/src/common/effects/pseffectobjsound.cpp trunk/src/common/effects/pseffectobjsound.h trunk/src/common/effects/pseffectobjspire.cpp trunk/src/common/effects/pseffectobjspire.h trunk/src/common/effects/pseffectobjstar.cpp trunk/src/common/effects/pseffectobjstar.h trunk/src/common/effects/pseffectobjtext.cpp trunk/src/common/effects/pseffectobjtext.h trunk/src/common/effects/pseffectobjtext2d.cpp trunk/src/common/effects/pseffectobjtext2d.h trunk/src/common/effects/pseffectobjtextable.h trunk/src/common/effects/pseffectobjtrail.cpp trunk/src/common/effects/pseffectobjtrail.h trunk/src/common/engine/ trunk/src/common/engine/Jamfile trunk/src/common/engine/celbase.cpp trunk/src/common/engine/celbase.h trunk/src/common/engine/materialmanager.cpp trunk/src/common/engine/materialmanager.h trunk/src/common/engine/netpersist.cpp trunk/src/common/engine/netpersist.h trunk/src/common/engine/psworld.cpp trunk/src/common/engine/psworld.h trunk/src/common/net/ trunk/src/common/net/Jamfile trunk/src/common/net/adminmessage.cpp trunk/src/common/net/adminmessage.h trunk/src/common/net/charmessages.cpp trunk/src/common/net/charmessages.h trunk/src/common/net/clientmsghandler.cpp trunk/src/common/net/clientmsghandler.h trunk/src/common/net/cmdbase.cpp trunk/src/common/net/cmdbase.h trunk/src/common/net/cmdhandler.cpp trunk/src/common/net/cmdhandler.h trunk/src/common/net/connection.cpp trunk/src/common/net/connection.h trunk/src/common/net/message.h trunk/src/common/net/messages.cpp trunk/src/common/net/messages.h trunk/src/common/net/msghandler.cpp trunk/src/common/net/msghandler.h trunk/src/common/net/netbase.cpp trunk/src/common/net/netbase.h trunk/src/common/net/netinfos.cpp trunk/src/common/net/netinfos.h trunk/src/common/net/netpacket.cpp trunk/src/common/net/netpacket.h trunk/src/common/net/netprofile.cpp trunk/src/common/net/netprofile.h trunk/src/common/net/npcmessages.cpp trunk/src/common/net/npcmessages.h trunk/src/common/net/packing.h trunk/src/common/net/pstypes.h trunk/src/common/net/serverpinger.cpp trunk/src/common/net/serverpinger.h trunk/src/common/net/sockuni.h trunk/src/common/net/sockwin.h trunk/src/common/net/subscriber.h trunk/src/common/paws/ trunk/src/common/paws/Jamfile trunk/src/common/paws/pawsborder.cpp trunk/src/common/paws/pawsborder.h trunk/src/common/paws/pawsbutton.cpp trunk/src/common/paws/pawsbutton.h trunk/src/common/paws/pawscheckbox.cpp trunk/src/common/paws/pawscheckbox.h trunk/src/common/paws/pawscombo.cpp trunk/src/common/paws/pawscombo.h trunk/src/common/paws/pawscombopromptwindow.cpp trunk/src/common/paws/pawscombopromptwindow.h trunk/src/common/paws/pawscrollbar.cpp trunk/src/common/paws/pawscrollbar.h trunk/src/common/paws/pawsfilenavigation.cpp trunk/src/common/paws/pawsfilenavigation.h trunk/src/common/paws/pawsframedrawable.cpp trunk/src/common/paws/pawsframedrawable.h trunk/src/common/paws/pawsgenericview.cpp trunk/src/common/paws/pawsgenericview.h trunk/src/common/paws/pawsimagedrawable.cpp trunk/src/common/paws/pawsimagedrawable.h trunk/src/common/paws/pawskeyselectbox.cpp trunk/src/common/paws/pawskeyselectbox.h trunk/src/common/paws/pawslistbox.cpp trunk/src/common/paws/pawslistbox.h trunk/src/common/paws/pawsmainwidget.cpp trunk/src/common/paws/pawsmainwidget.h trunk/src/common/paws/pawsmanager.cpp trunk/src/common/paws/pawsmanager.h trunk/src/common/paws/pawsmenu.cpp trunk/src/common/paws/pawsmenu.h trunk/src/common/paws/pawsmouse.cpp trunk/src/common/paws/pawsmouse.h trunk/src/common/paws/pawsnumberpromptwindow.cpp trunk/src/common/paws/pawsnumberpromptwindow.h trunk/src/common/paws/pawsobjectview.cpp trunk/src/common/paws/pawsobjectview.h trunk/src/common/paws/pawsokbox.cpp trunk/src/common/paws/pawsokbox.h trunk/src/common/paws/pawsprefmanager.cpp trunk/src/common/paws/pawsprefmanager.h trunk/src/common/paws/pawsprogressbar.cpp trunk/src/common/paws/pawsprogressbar.h trunk/src/common/paws/pawspromptwindow.cpp trunk/src/common/paws/pawspromptwindow.h trunk/src/common/paws/pawsradio.cpp trunk/src/common/paws/pawsradio.h trunk/src/common/paws/pawsscript.cpp trunk/src/common/paws/pawsscript.h trunk/src/common/paws/pawsselector.cpp trunk/src/common/paws/pawsselector.h trunk/src/common/paws/pawssimplewindow.cpp trunk/src/common/paws/pawssimplewindow.h trunk/src/common/paws/pawsspinbox.cpp trunk/src/common/paws/pawsspinbox.h trunk/src/common/paws/pawsstringpromptwindow.cpp trunk/src/common/paws/pawsstringpromptwindow.h trunk/src/common/paws/pawsstyles.cpp trunk/src/common/paws/pawsstyles.h trunk/src/common/paws/pawstabwindow.cpp trunk/src/common/paws/pawstabwindow.h trunk/src/common/paws/pawstextbox.cpp trunk/src/common/paws/pawstextbox.h trunk/src/common/paws/pawstexturemanager.cpp trunk/src/common/paws/pawstexturemanager.h trunk/src/common/paws/pawstextwrap.cpp trunk/src/common/paws/pawstitle.cpp trunk/src/common/paws/pawstitle.h trunk/src/common/paws/pawstree.cpp trunk/src/common/paws/pawstree.h trunk/src/common/paws/pawswidget.cpp trunk/src/common/paws/pawswidget.h trunk/src/common/paws/pawsyesnobox.cpp trunk/src/common/paws/pawsyesnobox.h trunk/src/common/paws/psmousebinds.cpp trunk/src/common/paws/psmousebinds.h trunk/src/common/paws/widgetconfigwindow.cpp trunk/src/common/paws/widgetconfigwindow.h trunk/src/common/rpgrules/ trunk/src/common/rpgrules/Jamfile trunk/src/common/rpgrules/factions.cpp trunk/src/common/rpgrules/factions.h trunk/src/common/rpgrules/psmoney.cpp trunk/src/common/rpgrules/psmoney.h trunk/src/common/rpgrules/vitals.cpp trunk/src/common/rpgrules/vitals.h trunk/src/common/util/ trunk/src/common/util/Jamfile trunk/src/common/util/README trunk/src/common/util/command.h trunk/src/common/util/consoleout.cpp trunk/src/common/util/consoleout.h trunk/src/common/util/dbprofile.cpp trunk/src/common/util/dbprofile.h trunk/src/common/util/delimitedstring.cpp trunk/src/common/util/delimitedstring.h trunk/src/common/util/eventmanager.cpp trunk/src/common/util/eventmanager.h trunk/src/common/util/gameevent.cpp trunk/src/common/util/gameevent.h trunk/src/common/util/genericevent.h trunk/src/common/util/genqueue.cpp trunk/src/common/util/genqueue.h trunk/src/common/util/growarray.h trunk/src/common/util/heap.h trunk/src/common/util/localization.cpp trunk/src/common/util/localization.h trunk/src/common/util/location.cpp trunk/src/common/util/location.h trunk/src/common/util/log.cpp trunk/src/common/util/log.h trunk/src/common/util/mathscript.cpp trunk/src/common/util/mathscript.h trunk/src/common/util/minigame.h trunk/src/common/util/namegenerator.cpp trunk/src/common/util/namegenerator.h trunk/src/common/util/poolallocator.h trunk/src/common/util/prb.cpp trunk/src/common/util/prb.h trunk/src/common/util/pscache.cpp trunk/src/common/util/pscache.h trunk/src/common/util/psconst.h trunk/src/common/util/pscssetup.cpp trunk/src/common/util/pscssetup.h trunk/src/common/util/psdatabase.cpp trunk/src/common/util/psdatabase.h trunk/src/common/util/pserror.cpp trunk/src/common/util/pserror.h trunk/src/common/util/psmeshutil.cpp trunk/src/common/util/psmeshutil.h trunk/src/common/util/pspath.cpp trunk/src/common/util/pspath.h trunk/src/common/util/pspathnetwork.cpp trunk/src/common/util/pspathnetwork.h trunk/src/common/util/psprofile.cpp trunk/src/common/util/psprofile.h trunk/src/common/util/psres.cpp trunk/src/common/util/psres.h trunk/src/common/util/psresmngr.cpp trunk/src/common/util/psresmngr.h trunk/src/common/util/psscf.h trunk/src/common/util/psstring.cpp trunk/src/common/util/psstring.h trunk/src/common/util/psutil.cpp trunk/src/common/util/psutil.h trunk/src/common/util/psxmlparser.cpp trunk/src/common/util/psxmlparser.h trunk/src/common/util/scriptvar.h trunk/src/common/util/serverconsole.cpp trunk/src/common/util/serverconsole.h trunk/src/common/util/singleton.h trunk/src/common/util/skillcache.cpp trunk/src/common/util/skillcache.h trunk/src/common/util/sleep.cpp trunk/src/common/util/sleep.h trunk/src/common/util/slots.cpp trunk/src/common/util/slots.h trunk/src/common/util/stringarray.h trunk/src/common/util/strutil.cpp trunk/src/common/util/strutil.h trunk/src/common/util/texfactory.cpp trunk/src/common/util/texfactory.h trunk/src/common/util/waypoint.cpp trunk/src/common/util/waypoint.h trunk/src/eedit/ trunk/src/eedit/Jamfile trunk/src/eedit/econtrolmanager.cpp trunk/src/eedit/econtrolmanager.h trunk/src/eedit/eeditapp.cpp trunk/src/eedit/eeditapp.h trunk/src/eedit/eeditcameratoolbox.cpp trunk/src/eedit/eeditcameratoolbox.h trunk/src/eedit/eeditediteffecttoolbox.cpp trunk/src/eedit/eeditediteffecttoolbox.h trunk/src/eedit/eediterrortoolbox.cpp trunk/src/eedit/eediterrortoolbox.h trunk/src/eedit/eeditfpstoolbox.cpp trunk/src/eedit/eeditfpstoolbox.h trunk/src/eedit/eeditglobals.h trunk/src/eedit/eeditinputboxmanager.cpp trunk/src/eedit/eeditinputboxmanager.h trunk/src/eedit/eeditloadeffecttoolbox.cpp trunk/src/eedit/eeditloadeffecttoolbox.h trunk/src/eedit/eeditloadmaptoolbox.cpp trunk/src/eedit/eeditloadmaptoolbox.h trunk/src/eedit/eeditpositiontoolbox.cpp trunk/src/eedit/eeditpositiontoolbox.h trunk/src/eedit/eeditrendertoolbox.cpp trunk/src/eedit/eeditrendertoolbox.h trunk/src/eedit/eeditreporter.cpp trunk/src/eedit/eeditreporter.h trunk/src/eedit/eeditselecteditanchor.cpp trunk/src/eedit/eeditselecteditanchor.h trunk/src/eedit/eeditselecteditanchorkeyframe.cpp trunk/src/eedit/eeditselecteditanchorkeyframe.h trunk/src/eedit/eeditselectfloat.cpp trunk/src/eedit/eeditselectfloat.h trunk/src/eedit/eeditselectlist.cpp trunk/src/eedit/eeditselectlist.h trunk/src/eedit/eeditselectnewanchor.cpp trunk/src/eedit/eeditselectnewanchor.h trunk/src/eedit/eeditselectnewanchorkeyframe.cpp trunk/src/eedit/eeditselectnewanchorkeyframe.h trunk/src/eedit/eeditselectstring.cpp trunk/src/eedit/eeditselectstring.h trunk/src/eedit/eeditselectvec3.cpp trunk/src/eedit/eeditselectvec3.h trunk/src/eedit/eeditselectyesno.cpp trunk/src/eedit/eeditselectyesno.h trunk/src/eedit/eeditshortcutstoolbox.cpp trunk/src/eedit/eeditshortcutstoolbox.h trunk/src/eedit/eedittargettoolbox.cpp trunk/src/eedit/eedittargettoolbox.h trunk/src/eedit/eedittoolbox.cpp trunk/src/eedit/eedittoolbox.h trunk/src/eedit/eedittoolboxmanager.cpp trunk/src/eedit/eedittoolboxmanager.h trunk/src/eedit/pawseedit.cpp trunk/src/eedit/pawseedit.h trunk/src/eedit/pscal3dcallback.cpp trunk/src/eedit/pscal3dcallback.h trunk/src/npcclient/ trunk/src/npcclient/Jamfile trunk/src/npcclient/command.cpp trunk/src/npcclient/gem.cpp trunk/src/npcclient/gem.h trunk/src/npcclient/globals.h trunk/src/npcclient/main.cpp trunk/src/npcclient/networkmgr.cpp trunk/src/npcclient/networkmgr.h trunk/src/npcclient/npc.cpp trunk/src/npcclient/npc.h trunk/src/npcclient/npcbehave.cpp trunk/src/npcclient/npcbehave.h trunk/src/npcclient/npcclient.cpp trunk/src/npcclient/npcclient.h trunk/src/npcclient/pathfind.cpp trunk/src/npcclient/pathfind.h trunk/src/npcclient/perceptions.cpp trunk/src/npcclient/perceptions.h trunk/src/npcclient/status.cpp trunk/src/npcclient/status.h trunk/src/npcclient/tribe.cpp trunk/src/npcclient/tribe.h trunk/src/npcclient/tribeneed.cpp trunk/src/npcclient/tribeneed.h trunk/src/npcclient/walkpoly.cpp trunk/src/npcclient/walkpoly.h trunk/src/server/ trunk/src/server/Jamfile trunk/src/server/actionmanager.cpp trunk/src/server/actionmanager.h trunk/src/server/adminmanager.cpp trunk/src/server/adminmanager.h trunk/src/server/advicemanager.cpp trunk/src/server/advicemanager.h trunk/src/server/authentserver.cpp trunk/src/server/authentserver.h trunk/src/server/bankmanager.cpp trunk/src/server/bankmanager.h trunk/src/server/bulkobjects/ trunk/src/server/bulkobjects/Jamfile trunk/src/server/bulkobjects/dictionary.cpp trunk/src/server/bulkobjects/dictionary.h trunk/src/server/bulkobjects/psaccountinfo.cpp trunk/src/server/bulkobjects/psaccountinfo.h trunk/src/server/bulkobjects/psactionlocationinfo.cpp trunk/src/server/bulkobjects/psactionlocationinfo.h trunk/src/server/bulkobjects/pscharacter.cpp trunk/src/server/bulkobjects/pscharacter.h trunk/src/server/bulkobjects/pscharacterlist.cpp trunk/src/server/bulkobjects/pscharacterlist.h trunk/src/server/bulkobjects/pscharacterloader.cpp trunk/src/server/bulkobjects/pscharacterloader.h trunk/src/server/bulkobjects/pscharinventory.cpp trunk/src/server/bulkobjects/pscharinventory.h trunk/src/server/bulkobjects/psglyph.cpp trunk/src/server/bulkobjects/psglyph.h trunk/src/server/bulkobjects/psguildinfo.cpp trunk/src/server/bulkobjects/psguildinfo.h trunk/src/server/bulkobjects/psinventorycachesvr.cpp trunk/src/server/bulkobjects/psinventorycachesvr.h trunk/src/server/bulkobjects/psitem.cpp trunk/src/server/bulkobjects/psitem.h trunk/src/server/bulkobjects/psitemstats.cpp trunk/src/server/bulkobjects/psitemstats.h trunk/src/server/bulkobjects/psmerchantinfo.cpp trunk/src/server/bulkobjects/psmerchantinfo.h trunk/src/server/bulkobjects/psnpcdialog.cpp trunk/src/server/bulkobjects/psnpcdialog.h trunk/src/server/bulkobjects/psnpcloader.cpp trunk/src/server/bulkobjects/psnpcloader.h trunk/src/server/bulkobjects/psquest.cpp trunk/src/server/bulkobjects/psquest.h trunk/src/server/bulkobjects/psquestprereqops.cpp trunk/src/server/bulkobjects/psquestprereqops.h trunk/src/server/bulkobjects/psraceinfo.cpp trunk/src/server/bulkobjects/psraceinfo.h trunk/src/server/bulkobjects/pssectorinfo.cpp trunk/src/server/bulkobjects/pssectorinfo.h trunk/src/server/bulkobjects/psskills.cpp trunk/src/server/bulkobjects/psskills.h trunk/src/server/bulkobjects/psspell.cpp trunk/src/server/bulkobjects/psspell.h trunk/src/server/bulkobjects/pstrade.cpp trunk/src/server/bulkobjects/pstrade.h trunk/src/server/bulkobjects/pstrainerinfo.cpp trunk/src/server/bulkobjects/pstrainerinfo.h trunk/src/server/bulkobjects/pstrait.cpp trunk/src/server/bulkobjects/pstrait.h trunk/src/server/bulkobjects/servervitals.cpp trunk/src/server/bulkobjects/servervitals.h trunk/src/server/cachemanager.cpp trunk/src/server/cachemanager.h trunk/src/server/chatmanager.cpp trunk/src/server/chatmanager.h trunk/src/server/client.cpp trunk/src/server/client.h trunk/src/server/clients.cpp trunk/src/server/clients.h trunk/src/server/clientstatuslogger.cpp trunk/src/server/clientstatuslogger.h trunk/src/server/combatmanager.cpp trunk/src/server/combatmanager.h trunk/src/server/command.cpp trunk/src/server/commandmanager.cpp trunk/src/server/commandmanager.h trunk/src/server/creationmanager.cpp trunk/src/server/creationmanager.h trunk/src/server/database/ trunk/src/server/database/Jamfile trunk/src/server/database/mysql/ trunk/src/server/database/mysql/Jamfile trunk/src/server/database/mysql/accessrules.sql trunk/src/server/database/mysql/accounts.sql trunk/src/server/database/mysql/action_locations.sql trunk/src/server/database/mysql/alliances.sql trunk/src/server/database/mysql/armorvsweapon.sql trunk/src/server/database/mysql/bad_names.sql trunk/src/server/database/mysql/bans.sql trunk/src/server/database/mysql/char_adv.sql trunk/src/server/database/mysql/char_create_affinity.sql trunk/src/server/database/mysql/char_creation.sql trunk/src/server/database/mysql/char_skills.sql trunk/src/server/database/mysql/char_traits.sql trunk/src/server/database/mysql/character_events.sql trunk/src/server/database/mysql/character_limitations.sql trunk/src/server/database/mysql/character_quests.sql trunk/src/server/database/mysql/character_relationships.sql trunk/src/server/database/mysql/characters.sql trunk/src/server/database/mysql/command_access.sql trunk/src/server/database/mysql/commonstrings.sql trunk/src/server/database/mysql/create_all.sql trunk/src/server/database/mysql/createdrop.sh trunk/src/server/database/mysql/dal.cpp trunk/src/server/database/mysql/dal.h trunk/src/server/database/mysql/dbmysql.csplugin trunk/src/server/database/mysql/deletechar.sql trunk/src/server/database/mysql/deletenpc.sql trunk/src/server/database/mysql/deletenpc_mb.sql trunk/src/server/database/mysql/drop.sql trunk/src/server/database/mysql/factions.sql trunk/src/server/database/mysql/familiar_types.sql trunk/src/server/database/mysql/gm_command_log.sql trunk/src/server/database/mysql/gm_events.sql trunk/src/server/database/mysql/guildlevels.sql trunk/src/server/database/mysql/guilds.sql trunk/src/server/database/mysql/hunt_locations.sql trunk/src/server/database/mysql/item_animations.sql trunk/src/server/database/mysql/item_categories.sql trunk/src/server/database/mysql/item_instances.sql trunk/src/server/database/mysql/item_stats.sql trunk/src/server/database/mysql/loot_modifiers.sql trunk/src/server/database/mysql/loot_rule_details.sql trunk/src/server/database/mysql/loot_rules.sql trunk/src/server/database/mysql/math_scripts.sql trunk/src/server/database/mysql/merchant_item_cats.sql trunk/src/server/database/mysql/migration.sql trunk/src/server/database/mysql/money_events.sql trunk/src/server/database/mysql/movement.sql trunk/src/server/database/mysql/natural_resources.sql trunk/src/server/database/mysql/npc_bad_text.sql trunk/src/server/database/mysql/npc_disallowed_words.sql trunk/src/server/database/mysql/npc_kas.sql trunk/src/server/database/mysql/npc_responses.sql trunk/src/server/database/mysql/npc_spawn_ranges.sql trunk/src/server/database/mysql/npc_spawn_rules.sql trunk/src/server/database/mysql/npc_synonyms.sql trunk/src/server/database/mysql/npc_trigger_groups.sql trunk/src/server/database/mysql/npc_triggers.sql trunk/src/server/database/mysql/petitions.sql trunk/src/server/database/mysql/planeshift_db.png trunk/src/server/database/mysql/planeshift_db.xml trunk/src/server/database/mysql/player_spells.sql trunk/src/server/database/mysql/progress_events.sql trunk/src/server/database/mysql/quest_scripts.sql trunk/src/server/database/mysql/quests.sql trunk/src/server/database/mysql/race_info.sql trunk/src/server/database/mysql/sc_location_type.sql trunk/src/server/database/mysql/sc_locations.sql trunk/src/server/database/mysql/sc_npc_definitions.sql trunk/src/server/database/mysql/sc_path_points.sql trunk/src/server/database/mysql/sc_tribe_memories.sql trunk/src/server/database/mysql/sc_tribe_resources.sql trunk/src/server/database/mysql/sc_waypoint_links.sql trunk/src/server/database/mysql/sc_waypoints.sql trunk/src/server/database/mysql/sectors.sql trunk/src/server/database/mysql/security_levels.sql trunk/src/server/database/mysql/server_options.sql trunk/src/server/database/mysql/skills.sql trunk/src/server/database/mysql/spell_glyphs.sql trunk/src/server/database/mysql/spells.sql trunk/src/server/database/mysql/stances.sql trunk/src/server/database/mysql/tips.sql trunk/src/server/database/mysql/trade_autocontainers.sql trunk/src/server/database/mysql/trade_combinations.sql trunk/src/server/database/mysql/trade_constraints.sql trunk/src/server/database/mysql/trade_patterns.sql trunk/src/server/database/mysql/trade_processes.sql trunk/src/server/database/mysql/trade_transformations.sql trunk/src/server/database/mysql/trainer_skills.sql trunk/src/server/database/mysql/traits.sql trunk/src/server/database/mysql/tribe_members.sql trunk/src/server/database/mysql/tribes.sql trunk/src/server/database/mysql/unique_content.sql trunk/src/server/database/mysql/upgrade_schema.sql trunk/src/server/database/mysql/ways.sql trunk/src/server/deathcallback.h trunk/src/server/deleteobjcallback.h trunk/src/server/economymanager.cpp trunk/src/server/economymanager.h trunk/src/server/entitymanager.cpp trunk/src/server/entitymanager.h trunk/src/server/events.cpp trunk/src/server/events.h trunk/src/server/exchangemanager.cpp trunk/src/server/exchangemanager.h trunk/src/server/gem.cpp trunk/src/server/gem.h trunk/src/server/globals.h trunk/src/server/gmeventmanager.cpp trunk/src/server/gmeventmanager.h trunk/src/server/groupmanager.cpp trunk/src/server/groupmanager.h trunk/src/server/guildmanager.cpp trunk/src/server/guildmanager.h trunk/src/server/icachedobject.h trunk/src/server/invitemanager.cpp trunk/src/server/invitemanager.h trunk/src/server/iserver/ trunk/src/server/iserver/idal.h trunk/src/server/main.cpp trunk/src/server/marriagemanager.cpp trunk/src/server/marriagemanager.h trunk/src/server/minigamemanager.cpp trunk/src/server/minigamemanager.h trunk/src/server/msgmanager.cpp trunk/src/server/msgmanager.h trunk/src/server/netmanager.cpp trunk/src/server/netmanager.h trunk/src/server/npcmanager.cpp trunk/src/server/npcmanager.h trunk/src/server/paladinjr.cpp trunk/src/server/paladinjr.h trunk/src/server/playergroup.h trunk/src/server/progressionmanager.cpp trunk/src/server/progressionmanager.h trunk/src/server/psproxlist.cpp trunk/src/server/psproxlist.h trunk/src/server/psserver.cpp trunk/src/server/psserver.h trunk/src/server/psserverchar.cpp trunk/src/server/psserverchar.h trunk/src/server/psserverdr.cpp trunk/src/server/psserverdr.h trunk/src/server/questionmanager.cpp trunk/src/server/questionmanager.h trunk/src/server/questmanager.cpp trunk/src/server/questmanager.h trunk/src/server/serverstatus.cpp trunk/src/server/serverstatus.h trunk/src/server/slotmanager.cpp trunk/src/server/slotmanager.h trunk/src/server/spawnmanager.cpp trunk/src/server/spawnmanager.h trunk/src/server/spellmanager.cpp trunk/src/server/spellmanager.h trunk/src/server/tutorialmanager.cpp trunk/src/server/tutorialmanager.h trunk/src/server/usermanager.cpp trunk/src/server/usermanager.h trunk/src/server/weathermanager.cpp trunk/src/server/weathermanager.h trunk/src/server/workmanager.cpp trunk/src/server/workmanager.h trunk/src/tools/ trunk/src/tools/Jamfile trunk/src/tools/fparser/ trunk/src/tools/fparser/Jamfile trunk/src/tools/fparser/fparser.cpp trunk/src/tools/fparser/fparser.h trunk/src/tools/fparser/fparser.txt trunk/src/tools/fparser/fpconfig.h trunk/src/tools/fparser/fpoptimizer.cpp trunk/src/tools/fparser/fptypes.h trunk/tools/ trunk/tools/jobber-svn.pl trunk/tools/jobber.cfg trunk/tools/svnwrapper trunk/vfs.cfg Removed Paths: ------------- trunk/data/eedit/ trunk/data/eedit/camera.xml trunk/data/eedit/editeffect.xml trunk/data/eedit/eedit.xml trunk/data/eedit/error.xml trunk/data/eedit/filenavigation.xml trunk/data/eedit/fps.xml trunk/data/eedit/imagelist.xml trunk/data/eedit/inputbox/ trunk/data/eedit/inputbox/editanchor.xml trunk/data/eedit/inputbox/editanchorkeyframe.xml trunk/data/eedit/inputbox/float.xml trunk/data/eedit/inputbox/list.xml trunk/data/eedit/inputbox/newanchor.xml trunk/data/eedit/inputbox/newanchorkeyframe.xml trunk/data/eedit/inputbox/string.xml trunk/data/eedit/inputbox/vec3.xml trunk/data/eedit/inputbox/yesno.xml trunk/data/eedit/keys.xml trunk/data/eedit/keys_def.xml trunk/data/eedit/loadeffect.xml trunk/data/eedit/loadmap.xml trunk/data/eedit/position.xml trunk/data/eedit/render.xml trunk/data/eedit/shortcuts.xml trunk/data/eedit/target.xml trunk/data/effects/ trunk/data/effects/examples/ trunk/data/effects/examples/obj_quad.eff trunk/data/effects/examples/obj_spire.eff trunk/data/effects/examples/obj_star.eff trunk/data/effects/misc/ trunk/data/effects/misc/admin_location.eff trunk/data/effects/misc/admin_path_point.eff trunk/data/effects/misc/admin_waypoint.eff trunk/data/effects/misc/chatbubble.eff trunk/data/effects/misc/chatbubble_longphrase.eff trunk/data/effects/misc/chatbubble_metal.eff trunk/data/effects/misc/chatbubble_normal.eff trunk/data/effects/misc/chatbubble_shortphrase.eff trunk/data/effects/misc/entitylabel.eff trunk/data/effects/misc/marker.eff trunk/data/effects/misc/shadow.eff trunk/data/effects/misc/target.eff trunk/data/emotes.xml trunk/data/gui/ trunk/data/gui/actionlocation.xml trunk/data/gui/activemagicwindow.xml trunk/data/gui/bankwindow.xml trunk/data/gui/birth.xml trunk/data/gui/bookwriting.xml trunk/data/gui/borderlist.xml trunk/data/gui/buddy.xml trunk/data/gui/charcreate.xml trunk/data/gui/chardescwindow.xml trunk/data/gui/charpick.xml trunk/data/gui/chat.xml trunk/data/gui/chatmenu.xml trunk/data/gui/childhood.xml trunk/data/gui/configcamera.xml trunk/data/gui/configchat.xml trunk/data/gui/configchatfilter.xml trunk/data/gui/configchattabs.xml trunk/data/gui/configdetails.xml trunk/data/gui/configentityinter.xml trunk/data/gui/configentitylabels.xml trunk/data/gui/configkeys.xml trunk/data/gui/configmouse.xml trunk/data/gui/configpvp.xml trunk/data/gui/configsound.xml trunk/data/gui/configwindow.xml trunk/data/gui/containerdesc.xml trunk/data/gui/control.xml trunk/data/gui/control_styles.xml trunk/data/gui/craft.xml trunk/data/gui/credits_config.xml trunk/data/gui/creditswindow.xml trunk/data/gui/customwidgetslist.xml trunk/data/gui/detailwindow.xml trunk/data/gui/eedit.xml trunk/data/gui/exchange.xml trunk/data/gui/filenavigation.xml trunk/data/gui/fingering.xml trunk/data/gui/gameboard.xml trunk/data/gui/glyph.xml trunk/data/gui/gmaddeditaction.xml trunk/data/gui/gmguiwindow.xml trunk/data/gui/gmspawn.xml trunk/data/gui/group.xml trunk/data/gui/guildwindow.xml trunk/data/gui/helpwindow.xml trunk/data/gui/ignorewindow.xml trunk/data/gui/illumination.xml trunk/data/gui/infowindow.xml trunk/data/gui/interact.xml trunk/data/gui/inventory.xml trunk/data/gui/itemdesc.xml trunk/data/gui/lifeevents.xml trunk/data/gui/loadwindow.xml trunk/data/gui/loginwindow.xml trunk/data/gui/loot.xml trunk/data/gui/merchant.xml trunk/data/gui/money.xml trunk/data/gui/newoptions.xml trunk/data/gui/ok.xml trunk/data/gui/parents.xml trunk/data/gui/paths.xml trunk/data/gui/paws_generic.xml trunk/data/gui/petition.xml trunk/data/gui/petitiongm.xml trunk/data/gui/petstatwindow.xml trunk/data/gui/questnotebook.xml trunk/data/gui/questrewardwindow.xml trunk/data/gui/quitinfo.xml trunk/data/gui/readbook.xml trunk/data/gui/shortcutwindow.xml trunk/data/gui/skillwindow.xml trunk/data/gui/smallinventory.xml trunk/data/gui/spell_effect.xml trunk/data/gui/spellcancelwindow.xml trunk/data/gui/spellwindow.xml trunk/data/gui/splash.xml trunk/data/gui/styles.xml trunk/data/gui/summary.xml trunk/data/gui/tutorial.xml trunk/data/gui/widgetconfigwindow.xml trunk/data/gui/yesno.xml trunk/data/gui/zodiacs.xml trunk/data/guikeys.xml trunk/data/help.xml trunk/data/npcbehave.xml trunk/data/npcdefs.xml trunk/data/options/ trunk/data/options/camera_def.xml trunk/data/options/chat_def.xml trunk/data/options/chatbubbles.xml trunk/data/options/controls_def.xml trunk/data/options/entityinter_def.xml trunk/data/options/entitylabels_def.xml trunk/data/options/mouse_def.xml trunk/data/options/pvp_def.xml trunk/data/options/shortcutcommands_def.xml trunk/data/options/sound_def.xml trunk/data/phonics.xml trunk/data/prefs.xml trunk/data/pvp_regions.xml trunk/data/races/ trunk/data/races/descriptions.xml trunk/data/races/quickpaths.xml trunk/data/servers.xml trunk/data/ttf/ trunk/data/ttf/LiberationMono-Regular.ttf trunk/data/ttf/LiberationSans-Regular.ttf trunk/data/ttf/becker-m.ttf trunk/data/ttf/cupandtalon.ttf trunk/data/ttf/scurlock.ttf trunk/data/zoneinfo.xml trunk/docs/compiling.html trunk/docs/credit.txt trunk/docs/credits_AtomicBlue.txt trunk/docs/credits_CrystalBlue.txt trunk/docs/credits_MolecularBlue.txt trunk/docs/history.txt trunk/docs/history2003.txt trunk/docs/history2004.txt trunk/docs/history2005.txt trunk/docs/history2006.txt trunk/docs/svn_guidelines.txt trunk/include/msvc/ trunk/include/msvc/psconfig.h trunk/include/msvc/psstdint.h trunk/lang/cesky/ trunk/lang/cesky/data/ trunk/lang/cesky/data/help.xml trunk/lang/cesky/stringtable.xml trunk/lang/deutsch/ trunk/lang/deutsch/data/ trunk/lang/deutsch/data/help.xml trunk/lang/deutsch/stringtable.xml trunk/mk/autoconf/ trunk/mk/autoconf/ac_check_typedef.m4 trunk/mk/autoconf/ac_compile_check_sizeof.m4 trunk/mk/autoconf/ac_need_stdint_h.m4 trunk/mk/autoconf/cel.m4 trunk/mk/autoconf/checkbinutils.m4 trunk/mk/autoconf/checkbuild.m4 trunk/mk/autoconf/checkcommon.m4 trunk/mk/autoconf/checkcppunit.m4 trunk/mk/autoconf/checkcswin32libs.m4 trunk/mk/autoconf/checklib.m4 trunk/mk/autoconf/checklibtool.m4 trunk/mk/autoconf/checkopengl.m4 trunk/mk/autoconf/checkpic.m4 trunk/mk/autoconf/checkprog.m4 trunk/mk/autoconf/checkpthread.m4 trunk/mk/autoconf/checkpython.m4 trunk/mk/autoconf/checktt2.m4 trunk/mk/autoconf/compiler.m4 trunk/mk/autoconf/config.guess trunk/mk/autoconf/config.sub trunk/mk/autoconf/crystal.m4 trunk/mk/autoconf/cs_check_host.m4 trunk/mk/autoconf/csbuild.m4 trunk/mk/autoconf/diagnose.m4 trunk/mk/autoconf/embed.m4 trunk/mk/autoconf/emit.m4 trunk/mk/autoconf/headercache.m4 trunk/mk/autoconf/install-sh trunk/mk/autoconf/installdirs.m4 trunk/mk/autoconf/jam.m4 trunk/mk/autoconf/jamcache.m4 trunk/mk/autoconf/libcurl.m4 trunk/mk/autoco... [truncated message content] |
From: <mg...@us...> - 2007-10-19 19:46:32
|
Revision: 31 http://planeshift.svn.sourceforge.net/planeshift/?rev=31&view=rev Author: mgist Date: 2007-10-19 12:46:36 -0700 (Fri, 19 Oct 2007) Log Message: ----------- - - Wrote a new updater. Console only atm. Modified Paths: -------------- trunk/docs/history.txt trunk/src/Jamfile trunk/src/tools/Jamfile Added Paths: ----------- trunk/src/pslaunch/ trunk/src/pslaunch/Jamfile trunk/src/pslaunch/binarypatch.cpp trunk/src/pslaunch/binarypatch.h trunk/src/pslaunch/download.cpp trunk/src/pslaunch/download.h trunk/src/pslaunch/fileutil.cpp trunk/src/pslaunch/fileutil.h trunk/src/pslaunch/md5.cpp trunk/src/pslaunch/md5.h trunk/src/pslaunch/pslaunch.cfg trunk/src/pslaunch/updater.cpp trunk/src/pslaunch/updater.h trunk/src/pslaunch/updaterconfig.cpp trunk/src/pslaunch/updaterconfig.h trunk/src/pslaunch/updaterengine.cpp trunk/src/pslaunch/updaterengine.h trunk/src/pslaunch/updatexmls/ trunk/src/pslaunch/updatexmls/README trunk/src/pslaunch/updatexmls/changedfiles.xml trunk/src/pslaunch/updatexmls/deletedfiles.xml trunk/src/pslaunch/updatexmls/newfiles.xml trunk/src/pslaunch/updatexmls/updaterinfo.xml trunk/src/tools/xdelta3/ trunk/src/tools/xdelta3/Jamfile trunk/src/tools/xdelta3/xdelta3-cfgs.h trunk/src/tools/xdelta3/xdelta3-decode.h trunk/src/tools/xdelta3/xdelta3-list.h trunk/src/tools/xdelta3/xdelta3.c trunk/src/tools/xdelta3/xdelta3.h Modified: trunk/docs/history.txt =================================================================== --- trunk/docs/history.txt 2007-10-19 18:33:37 UTC (rev 30) +++ trunk/docs/history.txt 2007-10-19 19:46:36 UTC (rev 31) @@ -1,3 +1,6 @@ +*** 2007-10-19 by Michael Gist +- Wrote a new updater. Console only atm. + *** 2007-10-18 by Michael Gist - Removed the disable of texture_rectangle OGL extensions. We need to track down the cards this doesn't work on, not disable it for everyone! Modified: trunk/src/Jamfile =================================================================== --- trunk/src/Jamfile 2007-10-19 18:33:37 UTC (rev 30) +++ trunk/src/Jamfile 2007-10-19 19:46:36 UTC (rev 31) @@ -6,5 +6,4 @@ SubInclude TOP src client ; SubInclude TOP src eedit ; SubInclude TOP src npcclient ; - - +SubInclude TOP src pslaunch ; Added: trunk/src/pslaunch/Jamfile =================================================================== --- trunk/src/pslaunch/Jamfile (rev 0) +++ trunk/src/pslaunch/Jamfile 2007-10-19 19:46:36 UTC (rev 31) @@ -0,0 +1,9 @@ +SubDir TOP src pslaunch ; + +Application psupdater : + [ Wildcard *.cpp *.h ] +; + +ExternalLibs psupdater : CRYSTAL CURL ; +CompileGroups psupdater : client ; +LinkWith psupdater : xdelta3 ; Added: trunk/src/pslaunch/binarypatch.cpp =================================================================== --- trunk/src/pslaunch/binarypatch.cpp (rev 0) +++ trunk/src/pslaunch/binarypatch.cpp 2007-10-19 19:46:36 UTC (rev 31) @@ -0,0 +1,160 @@ +/* + * binarypatch.cpp - Author: Mike Gist + * + * Copyright (C) 2007 Atomic Blue (in...@pl..., http://www.atomicblue.org) + * + * Thanks to Josh MacDonald and Ralf Junker. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation (version 2 of the License) + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +#define _CRT_SECURE_NO_WARNINGS + +#include <stdio.h> +#include <sys/stat.h> + +#include "binarypatch.h" + +extern "C" +{ +#include "../tools/xdelta3/xdelta3.h" +} + +/* Helper function for conversion. Not in class to avoid basic type redefinition. */ +int PatchFileHelper(FILE* srcFile, FILE* patchFile, FILE* outFile, int bufferSize) +{ + int r, res; + struct stat statBuffer; + xd3_stream stream; + xd3_config config; + xd3_source source; + void* input_Buffer; + int input_Buffer_Read; + + if ((uint)bufferSize < XD3_ALLOCSIZE) + bufferSize = XD3_ALLOCSIZE; + + memset (&stream, 0, sizeof (stream)); + memset (&source, 0, sizeof (source)); + + xd3_init_config(&config, XD3_ADLER32); + config.winsize = bufferSize; + xd3_config_stream(&stream, &config); + + if (srcFile) + { + r = fstat(fileno(srcFile), &statBuffer); + if (r) + return r; + source.size = statBuffer.st_size; + source.blksize = bufferSize; + source.curblk = (const uint8_t*)malloc(source.blksize); + + /* Load the first block of the stream. */ + r = fseek(srcFile, 0, SEEK_SET); + if (r) + return r; + source.onblk = (usize_t)fread((void*)source.curblk, 1, source.blksize, srcFile); + source.curblkno = 0; + /* Set the stream. */ + xd3_set_source(&stream, &source); + } + + input_Buffer = malloc(bufferSize); + + fseek(patchFile, 0, SEEK_SET); + do + { + input_Buffer_Read = (int)fread(input_Buffer, 1, bufferSize, patchFile); + if (input_Buffer_Read < bufferSize) + { + xd3_set_flags(&stream, XD3_FLUSH); + } + xd3_avail_input(&stream, (const uint8_t*)input_Buffer, input_Buffer_Read); + +process: + res = xd3_decode_input(&stream); + + switch (res) + { + case XD3_INPUT: + { + continue; + } + case XD3_OUTPUT: + { + r = (int)fwrite(stream.next_out, 1, stream.avail_out, outFile); + if (r != (int)stream.avail_out) + return r; + xd3_consume_output(&stream); + goto process; + } + case XD3_GETSRCBLK: + { + if (srcFile) + { + r = fseek(srcFile, source.blksize * (long)source.getblkno, SEEK_SET); + if (r) + return r; + source.onblk = (usize_t)fread((void*)source.curblk, 1, + source.blksize, srcFile); + source.curblkno = source.getblkno; + } + goto process; + } + case XD3_GOTHEADER: + case XD3_WINSTART: + case XD3_WINFINISH: + { + goto process; + } + default: + { + fprintf (stderr,"!!! INVALID %s %d !!! : ", stream.msg, res); + return res; + } + } + } + while (input_Buffer_Read == bufferSize); + + free(input_Buffer); + + free((void*)source.curblk); + xd3_close_stream(&stream); + xd3_free_stream(&stream); + + return 0; +} + +bool PatchFile(const char *oldFilePath, const char *vcdiff, const char *newFilePath) +{ + printf("Patching file %s: ", newFilePath); + + FILE* srcFile = fopen(oldFilePath, "rb"); + FILE* patchFile = fopen(vcdiff, "rb"); + FILE* outFile = fopen(newFilePath, "wb"); + + int res = PatchFileHelper(srcFile, patchFile, outFile, 0x1000); + + fclose(outFile); + fclose(patchFile); + fclose(srcFile); + + if(res != 0) + { + printf("Failed!\n"); + return false; + } + + printf("Done!\n"); + return true; +} Property changes on: trunk/src/pslaunch/binarypatch.cpp ___________________________________________________________________ Name: svn:executable + * Added: trunk/src/pslaunch/binarypatch.h =================================================================== --- trunk/src/pslaunch/binarypatch.h (rev 0) +++ trunk/src/pslaunch/binarypatch.h 2007-10-19 19:46:36 UTC (rev 31) @@ -0,0 +1,26 @@ +/* +* binarypatch.h - Author: Mike Gist +* +* Copyright (C) 2007 Atomic Blue (in...@pl..., http://www.atomicblue.org) +* +* +* This program is free software; you can redistribute it and/or +* modify it under the terms of the GNU General Public License +* as published by the Free Software Foundation (version 2 of the License) +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* You should have received a copy of the GNU General Public License +* along with this program; if not, write to the Free Software +* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +* +*/ + +#ifndef __BINARY_PATCH_H__ +#define __BINARY_PATCH_H__ + +/* Function to input the files into buffers and pass to xDelta3. */ +bool PatchFile(const char *oldFilePath, const char *vcdiff, const char *newFilePath); + +#endif // __BINARY_PATCH_H__ Property changes on: trunk/src/pslaunch/binarypatch.h ___________________________________________________________________ Name: svn:executable + * Added: trunk/src/pslaunch/download.cpp =================================================================== --- trunk/src/pslaunch/download.cpp (rev 0) +++ trunk/src/pslaunch/download.cpp 2007-10-19 19:46:36 UTC (rev 31) @@ -0,0 +1,147 @@ +/* +* download.cpp +* +* Copyright (C) 2007 Atomic Blue (in...@pl..., http://www.atomicblue.org) +* +* +* This program is free software; you can redistribute it and/or +* modify it under the terms of the GNU General Public License +* as published by the Free Software Foundation (version 2 of the License) +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* You should have received a copy of the GNU General Public License +* along with this program; if not, write to the Free Software +* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +* +*/ + +#include <psconfig.h> + +#include <csutil/randomgen.h> + +#include "download.h" + +size_t write_data(void *ptr, size_t size, size_t nmemb, void *stream) +{ + size_t written = fwrite(ptr, size, nmemb, (FILE *)stream); + return written; +} + +Downloader::Downloader(csRef<iVFS> _vfs, psUpdaterConfig* _config) +{ + curl_global_init(CURL_GLOBAL_ALL); + curl = curl_easy_init(); + curlerror = new char[CURL_ERROR_SIZE]; + curl_easy_setopt (curl, CURLOPT_ERRORBUFFER, curlerror); + curl_easy_setopt(curl, CURLOPT_HEADER, 0); + curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1); + + vfs = _vfs; + config = _config; + csRandomGen random = csRandomGen(); + startingMirrorID = random.Get((uint32)config->GetCurrentConfig()->GetMirrors()->GetSize()); + activeMirrorID = startingMirrorID; +} + +Downloader::~Downloader() +{ + delete[] curlerror; + curl_easy_cleanup(curl); +} + +void Downloader::SetProxy (const char* host, int port) +{ + curl_easy_setopt (curl, CURLOPT_PROXY, host); + curl_easy_setopt (curl, CURLOPT_PROXYPORT, port); +} + +bool Downloader::DownloadFile (const char* file, const char* dest) +{ + // Get active url, append file to get full path. + Mirror* mirror = config->GetCurrentConfig()->GetMirrors()->Get(activeMirrorID); + while(mirror) + { + csString url = mirror->GetBaseURL(); + url.AppendFmt(file); + + char* destpath; + + if (vfs) + { + csRef<iDataBuffer> prefixpath = vfs->GetRealPath("/this/"); + destpath = (char *)malloc(strlen(dest) + prefixpath->GetSize()+1); //not sure if the +1 is necessary, but paranoid. + strncpy(destpath,prefixpath->GetData(),prefixpath->GetSize()); + strcat(destpath,dest); + } + else + { + printf("No VFS in object registry!?\n"); + return false; + } + + FILE* file; + file = fopen (destpath, "wb"); + + if (!file) + { + printf("Couldn't write to file! (%s).\n", dest); + return false; + } + + curl_easy_setopt(curl, CURLOPT_URL, url.GetData()); + curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data); + curl_easy_setopt(curl, CURLOPT_WRITEDATA, file); + + CURLcode result = curl_easy_perform(curl); + + fclose (file); + free(destpath); + destpath = 0; + + long curlhttpcode; + curl_easy_getinfo (curl, CURLINFO_RESPONSE_CODE, &curlhttpcode); + + csString error; + + if (result != CURLE_OK) + { + if (result == CURLE_COULDNT_CONNECT || result == CURLE_COULDNT_RESOLVE_HOST) + error = "Couldn't connect to mirror.\n"; + else + error.Format("Error while downloading: %s, file %s.\n",curlerror,url.GetData()); + } + + // Tell the user that we failed + if (curlhttpcode != 200 || error != "") + { + if(error == "") + printf ("Server error %ld (%s).\n",curlhttpcode,url.GetData()); + else + printf ("Server error: %s (%ld).\n",error.GetData(),curlhttpcode); + + // Try the next mirror. + mirror = config->GetCurrentConfig()->GetMirrors()->Get(CycleActiveMirror()); + continue; + } + // Success! + return true; + } + printf("There are no active mirrors! Please check the forums for more info and help!\n"); + return false; +} + + +uint Downloader::CycleActiveMirror() +{ + activeMirrorID++; + // If we've reached the end, go back to the beginning of the list. + if(activeMirrorID == config->GetCurrentConfig()->GetMirrors()->GetSize()) + activeMirrorID = 0; + // If true, we've reached our start point. Break the loop. + if(activeMirrorID == startingMirrorID) + activeMirrorID = (uint32)config->GetCurrentConfig()->GetMirrors()->GetSize(); + + return activeMirrorID; +} Property changes on: trunk/src/pslaunch/download.cpp ___________________________________________________________________ Name: svn:executable + * Added: trunk/src/pslaunch/download.h =================================================================== --- trunk/src/pslaunch/download.h (rev 0) +++ trunk/src/pslaunch/download.h 2007-10-19 19:46:36 UTC (rev 31) @@ -0,0 +1,61 @@ +/* +* download.h +* +* Copyright (C) 2007 Atomic Blue (in...@pl..., http://www.atomicblue.org) +* +* +* This program is free software; you can redistribute it and/or +* modify it under the terms of the GNU General Public License +* as published by the Free Software Foundation (version 2 of the License) +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* You should have received a copy of the GNU General Public License +* along with this program; if not, write to the Free Software +* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +* +*/ + + +#ifndef __DOWNLOAD_H__ +#define __DOWNLOAD_H__ + +#include <curl/curl.h> +#include "updaterconfig.h" + +class Downloader +{ +public: + Downloader(csRef<iVFS> _vfs, psUpdaterConfig* _config); + ~Downloader(); + + /* Download a file from 'file' and save to 'dest' */ + bool DownloadFile (const char* file, const char* dest); + + /* Set the proxy server host and port */ + void SetProxy (const char* host, int port); +private: + /* The ID of the mirror we randomly selected. */ + uint32 startingMirrorID; + + /* The current active mirror. */ + uint32 activeMirrorID; + + /* Cycle our currently active mirror to the next */ + uint CycleActiveMirror(); + + /* Curl object! */ + CURL* curl; + + /* curl error string */ + char* curlerror; + + /* VFS */ + csRef<iVFS> vfs; + + /* Config pointer */ + psUpdaterConfig* config; +}; + +#endif // __DOWNLOAD_H__ Property changes on: trunk/src/pslaunch/download.h ___________________________________________________________________ Name: svn:executable + * Added: trunk/src/pslaunch/fileutil.cpp =================================================================== --- trunk/src/pslaunch/fileutil.cpp (rev 0) +++ trunk/src/pslaunch/fileutil.cpp 2007-10-19 19:46:36 UTC (rev 31) @@ -0,0 +1,205 @@ +/* +* fileutil.cpp by Matthias Braun <ma...@br...> +* +* Copyright (C) 2002 Atomic Blue (in...@pl..., http://www.atomicblue.org) +* +* +* This program is free software; you can redistribute it and/or +* modify it under the terms of the GNU General Public License +* as published by the Free Software Foundation (version 2 of the License) +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* You should have received a copy of the GNU General Public License +* along with this program; if not, write to the Free Software +* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +* +*/ + +// All OS specific stuff should be in this file +#define CS_SYSDEF_PROVIDE_DIR +#include <psconfig.h> + +#include <sys/stat.h> +#include <csutil/util.h> +#include <iutil/databuff.h> +#include <csutil/csstring.h> + +#include "fileutil.h" + +FileUtil::FileUtil(csRef<iVFS> _vfs) +{ + vfs = _vfs; +} + +FileUtil::~FileUtil() +{ +} + +FileStat* FileUtil::StatFile (const char* path) +{ + struct stat filestats; + if (stat (path, &filestats) < 0) + return NULL; + + FileStat* filestat = new FileStat; + +#ifdef CS_PLATFORM_WIN32 + if (filestats.st_mode & _S_IFDIR) + filestat->type = FileStat::TYPE_DIRECTORY; + else + filestat->type = FileStat::TYPE_FILE; +#else + if (S_ISDIR (filestats.st_mode)) + filestat->type = FileStat::TYPE_DIRECTORY; + else + filestat->type = FileStat::TYPE_FILE; +#endif + + // XXX: Need support for symbolic links and executable + filestat->link = false; + filestat->executable = false; + filestat->size = (uint32_t) filestats.st_size; + filestat->readonly = !(filestats.st_mode & S_IWRITE); + + return filestat; +} + +void FileUtil::RemoveFile (const char* filename) +{ + //If vfs deletefile fails, fall back on old variant + if (!vfs->DeleteFile(filename)) + { + int rc = remove(filename); + if (rc < 0) + { + printf("Removal of '%s' failed.\n", filename); + } + } + else + { + if (!vfs->Sync()) + { + printf("Couldn't sync VFS!\n"); + } + } +} + +#ifdef CS_PLATFORM_UNIX +#include <sys/stat.h> + +char* FileUtil::ConvertToSystemPath (const char* path) +{ + return csStrNew (path); +} + +void FileUtil::MakeDirectory (const char* directory) +{ + // Append the /this/ path, since our assertion only works for relative paramaters + if (vfs) + { + csRef<iDataBuffer> prefixpath = vfs->GetRealPath("/this/"); + csString destpath(prefixpath->GetData()); + destpath += directory; + + if (mkdir (destpath, S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH) < 0) + if(!vfs->Exists(csString("/this/") + directory)) + printf("Couldn't create directory '%s'.\n", (const char *)destpath); + } + else + printf("Could not find VFS!!!"); +} + +#endif + +#ifdef CS_PLATFORM_WIN32 +#include <direct.h> + +char* FileUtil::ConvertToSystemPath (const char* path) +{ + char* newpath = csStrNew(path); + + for (char*p = newpath; *p != 0; p++) + { + if (*p == '/') + *p = '\\'; + } + + return newpath; +} + +void FileUtil::MakeDirectory (const char* directory) +{ + char* path = ConvertToSystemPath (directory); + int rc = mkdir(path); + delete[] path; + + if (rc < 0) + if(vfs->Exists(csString("/this/") + directory)) + printf("Couldn't create directory '%s'.", directory); +} + +#endif + +bool FileUtil::CopyFile(csString from, csString to, bool vfsPath, bool executable) +{ + csString n1; + csString n2; + + csString file = to; + if(vfsPath) + { + csRef<iDataBuffer> buff = vfs->GetRealPath(to); + if(!buff) + { + printf("Couldn't get the real filename for %s!\n",to.GetData()); + return false; + } + + file = buff->GetData(); + } + + FileStat* stat = StatFile(file); + if(stat && stat->readonly) + { + printf("Won't write to %s, because it's readonly\n",file.GetData()); + return true; // Return true to bypass DLL checks and stuff + } + + if (!vfsPath) + { + n1 = "/this/" + from; + n2 = "/this/" + to; + } + else + { + n1= from; + n2= to; + } + + csRef<iDataBuffer> buffer = vfs->ReadFile(n1.GetData(),true); + + if (!buffer) + { + printf("Couldn't read file %s!\n",n1.GetData()); + return false; + } + + if (!vfs->WriteFile(n2.GetData(), buffer->GetData(), buffer->GetSize() ) ) + { + printf("Couldn't write to %s!\n", n2.GetData()); + return false; + } + +#ifdef CS_PLATFORM_UNIX + // On unix type systems we might need to set permissions after copy. + if(executable) + { + if(chmod(to.GetData(), S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP | S_IXGRP) == -1) + printf("Failed to set permissions on file %s.\n", n2.GetData()); + } +#endif + + return true; +} Property changes on: trunk/src/pslaunch/fileutil.cpp ___________________________________________________________________ Name: svn:executable + * Added: trunk/src/pslaunch/fileutil.h =================================================================== --- trunk/src/pslaunch/fileutil.h (rev 0) +++ trunk/src/pslaunch/fileutil.h 2007-10-19 19:46:36 UTC (rev 31) @@ -0,0 +1,88 @@ +/* +* fileutil.h by Matthias Braun <ma...@br...> +* +* Copyright (C) 2002 Atomic Blue (in...@pl..., http://www.atomicblue.org) +* +* +* This program is free software; you can redistribute it and/or +* modify it under the terms of the GNU General Public License +* as published by the Free Software Foundation (version 2 of the License) +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* You should have received a copy of the GNU General Public License +* along with this program; if not, write to the Free Software +* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +* +*/ + +/* This file contains +* Utility functions to access the filesystem in a platform +* independant way. It would be nicer to use vfs here, but vfs is too limited +* for our needs (testing for file/directory, file permissions) */ + +#ifndef __FILEUTIL_H__ +#define __FILEUTIL_H__ + +#include <psstdint.h> +#include <iutil/vfs.h> + +struct iVFS; + +class FileStat +{ +public: + enum Type + { + TYPE_FILE, + TYPE_DIRECTORY + }; + + Type type; + bool link; + bool executable; + uint32_t size; + char* target; + bool readonly; + + FileStat () + { target = NULL; } + ~FileStat () + { delete[] target; } +}; + + +class FileUtil +{ +private: + csRef<iVFS> vfs; +public: + FileUtil(csRef<iVFS> vfs); + ~FileUtil(); + /* Tests if the file exists and returns data about the file. */ + FileStat* StatFile (const char* path); + + void RemoveFile (const char* filename); + + /* Convert path to system specific path (for example changes / into \ on + * win32). The result has to be free with delete[]. */ + char* ConvertToSystemPath (const char* path); + + /* Creates a directory. + * directory is interpreted as relative to /this/, i.e. not absolute. */ + void MakeDirectory (const char* directory); + + /* Copies a file. */ + bool CopyFile(csString from, csString to, bool vfsPath, bool executable); + + + /* Moves a file */ + inline void MoveFile(csString from, csString to, bool vfsPath, bool executable) + { + CopyFile(from, to, vfsPath, executable); + RemoveFile(from); + } +}; + +#endif // __FILEUTIL_H__ Property changes on: trunk/src/pslaunch/fileutil.h ___________________________________________________________________ Name: svn:executable + * Added: trunk/src/pslaunch/md5.cpp =================================================================== --- trunk/src/pslaunch/md5.cpp (rev 0) +++ trunk/src/pslaunch/md5.cpp 2007-10-19 19:46:36 UTC (rev 31) @@ -0,0 +1,99 @@ +/* +* md5.cpp by Matthias Braun <ma...@br...> +* +* Copyright (C) 2002 Atomic Blue (in...@pl..., http://www.atomicblue.org) +* +* +* This program is free software; you can redistribute it and/or +* modify it under the terms of the GNU General Public License +* as published by the Free Software Foundation (version 2 of the License) +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* You should have received a copy of the GNU General Public License +* along with this program; if not, write to the Free Software +* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +* +*/ +#include <psconfig.h> + +#include <string.h> + +#include <csutil/snprintf.h> +#include <csutil/csmd5.h> +#include <csutil/util.h> +#include <iutil/vfs.h> +#include <csutil/databuf.h> + +#include "md5.h" +#include "updaterconfig.h" + +MD5Sum::MD5Sum (csRef<iVFS> _vfs) +: md5(NULL) +{ + vfs = _vfs; +} + +MD5Sum::MD5Sum (char* buffer, size_t len) +{ + Calculate (buffer, len); +} + +MD5Sum::~MD5Sum () +{ +} + +void MD5Sum::Calculate (char* buffer, size_t len) +{ + if (!md5) + md5 = new char[33]; + + csMD5::Digest digest = csMD5::Encode (buffer, (int) len); + + cs_snprintf (md5, 33, + "%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x", + digest.data[0], digest.data[1], digest.data[2], digest.data[3], + digest.data[4], digest.data[5], digest.data[6], digest.data[7], + digest.data[8], digest.data[9], digest.data[10], digest.data[11], + digest.data[12], digest.data[13], digest.data[14], digest.data[15]); +} + +void MD5Sum::Set (const char* md5sum) +{ + if(strlen (md5sum) != 32) + { + printf("Tried to set md5 sum with wrong len.\n"); + PS_PAUSEEXIT(1); + } + + delete[] md5; + md5 = csStrNew(md5sum); +} + +const char* MD5Sum::Get() const +{ + return md5; +} + +bool MD5Sum::ReadFile (const char* filename) +{ + csRef<iDataBuffer> buffer = vfs->ReadFile(filename,true); + + if (!buffer) + { + printf("No buffer!\n"); + return false; + } + + Calculate (buffer->GetData(), buffer->GetSize()); + return true; +} + +bool MD5Sum::operator == (const MD5Sum& other) const +{ + if (!md5 || !other.md5) + return false; + + return strcmp(md5, other.md5) == 0; +} Property changes on: trunk/src/pslaunch/md5.cpp ___________________________________________________________________ Name: svn:executable + * Added: trunk/src/pslaunch/md5.h =================================================================== --- trunk/src/pslaunch/md5.h (rev 0) +++ trunk/src/pslaunch/md5.h 2007-10-19 19:46:36 UTC (rev 31) @@ -0,0 +1,46 @@ +/* +* md5.h by Matthias Braun <ma...@br...> +* +* Copyright (C) 2002 Atomic Blue (in...@pl..., http://www.atomicblue.org) +* +* +* This program is free software; you can redistribute it and/or +* modify it under the terms of the GNU General Public License +* as published by the Free Software Foundation (version 2 of the License) +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* You should have received a copy of the GNU General Public License +* along with this program; if not, write to the Free Software +* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +* +*/ +#ifndef __UPDATER_MD5_H__ +#define __UPDATER_MD5_H__ + +/// This class holds the result of a md5 sum calculation +class MD5Sum +{ +public: + MD5Sum (csRef<iVFS> vfs); + MD5Sum (char* buffer, size_t len); + ~MD5Sum (); + + /// Read a file and calculate it's md5 + bool ReadFile (const char* filename); + /// Calculates a new md5 sum of a buffer + void Calculate (char* buffer, size_t len); + /// Set MD5 sum to value of the string + void Set (const char* md5sum); + /// Get MD5 sum as a string + const char* Get() const; + /// compare 2 md5 sums + bool operator == (const MD5Sum& other) const; + +private: + csRef<iVFS> vfs; + char* md5; +}; + +#endif Property changes on: trunk/src/pslaunch/md5.h ___________________________________________________________________ Name: svn:executable + * Added: trunk/src/pslaunch/pslaunch.cfg =================================================================== --- trunk/src/pslaunch/pslaunch.cfg (rev 0) +++ trunk/src/pslaunch/pslaunch.cfg 2007-10-19 19:46:36 UTC (rev 31) @@ -0,0 +1,5 @@ +Updater.Proxy.Host = "" +Updater.Proxy.Port = 0 + +Update.Clean = true + Property changes on: trunk/src/pslaunch/pslaunch.cfg ___________________________________________________________________ Name: svn:executable + * Added: trunk/src/pslaunch/updater.cpp =================================================================== --- trunk/src/pslaunch/updater.cpp (rev 0) +++ trunk/src/pslaunch/updater.cpp 2007-10-19 19:46:36 UTC (rev 31) @@ -0,0 +1,93 @@ +/* +* updater.cpp - Author: Mike Gist +* +* Copyright (C) 2007 Atomic Blue (in...@pl..., http://www.atomicblue.org) +* +* +* This program is free software; you can redistribute it and/or +* modify it under the terms of the GNU General Public License +* as published by the Free Software Foundation (version 2 of the License) +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* You should have received a copy of the GNU General Public License +* along with this program; if not, write to the Free Software +* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +* +*/ + +/* +* This is the file for the console updater only. Everything in here needs to be +* written again for the launcher! +*/ + +#include <psconfig.h> + +#include "updaterconfig.h" +#include "updaterengine.h" +#include "updater.h" + +CS_IMPLEMENT_APPLICATION + +iObjectRegistry* psUpdater::object_reg = NULL; + +psUpdater::psUpdater(int argc, char* argv[]) +{ + object_reg = csInitializer::CreateEnvironment (argc, argv); + if(!object_reg) + { + printf("Object Reg failed to Init!\n"); + PS_PAUSEEXIT(1); + } + // Request needed plugins. + csInitializer::RequestPlugins(object_reg, CS_REQUEST_VFS, CS_REQUEST_END); +} + +psUpdater::~psUpdater() +{ + csInitializer::DestroyApplication(object_reg); +} + +void psUpdater::RunUpdate(psUpdaterEngine* engine) +{ + // Check if we're already in the middle of a self-update. + if(engine->GetConfig()->IsSelfUpdating() != 0) + { + // Continue the self update, passing the update stage. + if(engine->selfUpdate(engine->GetConfig()->IsSelfUpdating())) + return; + } + + // Begin update checking! + printf("Checking for updates:\n"); + engine->checkForUpdates(); + return; +} + +int main(int argc, char* argv[]) +{ + // Set up CS + psUpdater* updater = new psUpdater(argc, argv); + + // Convert args to an array of csString. + csArray<csString> args; + for(int i=0; i<argc; i++) + { + args.Push(argv[i]); + } + + // Initialize updater engine. + psUpdaterEngine* engine = new psUpdaterEngine(args, updater->GetObjectRegistry(), "psupdater"); + + // Run the update process! + updater->RunUpdate(engine); + + // Terminate updater! + delete engine; + delete updater; + engine = NULL; + updater = NULL; + + return 0; +} Property changes on: trunk/src/pslaunch/updater.cpp ___________________________________________________________________ Name: svn:executable + * Added: trunk/src/pslaunch/updater.h =================================================================== --- trunk/src/pslaunch/updater.h (rev 0) +++ trunk/src/pslaunch/updater.h 2007-10-19 19:46:36 UTC (rev 31) @@ -0,0 +1,43 @@ +/* +* updater.cpp - Author: Mike Gist +* +* Copyright (C) 2007 Atomic Blue (in...@pl..., http://www.atomicblue.org) +* +* +* This program is free software; you can redistribute it and/or +* modify it under the terms of the GNU General Public License +* as published by the Free Software Foundation (version 2 of the License) +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* You should have received a copy of the GNU General Public License +* along with this program; if not, write to the Free Software +* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +* +*/ + +/* +* This is the file for the console updater only. Everything in here needs to be +* written again for the launcher! +*/ + +#ifndef __UPDATER_H__ +#define __UPDATER_H__ + +#define APPNAME "PlaneShift Updater" + +struct iObjectRegistry; + +class psUpdater +{ +public: + psUpdater(int argc, char* argv[]); + ~psUpdater(); + iObjectRegistry* GetObjectRegistry(){ return object_reg; } + void RunUpdate(psUpdaterEngine* engine); +private: + static iObjectRegistry* object_reg; +}; + +#endif // __UPDATER_H__ Property changes on: trunk/src/pslaunch/updater.h ___________________________________________________________________ Name: svn:executable + * Added: trunk/src/pslaunch/updaterconfig.cpp =================================================================== --- trunk/src/pslaunch/updaterconfig.cpp (rev 0) +++ trunk/src/pslaunch/updaterconfig.cpp 2007-10-19 19:46:36 UTC (rev 31) @@ -0,0 +1,184 @@ +/* +* updaterconfig.cpp - Author: Mike Gist +* +* Copyright (C) 2007 Atomic Blue (in...@pl..., http://www.atomicblue.org) +* +* +* This program is free software; you can redistribute it and/or +* modify it under the terms of the GNU General Public License +* as published by the Free Software Foundation (version 2 of the License) +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* You should have received a copy of the GNU General Public License +* along with this program; if not, write to the Free Software +* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +* +*/ + +#include <psconfig.h> + +#include "updaterconfig.h" + +iObjectRegistry* psUpdaterConfig::object_reg = NULL; + +psUpdaterConfig::psUpdaterConfig(csArray<csString> args, iObjectRegistry* _object_reg, csRef<iVFS> _vfs) +{ + // Initialize the config manager. + object_reg = _object_reg; + vfs = _vfs; + + if (!csInitializer::SetupConfigManager(object_reg, CONFIG_FILENAME)) + { + csReport(object_reg, CS_REPORTER_SEVERITY_ERROR, "updater2", + "csInitializer::SetupConfigManager failed!\n" + "Is your CRYSTAL environment variable set?"); + PS_PAUSEEXIT(1); + } + configManager = csQueryRegistry<iConfigManager> (object_reg); + + // Check if we're in the middle of a self update, and the iteration. + selfUpdating = 0; + for(uint i=0; i<args.GetSize(); i++) + { + csString arg = args.Pop(); + if(arg.Compare("selfUpdateFirst")) + selfUpdating = 1; + else if(arg.Compare("selfUpdateSecond")) + selfUpdating = 2; + } + + // Load config settings from cfg file. + configFile = new csConfigFile(CONFIG_FILENAME, vfs); + cleanUpdate = configFile->GetBool("Update.Clean", true); + proxy.host = configFile->GetStr("Updater.Proxy.Host", ""); + proxy.port = configFile->GetInt("Updater.Proxy.Port", 0); + + // Init xml config objects. + currentCon = new Config; + newCon = new Config; +} + +psUpdaterConfig::~psUpdaterConfig() +{ + delete currentCon; + delete newCon; + delete configFile; + currentCon = NULL; + newCon = NULL; + configFile = NULL; +} + +const char* Config::GetPlatform() +{ +#if defined(CS_PLATFORM_WIN32) + return "win32"; +#elif defined(CS_PLATFORM_MACOSX) + return "macosx"; +#elif defined(CS_PLATFORM_UNIX) && CS_PROCESSOR_SIZE == 64 + return "linux64"; +#elif defined(CS_PLATFORM_UNIX) && CS_PROCESSOR_SIZE == 32 + return "linux32"; +#endif + +} + +bool Config::Initialize(csRef<iDocumentNode> node) +{ + // Nodes we'll use to hold temp data. + csRef<iDocumentNode> tempNode; + csRef<iDocumentNode> tempNode2; + + // Get Updater info. + tempNode = node->GetNode("updater"); + if(tempNode) + { + tempNode2 = tempNode->GetNode("version"); + if(tempNode2) + updaterVersionLatest = tempNode2->GetContentsValueAsInt(); + else + { + printf("Unable to load version node!\n"); + return false; + } + tempNode2 = tempNode->GetNode("md5sum"); + if(tempNode2) + updaterVersionLatestMD5 = tempNode2->GetContentsValue(); + else + { + printf("Unable to load md5sum node!\n"); + return false; + } + } + else + { + printf("Unable to load updater node!\n"); + return false; + } + + // Get mirrors. + csRef<iDocumentNode> mirrorNode = node->GetNode("mirrors"); + if (mirrorNode) + { + csRef<iDocumentNodeIterator> nodeItr = mirrorNode->GetNodes(); + while(nodeItr->HasNext()) + { + csRef<iDocumentNode> mNode = nodeItr->Next(); + + if (!strcmp(mNode->GetValue(),"mirror")) + { + Mirror* mirror = new Mirror; + mirror->id = mNode->GetAttributeValueAsInt("id"); + mirror->name = mNode->GetAttributeValue("name"); + mirror->baseURL = mNode->GetAttributeValue("url"); + mirrors.Push(mirror); + } + } + } + else + { + printf("Unable to load mirrors!\n"); + return false; + } + + // Get client versions. + csRef<iDocumentNode> clientNode = node->GetNode("client"); + if(clientNode) + { + csRef<iDocumentNodeIterator> nodeItr = clientNode->GetNodes(); + while(nodeItr->HasNext()) + { + csRef<iDocumentNode> cNode = nodeItr->Next(); + if(!strcmp(cNode->GetValue(),"version")) + { + ClientVersion* cVersion = new ClientVersion; + cVersion->name = cNode->GetAttributeValue("name"); + cVersion->md5sum = cNode->GetAttributeValue(GetPlatform()); + clientVersions.Push(cVersion); + } + } + } + else + { + printf("Unable to load client info!\n"); + return false; + } + + // Successfully Loaded! + return true; +} + +csPDelArray<Mirror>* Config::GetMirrors() +{ + csPDelArray<Mirror>* a; + a = &mirrors; + return a; +} + +csPDelArray<ClientVersion>* Config::GetClientVersions() +{ + csPDelArray<ClientVersion>* a; + a = &clientVersions; + return a; +} Property changes on: trunk/src/pslaunch/updaterconfig.cpp ___________________________________________________________________ Name: svn:executable + * Added: trunk/src/pslaunch/updaterconfig.h =================================================================== --- trunk/src/pslaunch/updaterconfig.h (rev 0) +++ trunk/src/pslaunch/updaterconfig.h 2007-10-19 19:46:36 UTC (rev 31) @@ -0,0 +1,177 @@ +/* +* updaterconfig.h - Author: Mike Gist +* +* Copyright (C) 2007 Atomic Blue (in...@pl..., http://www.atomicblue.org) +* +* +* This program is free software; you can redistribute it and/or +* modify it under the terms of the GNU General Public License +* as published by the Free Software Foundation (version 2 of the License) +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* You should have received a copy of the GNU General Public License +* along with this program; if not, write to the Free Software +* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +* +*/ + +#ifndef __UPDATERCONFIG_H__ +#define __UPDATERCONFIG_H__ + +#include <csutil/csstring.h> +#include <cstool/initapp.h> +#include <csutil/array.h> +#include <csutil/parray.h> +#include <csutil/cfgmgr.h> +#include <csutil/cfgfile.h> +#include <iutil/document.h> + +#define CONFIG_FILENAME "/this/pslaunch.cfg" +#define UPDATERINFO_FILENAME "/this/updaterinfo.xml" +#define UPDATERINFO_OLD_FILENAME "/this/updaterinfo.xml.bak" + +#ifndef PS_PAUSEEXIT +#define PS_PAUSEEXIT(x) exit(x) +#endif + +class psUpdaterConfig; + +class Mirror +{ +public: + /* Return mirror ID */ + unsigned int GetID() { return id; } + + /* Return mirror name */ + csString GetName() { return name; } + + /* Return mirror URL */ + csString GetBaseURL() { return baseURL; } +protected: + friend class Config; + /* Mirror ID */ + uint id; + + /* Mirror name */ + csString name; + + /* URL of the mirror (including update dir) */ + csString baseURL; +}; + +class ClientVersion +{ +public: + /* Get client update file name */ + csString GetName() { return name; } + + /* Get client update file md5sum */ + csString GetMD5Sum() { return md5sum; } +protected: + friend class Config; + /* Client update file name */ + csString name; + + /* md5sum of the client update file */ + csString md5sum; +}; + +struct Proxy +{ + /* Hostname of the proxy */ + csString host; + /* Port */ + uint port; +}; + +class Config +{ +public: + /* Get mirrors. */ + csPDelArray<Mirror>* GetMirrors(); + + /* Get clientVersions list. */ + csPDelArray<ClientVersion>* GetClientVersions(); + + /* Init a xml config file. */ + bool Initialize(csRef<iDocumentNode> node); + + /* Get our platform string. */ + const char* GetPlatform(); + + /* Get latest updater version */ + int GetUpdaterVersionLatest() { return updaterVersionLatest; } + + /* Get latest updater version md5sum */ + const char* GetUpdaterVersionLatestMD5() { return updaterVersionLatestMD5; } + + +private: + /* Latest updater version */ + int updaterVersionLatest; + + /* Latest version md5sum */ + const char* updaterVersionLatestMD5; + + /* List of mirrors */ + csPDelArray<Mirror> mirrors; + + /* List of client versions */ + csPDelArray<ClientVersion> clientVersions; +}; + +class psUpdaterConfig +{ +public: + psUpdaterConfig(const csArray<csString> args, iObjectRegistry* _object_reg, csRef<iVFS> _vfs); + ~psUpdaterConfig(); + + /* Returns true if the updater is self updating */ + int IsSelfUpdating() const { return selfUpdating; } + + /* Returns the proxy struct */ + Proxy GetProxy() { return proxy; } + + /* Returns the current/old config from updaterinfo.xml */ + Config* GetCurrentConfig() { return currentCon; } + + /* Returns the new/downloaded config from updaterinfo.xml */ + Config* GetNewConfig() { return newCon; } + + /* Returns true if the last update was successful */ + bool WasCleanUpdate() { return cleanUpdate; } + + /* Returns the configfile for the app */ + csRef<iConfigFile> GetConfigFile() { return configFile; } + + +private: + /* Holds stage of self updating. */ + int selfUpdating; + + /* Holds whether or not the last update was successful */ + bool cleanUpdate; + + /* VFS, Object Registry */ + csRef<iVFS> vfs; + static iObjectRegistry* object_reg; + + /* Config Manager */ + csRef<iConfigManager> configManager; + + /* Config File */ + csRef<iConfigFile> configFile; + + /* Proxy server */ + Proxy proxy; + + /* Current Config */ + Config* currentCon; + + /* New Config */ + Config* newCon; +}; + +#endif // __UPDATERCONFIG_H__ Property changes on: trunk/src/pslaunch/updaterconfig.h ___________________________________________________________________ Name: svn:executable + * Added: trunk/src/pslaunch/updaterengine.cpp =================================================================== --- trunk/src/pslaunch/updaterengine.cpp (rev 0) +++ trunk/src/pslaunch/updaterengine.cpp 2007-10-19 19:46:36 UTC (rev 31) @@ -0,0 +1,612 @@ +/* +* updaterengine.cpp - Author: Mike Gist +* +* Copyright (C) 2007 Atomic Blue (in...@pl..., http://www.atomicblue.org) +* +* +* This program is free software; you can redistribute it and/or +* modify it under the terms of the GNU General Public License +* as published by the Free Software Foundation (version 2 of the License) +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* You should have received a copy of the GNU General Public License +* along with this program; if not, write to the Free Software +* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +* +*/ + +#include <psconfig.h> + +#include <csutil/xmltiny.h> +#include <iutil/stringarray.h> + +#include "updaterconfig.h" +#include "updaterengine.h" +#include "md5.h" +#include "binarypatch.h" + +#ifndef CS_COMPILER_MSVC +#include <unistd.h> +#endif + +iObjectRegistry* psUpdaterEngine::object_reg = NULL; + +psUpdaterEngine::psUpdaterEngine(const csArray<csString> args, iObjectRegistry* _object_reg, const char* _appName) +{ + object_reg = _object_reg; + vfs = csQueryRegistry<iVFS> (object_reg); + if(!vfs) + { + printf("No VFS!\n"); + PS_PAUSEEXIT(1); + } + config = new psUpdaterConfig(args, object_reg, vfs); + fileUtil = new FileUtil(vfs); + appName = _appName; +} + +psUpdaterEngine::~psUpdaterEngine() +{ + delete fileUtil; + fileUtil = NULL; +} + +void psUpdaterEngine::checkForUpdates() +{ + // Make sure the old instance had time to terminate (self-update). + if(config->IsSelfUpdating() != 0) + csSleep(500); + + // Check if the last attempt at a general updated ended in failure. + if(!config->WasCleanUpdate()) + { + // Restore config file which gives us the last updated position. + fileUtil->RemoveFile("updaterinfo.xml"); + fileUtil->CopyFile("updaterinfo.xml.bak", "updaterinfo.xml", false, false); + fileUtil->RemoveFile("updaterinfo.xml.bak"); + } + + + // Load current config data. + csRef<iDocumentNode> root = GetRootNode(UPDATERINFO_FILENAME); + if(!root) + { + printf("Unable to get root node"); + PS_PAUSEEXIT(1); + } + + csRef<iDocumentNode> confignode = root->GetNode("config"); + if (!confignode) + { + printf("Couldn't find config node in configfile!\n"); + PS_PAUSEEXIT(1); + } + + // Load updater config + if (!config->GetCurrentConfig()->Initialize(confignode)) + { + printf("Failed to Initialize mirror config current!\n"); + return; + } + + // Initialise downloader. + downloader = new Downloader(GetVFS(), config); + + //Set proxy + downloader->SetProxy(GetConfig()->GetProxy().host.GetData(), + GetConfig()->GetProxy().port); + + printf("Checking for updates to the updater!\n"); + + // Check for updater updates. + if(checkUpdater()) + { + // Begin the self update process. + selfUpdate(false); + // Restore config files before terminate. + fileUtil->RemoveFile("updaterinfo.xml"); + fileUtil->CopyFile("updaterinfo.xml.bak", "updaterinfo.xml", false, false); + fileUtil->RemoveFile("updaterinfo.xml.bak"); + return; + } + + printf("Checking for updates to all files!\n"); + + // Check for normal updates. + if(checkGeneral()) + { + // Mark update as incomplete. + config->GetConfigFile()->SetBool("Update.Clean", false); + config->GetConfigFile()->Save(); + + // Begin general update. + generalUpdate(); + + // Mark update as complete and clean up. + config->GetConfigFile()->SetBool("Update.Clean", true); + config->GetConfigFile()->Save(); + } + + delete downloader; + downloader = NULL; + return; +} + +bool psUpdaterEngine::checkUpdater() +{ + // Backup old config, download new. + fileUtil->CopyFile("updaterinfo.xml", "updaterinfo.xml.bak", false, false); + fileUtil->RemoveFile("updaterinfo.xml"); + downloader->DownloadFile("updaterinfo.xml", "updaterinfo.xml"); + + // Load new config data. + csRef<iDocumentNode> root = GetRootNode(UPDATERINFO_FILENAME); + if(!root) + { + printf("Unable to get root node"); + PS_PAUSEEXIT(1); + } + + csRef<iDocumentNode> confignode = root->GetNode("config"); + if (!confignode) + { + printf("Couldn't find config node in configfile!\n"); + PS_PAUSEEXIT(1); + } + + if (!config->GetNewConfig()->Initialize(confignode)) + { + printf("Failed to Initialize mirror config new!\n"); + PS_PAUSEEXIT(1); + } + + // Compare Versions. + return(config->GetNewConfig()->GetUpdaterVersionLatest() > UPDATER_VERSION); +} + +bool psUpdaterEngine::checkGeneral() +{ + /* + * Compare length of both old and new client version lists. + * If they're the same, then compare the last lines to be extra sure. + * If they're not, then we know there's some updates. + */ + + // Start by fetching the configs. + csPDelArray<ClientVersion>* oldCvs = config->GetCurrentConfig()->GetClientVersions(); + csPDelArray<ClientVersion>* newCvs = config->GetNewConfig()->GetClientVersions(); + + // Same size. + if(oldCvs->GetSize() == newCvs->GetSize()) + { + // If both are empty then skip the extra name check! + if(newCvs->GetSize() != 0) + { + ClientVersion* oldCv = oldCvs->Get(oldCvs->GetSize()-1); + ClientVersion* newCv = newCvs->Get(newCvs->GetSize()-1); + + if(!newCv->GetName().Compare(oldCv->GetName())) + { + // There's a problem and we can't continue. Throw a boo boo and clean up. + printf("Local config and server config are incompatible!\n"); + fileUtil->RemoveFile("updaterinfo.xml"); + fileUtil->CopyFile("updaterinfo.xml.bak", "updaterinfo.xml", false, false); + fileUtil->RemoveFile("updaterinfo.xml.bak"); + PS_PAUSEEXIT(1); + } + } + // Remove the backup of the xml (they're the same). + fileUtil->RemoveFile("updaterinfo.xml.bak"); + return false; + } + + // Not the same size, so there's updates. + return true; +} + +csRef<iDocumentNode> psUpdaterEngine::GetRootNode(csString nodeName) +{ + // Load xml. + csRef<iDocumentSystem> xml = csPtr<iDocumentSystem> (new csTinyDocumentSystem); + if (!xml) + { + printf("Could not load the XML Document System\n"); + return NULL; + } + + //Try to read file + csRef<iDataBuffer> buf = vfs->ReadFile (nodeName.GetData()); + if (!buf || !buf->GetSize()) + { + printf("Couldn't open config file '%s'!\n", nodeName.GetData()); + return NULL; + } + + //Try to parse file + configdoc = xml->CreateDocument(); + const char* error = configdoc->Parse(buf); + if (error) + { + printf("XML Parsing error in file '%s': %s.\n", nodeName.GetData(), error); + return NULL; + } + + //Try to get root + csRef<iDocumentNode> root = configdoc->GetRoot (); + if (!root) + { + printf("Couldn't get config file rootnode!"); + return NULL; + } + + return root; +} + +#ifdef CS_PLATFORM_WIN32 + +bool psUpdaterEngine::selfUpdate(int selfUpdating) +{ + // Info for CreateProcess. + STARTUPINFO siStartupInfo; + PROCESS_INFORMATION piProcessInfo; + memset(&siStartupInfo, 0, sizeof(siStartupInfo)); + memset(&piProcessInfo, 0, sizeof(piProcessInfo)); + siStartupInfo.cb = sizeof(siStartupInfo); + + // Check what stage of the update we're in. + switch(selfUpdating) + { + case 1: // We've downloaded the new file and executed it. + { + printf("Copying new files!\n"); + + // Construct executable names. + csString tempName = appName; + appName.AppendFmt(".exe"); + tempName.AppendFmt("2.exe"); + + // Delete the old updater file and copy the new in place. + fileUtil->RemoveFile(appName.GetData()); + fileUtil->CopyFile(tempName.GetData(), appName.GetData(), false, true); + + // Create a new process of the updater. + CreateProcess(appName.GetData(), "selfUpdateSecond", 0, 0, false, CREATE_DEFAULT_ERROR_MODE, 0, 0, &siStartupInfo, &piProcessInfo); + return true; + } + case 2: // We're now running the new updater in the correct location. + { + // Clean up left over files. + printf("\nCleaning up!\n"); + + // Construct zip name. + csString zip = appName; + zip.AppendFmt(config->GetCurrentConfig()->GetPlatform()); + zip.AppendFmt(".zip"); + + // Remove updater zip. + fileUtil->RemoveFile(zip); + + // Remove temp updater file. + fileUtil->RemoveFile(appName + "2.exe"); + + return false; + } + default: // We need to extract the new updater and execute it. + { + printf("Beginning self update!\n"); + + // Construct zip name. + csString zip = appName; + zip.AppendFmt(config->GetCurrentConfig()->GetPlatform()); + zip.AppendFmt(".zip"); + + // Download new updater file. + downloader->DownloadFile(zip, zip); + + // Check md5sum is correct. + MD5Sum md5(vfs); + bool md5status = md5.ReadFile("/this/" + zip); + if(!md5status) + { + printf("Could not get MD5 of updater zip!!\n"); + PS_PAUSEEXIT(1); + } + + csString md5sum = md5.Get(); + + if(!md5sum.Compare(config->GetNewConfig()->GetUpdaterVersionLatestMD5())) + { + printf("md5sum of updater zip does not match correct md5sum!!\n"); + PS_PAUSEEXIT(1); + } + + // md5sum is correct, mount zip and copy file. + vfs->Mount("/zip", zip.GetData()); + csString from = "zip/"; + from.AppendFmt(appName); + from.AppendFmt(".exe"); + appName.AppendFmt("2.exe"); + + fileUtil->CopyFile(from, "/this/" + appName, true, true); + vfs->Unmount("/zip", zip.GetData()); + + // Create a new process of the updater. + CreateProcess(appName.GetData(), "selfUpdateFirst", 0, 0, false, CREATE_DEFAULT_ERROR_MODE, 0, 0, &siStartupInfo, &piProcessInfo); + return true; + } + } +} + +#else + +bool psUpdaterEngine::selfUpdate(int selfUpdating) +{ + // Check what stage of the update we're in. + switch(selfUpdating) + { + case 1: // We've downloaded the new file and executed it. + { + printf("Copying new files!\n"); + + // Construct executable names. + csString appName2 = appName; + appName2.AppendFmt("2"); + + + // Delete the old updater file and copy the new in place. + fileUtil->RemoveFile(appName.GetData()); + fileUtil->CopyFile(appName2.GetData(), appName.GetData(), false, true); + + // Create a new process of the updater. + if(fork() == 0) + execl(appName, appName, "selfUpdateSecond", NULL); + return true; + } + case 2: // We're now running the new updater in the correct location. + { + // Clean up left over files. + printf("\nCleaning up!\n"); + + // Construct zip name. + csString zip = appName; + zip.AppendFmt(config->GetCurrentConfig()->GetPlatform()); + zip.AppendFmt(".zip"); + + // Remove updater zip. + fileUtil->RemoveFile(zip); + + // Remove temp updater file. + fileUtil->RemoveFile(appName + "2"); + + return false; + } + default: // We need to extract the new updater and execute it. + { + printf("Beginning self update!\n"); + + // Construct zip name. + csString zip = appName; + zip.AppendFmt(config->GetCurrentConfig()->GetPlatform()); + zip.AppendFmt(".zip"); + + // Download new updater file. + downloader->DownloadFile(zip, zip); + + // Check md5sum is correct. + MD5Sum md5(vfs); + bool md5status = md5.ReadFile("/this/" + zip); + if(!md5status) + { + printf("Could not get MD5 of updater zip!!\n"); + PS_PAUSEEXIT(1); + } + + csString md5sum = md5.Get(); + + if(!md5sum.Compare(config->GetNewConfig()->GetUpdaterVersionLatestMD5())) + { + printf("md5sum of updater zip does not match correct md5sum!!\n"); + PS_PAUSEEXIT(1); + } + + // md5sum is correct, mount zip and copy file. + vfs->Mount("/zip", zip.GetData()); + csString from = "zip/"; + from.AppendFmt(appName); + appName.AppendFmt("2"); + + fileUtil->CopyFile(from, "/this/" + appName, true, true); + vfs->Unmount("/zip", zip.GetData()); + + // Create a new process of the updater. + if(fork() == 0) + execl(appName, appName, "selfUpdateFirst", NULL); + return true; + } + } +} + +#endif + + +void psUpdaterEngine::generalUpdate() +{ + /* + * This function updates our non-updater files to the latest versions, + * writes new files and deletes old files. + * This may take several iterations of patching. + * After each iteration we need to update updaterinfo.xml.bak as well as the array. + */ + + // Start by fetching the configs. + csPDelArray<ClientVersion>* oldCvs = config->GetCurrentConfig()->GetClientVersions(); + csPDelArray<ClientVersion>* newCvs = config->GetNewConfig()->GetClientVersions(); + csRef<iDocumentNode> rootnode = GetRootNode(UPDATERINFO_OLD_FILENAME); + csRef<iDocumentNode> confignode = rootnode->GetNode("config"); + + if (!confignode) + { + printf("Couldn't... [truncated message content] |
From: <ke...@us...> - 2007-10-19 22:34:33
|
Revision: 37 http://planeshift.svn.sourceforge.net/planeshift/?rev=37&view=rev Author: kemedes Date: 2007-10-19 15:33:50 -0700 (Fri, 19 Oct 2007) Log Message: ----------- Added dynamic item price calculation. Now it uses math script to include quality of the item in the price calculation. Modified Paths: -------------- trunk/docs/history.txt trunk/src/server/bulkobjects/psitem.cpp trunk/src/server/bulkobjects/psitem.h trunk/src/server/database/mysql/math_scripts.sql Modified: trunk/docs/history.txt =================================================================== --- trunk/docs/history.txt 2007-10-19 22:24:50 UTC (rev 36) +++ trunk/docs/history.txt 2007-10-19 22:33:50 UTC (rev 37) @@ -1,3 +1,7 @@ +*** 2007-10-20 by Sasha Levin +- Added dynamic item price calculation. Now it uses math script to include quality of the + item in the calculation. + *** 2007-10-19 by Michael Gist - Wrote a new updater. Console only atm. Modified: trunk/src/server/bulkobjects/psitem.cpp =================================================================== --- trunk/src/server/bulkobjects/psitem.cpp 2007-10-19 22:24:50 UTC (rev 36) +++ trunk/src/server/bulkobjects/psitem.cpp 2007-10-19 22:33:50 UTC (rev 37) @@ -26,6 +26,7 @@ #include "util/log.h" #include "util/psstring.h" #include "util/serverconsole.h" +#include "util/mathscript.h" #include "psitem.h" #include "pscharacter.h" @@ -1465,9 +1466,34 @@ return decay_resistance; } -psMoney& psItem::GetPrice() +psMoney psItem::GetPrice() { - return current_stats->GetPrice(); + static MathScript *script; + if (!script) + script = psserver->GetMathScriptEngine()->FindScript("Calc Item Price"); + if (!script) + { + Error1("Cannot find mathscript: Calc Item Price"); + return current_stats->GetPrice(); + } + + static MathScriptVar *price; + static MathScriptVar *quality; + static MathScriptVar *maxquality; + static MathScriptVar *finalprice; + + price = script->GetOrCreateVar("Price"); + quality = script->GetOrCreateVar("Quality"); + maxquality = script->GetOrCreateVar("MaxQuality"); + finalprice = script->GetOrCreateVar("FinalPrice"); + + price->SetValue(current_stats->GetPrice().GetTotal()); + quality->SetValue(GetItemQuality()); + maxquality->SetValue(GetMaxItemQuality()); + + script->Execute(); + + return psMoney((int)(finalprice->GetValue())); } psMoney psItem::GetSellPrice() @@ -1475,7 +1501,7 @@ // Merchants like 20% profit. So we take the total price, // multiply with 0.8 and make a new money with that amount // as trias. - int price = int(current_stats->GetPrice().GetTotal() * 0.8); + int price = int(GetPrice().GetTotal() * 0.8); if (price == 0) price = 1; return psMoney(price); Modified: trunk/src/server/bulkobjects/psitem.h =================================================================== --- trunk/src/server/bulkobjects/psitem.h 2007-10-19 22:24:50 UTC (rev 36) +++ trunk/src/server/bulkobjects/psitem.h 2007-10-19 22:33:50 UTC (rev 37) @@ -630,7 +630,7 @@ bool FitsInSlots(PSITEMSTATS_SLOTLIST slotmask); bool FitsInSlot(INVENTORY_SLOT_NUMBER slot); float GetDecayResistance(); - psMoney& GetPrice(); + psMoney GetPrice(); psMoney GetSellPrice(); ///< Merchants want a percentage psItemCategory* GetCategory(); Modified: trunk/src/server/database/mysql/math_scripts.sql =================================================================== --- trunk/src/server/database/mysql/math_scripts.sql 2007-10-19 22:24:50 UTC (rev 36) +++ trunk/src/server/database/mysql/math_scripts.sql 2007-10-19 22:33:50 UTC (rev 37) @@ -225,4 +225,5 @@ PrimCount = Actor:getSkillValue(64) + 20; "); +INSERT INTO math_scripts VALUES( "Calc Item Price", "FinalPrice = Price + Quality + MaxQuality;"); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mg...@us...> - 2007-10-19 23:02:44
|
Revision: 38 http://planeshift.svn.sourceforge.net/planeshift/?rev=38&view=rev Author: mgist Date: 2007-10-19 16:02:49 -0700 (Fri, 19 Oct 2007) Log Message: ----------- - Updated build files from CS. Modified Paths: -------------- trunk/docs/history.txt trunk/mk/autoconf/checkprog.m4 trunk/mk/autoconf/checkpython.m4 trunk/mk/autoconf/compiler.m4 trunk/mk/jam/application.jam trunk/mk/jam/crystalspace_staticplugins_msvc.jam trunk/mk/jam/docs.jam trunk/mk/jam/flags.jam trunk/mk/jam/helper.jam trunk/mk/jam/install.jam trunk/mk/jam/library.jam trunk/mk/jam/msvcgen.jam trunk/mk/jam/objects.jam trunk/mk/jam/plugin.jam trunk/mk/jam/pythmod.jam trunk/mk/jam/static.jam trunk/mk/jam/strip.jam trunk/mk/jam/swig.jam trunk/mk/jam/unix.jam trunk/mk/jam/win32.jam trunk/mk/msvcgen/control.tlib trunk/mk/msvcgen/macros.tlib trunk/mk/msvcgen/workspaces.jam Added Paths: ----------- trunk/mk/msvc/crystalspace_staticplugins_msvc7.jam trunk/mk/msvc/crystalspace_staticplugins_msvc71.jam trunk/mk/msvc/crystalspace_staticplugins_msvc8.jam Modified: trunk/docs/history.txt =================================================================== --- trunk/docs/history.txt 2007-10-19 22:33:50 UTC (rev 37) +++ trunk/docs/history.txt 2007-10-19 23:02:49 UTC (rev 38) @@ -1,3 +1,6 @@ +*** 2007-10-20 by Michael Gist +- Updated build files from CS. + *** 2007-10-20 by Sasha Levin - Added dynamic item price calculation. Now it uses math script to include quality of the item in the calculation. Modified: trunk/mk/autoconf/checkprog.m4 =================================================================== --- trunk/mk/autoconf/checkprog.m4 2007-10-19 22:33:50 UTC (rev 37) +++ trunk/mk/autoconf/checkprog.m4 2007-10-19 23:02:49 UTC (rev 38) @@ -30,7 +30,7 @@ # /sw/bin -- Fink, the MacOS/X manager of Unix packages, installs # executables here. #------------------------------------------------------------------------------ -m4_define([cs_bin_paths_default], [/usr/local/bin, /sw/bin]) +m4_define([cs_bin_paths_default], [/usr/local/bin, /sw/bin, ${srcdir}/bin]) #------------------------------------------------------------------------------ Modified: trunk/mk/autoconf/checkpython.m4 =================================================================== --- trunk/mk/autoconf/checkpython.m4 2007-10-19 22:33:50 UTC (rev 37) +++ trunk/mk/autoconf/checkpython.m4 2007-10-19 23:02:49 UTC (rev 38) @@ -43,7 +43,8 @@ # "yes", then CS_EMIT_BUILD_RESULT()'s default emitter will be used. # When EMITTER is provided, the following properties are emitted to the # output file: PYTHON (the actual interpreter), PYTHON.AVAILABLE ("yes" -# or "no"), PYTHON.CFLAGS, PYTHON.LFLAGS, and PYTHON.MODULE_EXT. +# or "no"), PYTHON.CFLAGS, PYTHON.LFLAGS, PYTHON.VERSION, +# and PYTHON.MODULE_EXT. #------------------------------------------------------------------------------ AC_DEFUN([CS_CHECK_PYTHON], [AC_REQUIRE([CS_CHECK_PTHREAD]) @@ -56,7 +57,7 @@ AS_IF([test -z "$with_python"], [with_python=m4_if([$2], [without], [no], [yes])]) - CS_CHECK_PROGS([PYTHON], [python]) + CS_CHECK_TOOLS([PYTHON], [python]) AC_SUBST([PYTHON]) CS_EMIT_BUILD_PROPERTY([PYTHON],[$PYTHON],[],[],CS_EMITTER_OPTIONAL([$1])) @@ -66,6 +67,9 @@ print string.join(map(str,sys.version_info[[:2]]),".")'])` cs_cv_pybase="python${cs_pyver}" + CS_EMIT_BUILD_PROPERTY([PYTHON.VERSION],[$cs_pyver],[],[], + CS_EMITTER_OPTIONAL([$1])) + cs_cv_pybase_cflags=CS_RUN_PATH_NORMALIZE([$PYTHON -c \ 'import distutils.sysconfig; \ print "-I" + distutils.sysconfig.get_python_inc()']) @@ -102,9 +106,9 @@ AS_IF([test -n "$cs_pyver" && test -n "$cs_cv_pybase_cflags" && - test -n "$cs_cv_pybase_lflags$cs_cv_pybase_sysprefix_lflags"], + test -n "$cs_cv_pybase_lflags_base$cs_cv_pybase_sysprefix_lflags"], [cs_cv_python_sdk=yes], [cs_cv_python_sdk=no])]) - + # Check if Python SDK is usable. The most common library name is the # basename with a few decorations (for example, libpython2.2.a), # however some Windows libraries lack the decimal point (for example, Modified: trunk/mk/autoconf/compiler.m4 =================================================================== --- trunk/mk/autoconf/compiler.m4 2007-10-19 22:33:50 UTC (rev 37) +++ trunk/mk/autoconf/compiler.m4 2007-10-19 23:02:49 UTC (rev 38) @@ -144,6 +144,20 @@ CS_CHECK_BUILD_FLAGS([if --no-as-needed is supported], [cs_cv_prog_link_no_as_needed], [CS_CREATE_TUPLE([-Wl,--no-as-needed])], [C++])])]) + + # Check if linker supports --gc-sections. + AC_ARG_ENABLE([gc-sections], + [AC_HELP_STRING([--enable-gc-sections], + [Utilize --gc-sections linker flag for some targets (default YES)])]) + AS_IF([test -z "$enable_gc_sections"], + [enable_gc_sections=yes]) + AS_IF([test "$enable_gc_sections" != "no"], + [CS_CHECK_BUILD_FLAGS([if --gc-sections is supported], + [cs_cv_prog_link_gc_sections], + [CS_CREATE_TUPLE([-Wl,--gc-sections])], + [C++], + [CS_EMIT_BUILD_PROPERTY([LINK.GC_SECTIONS], + [$cs_cv_prog_link_gc_sections])])]) ]) #----------------------------------------------------------------------------- Modified: trunk/mk/jam/application.jam =================================================================== --- trunk/mk/jam/application.jam 2007-10-19 22:33:50 UTC (rev 37) +++ trunk/mk/jam/application.jam 2007-10-19 23:02:49 UTC (rev 38) @@ -102,7 +102,6 @@ Always $(<)clean ; NotFile $(<)clean ; Clean $(<)clean : $(objects) $(cleanextra) ; - Clean clean : $(cleanextra) ; if ! [ IsElem nohelp : $(3) ] { Modified: trunk/mk/jam/crystalspace_staticplugins_msvc.jam =================================================================== --- trunk/mk/jam/crystalspace_staticplugins_msvc.jam 2007-10-19 22:33:50 UTC (rev 37) +++ trunk/mk/jam/crystalspace_staticplugins_msvc.jam 2007-10-19 23:02:49 UTC (rev 38) @@ -1,590 +1,14 @@ -# This file is automatically generated to be used together with crystalspace_staticplugins -# and must be integrated by setting the correct values for the -# HAVE_STATICDEPS.<package> and <package>.STATICDEPS via MsvcGenConfig. -# Furthermore, this file might require manual updates from the master copy -# (usually found in the package's source repository) every now and then. -STATICPLUGINS.AVAILABLE += csopcode ; -STATICPLUGIN.csopcode.CFLAGS.debug = ; -STATICPLUGIN.csopcode.CFLAGS.release = ; -STATICPLUGIN.csopcode.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.csopcode.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += csconin ; -STATICPLUGIN.csconin.CFLAGS.debug = ; -STATICPLUGIN.csconin.CFLAGS.release = ; -STATICPLUGIN.csconin.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.csconin.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += fancycon ; -STATICPLUGIN.fancycon.CFLAGS.debug = ; -STATICPLUGIN.fancycon.CFLAGS.release = ; -STATICPLUGIN.fancycon.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.fancycon.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += csconout ; -STATICPLUGIN.csconout.CFLAGS.debug = ; -STATICPLUGIN.csconout.CFLAGS.release = ; -STATICPLUGIN.csconout.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.csconout.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += _pycscegui ; -STATICPLUGIN._pycscegui.CFLAGS.debug = "/D SWIG_GLOBAL" "/D SWIG_GLOBAL" ; -STATICPLUGIN._pycscegui.CFLAGS.release = "/D SWIG_GLOBAL" "/D SWIG_GLOBAL" ; -STATICPLUGIN._pycscegui.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_python_d.lib libcrystalspace_d.lib CEGUIBase-vc8_d.lib ; -STATICPLUGIN._pycscegui.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace_python.lib libcrystalspace.lib CEGUIBase-vc8.lib ; -STATICPLUGINS.AVAILABLE += csparser ; -STATICPLUGIN.csparser.CFLAGS.debug = ; -STATICPLUGIN.csparser.CFLAGS.release = ; -STATICPLUGIN.csparser.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.csparser.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += cssynldr ; -STATICPLUGIN.cssynldr.CFLAGS.debug = ; -STATICPLUGIN.cssynldr.CFLAGS.release = ; -STATICPLUGIN.cssynldr.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.cssynldr.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += cssaver ; -STATICPLUGIN.cssaver.CFLAGS.debug = ; -STATICPLUGIN.cssaver.CFLAGS.release = ; -STATICPLUGIN.cssaver.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.cssaver.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += dynavis ; -STATICPLUGIN.dynavis.CFLAGS.debug = ; -STATICPLUGIN.dynavis.CFLAGS.release = ; -STATICPLUGIN.dynavis.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.dynavis.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += frustvis ; -STATICPLUGIN.frustvis.CFLAGS.debug = ; -STATICPLUGIN.frustvis.CFLAGS.release = ; -STATICPLUGIN.frustvis.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.frustvis.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += decal ; -STATICPLUGIN.decal.CFLAGS.debug = ; -STATICPLUGIN.decal.CFLAGS.release = ; -STATICPLUGIN.decal.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.decal.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += joywin ; -STATICPLUGIN.joywin.CFLAGS.debug = ; -STATICPLUGIN.joywin.CFLAGS.release = ; -STATICPLUGIN.joywin.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_directx_d.lib libcrystalspace_d.lib zlib.lib dsound.lib ddraw.lib dinput.lib ; -STATICPLUGIN.joywin.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace_directx.lib libcrystalspace.lib zlib.lib dsound.lib ddraw.lib dinput.lib ; -STATICPLUGINS.AVAILABLE += bindoc ; -STATICPLUGIN.bindoc.CFLAGS.debug = ; -STATICPLUGIN.bindoc.CFLAGS.release = ; -STATICPLUGIN.bindoc.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.bindoc.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += dsplex ; -STATICPLUGIN.dsplex.CFLAGS.debug = ; -STATICPLUGIN.dsplex.CFLAGS.release = ; -STATICPLUGIN.dsplex.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.dsplex.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += xmlread ; -STATICPLUGIN.xmlread.CFLAGS.debug = ; -STATICPLUGIN.xmlread.CFLAGS.release = ; -STATICPLUGIN.xmlread.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.xmlread.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += xmltiny ; -STATICPLUGIN.xmltiny.CFLAGS.debug = ; -STATICPLUGIN.xmltiny.CFLAGS.release = ; -STATICPLUGIN.xmltiny.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.xmltiny.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += engine ; -STATICPLUGIN.engine.CFLAGS.debug = ; -STATICPLUGIN.engine.CFLAGS.release = ; -STATICPLUGIN.engine.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.engine.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += rendloop_loader ; -STATICPLUGIN.rendloop_loader.CFLAGS.debug = ; -STATICPLUGIN.rendloop_loader.CFLAGS.release = ; -STATICPLUGIN.rendloop_loader.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.rendloop_loader.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += rendstep_std ; -STATICPLUGIN.rendstep_std.CFLAGS.debug = ; -STATICPLUGIN.rendstep_std.CFLAGS.release = ; -STATICPLUGIN.rendstep_std.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.rendstep_std.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += rendstep_stencil ; -STATICPLUGIN.rendstep_stencil.CFLAGS.debug = ; -STATICPLUGIN.rendstep_stencil.CFLAGS.release = ; -STATICPLUGIN.rendstep_stencil.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.rendstep_stencil.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += rendstep_stencil2 ; -STATICPLUGIN.rendstep_stencil2.CFLAGS.debug = ; -STATICPLUGIN.rendstep_stencil2.CFLAGS.release = ; -STATICPLUGIN.rendstep_stencil2.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.rendstep_stencil2.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += engseq ; -STATICPLUGIN.engseq.CFLAGS.debug = ; -STATICPLUGIN.engseq.CFLAGS.release = ; -STATICPLUGIN.engseq.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.engseq.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += vfs ; -STATICPLUGIN.vfs.CFLAGS.debug = ; -STATICPLUGIN.vfs.CFLAGS.release = ; -STATICPLUGIN.vfs.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.vfs.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += csfont ; -STATICPLUGIN.csfont.CFLAGS.debug = ; -STATICPLUGIN.csfont.CFLAGS.release = ; -STATICPLUGIN.csfont.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.csfont.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += fontplex ; -STATICPLUGIN.fontplex.CFLAGS.debug = ; -STATICPLUGIN.fontplex.CFLAGS.release = ; -STATICPLUGIN.fontplex.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.fontplex.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += freefnt2 ; -STATICPLUGIN.freefnt2.CFLAGS.debug = ; -STATICPLUGIN.freefnt2.CFLAGS.release = ; -STATICPLUGIN.freefnt2.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib freetype2.lib ; -STATICPLUGIN.freefnt2.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib freetype2.lib ; -STATICPLUGINS.AVAILABLE += cscegui ; -STATICPLUGIN.cscegui.CFLAGS.debug = ; -STATICPLUGIN.cscegui.CFLAGS.release = ; -STATICPLUGIN.cscegui.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib CEGUIBase-vc8_d.lib ; -STATICPLUGIN.cscegui.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib CEGUIBase-vc8.lib ; -STATICPLUGINS.AVAILABLE += bezier ; -STATICPLUGIN.bezier.CFLAGS.debug = ; -STATICPLUGIN.bezier.CFLAGS.release = ; -STATICPLUGIN.bezier.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.bezier.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += bezierldr ; -STATICPLUGIN.bezierldr.CFLAGS.debug = ; -STATICPLUGIN.bezierldr.CFLAGS.release = ; -STATICPLUGIN.bezierldr.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.bezierldr.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += emit ; -STATICPLUGIN.emit.CFLAGS.debug = ; -STATICPLUGIN.emit.CFLAGS.release = ; -STATICPLUGIN.emit.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.emit.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += emitldr ; -STATICPLUGIN.emitldr.CFLAGS.debug = ; -STATICPLUGIN.emitldr.CFLAGS.release = ; -STATICPLUGIN.emitldr.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.emitldr.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += genmesh ; -STATICPLUGIN.genmesh.CFLAGS.debug = ; -STATICPLUGIN.genmesh.CFLAGS.release = ; -STATICPLUGIN.genmesh.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.genmesh.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += gmeshldr ; -STATICPLUGIN.gmeshldr.CFLAGS.debug = ; -STATICPLUGIN.gmeshldr.CFLAGS.release = ; -STATICPLUGIN.gmeshldr.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.gmeshldr.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += gmesh3ds ; -STATICPLUGIN.gmesh3ds.CFLAGS.debug = ; -STATICPLUGIN.gmesh3ds.CFLAGS.release = ; -STATICPLUGIN.gmesh3ds.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib lib3ds.lib ; -STATICPLUGIN.gmesh3ds.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib lib3ds.lib ; -STATICPLUGINS.AVAILABLE += gmeshanim ; -STATICPLUGIN.gmeshanim.CFLAGS.debug = ; -STATICPLUGIN.gmeshanim.CFLAGS.release = ; -STATICPLUGIN.gmeshanim.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.gmeshanim.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += gmeshskelanim2 ; -STATICPLUGIN.gmeshskelanim2.CFLAGS.debug = ; -STATICPLUGIN.gmeshskelanim2.CFLAGS.release = ; -STATICPLUGIN.gmeshskelanim2.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.gmeshskelanim2.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += gmeshanimpdl ; -STATICPLUGIN.gmeshanimpdl.CFLAGS.debug = ; -STATICPLUGIN.gmeshanimpdl.CFLAGS.release = ; -STATICPLUGIN.gmeshanimpdl.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.gmeshanimpdl.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += haze ; -STATICPLUGIN.haze.CFLAGS.debug = ; -STATICPLUGIN.haze.CFLAGS.release = ; -STATICPLUGIN.haze.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.haze.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += hazeldr ; -STATICPLUGIN.hazeldr.CFLAGS.debug = ; -STATICPLUGIN.hazeldr.CFLAGS.release = ; -STATICPLUGIN.hazeldr.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.hazeldr.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += instmesh ; -STATICPLUGIN.instmesh.CFLAGS.debug = ; -STATICPLUGIN.instmesh.CFLAGS.release = ; -STATICPLUGIN.instmesh.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.instmesh.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += instmeshldr ; -STATICPLUGIN.instmeshldr.CFLAGS.debug = ; -STATICPLUGIN.instmeshldr.CFLAGS.release = ; -STATICPLUGIN.instmeshldr.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.instmeshldr.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += lghtng ; -STATICPLUGIN.lghtng.CFLAGS.debug = ; -STATICPLUGIN.lghtng.CFLAGS.release = ; -STATICPLUGIN.lghtng.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.lghtng.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += lghtngldr ; -STATICPLUGIN.lghtngldr.CFLAGS.debug = ; -STATICPLUGIN.lghtngldr.CFLAGS.release = ; -STATICPLUGIN.lghtngldr.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.lghtngldr.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += nullmesh ; -STATICPLUGIN.nullmesh.CFLAGS.debug = ; -STATICPLUGIN.nullmesh.CFLAGS.release = ; -STATICPLUGIN.nullmesh.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.nullmesh.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += nullmeshldr ; -STATICPLUGIN.nullmeshldr.CFLAGS.debug = ; -STATICPLUGIN.nullmeshldr.CFLAGS.release = ; -STATICPLUGIN.nullmeshldr.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.nullmeshldr.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += particles ; -STATICPLUGIN.particles.CFLAGS.debug = ; -STATICPLUGIN.particles.CFLAGS.release = ; -STATICPLUGIN.particles.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.particles.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += particlesldr ; -STATICPLUGIN.particlesldr.CFLAGS.debug = ; -STATICPLUGIN.particlesldr.CFLAGS.release = ; -STATICPLUGIN.particlesldr.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.particlesldr.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += spr2d ; -STATICPLUGIN.spr2d.CFLAGS.debug = ; -STATICPLUGIN.spr2d.CFLAGS.release = ; -STATICPLUGIN.spr2d.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.spr2d.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += spr2dldr ; -STATICPLUGIN.spr2dldr.CFLAGS.debug = ; -STATICPLUGIN.spr2dldr.CFLAGS.release = ; -STATICPLUGIN.spr2dldr.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.spr2dldr.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += spr3d ; -STATICPLUGIN.spr3d.CFLAGS.debug = ; -STATICPLUGIN.spr3d.CFLAGS.release = ; -STATICPLUGIN.spr3d.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.spr3d.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += spr3dbin ; -STATICPLUGIN.spr3dbin.CFLAGS.debug = ; -STATICPLUGIN.spr3dbin.CFLAGS.release = ; -STATICPLUGIN.spr3dbin.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.spr3dbin.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += spr3dldr ; -STATICPLUGIN.spr3dldr.CFLAGS.debug = ; -STATICPLUGIN.spr3dldr.CFLAGS.release = ; -STATICPLUGIN.spr3dldr.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.spr3dldr.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += spr3md2 ; -STATICPLUGIN.spr3md2.CFLAGS.debug = ; -STATICPLUGIN.spr3md2.CFLAGS.release = ; -STATICPLUGIN.spr3md2.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.spr3md2.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += sprcal3d ; -STATICPLUGIN.sprcal3d.CFLAGS.debug = "/D CS_HAVE_CAL3D" ; -STATICPLUGIN.sprcal3d.CFLAGS.release = "/D CS_HAVE_CAL3D" ; -STATICPLUGIN.sprcal3d.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib cal3d-vc8_d.lib ; -STATICPLUGIN.sprcal3d.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib cal3d-vc8.lib ; -STATICPLUGINS.AVAILABLE += sprcal3dldr ; -STATICPLUGIN.sprcal3dldr.CFLAGS.debug = "/D CS_HAVE_CAL3D" ; -STATICPLUGIN.sprcal3dldr.CFLAGS.release = "/D CS_HAVE_CAL3D" ; -STATICPLUGIN.sprcal3dldr.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib cal3d-vc8_d.lib ; -STATICPLUGIN.sprcal3dldr.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib cal3d-vc8.lib ; -STATICPLUGINS.AVAILABLE += bruteblock ; -STATICPLUGIN.bruteblock.CFLAGS.debug = ; -STATICPLUGIN.bruteblock.CFLAGS.release = ; -STATICPLUGIN.bruteblock.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.bruteblock.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += terrainldr ; -STATICPLUGIN.terrainldr.CFLAGS.debug = ; -STATICPLUGIN.terrainldr.CFLAGS.release = ; -STATICPLUGIN.terrainldr.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.terrainldr.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += terrain2ldr ; -STATICPLUGIN.terrain2ldr.CFLAGS.debug = ; -STATICPLUGIN.terrain2ldr.CFLAGS.release = ; -STATICPLUGIN.terrain2ldr.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.terrain2ldr.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += terrain2 ; -STATICPLUGIN.terrain2.CFLAGS.debug = ; -STATICPLUGIN.terrain2.CFLAGS.release = ; -STATICPLUGIN.terrain2.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.terrain2.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += thing ; -STATICPLUGIN.thing.CFLAGS.debug = ; -STATICPLUGIN.thing.CFLAGS.release = ; -STATICPLUGIN.thing.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.thing.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += thingldr ; -STATICPLUGIN.thingldr.CFLAGS.debug = ; -STATICPLUGIN.thingldr.CFLAGS.release = ; -STATICPLUGIN.thingldr.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.thingldr.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += protomesh ; -STATICPLUGIN.protomesh.CFLAGS.debug = ; -STATICPLUGIN.protomesh.CFLAGS.release = ; -STATICPLUGIN.protomesh.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.protomesh.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += protomeshldr ; -STATICPLUGIN.protomeshldr.CFLAGS.debug = ; -STATICPLUGIN.protomeshldr.CFLAGS.release = ; -STATICPLUGIN.protomeshldr.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.protomeshldr.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += skeleton ; -STATICPLUGIN.skeleton.CFLAGS.debug = ; -STATICPLUGIN.skeleton.CFLAGS.release = ; -STATICPLUGIN.skeleton.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.skeleton.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += skelldr ; -STATICPLUGIN.skelldr.CFLAGS.debug = ; -STATICPLUGIN.skelldr.CFLAGS.release = ; -STATICPLUGIN.skelldr.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.skelldr.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += physldr ; -STATICPLUGIN.physldr.CFLAGS.debug = ; -STATICPLUGIN.physldr.CFLAGS.release = ; -STATICPLUGIN.physldr.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.physldr.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += odedynam ; -STATICPLUGIN.odedynam.CFLAGS.debug = ; -STATICPLUGIN.odedynam.CFLAGS.release = ; -STATICPLUGIN.odedynam.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ode.lib ; -STATICPLUGIN.odedynam.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ode.lib ; -STATICPLUGINS.AVAILABLE += bullet ; -STATICPLUGIN.bullet.CFLAGS.debug = ; -STATICPLUGIN.bullet.CFLAGS.release = ; -STATICPLUGIN.bullet.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib bullet-vc8_d.lib bulletdynamics-vc8_d.lib bulletphysicsinterfacecommon-vc8_d.lib bulletccdphysics-vc8_d.lib bulletmath-vc8_d.lib ; -STATICPLUGIN.bullet.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib bullet-vc8.lib bulletdynamics-vc8.lib bulletphysicsinterfacecommon-vc8.lib bulletccdphysics-vc8.lib bulletmath-vc8.lib ; -STATICPLUGINS.AVAILABLE += ptanimimg ; -STATICPLUGIN.ptanimimg.CFLAGS.debug = ; -STATICPLUGIN.ptanimimg.CFLAGS.release = ; -STATICPLUGIN.ptanimimg.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.ptanimimg.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += ptpdlight ; -STATICPLUGIN.ptpdlight.CFLAGS.debug = ; -STATICPLUGIN.ptpdlight.CFLAGS.release = ; -STATICPLUGIN.ptpdlight.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.ptpdlight.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += stdpt ; -STATICPLUGIN.stdpt.CFLAGS.debug = ; -STATICPLUGIN.stdpt.CFLAGS.release = ; -STATICPLUGIN.stdpt.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.stdpt.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += tlfunc ; -STATICPLUGIN.tlfunc.CFLAGS.debug = ; -STATICPLUGIN.tlfunc.CFLAGS.release = ; -STATICPLUGIN.tlfunc.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.tlfunc.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += reporter ; -STATICPLUGIN.reporter.CFLAGS.debug = ; -STATICPLUGIN.reporter.CFLAGS.release = ; -STATICPLUGIN.reporter.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.reporter.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += sequence ; -STATICPLUGIN.sequence.CFLAGS.debug = ; -STATICPLUGIN.sequence.CFLAGS.release = ; -STATICPLUGIN.sequence.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.sequence.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += sndsysloader ; -STATICPLUGIN.sndsysloader.CFLAGS.debug = ; -STATICPLUGIN.sndsysloader.CFLAGS.release = ; -STATICPLUGIN.sndsysloader.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.sndsysloader.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += sndsysogg ; -STATICPLUGIN.sndsysogg.CFLAGS.debug = ; -STATICPLUGIN.sndsysogg.CFLAGS.release = ; -STATICPLUGIN.sndsysogg.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib vorbisfile.lib vorbis.lib ogg.lib ; -STATICPLUGIN.sndsysogg.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib vorbisfile.lib vorbis.lib ogg.lib ; -STATICPLUGINS.AVAILABLE += sndsyswav ; -STATICPLUGIN.sndsyswav.CFLAGS.debug = ; -STATICPLUGIN.sndsyswav.CFLAGS.release = ; -STATICPLUGIN.sndsyswav.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.sndsyswav.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += sndmanager ; -STATICPLUGIN.sndmanager.CFLAGS.debug = ; -STATICPLUGIN.sndmanager.CFLAGS.release = ; -STATICPLUGIN.sndmanager.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.sndmanager.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += sndsyssoft ; -STATICPLUGIN.sndsyssoft.CFLAGS.debug = ; -STATICPLUGIN.sndsyssoft.CFLAGS.release = ; -STATICPLUGIN.sndsyssoft.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.sndsyssoft.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += sndsyswin ; -STATICPLUGIN.sndsyswin.CFLAGS.debug = ; -STATICPLUGIN.sndsyswin.CFLAGS.release = ; -STATICPLUGIN.sndsyswin.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_directx_d.lib libcrystalspace_d.lib zlib.lib dsound.lib ddraw.lib dinput.lib ; -STATICPLUGIN.sndsyswin.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace_directx.lib libcrystalspace.lib zlib.lib dsound.lib ddraw.lib dinput.lib ; -STATICPLUGINS.AVAILABLE += sndsysnull ; -STATICPLUGIN.sndsysnull.CFLAGS.debug = ; -STATICPLUGIN.sndsysnull.CFLAGS.release = ; -STATICPLUGIN.sndsysnull.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.sndsysnull.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += sndsyseventrecorder ; -STATICPLUGIN.sndsyseventrecorder.CFLAGS.debug = ; -STATICPLUGIN.sndsyseventrecorder.CFLAGS.release = ; -STATICPLUGIN.sndsyseventrecorder.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.sndsyseventrecorder.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += stdrep ; -STATICPLUGIN.stdrep.CFLAGS.debug = ; -STATICPLUGIN.stdrep.CFLAGS.release = ; -STATICPLUGIN.stdrep.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.stdrep.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += simpleformer ; -STATICPLUGIN.simpleformer.CFLAGS.debug = ; -STATICPLUGIN.simpleformer.CFLAGS.release = ; -STATICPLUGIN.simpleformer.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.simpleformer.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += simpleformerldr ; -STATICPLUGIN.simpleformerldr.CFLAGS.debug = ; -STATICPLUGIN.simpleformerldr.CFLAGS.release = ; -STATICPLUGIN.simpleformerldr.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.simpleformerldr.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += pagingformer ; -STATICPLUGIN.pagingformer.CFLAGS.debug = ; -STATICPLUGIN.pagingformer.CFLAGS.release = ; -STATICPLUGIN.pagingformer.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.pagingformer.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += pagingformerldr ; -STATICPLUGIN.pagingformerldr.CFLAGS.debug = ; -STATICPLUGIN.pagingformerldr.CFLAGS.release = ; -STATICPLUGIN.pagingformerldr.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.pagingformerldr.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += trans_std ; -STATICPLUGIN.trans_std.CFLAGS.debug = ; -STATICPLUGIN.trans_std.CFLAGS.release = ; -STATICPLUGIN.trans_std.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.trans_std.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += bugplug ; -STATICPLUGIN.bugplug.CFLAGS.debug = ; -STATICPLUGIN.bugplug.CFLAGS.release = ; -STATICPLUGIN.bugplug.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.bugplug.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += movierecorder ; -STATICPLUGIN.movierecorder.CFLAGS.debug = ; -STATICPLUGIN.movierecorder.CFLAGS.release = ; -STATICPLUGIN.movierecorder.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.movierecorder.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += profiler ; -STATICPLUGIN.profiler.CFLAGS.debug = ; -STATICPLUGIN.profiler.CFLAGS.release = ; -STATICPLUGIN.profiler.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.profiler.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += cacacanvas ; -STATICPLUGIN.cacacanvas.CFLAGS.debug = ; -STATICPLUGIN.cacacanvas.CFLAGS.release = ; -STATICPLUGIN.cacacanvas.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib libcaca.lib ; -STATICPLUGIN.cacacanvas.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib libcaca.lib ; -STATICPLUGINS.AVAILABLE += ddraw2d ; -STATICPLUGIN.ddraw2d.CFLAGS.debug = ; -STATICPLUGIN.ddraw2d.CFLAGS.release = ; -STATICPLUGIN.ddraw2d.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_windows_d.lib libcrystalspace_directx_d.lib libcrystalspace_d.lib dsound.lib ddraw.lib dinput.lib zlib.lib ; -STATICPLUGIN.ddraw2d.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace_windows.lib libcrystalspace_directx.lib libcrystalspace.lib dsound.lib ddraw.lib dinput.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += embedgl ; -STATICPLUGIN.embedgl.CFLAGS.debug = ; -STATICPLUGIN.embedgl.CFLAGS.release = ; -STATICPLUGIN.embedgl.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_opengl_d.lib libcrystalspace_d.lib opengl32.lib zlib.lib ; -STATICPLUGIN.embedgl.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace_opengl.lib libcrystalspace.lib opengl32.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += memory2d ; -STATICPLUGIN.memory2d.CFLAGS.debug = ; -STATICPLUGIN.memory2d.CFLAGS.release = ; -STATICPLUGIN.memory2d.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.memory2d.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += null2d ; -STATICPLUGIN.null2d.CFLAGS.debug = ; -STATICPLUGIN.null2d.CFLAGS.release = ; -STATICPLUGIN.null2d.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.null2d.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += glwin32 ; -STATICPLUGIN.glwin32.CFLAGS.debug = ; -STATICPLUGIN.glwin32.CFLAGS.release = ; -STATICPLUGIN.glwin32.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_windows_d.lib libcrystalspace_opengl_d.lib libcrystalspace_d.lib opengl32.lib zlib.lib version.lib ; -STATICPLUGIN.glwin32.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace_windows.lib libcrystalspace_opengl.lib libcrystalspace.lib opengl32.lib zlib.lib version.lib ; -STATICPLUGINS.AVAILABLE += csbmpimg ; -STATICPLUGIN.csbmpimg.CFLAGS.debug = ; -STATICPLUGIN.csbmpimg.CFLAGS.release = ; -STATICPLUGIN.csbmpimg.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.csbmpimg.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += csddsimg ; -STATICPLUGIN.csddsimg.CFLAGS.debug = ; -STATICPLUGIN.csddsimg.CFLAGS.release = ; -STATICPLUGIN.csddsimg.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.csddsimg.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += csgifimg ; -STATICPLUGIN.csgifimg.CFLAGS.debug = ; -STATICPLUGIN.csgifimg.CFLAGS.release = ; -STATICPLUGIN.csgifimg.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.csgifimg.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += csjngimg ; -STATICPLUGIN.csjngimg.CFLAGS.debug = ; -STATICPLUGIN.csjngimg.CFLAGS.release = ; -STATICPLUGIN.csjngimg.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib libmng.lib libjpeg.lib ; -STATICPLUGIN.csjngimg.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib libmng.lib libjpeg.lib ; -STATICPLUGINS.AVAILABLE += csjpgimg ; -STATICPLUGIN.csjpgimg.CFLAGS.debug = ; -STATICPLUGIN.csjpgimg.CFLAGS.release = ; -STATICPLUGIN.csjpgimg.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib libjpeg.lib ; -STATICPLUGIN.csjpgimg.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib libjpeg.lib ; -STATICPLUGINS.AVAILABLE += imgplex ; -STATICPLUGIN.imgplex.CFLAGS.debug = ; -STATICPLUGIN.imgplex.CFLAGS.release = ; -STATICPLUGIN.imgplex.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.imgplex.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += cspngimg ; -STATICPLUGIN.cspngimg.CFLAGS.debug = ; -STATICPLUGIN.cspngimg.CFLAGS.release = ; -STATICPLUGIN.cspngimg.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib libpng.lib ; -STATICPLUGIN.cspngimg.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib libpng.lib ; -STATICPLUGINS.AVAILABLE += cstgaimg ; -STATICPLUGIN.cstgaimg.CFLAGS.debug = ; -STATICPLUGIN.cstgaimg.CFLAGS.release = ; -STATICPLUGIN.cstgaimg.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.cstgaimg.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += gl3d ; -STATICPLUGIN.gl3d.CFLAGS.debug = ; -STATICPLUGIN.gl3d.CFLAGS.release = ; -STATICPLUGIN.gl3d.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib opengl32.lib ; -STATICPLUGIN.gl3d.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib opengl32.lib ; -STATICPLUGINS.AVAILABLE += soft3d ; -STATICPLUGIN.soft3d.CFLAGS.debug = ; -STATICPLUGIN.soft3d.CFLAGS.release = ; -STATICPLUGIN.soft3d.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.soft3d.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += shadermgr ; -STATICPLUGIN.shadermgr.CFLAGS.debug = ; -STATICPLUGIN.shadermgr.CFLAGS.release = ; -STATICPLUGIN.shadermgr.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.shadermgr.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += glshader_arb ; -STATICPLUGIN.glshader_arb.CFLAGS.debug = ; -STATICPLUGIN.glshader_arb.CFLAGS.release = ; -STATICPLUGIN.glshader_arb.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib opengl32.lib ; -STATICPLUGIN.glshader_arb.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib opengl32.lib ; -STATICPLUGINS.AVAILABLE += glshader_cg ; -STATICPLUGIN.glshader_cg.CFLAGS.debug = ; -STATICPLUGIN.glshader_cg.CFLAGS.release = ; -STATICPLUGIN.glshader_cg.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib cg.lib cgGL.lib ; -STATICPLUGIN.glshader_cg.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib cg.lib cgGL.lib ; -STATICPLUGINS.AVAILABLE += glshader_fixed ; -STATICPLUGIN.glshader_fixed.CFLAGS.debug = ; -STATICPLUGIN.glshader_fixed.CFLAGS.release = ; -STATICPLUGIN.glshader_fixed.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib opengl32.lib ; -STATICPLUGIN.glshader_fixed.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib opengl32.lib ; -STATICPLUGINS.AVAILABLE += glshader_ps1 ; -STATICPLUGIN.glshader_ps1.CFLAGS.debug = ; -STATICPLUGIN.glshader_ps1.CFLAGS.release = ; -STATICPLUGIN.glshader_ps1.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib opengl32.lib ; -STATICPLUGIN.glshader_ps1.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib opengl32.lib ; -STATICPLUGINS.AVAILABLE += softshader ; -STATICPLUGIN.softshader.CFLAGS.debug = ; -STATICPLUGIN.softshader.CFLAGS.release = ; -STATICPLUGIN.softshader.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.softshader.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += vproc_std ; -STATICPLUGIN.vproc_std.CFLAGS.debug = ; -STATICPLUGIN.vproc_std.CFLAGS.release = ; -STATICPLUGIN.vproc_std.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.vproc_std.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += xmlshader ; -STATICPLUGIN.xmlshader.CFLAGS.debug = ; -STATICPLUGIN.xmlshader.CFLAGS.release = ; -STATICPLUGIN.xmlshader.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.xmlshader.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += null3d ; -STATICPLUGIN.null3d.CFLAGS.debug = ; -STATICPLUGIN.null3d.CFLAGS.release = ; -STATICPLUGIN.null3d.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.null3d.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; -STATICPLUGINS.AVAILABLE += cscursor ; -STATICPLUGIN.cscursor.CFLAGS.debug = ; -STATICPLUGIN.cscursor.CFLAGS.release = ; -STATICPLUGIN.cscursor.LFLAGS.debug = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; -STATICPLUGIN.cscursor.LFLAGS.release = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +# This is an example on how to include the MSVC static plugins information +# for external projects. +# The information itself is split across multiple files, one for each +# supported version of MSVC; the files for the desired MSVC versions must +# be included (usually all). + +# The inclusions below are of examplary nature and would only work within +# the source tree of CS. For an external project you could either directly +# refer to the files inside CS or a copy in your project's sources; either +# way, the include statements below would obviously have to adjusted +# appropriately. +include $(TOP)/mk/msvc/crystalspace_staticplugins_msvc7.jam ; +include $(TOP)/mk/msvc/crystalspace_staticplugins_msvc71.jam ; +include $(TOP)/mk/msvc/crystalspace_staticplugins_msvc8.jam ; Modified: trunk/mk/jam/docs.jam =================================================================== --- trunk/mk/jam/docs.jam 2007-10-19 22:33:50 UTC (rev 37) +++ trunk/mk/jam/docs.jam 2007-10-19 23:02:49 UTC (rev 38) @@ -324,7 +324,7 @@ local infiles = $(2) ; local subdir = $(3) ; local outfile = $(4) ; - local optioins = $(5) ; + local options = $(5) ; local doxyfile = $(infiles[1]) ; local resources = $(infiles[2-]) ; local outdir = [ FDirName $(LOCATE.DOCS) $(subdir) ] ; @@ -378,6 +378,9 @@ DOXYCPP on $(target) = $(doxycpp) ; HAVE_DOT on $(target) = $(have_dot) ; DOT_PATH on $(target) = $(dot_path) ; + OUTPUT_DIRECTORY on $(target) = $(outdir) ; + GENERATE_HTML on $(target) = "YES" ; + GENERATE_TAGFILE on $(target) = "" ; MakeLocate $(outfile) : $(outdir) ; Depends $(outfile) : $(doxyfile) ; Depends $(target) : $(outfile) ; @@ -392,7 +395,88 @@ Depends cleandoc : $(target)clean ; return outfile ; } + +## DoxyTag targetname : doxyprofile-and-resources [ : subdir [ : outfile +## [ : options ]]] +## Invoke the Doxygen utility to generate API documentation based upon +## 'doxyprofile' when the pseudo target 'targetname' is invoked. The first +## element of 'doxyprofile-and-resources' is the Doxygen configuration file +## which controls the API generation. The remaining optional elements are +## additional resources which should be copied verbatim to the output +## directory. Typical additional resources include CSS and related image +## files. It is assumed that the source files mentioned by +## 'doxyprofile-and-resources' reside in $(SUBDIR). The optional 'subdir' +## is a subdirectory of $(LOCATE.DOCS) into which the generated files should +## be placed. The optional 'outfile' is the name of the root output file +## (typically "index.html"). This file will reference any other files +## generated by Doxygen. If 'outfile' is omitted, then the output filename +## defaults to "index.html". 'options' is a set of command-line flags +## passed directly to Doxygen. Returns the gristed output file name. +rule DoxyTag +{ + local target = $(1) ; + local infiles = $(2) ; + local subdir = $(3) ; + local outfile = $(4) ; + local options = $(5) ; + local doxyfile = $(infiles[1]) ; + local resources = $(infiles[2-]) ; + local outdir = [ FDirName $(LOCATE.DOCS) $(subdir) ] ; + local grist = "$(SOURCE_GRIST)!$(target)" ; + + if ! $(outfile) + { + outfile = $(PACKAGE_NAME).tag ; + } + local outfile_gristed = $(outfile:G=$(grist)) ; + + local doxycpp ; + if $(CMD.C++CPP) + { + doxycpp = [ GenerateDoxygenCppWrapper $(outfile) : + $(CMD.C++CPP) [ FDefines DOXYGEN_RUN ] ] ; + } + + local have_dot = "NO" ; + local dot_path ; + if $(CMD.DOT) + { + local dotpath = [ Reverse [ SplitToList $(CMD.DOT) : / ] ] ; + if $(dotpath[1]) != "dot" + { + Echo "doxygen expects the dot binary to be named 'dot' exactly" ; + } + else + { + dot_path = [ Reverse $(dotpath[2-]) ] ; + dot_path = $(dot_path:J=/) ; + have_dot = "YES" ; + } + } + + SEARCH on $(doxyfile) = $(SUBDIR) ; + OPTIONS on $(target) = $(options) ; + DOXYCPP on $(target) = $(doxycpp) ; + HAVE_DOT on $(target) = $(have_dot) ; + DOT_PATH on $(target) = $(dot_path) ; + OUTPUT_DIRECTORY on $(target) = $(outdir) ; + GENERATE_HTML on $(target) = "NO" ; + GENERATE_TAGFILE on $(target) = $(outdir)/$(outfile) ; + MakeLocate $(outfile_gristed) : $(outdir) ; + Depends $(target) : $(outfile_gristed) ; + Depends $(target) : $(doxyfile) ; + RunDoxygen $(target) : $(doxyfile) ; + NotFile $(target) ; + Always $(target) ; + Clean $(target)clean : $(outfile_gristed) ; + if $(subdir) + { + CleanDir $(target)clean : $(outdir) ; + } + Depends cleandoc : $(target)clean ; + return $(outfile_gristed) ; } +} #---------------------------------------------------------------------------- # Private helper rules and actions. @@ -673,8 +757,15 @@ actions RunDoxygen { - TOP=$(TOP) DOXYCPP=$(DOXYCPP) HAVE_DOT=$(HAVE_DOT) DOT_PATH=$(DOT_PATH) \ - VERSION=$(PACKAGE_VERSION) $(CMD.DOXYGEN) $(OPTIONS) $(FLAGS.DOXYGEN) $(>) + TOP=$(TOP) \ + DOXYCPP=$(DOXYCPP) \ + HAVE_DOT=$(HAVE_DOT) \ + DOT_PATH=$(DOT_PATH) \ + VERSION=$(PACKAGE_VERSION) \ + OUTPUT_DIRECTORY=$(OUTPUT_DIRECTORY) \ + GENERATE_HTML=$(GENERATE_HTML) \ + GENERATE_TAGFILE=$(GENERATE_TAGFILE) \ + $(CMD.DOXYGEN) $(OPTIONS) $(FLAGS.DOXYGEN) $(>) } #---------------------------------------------------------------------------- Modified: trunk/mk/jam/flags.jam =================================================================== --- trunk/mk/jam/flags.jam 2007-10-19 22:33:50 UTC (rev 37) +++ trunk/mk/jam/flags.jam 2007-10-19 23:02:49 UTC (rev 38) @@ -148,6 +148,69 @@ Clean clean : $(>) ; } +## RelayLib target : indentifier : relaylibs +## Link external libraries identified by 'identifier' with 'target' with +## the help of "relaytool". This tool provides a wrapper object file that +## dynamically loads the requested library at runtime. The client code can +## check if a library is actually available and react gracefully if not - +## this is much more end-user friendly than a refusal by the application to +## start due to a missing dependency. +## From the external dependency identified by 'identifier' the individual +## libraries specified in 'relaylibs' will be dynamically loaded. For each +## library 'whatever' a symbol 'libwhatever_is_present' will be provided. +rule RelayLibs +{ + CheckOptions relay_all : $(4) : $(<) ; + if ! $(CMD.RELAYTOOL) + { + # Create fake libwhatever_is_present() symbols + local stubfile = [ DoObjectGrist $(>).fake_stub.c ] ; + MakeLocate $(stubfile) : $(LOCATE_TARGET) ; + WHATEVER on $(stubfile) = $(3) ; + WriteRelayLibStub $(stubfile) ; + Clean $(<)clean : $(stubfile) ; + + local stub_object = [ CompileObjects $(stubfile) ] ; + MakeLocate $(stub_object) : $(LOCATE_TARGET) ; + Depends $($(<)_TARGET) : $(stub_object) ; + Clean $(<)clean : $(stub_object) ; + EXTRAOBJECTS on $($(<)_TARGET) += $(stub_object) ; + + ExternalLibs $(<) : $(>) ; + } + else + { + local extlib ; + local relayparamslist = "--relay $(3)" ; + local relayparam = $(relayparamslist[1]) ; + for r in $(relayparamslist[2-]) + { + relayparam = "$(relayparam) $(r)" ; + } + local cflags = "$(CCFLAGS[1])" ; + for c in $(CCFLAGS[2-]) + { + cflags = "$(cflags) $(c)" ; + } + for extlib in $(>) + { + CFlags $(<) : $($(extlib).CFLAGS) ; + LFlags $(<) : + "`CFLAGS=\"$(cflags)\" $(CMD.RELAYTOOL) --out-dir $(LOCATE_TARGET) $(relayparam) $($(extlib).LFLAGS)`" ; + + $(<).EXTERNALLIBS += $(extlib) ; + } + } +} + +actions WriteRelayLibStub +{ + echo "" > $(<) + whatever=`echo "$(WHATEVER)" | tr '-' '_' | tr '.' '_' ` + echo "int lib${whatever}_is_present = 1;" >> $(<) + echo "int lib${whatever}_symbol_is_present (char* s) { return 1; }" >> $(<) +} + #---------------------------------------------------------------------------- # private part Modified: trunk/mk/jam/helper.jam =================================================================== --- trunk/mk/jam/helper.jam 2007-10-19 22:33:50 UTC (rev 37) +++ trunk/mk/jam/helper.jam 2007-10-19 23:02:49 UTC (rev 38) @@ -597,7 +597,6 @@ ## SymLink target : source rule SymLink { - if "$(LN_S)" { DoSymLink $(<) : $(>) ; Modified: trunk/mk/jam/install.jam =================================================================== --- trunk/mk/jam/install.jam 2007-10-19 22:33:50 UTC (rev 37) +++ trunk/mk/jam/install.jam 2007-10-19 23:02:49 UTC (rev 38) @@ -150,6 +150,23 @@ return $(target) ; } +## InstallBindingsData files : search [ : subdir ] +## Installs bindings data files +rule InstallBindingsData +{ + local files = [ GristInstall $(<) ] ; + SEARCH on $(files) = $(2) ; + Depends install_bindings : [ DoInstall $(files) : $(appdatadir) $(3) ] ; +} + +## InstallBindingsModule file [ : subdir ] +## Installs a bindings binary module +rule InstallBindingsModule +{ + Depends install_bindings : + [ DoInstall $(1) : $(appdatadir) $(2) : $(INSTALL_PROGRAM) ] ; +} + ## DoInstall sourcenames : directories [ : installapp : [ postinstallrules ]] ## Creates a new install target for the given sources named by ## `sourcenames'. `directories' is a list of directory components @@ -229,7 +246,7 @@ #---------------------------------------------------------------------------- INSTALLTARGETS = install_bin install_plugin install_lib install_include - install_data install_config install_doc ; + install_data install_config install_doc install_bindings ; Always install $(INSTALLTARGETS) ; NotFile install $(INSTALLTARGETS) ; Modified: trunk/mk/jam/library.jam =================================================================== --- trunk/mk/jam/library.jam 2007-10-19 22:33:50 UTC (rev 37) +++ trunk/mk/jam/library.jam 2007-10-19 23:02:49 UTC (rev 38) @@ -110,7 +110,6 @@ Always $(<)clean ; NotFile $(<)clean ; Clean $(<)clean : $(objects) $($(<)_CLEANEXTRA) ; - Clean clean : $($(<)_CLEANEXTRA) ; if ! [ IsElem nohelp : $(options) ] { @@ -275,6 +274,16 @@ MakeLocate $(target) : $(BUILDTOP) ; SEARCH on $(target) = $(BUILDTOP) ; } + else + { + local target_link = $(target:D=$(BUILDTOP)) ; + MakeLocate $(target_link) : $(BUILDTOP) ; + SEARCH on $(target_link) = $(BUILDTOP) ; + Depends $(target_link) : $(target) ; + SymLink $(target_link) : $(target) ; + Depends $(<) : $(target_link) ; + $(<)_CLEANEXTRA += $(target_link) ; + } Depends $(target) : $(objects) ; $(<)_CLEANEXTRA += $(target) ; Depends $(target) : $(deplibs) ; @@ -293,6 +302,16 @@ NoCare $(debugfile) ; Depends install_lib : [ DoInstall $(debugfile) : $(libdir) : $(INSTALL_DATA) ] ; } + if $(linklib) = $(target) + { + local debugfile_link = $(debugfile:D=$(BUILDTOP)) ; + MakeLocate $(debugfile_link) : $(BUILDTOP) ; + SEARCH on $(debugfile_link) = $(BUILDTOP) ; + Depends $(debugfile_link) : $(debugfile) ; + SymLink $(debugfile_link) : $(debugfile) ; + Depends $(<) : $(debugfile_link) ; + $(<)_CLEANEXTRA += $(debugfile_link) ; + } } # This is really only needed for Win32: the link library (ie import library) Modified: trunk/mk/jam/msvcgen.jam =================================================================== --- trunk/mk/jam/msvcgen.jam 2007-10-19 22:33:50 UTC (rev 37) +++ trunk/mk/jam/msvcgen.jam 2007-10-19 23:02:49 UTC (rev 38) @@ -206,8 +206,8 @@ ## to be accepted. As an alternative to invoking this rule, if you wish to ## change the default prefixes used by all targets you can use the MsvcConfig ## rule to set the MSVC.PREFIX.appcon, MSVC.PREFIX.appgui, MSVC.PREFIX.group, -## MSVC.PREFIX.library, MSVC.PREFIX.plugin, and MSVC.PREFIX.workspace -## variables to whatever values you like. +## MSVC.PREFIX.library_shared, MSVC.PREFIX.library_static, MSVC.PREFIX.plugin, +## and MSVC.PREFIX.workspace variables to whatever values you like. rule MsvcGenName { MsvcGenName1 $(1) : $(2) ; } rule MsvcGenName1 { } @@ -528,23 +528,46 @@ MSVC.CFLAGS_DEBUG.plugin ?= ; MSVC.DEFINES.plugin ?= ; MSVC.DEFINES_DEBUG.plugin ?= ; -MSVC.DEPEND.library ?= ; -MSVC.DEPEND_DEBUG.library ?= ; -MSVC.LIBRARY.library ?= ; -MSVC.LIBRARY_DEBUG.library ?= ; -MSVC.LFLAGS.library ?= ; -MSVC.LFLAGS_DEBUG.library ?= ; -MSVC.CFLAGS.library ?= ; -MSVC.CFLAGS_DEBUG.library ?= ; -MSVC.DEFINES.library ?= ; -MSVC.DEFINES_DEBUG.library ?= ; +MSVC.DEPEND.library_static ?= ; +MSVC.DEPEND_DEBUG.library_static ?= ; +MSVC.LIBRARY.library_static ?= ; +MSVC.LIBRARY_DEBUG.library_static ?= ; +MSVC.LFLAGS.library_static ?= ; +MSVC.LFLAGS_DEBUG.library_static ?= ; +MSVC.CFLAGS.library_static ?= ; +MSVC.CFLAGS_DEBUG.library_static ?= ; +MSVC.DEFINES.library_static ?= ; +MSVC.DEFINES_DEBUG.library_static ?= ; +MSVC.DEPEND.library_shared ?= ; +MSVC.DEPEND_DEBUG.library_shared ?= ; +MSVC.LIBRARY.library_shared ?= ; +MSVC.LIBRARY_DEBUG.library_shared ?= ; +MSVC.LFLAGS.library_shared ?= ; +MSVC.LFLAGS_DEBUG.library_shared ?= ;... [truncated message content] |
From: <ke...@us...> - 2007-10-19 23:12:02
|
Revision: 40 http://planeshift.svn.sourceforge.net/planeshift/?rev=40&view=rev Author: kemedes Date: 2007-10-19 16:12:04 -0700 (Fri, 19 Oct 2007) Log Message: ----------- Fix by Lanarel for conflicting quests. Modified Paths: -------------- trunk/docs/history.txt trunk/src/server/bulkobjects/pscharacter.cpp trunk/src/server/bulkobjects/pscharacter.h trunk/src/server/bulkobjects/psnpcdialog.cpp trunk/src/server/client.cpp trunk/src/server/client.h trunk/src/server/database/mysql/character_quests.sql trunk/src/server/database/mysql/server_options.sql trunk/src/server/database/mysql/upgrade_schema.sql trunk/src/server/exchangemanager.cpp trunk/src/server/psserver.cpp Modified: trunk/docs/history.txt =================================================================== --- trunk/docs/history.txt 2007-10-19 23:06:40 UTC (rev 39) +++ trunk/docs/history.txt 2007-10-19 23:12:04 UTC (rev 40) @@ -4,6 +4,7 @@ *** 2007-10-20 by Sasha Levin - Added dynamic item price calculation. Now it uses math script to include quality of the item in the calculation. +- Fix by Lanarel for conflicting quests. *** 2007-10-19 by Michael Gist - Wrote a new updater. Console only atm. Modified: trunk/src/server/bulkobjects/pscharacter.cpp =================================================================== --- trunk/src/server/bulkobjects/pscharacter.cpp 2007-10-19 23:06:40 UTC (rev 39) +++ trunk/src/server/bulkobjects/pscharacter.cpp 2007-10-19 23:12:04 UTC (rev 40) @@ -164,6 +164,7 @@ if( !staminaCalc) Warning1(LOG_CHARACTER, "Can't find math script StaminaBase!"); + lastResponse = -1; banker = false; } @@ -2290,6 +2291,48 @@ return NULL; } +int psCharacter::GetAssignedQuestLastResponse(int i) +{ + if ((size_t) i<assigned_quests.GetSize()) + { + return assigned_quests[i]->last_response; + } + else + { + //could use error message + return -1; //return no response + } +} + +//if (parent of) quest id is an assigned quest, set its last response +bool psCharacter::SetAssignedQuestLastResponse(psQuest *quest, int response) +{ + int id = 0; + + if (quest) + { + while (quest->GetParentQuest()) //get highest parent + quest= quest->GetParentQuest(); + id = quest->GetID(); + } + else + return false; + + + for (size_t i=0; i<assigned_quests.GetSize(); i++) + { + if (assigned_quests[i]->GetQuest().IsValid() && assigned_quests[i]->GetQuest()->GetID() == id && + assigned_quests[i]->status == PSQUEST_ASSIGNED) + { + assigned_quests[i]->last_response = response; + assigned_quests[i]->dirty = true; + UpdateQuestAssignments(); + return true; + } + } + return false; +} + size_t psCharacter::GetAssignedQuests(psQuestListMessage& questmsg,int cnum) { if (assigned_quests.GetSize() ) @@ -2329,6 +2372,19 @@ { CS_ASSERT( quest ); // Must not be NULL + //first check if there is not another assigned quest with the same NPC + for (size_t i=0; i<assigned_quests.GetSize(); i++) + { + if (assigned_quests[i]->GetQuest().IsValid() && assigned_quests[i]->assigner_id == assigner_id && + assigned_quests[i]->GetQuest()->GetID() != quest->GetID() && + assigned_quests[i]->GetQuest()->GetParentQuest() == NULL && + assigned_quests[i]->status == PSQUEST_ASSIGNED) + { + Debug3(LOG_QUESTS, GetCharacterID(), "Did not assign %s quest to %s because (s)he already has a quest assigned with this npc.\n",quest->GetName(),GetCharName() ); + return false; // Cannot have multiple quests from the same guy + } + } + QuestAssignment *q = IsQuestAssigned(quest->GetID() ); if (!q) // make new entry if needed, reuse if old { @@ -2345,6 +2401,7 @@ q->status = PSQUEST_ASSIGNED; q->lockout_end = 0; q->assigner_id = assigner_id; + q->last_response = this->lastResponse; //This should be the response given when starting this quest // assign any skipped parent quests if (quest->GetParentQuest() && !IsQuestAssigned(quest->GetParentQuest()->GetID())) @@ -2490,15 +2547,18 @@ return false; } +//This incorrectly named function checks if the npc (assigner_id) is supposed to answer +// in the (parent)quest at this moment. bool psCharacter::CheckQuestAvailable(psQuest *quest,int assigner_id) { CS_ASSERT( quest ); // Must not be NULL csTicks now = csGetTicks(); - bool quest_started = false; if (quest->GetParentQuest()) + { quest = quest->GetParentQuest(); + } bool notify = false; if (GetActor()->GetClient()) @@ -2506,9 +2566,17 @@ notify = CacheManager::GetSingleton().GetCommandManager()->Validate(GetActor()->GetClient()->GetSecurityLevel(), "quest notify"); } + //NPC should always answer, if the quest is assigned, no matter who started the quest. + QuestAssignment *q = IsQuestAssigned(quest->GetID()); + if (q && q->status == PSQUEST_ASSIGNED) + { + return true; + } + + //Since the quest is not assigned, this conversation will lead to starting the quest. + //Check all assigned quests, to make sure there is no other quest already started by this NPC for (size_t i=0; i<assigned_quests.GetSize(); i++) { - /************************* if (assigned_quests[i]->GetQuest().IsValid() && assigned_quests[i]->assigner_id == assigner_id && assigned_quests[i]->GetQuest()->GetID() != quest->GetID() && assigned_quests[i]->GetQuest()->GetParentQuest() == NULL && @@ -2522,55 +2590,48 @@ return false; // Cannot have multiple quests from the same guy } - ************************************/ - - // Character have this quest - if (assigned_quests[i]->GetQuest().IsValid() && assigned_quests[i]->GetQuest()->GetID() == quest->GetID()) + } + if (q) //then quest in assigned list, but not PSQUEST_ASSIGNED + { + // Character has this quest in completed list. Check if still in lockout + if ( q->GetQuest()->HasInfinitePlayerLockout() || + q->lockout_end > now) { - // Still in lockout - if ( ((assigned_quests[i]->status != PSQUEST_ASSIGNED) && assigned_quests[i]->GetQuest()->HasInfinitePlayerLockout()) || - assigned_quests[i]->lockout_end > now) + if (notify) { - if (notify) + if (GetActor()->questtester) // GM flag { - if (GetActor()->questtester) // GM flag + psserver->SendSystemInfo(GetActor()->GetClientID(), + "GM NOTICE: Quest (%s) found and player lockout time has been overridden.", + quest->GetName()); + return true; // Quest is available for GM + } + else + { + if (q->GetQuest()->HasInfinitePlayerLockout()) { psserver->SendSystemInfo(GetActor()->GetClientID(), - "GM NOTICE: Quest (%s) found and player lockout time has been overridden.", + "GM NOTICE: Quest (%s) found but quest has infinite player lockout.", quest->GetName()); - return true; // Quest is available for GM } else { - if (assigned_quests[i]->GetQuest()->HasInfinitePlayerLockout()) - { - psserver->SendSystemInfo(GetActor()->GetClientID(), - "GM NOTICE: Quest (%s) found but quest has infinite player lockout.", - quest->GetName()); - } - else - { - psserver->SendSystemInfo(GetActor()->GetClientID(), - "GM NOTICE: Quest (%s) found but player lockout time hasn't elapsed yet. %d seconds remaining.", - quest->GetName(), (assigned_quests[i]->lockout_end - now)/1000 ); - } - + psserver->SendSystemInfo(GetActor()->GetClientID(), + "GM NOTICE: Quest (%s) found but player lockout time hasn't elapsed yet. %d seconds remaining.", + quest->GetName(), (q->lockout_end - now)/1000 ); } } - return false; // Cannot have the same quest while in player lockout time. } - if (assigned_quests[i]->status == PSQUEST_ASSIGNED) - { - quest_started = true; - } + return false; // Cannot have the same quest while in player lockout time. } } - // If player dosn't have this quest check if quest have lockout - if (!quest_started && quest->GetQuestLastActivatedTime() && + // If here, quest is not in assigned_quests, or it is completed and not in player lockout time + // Player is allowed to start this quest, now check if quest has a lockout + if (quest->GetQuestLastActivatedTime() && (quest->GetQuestLastActivatedTime() + quest->GetQuestLockoutTime() > now)) { if (notify) @@ -2655,23 +2716,26 @@ r = db->Command("update character_quests " "set status='%c'," - "remaininglockout=%ld " + "remaininglockout=%ld, " + "last_response=%ld " " where player_id=%d" " and quest_id=%d", q->status, remaining_time, + q->last_response, characterid, q->GetQuest()->GetID() ); if (!r) // no update done { r = db->Command("insert into character_quests" - "(player_id, assigner_id, quest_id, status, remaininglockout) " - "values (%d, %d, %d, '%c', %d)", + "(player_id, assigner_id, quest_id, status, remaininglockout, last_response) " + "values (%d, %d, %d, '%c', %d, %d)", characterid, q->assigner_id, q->GetQuest()->GetID(), q->status, - remaining_time); + remaining_time, + q->last_response); if (r == -1) { @@ -2713,6 +2777,7 @@ q->status = result[i]["status"][0]; q->lockout_end = now + result[i].GetInt("remaininglockout"); q->assigner_id = result[i].GetInt("assigner_id"); + q->last_response = result[i].GetInt("last_response"); if (!q->GetQuest()) { @@ -2726,9 +2791,9 @@ if (q->lockout_end > now + q->GetQuest()->GetPlayerLockoutTime()) q->lockout_end = now + q->GetQuest()->GetPlayerLockoutTime(); - Debug5(LOG_QUESTS, characterid, "Loaded quest %-40.40s, status %c, lockout %lu, for player %s.\n", + Debug6(LOG_QUESTS, characterid, "Loaded quest %-40.40s, status %c, lockout %lu, last_response %d, for player %s.\n", q->GetQuest()->GetName(),q->status, - ( q->lockout_end > now ? q->lockout_end-now:0),GetCharFullName()); + ( q->lockout_end > now ? q->lockout_end-now:0),q->last_response, GetCharFullName()); assigned_quests.Push(q); } return true; Modified: trunk/src/server/bulkobjects/pscharacter.h =================================================================== --- trunk/src/server/bulkobjects/pscharacter.h 2007-10-19 23:06:40 UTC (rev 39) +++ trunk/src/server/bulkobjects/pscharacter.h 2007-10-19 23:12:04 UTC (rev 40) @@ -177,6 +177,8 @@ bool dirty; /// When a quest is completed, often it cannot immediately be repeated. This indicate the time when it can be started again. unsigned long lockout_end; + /// To avoid loosing a chain of responses in a quest, last responses are stored per assigned quest. + int last_response; /// Since "quest" member can be nulled without notice, this accessor function attempts to refresh it if NULL csWeakRef<psQuest>& GetQuest(); void SetQuest(psQuest *q); @@ -548,7 +550,9 @@ // Array of items waiting to be looted. csArray<psItemStats *> loot_pending; - + /// Last response of an NPC to this character (not saved) + int lastResponse; + public: psCharacterInventory& Inventory() { return inventory; } @@ -744,7 +748,13 @@ QuestAssignment *AssignQuest(psQuest *quest, int assigner_id); bool CompleteQuest(psQuest *quest); void DiscardQuest(QuestAssignment *q); - + bool SetAssignedQuestLastResponse(psQuest *quest, int response); + size_t GetNumAssignedQuests() { return assigned_quests.GetSize(); } + int GetAssignedQuestLastResponse(int i); + /// The last_response given by an npc to this player. + int GetLastResponse() { return lastResponse; } + void SetLastResponse(int response) { lastResponse=response; } + /** * Sync dirty Quest Assignemnt to DB * Modified: trunk/src/server/bulkobjects/psnpcdialog.cpp =================================================================== --- trunk/src/server/bulkobjects/psnpcdialog.cpp 2007-10-19 23:06:40 UTC (rev 39) +++ trunk/src/server/bulkobjects/psnpcdialog.cpp 2007-10-19 23:12:04 UTC (rev 40) @@ -327,6 +327,14 @@ NpcResponse *resp = NULL; csString trigger_error; + //May be it is safe not to check for characterdata (now needed for GetLastRespons()) + if (currentClient->GetCharacterData() == NULL) + { + Error1("NpcResponse *psNPCDialog::FindResponse(csString& trigger,const char *text) called with " + "currentClient->GetCharacterData() returning NULL."); + return NULL; + } + if (trigger.GetData() == NULL) return NULL; @@ -339,15 +347,37 @@ { area = knowareas[z]; Debug4(LOG_NPC, currentClient->GetClientNum(),"NPC checking %s for trigger %s , with lastResponseID %d...", - (const char *)area->area,(const char *)trigger,currentClient->GetLastResponse()); + (const char *)area->area,(const char *)trigger,currentClient->GetCharacterData()->GetLastResponse()); - resp = dict->FindResponse(self, area->area,trigger,0,currentClient->GetLastResponse(),currentClient); + //first try with last responses of all assigned quests + for (size_t q = 0; q < currentClient->GetCharacterData()->GetNumAssignedQuests(); q++) + { + resp = dict->FindResponse(self, area->area,trigger,0, + currentClient->GetCharacterData()->GetAssignedQuestLastResponse(q),currentClient); + if (resp) + break; + } + if (!resp) //else, try old way with general last response + { + resp = dict->FindResponse(self, area->area,trigger,0,currentClient->GetCharacterData()->GetLastResponse(),currentClient); + } if (!resp) // If no response found, try search for error trigger { - resp = dict->FindResponse(self, area->area,trigger_error,0,currentClient->GetLastResponse(),currentClient); + //first try with last responses of all assigned quests + for (size_t q = 0; q < currentClient->GetCharacterData()->GetNumAssignedQuests(); q++) + { + resp = dict->FindResponse(self, area->area,trigger_error,0, + currentClient->GetCharacterData()->GetAssignedQuestLastResponse(q),currentClient); + if (resp) + break; + } + if (!resp) //else, try old way with general last response + { + resp = dict->FindResponse(self, area->area,trigger_error,0,currentClient->GetCharacterData()->GetLastResponse(),currentClient); + } if (!resp) // If no response found, try search without last response { - if (currentClient->GetLastResponse() == -1) + if (currentClient->GetCharacterData()->GetLastResponse() == -1) { // No point testing without last response // if last response where no last response. @@ -571,10 +601,20 @@ // else // dialogHistory.AddToHistory(client->GetPlayerID(), resp->id, csGetTicks() ); - - Debug3(LOG_NPC, currentClient->GetClientNum(),"Setting last response %d: %s",resp->id,resp->GetResponse()); - currentClient->SetLastResponse(resp->id); - return resp; // Found what we are looking for + //May be it is safe not to check for characterdata (now needed for GetLastRespons()) + if (currentClient->GetCharacterData() == NULL) + { + Error1("NpcResponse *psNPCDialog::Respond(const char * text,Client *client) called with " + "currentClient->GetCharacterData() returning NULL."); + } + else + { + Debug3(LOG_NPC, currentClient->GetClientNum(),"Setting last response %d: %s",resp->id,resp->GetResponse()); + currentClient->GetCharacterData()->SetLastResponse(resp->id); + Debug4(LOG_NPC, currentClient->GetClientNum(),"Setting last response for quest %d, %d: %s", + resp->quest,resp->id,resp->GetResponse()); + currentClient->GetCharacterData()->SetAssignedQuestLastResponse(resp->quest,resp->id); + } } else { Modified: trunk/src/server/client.cpp =================================================================== --- trunk/src/server/client.cpp 2007-10-19 23:06:40 UTC (rev 39) +++ trunk/src/server/client.cpp 2007-10-19 23:12:04 UTC (rev 40) @@ -45,7 +45,7 @@ Client::Client () : accumulatedLag(0), zombie(false), ready(false), mute(false), accountID(0), playerID(0), securityLevel(0), superclient(false), - lastResponse(-1), name(""), waypointEffectID(0), waypointIsDisplaying(false), + name(""), waypointEffectID(0), waypointIsDisplaying(false), pathEffectID(0), pathPathID(0), pathIsDisplaying(false), locationEffectID(0), locationIsDisplaying(false) { Modified: trunk/src/server/client.h =================================================================== --- trunk/src/server/client.h 2007-10-19 23:06:40 UTC (rev 39) +++ trunk/src/server/client.h 2007-10-19 23:12:04 UTC (rev 40) @@ -204,10 +204,6 @@ int GetMerchantID() { return merchantID; } */ - /// The last_response given by an npc to this player - int GetLastResponse() { return lastResponse; } - void SetLastResponse(int response) { lastResponse=response; } - /// Allow distinguishing superclients from regular player clients bool IsSuperClient() { return superclient; } void SetSuperClient(bool flag) { superclient = flag; } @@ -381,7 +377,6 @@ unsigned int playerID; int securityLevel; bool superclient; - int lastResponse; csArray<gemNPC *> listeningNpc; csString name; Modified: trunk/src/server/database/mysql/character_quests.sql =================================================================== --- trunk/src/server/database/mysql/character_quests.sql 2007-10-19 23:06:40 UTC (rev 39) +++ trunk/src/server/database/mysql/character_quests.sql 2007-10-19 23:12:04 UTC (rev 40) @@ -13,6 +13,7 @@ `status` char(1) NOT NULL default 'O', `assigner_id` int(10) unsigned default '0', `remaininglockout` int(10) default '0', + `last_response` int(10) default '-1', PRIMARY KEY (`player_id`,`quest_id`) ); @@ -21,4 +22,4 @@ # # Dumping data for table 'character_quests' # -INSERT INTO `character_quests` VALUES (2,1,'C',6,0); # Somebody must rescue the Princess +INSERT INTO `character_quests` VALUES (2,1,'C',6,0,-1); # Somebody must rescue the Princess Modified: trunk/src/server/database/mysql/server_options.sql =================================================================== --- trunk/src/server/database/mysql/server_options.sql 2007-10-19 23:06:40 UTC (rev 39) +++ trunk/src/server/database/mysql/server_options.sql 2007-10-19 23:12:04 UTC (rev 40) @@ -28,7 +28,7 @@ # Dumping data for table server_options # -INSERT INTO `server_options` VALUES ('db_version','1164'); +INSERT INTO `server_options` VALUES ('db_version','1165'); INSERT INTO `server_options` VALUES ('standard_motd','This is the message of the day from server_options table.'); /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; Modified: trunk/src/server/database/mysql/upgrade_schema.sql =================================================================== --- trunk/src/server/database/mysql/upgrade_schema.sql 2007-10-19 23:06:40 UTC (rev 39) +++ trunk/src/server/database/mysql/upgrade_schema.sql 2007-10-19 23:12:04 UTC (rev 40) @@ -776,6 +776,11 @@ INSERT INTO command_group_assignment VALUES( "/setlabelcolor", 23 ); INSERT INTO command_group_assignment VALUES( "/setlabelcolor", 22 ); +#### 1165 - Sasha Levin - Fix by Lanarel to quests +ALTER TABLE `planeshift`.`character_quests` MODIFY COLUMN `remaininglockout` INT(10) UNSIGNED DEFAULT 0, + ADD COLUMN `last_response` INT(10) DEFAULT '-1' AFTER `remaininglockout`; + + # # Insert your upgrade before this line. Remember when you set a new db_version # to update the server_options.sql file and update psserver.cpp as well. Modified: trunk/src/server/exchangemanager.cpp =================================================================== --- trunk/src/server/exchangemanager.cpp 2007-10-19 23:06:40 UTC (rev 39) +++ trunk/src/server/exchangemanager.cpp 2007-10-19 23:12:04 UTC (rev 40) @@ -1207,7 +1207,8 @@ starterChar.TransferOffer(target->GetCharacterData()); starterChar.TransferMoney(target->GetCharacterData()); exchangeSuccess = true; - client->SetLastResponse(resp->id); + client->GetCharacterData()->SetLastResponse(resp->id); + client->GetCharacterData()->SetAssignedQuestLastResponse(resp->quest,resp->id); return true; } } Modified: trunk/src/server/psserver.cpp =================================================================== --- trunk/src/server/psserver.cpp 2007-10-19 23:06:40 UTC (rev 39) +++ trunk/src/server/psserver.cpp 2007-10-19 23:12:04 UTC (rev 40) @@ -80,7 +80,7 @@ // Remember to bump this in server_options.sql and add to upgrade_schema.sql! -#define DATABASE_VERSION_STR "1164" +#define DATABASE_VERSION_STR "1165" psCharacterLoader psServer::CharacterLoader; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mg...@us...> - 2007-10-20 13:22:10
|
Revision: 59 http://planeshift.svn.sourceforge.net/planeshift/?rev=59&view=rev Author: mgist Date: 2007-10-20 06:22:13 -0700 (Sat, 20 Oct 2007) Log Message: ----------- - Changed updater to use csmd5. Modified Paths: -------------- trunk/docs/history.txt trunk/src/pslaunch/updaterengine.cpp Removed Paths: ------------- trunk/src/pslaunch/md5.cpp trunk/src/pslaunch/md5.h Modified: trunk/docs/history.txt =================================================================== --- trunk/docs/history.txt 2007-10-20 12:44:37 UTC (rev 58) +++ trunk/docs/history.txt 2007-10-20 13:22:13 UTC (rev 59) @@ -1,5 +1,6 @@ *** 2007-10-20 by Michael Gist - Updated build files from CS. +- Changed updater to use csmd5. *** 2007-10-20 by Sasha Levin - Added dynamic item price calculation. Now it uses math script to include quality of the Deleted: trunk/src/pslaunch/md5.cpp =================================================================== --- trunk/src/pslaunch/md5.cpp 2007-10-20 12:44:37 UTC (rev 58) +++ trunk/src/pslaunch/md5.cpp 2007-10-20 13:22:13 UTC (rev 59) @@ -1,99 +0,0 @@ -/* -* md5.cpp by Matthias Braun <ma...@br...> -* -* Copyright (C) 2002 Atomic Blue (in...@pl..., http://www.atomicblue.org) -* -* -* This program is free software; you can redistribute it and/or -* modify it under the terms of the GNU General Public License -* as published by the Free Software Foundation (version 2 of the License) -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -* -*/ -#include <psconfig.h> - -#include <string.h> - -#include <csutil/snprintf.h> -#include <csutil/csmd5.h> -#include <csutil/util.h> -#include <iutil/vfs.h> -#include <csutil/databuf.h> - -#include "md5.h" -#include "updaterconfig.h" - -MD5Sum::MD5Sum (csRef<iVFS> _vfs) -: md5(NULL) -{ - vfs = _vfs; -} - -MD5Sum::MD5Sum (char* buffer, size_t len) -{ - Calculate (buffer, len); -} - -MD5Sum::~MD5Sum () -{ -} - -void MD5Sum::Calculate (char* buffer, size_t len) -{ - if (!md5) - md5 = new char[33]; - - csMD5::Digest digest = csMD5::Encode (buffer, (int) len); - - cs_snprintf (md5, 33, - "%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x", - digest.data[0], digest.data[1], digest.data[2], digest.data[3], - digest.data[4], digest.data[5], digest.data[6], digest.data[7], - digest.data[8], digest.data[9], digest.data[10], digest.data[11], - digest.data[12], digest.data[13], digest.data[14], digest.data[15]); -} - -void MD5Sum::Set (const char* md5sum) -{ - if(strlen (md5sum) != 32) - { - printf("Tried to set md5 sum with wrong len.\n"); - PS_PAUSEEXIT(1); - } - - delete[] md5; - md5 = csStrNew(md5sum); -} - -const char* MD5Sum::Get() const -{ - return md5; -} - -bool MD5Sum::ReadFile (const char* filename) -{ - csRef<iDataBuffer> buffer = vfs->ReadFile(filename,true); - - if (!buffer) - { - printf("No buffer!\n"); - return false; - } - - Calculate (buffer->GetData(), buffer->GetSize()); - return true; -} - -bool MD5Sum::operator == (const MD5Sum& other) const -{ - if (!md5 || !other.md5) - return false; - - return strcmp(md5, other.md5) == 0; -} Deleted: trunk/src/pslaunch/md5.h =================================================================== --- trunk/src/pslaunch/md5.h 2007-10-20 12:44:37 UTC (rev 58) +++ trunk/src/pslaunch/md5.h 2007-10-20 13:22:13 UTC (rev 59) @@ -1,46 +0,0 @@ -/* -* md5.h by Matthias Braun <ma...@br...> -* -* Copyright (C) 2002 Atomic Blue (in...@pl..., http://www.atomicblue.org) -* -* -* This program is free software; you can redistribute it and/or -* modify it under the terms of the GNU General Public License -* as published by the Free Software Foundation (version 2 of the License) -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -* -*/ -#ifndef __UPDATER_MD5_H__ -#define __UPDATER_MD5_H__ - -/// This class holds the result of a md5 sum calculation -class MD5Sum -{ -public: - MD5Sum (csRef<iVFS> vfs); - MD5Sum (char* buffer, size_t len); - ~MD5Sum (); - - /// Read a file and calculate it's md5 - bool ReadFile (const char* filename); - /// Calculates a new md5 sum of a buffer - void Calculate (char* buffer, size_t len); - /// Set MD5 sum to value of the string - void Set (const char* md5sum); - /// Get MD5 sum as a string - const char* Get() const; - /// compare 2 md5 sums - bool operator == (const MD5Sum& other) const; - -private: - csRef<iVFS> vfs; - char* md5; -}; - -#endif Modified: trunk/src/pslaunch/updaterengine.cpp =================================================================== --- trunk/src/pslaunch/updaterengine.cpp 2007-10-20 12:44:37 UTC (rev 58) +++ trunk/src/pslaunch/updaterengine.cpp 2007-10-20 13:22:13 UTC (rev 59) @@ -19,12 +19,12 @@ #include <psconfig.h> +#include <csutil/csmd5.h> #include <csutil/xmltiny.h> #include <iutil/stringarray.h> #include "updaterconfig.h" #include "updaterengine.h" -#include "md5.h" #include "binarypatch.h" #ifndef CS_COMPILER_MSVC @@ -306,16 +306,17 @@ downloader->DownloadFile(zip, zip); // Check md5sum is correct. - MD5Sum md5(vfs); - bool md5status = md5.ReadFile("/this/" + zip); - if(!md5status) + csRef<iDataBuffer> buffer = vfs->ReadFile("/this/" + zip, true); + if (!buffer) { printf("Could not get MD5 of updater zip!!\n"); PS_PAUSEEXIT(1); } - csString md5sum = md5.Get(); + csMD5::Digest md5 = csMD5::Encode(buffer->GetData(), buffer->GetSize()); + csString md5sum = md5.HexString(); + if(!md5sum.Compare(config->GetNewConfig()->GetUpdaterVersionLatestMD5())) { printf("md5sum of updater zip does not match correct md5sum!!\n"); @@ -395,16 +396,17 @@ downloader->DownloadFile(zip, zip); // Check md5sum is correct. - MD5Sum md5(vfs); - bool md5status = md5.ReadFile("/this/" + zip); - if(!md5status) + csRef<iDataBuffer> buffer = vfs->ReadFile("/this/" + zip, true); + if (!buffer) { printf("Could not get MD5 of updater zip!!\n"); PS_PAUSEEXIT(1); } - csString md5sum = md5.Get(); + csMD5::Digest md5 = csMD5::Encode(buffer->GetData(), buffer->GetSize()); + csString md5sum = md5.HexString(); + if(!md5sum.Compare(config->GetNewConfig()->GetUpdaterVersionLatestMD5())) { printf("md5sum of updater zip does not match correct md5sum!!\n"); @@ -470,16 +472,17 @@ downloader->DownloadFile(zip, zip); // Check md5sum is correct. - MD5Sum md5(vfs); - bool md5status = md5.ReadFile("/this/" + zip); - if(!md5status) + csRef<iDataBuffer> buffer = vfs->ReadFile("/this/" + zip, true); + if (!buffer) { - printf("Could not get MD5 of client zip!!\n"); + printf("Could not get MD5 of updater zip!!\n"); PS_PAUSEEXIT(1); } - csString md5sum = md5.Get(); + csMD5::Digest md5 = csMD5::Encode(buffer->GetData(), buffer->GetSize()); + csString md5sum = md5.HexString(); + if(!md5sum.Compare(newCv->GetMD5Sum())) { printf("md5sum of client zip does not match correct md5sum!!\n"); @@ -570,9 +573,8 @@ // Check md5sum is correct. printf("Checking for correct md5sum: "); - MD5Sum md5(vfs); - bool md5status = md5.ReadFile("/this/" + newFilePath); - if(!md5status) + csRef<iDataBuffer> buffer = vfs->ReadFile("/this/" + newFilePath, true); + if(!buffer) { printf("Could not get MD5 of patched file %s! Reverting file!\n", newFilePath.GetData()); fileUtil->RemoveFile("/this/" + newFilePath); @@ -580,8 +582,9 @@ } else { + csMD5::Digest md5 = csMD5::Encode(buffer->GetData(), buffer->GetSize()); + csString md5sum = md5.HexString(); - csString md5sum = md5.Get(); csString fileMD5 = next->GetAttributeValue("md5sum"); if(!md5sum.Compare(fileMD5)) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mg...@us...> - 2007-10-22 18:06:26
|
Revision: 64 http://planeshift.svn.sourceforge.net/planeshift/?rev=64&view=rev Author: mgist Date: 2007-10-22 11:06:29 -0700 (Mon, 22 Oct 2007) Log Message: ----------- - Changed updater xml to hold an updater md5 for each platform. Modified Paths: -------------- trunk/docs/history.txt trunk/src/pslaunch/updaterconfig.cpp trunk/src/pslaunch/updatexmls/updaterinfo.xml Modified: trunk/docs/history.txt =================================================================== --- trunk/docs/history.txt 2007-10-21 20:27:42 UTC (rev 63) +++ trunk/docs/history.txt 2007-10-22 18:06:29 UTC (rev 64) @@ -1,3 +1,6 @@ +*** 2007-10-22 by Michael Gist. +- Changed updater xml to hold an updater md5 for each platform. + *** 2007-10-20 by Michael Gist - Updated build files from CS. - Changed updater to use csmd5. Modified: trunk/src/pslaunch/updaterconfig.cpp =================================================================== --- trunk/src/pslaunch/updaterconfig.cpp 2007-10-21 20:27:42 UTC (rev 63) +++ trunk/src/pslaunch/updaterconfig.cpp 2007-10-22 18:06:29 UTC (rev 64) @@ -86,30 +86,12 @@ bool Config::Initialize(csRef<iDocumentNode> node) { - // Nodes we'll use to hold temp data. - csRef<iDocumentNode> tempNode; - csRef<iDocumentNode> tempNode2; - // Get Updater info. - tempNode = node->GetNode("updater"); - if(tempNode) + csRef<iDocumentNode> updaterNode = node->GetNode("updater"); + if(updaterNode) { - tempNode2 = tempNode->GetNode("version"); - if(tempNode2) - updaterVersionLatest = tempNode2->GetContentsValueAsInt(); - else - { - printf("Unable to load version node!\n"); - return false; - } - tempNode2 = tempNode->GetNode("md5sum"); - if(tempNode2) - updaterVersionLatestMD5 = tempNode2->GetContentsValue(); - else - { - printf("Unable to load md5sum node!\n"); - return false; - } + updaterVersionLatest = updaterNode->GetAttributeValueAsInt("version"); + updaterVersionLatestMD5 = updaterNode->GetAttributeValue(GetPlatform()); } else { Modified: trunk/src/pslaunch/updatexmls/updaterinfo.xml =================================================================== --- trunk/src/pslaunch/updatexmls/updaterinfo.xml 2007-10-21 20:27:42 UTC (rev 63) +++ trunk/src/pslaunch/updatexmls/updaterinfo.xml 2007-10-22 18:06:29 UTC (rev 64) @@ -3,14 +3,11 @@ <mirror id="1" name="PS1" url="http://www.planeshiftmirror.com/updaterdir" /> <mirror id="2" name="PS2" url="http://www.planeshiftmirror2.com/updaterdir" /> </mirrors> - <updater> - <version>1</version> - <md5sum>01234556789abcdef</md5sum> - </updater> + <updater version="1" md5win="01234556789abcdef" md5lin32="01234556789abcdef" md5lin64="01234556789abcdef" md5osx="01234556789abcdef /> <client> - <version name="0.3.019-0.3.020" md5win="01234556789abcdef" md5lin32="01234556789abcdef" md5lin64="01234556789abcdef" md5osx="01234556789abcdef"/> - <version name="0.3.020-0.3.021" md5win="01234556789abcdef" md5lin32="01234556789abcdef" md5lin64="01234556789abcdef" md5osx="01234556789abcdef"/> - <version name="0.4.000-0.4.001" md5win="01234556789abcdef" md5lin32="01234556789abcdef" md5lin64="01234556789abcdef" md5osx="01234556789abcdef"/> - <version name="0.4.001-0.4.002" md5win="01234556789abcdef" md5lin32="01234556789abcdef" md5lin64="01234556789abcdef" md5osx="01234556789abcdef"/> + <version name="0.3.019-0.3.020" md5win="01234556789abcdef" md5lin32="01234556789abcdef" md5lin64="01234556789abcdef" md5osx="01234556789abcdef" /> + <version name="0.3.020-0.3.021" md5win="01234556789abcdef" md5lin32="01234556789abcdef" md5lin64="01234556789abcdef" md5osx="01234556789abcdef" /> + <version name="0.4.000-0.4.001" md5win="01234556789abcdef" md5lin32="01234556789abcdef" md5lin64="01234556789abcdef" md5osx="01234556789abcdef" /> + <version name="0.4.001-0.4.002" md5win="01234556789abcdef" md5lin32="01234556789abcdef" md5lin64="01234556789abcdef" md5osx="01234556789abcdef" /> </client> </config> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ke...@us...> - 2007-10-22 18:29:39
|
Revision: 66 http://planeshift.svn.sourceforge.net/planeshift/?rev=66&view=rev Author: kemedes Date: 2007-10-22 11:28:53 -0700 (Mon, 22 Oct 2007) Log Message: ----------- Added dropped item guarding. Modified Paths: -------------- trunk/docs/history.txt trunk/src/server/bulkobjects/pscharacter.cpp trunk/src/server/gem.cpp Modified: trunk/docs/history.txt =================================================================== --- trunk/docs/history.txt 2007-10-22 18:25:51 UTC (rev 65) +++ trunk/docs/history.txt 2007-10-22 18:28:53 UTC (rev 66) @@ -1,3 +1,8 @@ +*** 2007-10-22 by Sasha Levin +- Fixed FS#498 - Repair issue +- Added guard for dropped items. Chars guard any items they dropped on the ground within + 5m range. Should prevent item 'stealing'. + *** 2007-10-22 by Michael Gist. - Changed updater xml to hold an updater md5 for each platform. Modified: trunk/src/server/bulkobjects/pscharacter.cpp =================================================================== --- trunk/src/server/bulkobjects/pscharacter.cpp 2007-10-22 18:25:51 UTC (rev 65) +++ trunk/src/server/bulkobjects/pscharacter.cpp 2007-10-22 18:28:53 UTC (rev 66) @@ -1304,6 +1304,7 @@ { // Assign new object to replace the original object item = obj->GetItem(); + item->SetGuardingCharacterID(GetCharacterID()); } // If a container, move its contents as well... @@ -1323,6 +1324,7 @@ Error2("Cannot add item into container slot %zu.\n", slot); return; } + item->SetGuardingCharacterID(item->GetOwningCharacterID()); i--; // indexes shift when we remove one. item->Save(false); } Modified: trunk/src/server/gem.cpp =================================================================== --- trunk/src/server/gem.cpp 2007-10-22 18:25:51 UTC (rev 65) +++ trunk/src/server/gem.cpp 2007-10-22 18:28:53 UTC (rev 66) @@ -1307,6 +1307,24 @@ psItem* item = GetItem(); + unsigned int guard = item->GetGuardingCharacterID(); + gemActor* guardActor = GEMSupervisor::GetSingleton().FindPlayerEntity(guard); + if (guard && + guard != actor->GetCharacterData()->GetCharacterID() && + guardActor && + guardActor->RangeTo(item->GetGemObject()) < 5) + { + if (guardActor) + { + psserver->SendSystemInfo(clientnum,"You notice that the item is being guarded by %s", + guardActor->GetCharacterData()->GetCharFullName()); + } + else + psserver->SendSystemInfo(clientnum,"You notice that the item is being guarded"); + + return; + } + item->ScheduleRespawn(); // Cache values from item, because item might be deleted by Add This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mg...@us...> - 2007-10-22 20:43:23
|
Revision: 72 http://planeshift.svn.sourceforge.net/planeshift/?rev=72&view=rev Author: mgist Date: 2007-10-22 13:43:26 -0700 (Mon, 22 Oct 2007) Log Message: ----------- - Some Jamfile work for the updater. Modified Paths: -------------- trunk/docs/history.txt trunk/src/pslaunch/Jamfile Modified: trunk/docs/history.txt =================================================================== --- trunk/docs/history.txt 2007-10-22 19:33:21 UTC (rev 71) +++ trunk/docs/history.txt 2007-10-22 20:43:26 UTC (rev 72) @@ -8,6 +8,7 @@ *** 2007-10-22 by Michael Gist. - Changed updater xml to hold an updater md5 for each platform. +- Some Jamfile work for the updater. *** 2007-10-20 by Michael Gist - Updated build files from CS. Modified: trunk/src/pslaunch/Jamfile =================================================================== --- trunk/src/pslaunch/Jamfile 2007-10-22 19:33:21 UTC (rev 71) +++ trunk/src/pslaunch/Jamfile 2007-10-22 20:43:26 UTC (rev 72) @@ -1,18 +1,17 @@ SubDir TOP src pslaunch ; Application psupdater : - [ Wildcard *.cpp *.h ] : console + [ Filter [ Wildcard *.cpp *.h ] : pslaunch.cpp pslaunch.h ] : console ; ExternalLibs psupdater : CRYSTAL CURL ; -CompileGroups psupdater : client ; LinkWith psupdater : xdelta3 ; if $(HAVE_STATIC_PLUGINS) = "yes" { -SubVariant static ; -Application psupdater_static : [ Wildcard *.cpp *.h ] : console ; +SubVariant updaterStatic ; +Application psupdater_static : [ Filter [ Wildcard *.cpp *.h ] : pslaunch.cpp pslaunch.h ] : console ; CFlags psupdater_static : [ FDefines CS_STATIC_LINKED ] ; LFlags psupdater_static : -lcrystalspace_staticplugins-1.2 ; MsvcDefine psupdater_static : CS_STATIC_LINKED ; @@ -25,7 +24,54 @@ ; ExternalLibs psupdater_static : CRYSTAL CURL ; -CompileGroups psupdater_static : client_static ; SubVariant ; } + +SubVariant pslauncher ; +Application pslaunch : + [ Filter [ Wildcard *.cpp *.h ] : updater.cpp updater.h ] : +; + +ExternalLibs pslaunch : CRYSTAL CURL ; +CompileGroups pslaunch : client ; +LinkWith pslaunch : xdelta3 ; +SubVariant ; + +if $(HAVE_STATIC_PLUGINS) = "yes" +{ + +SubVariant launcherStatic ; +Application pslaunch_static : [ Filter [ Wildcard *.cpp *.h ] : updater.cpp updater.h ] : ; +CFlags pslaunch_static : [ FDefines CS_STATIC_LINKED ] ; +LFlags pslaunch_static : -lcrystalspace_staticplugins-1.2 ; +MsvcDefine pslaunch_static : CS_STATIC_LINKED ; +LinkWith pslaunch_static : xdelta3 ; + +STATIC.PLUGINLIST = + vfs + ; + +STATIC.OPTIONALPLUGINLIST = + ; + +if $(TARGET.OS) != "WIN32" +{ + if $(X11.AVAILABLE) = "yes" { STATIC.PLUGINLIST += xwin ; } + if $(XFREE86VM.AVAILABLE) = "yes" { STATIC.PLUGINLIST += xext86vm ; } + STATIC.OPTIONALPLUGINLIST += glx2d ; +} +if $(TARGET.OS) = "WIN32" { STATIC.PLUGINLIST += glwin32 ; } +if $(TARGET.OS) = "MACOS_X" { STATIC.PLUGINLIST += glosx2d ; } + +LinkStaticPlugins pslaunch_static : $(STATIC.PLUGINLIST) +: $(STATIC.OPTIONALPLUGINLIST) +: CRYSTAL +; + +ExternalLibs pslaunch_static : CRYSTAL CURL ; +CompileGroups pslaunch_static : client_static ; + +SubVariant ; +} + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ac...@us...> - 2007-10-23 00:01:12
|
Revision: 76 http://planeshift.svn.sourceforge.net/planeshift/?rev=76&view=rev Author: acraig Date: 2007-10-22 17:01:06 -0700 (Mon, 22 Oct 2007) Log Message: ----------- Chat log reports are now time stamped Modified Paths: -------------- trunk/docs/history.txt trunk/src/common/util/psutil.cpp trunk/src/common/util/psutil.h trunk/src/server/gem.cpp Modified: trunk/docs/history.txt =================================================================== --- trunk/docs/history.txt 2007-10-22 21:02:24 UTC (rev 75) +++ trunk/docs/history.txt 2007-10-23 00:01:06 UTC (rev 76) @@ -1,3 +1,6 @@ +*** 2007-10-22 by Andrew Craig +- /report logs are now time stamped. + *** 2007-10-22 by Anders Reggestad - Added listing of faction to WC. Modified: trunk/src/common/util/psutil.cpp =================================================================== --- trunk/src/common/util/psutil.cpp 2007-10-22 21:02:24 UTC (rev 75) +++ trunk/src/common/util/psutil.cpp 2007-10-23 00:01:06 UTC (rev 76) @@ -24,6 +24,21 @@ #include "psutil.h" #include "util/consoleout.h" +void GetTimeOfDay(csString& string) +{ + time_t curr=time(0); + tm* gmtm = gmtime(&curr); + + string.Format("%d-%02d-%02d %02d:%02d:%02d", + gmtm->tm_year+1900, + gmtm->tm_mon+1, + gmtm->tm_mday, + gmtm->tm_hour, + gmtm->tm_min, + gmtm->tm_sec); +} + + ScopedTimer::ScopedTimer(csTicks limit, const char * format, ... ): limit(limit) { @@ -60,3 +75,4 @@ { return psrandomGen.Get(limit); } + Modified: trunk/src/common/util/psutil.h =================================================================== --- trunk/src/common/util/psutil.h 2007-10-22 21:02:24 UTC (rev 75) +++ trunk/src/common/util/psutil.h 2007-10-23 00:01:06 UTC (rev 76) @@ -23,6 +23,11 @@ #include <cstypes.h> #include <csutil/csstring.h> +/** Get the time of day in GMT. + * @param string The string to place the time of day. + */ +void GetTimeOfDay(csString& string); + struct psPoint { int x; Modified: trunk/src/server/gem.cpp =================================================================== --- trunk/src/server/gem.cpp 2007-10-22 21:02:24 UTC (rev 75) +++ trunk/src/server/gem.cpp 2007-10-23 00:01:06 UTC (rev 76) @@ -70,6 +70,7 @@ #include "util/pserror.h" #include "util/strutil.h" #include "util/eventmanager.h" +#include "util/psutil.h" #include "net/npcmessages.h" #include "engine/psworld.h" #include "gem.h" @@ -2449,6 +2450,12 @@ return false; // Write to the log file + csString tod; + GetTimeOfDay(tod); + csString line; + line.Format("[%s] :", tod.GetData()); + + logging_chat_file->Write(line.GetData(), line.Length()); logging_chat_file->Write(s->GetData(), s->Length()); logging_chat_file->Write("\n", 1); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ac...@us...> - 2007-10-23 00:09:47
|
Revision: 78 http://planeshift.svn.sourceforge.net/planeshift/?rev=78&view=rev Author: acraig Date: 2007-10-22 17:09:51 -0700 (Mon, 22 Oct 2007) Log Message: ----------- Patch from DarcSabre to improve the look of the pawsskill window. Modified Paths: -------------- trunk/docs/history.txt trunk/src/client/gui/pawsskillwindow.cpp Modified: trunk/docs/history.txt =================================================================== --- trunk/docs/history.txt 2007-10-23 00:08:10 UTC (rev 77) +++ trunk/docs/history.txt 2007-10-23 00:09:51 UTC (rev 78) @@ -1,4 +1,7 @@ *** 2007-10-22 by Andrew Craig +- Added patch from DarcSabre to improve the look of the pawsSkill window. + +*** 2007-10-22 by Andrew Craig - /report logs are now time stamped. *** 2007-10-22 by Anders Reggestad Modified: trunk/src/client/gui/pawsskillwindow.cpp =================================================================== --- trunk/src/client/gui/pawsskillwindow.cpp 2007-10-23 00:08:10 UTC (rev 77) +++ trunk/src/client/gui/pawsskillwindow.cpp 2007-10-23 00:09:51 UTC (rev 78) @@ -889,13 +889,24 @@ { csRect sf = screenFrame; + int t1; + if (y < yCost) { + if (GetRelCoord(x) + GetRelCoord(y) < sf.Width()) + { + t1 = GetRelCoord(x) + GetRelCoord(y); + } + else + { + t1 = sf.Width(); + } + int split = GetRelCoord(yCost); DrawSkillProgressBar(sf.xmin, sf.ymin, split, sf.Height(), 180, 180, 30); DrawSkillProgressBar(sf.xmin+split, sf.ymin, sf.Width()-split, sf.Height(), 180, 30, 30); - DrawSkillProgressBar(sf.xmin, sf.ymin, GetRelCoord(y), sf.Height(), 0, 80, 0); - DrawSkillProgressBar(sf.xmin, sf.ymin, GetRelCoord(x), sf.Height()/2, 30, 30, 180); + DrawSkillProgressBar(sf.xmin, sf.ymin, t1, sf.Height()/2, 30, 30, 180); + DrawSkillProgressBar(sf.xmin, sf.ymin, GetRelCoord(y), sf.Height(), 0, 80, 0); } else { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ma...@us...> - 2007-10-23 19:01:32
|
Revision: 82 http://planeshift.svn.sourceforge.net/planeshift/?rev=82&view=rev Author: magodra Date: 2007-10-23 12:01:36 -0700 (Tue, 23 Oct 2007) Log Message: ----------- - Added disabling and stopping of NPCs that use to long time on a tick. Modified Paths: -------------- trunk/docs/history.txt trunk/src/npcclient/npc.cpp trunk/src/npcclient/npc.h trunk/src/npcclient/npcbehave.cpp trunk/src/npcclient/npcclient.cpp Modified: trunk/docs/history.txt =================================================================== --- trunk/docs/history.txt 2007-10-23 19:01:25 UTC (rev 81) +++ trunk/docs/history.txt 2007-10-23 19:01:36 UTC (rev 82) @@ -1,3 +1,6 @@ +*** 2007-10-23 by Andrew Craig +- Added disabling and stopping of NPCs that use to long time on a tick. + *** 2007-10-22 by Andrew Craig - Added patch from DarcSabre to improve the look of the pawsSkill window. Modified: trunk/src/npcclient/npc.cpp =================================================================== --- trunk/src/npcclient/npc.cpp 2007-10-23 19:01:25 UTC (rev 81) +++ trunk/src/npcclient/npc.cpp 2007-10-23 19:01:36 UTC (rev 82) @@ -44,6 +44,7 @@ #include "util/psdatabase.h" #include "util/location.h" #include "engine/psworld.h" +#include "networkmgr.h" extern iDataConnection *db; @@ -67,6 +68,7 @@ target_id=(uint32_t)-1; tribe=NULL; checkedSector=NULL; + disabled = false; } NPC::~NPC() @@ -188,7 +190,7 @@ void NPC::Advance(csTicks when,EventManager *eventmgr) { - if (last_update) + if (last_update && !disabled) { brain->Advance(when-last_update,this,eventmgr); } @@ -198,13 +200,19 @@ void NPC::ResumeScript(EventManager *eventmgr,Behavior *which) { - brain->ResumeScript(this,eventmgr,which); + if (!disabled) + { + brain->ResumeScript(this,eventmgr,which); + } } void NPC::TriggerEvent(Perception *pcpt,EventManager *eventmgr) { - Printf(6,"Got event %s",pcpt->ToString().GetData() ); - brain->FirePerception(this,eventmgr,pcpt); + if (!disabled) + { + Printf(6,"Got event %s",pcpt->ToString().GetData() ); + brain->FirePerception(this,eventmgr,pcpt); + } } void NPC::SetLastPerception(Perception *pcpt) @@ -295,6 +303,20 @@ } } +void NPC::Disable() +{ + disabled = true; + + // Stop the movement + + // Set Vel to zero again + GetLinMove()->SetVelocity( csVector3(0,0,0) ); + GetLinMove()->SetAngularVelocity( 0 ); + + //now persist + npcclient->GetNetworkMgr()->QueueDRData(this); +} + void NPC::DumpBehaviorList() { CPrintf(CON_CMDOUTPUT, "Behaviors for %s (PID: %u)\n",name.GetData(),pid); Modified: trunk/src/npcclient/npc.h =================================================================== --- trunk/src/npcclient/npc.h 2007-10-23 19:01:25 UTC (rev 81) +++ trunk/src/npcclient/npc.h 2007-10-23 19:01:36 UTC (rev 82) @@ -101,6 +101,7 @@ iSector* checkedSector; bool checked; bool checkedResult; + bool disabled; public: HateList hatelist; @@ -123,6 +124,7 @@ const char* GetName() {return name.GetDataSafe();} void SetAlive(bool a) { alive = a; } bool IsAlive() const { return alive; } + void Disable(); Behavior *GetCurrentBehavior() { return brain->GetCurrentBehavior(); } NPCType *GetBrain() { return brain; } Modified: trunk/src/npcclient/npcbehave.cpp =================================================================== --- trunk/src/npcclient/npcbehave.cpp 2007-10-23 19:01:25 UTC (rev 81) +++ trunk/src/npcclient/npcbehave.cpp 2007-10-23 19:01:36 UTC (rev 82) @@ -3109,8 +3109,9 @@ localDest.x,localDest.y,localDest.z, Calc2DDistance(localDest, myPos)); - {ScopedTimer st(250, "chase extrapolate %.2f time for EID: %u",timedelta,npc->GetEntity()->GetID()); - npc->GetLinMove()->ExtrapolatePosition(timedelta); + { + ScopedTimer st(250, "chase extrapolate %.2f time for EID: %u",timedelta,npc->GetEntity()->GetID()); + npc->GetLinMove()->ExtrapolatePosition(timedelta); } npc->GetLinMove()->GetLastPosition(myNewPos,myRot,mySector); if((fabs(myPos.x)> 1000 || fabs(myNewPos.x)> 1000) || (fabs(myPos.y)>1000 || fabs(myNewPos.y)>1000) || (fabs(myPos.z)>1000 || fabs(myNewPos.z)>1000)) Modified: trunk/src/npcclient/npcclient.cpp =================================================================== --- trunk/src/npcclient/npcclient.cpp 2007-10-23 19:01:25 UTC (rev 81) +++ trunk/src/npcclient/npcclient.cpp 2007-10-23 19:01:36 UTC (rev 82) @@ -812,6 +812,9 @@ CPrintf(CON_WARNING,"Used %u time to process tick for npc: %s(EID: %u)\n", timeTaken,npcs[i]->GetName(),npcs[i]->GetEntity()->GetID()); DumpNPC(npcs[i]); + npcs[i]->Disable(); + + CPrintf(CON_WARNING,"Disabled NPC\n"); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mg...@us...> - 2007-10-23 19:52:27
|
Revision: 84 http://planeshift.svn.sourceforge.net/planeshift/?rev=84&view=rev Author: mgist Date: 2007-10-23 12:52:31 -0700 (Tue, 23 Oct 2007) Log Message: ----------- - Increased MAXQUEUESIZE to 20000. Modified Paths: -------------- trunk/docs/history.txt trunk/src/common/net/netbase.h Modified: trunk/docs/history.txt =================================================================== --- trunk/docs/history.txt 2007-10-23 19:03:45 UTC (rev 83) +++ trunk/docs/history.txt 2007-10-23 19:52:31 UTC (rev 84) @@ -1,3 +1,6 @@ +*** 2007-10-23 by Michael Gist +- Increased MAXQUEUESIZE to 20000. + *** 2007-10-23 by Andrew Craig - Added disabling and stopping of NPCs that use to long time on a tick. @@ -15,7 +18,7 @@ - Added guard for dropped items. Chars guard any items they dropped on the ground within 5m range. Should prevent item 'stealing'. -*** 2007-10-22 by Michael Gist. +*** 2007-10-22 by Michael Gist - Changed updater xml to hold an updater md5 for each platform. - Some Jamfile work for the updater. Modified: trunk/src/common/net/netbase.h =================================================================== --- trunk/src/common/net/netbase.h 2007-10-23 19:03:45 UTC (rev 83) +++ trunk/src/common/net/netbase.h 2007-10-23 19:52:31 UTC (rev 84) @@ -33,7 +33,7 @@ #include "netprofile.h" #define NUM_BROADCAST 0xffffffff -#define MAXQUEUESIZE 2000 +#define MAXQUEUESIZE 20000 #define MAXPACKETHISTORY 200 // The number of times the SendTo function will retry on a EAGAIN or EWOULDBLOCK This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ke...@us...> - 2007-10-26 09:11:41
|
Revision: 112 http://planeshift.svn.sourceforge.net/planeshift/?rev=112&view=rev Author: kemedes Date: 2007-10-26 02:10:58 -0700 (Fri, 26 Oct 2007) Log Message: ----------- - Added db indexes for common selects. Should speed up those operations. Modified Paths: -------------- trunk/docs/history.txt trunk/src/server/database/mysql/create_all.sql Added Paths: ----------- trunk/src/server/database/mysql/create_indexes.sql Modified: trunk/docs/history.txt =================================================================== --- trunk/docs/history.txt 2007-10-25 21:26:48 UTC (rev 111) +++ trunk/docs/history.txt 2007-10-26 09:10:58 UTC (rev 112) @@ -1,3 +1,6 @@ +*** 2007-10-26 by Sasha Levin +- Added db indexes for common selects. Should speed up those operations. + *** 2007-10-24 by Andrew Craig - Fixed an issue with hair colours not being set correctly when removing helm. Modified: trunk/src/server/database/mysql/create_all.sql =================================================================== --- trunk/src/server/database/mysql/create_all.sql 2007-10-25 21:26:48 UTC (rev 111) +++ trunk/src/server/database/mysql/create_all.sql 2007-10-26 09:10:58 UTC (rev 112) @@ -85,3 +85,5 @@ source char_create_affinity.sql; source gm_events.sql; source character_events.sql; + +source create_indexes.sql; \ No newline at end of file Added: trunk/src/server/database/mysql/create_indexes.sql =================================================================== --- trunk/src/server/database/mysql/create_indexes.sql (rev 0) +++ trunk/src/server/database/mysql/create_indexes.sql 2007-10-26 09:10:58 UTC (rev 112) @@ -0,0 +1,11 @@ +create index indx_sector_name on sectors (name); +create index indx_AL_sectorname on action_locations (sectorname); +create index indx_AL_master_id on action_locations (master_id); +create index indx_quests_name on quests (name); +create index indx_char_name on characters (name); +create index indx_char_lastname on characters (lastname); +create index indx_item_instance_flags on item_instances (flags); +create index indx_petition_status on petitions (status); +create index indx_petition_escalation_level on petitions (escalation_level); +create index indx_petition_player on petitions (player); +create index indx_guild_name on guilds (name); \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ke...@us...> - 2007-10-31 17:55:12
|
Revision: 143 http://planeshift.svn.sourceforge.net/planeshift/?rev=143&view=rev Author: kemedes Date: 2007-10-31 10:54:30 -0700 (Wed, 31 Oct 2007) Log Message: ----------- - Removed usage of strcmp in psNPCDialog::SubstituteKeywords. - Moved gender string generation to the psRaceInfo class. Modified Paths: -------------- trunk/docs/history.txt trunk/src/server/bulkobjects/psnpcdialog.cpp trunk/src/server/bulkobjects/psraceinfo.cpp trunk/src/server/bulkobjects/psraceinfo.h Modified: trunk/docs/history.txt =================================================================== --- trunk/docs/history.txt 2007-10-28 23:26:08 UTC (rev 142) +++ trunk/docs/history.txt 2007-10-31 17:54:30 UTC (rev 143) @@ -1,3 +1,7 @@ +*** 2007-10-31 by Sasha Levin +- Removed usage of strcmp in psNPCDialog::SubstituteKeywords. +- Moved gender string generation to the psRaceInfo class. + *** 2007-10-28 by Andrew Craig - character skills now have a 'dirty' flag so they are only saved if they have been changed since login. This should again greatly Modified: trunk/src/server/bulkobjects/psnpcdialog.cpp =================================================================== --- trunk/src/server/bulkobjects/psnpcdialog.cpp 2007-10-28 23:26:08 UTC (rev 142) +++ trunk/src/server/bulkobjects/psnpcdialog.cpp 2007-10-31 17:54:30 UTC (rev 143) @@ -426,29 +426,23 @@ word = "$"; word.Append(word2); // include $sign in subst. - if (strcmp(word.GetData(),"$playername")==0) + if (word == "$playername") { if (!response.ReplaceSubString(word,player->GetName())) { Error4("Failed to replace substring %s in %s with %s",word.GetData(),response.GetData(),player->GetName()); } } - else if (strcmp(word.GetData(),"$playerrace")==0) + else if (word == "$playerrace") { if (!response.ReplaceSubString(word, player->GetCharacterData()->raceinfo->name)) { Error4("Failed to replace substring %s in %s with %s",word.GetData(),response.GetData(),player->GetName()); } } - else if (strcmp(word.GetData(),"$sir")==0) + else if (word == "$sir") { - const char* sir; - if ( player->GetCharacterData()->raceinfo->gender == PSCHARACTER_GENDER_FEMALE ) - sir = "Madam"; - else if (player->GetCharacterData()->raceinfo->gender == PSCHARACTER_GENDER_MALE) - sir = "Sir"; - else - sir = "Gemma"; + csString sir = player->GetCharacterData()->raceinfo->GenderString(); if (!response.ReplaceSubString(word,sir)) { Modified: trunk/src/server/bulkobjects/psraceinfo.cpp =================================================================== --- trunk/src/server/bulkobjects/psraceinfo.cpp 2007-10-28 23:26:08 UTC (rev 142) +++ trunk/src/server/bulkobjects/psraceinfo.cpp 2007-10-31 17:54:30 UTC (rev 143) @@ -220,3 +220,16 @@ rot = selectedLoc.yrot; sectorname = selectedLoc.sector_name; }; + +csString psRaceInfo::GenderString() +{ + switch (gender) + { + case PSCHARACTER_GENDER_FEMALE: + return "Maddam"; + case PSCHARACTER_GENDER_MALE: + return "Sir"; + default: + return "Gemma"; + } +} \ No newline at end of file Modified: trunk/src/server/bulkobjects/psraceinfo.h =================================================================== --- trunk/src/server/bulkobjects/psraceinfo.h 2007-10-28 23:26:08 UTC (rev 142) +++ trunk/src/server/bulkobjects/psraceinfo.h 2007-10-31 17:54:30 UTC (rev 143) @@ -82,6 +82,8 @@ { size = this->size; }; + + csString GenderString(); }; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ke...@us...> - 2007-10-31 19:18:44
|
Revision: 147 http://planeshift.svn.sourceforge.net/planeshift/?rev=147&view=rev Author: kemedes Date: 2007-10-31 12:18:41 -0700 (Wed, 31 Oct 2007) Log Message: ----------- - Disabled skeleton key until the bug is solved. Modified Paths: -------------- trunk/docs/history.txt trunk/src/server/bulkobjects/pscharinventory.cpp Modified: trunk/docs/history.txt =================================================================== --- trunk/docs/history.txt 2007-10-31 18:46:07 UTC (rev 146) +++ trunk/docs/history.txt 2007-10-31 19:18:41 UTC (rev 147) @@ -4,6 +4,7 @@ - Calling mysql_real_query for queries, Should save up on lots of strlens. - Not forcing QuestAssignments updates into db on char logout, dirty flag is doing a good job already. +- Disabled skeleton key until the bug is solved. *** 2007-10-28 by Andrew Craig - character skills now have a 'dirty' flag so they are only saved if Modified: trunk/src/server/bulkobjects/pscharinventory.cpp =================================================================== --- trunk/src/server/bulkobjects/pscharinventory.cpp 2007-10-31 18:46:07 UTC (rev 146) +++ trunk/src/server/bulkobjects/pscharinventory.cpp 2007-10-31 19:18:41 UTC (rev 147) @@ -893,7 +893,7 @@ // Inventory indexes start at 1. 0 is reserved for the "NULL" item. for (size_t i=1; i<inventory.GetSize(); i++) { - if (inventory[i].item->CanOpenLock(lock, true)) + if (inventory[i].item->CanOpenLock(lock, false)) return true; } return false; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ac...@us...> - 2007-11-02 22:18:13
|
Revision: 158 http://planeshift.svn.sourceforge.net/planeshift/?rev=158&view=rev Author: acraig Date: 2007-11-02 15:18:17 -0700 (Fri, 02 Nov 2007) Log Message: ----------- Fix for #FS530 Ctrl+LeftClick combo does not work Modified Paths: -------------- trunk/docs/history.txt trunk/src/client/pscharcontrol.cpp Modified: trunk/docs/history.txt =================================================================== --- trunk/docs/history.txt 2007-11-02 17:35:28 UTC (rev 157) +++ trunk/docs/history.txt 2007-11-02 22:18:17 UTC (rev 158) @@ -1,3 +1,6 @@ +*** 2007-11-02 by Andrew Craig +- Patch from Roland to fix FS#530 Ctrl+LeftClick combo does not work + *** 2007-11-02 by Sasha Levin - Committed Lanarels' fix for FS#545. - Added force discard for quest assignments. Modified: trunk/src/client/pscharcontrol.cpp =================================================================== --- trunk/src/client/pscharcontrol.cpp 2007-11-02 17:35:28 UTC (rev 157) +++ trunk/src/client/pscharcontrol.cpp 2007-11-02 22:18:17 UTC (rev 158) @@ -119,14 +119,13 @@ uint32 GetPSMods(const iEvent* event) { - csKeyModifiers m; - csKeyEventHelper::GetModifiers(event,m); - - bool shift = m.modifiers[csKeyModifierTypeShift] != 0; - bool ctrl = m.modifiers[csKeyModifierTypeCtrl] != 0; - bool alt = m.modifiers[csKeyModifierTypeAlt] != 0; - - return (shift << csKeyModifierTypeShift) | (ctrl << csKeyModifierTypeCtrl) | (alt << csKeyModifierTypeAlt); + if(!event) + { + return 0; + } + uint32 modifiers; + event->Retrieve( "keyModifiers", modifiers ); + return modifiers & PS_MODS_MASK; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ac...@us...> - 2007-11-03 21:50:33
|
Revision: 176 http://planeshift.svn.sourceforge.net/planeshift/?rev=176&view=rev Author: acraig Date: 2007-11-03 14:50:35 -0700 (Sat, 03 Nov 2007) Log Message: ----------- Fixed problem of clicking on the node button also made the character move. Modified Paths: -------------- trunk/docs/history.txt trunk/src/common/paws/pawstree.cpp Modified: trunk/docs/history.txt =================================================================== --- trunk/docs/history.txt 2007-11-03 21:26:58 UTC (rev 175) +++ trunk/docs/history.txt 2007-11-03 21:50:35 UTC (rev 176) @@ -1,3 +1,7 @@ +*** 2007-11-03 by Andrew Craig +- Fixed problem where clicking on a tree node button ( ie the +/- ) would + also make the character walk to point. + *** 2007-11-03 by Michael Gist - Fixes to the region unloading code. Modified: trunk/src/common/paws/pawstree.cpp =================================================================== --- trunk/src/common/paws/pawstree.cpp 2007-11-03 21:26:58 UTC (rev 175) +++ trunk/src/common/paws/pawstree.cpp 2007-11-03 21:50:35 UTC (rev 176) @@ -885,7 +885,7 @@ } } } - return false; + return true; } void pawsStdTreeDecorator::GetCollapseSignFrame(pawsTreeNode * node, csRect & rect) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ac...@us...> - 2007-11-05 02:53:28
|
Revision: 191 http://planeshift.svn.sourceforge.net/planeshift/?rev=191&view=rev Author: acraig Date: 2007-11-04 18:53:32 -0800 (Sun, 04 Nov 2007) Log Message: ----------- Switched to standard XML parser. Modified Paths: -------------- trunk/docs/history.txt trunk/src/client/cmdadmin.cpp Modified: trunk/docs/history.txt =================================================================== --- trunk/docs/history.txt 2007-11-05 00:47:13 UTC (rev 190) +++ trunk/docs/history.txt 2007-11-05 02:53:32 UTC (rev 191) @@ -1,3 +1,6 @@ +*** 2007-11-04 by Andrew Craig +- Fixed command parser on client to use standard XML parser system. + *** 2007-11-04 by Kenny Graunke - Clean up scary code (with warnings) in factions.cpp. Modified: trunk/src/client/cmdadmin.cpp =================================================================== --- trunk/src/client/cmdadmin.cpp 2007-11-05 00:47:13 UTC (rev 190) +++ trunk/src/client/cmdadmin.cpp 2007-11-05 02:53:32 UTC (rev 191) @@ -16,6 +16,8 @@ */ #include <psconfig.h> +#include <iutil/document.h> + #include "globals.h" #include "cmdadmin.h" #include "net/cmdhandler.h" @@ -88,30 +90,35 @@ psSystemMessage sysMsg( 0, MSG_INFO, "You now have the following admin commands available:" ); msgqueue->Publish( sysMsg.msg ); - psXMLString main ( msg.cmd ); + + iDocumentSystem* xml = psengine->GetXMLParser (); + csRef<iDocument> doc = xml->CreateDocument(); + const char* error = doc->Parse(msg.cmd); - int start = (int)main.FindTag("command"); - csString commands; - - while ( start != -1 ) + if ( error ) { - csString cmdString; - psXMLTag tag( main, start ); - tag.GetTagParm( "name", cmdString ); + Error3("Failure to parse XML string %s Error %s\n", msg.cmd, error); + } + else + { + csRef<iDocumentNodeIterator> cmdIter = doc->GetRoot()->GetNodes("command"); + + csString commands = ""; + while ( cmdIter->HasNext() ) + { + csRef<iDocumentNode> commandNode = cmdIter->Next(); + csString cmdString = commandNode->GetAttributeValue("name"); + commands.Append( cmdString ); + commands.Append( " " ); + cmdsource->Subscribe( cmdString, this ); + } + + psSystemMessage commandMsg( 0, MSG_INFO, commands.GetData() ); + msgqueue->Publish( commandMsg.msg ); - commands.Append( cmdString ); - commands.Append( " " ); - - cmdsource->Subscribe( cmdString, this ); - - start = main.FindTag( "command", start + 1 ); - } - - psSystemMessage commandMsg( 0, MSG_INFO, commands.GetData() ); - msgqueue->Publish( commandMsg.msg ); - - // Update the auto-complete list - pawsChatWindow* chat = static_cast<pawsChatWindow*>(PawsManager::GetSingleton().FindWidget("ChatWindow")); - chat->RefreshCommandList(); + // Update the auto-complete list + pawsChatWindow* chat = static_cast<pawsChatWindow*>(PawsManager::GetSingleton().FindWidget("ChatWindow")); + chat->RefreshCommandList(); + } } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ke...@us...> - 2007-11-10 00:09:31
|
Revision: 227 http://planeshift.svn.sourceforge.net/planeshift/?rev=227&view=rev Author: kemedes Date: 2007-11-09 16:09:30 -0800 (Fri, 09 Nov 2007) Log Message: ----------- - Updated error message in /key. Thanks Vornne. Modified Paths: -------------- trunk/docs/history.txt trunk/src/server/adminmanager.cpp Modified: trunk/docs/history.txt =================================================================== --- trunk/docs/history.txt 2007-11-10 00:07:36 UTC (rev 226) +++ trunk/docs/history.txt 2007-11-10 00:09:30 UTC (rev 227) @@ -12,6 +12,7 @@ - Added guarding char info in item details window. - Added something to mark master keys in item details window. - Fixed psserver using 100% cpu on linux, Thanks thebolt! +- Updated error message in /key. Thanks Vornne. *** 2007-11-07 by Michael Gist - Deprecation fixes. Modified: trunk/src/server/adminmanager.cpp =================================================================== --- trunk/src/server/adminmanager.cpp 2007-11-10 00:07:36 UTC (rev 226) +++ trunk/src/server/adminmanager.cpp 2007-11-10 00:09:30 UTC (rev 227) @@ -3058,7 +3058,7 @@ // Give syntax if(data.subCmd.Length() == 0) { - psserver->SendSystemError(me->clientnum, "Syntax: /key [changelock|makeunlockable|make|copy|clearlocks|addlock|removelock|skel]"); + psserver->SendSystemError(me->clientnum, "Syntax: /key [changelock|makeunlockable|securitylockable|make|makemaster|copy|clearlocks|addlock|removelock|skel]"); return; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rds...@us...> - 2007-11-10 23:47:07
|
Revision: 243 http://planeshift.svn.sourceforge.net/planeshift/?rev=243&view=rev Author: rdschulz Date: 2007-11-10 15:47:00 -0800 (Sat, 10 Nov 2007) Log Message: ----------- *** 2007-11-10 by Roland Schulz - changed quest lockouts to be in seconds not in ticks - changed player quest lockouts to be expressed in player age, so those quest entries only need to be updated in db once the player lockout expires, not on every signoff. Modified Paths: -------------- trunk/docs/history.txt trunk/src/server/bulkobjects/pscharacter.cpp trunk/src/server/bulkobjects/psquest.cpp trunk/src/server/bulkobjects/psquest.h Modified: trunk/docs/history.txt =================================================================== --- trunk/docs/history.txt 2007-11-10 23:42:07 UTC (rev 242) +++ trunk/docs/history.txt 2007-11-10 23:47:00 UTC (rev 243) @@ -1,3 +1,9 @@ +*** 2007-11-10 by Roland Schulz +- changed quest lockouts to be in seconds not in ticks +- changed player quest lockouts to be expressed in player age, so those + quest entries only need to be updated in db once the player lockout expires, + not on every signoff. + *** 2007-11-10 by Michael Gist - Made a number of fixes to the updater/launcher. - Added 'server news' widget to the launcher. Modified: trunk/src/server/bulkobjects/pscharacter.cpp =================================================================== --- trunk/src/server/bulkobjects/pscharacter.cpp 2007-11-10 23:42:07 UTC (rev 242) +++ trunk/src/server/bulkobjects/pscharacter.cpp 2007-11-10 23:47:00 UTC (rev 243) @@ -2430,7 +2430,7 @@ } } - q->GetQuest()->SetQuestLastActivatedTime( csGetTicks() ); + q->GetQuest()->SetQuestLastActivatedTime( csGetTicks() / 1000 ); Debug3(LOG_QUESTS, GetCharacterID(), "Assigned quest '%s' to player '%s'\n",quest->GetName(),GetCharName() ); UpdateQuestAssignments(); @@ -2471,7 +2471,8 @@ q->dirty = true; q->status = PSQUEST_COMPLETE; // completed - q->lockout_end = csGetTicks() + q->GetQuest()->GetPlayerLockoutTime(); + q->lockout_end = GetTotalOnlineTime() + + q->GetQuest()->GetPlayerLockoutTime(); q->last_response = -1; //reset last response for this quest in case it is restarted // Complete all substeps if this is the parent quest @@ -2509,7 +2510,9 @@ if (q->GetQuest()->HasInfinitePlayerLockout()) q->lockout_end = 0; else - q->lockout_end = csGetTicks() + q->GetQuest()->GetPlayerLockoutTime(); // assignment entry will be deleted after expiration + q->lockout_end = GetTotalOnlineTime() + + q->GetQuest()->GetPlayerLockoutTime(); + // assignment entry will be deleted after expiration Debug3(LOG_QUESTS, GetCharacterID(), "Player '%s' just discarded quest '%s'.\n", GetCharName(),q->GetQuest()->GetName() ); @@ -2557,7 +2560,7 @@ { CS_ASSERT( quest ); // Must not be NULL - csTicks now = csGetTicks(); + unsigned int now = csGetTicks() / 1000; if (quest->GetParentQuest()) { @@ -2600,7 +2603,7 @@ { // Character has this quest in completed list. Check if still in lockout if ( q->GetQuest()->HasInfinitePlayerLockout() || - q->lockout_end > now) + q->lockout_end > GetTotalOnlineTime() ) { if (notify) { @@ -2623,7 +2626,7 @@ { psserver->SendSystemInfo(GetActor()->GetClientID(), "GM NOTICE: Quest (%s) found but player lockout time hasn't elapsed yet. %d seconds remaining.", - quest->GetName(), (q->lockout_end - now)/1000 ); + quest->GetName(), q->lockout_end - GetTotalOnlineTime() ); } } @@ -2651,7 +2654,7 @@ else psserver->SendSystemInfo(GetActor()->GetClientID(), "GM NOTICE: Quest(%s) found, but quest lockout time hasn't elapsed yet. %d seconds remaining.", - quest->GetName(),(quest->GetQuestLastActivatedTime()+quest->GetQuestLockoutTime()-now)/1000); + quest->GetName(),quest->GetQuestLastActivatedTime()+quest->GetQuestLockoutTime() - now); } return false; // Cannot start this quest while in quest lockout time. @@ -2698,7 +2701,7 @@ if (q->status == PSQUEST_DELETE && !q->GetQuest()->HasInfinitePlayerLockout() && (!q->GetQuest()->GetPlayerLockoutTime() || !q->lockout_end || - (q->lockout_end < now))) // delete + (q->lockout_end < GetTotalOnlineTime()))) // delete { r = db->CommandPump("delete from character_quests" " where player_id=%d" @@ -2713,11 +2716,8 @@ // Update or create a new entry in DB - // Store remaining time to DB. Than remaining time has to be added to current time - // at load from DB. - csTicks remaining_time = 0; - if (q->lockout_end && q->lockout_end > now) - remaining_time = q->lockout_end - now; + if(!q->dirty) + continue; r = db->CommandPump("update character_quests " "set status='%c'," @@ -2726,7 +2726,7 @@ " where player_id=%d" " and quest_id=%d", q->status, - remaining_time, + q->lockout_end, q->last_response, characterid, q->GetQuest()->GetID() ); @@ -2739,7 +2739,7 @@ q->assigner_id, q->GetQuest()->GetID(), q->status, - remaining_time, + q->lockout_end, q->last_response); if (r == -1) @@ -2773,6 +2773,7 @@ } csTicks now = csGetTicks(); + unsigned int age = GetTotalOnlineTime(); for (unsigned int i=0; i<result.Count(); i++) { @@ -2780,7 +2781,7 @@ q->dirty = false; q->SetQuest(CacheManager::GetSingleton().GetQuestByID( result[i].GetInt("quest_id") ) ); q->status = result[i]["status"][0]; - q->lockout_end = now + result[i].GetInt("remaininglockout"); + q->lockout_end = result[i].GetInt("remaininglockout"); q->assigner_id = result[i].GetInt("assigner_id"); q->last_response = result[i].GetInt("last_response"); @@ -2793,12 +2794,12 @@ // Sanity check to see if time for completion is withing // lockout time. - if (q->lockout_end > now + q->GetQuest()->GetPlayerLockoutTime()) - q->lockout_end = now + q->GetQuest()->GetPlayerLockoutTime(); + if (q->lockout_end > age + q->GetQuest()->GetPlayerLockoutTime()) + q->lockout_end = age + q->GetQuest()->GetPlayerLockoutTime(); Debug6(LOG_QUESTS, characterid, "Loaded quest %-40.40s, status %c, lockout %lu, last_response %d, for player %s.\n", q->GetQuest()->GetName(),q->status, - ( q->lockout_end > now ? q->lockout_end-now:0),q->last_response, GetCharFullName()); + ( q->lockout_end > age ? q->lockout_end-age:0),q->last_response, GetCharFullName()); assigned_quests.Push(q); } return true; Modified: trunk/src/server/bulkobjects/psquest.cpp =================================================================== --- trunk/src/server/bulkobjects/psquest.cpp 2007-11-10 23:42:07 UTC (rev 242) +++ trunk/src/server/bulkobjects/psquest.cpp 2007-11-10 23:47:00 UTC (rev 243) @@ -98,10 +98,10 @@ else { infinitePlayerLockout = false; - player_lockout_time = lockout_time*1000; // Convert from sec to ticks + player_lockout_time = lockout_time; } - quest_lockout_time = row.GetInt("quest_lockout_time")*1000; // Convert from sec to ticks + quest_lockout_time = row.GetInt("quest_lockout_time"); return true; } Modified: trunk/src/server/bulkobjects/psquest.h =================================================================== --- trunk/src/server/bulkobjects/psquest.h 2007-11-10 23:42:07 UTC (rev 242) +++ trunk/src/server/bulkobjects/psquest.h 2007-11-10 23:47:00 UTC (rev 243) @@ -66,10 +66,10 @@ void SetParentQuest(psQuest *parent) { parent_quest=parent; } int GetStep() const { return step_id; } bool HasInfinitePlayerLockout() const { return infinitePlayerLockout; } - csTicks GetPlayerLockoutTime() const { return player_lockout_time; } - csTicks GetQuestLockoutTime() const { return quest_lockout_time; } - csTicks GetQuestLastActivatedTime() const { return quest_last_activated; } - void SetQuestLastActivatedTime(csTicks when) { quest_last_activated=when; } + unsigned int GetPlayerLockoutTime() const { return player_lockout_time; } + unsigned int GetQuestLockoutTime() const { return quest_lockout_time; } + unsigned int GetQuestLastActivatedTime() const { return quest_last_activated; } + void SetQuestLastActivatedTime(unsigned int when) { quest_last_activated=when; } // csString QuestToXML() const; bool AddPrerequisite(csString prerequisitescript); bool AddPrerequisite(psQuestPrereqOp * op); @@ -100,9 +100,9 @@ csString prerequisiteStr; bool infinitePlayerLockout; - csTicks player_lockout_time; - csTicks quest_lockout_time; - csTicks quest_last_activated; + unsigned int player_lockout_time; + unsigned int quest_lockout_time; + unsigned int quest_last_activated; struct TriggerResponse { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mg...@us...> - 2007-11-13 23:14:00
|
Revision: 262 http://planeshift.svn.sourceforge.net/planeshift/?rev=262&view=rev Author: mgist Date: 2007-11-13 15:13:58 -0800 (Tue, 13 Nov 2007) Log Message: ----------- - Fixed some bugs in the updater and started to add the updating output window. Modified Paths: -------------- trunk/data/gui/launcherwindow.xml trunk/docs/history.txt trunk/src/pslaunch/binarypatch.cpp trunk/src/pslaunch/download.cpp trunk/src/pslaunch/fileutil.cpp trunk/src/pslaunch/pawslauncherwindow.cpp trunk/src/pslaunch/pslaunch.cpp trunk/src/pslaunch/pslaunch.h trunk/src/pslaunch/updater.cpp trunk/src/pslaunch/updaterconfig.cpp trunk/src/pslaunch/updaterconfig.h trunk/src/pslaunch/updaterengine.cpp trunk/src/pslaunch/updatexmls/changedfiles.xml trunk/updaterinfo.xml Modified: trunk/data/gui/launcherwindow.xml =================================================================== --- trunk/data/gui/launcherwindow.xml 2007-11-13 06:41:21 UTC (rev 261) +++ trunk/data/gui/launcherwindow.xml 2007-11-13 23:13:58 UTC (rev 262) @@ -13,6 +13,7 @@ <frame x="280" y="350" width="400" height="120" /> </widget> + <!-- Update available window --> <widget name="UpdateAvailable" factory="pawsYesNoBox" visible="no" savepositions="no" movable="no" resizable="no" > <frame x="200" y="100" width="400" height="250" border="no" /> <bgimage resource="YesNo" alpha="0" /> @@ -34,7 +35,17 @@ </widget> </widget> + <!-- Update output window --> + <widget name="UpdateProgress" factory="pawsWidget" visible="no" savepositions="no" movable="no" resizable="no"> + <bgimage resource="UpdaterBackground" alpha="255" fade="false"/> + <frame x="0" y="0" width="850" height="600" border="no"/> + <widget name="UpdaterOutput" factory="pawsMultiLineTextBox"> + <frame x="50" y="50" width="700" height="313" /> + </widget> + </widget> + + <!-- Quit button --> <widget name="Quit" factory="pawsButton"> <frame x="210" y="520" width="130" height="30" border="no"/> Modified: trunk/docs/history.txt =================================================================== --- trunk/docs/history.txt 2007-11-13 06:41:21 UTC (rev 261) +++ trunk/docs/history.txt 2007-11-13 23:13:58 UTC (rev 262) @@ -5,10 +5,12 @@ *** 2007-11-13 by Michael Gist - A few class renames and improvement to UpdaterEngine ctor. - Added a fallback download of the full file if patching fails. +- Fixed some bugs in the updater and started to add the updating output window. *** 2007-11-11 by Roland Schulz -- Stab at FS#141 ... mental stats affect the cost of training, but this cost was not recalculated - when stats are modified by items, SetSkill or training, only on next login. +- Stab at FS#141 ... mental stats affect the cost of training, but this cost + was not recalculated when stats are modified by items, SetSkill or training, + only on next login. *** 2007-11-11 by Sasha Levin - Enabled mysql auto-reconnect option in dbmysql. Modified: trunk/src/pslaunch/binarypatch.cpp =================================================================== --- trunk/src/pslaunch/binarypatch.cpp 2007-11-13 06:41:21 UTC (rev 261) +++ trunk/src/pslaunch/binarypatch.cpp 2007-11-13 23:13:58 UTC (rev 262) @@ -24,6 +24,10 @@ #include "binarypatch.h" +#ifdef WIN32 +#pragma warning( disable : 4996 ) +#endif + extern "C" { #include "../tools/xdelta3/xdelta3.h" Modified: trunk/src/pslaunch/download.cpp =================================================================== --- trunk/src/pslaunch/download.cpp 2007-11-13 06:41:21 UTC (rev 261) +++ trunk/src/pslaunch/download.cpp 2007-11-13 23:13:58 UTC (rev 262) @@ -17,7 +17,7 @@ * */ -#include <psconfig.h> +#include <cssysdef.h> #include <csutil/randomgen.h> Modified: trunk/src/pslaunch/fileutil.cpp =================================================================== --- trunk/src/pslaunch/fileutil.cpp 2007-11-13 06:41:21 UTC (rev 261) +++ trunk/src/pslaunch/fileutil.cpp 2007-11-13 23:13:58 UTC (rev 262) @@ -19,8 +19,11 @@ // All OS specific stuff should be in this file #define CS_SYSDEF_PROVIDE_DIR -#include <psconfig.h> +#ifdef WIN32 +#pragma warning( disable : 4996 ) +#endif + #include <sys/stat.h> #include <csutil/util.h> #include <iutil/databuff.h> Modified: trunk/src/pslaunch/pawslauncherwindow.cpp =================================================================== --- trunk/src/pslaunch/pawslauncherwindow.cpp 2007-11-13 06:41:21 UTC (rev 261) +++ trunk/src/pslaunch/pawslauncherwindow.cpp 2007-11-13 23:13:58 UTC (rev 262) @@ -81,6 +81,6 @@ else { psLaunchGUI->PerformUpdate(false); - updateWindow->Hide(); } + updateWindow->Hide(); } Modified: trunk/src/pslaunch/pslaunch.cpp =================================================================== --- trunk/src/pslaunch/pslaunch.cpp 2007-11-13 06:41:21 UTC (rev 261) +++ trunk/src/pslaunch/pslaunch.cpp 2007-11-13 23:13:58 UTC (rev 262) @@ -167,7 +167,6 @@ } pawsWidget* launcher = paws->FindWidget("launcher"); - textBox = (pawsMessageTextBox*)launcher->FindWidget("launch_list"); launcher->SetBackgroundAlpha(0); paws->GetMouse()->ChangeImage("Standard Mouse Pointer"); @@ -215,7 +214,40 @@ updateTold = true; } } + else if(*performUpdate) + { + pawsWidget* updateProgress = paws->FindWidget("UpdateProgress"); + if(*updateNeeded) + { + pawsMultiLineTextBox* updateProgressOutput = (pawsMultiLineTextBox*)updateProgress->FindWidget("UpdaterOutput"); + updateProgress->Show(); + paws->FindWidget("launcher")->Hide(); + if(mutex) + { + mutex->Lock(); + } + + for(uint i=0; i<consoleOut->GetSize(); i++) + { + csString currentText = updateProgressOutput->GetText(); + updateProgressOutput->SetText(currentText.Append(consoleOut->Get(i))); + } + consoleOut->DeleteAll(); + + if(mutex) + { + mutex->Unlock(); + } + + } + else + { + paws->FindWidget("launcher")->Show(); + updateProgress->Hide(); + } + } + if (paws->HandleEvent(ev)) return true; @@ -287,7 +319,7 @@ if(!object_reg) { printf("Object Reg failed to Init!\n"); - PS_PAUSEEXIT(1); + exit(1); } // Request needed plugins for updater. Modified: trunk/src/pslaunch/pslaunch.h =================================================================== --- trunk/src/pslaunch/pslaunch.h 2007-11-13 06:41:21 UTC (rev 261) +++ trunk/src/pslaunch/pslaunch.h 2007-11-13 23:13:58 UTC (rev 262) @@ -54,9 +54,7 @@ // PAWS PawsManager* paws; pawsMainWidget* mainWidget; - - pawsMessageTextBox* textBox; - + /* Array to store console output. */ csArray<csString> *consoleOut; @@ -88,9 +86,9 @@ /* Handles an event from the event handler */ bool HandleEvent (iEvent &ev); - + void HandleData(); - + /* Downloads server news */ Downloader* downloader; Modified: trunk/src/pslaunch/updater.cpp =================================================================== --- trunk/src/pslaunch/updater.cpp 2007-11-13 06:41:21 UTC (rev 261) +++ trunk/src/pslaunch/updater.cpp 2007-11-13 23:13:58 UTC (rev 262) @@ -38,7 +38,7 @@ if(!object_reg) { printf("Object Reg failed to Init!\n"); - PS_PAUSEEXIT(1); + exit(1); } // Request needed plugins. csInitializer::RequestPlugins(object_reg, CS_REQUEST_VFS, CS_REQUEST_END); Modified: trunk/src/pslaunch/updaterconfig.cpp =================================================================== --- trunk/src/pslaunch/updaterconfig.cpp 2007-11-13 06:41:21 UTC (rev 261) +++ trunk/src/pslaunch/updaterconfig.cpp 2007-11-13 23:13:58 UTC (rev 262) @@ -17,8 +17,6 @@ * */ -#include <psconfig.h> - #include "updaterconfig.h" iObjectRegistry* UpdaterConfig::object_reg = NULL; @@ -34,7 +32,7 @@ csReport(object_reg, CS_REPORTER_SEVERITY_ERROR, "updater2", "csInitializer::SetupConfigManager failed!\n" "Is your CRYSTAL environment variable set?"); - PS_PAUSEEXIT(1); + exit(1); } configManager = csQueryRegistry<iConfigManager> (object_reg); Modified: trunk/src/pslaunch/updaterconfig.h =================================================================== --- trunk/src/pslaunch/updaterconfig.h 2007-11-13 06:41:21 UTC (rev 261) +++ trunk/src/pslaunch/updaterconfig.h 2007-11-13 23:13:58 UTC (rev 262) @@ -32,10 +32,6 @@ #define UPDATERINFO_FILENAME "/this/updaterinfo.xml" #define UPDATERINFO_OLD_FILENAME "/this/updaterinfo.xml.bak" -#ifndef PS_PAUSEEXIT -#define PS_PAUSEEXIT(x) exit(x) -#endif - class UpdaterConfig; class Mirror Modified: trunk/src/pslaunch/updaterengine.cpp =================================================================== --- trunk/src/pslaunch/updaterengine.cpp 2007-11-13 06:41:21 UTC (rev 261) +++ trunk/src/pslaunch/updaterengine.cpp 2007-11-13 23:13:58 UTC (rev 262) @@ -17,9 +17,6 @@ * */ -#include <psconfig.h> - - #include <csutil/csmd5.h> #include <csutil/xmltiny.h> @@ -50,7 +47,7 @@ if(!vfs) { printf("No VFS!\n"); - PS_PAUSEEXIT(1); + exit(1); } config = new UpdaterConfig(args, object_reg, vfs); fileUtil = new FileUtil(vfs); @@ -113,14 +110,14 @@ if(!root) { printOutput("Unable to get root node"); - PS_PAUSEEXIT(1); + return; } csRef<iDocumentNode> confignode = root->GetNode("config"); if (!confignode) { printOutput("Couldn't find config node in configfile!\n"); - PS_PAUSEEXIT(1); + return; } // Load updater config @@ -228,20 +225,20 @@ if(!root) { printOutput("Unable to get root node"); - PS_PAUSEEXIT(1); + return false; } csRef<iDocumentNode> confignode = root->GetNode("config"); if (!confignode) { printOutput("Couldn't find config node in configfile!\n"); - PS_PAUSEEXIT(1); + return false; } if (!config->GetNewConfig()->Initialize(confignode)) { printOutput("Failed to Initialize mirror config new!\n"); - PS_PAUSEEXIT(1); + return false; } // Compare Versions. @@ -276,7 +273,7 @@ fileUtil->RemoveFile("updaterinfo.xml"); fileUtil->CopyFile("updaterinfo.xml.bak", "updaterinfo.xml", false, false); fileUtil->RemoveFile("updaterinfo.xml.bak"); - PS_PAUSEEXIT(1); + return false; } } // Remove the backup of the xml (they're the same). @@ -392,7 +389,7 @@ if (!buffer) { printOutput("Could not get MD5 of updater zip!!\n"); - PS_PAUSEEXIT(1); + return false; } csMD5::Digest md5 = csMD5::Encode(buffer->GetData(), buffer->GetSize()); @@ -401,7 +398,7 @@ if(!md5sum.Compare(config->GetNewConfig()->GetUpdaterVersionLatestMD5())) { printOutput("md5sum of updater zip does not match correct md5sum!!\n"); - PS_PAUSEEXIT(1); + return false; } // md5sum is correct, mount zip and copy file. @@ -481,7 +478,7 @@ if (!buffer) { printOutput("Could not get MD5 of updater zip!!\n"); - PS_PAUSEEXIT(1); + return false; } csMD5::Digest md5 = csMD5::Encode(buffer->GetData(), buffer->GetSize()); @@ -491,7 +488,7 @@ if(!md5sum.Compare(config->GetNewConfig()->GetUpdaterVersionLatestMD5())) { printOutput("md5sum of updater zip does not match correct md5sum!!\n"); - PS_PAUSEEXIT(1); + return false; } // md5sum is correct, mount zip and copy file. @@ -532,7 +529,7 @@ if (!confignode) { printOutput("Couldn't find config node in configfile!\n"); - PS_PAUSEEXIT(1); + return; } // Main loop. @@ -557,7 +554,7 @@ if (!buffer) { printOutput("Could not get MD5 of updater zip!!\n"); - PS_PAUSEEXIT(1); + return; } csMD5::Digest md5 = csMD5::Encode(buffer->GetData(), buffer->GetSize()); @@ -567,7 +564,7 @@ if(!md5sum.Compare(newCv->GetMD5Sum())) { printOutput("md5sum of client zip does not match correct md5sum!!\n"); - PS_PAUSEEXIT(1); + return; } // Mount zip Modified: trunk/src/pslaunch/updatexmls/changedfiles.xml =================================================================== --- trunk/src/pslaunch/updatexmls/changedfiles.xml 2007-11-13 06:41:21 UTC (rev 261) +++ trunk/src/pslaunch/updatexmls/changedfiles.xml 2007-11-13 23:13:58 UTC (rev 262) @@ -1,9 +1,9 @@ <changedfiles> - <changedfile filepath="/art/world/world.zip" diff="blah.vcdiff" /> - <changedfile filepath="/art/world/world2.zip" diff="blah2.vcdiff" /> - <changedfile filepath="/art/world/world3.zip" diff="blah3.vcdiff" /> - <changedfile filepath="/art/world/world4.zip" diff="blah4.vcdiff" /> - <changedfile filepath="/art/world/world5.zip" diff="blah5.vcdiff" /> - <changedfile filepath="/art/world/world6.zip" diff="blah6.vcdiff" /> - <changedfile filepath="/art/world/world7.zip" diff="blah7.vcdiff" /> + <changedfile filepath="art/world/world.zip" diff="art/world/blah.vcdiff" /> + <changedfile filepath="art/world/world2.zip" diff="art/world/blah2.vcdiff" /> + <changedfile filepath="art/world/world3.zip" diff="art/world/blah3.vcdiff" /> + <changedfile filepath="art/world/world4.zip" diff="art/world/blah4.vcdiff" /> + <changedfile filepath="art/world/world5.zip" diff="art/world/blah5.vcdiff" /> + <changedfile filepath="art/world/world6.zip" diff="art/world/blah6.vcdiff" /> + <changedfile filepath="art/world/world7.zip" diff="art/world/blah7.vcdiff" /> </changedfiles> \ No newline at end of file Modified: trunk/updaterinfo.xml =================================================================== --- trunk/updaterinfo.xml 2007-11-13 06:41:21 UTC (rev 261) +++ trunk/updaterinfo.xml 2007-11-13 23:13:58 UTC (rev 262) @@ -3,16 +3,12 @@ <mirror id="1" name="Xordan" url="http://www.xordan.com/psupdater/" /> </mirrors> <updater> - <version>999</version> + <version>1</version> <md5win32>960e82f40499794ca3bdda33efc33e86</md5win32> - <md5linux32>01234556789abcdef</md5linux32> + <md5linux32>0d3d1d18fa280ef864c13de345561c5b</md5linux32> <md5linux64>01234556789abcdef</md5linux64> <md5macosx>aa4266f38b0a4a93e83bc7aacd2ed1a7</md5macosx> </updater> <client> - <version name="0.3.019-0.3.020" md5win32="01234556789abcdef" md5linux32="01234556789abcdef" md5linux64="01234556789abcdef" md5macosx="01234556789abcdef" /> - <version name="0.3.020-0.3.021" md5win32="01234556789abcdef" md5linux32="01234556789abcdef" md5linux64="01234556789abcdef" md5macosx="01234556789abcdef" /> - <version name="0.4.000-0.4.001" md5win32="01234556789abcdef" md5linux32="01234556789abcdef" md5linux64="01234556789abcdef" md5macosx="01234556789abcdef" /> - <version name="0.4.001-0.4.002" md5win32="01234556789abcdef" md5linux32="01234556789abcdef" md5linux64="01234556789abcdef" md5macosx="01234556789abcdef" /> </client> </config> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mg...@us...> - 2007-11-21 15:03:41
|
Revision: 292 http://planeshift.svn.sourceforge.net/planeshift/?rev=292&view=rev Author: mgist Date: 2007-11-21 07:03:45 -0800 (Wed, 21 Nov 2007) Log Message: ----------- - Update build files. Modified Paths: -------------- trunk/Jamfile.in trunk/mk/autoconf/checklib.m4 trunk/mk/autoconf/crystal.m4 trunk/mk/autoconf/warnings.m4 trunk/mk/jam/build.jam trunk/mk/jam/crystalspace_staticplugins_msvc.jam trunk/mk/jam/flags.jam trunk/mk/jam/helper.jam trunk/mk/jam/library.jam trunk/mk/jam/msvcgen.jam trunk/mk/jam/static.jam trunk/mk/jam/swig.jam trunk/mk/jam/unix.jam trunk/mk/jam/win32.jam trunk/mk/msvcgen/custom.cslib trunk/mk/msvcgen/project6.tlib trunk/mk/msvcgen/project7.tlib trunk/mk/msvcgen/projectx7.tlib trunk/mk/msvcgen/workspace7.tlib trunk/tools/jobber.cfg Added Paths: ----------- trunk/mk/jam/crystalspace_staticplugins_msvc9.jam trunk/mk/jam/debuginfo.jam trunk/mk/jam/upload.jam Removed Paths: ------------- trunk/mk/jam/strip.jam Modified: trunk/Jamfile.in =================================================================== --- trunk/Jamfile.in 2007-11-21 12:10:34 UTC (rev 291) +++ trunk/Jamfile.in 2007-11-21 15:03:45 UTC (rev 292) @@ -53,6 +53,7 @@ MsvcGenSubDir TOP mk msvc7 : 7 ; MsvcGenSubDir TOP mk msvc71 : 71 ; MsvcGenSubDir TOP mk msvc8 : 8 ; +MsvcGenSubDir TOP mk msvc9 : 9 ; # Dir in which the msvcgen files are located. Modified: trunk/mk/autoconf/checklib.m4 =================================================================== --- trunk/mk/autoconf/checklib.m4 2007-11-21 12:10:34 UTC (rev 291) +++ trunk/mk/autoconf/checklib.m4 2007-11-21 15:03:45 UTC (rev 292) @@ -73,11 +73,12 @@ # [OTHER-LFLAGS], [OTHER-LIBS], [ALIASES]) # Very roughly similar in concept to AC_CHECK_LIB(), but allows caller to # to provide list of directories in which to search for LIBRARY; allows -# user to override library location via --with-LIBRARY=dir; and consults -# `pkg-config' (if present) and `LIBRARY-config' (if present, i.e. -# `sdl-config') in order to obtain compiler and linker flags. LIBRARY is -# the name of the library or MacOS/X framework which is to be located -# (for example, "readline" for `libreadline.a' or `readline.framework'). +# user to augment the library search path via --with-LIBRARY=dir; and +# consults `pkg-config' (if present) and `LIBRARY-config' (if present, +# i.e. `sdl-config') in order to obtain compiler and linker flags. +# LIBRARY is the name of the library or MacOS/X framework which is to be +# located (for example, "readline" for `libreadline.a' or +# `readline.framework'). # PROGRAM, which is typically composed with AC_LANG_PROGRAM(), is a # program which references at least one function or symbol in LIBRARY. # SEARCH-LIST is a whitespace-delimited list of paths in which to search @@ -119,8 +120,8 @@ #------------------------------------------------------------------------------ AC_DEFUN([CS_CHECK_LIB_WITH], [AC_ARG_WITH([$1], [AC_HELP_STRING([--with-$1=dir], - [specify location of lib$1 if not detected automatically; searches - dir/include, dir/lib, and dir])]) + [specify additional location to search lib$1 if not detected automatically; + directories searched include dir/include, dir/lib, and dir])]) # Backward compatibility: Recognize --with-lib$1 as alias for --with-$1. AS_IF([test -n "$_CS_CLW_WITH_DEPRECATED([$1])" && @@ -129,20 +130,27 @@ AS_IF([test -z "$_CS_CLW_WITH([$1])"], [_CS_CLW_WITH([$1])=yes]) AS_IF([test "$_CS_CLW_WITH([$1])" != no], - [# If --with-$1 value is same as cached value, then assume other + [ + # If --with-$1 value is same as cached value, then assume other # cached values are also valid; otherwise, ignore all cached values. AS_IF([test "$_CS_CLW_WITH([$1])" != "$_CS_CLW_WITH_CVAR([$1])"], [cs_ignore_cache=yes], [cs_ignore_cache=no]) + # Put relevant subdirs of the library directory into PATH and PKGCONFIG + PATH_SAVE="$PATH" + AS_IF([test $_CS_CLW_WITH([$1]) != yes], + [PATH="$_CS_CLW_WITH([$1])/bin$PATH_SEPARATOR$PATH" + _CS_CHECK_PKG_CONFIG_PREPARE_PATH([$_CS_CLW_WITH([$1]), + $_CS_CLW_WITH([$1])/lib/pkgconfig])]) + cs_check_lib_flags='' - AS_IF([test $_CS_CLW_WITH([$1]) = yes], - [m4_foreach([cs_check_lib_alias], - [m4_ifval([$10], [$1, $10], [$1])], - [_CS_CHECK_LIB_PKG_CONFIG_FLAGS([cs_check_lib_flags], - cs_check_lib_alias) - _CS_CHECK_LIB_CONFIG_FLAGS([cs_check_lib_flags], - cs_check_lib_alias) - ])]) + m4_foreach([cs_check_lib_alias], + [m4_ifval([$10], [$1, $10], [$1])], + [_CS_CHECK_LIB_PKG_CONFIG_FLAGS([cs_check_lib_flags], + cs_check_lib_alias) + _CS_CHECK_LIB_CONFIG_FLAGS([cs_check_lib_flags], + cs_check_lib_alias) + ]) AS_IF([test $_CS_CLW_WITH([$1]) != yes], [cs_check_lib_paths=$_CS_CLW_WITH([$1])], @@ -155,7 +163,12 @@ CS_CHECK_BUILD([for lib$1], [_CS_CLW_LIB_CVAR([$1])], [$2], [$cs_check_lib_flags], [$4], [], [], [$cs_ignore_cache], - [$7], [$8], [$9])], + [$7], [$8], [$9]) + + PATH="$PATH_SAVE" + AS_IF([test $_CS_CLW_WITH([$1]) != yes], + [_CS_CHECK_PKG_CONFIG_UNPREPARE_PATH]) + ], [_CS_CLW_LIB_CVAR([$1])=no]) _CS_CLW_WITH_CVAR([$1])="$_CS_CLW_WITH([$1])" @@ -181,7 +194,6 @@ AC_DEFUN([CS_CHECK_PKG_CONFIG], [AS_IF([test "$cs_prog_pkg_config_checked" != yes], [CS_CHECK_TOOLS([PKG_CONFIG], [pkg-config]) - _CS_CHECK_PKG_CONFIG_PREPARE_PATH cs_prog_pkg_config_checked=yes]) AS_IF([test -z "$cs_cv_prog_pkg_config_ok"], [AS_IF([test -n "$PKG_CONFIG"], @@ -191,12 +203,17 @@ [cs_cv_prog_pkg_config_ok=no])])]) AC_DEFUN([_CS_CHECK_PKG_CONFIG_PREPARE_PATH], - [PKG_CONFIG_PATH="m4_foreach([cs_pkg_path], [cs_pkg_paths_default], + [PKG_CONFIG_PATH_SAVE_1="$PKG_CONFIG_PATH" + PKG_CONFIG_PATH="m4_foreach([cs_pkg_path], [cs_pkg_paths_default], [cs_pkg_path$PATH_SEPARATOR])$PKG_CONFIG_PATH" + PKG_CONFIG_PATH="m4_foreach([cs_pkg_path], [$1], + [cs_pkg_path$PATH_SEPARATOR])$PKG_CONFIG_PATH" export PKG_CONFIG_PATH]) +AC_DEFUN([_CS_CHECK_PKG_CONFIG_UNPREPARE_PATH], + [PKG_CONFIG_PATH="$PKG_CONFIG_PATH_SAVE_1" + export PKG_CONFIG_PATH]) - #------------------------------------------------------------------------------ # _CS_CHECK_LIB_PKG_CONFIG_FLAGS(VARIABLE, LIBRARY) # Helper macro for CS_CHECK_LIB_WITH(). Checks if `pkg-config' knows Modified: trunk/mk/autoconf/crystal.m4 =================================================================== --- trunk/mk/autoconf/crystal.m4 2007-11-21 12:10:34 UTC (rev 291) +++ trunk/mk/autoconf/crystal.m4 2007-11-21 15:03:45 UTC (rev 292) @@ -20,7 +20,7 @@ AC_PREREQ([2.56]) # Should stay in sync with csver.h -m4_define([cs_min_version_default], [1.1]) +m4_define([cs_min_version_default], [1.3]) #------------------------------------------------------------------------------ # CS_PATH_CRYSTAL_CHECK([DESIRED-VERSION], [ACTION-IF-FOUND], @@ -66,7 +66,7 @@ # Split the DESIRED-VERSION into the major and minor version number # components. cs_version_desired=m4_default([$1],[cs_min_version_default]) -sed_expr_base=[\\\([0-9]\\\+\\\)\.\\\([0-9]\\\+\\\).*] +sed_expr_base=['\([0-9][0-9]*\)\.\([0-9][0-9]*\).*'] cs_version_major=`echo $cs_version_desired | sed "s/$sed_expr_base/\1/"` cs_version_minor=`echo $cs_version_desired | sed "s/$sed_expr_base/\2/"` Modified: trunk/mk/autoconf/warnings.m4 =================================================================== --- trunk/mk/autoconf/warnings.m4 2007-11-21 12:10:34 UTC (rev 291) +++ trunk/mk/autoconf/warnings.m4 2007-11-21 15:03:45 UTC (rev 292) @@ -149,3 +149,25 @@ [how to suppress m4_default([$1],[C]) `long double' warnings], [m4_default([$2],[cs_cv_prog_compiler_ignore_long_double])], [CS_CREATE_TUPLE([-Wno-long-double])], [$1], [$3], [$4])]) + + + +#------------------------------------------------------------------------------ +# CS_COMPILER_IGNORE_NON_VIRTUAL_DTOR([LANGUAGE], [CACHE-VAR], +# [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +# Check how to instruct compiler to ignore non-virtual destructors in +# classes containing virtual methods. This option may be useful to +# suppress warnings about code over which we have no control, such as +# 3rd-party headers or code generated by tools. If LANGUAGE is not +# provided, then `C' is assumed (other options include `C++'). If +# CACHE-VAR is not provided, then it defaults to the name +# "cs_cv_prog_compiler_ignore_non_virtual_dtor". If an option (such as +# `-Wno-non-virtual-dtor') is discovered, then it is assigned to +# CACHE-VAR and ACTION-IF-FOUND is invoked; otherwise the empty string is +# assigned to CACHE-VAR and ACTION-IF-NOT-FOUND is invoked. +#------------------------------------------------------------------------------ +AC_DEFUN([CS_COMPILER_IGNORE_NON_VIRTUAL_DTOR], + [CS_CHECK_BUILD_FLAGS( + [how to suppress m4_default([$1],[C]) non-virtual destructor warnings], + [m4_default([$2],[cs_cv_prog_compiler_ignore_non_virtual_dtor])], + [CS_CREATE_TUPLE([-Wno-non-virtual-dtor])], [$1], [$3], [$4])]) Modified: trunk/mk/jam/build.jam =================================================================== --- trunk/mk/jam/build.jam 2007-11-21 12:10:34 UTC (rev 291) +++ trunk/mk/jam/build.jam 2007-11-21 15:03:45 UTC (rev 292) @@ -51,7 +51,7 @@ include $(jamrulesdir)/bisonflex.jam ; include $(jamrulesdir)/swig.jam ; include $(jamrulesdir)/pythmod.jam ; -include $(jamrulesdir)/strip.jam ; +include $(jamrulesdir)/debuginfo.jam ; include $(jamrulesdir)/flags.jam ; include $(jamrulesdir)/library.jam ; @@ -61,6 +61,8 @@ include $(jamrulesdir)/docs.jam ; include $(jamrulesdir)/unittest.jam ; +include $(jamrulesdir)/upload.jam ; + # Include OS specific rules switch $(TARGET.OS) { Modified: trunk/mk/jam/crystalspace_staticplugins_msvc.jam =================================================================== --- trunk/mk/jam/crystalspace_staticplugins_msvc.jam 2007-11-21 12:10:34 UTC (rev 291) +++ trunk/mk/jam/crystalspace_staticplugins_msvc.jam 2007-11-21 15:03:45 UTC (rev 292) @@ -12,3 +12,4 @@ include $(TOP)/mk/jam/crystalspace_staticplugins_msvc7.jam ; include $(TOP)/mk/jam/crystalspace_staticplugins_msvc71.jam ; include $(TOP)/mk/jam/crystalspace_staticplugins_msvc8.jam ; +include $(TOP)/mk/jam/crystalspace_staticplugins_msvc9.jam ; Added: trunk/mk/jam/crystalspace_staticplugins_msvc9.jam =================================================================== --- trunk/mk/jam/crystalspace_staticplugins_msvc9.jam (rev 0) +++ trunk/mk/jam/crystalspace_staticplugins_msvc9.jam 2007-11-21 15:03:45 UTC (rev 292) @@ -0,0 +1,590 @@ +# This file is automatically generated to be used together with crystalspace_staticplugins +# and must be integrated by setting the correct values for the +# HAVE_STATICDEPS.<package> and <package>.STATICDEPS via MsvcGenConfig. +# Furthermore, this file might require manual updates from the master copy +# (usually found in the package's source repository) every now and then. +STATICPLUGINS.AVAILABLE += csopcode ; +STATICPLUGIN.csopcode.CFLAGS.debug.9 = ; +STATICPLUGIN.csopcode.CFLAGS.release.9 = ; +STATICPLUGIN.csopcode.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.csopcode.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += csconin ; +STATICPLUGIN.csconin.CFLAGS.debug.9 = ; +STATICPLUGIN.csconin.CFLAGS.release.9 = ; +STATICPLUGIN.csconin.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.csconin.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += fancycon ; +STATICPLUGIN.fancycon.CFLAGS.debug.9 = ; +STATICPLUGIN.fancycon.CFLAGS.release.9 = ; +STATICPLUGIN.fancycon.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.fancycon.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += csconout ; +STATICPLUGIN.csconout.CFLAGS.debug.9 = ; +STATICPLUGIN.csconout.CFLAGS.release.9 = ; +STATICPLUGIN.csconout.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.csconout.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += csparser ; +STATICPLUGIN.csparser.CFLAGS.debug.9 = ; +STATICPLUGIN.csparser.CFLAGS.release.9 = ; +STATICPLUGIN.csparser.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.csparser.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += cssynldr ; +STATICPLUGIN.cssynldr.CFLAGS.debug.9 = ; +STATICPLUGIN.cssynldr.CFLAGS.release.9 = ; +STATICPLUGIN.cssynldr.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.cssynldr.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += cssaver ; +STATICPLUGIN.cssaver.CFLAGS.debug.9 = ; +STATICPLUGIN.cssaver.CFLAGS.release.9 = ; +STATICPLUGIN.cssaver.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.cssaver.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += dynavis ; +STATICPLUGIN.dynavis.CFLAGS.debug.9 = ; +STATICPLUGIN.dynavis.CFLAGS.release.9 = ; +STATICPLUGIN.dynavis.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.dynavis.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += frustvis ; +STATICPLUGIN.frustvis.CFLAGS.debug.9 = ; +STATICPLUGIN.frustvis.CFLAGS.release.9 = ; +STATICPLUGIN.frustvis.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.frustvis.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += decal ; +STATICPLUGIN.decal.CFLAGS.debug.9 = ; +STATICPLUGIN.decal.CFLAGS.release.9 = ; +STATICPLUGIN.decal.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.decal.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += joywin ; +STATICPLUGIN.joywin.CFLAGS.debug.9 = ; +STATICPLUGIN.joywin.CFLAGS.release.9 = ; +STATICPLUGIN.joywin.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib libcrystalspace_directx_d.lib zlib.lib dsound.lib ddraw.lib dinput.lib ; +STATICPLUGIN.joywin.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib libcrystalspace_directx.lib zlib.lib dsound.lib ddraw.lib dinput.lib ; +STATICPLUGINS.AVAILABLE += bindoc ; +STATICPLUGIN.bindoc.CFLAGS.debug.9 = ; +STATICPLUGIN.bindoc.CFLAGS.release.9 = ; +STATICPLUGIN.bindoc.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.bindoc.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += dsplex ; +STATICPLUGIN.dsplex.CFLAGS.debug.9 = ; +STATICPLUGIN.dsplex.CFLAGS.release.9 = ; +STATICPLUGIN.dsplex.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.dsplex.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += xmlread ; +STATICPLUGIN.xmlread.CFLAGS.debug.9 = ; +STATICPLUGIN.xmlread.CFLAGS.release.9 = ; +STATICPLUGIN.xmlread.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.xmlread.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += xmltiny ; +STATICPLUGIN.xmltiny.CFLAGS.debug.9 = ; +STATICPLUGIN.xmltiny.CFLAGS.release.9 = ; +STATICPLUGIN.xmltiny.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.xmltiny.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += engine ; +STATICPLUGIN.engine.CFLAGS.debug.9 = ; +STATICPLUGIN.engine.CFLAGS.release.9 = ; +STATICPLUGIN.engine.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.engine.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += rendloop_loader ; +STATICPLUGIN.rendloop_loader.CFLAGS.debug.9 = ; +STATICPLUGIN.rendloop_loader.CFLAGS.release.9 = ; +STATICPLUGIN.rendloop_loader.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.rendloop_loader.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += rendstep_std ; +STATICPLUGIN.rendstep_std.CFLAGS.debug.9 = ; +STATICPLUGIN.rendstep_std.CFLAGS.release.9 = ; +STATICPLUGIN.rendstep_std.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.rendstep_std.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += rendstep_stencil ; +STATICPLUGIN.rendstep_stencil.CFLAGS.debug.9 = ; +STATICPLUGIN.rendstep_stencil.CFLAGS.release.9 = ; +STATICPLUGIN.rendstep_stencil.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.rendstep_stencil.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += rendstep_stencil2 ; +STATICPLUGIN.rendstep_stencil2.CFLAGS.debug.9 = ; +STATICPLUGIN.rendstep_stencil2.CFLAGS.release.9 = ; +STATICPLUGIN.rendstep_stencil2.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.rendstep_stencil2.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += engseq ; +STATICPLUGIN.engseq.CFLAGS.debug.9 = ; +STATICPLUGIN.engseq.CFLAGS.release.9 = ; +STATICPLUGIN.engseq.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.engseq.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += vfs ; +STATICPLUGIN.vfs.CFLAGS.debug.9 = ; +STATICPLUGIN.vfs.CFLAGS.release.9 = ; +STATICPLUGIN.vfs.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.vfs.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += csfont ; +STATICPLUGIN.csfont.CFLAGS.debug.9 = ; +STATICPLUGIN.csfont.CFLAGS.release.9 = ; +STATICPLUGIN.csfont.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.csfont.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += fontplex ; +STATICPLUGIN.fontplex.CFLAGS.debug.9 = ; +STATICPLUGIN.fontplex.CFLAGS.release.9 = ; +STATICPLUGIN.fontplex.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.fontplex.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += freefnt2 ; +STATICPLUGIN.freefnt2.CFLAGS.debug.9 = ; +STATICPLUGIN.freefnt2.CFLAGS.release.9 = ; +STATICPLUGIN.freefnt2.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib freetype2.lib ; +STATICPLUGIN.freefnt2.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib freetype2.lib ; +STATICPLUGINS.AVAILABLE += cscegui ; +STATICPLUGIN.cscegui.CFLAGS.debug.9 = ; +STATICPLUGIN.cscegui.CFLAGS.release.9 = ; +STATICPLUGIN.cscegui.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib CEGUIBase-vc8_d.lib ; +STATICPLUGIN.cscegui.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib CEGUIBase-vc8.lib ; +STATICPLUGINS.AVAILABLE += bezier ; +STATICPLUGIN.bezier.CFLAGS.debug.9 = ; +STATICPLUGIN.bezier.CFLAGS.release.9 = ; +STATICPLUGIN.bezier.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.bezier.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += bezierldr ; +STATICPLUGIN.bezierldr.CFLAGS.debug.9 = ; +STATICPLUGIN.bezierldr.CFLAGS.release.9 = ; +STATICPLUGIN.bezierldr.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.bezierldr.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += emit ; +STATICPLUGIN.emit.CFLAGS.debug.9 = ; +STATICPLUGIN.emit.CFLAGS.release.9 = ; +STATICPLUGIN.emit.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.emit.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += emitldr ; +STATICPLUGIN.emitldr.CFLAGS.debug.9 = ; +STATICPLUGIN.emitldr.CFLAGS.release.9 = ; +STATICPLUGIN.emitldr.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.emitldr.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += genmesh ; +STATICPLUGIN.genmesh.CFLAGS.debug.9 = ; +STATICPLUGIN.genmesh.CFLAGS.release.9 = ; +STATICPLUGIN.genmesh.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.genmesh.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += gmeshldr ; +STATICPLUGIN.gmeshldr.CFLAGS.debug.9 = ; +STATICPLUGIN.gmeshldr.CFLAGS.release.9 = ; +STATICPLUGIN.gmeshldr.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.gmeshldr.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += gmesh3ds ; +STATICPLUGIN.gmesh3ds.CFLAGS.debug.9 = ; +STATICPLUGIN.gmesh3ds.CFLAGS.release.9 = ; +STATICPLUGIN.gmesh3ds.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib lib3ds.lib ; +STATICPLUGIN.gmesh3ds.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib lib3ds.lib ; +STATICPLUGINS.AVAILABLE += gmeshanim ; +STATICPLUGIN.gmeshanim.CFLAGS.debug.9 = ; +STATICPLUGIN.gmeshanim.CFLAGS.release.9 = ; +STATICPLUGIN.gmeshanim.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.gmeshanim.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += gmeshskelanim2 ; +STATICPLUGIN.gmeshskelanim2.CFLAGS.debug.9 = ; +STATICPLUGIN.gmeshskelanim2.CFLAGS.release.9 = ; +STATICPLUGIN.gmeshskelanim2.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.gmeshskelanim2.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += gmeshanimpdl ; +STATICPLUGIN.gmeshanimpdl.CFLAGS.debug.9 = ; +STATICPLUGIN.gmeshanimpdl.CFLAGS.release.9 = ; +STATICPLUGIN.gmeshanimpdl.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.gmeshanimpdl.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += haze ; +STATICPLUGIN.haze.CFLAGS.debug.9 = ; +STATICPLUGIN.haze.CFLAGS.release.9 = ; +STATICPLUGIN.haze.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.haze.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += hazeldr ; +STATICPLUGIN.hazeldr.CFLAGS.debug.9 = ; +STATICPLUGIN.hazeldr.CFLAGS.release.9 = ; +STATICPLUGIN.hazeldr.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.hazeldr.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += instmesh ; +STATICPLUGIN.instmesh.CFLAGS.debug.9 = ; +STATICPLUGIN.instmesh.CFLAGS.release.9 = ; +STATICPLUGIN.instmesh.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.instmesh.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += instmeshldr ; +STATICPLUGIN.instmeshldr.CFLAGS.debug.9 = ; +STATICPLUGIN.instmeshldr.CFLAGS.release.9 = ; +STATICPLUGIN.instmeshldr.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.instmeshldr.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += lghtng ; +STATICPLUGIN.lghtng.CFLAGS.debug.9 = ; +STATICPLUGIN.lghtng.CFLAGS.release.9 = ; +STATICPLUGIN.lghtng.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.lghtng.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += lghtngldr ; +STATICPLUGIN.lghtngldr.CFLAGS.debug.9 = ; +STATICPLUGIN.lghtngldr.CFLAGS.release.9 = ; +STATICPLUGIN.lghtngldr.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.lghtngldr.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += nullmesh ; +STATICPLUGIN.nullmesh.CFLAGS.debug.9 = ; +STATICPLUGIN.nullmesh.CFLAGS.release.9 = ; +STATICPLUGIN.nullmesh.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.nullmesh.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += nullmeshldr ; +STATICPLUGIN.nullmeshldr.CFLAGS.debug.9 = ; +STATICPLUGIN.nullmeshldr.CFLAGS.release.9 = ; +STATICPLUGIN.nullmeshldr.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.nullmeshldr.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += particles ; +STATICPLUGIN.particles.CFLAGS.debug.9 = ; +STATICPLUGIN.particles.CFLAGS.release.9 = ; +STATICPLUGIN.particles.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.particles.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += particlesldr ; +STATICPLUGIN.particlesldr.CFLAGS.debug.9 = ; +STATICPLUGIN.particlesldr.CFLAGS.release.9 = ; +STATICPLUGIN.particlesldr.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.particlesldr.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += spr2d ; +STATICPLUGIN.spr2d.CFLAGS.debug.9 = ; +STATICPLUGIN.spr2d.CFLAGS.release.9 = ; +STATICPLUGIN.spr2d.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.spr2d.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += spr2dldr ; +STATICPLUGIN.spr2dldr.CFLAGS.debug.9 = ; +STATICPLUGIN.spr2dldr.CFLAGS.release.9 = ; +STATICPLUGIN.spr2dldr.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.spr2dldr.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += spr3d ; +STATICPLUGIN.spr3d.CFLAGS.debug.9 = ; +STATICPLUGIN.spr3d.CFLAGS.release.9 = ; +STATICPLUGIN.spr3d.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.spr3d.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += spr3dbin ; +STATICPLUGIN.spr3dbin.CFLAGS.debug.9 = ; +STATICPLUGIN.spr3dbin.CFLAGS.release.9 = ; +STATICPLUGIN.spr3dbin.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.spr3dbin.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += spr3dldr ; +STATICPLUGIN.spr3dldr.CFLAGS.debug.9 = ; +STATICPLUGIN.spr3dldr.CFLAGS.release.9 = ; +STATICPLUGIN.spr3dldr.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.spr3dldr.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += spr3md2 ; +STATICPLUGIN.spr3md2.CFLAGS.debug.9 = ; +STATICPLUGIN.spr3md2.CFLAGS.release.9 = ; +STATICPLUGIN.spr3md2.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.spr3md2.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += sprcal3d ; +STATICPLUGIN.sprcal3d.CFLAGS.debug.9 = "/D CS_HAVE_CAL3D" ; +STATICPLUGIN.sprcal3d.CFLAGS.release.9 = "/D CS_HAVE_CAL3D" ; +STATICPLUGIN.sprcal3d.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib cal3d-vc8_d.lib ; +STATICPLUGIN.sprcal3d.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib cal3d-vc8.lib ; +STATICPLUGINS.AVAILABLE += sprcal3dldr ; +STATICPLUGIN.sprcal3dldr.CFLAGS.debug.9 = "/D CS_HAVE_CAL3D" ; +STATICPLUGIN.sprcal3dldr.CFLAGS.release.9 = "/D CS_HAVE_CAL3D" ; +STATICPLUGIN.sprcal3dldr.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib cal3d-vc8_d.lib ; +STATICPLUGIN.sprcal3dldr.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib cal3d-vc8.lib ; +STATICPLUGINS.AVAILABLE += bruteblock ; +STATICPLUGIN.bruteblock.CFLAGS.debug.9 = ; +STATICPLUGIN.bruteblock.CFLAGS.release.9 = ; +STATICPLUGIN.bruteblock.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.bruteblock.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += terrainldr ; +STATICPLUGIN.terrainldr.CFLAGS.debug.9 = ; +STATICPLUGIN.terrainldr.CFLAGS.release.9 = ; +STATICPLUGIN.terrainldr.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.terrainldr.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += terrain2ldr ; +STATICPLUGIN.terrain2ldr.CFLAGS.debug.9 = ; +STATICPLUGIN.terrain2ldr.CFLAGS.release.9 = ; +STATICPLUGIN.terrain2ldr.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.terrain2ldr.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += terrain2 ; +STATICPLUGIN.terrain2.CFLAGS.debug.9 = ; +STATICPLUGIN.terrain2.CFLAGS.release.9 = ; +STATICPLUGIN.terrain2.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.terrain2.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += thing ; +STATICPLUGIN.thing.CFLAGS.debug.9 = ; +STATICPLUGIN.thing.CFLAGS.release.9 = ; +STATICPLUGIN.thing.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.thing.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += thingldr ; +STATICPLUGIN.thingldr.CFLAGS.debug.9 = ; +STATICPLUGIN.thingldr.CFLAGS.release.9 = ; +STATICPLUGIN.thingldr.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.thingldr.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += protomesh ; +STATICPLUGIN.protomesh.CFLAGS.debug.9 = ; +STATICPLUGIN.protomesh.CFLAGS.release.9 = ; +STATICPLUGIN.protomesh.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.protomesh.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += protomeshldr ; +STATICPLUGIN.protomeshldr.CFLAGS.debug.9 = ; +STATICPLUGIN.protomeshldr.CFLAGS.release.9 = ; +STATICPLUGIN.protomeshldr.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.protomeshldr.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += skeleton ; +STATICPLUGIN.skeleton.CFLAGS.debug.9 = ; +STATICPLUGIN.skeleton.CFLAGS.release.9 = ; +STATICPLUGIN.skeleton.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.skeleton.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += skelldr ; +STATICPLUGIN.skelldr.CFLAGS.debug.9 = ; +STATICPLUGIN.skelldr.CFLAGS.release.9 = ; +STATICPLUGIN.skelldr.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.skelldr.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += physldr ; +STATICPLUGIN.physldr.CFLAGS.debug.9 = ; +STATICPLUGIN.physldr.CFLAGS.release.9 = ; +STATICPLUGIN.physldr.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.physldr.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += odedynam ; +STATICPLUGIN.odedynam.CFLAGS.debug.9 = ; +STATICPLUGIN.odedynam.CFLAGS.release.9 = ; +STATICPLUGIN.odedynam.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ode.lib ; +STATICPLUGIN.odedynam.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ode.lib ; +STATICPLUGINS.AVAILABLE += bullet ; +STATICPLUGIN.bullet.CFLAGS.debug.9 = ; +STATICPLUGIN.bullet.CFLAGS.release.9 = ; +STATICPLUGIN.bullet.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib bullet-vc8_d.lib bulletdynamics-vc8_d.lib bulletphysicsinterfacecommon-vc8_d.lib bulletccdphysics-vc8_d.lib bulletmath-vc8_d.lib ; +STATICPLUGIN.bullet.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib bullet-vc8.lib bulletdynamics-vc8.lib bulletphysicsinterfacecommon-vc8.lib bulletccdphysics-vc8.lib bulletmath-vc8.lib ; +STATICPLUGINS.AVAILABLE += ptanimimg ; +STATICPLUGIN.ptanimimg.CFLAGS.debug.9 = ; +STATICPLUGIN.ptanimimg.CFLAGS.release.9 = ; +STATICPLUGIN.ptanimimg.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.ptanimimg.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += ptpdlight ; +STATICPLUGIN.ptpdlight.CFLAGS.debug.9 = ; +STATICPLUGIN.ptpdlight.CFLAGS.release.9 = ; +STATICPLUGIN.ptpdlight.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.ptpdlight.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += stdpt ; +STATICPLUGIN.stdpt.CFLAGS.debug.9 = ; +STATICPLUGIN.stdpt.CFLAGS.release.9 = ; +STATICPLUGIN.stdpt.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.stdpt.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += tlfunc ; +STATICPLUGIN.tlfunc.CFLAGS.debug.9 = ; +STATICPLUGIN.tlfunc.CFLAGS.release.9 = ; +STATICPLUGIN.tlfunc.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.tlfunc.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += reporter ; +STATICPLUGIN.reporter.CFLAGS.debug.9 = ; +STATICPLUGIN.reporter.CFLAGS.release.9 = ; +STATICPLUGIN.reporter.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.reporter.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += sequence ; +STATICPLUGIN.sequence.CFLAGS.debug.9 = ; +STATICPLUGIN.sequence.CFLAGS.release.9 = ; +STATICPLUGIN.sequence.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.sequence.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += sndsysloader ; +STATICPLUGIN.sndsysloader.CFLAGS.debug.9 = ; +STATICPLUGIN.sndsysloader.CFLAGS.release.9 = ; +STATICPLUGIN.sndsysloader.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.sndsysloader.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += sndsysogg ; +STATICPLUGIN.sndsysogg.CFLAGS.debug.9 = ; +STATICPLUGIN.sndsysogg.CFLAGS.release.9 = ; +STATICPLUGIN.sndsysogg.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib vorbisfile.lib vorbis.lib ogg.lib ; +STATICPLUGIN.sndsysogg.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib vorbisfile.lib vorbis.lib ogg.lib ; +STATICPLUGINS.AVAILABLE += sndsyswav ; +STATICPLUGIN.sndsyswav.CFLAGS.debug.9 = ; +STATICPLUGIN.sndsyswav.CFLAGS.release.9 = ; +STATICPLUGIN.sndsyswav.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.sndsyswav.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += sndmanager ; +STATICPLUGIN.sndmanager.CFLAGS.debug.9 = ; +STATICPLUGIN.sndmanager.CFLAGS.release.9 = ; +STATICPLUGIN.sndmanager.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.sndmanager.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += sndsyssoft ; +STATICPLUGIN.sndsyssoft.CFLAGS.debug.9 = ; +STATICPLUGIN.sndsyssoft.CFLAGS.release.9 = ; +STATICPLUGIN.sndsyssoft.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.sndsyssoft.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += sndsyswin ; +STATICPLUGIN.sndsyswin.CFLAGS.debug.9 = ; +STATICPLUGIN.sndsyswin.CFLAGS.release.9 = ; +STATICPLUGIN.sndsyswin.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib libcrystalspace_directx_d.lib zlib.lib dsound.lib ddraw.lib dinput.lib ; +STATICPLUGIN.sndsyswin.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib libcrystalspace_directx.lib zlib.lib dsound.lib ddraw.lib dinput.lib ; +STATICPLUGINS.AVAILABLE += sndsysnull ; +STATICPLUGIN.sndsysnull.CFLAGS.debug.9 = ; +STATICPLUGIN.sndsysnull.CFLAGS.release.9 = ; +STATICPLUGIN.sndsysnull.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.sndsysnull.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += sndsyseventrecorder ; +STATICPLUGIN.sndsyseventrecorder.CFLAGS.debug.9 = ; +STATICPLUGIN.sndsyseventrecorder.CFLAGS.release.9 = ; +STATICPLUGIN.sndsyseventrecorder.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.sndsyseventrecorder.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += stdrep ; +STATICPLUGIN.stdrep.CFLAGS.debug.9 = ; +STATICPLUGIN.stdrep.CFLAGS.release.9 = ; +STATICPLUGIN.stdrep.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.stdrep.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += simpleformer ; +STATICPLUGIN.simpleformer.CFLAGS.debug.9 = ; +STATICPLUGIN.simpleformer.CFLAGS.release.9 = ; +STATICPLUGIN.simpleformer.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.simpleformer.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += simpleformerldr ; +STATICPLUGIN.simpleformerldr.CFLAGS.debug.9 = ; +STATICPLUGIN.simpleformerldr.CFLAGS.release.9 = ; +STATICPLUGIN.simpleformerldr.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.simpleformerldr.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += pagingformer ; +STATICPLUGIN.pagingformer.CFLAGS.debug.9 = ; +STATICPLUGIN.pagingformer.CFLAGS.release.9 = ; +STATICPLUGIN.pagingformer.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.pagingformer.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += pagingformerldr ; +STATICPLUGIN.pagingformerldr.CFLAGS.debug.9 = ; +STATICPLUGIN.pagingformerldr.CFLAGS.release.9 = ; +STATICPLUGIN.pagingformerldr.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.pagingformerldr.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += trans_std ; +STATICPLUGIN.trans_std.CFLAGS.debug.9 = ; +STATICPLUGIN.trans_std.CFLAGS.release.9 = ; +STATICPLUGIN.trans_std.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.trans_std.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += bugplug ; +STATICPLUGIN.bugplug.CFLAGS.debug.9 = ; +STATICPLUGIN.bugplug.CFLAGS.release.9 = ; +STATICPLUGIN.bugplug.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.bugplug.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += movierecorder ; +STATICPLUGIN.movierecorder.CFLAGS.debug.9 = ; +STATICPLUGIN.movierecorder.CFLAGS.release.9 = ; +STATICPLUGIN.movierecorder.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.movierecorder.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += profiler ; +STATICPLUGIN.profiler.CFLAGS.debug.9 = ; +STATICPLUGIN.profiler.CFLAGS.release.9 = ; +STATICPLUGIN.profiler.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.profiler.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += cacacanvas ; +STATICPLUGIN.cacacanvas.CFLAGS.debug.9 = ; +STATICPLUGIN.cacacanvas.CFLAGS.release.9 = ; +STATICPLUGIN.cacacanvas.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib libcaca.lib ; +STATICPLUGIN.cacacanvas.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib libcaca.lib ; +STATICPLUGINS.AVAILABLE += ddraw2d ; +STATICPLUGIN.ddraw2d.CFLAGS.debug.9 = ; +STATICPLUGIN.ddraw2d.CFLAGS.release.9 = ; +STATICPLUGIN.ddraw2d.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_windows_d.lib libcrystalspace_directx_d.lib libcrystalspace_d.lib dsound.lib ddraw.lib dinput.lib zlib.lib ; +STATICPLUGIN.ddraw2d.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace_windows.lib libcrystalspace_directx.lib libcrystalspace.lib dsound.lib ddraw.lib dinput.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += embedgl ; +STATICPLUGIN.embedgl.CFLAGS.debug.9 = ; +STATICPLUGIN.embedgl.CFLAGS.release.9 = ; +STATICPLUGIN.embedgl.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_opengl_d.lib libcrystalspace_d.lib opengl32.lib zlib.lib ; +STATICPLUGIN.embedgl.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace_opengl.lib libcrystalspace.lib opengl32.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += memory2d ; +STATICPLUGIN.memory2d.CFLAGS.debug.9 = ; +STATICPLUGIN.memory2d.CFLAGS.release.9 = ; +STATICPLUGIN.memory2d.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.memory2d.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += null2d ; +STATICPLUGIN.null2d.CFLAGS.debug.9 = ; +STATICPLUGIN.null2d.CFLAGS.release.9 = ; +STATICPLUGIN.null2d.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.null2d.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += glwin32 ; +STATICPLUGIN.glwin32.CFLAGS.debug.9 = ; +STATICPLUGIN.glwin32.CFLAGS.release.9 = ; +STATICPLUGIN.glwin32.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_windows_d.lib libcrystalspace_opengl_d.lib libcrystalspace_d.lib opengl32.lib zlib.lib version.lib ; +STATICPLUGIN.glwin32.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace_windows.lib libcrystalspace_opengl.lib libcrystalspace.lib opengl32.lib zlib.lib version.lib ; +STATICPLUGINS.AVAILABLE += csbmpimg ; +STATICPLUGIN.csbmpimg.CFLAGS.debug.9 = ; +STATICPLUGIN.csbmpimg.CFLAGS.release.9 = ; +STATICPLUGIN.csbmpimg.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.csbmpimg.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += csddsimg ; +STATICPLUGIN.csddsimg.CFLAGS.debug.9 = ; +STATICPLUGIN.csddsimg.CFLAGS.release.9 = ; +STATICPLUGIN.csddsimg.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.csddsimg.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += csgifimg ; +STATICPLUGIN.csgifimg.CFLAGS.debug.9 = ; +STATICPLUGIN.csgifimg.CFLAGS.release.9 = ; +STATICPLUGIN.csgifimg.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.csgifimg.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += csjngimg ; +STATICPLUGIN.csjngimg.CFLAGS.debug.9 = ; +STATICPLUGIN.csjngimg.CFLAGS.release.9 = ; +STATICPLUGIN.csjngimg.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib libmng.lib libjpeg.lib ; +STATICPLUGIN.csjngimg.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib libmng.lib libjpeg.lib ; +STATICPLUGINS.AVAILABLE += csjpgimg ; +STATICPLUGIN.csjpgimg.CFLAGS.debug.9 = ; +STATICPLUGIN.csjpgimg.CFLAGS.release.9 = ; +STATICPLUGIN.csjpgimg.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib libjpeg.lib ; +STATICPLUGIN.csjpgimg.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib libjpeg.lib ; +STATICPLUGINS.AVAILABLE += imgplex ; +STATICPLUGIN.imgplex.CFLAGS.debug.9 = ; +STATICPLUGIN.imgplex.CFLAGS.release.9 = ; +STATICPLUGIN.imgplex.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.imgplex.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += cspngimg ; +STATICPLUGIN.cspngimg.CFLAGS.debug.9 = ; +STATICPLUGIN.cspngimg.CFLAGS.release.9 = ; +STATICPLUGIN.cspngimg.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib libpng.lib ; +STATICPLUGIN.cspngimg.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib libpng.lib ; +STATICPLUGINS.AVAILABLE += cstgaimg ; +STATICPLUGIN.cstgaimg.CFLAGS.debug.9 = ; +STATICPLUGIN.cstgaimg.CFLAGS.release.9 = ; +STATICPLUGIN.cstgaimg.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.cstgaimg.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += gl3d ; +STATICPLUGIN.gl3d.CFLAGS.debug.9 = ; +STATICPLUGIN.gl3d.CFLAGS.release.9 = ; +STATICPLUGIN.gl3d.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib opengl32.lib ; +STATICPLUGIN.gl3d.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib opengl32.lib ; +STATICPLUGINS.AVAILABLE += soft3d ; +STATICPLUGIN.soft3d.CFLAGS.debug.9 = ; +STATICPLUGIN.soft3d.CFLAGS.release.9 = ; +STATICPLUGIN.soft3d.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.soft3d.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += shadermgr ; +STATICPLUGIN.shadermgr.CFLAGS.debug.9 = ; +STATICPLUGIN.shadermgr.CFLAGS.release.9 = ; +STATICPLUGIN.shadermgr.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.shadermgr.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += glshader_arb ; +STATICPLUGIN.glshader_arb.CFLAGS.debug.9 = ; +STATICPLUGIN.glshader_arb.CFLAGS.release.9 = ; +STATICPLUGIN.glshader_arb.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib opengl32.lib ; +STATICPLUGIN.glshader_arb.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib opengl32.lib ; +STATICPLUGINS.AVAILABLE += glshader_cg ; +STATICPLUGIN.glshader_cg.CFLAGS.debug.9 = ; +STATICPLUGIN.glshader_cg.CFLAGS.release.9 = ; +STATICPLUGIN.glshader_cg.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib cg.lib cgGL.lib ; +STATICPLUGIN.glshader_cg.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib cg.lib cgGL.lib ; +STATICPLUGINS.AVAILABLE += glshader_fixed ; +STATICPLUGIN.glshader_fixed.CFLAGS.debug.9 = ; +STATICPLUGIN.glshader_fixed.CFLAGS.release.9 = ; +STATICPLUGIN.glshader_fixed.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib opengl32.lib ; +STATICPLUGIN.glshader_fixed.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib opengl32.lib ; +STATICPLUGINS.AVAILABLE += glshader_ps1 ; +STATICPLUGIN.glshader_ps1.CFLAGS.debug.9 = ; +STATICPLUGIN.glshader_ps1.CFLAGS.release.9 = ; +STATICPLUGIN.glshader_ps1.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib opengl32.lib ; +STATICPLUGIN.glshader_ps1.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib opengl32.lib ; +STATICPLUGINS.AVAILABLE += softshader ; +STATICPLUGIN.softshader.CFLAGS.debug.9 = ; +STATICPLUGIN.softshader.CFLAGS.release.9 = ; +STATICPLUGIN.softshader.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.softshader.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += vproc_std ; +STATICPLUGIN.vproc_std.CFLAGS.debug.9 = ; +STATICPLUGIN.vproc_std.CFLAGS.release.9 = ; +STATICPLUGIN.vproc_std.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.vproc_std.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += shaderweaver ; +STATICPLUGIN.shaderweaver.CFLAGS.debug.9 = ; +STATICPLUGIN.shaderweaver.CFLAGS.release.9 = ; +STATICPLUGIN.shaderweaver.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.shaderweaver.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += xmlshader ; +STATICPLUGIN.xmlshader.CFLAGS.debug.9 = ; +STATICPLUGIN.xmlshader.CFLAGS.release.9 = ; +STATICPLUGIN.xmlshader.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.xmlshader.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += null3d ; +STATICPLUGIN.null3d.CFLAGS.debug.9 = ; +STATICPLUGIN.null3d.CFLAGS.release.9 = ; +STATICPLUGIN.null3d.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.null3d.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; +STATICPLUGINS.AVAILABLE += cscursor ; +STATICPLUGIN.cscursor.CFLAGS.debug.9 = ; +STATICPLUGIN.cscursor.CFLAGS.release.9 = ; +STATICPLUGIN.cscursor.LFLAGS.debug.9 = libcrystalspace_staticplugins_d.lib libcrystalspace_d.lib zlib.lib ; +STATICPLUGIN.cscursor.LFLAGS.release.9 = libcrystalspace_staticplugins.lib libcrystalspace.lib zlib.lib ; Added: trunk/mk/jam/debuginfo.jam =================================================================== --- trunk/mk/jam/debuginfo.jam (rev 0) +++ trunk/mk/jam/debuginfo.jam 2007-11-21 15:03:45 UTC (rev 292) @@ -0,0 +1,141 @@ +#============================================================================ +# Rules for dealing with debugging information +# Copyright (C)2006-2007 by Frank Richter +# +# This library is free software; you can redistribute it and/or modify it +# under the terms of the GNU Library General Public License as published by +# the Free Software Foundation; either version 2 of the License, or (at your +# option) any later version. +# +# This library is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public +# License for more details. +# +# You should have received a copy of the GNU Library General Public License +# along with this library; if not, write to the Free Software Foundation, +# Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# +#============================================================================ + +## SplitDebugInfo binary +## Strips the debugging information into a separate external file. +rule SplitDebugInfo +{ + local binary = $(1) ; + DoSplitDebugInfo $(binary) ; + return $(binary).dbg ; +} + +actions DoSplitDebugInfo +{ + $(CMD.OBJCOPY) --only-keep-debug $(<) $(<).dbg + $(CMD.OBJCOPY) --strip-unneeded $(<) + $(CMD.OBJCOPY) --add-gnu-debuglink=$(<).dbg $(<) + if [ "$(CHMOD)" ] ; then $(CHMOD) a-x $(<).dbg ; fi +} + +DEBUGINFOTOOLS.DUMP_SYMS.WIN32 ?= "$(TOP)/bin/dump_syms.exe" ; +DEBUGINFOTOOLS.DUMP_SYMS ?= $(DEBUGINFOTOOLS.DUMP_SYMS.$(TARGET.OS)) ; +DEBUGINFOTOOLS.SYMBOLSTORE ?= "$(TOP)/bin/symbolstore.py" ; +CABARC ?= cabarc ; + +if $(DEBUGINFOTOOLS.SYMBOLSTORE) && $(DEBUGINFOTOOLS.DUMP_SYMS) +{ + ## CollectAndDumpSymbols target : dirs [: outdir] + ## Collect and dump symbol files for binaries in directories "dirs" and + ## output into "outdir" (defaults to $(BUILDTOP)/out/symbols/). + rule CollectSymbols + { + local target = $(1) ; + local dirs = $(2) ; + local outdir = $(3) ; + outdir ?= "$(BUILDTOP)/out/symbols" ; + + for d in $(dirs) + { + local thistarget = $(target:G=$(d)) ; + Depends $(target) : $(thistarget) ; + NotFile $(thistarget) ; + OUTDIR on $(thistarget) = $(outdir) ; + SRCDIR on $(thistarget) = $(d) ; + RunSymbolStore $(thistarget) ; + Always $(thistarget) ; + } + } + + actions RunSymbolStore + { + $(DEBUGINFOTOOLS.SYMBOLSTORE) -c -s "$(TOP)" \ + "$(DEBUGINFOTOOLS.DUMP_SYMS)" "$(OUTDIR)" "$(SRCDIR)" + } + + ## CompressSymbols target : dir + ## Compress symbol files in 'dir'. + rule CompressSymbols + { + local target = $(1) ; + local dir = $(2) ; + SYMDIR on $(target) = $(dir) ; + if $(COMPRESSSYMBOLS_VERBOSE) + { + JAMARG on $(target) = "-dx" ; + } + CompressSymbols1 $(target) ; + } + + JAM ?= jam ; + actions CompressSymbols1 + { + $(JAM) "-sCOMPRESSSYMBOLS_DIR=$(SYMDIR)" $(JAMARG) _actual_compress_symbols + } + + if $(COMPRESSSYMBOLS_DIR) + { + rule ActualCompressSymbols + { + local target = _actual_compress_symbols ; + local dir = $(COMPRESSSYMBOLS_DIR) ; + { + local SUBDIR = $(dir) ; # Called rules see this new temporary value. + # @@@ Recurse can not recognize directories; however, symbols may be + # in a directory foo.pdb/<goop>/. Assumes this is always the case. + # Of course the "better" solution would be to distinguish dirs and + # files ... maybe move that symbol recursion logic to a shell script? + Recurse SymbolsRecurse2 : .pdb ; + } + } + + rule SymbolsRecurse2 + { + local target = _actual_compress_symbols ; + local dir = $(SUBDIR)/$(1) ; + { + local SUBDIR = $(dir) ; # Called rules see this new temporary value. + Recurse CompressPDB : .pdb ; + } + } + + rule CompressPDB + { + local f = $(1:G=$(SUBDIR)) ; + local compressedName = $(f:S=.pd_) ; + SUBDIR on $(compressedName) = $(SUBDIR) ; + NotFile $(1) ; + CabCompressAndRemove $(compressedName) : $(1) ; + Depends $(compressedName) : $(1) ; + Depends _actual_compress_symbols : $(compressedName) ; + Always $(compressedName) ; + } + + actions CabCompressAndRemove + { + cd $(SUBDIR) + cabarc N $(<) $(>) + if test $? -eq 0 ; then rm $(>) ; fi + cd - + } + + ActualCompressSymbols ; + } +} Modified: trunk/mk/jam/flags.jam =================================================================== --- trunk/mk/jam/flags.jam 2007-11-21 12:10:34 UTC (rev 291) +++ trunk/mk/jam/flags.jam 2007-11-21 15:03:45 UTC (rev 292) @@ -31,15 +31,15 @@ { # LibDepends for shared libs invokes LinkWith, so prevent recursion LibDepends $(<) : $(rawlibs) ; - } + } local i libs ; for i in $(rawlibs) { libs += [ ConstructLibraryLinkTarget $(i) : $($(i)_SHARED) ] ; } - - Depends $($(<)_TARGET) : $(libs) ; + + Depends $($(<)_TARGET) : $(rawlibs) ; NEEDLIBS on $($(<)_TARGET) += $(libs) ; $(<).NEEDLIBS += $(rawlibs) ; Modified: trunk/mk/jam/helper.jam =================================================================== --- trunk/mk/jam/helper.jam 2007-11-21 12:10:34 UTC (rev 291) +++ trunk/mk/jam/helper.jam 2007-11-21 15:03:45 UTC (rev 292) @@ -595,6 +595,8 @@ } ## SymLink target : source +## If symbolic links are supported, create a symbolic link from source +## to target, else copy source to target. rule SymLink { if "$(LN_S)" @@ -603,17 +605,14 @@ } else { - # "Poor man's ln" Copy $(<) : $(>) ; } } actions DoSymLink { - cd $(<:D) > /dev/null - rm -f $(<) - $(LN_S) $(>) $(<:D=) - cd - > /dev/null + $(RM) $(<) + $(LN_S) $(>) $(<) } actions piecemeal Touch Modified: trunk/mk/jam/library.jam =================================================================== --- trunk/mk/jam/library.jam 2007-11-21 12:10:34 UTC (rev 291) +++ trunk/mk/jam/library.jam 2007-11-21 15:03:45 UTC (rev 292) @@ -110,6 +110,7 @@ Always $(<)clean ; NotFile $(<)clean ; Clean $(<)clean : $(objects) $($(<)_CLEANEXTRA) ; + Clean clean : $(objects) $($(<)_CLEANEXTRA) ; if ! [ IsElem nohelp : $(options) ] { @@ -229,7 +230,8 @@ # LibraryShared libname : sources : options : decoratedtarget rule LibraryShared { - local objects = $(>) ; + local libname = $(1) ; + local objects = $(2) ; local options = $(3) ; local target = $(4) ; local linklib = [ ConstructSharedLibraryLinkLib $(<) : $(options) ] ; @@ -257,15 +259,15 @@ # Add to global library list if [ IsElem optional : $(options) ] { - INSTALLEDLIBS_OPTIONAL += $(<) ; + INSTALLEDLIBS_OPTIONAL += $(libname) ; } else { - INSTALLEDLIBS += $(<) ; + INSTALLEDLIBS += $(libname) ; } } - Depends $(<) : $(linklib) ; + Depends $(libname) : $(linklib) ; MakeLocate $(linklib) : $(LOCATE.OBJECTS)/libs ; SEARCH on $(linklib) = $(LOCATE.OBJECTS)/libs ; if $(linklib) != $(target) @@ -276,27 +278,27 @@ } else { - local target_link = $(target:D=$(BUILDTOP)) ; + local target_link = $(target:G=symlink) ; MakeLocate $(target_link) : $(BUILDTOP) ; SEARCH on $(target_link) = $(BUILDTOP) ; D... [truncated message content] |
From: <ke...@us...> - 2007-12-02 18:06:26
|
Revision: 341 http://planeshift.svn.sourceforge.net/planeshift/?rev=341&view=rev Author: kemedes Date: 2007-12-02 10:05:30 -0800 (Sun, 02 Dec 2007) Log Message: ----------- Modified Paths: -------------- trunk/docs/history.txt trunk/src/client/gui/shortcutwindow.cpp trunk/src/client/pscelclient.cpp trunk/src/client/pscelclient.h trunk/src/common/net/messages.cpp trunk/src/common/net/messages.h trunk/src/server/gem.cpp Modified: trunk/docs/history.txt =================================================================== --- trunk/docs/history.txt 2007-12-02 16:58:55 UTC (rev 340) +++ trunk/docs/history.txt 2007-12-02 18:05:30 UTC (rev 341) @@ -1,3 +1,8 @@ +*** 2007-12-02 by Sasha Levin +- Added $sir, $guild and $race to the shortcut commands (works + just like $target). +- NETVER BUMP! + *** 2007-12-01 by Roland Schulz - Also check for weapon requirements during combat, not just at start. Modified: trunk/src/client/gui/shortcutwindow.cpp =================================================================== --- trunk/src/client/gui/shortcutwindow.cpp 2007-12-02 16:58:55 UTC (rev 340) +++ trunk/src/client/gui/shortcutwindow.cpp 2007-12-02 18:05:30 UTC (rev 341) @@ -545,6 +545,45 @@ command.ReplaceAll("$target",name); // actually replace target } } + if(command.FindFirst("$guild") != command.Length() - 1) + { + GEMClientActor *object= dynamic_cast<GEMClientActor*>(psengine->GetCharManager()->GetTarget()); + if(object) + { + csString name = object->GetGuildName(); //grab guild name of target + command.ReplaceAll("$guild",name); // actually replace target + } + } + if(command.FindFirst("$race") != command.Length() - 1) + { + GEMClientActor *object= dynamic_cast<GEMClientActor*>(psengine->GetCharManager()->GetTarget()); + if(object) + { + csString name = object->race; //grab race name of target + command.ReplaceAll("$race",name); // actually replace target + } + } + if(command.FindFirst("$sir") != command.Length() - 1) + { + GEMClientActor *object= dynamic_cast<GEMClientActor*>(psengine->GetCharManager()->GetTarget()); + if(object) + { + csString name = "Dear"; + switch (object->gender) + { + case PSCHARACTER_GENDER_NONE: + name = "Gemma"; + break; + case PSCHARACTER_GENDER_FEMALE: + name = "Lady"; + break; + case PSCHARACTER_GENDER_MALE: + name = "Sir"; + break; + } + command.ReplaceAll("$sir",name); // actually replace target + } + } const char* errorMessage = cmdsource->Publish( command ); if ( errorMessage ) systemText->AddMessage( errorMessage ); Modified: trunk/src/client/pscelclient.cpp =================================================================== --- trunk/src/client/pscelclient.cpp 2007-12-02 16:58:55 UTC (rev 340) +++ trunk/src/client/pscelclient.cpp 2007-12-02 18:05:30 UTC (rev 341) @@ -1047,6 +1047,7 @@ linmove = NULL; colldet = NULL; groupID = mesg.groupID; + gender = mesg.gender; factname = mesg.factname; ownerEID = mesg.ownerEID; lastSentVelocity = lastSentRotation = 0.0f; Modified: trunk/src/client/pscelclient.h =================================================================== --- trunk/src/client/pscelclient.h 2007-12-02 16:58:55 UTC (rev 340) +++ trunk/src/client/pscelclient.h 2007-12-02 18:05:30 UTC (rev 341) @@ -375,6 +375,7 @@ bool stationary,path_sent; csTicks lastDRUpdateTime; bool ready; + unsigned short gender; // Access functions for the group var bool IsGroupedWith(GEMClientActor* actor); Modified: trunk/src/common/net/messages.cpp =================================================================== --- trunk/src/common/net/messages.cpp 2007-12-02 16:58:55 UTC (rev 340) +++ trunk/src/common/net/messages.cpp 2007-12-02 18:05:30 UTC (rev 341) @@ -4381,6 +4381,7 @@ const char* factname, const char* filename, const char* race, + unsigned short int gender, const char* helmGroup, csVector3 collTop, csVector3 collBottom, csVector3 collOffSet, const char* texParts, @@ -4417,6 +4418,7 @@ msg->Add( factname ); msg->Add( filename ); msg->Add( race ); + msg->Add ( gender ); msg->Add( helmGroup ); msg->Add( collTop ); msg->Add( collBottom ); @@ -4451,6 +4453,7 @@ factname = csString ( me->GetStr() ); filename = csString ( me->GetStr() ); race = csString ( me->GetStr() ); + gender = me->GetInt16(); helmGroup = csString ( me->GetStr() ); top = me->GetVector(); Modified: trunk/src/common/net/messages.h =================================================================== --- trunk/src/common/net/messages.h 2007-12-02 16:58:55 UTC (rev 340) +++ trunk/src/common/net/messages.h 2007-12-02 18:05:30 UTC (rev 341) @@ -42,7 +42,7 @@ // This holds the version number of the network code, remember to increase // this each time you do an update which breaks compatibility -#define PS_NETVERSION 0x007F +#define PS_NETVERSION 0x0080 // Remember to bump the version in pscssetup.h, as well. // NPC Networking version is separate so we don't have to break compatibility @@ -2846,6 +2846,7 @@ const char* factname, const char* filename, const char* raceName, + unsigned short int gender, const char* helmGroup, csVector3 collTop, csVector3 collBottom, csVector3 collOffset, const char* texParts, @@ -2879,6 +2880,7 @@ csString factname; csString filename; csString race; + unsigned short int gender; csString helmGroup; // Used for helm groupings. csVector3 top, bottom, offset; csString texParts; Modified: trunk/src/server/gem.cpp =================================================================== --- trunk/src/server/gem.cpp 2007-12-02 16:58:55 UTC (rev 340) +++ trunk/src/server/gem.cpp 2007-12-02 18:05:30 UTC (rev 341) @@ -2237,6 +2237,7 @@ factname, filename, psChar->GetRaceInfo()->name, + psChar->GetRaceInfo()->gender, helmGroup, top, bottom,offset, texparts, @@ -3775,6 +3776,7 @@ factname, filename, psChar->GetRaceInfo()->name, + psChar->GetRaceInfo()->gender, helmGroup, top, bottom,offset, texparts, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mr...@us...> - 2007-12-13 23:05:51
|
Revision: 433 http://planeshift.svn.sourceforge.net/planeshift/?rev=433&view=rev Author: mr_dave Date: 2007-12-13 15:05:51 -0800 (Thu, 13 Dec 2007) Log Message: ----------- - GM can assume control of an Event Modified Paths: -------------- trunk/data/help.xml trunk/docs/history.txt trunk/src/server/adminmanager.cpp trunk/src/server/gmeventmanager.cpp trunk/src/server/gmeventmanager.h Modified: trunk/data/help.xml =================================================================== --- trunk/data/help.xml 2007-12-13 09:00:12 UTC (rev 432) +++ trunk/data/help.xml 2007-12-13 23:05:51 UTC (rev 433) @@ -393,7 +393,10 @@ To reward the participants (all of them, those within a specified range or an individual - by name or by target) of a current event: /event reward [range 0-100 | all | player] # [item name] [item name] can be "exp" (experience) where # Progression Points are awarded. -[item name] can be "faction [faction name]" to adjust the faction standing.</topic> +[item name] can be "faction [faction name]" to adjust the faction standing. + +If a GM wants to assume control of an ongoing event, because the original GM character has been deleted, or has abandoned it and is offline, the GM can enter: +/event control [name]</topic> <topic name="/freeze">/freeze player Prevents a player from moving or using any commands until they quit/relog.</topic> Modified: trunk/docs/history.txt =================================================================== --- trunk/docs/history.txt 2007-12-13 09:00:12 UTC (rev 432) +++ trunk/docs/history.txt 2007-12-13 23:05:51 UTC (rev 433) @@ -1,3 +1,8 @@ +*** 2007-12-13 by Dave Bentham +- GM's can take over control of an Event if the originator GM has abandoned + it (e.g. had to logoff prior to completion, character deleted). + /event control <event name> + *** 2007-12-13 by Kenny Graunke - Made the sell window display quality as well as the item name (for example, Inferior Dagger) for crafted items. Vizanti and starg hope this will Modified: trunk/src/server/adminmanager.cpp =================================================================== --- trunk/src/server/adminmanager.cpp 2007-12-13 09:00:12 UTC (rev 432) +++ trunk/src/server/adminmanager.cpp 2007-12-13 23:05:51 UTC (rev 433) @@ -745,6 +745,10 @@ { // No params } + else if (subCmd == "control") + { + gmeventName = words[2]; + } else { subCmd = "help"; // unknown command so force help on event @@ -5974,7 +5978,8 @@ (data.gmeventName.Length() == 0 || data.gmeventDesc.Length() == 0)) || (data.subCmd == "register" && data.player.Length() == 0 && data.range == NO_RANGE) || (data.subCmd == "remove" && data.player.Length() == 0) || - (data.subCmd == "reward" && data.item.Length() == 0 && data.stackCount == 0)) + (data.subCmd == "reward" && data.item.Length() == 0 && data.stackCount == 0) || + (data.subCmd == "control" && data.gmeventName.Length() == 0)) { data.subCmd = "help"; } @@ -5988,7 +5993,8 @@ "/event reward [all | range <range> | <player>] # <item>\n" "/event remove <player>\n" "/event complete [name]\n" - "/event list\n"); + "/event list\n" + "/event control <name>\n"); return; } @@ -6054,6 +6060,12 @@ gmeventResult = gmeventManager->ListGMEvents(client); return; } + + if (data.subCmd == "control") + { + gmeventResult = gmeventManager->AssumeControlOfGMEvent(client, data.gmeventName); + return; + } } void AdminManager::HandleBadText(psAdminCmdMessage& msg, AdminCmdData& data, Client *client, gemObject *targetobject) Modified: trunk/src/server/gmeventmanager.cpp =================================================================== --- trunk/src/server/gmeventmanager.cpp 2007-12-13 09:00:12 UTC (rev 432) +++ trunk/src/server/gmeventmanager.cpp 2007-12-13 23:05:51 UTC (rev 433) @@ -361,12 +361,7 @@ } // all tests pass, drop the player - db->Command("DELETE FROM character_events WHERE player_id = %d AND event_id = %d", - playerID, gmEvent->id); - gmEvent->playerID.Delete(playerID); - - // keep psCharacter up to date - target->GetActor()->GetCharacterData()->RemoveGMEvent(gmEvent->id); + RemovePlayerRefFromGMEvent(gmEvent, target, playerID); psserver->SendSystemInfo(clientnum, "%s has been removed from the \'%s\' event.", target->GetName(), @@ -681,6 +676,74 @@ return true; } +/// GM assumes control of ongoing event. +bool GMEventManager::AssumeControlOfGMEvent(Client* client, csString eventName) +{ + int zero=0; + unsigned int newGMID = client->GetPlayerID(); + int clientnum = client->GetClientNum(); + GMEvent* gmEvent; + + // if this GM already has an active event, he/she cant control another + if ((gmEvent = GetGMEventByGM(newGMID, RUNNING, zero))) + { + psserver->SendSystemInfo(clientnum, + "You are already running the \'%s\' event.", + gmEvent->eventName.GetDataSafe()); + return false; + } + + // find the requested event + zero = 0; + if (!(gmEvent = GetGMEventByName(eventName, RUNNING, zero))) + { + psserver->SendSystemInfo(clientnum, + "The \'%s\' event is not recognised or not running.", + eventName.GetDataSafe()); + return false; + } + + // look for the current GM if there is one + ClientConnectionSet* clientConnections = psserver->GetConnections(); + Client* target; + if (gmEvent->gmID != UNDEFINED_GMID) + { + if ((target = clientConnections->FindPlayer(gmEvent->gmID))) + { + psserver->SendSystemInfo(clientnum, + "The \'%s\' event's GM, %s, is online: you cannot assume control.", + gmEvent->eventName.GetDataSafe(), + target->GetName()); + return false; + } + } + + // if the GM is a participant, then remove the reference + RemovePlayerRefFromGMEvent(gmEvent, client, newGMID); + + // OK, assume control + gmEvent->gmID = newGMID; + db->Command("UPDATE gm_events SET gm_id = %d WHERE id = %d", newGMID, gmEvent->id); + client->GetActor()->GetCharacterData()->AssignGMEvent(gmEvent->id,true); + psserver->SendSystemInfo(clientnum, + "You now control the \'%s\' event.", + gmEvent->eventName.GetDataSafe()); + + csArray<unsigned int>::Iterator iter = gmEvent->playerID.GetIterator(); + while (iter.HasNext()) + { + if ((target = clientConnections->FindPlayer(iter.Next()))) + { + psserver->SendSystemInfo(target->GetClientNum(), + "The GM %s is now controlling the \'%s\' event.", + client->GetName(), + gmEvent->eventName.GetDataSafe()); + } + } + + return true; +} + /// returns details of an event GMEventStatus GMEventManager::GetGMEventDetailsByID (int id, csString& name, @@ -826,14 +889,7 @@ if ((runningEventID == eventID || completedEventIDs.Find(eventID) != csArrayItemNotFound) && (gmEvent = GetGMEventByID(eventID))) { - if (gmEvent->playerID.Delete(playerID)) - { - // ...from the database - db->Command("DELETE FROM character_events WHERE event_id = %d AND player_id = %d", eventID, playerID); - - // ...from psCharacter - client->GetActor()->GetCharacterData()->RemoveGMEvent(eventID); - } + RemovePlayerRefFromGMEvent(gmEvent, client, playerID); } else { @@ -842,3 +898,18 @@ } } +/// Actually remove player reference from GMEvent. +bool GMEventManager::RemovePlayerRefFromGMEvent(GMEvent* gmEvent, Client* client, unsigned int playerID) +{ + if (gmEvent->playerID.Delete(playerID)) + { + // ...from the database + db->Command("DELETE FROM character_events WHERE event_id = %d AND player_id = %d", gmEvent->id, playerID); + // ...from psCharacter + client->GetActor()->GetCharacterData()->RemoveGMEvent(gmEvent->id); + + return true; + } + + return false; +} Modified: trunk/src/server/gmeventmanager.h =================================================================== --- trunk/src/server/gmeventmanager.h 2007-12-13 09:00:12 UTC (rev 432) +++ trunk/src/server/gmeventmanager.h 2007-12-13 23:05:51 UTC (rev 433) @@ -167,6 +167,14 @@ */ bool RemovePlayerFromGMEvents(unsigned int playerID); + /** GM attempts to assume control of an event, after originator has absconded. + * + * @param client: client pointer. + * @param eventName: event name. + * @return bool: true = success, false = failed. + */ + bool AssumeControlOfGMEvent(Client* client, csString eventName); + private: int nextEventID; @@ -240,6 +248,14 @@ * @param eventID: id of the event */ void DiscardGMEvent(Client* client, int eventID); + + /** Remove player references to event. + * @param gmEvent: the GMEvent*. + * @param client: the Client* to be removed. + * @param playerID: the player id to be removed. + * @return bool: true/false success. + */ + bool RemovePlayerRefFromGMEvent(GMEvent* gmEvent, Client* client, unsigned int playerID); }; #endif This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |