The patch adds armies carried by a player killed by a planet to the short packets kill message. It is put into the argument2 field in the KILLARGS2 short warning message, which was unused before. The army count for player kills is transmitted differently, with four bits in the DMKILL packet and one bit in KILLARGS. Packing armies inside the DMKILLP packet wouldn't work with existing clients and the KILLARGS packet isn't sent for planet kills. The second argument of KILLARGS2 isn't used and that packet is already transmitted for planet kills, so it makes the most sense to just use it. -------------- next part -------------- New patches: [planet doosh Trent Piepho <xyzzy at speakeasy.org>**20060525122228 Send information to clients to report the number of armies carried by a player killed by a planet. The army count is transmitted in argument2 of the KILLARGS2 swarning packet, currently unused. ] < > { hunk ./Vanilla/ntserv/daemonII.c 2753 arg[1] = j->p_no; arg[2] = l->pl_no; arg[3] = 0; - arg[4] = 0; + arg[4] = j->p_armies; #ifdef CHAIN_REACTION strcat(buf," [planet]"); arg[5] = KPLANET; hunk ./Vanilla/ntserv/genspkt.c 896 case DMKILLP: #ifdef CHAIN_REACTION if (why_dead) { - swarning(KILLARGS2,(u_char)cur->args[5],0); + swarning(KILLARGS2,(u_char)cur->args[5],(u_char)cur->args[4]); } #endif swarning(DMKILLP, (u_char)cur->args[1], (u_char)cur->args[2]); } Context: [robotd omnibus 2 changelog quozl at us.netrek.org**20060525003615 Addition of ChangeLog and NEWS entries to cover Trent Piepho's rework of Jimmy Huang's changes to robotd. ] [fix ranlib for solaris changelog Stas Pirogov <keyos at keyos.org>**20060524235806] [fix ranlib for solaris Stas Pirogov <keyos at keyos.org>**20060524235510 * configure.in: test for ranlib was failing on Solaris. This is probably caused by different /bin/sh interpreters. This fix should satisfy all of them. ] [torp dir for robot Trent Piepho <xyzzy at speakeasy.org>**20060524082754 Hadley's bot expects to get torp direction from the server, but the server only sends it for your own torps. Changed to send it for other players' torps too. Without it, the bot thinks all torps are going straight up, making it a very bad dodger (unless you attack from below). This should be fixed to only turn this on for the robot, so as not to help borgs. This will have to wait on a better way to detect robots. ] [fix calls to req_cloak_off() Trent Piepho <xyzzy at speakeasy.org>**20060524082708 Some calls to req_cloak_off() were missing the function's argument, the reason string. ] [fix res danger Trent Piepho <xyzzy at speakeasy.org>**20060524082437 The check for res danger would make the robot cloak when near _any_ home planet, so it would cloak even when bombing it's own core. Unfortunately, it is not possible to tell from the planet flags whose home world a planet is. Changed the code to only check the normal home planet indexes, skipping the bots's own HW, for proximity. This makes the code much smaller and faster. Realistically, the HWs are always at the standard indexes, even with non-standard planet layouts. Included a bit of code, #if'ed out, that will find home worlds by name, the way the bot does when it wants to refit. ] [fix use of un-initialized variable Trent Piepho <xyzzy at speakeasy.org>**20060524082353 Fix a warning about a un-initialized use of pldist in update_players(). It didn't matter, but fix the warning anyway. ] [fix crash in RCD generation Trent Piepho <xyzzy at speakeasy.org>**20060524082241 The code to generate the RCD message didn't handle the case when there were no visible friendly and/or enemy ships. In this case, _state.closest_{e,f} would be NULL. Do what clients do in this case, and use me->p_no when no suitable other player is known. ] [fix closest_planet Trent Piepho <xyzzy at speakeasy.org>**20060524082149 closest_planet() would usually return NULL every other time it was called. For speed, it would check the previous closest planet first, then look for a _closer_ planet. If it didn't find one, it returned NULL, rather than the previous (and current) closest planet (which it now returns). ] [fix neutral planet check Trent Piepho <xyzzy at speakeasy.org>**20060524082029 Fix several bugs with check_take(). It didn't handle the case when no enemy planets were left. It looked at the last enemy planet in the list, rather than the target enemy planet when deciding if it should take neut planets. It would skip looking for neuts when it found an enemy agri and _didn't_ have enough armies to take it. ] [adapt when assaulting Trent Piepho <xyzzy at speakeasy.org>**20060524081723 The assault planet code didn't re-check the target planet after the assault started. If the planet was taken by another player on a friendly team, or modified by god, the robot would still try to bomb/take it, even when that action was no longer possible. The robot will now check for planets is can not drop on, and abort the assault if so. It will not try to bomb planets it can not bomb. It will also stop reinforcing planets when they get to 4 armies. ] [fix mfprintf() Trent Piepho <xyzzy at speakeasy.org>**20060524081613 When mfprintf() was changed from varargs to stdarg, it wasn't done correctly. Fix this. ] [robotd-fixes1.dpatch jimmyhua73 at yahoo.com*-20060521152116 changelog entry here. * robotd/assault.c added extra check not to bomb your own armies. Bots will try to bomb own armies when 2 carriers drop on same planet. And planet ends up with >4 armies. * robotd/decide.c changed some tabbing * robotd/decide.c corrected logic in check_take function. Robotd now takes neutral planets. Before it had a tendency to ignore neutral planets. Also used to crash out when no more enemy planets. Both are fixed with this. * robotd/main.c, shmem.c, socket.c, update_players.c removed mfprintf function. replaced with fprintf function until such time that mfprintf function is fixed so it doesn't crash. Bandaid. * robotd/update_players.c changed some tabbing, added some missing braces. * robotd/update_players.c changed closest_planet() function to return the current closest planet instead of NULL when it cannot find a closer planet. * robotd/util.c added comments to reflect that mfprintf causes crashes for as yet unknown reasons. ] [robotd mfprintf regression fix quozl at us.netrek.org*-20060524004752 * robotd/util.c (mfprintf): fix a regression caused by conversion to stdargs done on Fri Oct 31 09:15:42 2003. ] [robotd-indent-fix.dpatch jimmyhua73 at yahoo.com*-20060523010939 fixed indentation to follow existing code. The following files were changed: decide.c, main.c, shmem.c, socket.c, update_players.c, util.c ] [PROJECTS update williamb at its.caltech.edu**20060524093948 Removed twarp observer bug from PROJECTS list, as this has been fixed. ] [Player position sign fix williamb at its.caltech.edu**20060524080901 * genspkt.c: With short packets on, positions in the negative (i.e. on player death) were being reported incorrectly. ] [conflict resolution 2006-08-24-a quozl at us.netrek.org**20060524042919] [remove glib-config from Makefile.in Trent Piepho <xyzzy at speakeasy.org>**20060522213300 The Makefile includes calls to glib-config, which aren't necessary to build the server, and fail if glib-config doesn't exist. If someone wants to enable the (disabled) database timing functionality that uses glib, they can just add the options when they run configure. ] [fix SP_2 flag sending for real changelog quozl at us.netrek.org**20060524024253] [fix SP_2 flag sending for real Trent Piepho <xyzzy at speakeasy.org>**20060524002833 The sndFlags function will not send flags of observers (except for PFOBSERV of course). The SP_2 flag sampling code will sample the flags of robots now. It wll not sample observers' flags, except for an observer's own flags. The SP_2 sampling code will update the last sent flags data, so shield/cloak are not sent again via sndFlags(). When sndFlags() does send flags, it will sent the correct shield/cloak and not zero. ] [remove generated autotools files quozl at us.netrek.org**20060524015023 aclocal.m4 and configure are generated files, they are generated using autogen.sh from configure.in, and as such they do not deserve to be in the repository and are costing us time and energy as they change. ] [misc bugs update quozl at us.netrek.org**20060524014925] [deprecate README.darcs execution in favour of autogen.sh changelog quozl at us.netrek.org**20060524011944] [deprecate README.darcs execution in favour of autogen.sh quozl at us.netrek.org**20060524011759 * autogen.sh: add GNU standard autotools configuration sequence, deprecating execution of README.darcs. Manual build process then becomes "sh autogen.sh" followed by the usual configure, make, and make install. ] [newbie-fixes.dpatch changelog conflict resolution quozl at us.netrek.org**20060524005953] [newbie-fixes.dpatch jimmyhua73 at yahoo.com**20060523153223 Bug fixes: 1. Merlin gets moved on genocide. Now Merlin moves himself back. 2. You can get Merlin into a race condition by timing your join and joining something other than what Merlin chooses for the warring teams. This is fixed (I think). I was never able to time this right!!! James please check again! Known Bug: 1. t-mode criteria is hardcoded into Merlin as 4 players a side. ChangeLog here: * robots/newbie.c changed some tabbing for better indent and bracing consistency. * robots/newbie.c added #defines POSITIONX and POSITIONY so there's only one place the change the desired x and y position of Merlin * robots/newbie.c added checkpos() function which checks for changes in Merlin's position. Replaces him back into POSITIONX and POSITIONY once it finds that Merlin has stopped moving for 15 seconds. * robots/newbie.c corrected misspellings of various comments * robots/newbie.c modified num_players() function to return the correct *next_team based on t-mode settings also ] [robotd_udcounter.dpatch jimmyhua73 at yahoo.com**20060523143934 I re-did the setflag() function, so it now will always report back a positive incrementing int at 100ms intervals. And it starts with 0 on program start. There are some other places that initialize _udcounter, I think this might need to be got rid of, but I didn't do that in this patch. Read the longwinded diatribe in the Changelog. ] [newbie-install-docs-update.dpatch jimmyhua73 at yahoo.com**20060523155757 Updated the installation document for newbie ] [robotd mfprintf regression fix changelog quozl at us.netrek.org**20060524004957] [robotd mfprintf regression fix quozl at us.netrek.org**20060524004752 * robotd/util.c (mfprintf): fix a regression caused by conversion to stdargs done on Fri Oct 31 09:15:42 2003. ] [revised coding style and darcs discipline quozl at us.netrek.org**20060523050927 Rewrite of the coding style and patch acceptance criteria based on feedback on the mailing list from Stephen Thorne and Trent Piepho. ] [Declare_war fix williamb at its.caltech.edu**20060522012930 * proto.h, warnings.h, enter.c, interface.c, socket.c, rmove.c: added boolean to declare_war function to indicate whether to add delay and send delay message. Fixes the case of unwanted war delay message when switching teams, and also prevents robots from entering a state of permanent declare war delay. ] [fix lack of shields shown on practice robots and iggies changelog quozl at us.netrek.org**20060523040534] [fix lack of shields shown on practice robots and iggies quozl at us.netrek.org**20060523040421 * ntserv/genspkt.c (sndFlags): for practice robots, terminators, and hunter-killer, in conjunction with short packets version two, shields were not being sent. Changed to send shields in SP_FLAGS. See also "S_P2 new flag sampling" in updateShips(). Reported by William Balcerski. ] [robotd-indent-fix.dpatch jimmyhua73 at yahoo.com**20060523010939 fixed indentation to follow existing code. The following files were changed: decide.c, main.c, shmem.c, socket.c, update_players.c, util.c ] [resrsa-gmp-autoconf.darcs Trent Piepho <xyzzy at speakeasy.org>**20060522210616 The test for gmp in the res-rsa autoconf file failed for gmp version 3. In gmp3, functions are #define'd to different names in gmp.h, for example mpz_init() becomes __gmpz_init(). Since the autoconf test doesn't include gmp.h, it didn't find the new names. The fix, copied from http://www.kaffe.org/pipermail/kaffe/2000-November/090303.html, is to just do a new test with the gmp3 names if the first test fails. ] [remove glib-config from Makefile.in Trent Piepho <xyzzy at speakeasy.org>**20060522212353 The Makefile includes calls to glib-config, which aren't necessary to build the server, and fail if glib-config doesn't exist. If someone wants to enable the (disabled) database timing functionality that uses glib, they can just add the options when they run configure. ] [revise build test after libtoolize adoption quozl at us.netrek.org**20060522061037 Stephen Thorne's addition of libtool to the configuration requires a change to the build test sequence, to run libtoolize and aclocal. Also it is no longer necessary to make configure executable, as autoconf does that for us. ] [setteam usage fix quozl at us.netrek.org**20060522022327 * tools/setteam.c: fix error in usage propogated from setplanet, and remove unnecessary include. ] [Observ mask fix williamb at its.caltech.edu**20060522014159 * socket.c, redraw.c: removal of lockup for observers under declare war/transwarp/refit situations. Reverses previous patch by restoring PFWAR and PFREFITTING mask to observers. ] [resolve conflicts with changelog Stephen Thorne <stephen at thorne.id.au>**20060522011533] [transcription of ChangeLog data for Jimmy's patch Stephen Thorne <stephen at thorne.id.au>**20060522005345] [robotd-fixes1.dpatch jimmyhua73 at yahoo.com**20060521152116 changelog entry here. * robotd/assault.c added extra check not to bomb your own armies. Bots will try to bomb own armies when 2 carriers drop on same planet. And planet ends up with >4 armies. * robotd/decide.c changed some tabbing * robotd/decide.c corrected logic in check_take function. Robotd now takes neutral planets. Before it had a tendency to ignore neutral planets. Also used to crash out when no more enemy planets. Both are fixed with this. * robotd/main.c, shmem.c, socket.c, update_players.c removed mfprintf function. replaced with fprintf function until such time that mfprintf function is fixed so it doesn't crash. Bandaid. * robotd/update_players.c changed some tabbing, added some missing braces. * robotd/update_players.c changed closest_planet() function to return the current closest planet instead of NULL when it cannot find a closer planet. * robotd/util.c added comments to reflect that mfprintf causes crashes for as yet unknown reasons. ] [fix two second delay on client connection if daemon not running changelog quozl at us.netrek.org**20060521123415] [add game pause/resume/terminate tool, setgame changelog quozl at us.netrek.org**20060521115308] [add max duplicate ip count for pickup play changelog quozl at us.netrek.org**20060519080824] [add install-ntserv target for live updates changelog quozl at us.netrek.org**20060519061157] [mute banned observers changelog quozl at us.netrek.org**20060519042833] [fix changelog conflict from att patch Stephen Thorne <stephen at thorne.id.au>**20060519024319] [Transwarp war errormsg williamb at its.caltech.edu**20060519021844] [ATT fixes williamb at its.caltech.edu**20060518081658] [resolve ChangeLog conflict again Stephen Thorne <stephen at thorne.id.au>**20060518095505] [resolve ChangeLog conflict - this is getting annoying Stephen Thorne <stephen at thorne.id.au>**20060518095316] [adding aclocal.m4 Stephen Thorne <stephen at thorne.id.au>**20060518020621] [fix two second delay on client connection if daemon not running quozl at us.netrek.org**20060521123246 Remove the two second delay experienced by clients that connect to a server on which the daemon is not running. Also fix a cause of initial connection failing, which happens if the daemon does not start up within the hoped-for interval. Solution is implemented using the SIGUSR1 signal, but only during the initialisation window between when ntserv forks the daemon and the daemon completes initialisation. The signal is not used at other times. * ntserv/daemonII.c (main): send a SIGUSR1 to parent process (ntserv) once initialisation of shared memory is completed and regular SIGALRMs are about to commence. * ntserv/openmem.c (openmem): remove two second delay that was used to hope for daemon to initialise. * ntserv/openmem.c (startdaemon): add a wait for SIGUSR1. ] [add game pause/resume/terminate tool, setgame quozl at us.netrek.org**20060521115034 * tools/setgame.c: add script utility for pausing, resuming, and terminating the game. * tools/Makefile.in: add setgame target. * ntserv/input.c (input): send bad version packet to terminate client as soon as a GU_GAMEOK termination is requested. * ntserv/daemonII.c (udplayers): terminate daemon as soon as possible if a GU_GAMEOK termination is requested. Change nplayers to nfree, to better explain what the variable is. * include/struct.h (game_ok): remove unused macro. ] [add max duplicate ip count for pickup play quozl at us.netrek.org**20060519075351 Adds a new etc/sysdef option DUPLICATES which is the maximum number of pickup player slots allowed from the same IP address before the next connection is given the Q32 response. This is a denial of service filtering feature. The default is 3. Set this above 16 to make it ineffective. Set this to less than half of the number of players per side, otherwise abusers may not be ejected or banned by majority vote because a majority would be impossible. Does not affect robots, unless they join via the pickup queue ... which would be a misconfiguration. Robots normally join via a special queue. ] [add install-ntserv target for live updates quozl at us.netrek.org**20060519060623 Addition of a target install-ntserv to the ntserv Makefile so that a server operator can do a live update of ntserv during a running game. The target moves the existing in-use ntserv binary into an archive tree before installing the new ntserv binary. This makes it possible to manually back out of an installation if the new binary breaks badly. Other methods to test a new ntserv binary include running it manually for connection back to the client. See ntserv command line options. ] [mute banned observers quozl at us.netrek.org**20060519042723 Banned observers are allowed in and can speak, which was a surprise, but the code has always allowed this since observers were added. Change to prevent banned observers from talking. Simplify ban logic further. ] [patch acceptance policy regarding patch name and comment quozl at us.netrek.org**20060519015208 Define a new policy of not changing ChangeLog and NEWS until release. ] [add setteam utility source quozl at us.netrek.org**20060518061257 The actual source now, so that builds complete. ] [add setteam utility quozl at us.netrek.org**20060518055920 Add a utility for viewing and changing the starbase reconstruction timer and surrender timer, both of which are in struct teams. Although these timers can be manipulated by other means, setteam makes it easier to script. Some common code now exists in setplanet.c and setteam.c that deserves factorisation. ] [resolve conflict Stephen Thorne <stephen at thorne.id.au>**20060518034143] [improve the autoconf system to use AC_PROG_LIBTOOL and @RANLIB@ correctly. Stephen Thorne <stephen at thorne.id.au>**20060518014309 * tests/build: Set the configure and mktrekon files executable, just in case. * configure.in: Add AC_PROG_LIBTOOL macro. * ntserv/Makefile.in: Use the @RANLIB@ and @RANLIB_FLAGS@ macros. ] [fix the OSX build by passing the -c flag to ranlib. Stephen Thorne <stephen at thorne.id.au>**20060517111623] [Fix style of some code patched by Jimmy, as per Trent's code review Stephen Thorne <stephen at thorne.id.au>**20060517030403] [move wdt reset from SIGALRM handler to input handler quozl at us.netrek.org**20060518024416 Slots may jam in POUTFIT after KWINNER if the user terminates the client ungracefully ... such that the TCP connection is gone but the ntserv lives on. During this time, daemon synchronisation still sends SIGALRM to the ntserv, and ntserv's SIGALRM handler still resets the p_ghostbust timer. Prototype solution is to move p_ghostbust watchdog timer reset from within the SIGALRM handler to the section of main loop that is executed when input arrives from the client. Monitoring the p_ghostbust timer with gdb shows it is now reset for a dormant client on receipt of ping responses. ] [updateplayers.dpatch jimmyhua73 at yahoo.com**20060516075315 Treats humans and bots differently. Humans with a high planet rating > 4 are assumed to carry once they have a kill. Humans alive longer than 5 minutes with 1 kill are also assumed to carry. If you have 2 kills, the time they assume you carry drops to 2.5 minutes... Uses the OggV packet and "robot!" login to ID the robots. Needed to change server source code and newbie.c source to help support this. All those changes are already there if you have the newbiebetter.dpatch. Jimmy ] [newbie better 2 changelog fix quozl at us.netrek.org**20060516070248 Applying the principles of the Software Release Practice HOWTO http://www.tldp.org/HOWTO/Software-Release-Practice-HOWTO/ ] [newbiebetter.dpatch jimmyhua73 at yahoo.com**20060516071923 newbie now will generate t-mode games randomly any team against any other. Also, won't start diagonal games. newbie starts up bots with -g option so server knows about the bots. genspkt.c also modified so server tells clients which clients are newbie bots. Merlin still nukes bots based on "robot!" login. So, if you want to pretend to be a bot, you may get nuked. Robots will ID each other based both on "robot!" login and also OggV packet. If you are the only player on a server and have a "robot!" login... The newbie game ends... ] [changelog for Compilation fix for gcc4.0 quozl at us.netrek.org**20060516040416] [Compilation fix for gcc4.0 williamb at its.caltech.edu**20060516015945 Fix for jimmy's code with gcc4.0, compiler doesn't like variables declared in this way, so moved the int declare to top of the function. This patch contains the following changes: M ./Vanilla/robotd/assault.c -1 +1 ] [enable CONTINUOUS_MOUSE by default quozl at us.netrek.org**20060515223159 Upgrade of Continuum to 2.11.0 revealed a regression caused by not adopting the features file from the previous server. ] [post-release notes for 2.11.0 quozl at us.netrek.org**20060515100328 Changed the notes regarding the release process, to assist self or others for next release. ] [TAG 2.11.0 quozl at us.netrek.org**20060515091704] Patch bundle hash: 29b5f3b3e36579a104668d9ac064a24716774eb9