Re: [Freeciv-Dev] Patch for split unit bitmaps (exploded tilesets)
[Top] [All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
Per Mathisen wrote:
> On Thu, 5 Nov 1998, Sverker Wiberg wrote:
> > Here is the patch I promised, with the units tileset broken up into
> > individual X Pixmaps.
> As the CVS has come up now, could you perhaps send a diff against cvs
> current?
Here they are again, as current cvs-diffs. As cvs diff doesn't know
what to do with the new files in data/units/ I introduced, they are
packaged in a base64-encoded tar.gz-archive. As MIME still gives me
trouble I had to do the inclusions by hand (so you'll have to break it
up by hand).
Including derived files like `configure' and `Makefile' in the diff,
is CVS's silliness, not mine.
/Sverker
-------begin-----begin-----begin-----begin-----begin-----begin-----
? data/units/Makefile.am
? data/units/aegis.xpm
? data/units/alpine.xpm
? data/units/archer.xpm
? data/units/armour.xpm
? data/units/artillery.xpm
? data/units/battleship.xpm
? data/units/bomber.xpm
? data/units/cannon.xpm
? data/units/caravan.xpm
? data/units/caravel.xpm
? data/units/carrier.xpm
? data/units/catapult.xpm
? data/units/cavalry.xpm
? data/units/chariot.xpm
? data/units/cruise-msl.xpm
? data/units/cruiser.xpm
? data/units/destroyer.xpm
? data/units/diplomat.xpm
? data/units/dragoon.xpm
? data/units/engineer.xpm
? data/units/explorer.xpm
? data/units/fighter.xpm
? data/units/freight.xpm
? data/units/frigate.xpm
? data/units/galleon.xpm
? data/units/helicopter.xpm
? data/units/horse.xpm
? data/units/howitzer.xpm
? data/units/ironclad.xpm
? data/units/knight.xpm
? data/units/legion.xpm
? data/units/marine.xpm
? data/units/mech.xpm
? data/units/musket.xpm
? data/units/nuke.xpm
? data/units/partisan.xpm
? data/units/phalanx.xpm
? data/units/pike.xpm
? data/units/rifle.xpm
? data/units/s-bomber.xpm
? data/units/s-fighter.xpm
? data/units/settler.xpm
? data/units/spy.xpm
? data/units/submarine.xpm
? data/units/transport.xpm
? data/units/trireme.xpm
? data/units/unknown.xpm
? data/units/warrior.xpm
? data/units/Makefile.in
? data/units/Makefile
Index: Makefile.in
===================================================================
RCS file: /home/freeciv/CVS/freeciv/Makefile.in,v
retrieving revision 1.6
diff -r1.6 Makefile.in
84c84
< TAR = tar
---
> TAR = gtar
Index: configure
===================================================================
RCS file: /home/freeciv/CVS/freeciv/configure,v
retrieving revision 1.15
diff -r1.15 configure
1c1
< #! /bin/sh
---
> #! /bin/sh5
2996c2996
< #! /bin/sh
---
> #! /bin/sh5
3012,3013c3012,3013
< echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create
--no-recursion"
< exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create
--no-recursion ;;
---
> echo "running \${CONFIG_SHELL-/bin/sh5} $0 $ac_configure_args --no-create
> --no-recursion"
> exec \${CONFIG_SHELL-/bin/sh5} $0 $ac_configure_args --no-create
> --no-recursion ;;
3026c3026
< trap 'rm -fr `echo "Makefile data/Makefile common/Makefile ai/Makefile
client/Makefile server/Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
---
> trap 'rm -fr `echo "Makefile data/Makefile data/units/Makefile
> common/Makefile ai/Makefile client/Makefile server/Makefile" | sed "s/:[^
> ]*//g"` conftest*; exit 1' 1 2 15
3115c3115
< CONFIG_FILES=\${CONFIG_FILES-"Makefile data/Makefile common/Makefile
ai/Makefile client/Makefile server/Makefile"}
---
> CONFIG_FILES=\${CONFIG_FILES-"Makefile data/Makefile data/units/Makefile
> common/Makefile ai/Makefile client/Makefile server/Makefile"}
3184c3184
< test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
---
> test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh5} $CONFIG_STATUS || exit 1
Index: configure.in
===================================================================
RCS file: /home/freeciv/CVS/freeciv/configure.in,v
retrieving revision 1.16
diff -r1.16 configure.in
56a57,59
> <<<<<<< configure.in
> AC_OUTPUT(Makefile data/Makefile data/units/Makefile common/Makefile
> ai/Makefile client/Makefile server/Makefile)
> =======
60a64
> >>>>>>> 1.16
Index: ai/Makefile.in
===================================================================
RCS file: /home/freeciv/CVS/freeciv/ai/Makefile.in,v
retrieving revision 1.6
diff -r1.6 Makefile.in
124c124
< TAR = tar
---
> TAR = gtar
Index: client/Makefile.in
===================================================================
RCS file: /home/freeciv/CVS/freeciv/client/Makefile.in,v
retrieving revision 1.11
diff -r1.11 Makefile.in
167c167
< TAR = tar
---
> TAR = gtar
Index: client/graphics.c
===================================================================
RCS file: /home/freeciv/CVS/freeciv/client/graphics.c,v
retrieving revision 1.9
diff -r1.9 graphics.c
93d92
< unit_sprite = load_xpmfile(datafilename("units.xpm"));
161,162c160,161
< for(y=0; y<unit_sprite->height; y+=NORMAL_TILE_HEIGHT)
< for(x=0; x<unit_sprite->width; x+=NORMAL_TILE_WIDTH) {
---
> for(i = 0; i < U_LAST; i++)
> {
164a164,166
>
> if(unit_types[i].filename[0] == '\0')
> strcpy(unit_types[i].filename, "units/unknown.xpm");
165a168,169
> unit_sprite = load_xpmfile(datafilename(unit_types[i].filename));
>
170c174
< x, y, NORMAL_TILE_WIDTH, NORMAL_TILE_HEIGHT, 0 ,0);
---
> 0, 0, NORMAL_TILE_WIDTH, NORMAL_TILE_HEIGHT, 0 ,0);
178c182
< x, y, NORMAL_TILE_WIDTH, NORMAL_TILE_HEIGHT, 0 ,0);
---
> 0, 0, NORMAL_TILE_WIDTH, NORMAL_TILE_HEIGHT, 0 ,0);
180,181c184,186
< tile_sprites[i++]=ctor_sprite_mask(mypixmap, mask,
< NORMAL_TILE_WIDTH, NORMAL_TILE_HEIGHT);
---
> unit_types[i].graphics
> = ctor_sprite_mask(mypixmap, mask,
> NORMAL_TILE_WIDTH, NORMAL_TILE_HEIGHT);
184,185c189,190
< }
< free_sprite(unit_sprite);
---
> }
>
313c318
< struct Sprite *s=get_tile_sprite(get_unit_type(i)->graphics+UNIT_TILES);
---
> struct Sprite *s = get_unit_type(i)->graphics;
Index: client/mapview.c
===================================================================
RCS file: /home/freeciv/CVS/freeciv/client/mapview.c,v
retrieving revision 1.18
diff -r1.18 mapview.c
166a167
> void pixmap_put_overlay_sprite(Pixmap pixmap, int x, int y, struct Sprite
> *sprite);
985c986,987
< pixmap_put_overlay_tile(pm, xtile, ytile,
get_unit_type(punit->type)->graphics+UNIT_TILES);
---
> pixmap_put_overlay_sprite(pm, xtile, ytile,
> get_unit_type(punit->type)->graphics);
1349c1351,1352
< void pixmap_put_overlay_tile(Pixmap pixmap, int x, int y, int tileno)
---
> void
> pixmap_put_overlay_sprite(Pixmap pixmap, int x, int y, struct Sprite *sprite)
1351,1352d1353
< struct Sprite *ssprite=get_tile_sprite(tileno);
<
1354c1355
< XSetClipMask(display, civ_gc, ssprite->mask);
---
> XSetClipMask(display, civ_gc, sprite->mask);
1356c1357
< XCopyArea(display, ssprite->pixmap, pixmap,
---
> XCopyArea(display, sprite->pixmap, pixmap,
1358c1359
< ssprite->width, ssprite->height,
---
> sprite->width, sprite->height,
1360a1362,1369
> }
>
> /**************************************************************************
> ...
> **************************************************************************/
> void pixmap_put_overlay_tile(Pixmap pixmap, int x, int y, int tileno)
> {
> pixmap_put_overlay_sprite(pixmap, x, y, get_tile_sprite(tileno));
Index: common/Makefile.in
===================================================================
RCS file: /home/freeciv/CVS/freeciv/common/Makefile.in,v
retrieving revision 1.9
diff -r1.9 Makefile.in
123c123
< TAR = tar
---
> TAR = gtar
Index: common/city.c
===================================================================
RCS file: /home/freeciv/CVS/freeciv/common/city.c,v
retrieving revision 1.21
diff -r1.21 city.c
529d528
< struct player *p=city_owner(pcity);
555,557c554,559
< if(improvement_obsolete(p, id)) return 0;
< if (is_wonder(id) && game.global_wonders[id])
< return 0;
---
> if (is_wonder(id)) {
> if (game.global_wonders[id]) return 0;
> } else {
> struct player *pplayer=city_owner(pcity);
> if (improvement_obsolete(pplayer, id)) return 0;
> }
855a858
> cost+=improvement_upkeep_asmiths(pcity, i, asmiths);
Index: common/unit.c
===================================================================
RCS file: /home/freeciv/CVS/freeciv/common/unit.c,v
retrieving revision 1.27
diff -r1.27 unit.c
23c23,24
< /* cost ,flags, attack, defense, move, tech_req, vision, transport?, HP, FP,
Obsolete, FUEL */
---
> /* name, filename, moveflags, cost, attack, defense, move,
> tech_req, vision, transport?, HP, FP, obsolete, fuel, flags */
26,76c27,43
< {"Settlers", 24, LAND_MOVING, 40, 0, 1, 1*3, A_NONE, 1, 0,
20, 1, U_ENGINEERS, 0, F_SETTLERS | F_NONMIL },
< {"Engineers", 42, LAND_MOVING, 40, 0, 2, 2*3, A_EXPLOSIVES, 1, 0,
20, 1, -1, 0, F_SETTLERS | F_NONMIL },
< {"Warriors", 18, LAND_MOVING, 10, 1, 1, 1*3, A_NONE, 1, 0,
10, 1, U_PIKEMEN, 0, 0},
< {"Phalanx", 21, LAND_MOVING, 20, 1, 2, 1*3, A_BRONZE, 1, 0,
10, 1, U_PIKEMEN, 0, 0},
< {"Archers", 28, LAND_MOVING, 30, 3, 2, 1*3, A_WARRIORCODE, 1, 0,
10, 1, U_MUSKETEERS, 0, 0},
< {"Legion", 16, LAND_MOVING, 40, 4, 2, 1*3, A_IRON, 1, 0,
10, 1, U_MUSKETEERS, 0, 0},
< {"Pikemen", 37, LAND_MOVING, 20, 1, 2, 1*3, A_FEUDALISM, 1, 0,
10, 1, U_MUSKETEERS, 0, F_PIKEMEN},
< {"Musketeers", 19, LAND_MOVING, 30, 3, 3, 1*3, A_GUNPOWDER, 1, 0,
20, 1, U_RIFLEMEN, 0,0 },
< {"Fanatics", 49, LAND_MOVING, 20, 4, 4, 1*3, A_LAST, 1, 0,
20, 1, -1, 0,0},
< {"Partisan", 36, LAND_MOVING, 50, 4, 4, 1*3, A_GUERILLA, 1, 0,
20, 1, -1, 0,F_IGTER | F_IGZOC},
< {"Alpine Troops", 45, LAND_MOVING, 50, 5, 5, 1*3, A_TACTICS, 1, 0,
20, 1, -1, 0,F_IGTER},
< {"Riflemen", 22, LAND_MOVING, 40, 5, 4, 1*3, A_CONSCRIPTION,1, 0,
20, 1, -1, 0,0},
< {"Marines", 40, LAND_MOVING, 60, 8, 5, 1*3, A_AMPHIBIOUS, 1, 0,
20, 1, -1, 0,F_MARINES},
< {"Paratroopers", 0, LAND_MOVING, 60, 6, 4, 1*3, A_COMBINED, 1, 0,
20, 1, -1, 0,0},
< {"Mech. Inf.", 17, LAND_MOVING, 50, 6, 6, 3*3, A_LABOR, 1, 0,
30, 1, -1, 0,0},
< {"Horsemen", 8, LAND_MOVING, 20, 2, 1, 2*3, A_HORSEBACK, 1, 0,
10, 1, U_KNIGHTS, 0,F_HORSE},
< {"Chariot", 9, LAND_MOVING, 30, 3, 1, 2*3, A_WHEEL, 1, 0,
10, 1, U_KNIGHTS, 0,F_HORSE},
< {"Elephants", 39, LAND_MOVING, 40, 4, 1, 2*3, A_POLYTHEISM, 1, 0,
10, 1, U_CRUSADERS, 0,0},
< {"Crusaders", 38, LAND_MOVING, 40, 5, 1, 2*3, A_MONOTHEISM, 1, 0,
10, 1, U_DRAGOONS, 0,F_HORSE},
< {"Knights", 15, LAND_MOVING, 40, 4, 2, 2*3, A_CHIVALRY, 1, 0,
10, 1, U_DRAGOONS, 0,F_HORSE},
< {"Dragoons", 32, LAND_MOVING, 50, 5, 2, 2*3, A_LEADERSHIP, 1, 0,
20, 1, U_CAVALRY, 0,F_HORSE},
< {"Cavalry", 29, LAND_MOVING, 60, 8, 3, 2*3, A_TACTICS, 1, 0,
20, 1, U_ARMOR, 0,0}, /* IS NOT a normal horse attack */
< {"Armor", 0, LAND_MOVING, 80, 10, 5, 3*3, A_MOBILE, 1, 0,
30, 1, -1, 0,0},
< {"Catapult", 7, LAND_MOVING, 40, 6, 1, 1*3, A_MATHEMATICS, 1, 0,
10, 1, U_CANNON, 0,0},
< {"Cannon", 4, LAND_MOVING, 40, 8, 1, 1*3, A_METALLURGY, 1, 0,
20, 1, U_ARTILLERY, 0,0},
< {"Artillery", 43, LAND_MOVING, 50, 10, 1, 1*3, A_MACHINE, 1, 0,
20, 2, U_HOWITZER, 0,0},
< {"Howitzer", 1, LAND_MOVING, 70, 12, 2, 2*3, A_ROBOTICS, 1, 0,
30, 2, -1, 0,F_IGWALL},
< {"Fighter", 12, AIR_MOVING, 60, 4, 3, 10*3, A_FLIGHT, 2, 0,
20, 2, U_SFIGHTER, 1,F_FIGHTER | F_FIELDUNIT},
< {"Bomber", 3, AIR_MOVING, 120, 12, 1, 8*3, A_ADVANCED, 2, 0,
20, 2, U_SBOMBER, 2,F_FIELDUNIT|F_ONEATTACK},
< {"Helicopter", 44, HELI_MOVING,100, 10, 3, 6*3, A_COMBINED, 2, 0,
20, 2, -1, 0,F_ONEATTACK |F_FIELDUNIT},
< {"Stealth Fighter",47,AIR_MOVING, 80, 8, 4, 14*3, A_STEALTH, 2, 0,
20, 2, -1, 1,F_FIELDUNIT| F_FIGHTER},
< {"Stealth Bomber",46, AIR_MOVING, 160, 14, 5, 12*3, A_STEALTH, 2, 0,
20, 2, -1, 2,F_FIELDUNIT|F_ONEATTACK},
< {"Trireme", 27, SEA_MOVING, 40, 1, 1, 3*3, A_MAPMAKING, 1, 2,
10, 1, U_CARAVEL, 0,F_FIELDUNIT | F_TRIREME},
< {"Caravel", 23, SEA_MOVING, 40, 2, 1, 3*3, A_NAVIGATION, 1, 3,
10, 1, U_GALLEON, 0,0},
< {"Galleon", 35, SEA_MOVING, 40, 0, 2, 4*3, A_MAGNETISM, 1, 4,
20, 1, U_TRANSPORT, 0,0},
< {"Frigate", 13, SEA_MOVING, 50, 4, 2, 4*3, A_MAGNETISM, 1, 2,
20, 1, U_IRONCLAD, 0,F_FIELDUNIT},
< {"Ironclad", 14, SEA_MOVING, 60, 4, 4, 4*3, A_STEAM, 1, 0,
30, 1, U_DESTROYER, 0,F_FIELDUNIT},
< {"Destroyer", 31, SEA_MOVING, 60, 4, 4, 6*3, A_ELECTRICITY, 2, 0,
30, 1, -1, 0,F_FIELDUNIT},
< {"Cruiser", 10, SEA_MOVING, 80, 6, 6, 5*3, A_STEEL, 2, 0,
30, 2, U_AEGIS, 0,F_FIELDUNIT},
< {"AEGIS Cruiser", 48, SEA_MOVING, 100, 8, 8, 5*3, A_ROCKETRY, 2, 0,
30, 2, -1, 0,F_AEGIS | F_FIELDUNIT},
< {"Battleship", 2, SEA_MOVING, 160, 12, 12, 4*3, A_AUTOMOBILE, 2, 0,
40, 2, -1, 0,F_FIELDUNIT},
< {"Submarine", 25, SEA_MOVING, 60, 10, 2, 3*3, A_COMBUSTION, 2, 8,
30, 2, -1, 0,F_FIELDUNIT|F_SUBMARINE},
< {"Carrier", 6, SEA_MOVING, 160, 1, 9, 5*3, A_ADVANCED, 2, 8,
40, 2, -1, 0,F_FIELDUNIT|F_CARRIER},
< {"Transport", 26, SEA_MOVING, 50, 0, 3, 5*3,
A_INDUSTRIALIZATION,2, 8, 30, 1, -1, 0,0},
< {"Cruise Missile",30, AIR_MOVING, 60, 18, 0, 12*3, A_ROCKETRY, 1, 0,
10, 3, -1, 1,F_FIELDUNIT | F_MISSILE | F_ONEATTACK},
< {"Nuclear", 20, AIR_MOVING, 160, 99, 0, 16*3, A_ROCKETRY, 1, 0,
10, 1, -1, 1,F_FIELDUNIT | F_ONEATTACK | F_MISSILE | F_NUCLEAR},
< {"Diplomat", 11, LAND_MOVING, 30, 0, 0, 2*3, A_WRITING, 1, 0,
10, 1, U_SPY, 0,F_DIPLOMAT | F_IGZOC | F_NONMIL},
< {"Spy", 41, LAND_MOVING, 30, 0, 0, 3*3, A_ESPIONAGE, 2, 0,
10, 1, -1, 0,F_DIPLOMAT | F_SPY | F_IGZOC | F_NONMIL},
< {"Caravan", 5, LAND_MOVING, 50, 0, 1, 1*3, A_TRADE, 1, 0,
10, 1, U_FREIGHT, 0,F_CARAVAN | F_IGZOC | F_NONMIL},
< {"Freight", 34, LAND_MOVING, 50, 0, 1, 2*3, A_CORPORATION, 1, 0,
10, 1, -1, 0,F_CARAVAN | F_IGZOC | F_NONMIL},
< {"Explorer", 33, LAND_MOVING, 30, 0, 1, 1*3, A_SEAFARING, 1, 0,
10, 1, U_PARTISAN, 0,F_NONMIL | F_IGTER | F_IGZOC}
---
> {"Settlers", "units/settler.xpm", LAND_MOVING, 40, 0, 1, 1*3,
> A_NONE, 1, 0, 20, 1, U_ENGINEERS, 0, F_SETTLERS | F_NONMIL },
> {"Engineers", "units/engineer.xpm", LAND_MOVING, 40, 0, 2, 2*3,
> A_EXPLOSIVES, 1, 0, 20, 1, -1, 0, F_SETTLERS | F_NONMIL },
>
> {"Warriors", "units/warrior.xpm", LAND_MOVING, 10, 1, 1, 1*3,
> A_NONE, 1, 0, 10, 1, U_PIKEMEN, 0, 0},
> {"Phalanx", "units/phalanx.xpm", LAND_MOVING, 20, 1, 2, 1*3,
> A_BRONZE, 1, 0, 10, 1, U_PIKEMEN, 0, 0},
> {"Archers", "units/archer.xpm", LAND_MOVING, 30, 3, 2, 1*3,
> A_WARRIORCODE, 1, 0, 10, 1, U_MUSKETEERS, 0, 0},
> {"Legion", "units/legion.xpm", LAND_MOVING, 40, 4, 2, 1*3,
> A_IRON, 1, 0, 10, 1, U_MUSKETEERS, 0, 0},
> {"Pikemen", "units/pike.xpm", LAND_MOVING, 20, 1, 2, 1*3,
> A_FEUDALISM, 1, 0, 10, 1, U_MUSKETEERS, 0, F_PIKEMEN},
> {"Musketeers", "units/musket.xpm", LAND_MOVING, 30, 3, 3, 1*3,
> A_GUNPOWDER, 1, 0, 20, 1, U_RIFLEMEN, 0,0 },
77a45,139
> {"Fanatics", "", LAND_MOVING, 20, 4, 4, 1*3,
> A_LAST, 1, 0, 20, 1, -1, 0,0},
> {"Partisan", "units/partisan.xpm", LAND_MOVING, 50, 4, 4, 1*3,
> A_GUERILLA, 1, 0, 20, 1, -1, 0,F_IGTER | F_IGZOC},
> {"Alpine Troops", "units/alpine.xpm", LAND_MOVING, 50, 5, 5, 1*3,
> A_TACTICS, 1, 0, 20, 1, -1, 0,F_IGTER},
> {"Riflemen", "units/rifle.xpm", LAND_MOVING, 40, 5, 4, 1*3,
> A_CONSCRIPTION,1, 0, 20, 1, -1, 0,0},
> {"Marines", "units/marine.xpm", LAND_MOVING, 60, 8, 5, 1*3,
> A_AMPHIBIOUS, 1, 0, 20, 1, -1, 0,F_MARINES},
> {"Paratroopers", "", LAND_MOVING, 60, 6, 4, 1*3,
> A_COMBINED, 1, 0, 20, 1, -1, 0,0},
> {"Mech. Inf.", "units/mech.xpm", LAND_MOVING, 50, 6, 6, 3*3,
> A_LABOR, 1, 0, 30, 1, -1, 0,0},
>
> {"Horsemen", "units/horse.xpm", LAND_MOVING, 20, 2, 1, 2*3,
> A_HORSEBACK, 1, 0, 10, 1, U_KNIGHTS, 0,F_HORSE},
> {"Chariot", "units/chariot.xpm", LAND_MOVING, 30, 3, 1, 2*3,
> A_WHEEL, 1, 0, 10, 1, U_KNIGHTS, 0,F_HORSE},
> {"Elephants", "", LAND_MOVING, 40, 4, 1, 2*3,
> A_POLYTHEISM, 1, 0, 10, 1, U_CRUSADERS, 0,0},
> {"Crusaders", "", LAND_MOVING, 40, 5, 1, 2*3,
> A_MONOTHEISM, 1, 0, 10, 1, U_DRAGOONS, 0,F_HORSE},
> {"Knights", "units/knight.xpm", LAND_MOVING, 40, 4, 2, 2*3,
> A_CHIVALRY, 1, 0, 10, 1, U_DRAGOONS, 0,F_HORSE},
> {"Dragoons", "units/dragoon.xpm", LAND_MOVING, 50, 5, 2, 2*3,
> A_LEADERSHIP, 1, 0, 20, 1, U_CAVALRY, 0,F_HORSE},
> {"Cavalry", "units/cavalry.xpm", LAND_MOVING, 60, 8, 3, 2*3, /* [1] */
> A_TACTICS, 1, 0, 20, 1, U_ARMOR, 0,0},
> {"Armor", "units/armour.xpm", LAND_MOVING, 80, 10, 5, 3*3,
> A_MOBILE, 1, 0, 30, 1, -1, 0,0},
>
> {"Catapult", "units/catapult.xpm", LAND_MOVING, 40, 6, 1, 1*3,
> A_MATHEMATICS, 1, 0, 10, 1, U_CANNON, 0,0},
> {"Cannon", "units/cannon.xpm", LAND_MOVING, 40, 8, 1, 1*3,
> A_METALLURGY, 1, 0, 20, 1, U_ARTILLERY, 0,0},
> {"Artillery", "units/artillery.xpm", LAND_MOVING, 50, 10, 1, 1*3,
> A_MACHINE, 1, 0, 20, 2, U_HOWITZER, 0,0},
> {"Howitzer", "units/howitzer.xpm", LAND_MOVING, 70, 12, 2, 2*3,
> A_ROBOTICS, 1, 0, 30, 2, -1, 0,F_IGWALL},
>
> {"Fighter", "units/fighter.xpm", AIR_MOVING, 60, 4, 3, 10*3,
> A_FLIGHT, 2, 0, 20, 2, U_SFIGHTER, 1,F_FIGHTER | F_FIELDUNIT},
> {"Bomber", "units/bomber.xpm", AIR_MOVING, 120, 12, 1, 8*3,
> A_ADVANCED, 2, 0, 20, 2, U_SBOMBER, 2,F_FIELDUNIT|F_ONEATTACK},
> {"Helicopter", "units/helicopter.xpm", HELI_MOVING,100, 10, 3, 6*3,
> A_COMBINED, 2, 0, 20, 2, -1, 0,F_ONEATTACK |F_FIELDUNIT},
> {"Stealth Fighter", "units/s-fighter.xpm", AIR_MOVING, 80, 8, 4, 14*3,
> A_STEALTH, 2, 0, 20, 2, -1, 1,F_FIELDUNIT| F_FIGHTER},
> {"Stealth Bomber", "units/s-bomber.xpm", AIR_MOVING, 160, 14, 5, 12*3,
> A_STEALTH, 2, 0, 20, 2, -1, 2,F_FIELDUNIT|F_ONEATTACK},
>
> {"Trireme", "units/trireme.xpm", SEA_MOVING, 40, 1, 1, 3*3,
> A_MAPMAKING, 1, 2, 10, 1, U_CARAVEL, 0,F_FIELDUNIT},
> {"Caravel", "units/caravel.xpm", SEA_MOVING, 40, 2, 1, 3*3,
> A_NAVIGATION, 1, 3, 10, 1, U_GALLEON, 0,0},
> {"Galleon", "units/galleon.xpm", SEA_MOVING, 40, 0, 2, 4*3,
> A_MAGNETISM, 1, 4, 20, 1, U_TRANSPORT, 0,0},
> {"Frigate", "units/frigate.xpm", SEA_MOVING, 50, 4, 2, 4*3,
> A_MAGNETISM, 1, 2, 20, 1, U_IRONCLAD, 0,F_FIELDUNIT},
> {"Ironclad", "units/ironclad.xpm", SEA_MOVING, 60, 4, 4, 4*3,
> A_STEAM, 1, 0, 30, 1, U_DESTROYER, 0,F_FIELDUNIT},
> {"Destroyer", "units/destroyer.xpm", SEA_MOVING, 60, 4, 4, 6*3,
> A_ELECTRICITY, 2, 0, 30, 1, -1, 0,F_FIELDUNIT},
> {"Cruiser", "units/cruiser.xpm", SEA_MOVING, 80, 6, 6, 5*3,
> A_STEEL, 2, 0, 30, 2, U_AEGIS, 0,F_FIELDUNIT},
> {"AEGIS Cruiser", "units/aegis.xpm", SEA_MOVING, 100, 8, 8, 5*3,
> A_ROCKETRY, 2, 0, 30, 2, -1, 0,F_AEGIS | F_FIELDUNIT},
> {"Battleship", "units/battleship.xpm", SEA_MOVING, 160, 12, 12, 4*3,
> A_AUTOMOBILE, 2, 0, 40, 2, -1, 0,F_FIELDUNIT},
> {"Submarine", "units/submarine.xpm", SEA_MOVING, 60, 10, 2, 3*3,
> A_COMBUSTION, 2, 8, 30, 2, -1, 0,F_FIELDUNIT|F_SUBMARINE},
> {"Carrier", "units/carrier.xpm", SEA_MOVING, 160, 1, 9, 5*3,
> A_ADVANCED, 2, 8, 40, 2, -1, 0,F_FIELDUNIT|F_CARRIER},
> {"Transport", "units/transport.xpm", SEA_MOVING, 50, 0, 3, 5*3,
> A_INDUSTRIALIZATION,2, 8, 30, 1, -1, 0,0},
>
> {"Cruise Missile", "units/cruise-msl.xpm", AIR_MOVING, 60, 18, 0, 12*3,
> A_ROCKETRY, 1, 0, 10, 3, -1, 1,F_FIELDUNIT | F_MISSILE | F_ONEATTACK},
>
> {"Nuclear", "units/nuke.xpm", AIR_MOVING, 160, 99, 0, 16*3,
> A_ROCKETRY, 1, 0, 10, 1, -1, 1,F_FIELDUNIT | F_ONEATTACK | F_MISSILE},
>
> {"Diplomat", "units/diplomat.xpm", LAND_MOVING, 30, 0, 0, 2*3,
> A_WRITING, 1, 0, 10, 1, U_SPY, 0,F_DIPLOMAT | F_IGZOC | F_NONMIL},
> {"Spy", "units/spy.xpm", LAND_MOVING, 30, 0, 0, 3*3,
> A_ESPIONAGE, 2, 0, 10, 1, -1, 0,F_DIPLOMAT | F_IGZOC | F_NONMIL},
>
> {"Caravan", "units/caravan.xpm", LAND_MOVING, 50, 0, 1, 1*3,
> A_TRADE, 1, 0, 10, 1, U_FREIGHT, 0,F_CARAVAN | F_IGZOC | F_NONMIL},
> {"Freight", "units/freight.xpm", LAND_MOVING, 50, 0, 1, 2*3,
> A_CORPORATION, 1, 0, 10, 1, -1, 0,F_CARAVAN | F_IGZOC | F_NONMIL},
>
> {"Explorer", "units/explorer.xpm", LAND_MOVING, 30, 0, 1, 1*3,
> A_SEAFARING, 1, 0, 10, 1, U_PARTISAN, 0,F_NONMIL | F_IGTER | F_IGZOC}
79a142,144
> /*
> * [1] Cavalry attack *is* *not* a normal horse attack.
> */
Index: common/unit.h
===================================================================
RCS file: /home/freeciv/CVS/freeciv/common/unit.h,v
retrieving revision 1.12
diff -r1.12 unit.h
153c153
< int graphics;
---
> char filename[MAX_LENGTH_NAME];
166a167,168
>
> struct Sprite* graphics;
Index: data/Makefile.am
===================================================================
RCS file: /home/freeciv/CVS/freeciv/data/Makefile.am,v
retrieving revision 1.1
diff -r1.1 Makefile.am
10,11c10,13
< treaty.xpm \
< units.xpm
---
> treaty.xpm
>
> SUBDIRS = units
>
Index: data/Makefile.in
===================================================================
RCS file: /home/freeciv/CVS/freeciv/data/Makefile.in,v
retrieving revision 1.5
diff -r1.5 Makefile.in
73,74c73,76
< treaty.xpm \
< units.xpm
---
> treaty.xpm
>
> SUBDIRS = units
>
85c87
< TAR = tar
---
> TAR = gtar
87c89
< all: Makefile $(DATA)
---
> all: all-recursive all-am
115a118,155
>
> # This directory's subdirectories are mostly independent; you can cd
> # into them and run `make' without going through this Makefile.
> # To change the values of `make' variables: instead of editing Makefiles,
> # (1) if the variable is set in `config.status', edit `config.status'
> # (which will cause the Makefiles to be regenerated when you run `make');
> # (2) otherwise, pass the desired values on the `make' command line.
>
> @SET_MAKE@
>
> all-recursive install-data-recursive install-exec-recursive \
> installdirs-recursive install-recursive uninstall-recursive \
> check-recursive installcheck-recursive info-recursive dvi-recursive:
> @set fnord $(MAKEFLAGS); amf=$$2; \
> list='$(SUBDIRS)'; for subdir in $$list; do \
> target=`echo $@ | sed s/-recursive//`; \
> echo "Making $$target in $$subdir"; \
> (cd $$subdir && $(MAKE) $$target) \
> || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
> done && test -z "$$fail"
>
> mostlyclean-recursive clean-recursive distclean-recursive \
> maintainer-clean-recursive:
> @set fnord $(MAKEFLAGS); amf=$$2; \
> rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \
> rev="$$subdir $$rev"; \
> done; \
> for subdir in $$rev; do \
> target=`echo $@ | sed s/-recursive//`; \
> echo "Making $$target in $$subdir"; \
> (cd $$subdir && $(MAKE) $$target) \
> || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
> done && test -z "$$fail"
> tags-recursive:
> list='$(SUBDIRS)'; for subdir in $$list; do \
> (cd $$subdir && $(MAKE) tags); \
> done
>
117d156
< TAGS:
118a158,182
> ID: $(HEADERS) $(SOURCES) $(LISP)
> here=`pwd` && cd $(srcdir) \
> && mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP)
>
> TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
> tags=; \
> here=`pwd`; \
> list='$(SUBDIRS)'; for subdir in $$list; do \
> test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
> done; \
> list='$(SOURCES) $(HEADERS)'; \
> unique=`for i in $$list; do echo $$i; done | \
> awk ' { files[$$0] = 1; } \
> END { for (i in files) print i; }'`; \
> test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
> || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o
> $$here/TAGS)
>
> mostlyclean-tags:
>
> clean-tags:
>
> distclean-tags:
> -rm -f TAGS ID
>
> maintainer-clean-tags:
136,141c200,219
< info:
< dvi:
< check: all
< $(MAKE)
< installcheck:
< install-exec:
---
> for subdir in $(SUBDIRS); do \
> test -d $(distdir)/$$subdir \
> || mkdir $(distdir)/$$subdir \
> || exit 1; \
> chmod 777 $(distdir)/$$subdir; \
> (cd $$subdir && $(MAKE) top_distdir=../$(top_distdir)
> distdir=../$(distdir)/$$subdir distdir) \
> || exit 1; \
> done
> info: info-recursive
> dvi: dvi-recursive
> check: all-am
> $(MAKE) check-recursive
> installcheck: installcheck-recursive
> all-am: Makefile $(DATA)
>
> install-data-am: install-pkgdataDATA
>
> uninstall-am: uninstall-pkgdataDATA
>
> install-exec: install-exec-recursive
144c222
< install-data: install-pkgdataDATA
---
> install-data: install-data-recursive install-data-am
147c225
< install: install-exec install-data all
---
> install: install-recursive install-data-am
150c228
< uninstall: uninstall-pkgdataDATA
---
> uninstall: uninstall-recursive uninstall-am
154c232
< installdirs:
---
> installdirs: installdirs-recursive
172c250,259
< mostlyclean: mostlyclean-generic
---
> mostlyclean-am: mostlyclean-tags mostlyclean-generic
>
> clean-am: clean-tags clean-generic mostlyclean-am
>
> distclean-am: distclean-tags distclean-generic clean-am
>
> maintainer-clean-am: maintainer-clean-tags maintainer-clean-generic \
> distclean-am
>
> mostlyclean: mostlyclean-recursive mostlyclean-am
174c261
< clean: clean-generic mostlyclean
---
> clean: clean-recursive clean-am
176c263
< distclean: distclean-generic clean
---
> distclean: distclean-recursive distclean-am
179c266
< maintainer-clean: maintainer-clean-generic distclean
---
> maintainer-clean: maintainer-clean-recursive maintainer-clean-am
183,186c270,280
< .PHONY: uninstall-pkgdataDATA install-pkgdataDATA tags distdir info dvi \
< installcheck install-exec install-data install uninstall all \
< installdirs mostlyclean-generic distclean-generic clean-generic \
< maintainer-clean-generic clean mostlyclean distclean maintainer-clean
---
> .PHONY: uninstall-pkgdataDATA install-pkgdataDATA install-data-recursive \
> uninstall-data-recursive install-exec-recursive \
> uninstall-exec-recursive installdirs-recursive uninstalldirs-recursive \
> all-recursive check-recursive installcheck-recursive info-recursive \
> dvi-recursive mostlyclean-recursive distclean-recursive clean-recursive \
> maintainer-clean-recursive tags tags-recursive mostlyclean-tags \
> distclean-tags clean-tags maintainer-clean-tags distdir info dvi \
> installcheck all-am install-data-am uninstall-am install-exec \
> install-data install uninstall all installdirs mostlyclean-generic \
> distclean-generic clean-generic maintainer-clean-generic clean \
> mostlyclean distclean maintainer-clean
-------end-------end-------end-------end-------end-------end-------
Here are the exploded unit bitmaps. It's a file I called
`freeciv-data-units.tar.gz', encoded with base64 (one of the MIME
encodings, by the way).
-------begin-----begin-----begin-----begin-----begin-----begin-----
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
-------end-------end-------end-------end-------end-------end-------
|
|