Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!sun-barr!lll-winken!uunet!zephyr.ens.tek.com!tekred!saab!billr From: billr@saab.CNA.TEK.COM (Bill Randle) Newsgroups: comp.sources.games Subject: v11i047: gb3 - Galactic Bloodshed, an empire-like war game [Ver. 2.0], Patch2i Message-ID: <6234@tekred.CNA.TEK.COM> Date: 28 Aug 90 19:36:48 GMT Sender: news@tekred.CNA.TEK.COM Lines: 1626 Approved: billr@saab.CNA.TEK.COM Submitted-by: VANCLEEF@mps.ohio-state.edu Posting-number: Volume 11, Issue 47 Archive-name: gb3/Patch2i Patch-To: gb3: Volume 10, Issue 1-14 #! /bin/sh # This is a shell archive. Remove anything before this line, then unpack # it by saving it into a file and typing "sh file". To overwrite existing # files, type "sh file -c". You can also feed this as standard input via # unshar, or by typing "sh 'Docs/beginner.doc' <<'END_OF_FILE' X If you are a beginner to Galactic Bloodshed (GB), no problem. The game Xmay seem a bit overwhelming at first, but so is everything at first :) XJust relax, get a cup of coffee, and enjoy. A typical GB game may last months Xand everything you do at first, even if you are out of touch for awhile, Xisn't totally critical! You can take off for the weekend, and have real life Xat the same time and come back to the game and have your race intact. X X At any rate, what *is* GB anyway? Well, it's a wargame. But it is also a Xcampaign style war game. It is also a game of diplomacy, making and breaking Xalliances, back stabbing, and megalomania! All accessible via the net! X X Basically, you start of with a race of people, and every race has it's own Xunique set of characteristics. What you want to do with this race is explore Xand maybe conquer the galaxy and be great big and famous and powerful...! XBUT, you can't do it alone, this is an important point ;) X X X Speaking of points, what is the *point* of GB in the first place? XWell, you want to *have fun*! Yes, that's the whole point of any game isn't Xit? If you don't want to have fun, stop reading here and may your first born Xhave the nose of camel and drink like one too :) In order to have fun you Xmust realise at first - not all races are the same! In fact, every race is Xdifferent. Every race has advantages and disadvatages. During the first set Xof updates, thing may seem uneven - but it's how you play the game in the Xlong run which matters! Trust me on this. X X Each turn in GB is called an 'update'. Updates are run at a schedule Xset by your game administrator (player #1 always!). During each update, Xyour population explores new sectors, the planets revolve about their Xprimaries (using Keppler's laws), ships are moved, production of resources, Xfuel, etc are made. In between updates you can order your ships, move Xyour people about on planets, attack enemy ships and planets, design your Xships etc... X X What you want to do at first, is gather 50 resources, and then build a Xfactory. A factory is essential to the game. These things build ships! XYou build a factory, then tell it what kind of ship design you want to Xmake. The available ship designs are based on your technology which grows Xeach update. It takes a factory time to be ready to build it's ship design. XOnce the factory is ready, you can build ships there! X X Next thing you want to do is explore the galaxy. Other planets in your Xhome star system should always be examined first. You might want to start Xcolonies on these. If you find a planet which you think your race can live Xon, land there and colonize! X X As the game goes on, you will definitely run into other races. Talk to them! XThey may be good allies in the end - or maybe horrid enemies. That's up to Xyou. There's a big universe out there! And remember to *have fun*! X X:) X XGarrett van Cleef X6-14-90 X X X X END_OF_FILE if test 2900 -ne `wc -c <'Docs/beginner.doc'`; then echo shar: \"'Docs/beginner.doc'\" unpacked with wrong size! fi # end of 'Docs/beginner.doc' if test -f 'Docs/detonate.doc' -a "${1}" != "-c" ; then echo shar: Renaming existing file \"'Docs/detonate.doc'\" to \"'Docs/detonate.doc.orig'\" mv -f 'Docs/detonate.doc' 'Docs/detonate.doc.orig' fi echo shar: Extracting \"'Docs/detonate.doc'\" \(381 characters\) sed "s/^X//" >'Docs/detonate.doc' <<'END_OF_FILE' XDETONATE Galactic Bloodshed DETONATE X X XNAME X detonate -- force a mine to explode X XSYNTAX X detonate X XDESCRIPTION X X Normally, a mine is set to detonate at a prearranged trigger radius Xusing the 'order' command. However, players may find it useful to order Xtheir space mines to explode upon request, between updates. This Xcommand is used to do this. X XSEE ALSO X order X END_OF_FILE if test 381 -ne `wc -c <'Docs/detonate.doc'`; then echo shar: \"'Docs/detonate.doc'\" unpacked with wrong size! fi # end of 'Docs/detonate.doc' if test -f 'Docs/dissolve.doc' -a "${1}" != "-c" ; then echo shar: Renaming existing file \"'Docs/dissolve.doc'\" to \"'Docs/dissolve.doc.orig'\" mv -f 'Docs/dissolve.doc' 'Docs/dissolve.doc.orig' fi echo shar: Extracting \"'Docs/dissolve.doc'\" \(487 characters\) sed "s/^X//" >'Docs/dissolve.doc' <<'END_OF_FILE' XDISSOLVE Galactic Bloodshed DISSOLVE X X XNAME X dissolve -- resign your forces from play in the game. X XSYNTAX X dissolve X XDESCRIPTION X X A player can resign from the game by issuing a dissolve command. All ships, Xsectors, resources, destruct, etc. are permanently eliminated from the game. XDissolved players also do not appear on power reports. X X You must specify your password to dissolve. Make sure you want to do this Xbefore using it, as all is immediately lost! X X X END_OF_FILE if test 487 -ne `wc -c <'Docs/dissolve.doc'`; then echo shar: \"'Docs/dissolve.doc'\" unpacked with wrong size! fi # end of 'Docs/dissolve.doc' if test -f 'Docs/dump.doc' -a "${1}" != "-c" ; then echo shar: Renaming existing file \"'Docs/dump.doc'\" to \"'Docs/dump.doc.orig'\" mv -f 'Docs/dump.doc' 'Docs/dump.doc.orig' fi echo shar: Extracting \"'Docs/dump.doc'\" \(328 characters\) sed "s/^X//" >'Docs/dump.doc' <<'END_OF_FILE' XDUMP Galactic Bloodshed DUMP X X XNAME X [10] dump -- give another player your expl,oration data X XSYNTAX X dump X XDESCRIPTION X X This allows a player to give another player (usually a trusted Xally) all of your exploration data. This information is permanently Xrecorded in the receiving player's exploration list. X X X END_OF_FILE if test 328 -ne `wc -c <'Docs/dump.doc'`; then echo shar: \"'Docs/dump.doc'\" unpacked with wrong size! fi # end of 'Docs/dump.doc' if test -f 'Docs/lasers.doc' -a "${1}" != "-c" ; then echo shar: Renaming existing file \"'Docs/lasers.doc'\" to \"'Docs/lasers.doc.orig'\" mv -f 'Docs/lasers.doc' 'Docs/lasers.doc.orig' fi echo shar: Extracting \"'Docs/lasers.doc'\" \(1472 characters\) sed "s/^X//" >'Docs/lasers.doc' <<'END_OF_FILE' XLASERS Galactic Bloodshed LASERS X X XCONCEPT X lasers -- ships may mount combat lasers for use in battle. X XDESCRIPTION X X Some ships may be permitted to mount combat lasers at time Xof construction. Ships require a minimum technology of 100. XA ship which has a laser mounted may optionally Xuse these for firing instead of the normal guns. Unlike guns, Xlasers use fuel instead of destruct to attack with. Two points Xof fuel is equivalent to 1 gun. The player must also have a Xcrystal mounted to use the fuel for attacking. X X There is no limit to the amount of fuel that may used in Xan attack. However, there is a technological stability limit, Xbeyond which crystal damage may result, or even an explosion. X XShip explosion is determined by the formula: X Explosion if rand(0, strength) > ship tech/2. X XA 100 technology ship may fire up to 50 strength points safely, a X200 tech ship 100, etc. Pushing it beyond this limit may result Xin a matter/anti-matter explosion! X XCrystals may damage before they explode a ship. The chances of Xdamage (and hence an automatic dismount and loss of the crystal) Xis determined by X Damaged if rand(0, strength) > ship tech/4. X XA ship will only fire lasers if told to do so. This is done using Xthe order command 'order laser on '. XThe laser may be turned off with 'order laser off'. If the Xlaser is set on, then executing the 'fire' command uses lasers Xinstead of normal weapons. X XSEE ALSO X fire, order X END_OF_FILE if test 1472 -ne `wc -c <'Docs/lasers.doc'`; then echo shar: \"'Docs/lasers.doc'\" unpacked with wrong size! fi # end of 'Docs/lasers.doc' if test -f 'Docs/motto.doc' -a "${1}" != "-c" ; then echo shar: Renaming existing file \"'Docs/motto.doc'\" to \"'Docs/motto.doc.orig'\" mv -f 'Docs/motto.doc' 'Docs/motto.doc.orig' fi echo shar: Extracting \"'Docs/motto.doc'\" \(350 characters\) sed "s/^X//" >'Docs/motto.doc' <<'END_OF_FILE' XMOTTO Galactic Bloodshed MOTTO X X XNAME X motto -- set a motto for an alliance block X XSYNTAX X motto X XDESCRIPTION X X Players may give the alliance block they control a motto which Xwill show up on individual block reports. This is strictly for Xentertainment/communications and has no effect on the play of the game. X XSEE ALSO X blocks X END_OF_FILE if test 350 -ne `wc -c <'Docs/motto.doc'`; then echo shar: \"'Docs/motto.doc'\" unpacked with wrong size! fi # end of 'Docs/motto.doc' if test -f 'Docs/production.doc' -a "${1}" != "-c" ; then echo shar: Renaming existing file \"'Docs/production.doc'\" to \"'Docs/production.doc.orig'\" mv -f 'Docs/production.doc' 'Docs/production.doc.orig' fi echo shar: Extracting \"'Docs/production.doc'\" \(348 characters\) sed "s/^X//" >'Docs/production.doc' <<'END_OF_FILE' XPRODUCTION Galactic Bloodshed PRODUCTION X X XNAME X production -- show latest planet production statistics X XSYNTAX X production X XDESCRIPTION X X This command will show the number of resources, fuel, and Xdestruct that a planet production during the previous update. XYou must change scope to the planet for this command to work. X XSEE ALSO X survey X END_OF_FILE if test 348 -ne `wc -c <'Docs/production.doc'`; then echo shar: \"'Docs/production.doc'\" unpacked with wrong size! fi # end of 'Docs/production.doc' if test -f 'Docs/read.doc' -a "${1}" != "-c" ; then echo shar: Renaming existing file \"'Docs/read.doc'\" to \"'Docs/read.doc.orig'\" mv -f 'Docs/read.doc' 'Docs/read.doc.orig' fi echo shar: Extracting \"'Docs/read.doc'\" \(314 characters\) sed "s/^X//" >'Docs/read.doc' <<'END_OF_FILE' XREAD Galactic Bloodshed READ X X XNAME X [0] read -- read messages from other players and news X XSYNTAX X read X XDESCRIPTION X X Read allows the player to look over messages sent to him by the other Xusers in the game. Players can also read the 'Galactic News' by doing X'read news'. X XSEE ALSO X telegram X END_OF_FILE if test 314 -ne `wc -c <'Docs/read.doc'`; then echo shar: \"'Docs/read.doc'\" unpacked with wrong size! fi # end of 'Docs/read.doc' if test -f 'Docs/repair.doc' -a "${1}" != "-c" ; then echo shar: Renaming existing file \"'Docs/repair.doc'\" to \"'Docs/repair.doc.orig'\" mv -f 'Docs/repair.doc' 'Docs/repair.doc.orig' fi echo shar: Extracting \"'Docs/repair.doc'\" \(647 characters\) sed "s/^X//" >'Docs/repair.doc' <<'END_OF_FILE' XREPAIR Galactic Bloodshed REPAIR X X XNAME X [0] repair -- repair a planet/sectors X XSYNTAX X repair X XDESCRIPTION X Players can repair sectors which have wasted designations, due to Xcombat or other effects. The player must change scope to the planet. If Xno arguments are given, all sectors will be repaired to the limit of available Xresources. A player must inhabit at least one sector and have 10 resources Xfor each sector repaired. If arguments are given, a rectangular area Xspecified by the player will be repaired. Note that only wasted sectors Xcan be repaired, and sectors inhabited by aliens may not be repaired. X X END_OF_FILE if test 647 -ne `wc -c <'Docs/repair.doc'`; then echo shar: \"'Docs/repair.doc'\" unpacked with wrong size! fi # end of 'Docs/repair.doc' if test -f 'Docs/standby.doc' -a "${1}" != "-c" ; then echo shar: Renaming existing file \"'Docs/standby.doc'\" to \"'Docs/standby.doc.orig'\" mv -f 'Docs/standby.doc' 'Docs/standby.doc.orig' fi echo shar: Extracting \"'Docs/standby.doc'\" \(326 characters\) sed "s/^X//" >'Docs/standby.doc' <<'END_OF_FILE' XSTANDBY Galactic Bloodshed STANDBY X X XNAME X standby -- enter dormant mode X XSYNTAX X standby X XDESCRIPTION X X A player may enter standby mode, which doesn't use up time allotments, Xbut severely restricts the commands he/she may use. While in standby Xmode, a player may only issue communications commands. X XSEE ALSO X time END_OF_FILE if test 326 -ne `wc -c <'Docs/standby.doc'`; then echo shar: \"'Docs/standby.doc'\" unpacked with wrong size! fi # end of 'Docs/standby.doc' if test -f 'Docs/stats.doc' -a "${1}" != "-c" ; then echo shar: Renaming existing file \"'Docs/stats.doc'\" to \"'Docs/stats.doc.orig'\" mv -f 'Docs/stats.doc' 'Docs/stats.doc.orig' fi echo shar: Extracting \"'Docs/stats.doc'\" \(277 characters\) sed "s/^X//" >'Docs/stats.doc' <<'END_OF_FILE' XSTATS Galactic Bloodshed STATS X X XNAME X [0] stats -- report ship characteristics X XSYNTAX X status <#shipnum or ship types> X XDESCRIPTION X This command allows users to examine characteristics of their ships. X X XSEE ALSO X examine, ship, stock, tactical, scope, report X END_OF_FILE if test 277 -ne `wc -c <'Docs/stats.doc'`; then echo shar: \"'Docs/stats.doc'\" unpacked with wrong size! fi # end of 'Docs/stats.doc' if test -f 'SETUP' -a "${1}" != "-c" ; then echo shar: Renaming existing file \"'SETUP'\" to \"'SETUP.orig'\" mv -f 'SETUP' 'SETUP.orig' fi echo shar: Extracting \"'SETUP'\" \(2840 characters\) sed "s/^X//" >'SETUP' <<'END_OF_FILE' XFrom: vancleef@ohstpy.mps.ohio-state.edu XNewsgroups: alt.games.galactic-bloodshed XSubject: Compilation/Setup XDate: 2 Aug 90 21:21:14 GMT XLines: 56 X XOK, several people have been requesting info on how to get GB set up, etc, Xand since I finally can get this new newsgroup, here we go. X XAll of the details on setting it up are in README1.3 - but here is a brief Xdescription. X XGB is divided into two parts, a 'server' which resides on the computer of Xthe person who is hosting the game. This person should be in charge of Xmaking sure everything is running smoothly, enrolling players, etc. XThe server communicates with players over the network. It processes command Xlines and send information to the appropriate players. The game is Xdesigned to be accessible 24 hrs a day, via the internet. XEach player should have a copy of the 'client'. If you dont want to host Xa game you needn't get the server, just the client. The client talks with Xserver and draws maps when they are requested. The server sends coded Xinformation which tells the client how to draw the maps. X XThe server and client as well as game docs are posted at an ftp site. XYou can obtain them from 'scam.berkeley.edu' (128.32.138.0) using Xanonymous ftp in the directory tmp/GB. Jeff Wallace maintains the Xftp site and compresses the code every few days or so. Since I post Xmodification to it regularly, it's probably a good idea to examine the Xdates on the files, as changes are made almost daily, get the latest Xversion. The server is in the file GB_server.shar, client in GB_client.shar, Xand docs in GB_docs.shar. X XSetting up a client: X obtain the GB_client.shar file and set up a client directory. X Then do 'sh GB_client.shar' and your system will unpack the X file. Then, do 'make' and your system should compile the X program. Note, you may have to make modifications to the X Makefile to get it to run on your system. See a local Unix X guru for help if you don't understand it. X X You can then connect to your favorite GB game by doing X 'GB_client '. e.g. - GB_client pooh.caltech.edu 2010 X would get you to the caltech game (which is sorta dying now :) X XSetting up the server: X Obtain GB_server.shar, and set up a directory called 'GB' (my X suggestion). Then do 'sh GB_server.shar' and then 'make'. X Once again you may have to modify the Makefile to get it to X work on your system. The makee process will also produce other X programs, these are described in README1.3 which comes along X with the server. X XRemember, gb has come a long way and we are still working things out. Post X suggestions here or e-mail to vancleef@pooh.caltech.edu or X vancleef@ohstpy.mps.ohio-state.edu. You can also send to X Robert Chansky (address in previous posting) X X"Let the space battles begin!" - Jeff Wallace X Xdisclaimer: *** THIS MAY BE INCOMPATIBLE WITH SYSTEM/V *** X X-Garrett X X END_OF_FILE if test 2840 -ne `wc -c <'SETUP'`; then echo shar: \"'SETUP'\" unpacked with wrong size! fi # end of 'SETUP' if test -f 'client/client.h' -a "${1}" != "-c" ; then echo shar: Renaming existing file \"'client/client.h'\" to \"'client/client.h.orig'\" mv -f 'client/client.h' 'client/client.h.orig' fi echo shar: Extracting \"'client/client.h'\" \(294 characters\) sed "s/^X//" >'client/client.h' <<'END_OF_FILE' X#define VERS "1.3.1 7/25/90" X X#ifndef TRUE X#define TRUE 1 X#endif X X#ifndef FALSE X#define FALSE 0 X#endif X X#define MAXSTRLEN 8192 X#define HUGESTRLEN (2*MAXSTRLEN + 1) X#define SMALLSTR 31 X Xtypedef char string[MAXSTRLEN]; Xtypedef char hugestr[HUGESTRLEN]; Xtypedef char smallstr[SMALLSTR]; END_OF_FILE if test 294 -ne `wc -c <'client/client.h'`; then echo shar: \"'client/client.h'\" unpacked with wrong size! fi # end of 'client/client.h' if test -f 'server/capitol.c' -a "${1}" != "-c" ; then echo shar: Renaming existing file \"'server/capitol.c'\" to \"'server/capitol.c.orig'\" mv -f 'server/capitol.c' 'server/capitol.c.orig' fi echo shar: Extracting \"'server/capitol.c'\" \(1969 characters\) sed "s/^X//" >'server/capitol.c' <<'END_OF_FILE' X/* X * Galactic Bloodshed, copyright (c) 1989 by Robert P. Chansky, X * smq@ucscb.ucsc.edu, mods by people in GB_copyright.h. X * Restrictions in GB_copyright.h. X * X * capitol.c -- designate a capitol X */ X X#include "GB_copyright.h" X#define EXTERN extern X#include "vars.h" X#include "ships.h" X#include "races.h" X#include "buffers.h" X#include X Xint capitol_racedata; X Xcapitol(Playernum,APcount, argn,args) Xint Playernum; Xint APcount; Xint argn; Xchar args[MAXARGS][COMMANDSIZE]; X{ Xint shipno,stat; Xint shdata; Xshiptype *s; Xracetype *Race; X Xopenracedata(&capitol_racedata); Xgetrace(capitol_racedata, &Race, Playernum); Xclose_file(capitol_racedata); X X if (argn!=2) { X shipno = Race->Gov_ship; X } else { X X shipno = atoi(args[1]+(args[1][0]=='#')); X X if (Dir[Playernum-1].level==LEVEL_UNIV) { X if (!enufAP(Playernum,Sdata.AP[Playernum-1],APcount)) { X free(Race); X return; X } X } else { X if (!enufAP(Playernum,Stars[Dir[Playernum-1].snum]->AP[Playernum-1],APcount)) { X free(Race); X return; X } X } X } X Xif(shipno <= 0) { X notify(Playernum, "Change the capitol to be what ship?\n"); X free(Race); X return; X } X X openshdata(&shdata); X stat = getship(shdata, &s, shipno); X close_file(shdata); X X if (argn==2) { X if (!stat || testship(Playernum,s, shipno)) { X free(Race); X free(s); X return; X } X X if (s->type!=OTYPE_GOV) { X sprintf(buf,"That ship is not a %s.\n",Shipnames[OTYPE_GOV]); X notify(Playernum, buf); X free(Race); X free(s); X return; X } X X if (Dir[Playernum-1].level==LEVEL_UNIV) X deductAPs(Playernum, APcount, 0, 1); X else X deductAPs(Playernum, APcount, Dir[Playernum-1].snum, 0); X X Race->Gov_ship = shipno; X openracedata(&capitol_racedata); X putrace(capitol_racedata, Race); X close_file(capitol_racedata); X X } X sprintf(buf,"Efficiency of governmental center: %.0f%%.\n", X ((float)s->popn/Max_crew(s)) * X (100 - (float)s->damage) ); X notify(Playernum, buf); X free(Race); X free(s); X X} END_OF_FILE if test 1969 -ne `wc -c <'server/capitol.c'`; then echo shar: \"'server/capitol.c'\" unpacked with wrong size! fi # end of 'server/capitol.c' if test -f 'server/config.h' -a "${1}" != "-c" ; then echo shar: Renaming existing file \"'server/config.h'\" to \"'server/config.h.orig'\" mv -f 'server/config.h' 'server/config.h.orig' fi echo shar: Extracting \"'server/config.h'\" \(760 characters\) sed "s/^X//" >'server/config.h' <<'END_OF_FILE' X#include "files.h" /* for PATH() definition */ X X#define VERS "2.2.3 8/23/90" X X#ifndef GB_HOST X#define GB_HOST "pooh.caltech.edu" X#endif X X#ifndef GB_PORT X#define GB_PORT 2010 X#endif X X X#define COMMAND_TIME_MSEC 250 /* time slice length in milliseconds */ X#define COMMANDS_PER_TIME 1 /* commands per time slice after burst */ X#define COMMAND_BURST_SIZE 250 /* commands allowed per user in a burst */ X#define DISCONNECT_TIME 7200 /* maximum idle time */ X#define MAX_OUTPUT 32768 X#define DAEMON_PASSWORD "put_your_update_password_here" X X#define QUIT_COMMAND "quit" X#define WHO_COMMAND "who" X#define HELP_COMMAND "help" X X/* put full pathnames in here as required */ X#define WELCOME_FILE PATH(welcome.txt) X#define LEAVE_MESSAGE "\n*** Have a nice day :-) ***\n" END_OF_FILE if test 760 -ne `wc -c <'server/config.h'`; then echo shar: \"'server/config.h'\" unpacked with wrong size! fi # end of 'server/config.h' if test -f 'server/dissolve.c' -a "${1}" != "-c" ; then echo shar: Renaming existing file \"'server/dissolve.c'\" to \"'server/dissolve.c.orig'\" mv -f 'server/dissolve.c' 'server/dissolve.c.orig' fi echo shar: Extracting \"'server/dissolve.c'\" \(3661 characters\) sed "s/^X//" >'server/dissolve.c' <<'END_OF_FILE' X/* X * Galactic Bloodshed, copyright (c) 1989 by Robert P. Chansky, X * smq@ucscb.ucsc.edu, mods by people in GB_copyright.h. X * Restrictions in GB_copyright.h. X * dissolve.c -- commit suicide, nuke all ships and sectors; X * July 24th, 1989, John Deragon, cruz@cadman.nyu.edu X */ X X#include "GB_copyright.h" X#define EXTERN extern X#include "vars.h" X#include "ships.h" X#include "races.h" X#include "doturn.h" X#include "power.h" X#include "buffers.h" X#include X X Xdissolve(Playernum, argn, args) Xint Playernum; Xint argn; Xchar args[MAXARGS][COMMANDSIZE]; X{ X Xint shdata, pdata, racedata, stardata, sectdata, n_ships; Xint i, z, x, y, x2, y2, hix, hiy, lowx,lowy; Xboolean waste; Xshiptype *sp; Xracetype *Race; Xplanettype *pl; Xsectortype *s; Xchar nuke; Xchar buf[1024][100]; Xchar password[100]; X Xopenshdata(&shdata); Xn_ships = Numships(shdata); Xclose_file(shdata); X Xif (argn < 2) { X sprintf(buf, "Self-Destruct sequence requires password.\n"); X notify(Playernum, buf); X sprintf(buf, "Please use 'dissolve '