Import micropolis

Micropolis, Unix Version, (A.K.A. "S*mC*ty"). This game was released
for the Unix platform in or about 1990 and has been modified for
inclusion in the One Laptop Per Child program. Copyright (C) 1989 -
2007 Electronic Arts Inc.

This port is based on patches written by Michael Gernoth, located at
http://git.zerfleddert.de/cgi-bin/gitweb.cgi/micropolis

Help from kurt@ and ian@, tested by lots of people, thanks!

ok ian@, espie@
This commit is contained in:
deanna 2008-01-18 03:36:32 +00:00
parent c7949eb84b
commit 8d3d25317a
31 changed files with 1934 additions and 0 deletions

56
games/micropolis/Makefile Normal file
View File

@ -0,0 +1,56 @@
# $OpenBSD: Makefile,v 1.1.1.1 2008/01/18 03:36:32 deanna Exp $
COMMENT= city-building simulation
DISTNAME= micropolis-activity-source
WRKDIST= ${WRKDIR}/micropolis-activity
PKGNAME= micropolis-20080117
CATEGORIES= games
HOMEPAGE= http://www.donhopkins.com/home/micropolis/
MASTER_SITES= ${HOMEPAGE}
MAINTAINER= Deanna Phillips <deanna@openbsd.org>
EXTRACT_SUFX= .tgz
# GPL
PERMIT_PACKAGE_CDROM= Yes
PERMIT_PACKAGE_FTP= Yes
PERMIT_DISTFILES_CDROM= Yes
PERMIT_DISTFILES_FTP= Yes
USE_X11= Yes
RUN_DEPENDS= ::audio/esound
WANTLIB= c m X11 Xext Xpm
pre-configure:
@perl -pi -e s,%%PREFIX%%,${PREFIX}, ${WRKSRC}/Micropolis
@perl -pi -e s,%%PREFIX%%,${PREFIX}, ${WRKSRC}/res/micropolis.tcl
@perl -pi -e s,%%LOCALBASE%%,${LOCALBASE}, ${WRKSRC}/res/micropolis.tcl
@perl -pi -e s,%%X11BASE%%,${X11BASE},g ${WRKSRC}/src/sim/makefile
@perl -pi -e s,%%X11BASE%%,${X11BASE},g ${WRKSRC}/src/tclx/config.mk
@perl -pi -e s,%%X11BASE%%,${X11BASE},g ${WRKSRC}/src/tk/makefile
do-build:
@cd ${WRKSRC}/src && ${MAKE}
do-install:
@${INSTALL_DATA_DIR} ${PREFIX}/share/micropolis
@${INSTALL_DATA_DIR} ${PREFIX}/share/doc/micropolis
@cd ${WRKSRC} && \
find res -type d -exec ${INSTALL_DATA_DIR} ${PREFIX}/share/micropolis/{} \;
@cd ${WRKSRC} && \
find images -type d -exec ${INSTALL_DATA_DIR} ${PREFIX}/share/micropolis/{} \;
@cd ${WRKSRC} && \
find manual -type d -exec ${INSTALL_DATA_DIR} ${PREFIX}/share/doc/micropolis/{} \;
@cd ${WRKSRC} && \
find res -type f -exec ${INSTALL_DATA} {} ${PREFIX}/share/micropolis/{} \;
@cd ${WRKSRC} && \
find images -type f -exec ${INSTALL_DATA} {} ${PREFIX}/share/micropolis/{} \;
@cd ${WRKSRC} && \
find manual -type f -exec ${INSTALL_DATA} {} ${PREFIX}/share/doc/micropolis/{} \;
@${INSTALL_SCRIPT} ${WRKSRC}/Micropolis ${PREFIX}/bin/micropolis
@${INSTALL_PROGRAM} ${WRKSRC}/src/sim/sim ${PREFIX}/libexec/sim
.include <bsd.port.mk>

View File

@ -0,0 +1,5 @@
MD5 (micropolis-activity-source.tgz) = UKYkF83ua3we0zPXlPUQfQ==
RMD160 (micropolis-activity-source.tgz) = Cmg9hrGwsa50Or9EiCkwBa09qH0=
SHA1 (micropolis-activity-source.tgz) = /ltHvGPO5vF9GZdy2NDVCZbcrLs=
SHA256 (micropolis-activity-source.tgz) = Gzxy3DaAo0tfxadApvtc/AuHdVFNqKt7s7KWWyDU+Lw=
SIZE (micropolis-activity-source.tgz) = 7676438

View File

@ -0,0 +1,15 @@
$OpenBSD: patch-Micropolis,v 1.1.1.1 2008/01/18 03:36:32 deanna Exp $
--- Micropolis.orig Fri Nov 30 21:49:55 2007
+++ Micropolis Tue Jan 15 20:41:37 2008
@@ -1,7 +1,8 @@
-#!/bin/bash
-export SIMHOME=`pwd`
+#!/bin/sh
+export SIMHOME=%%PREFIX%%/share/micropolis
echo "Starting Micropolis in $SIMHOME ... "
-res/sim $*
+cd $SIMHOME
+%%PREFIX%%/libexec/sim -w $@
#
# Micropolis, Unix Version. This game was released for the Unix platform

View File

@ -0,0 +1,76 @@
$OpenBSD: patch-res_micropolis_tcl,v 1.1.1.1 2008/01/18 03:36:32 deanna Exp $
--- res/micropolis.tcl.orig Thu Dec 6 17:49:20 2007
+++ res/micropolis.tcl Tue Jan 15 20:53:58 2008
@@ -125,7 +125,8 @@ set ServerName "servername"
set RealName "realname"
set ChannelName "#Micropolis"
set HomeDir ""
-set ResourceDir ""
+set ResourceDir "%%PREFIX%%/share/micropolis/res/"
+set Prefix "%%LOCALBASE%%/bin"
set HostName ""
set LocalHostName "[exec hostname]"
set SaveCityWin ""
@@ -412,8 +413,8 @@ sim ResetDynamic
# the font in res (because it's already in the system fonts). These lines
# are for other systems that lack the font.
set FontPath "[pwd]/res/dejavu-lgc"
-system "xset -fp $FontPath >&/dev/null"
-system "xset +fp $FontPath >&/dev/null"
+system "xset -fp $FontPath >/dev/null 2>&1"
+system "xset +fp $FontPath >/dev/null 2>&1"
########################################################################
@@ -885,6 +886,12 @@ proc MakeWindow.frob {head {display ":0"}} {
proc UIInitializeSound {} {
+ global Prefix
+ set i [system "pgrep -x esd > /dev/null"]
+ if {$i == 1} {
+ echo "starting esd"
+ system "$Prefix/esd &"
+ }
}
@@ -939,8 +946,11 @@ proc UISetChannelVolume {win chan vol} {
proc EchoPlaySound {soundspec} {
# Temporary workaround to tell Python Sugar app to play sound.
global Sound
+ global Prefix
if {$Sound} {
- echo PlaySound [lindex $soundspec 0]
+ #echo PlaySound [lindex $soundspec 0]
+ signal ignore SIGCHLD
+ exec $Prefix/esdplay res/sounds/[string tolower [lindex $soundspec 0]].wav &
}
}
@@ -3099,8 +3109,10 @@ proc ShowSplashOf {head} {
proc WithdrawSplashOf {head} {
- set win WindowLink $head.splash]
- wm withdraw $win
+ set win [WindowLink $head.splash]
+ if {$win != {}} {
+ wm withdraw $win
+ }
}
@@ -3150,8 +3162,10 @@ proc ShowScenarioOf {head} {
proc WithdrawScenarioOf {head} {
- set win WindowLink $head.scenario]
- wm withdraw $win
+ set win [WindowLink $head.scenario]
+ if {$win != {}} {
+ wm withdraw $win
+ }
}

View File

@ -0,0 +1,72 @@
$OpenBSD: patch-res_whead_tcl,v 1.1.1.1 2008/01/18 03:36:32 deanna Exp $
--- res/whead.tcl.orig Fri Nov 30 21:49:55 2007
+++ res/whead.tcl Tue Jan 15 20:28:31 2008
@@ -78,11 +78,20 @@ global NoticePanelHeight
set visual [winfo screenvisual $win]
set depth [winfo screendepth $win]
-#set screenwidth [winfo screenwidth $win]
-#set screenheight [winfo screenheight $win]
-set screenwidth 1200
-set screenheight 900
+set screenwidth [winfo screenwidth $win]
+set screenheight [winfo screenheight $win]
+set initialwidth 1200
+set initialheight 900
+if {$screenwidth < $initialwidth} {
+ set initialwidth $screenwidth
+}
+
+if {$screenheight < $initialheight} {
+ set initialheight $screenheight
+}
+
+
if {!(("$visual" == "pseudocolor") ||
("$visual" == "truecolor") ||
(("$visual" == "staticgray") &&
@@ -116,11 +125,11 @@ bind $win <Mod2-Key> {tk_traverseToMenu %W %A}
wm title $win "Micropolis Controls"
wm iconname $win {Micropolis Controls}
-wm geometry $win 1200x900+0+0
+wm geometry $win ${initialwidth}x${initialheight}+0+0
#wm positionfrom $win user
wm withdraw $win
-#wm maxsize $win $screenwidth $screenheight
-#wm minsize $win 100 100
+wm maxsize $win $screenwidth $screenheight
+wm minsize $win 100 100
wm protocol $win delete "DeleteHeadWindow $win ;"
wm fullscreen $win on
@@ -656,7 +665,7 @@ place configure $win.col1\
-x 0\
-y 0\
-width $HeadPanelWidth\
- -height $screenheight
+ -relheight 1.0
pack append $win.col1\
$win.col1.w1 {top frame nw fillx} \
@@ -684,8 +693,17 @@ pack append $win.col1\
place configure $win.col2\
-x [expr "$HeadPanelWidth + 5"]\
-y 0\
- -width [expr "($screenwidth - $HeadPanelWidth) - 5"]\
- -height $screenheight
+ -relheight 1.0\
+ -width [expr "($screenwidth - $HeadPanelWidth) - 5"]
+
+proc resizeeditor {win width} {
+ global HeadPanelWidth
+
+ place configure $win.col2\
+ -width [expr "($width - $HeadPanelWidth) - 5"]
+}
+
+bind $win <Configure> "resizeeditor $win %w"
#pack append $win.col2\
# $win.col2.x1 {top frame nw fillx} \

View File

@ -0,0 +1,29 @@
$OpenBSD: patch-src_sim_g_bigmap_c,v 1.1.1.1 2008/01/18 03:36:32 deanna Exp $
--- src/sim/g_bigmap.c.orig Fri Nov 30 21:49:55 2007
+++ src/sim/g_bigmap.c Tue Jan 15 20:28:31 2008
@@ -169,6 +169,15 @@ MemDrawBeegMapRect(SimView *view, int x, int y, int w,
#define ROW8_16(n) ROW4_16(n) ROW4_16(n+4)
#define ROW16_16() ROW8_16(0) ROW8_16(8)
+#define ROW1_32(n) \
+ memcpy((char *)image, (char *)mem + (4 * 16 * (n)), 4 * 16); \
+ image = (unsigned QUAD *)(((unsigned char *)image) + lineBytes);
+
+#define ROW2_32(n) ROW1_32(n) ROW1_32(n+1)
+#define ROW4_32(n) ROW2_32(n) ROW2_32(n+2)
+#define ROW8_32(n) ROW4_32(n) ROW4_32(n+4)
+#define ROW16_32() ROW8_32(0) ROW8_32(8)
+
switch (view->x->depth) {
case 8:
@@ -182,6 +191,9 @@ MemDrawBeegMapRect(SimView *view, int x, int y, int w,
case 24:
case 32:
+ ROW16_32();
+ break;
+
default:
/* XXX: handle different depths */
break;

View File

@ -0,0 +1,70 @@
$OpenBSD: patch-src_sim_g_cam_c,v 1.1.1.1 2008/01/18 03:36:32 deanna Exp $
--- src/sim/g_cam.c.orig Fri Nov 30 21:49:55 2007
+++ src/sim/g_cam.c Tue Jan 15 20:28:31 2008
@@ -1083,39 +1083,45 @@ cam_load_rule(Cam *cam, char *filename)
FILE *fp;
QUAD magic, neighborhood, rule_size;
Byte *rule;
+ int test = 1;
if ((fp = fopen(filename, "r")) == NULL) {
fprintf(stderr, "cam: Can't open rule file \"%s\"\n", filename);
return;
}
-/* XXX: Make this byte order independent!!! */
-#if defined(MSDOS) || defined(OSF1) || defined(IS_INTEL)
-
#define SWAPQUAD(x) ((x = ((x <<24) & 0xff000000) | \
((x <<8) & 0x00ff0000) | \
((x >>8) & 0x0000ff00) | \
((x >>24) & 0x000000ff)), 0)
-#else
-
-#define SWAPQUAD(x) 0
-
-#endif
-
- if ((fread(&magic, 1, sizeof(QUAD), fp) != sizeof(QUAD)) ||
- SWAPQUAD(magic) ||
- (magic != 0xcac0cac0) ||
- (fread(&neighborhood, 1, sizeof(QUAD), fp) != sizeof(QUAD)) ||
- SWAPQUAD(neighborhood) ||
- (fread(&rule_size, 1, sizeof(QUAD), fp) != sizeof(QUAD)) ||
- SWAPQUAD(rule_size) ||
- ((rule = (Byte *)malloc(rule_size)) == NULL) ||
- (fread(rule, 1, rule_size, fp) != rule_size)) {
- fprintf(stderr, "cam: Bad rule file \"%s\"\n", filename);
- fclose(fp);
- return;
+/* XXX: Make this byte order independent!!! */
+ if ((*(unsigned char*) (&test))) {
+ if ((fread(&magic, 1, sizeof(QUAD), fp) != sizeof(QUAD)) ||
+ SWAPQUAD(magic) ||
+ (magic != 0xcac0cac0) ||
+ (fread(&neighborhood, 1, sizeof(QUAD), fp) != sizeof(QUAD)) ||
+ SWAPQUAD(neighborhood) ||
+ (fread(&rule_size, 1, sizeof(QUAD), fp) != sizeof(QUAD)) ||
+ SWAPQUAD(rule_size) ||
+ ((rule = (Byte *)malloc(rule_size)) == NULL) ||
+ (fread(rule, 1, rule_size, fp) != rule_size)) {
+ fprintf(stderr, "cam: Bad rule file \"%s\"\n", filename);
+ fclose(fp);
+ return;
+ }
+ } else {
+ if ((fread(&magic, 1, sizeof(QUAD), fp) != sizeof(QUAD)) ||
+ (magic != 0xcac0cac0) ||
+ (fread(&neighborhood, 1, sizeof(QUAD), fp) != sizeof(QUAD)) ||
+ (fread(&rule_size, 1, sizeof(QUAD), fp) != sizeof(QUAD)) ||
+ ((rule = (Byte *)malloc(rule_size)) == NULL) ||
+ (fread(rule, 1, rule_size, fp) != rule_size)) {
+ fprintf(stderr, "cam: Bad rule file \"%s\"\n", filename);
+ fclose(fp);
+ return;
+ }
}
fclose(fp);

View File

@ -0,0 +1,143 @@
$OpenBSD: patch-src_sim_g_map_c,v 1.1.1.1 2008/01/18 03:36:32 deanna Exp $
--- src/sim/g_map.c.orig Fri Nov 30 21:49:55 2007
+++ src/sim/g_map.c Tue Jan 15 20:28:31 2008
@@ -406,25 +406,15 @@ drawRect(SimView *view, int pixel, int solid,
unsigned char *image =
&data[(line * y) + (x * pixelBytes)];
- if (solid) {
- for (i = h; i > 0; i--) {
- for (j = w; j > 0; j--) {
+ for (i = h; i > 0; i--) {
+ for (j = w; j > 0; j--) {
+ if (solid || stipple++ & 1)
*image = pixel;
- image++;
- }
- image += line - w;
+ image++;
}
- } else {
- for (i = h; i > 0; i--) {
- for (j = w; j > 0; j--) {
- if (stipple++ & 1)
- *image = pixel;
- image++;
- }
- if (!(w & 1))
- stipple++;
- image += line - w;
- }
+ if (!(w & 1))
+ stipple++;
+ image += line - w;
}
}
break;
@@ -438,26 +428,22 @@ drawRect(SimView *view, int pixel, int solid,
image =
&data[(line * y) + x];
- if (solid) {
- for (i = h; i > 0; i--) {
- for (j = w; j > 0; j--) {
- *image = pixel;
- image++;
+ for (i = h; i > 0; i--) {
+ for (j = w; j > 0; j--) {
+ if (solid || stipple++ & 1) {
+ if (view->x->x_big_endian) {
+ *image = ((pixel & 0xff) << 8) | ((pixel & 0xff00) >> 8);
+ } else {
+ *image = pixel;
+ }
}
- image += line - w;
+ image++;
}
- } else {
- for (i = h; i > 0; i--) {
- for (j = w; j > 0; j--) {
- if (stipple++ & 1)
- *image = pixel;
- image++;
- }
- if (!(w & 1))
- stipple++;
- image += line - w;
- }
+ if (!(w & 1))
+ stipple++;
+ image += line - w;
}
+
}
break;
@@ -467,41 +453,39 @@ drawRect(SimView *view, int pixel, int solid,
unsigned char *data =
(unsigned char *)view->data;
unsigned char *image;
- int bitmapPad = view->x->small_tile_image->bitmap_pad;
- int rowBytes = view->x->small_tile_image->bytes_per_line;
- line = rowBytes >> 1; /* Convert from byte offset to short offset */
image =
- &data[(line * y) + x];
+ &data[(line * y) + x * pixelBytes];
- if (solid) {
- for (i = h; i > 0; i--) {
- for (j = w; j > 0; j--) {
- *(image++) = (pixel >> 0) & 0xff;
- *(image++) = (pixel >> 8) & 0xff;
- *(image++) = (pixel >> 16) & 0xff;
- if (bitmapPad == 32) {
+ for (i = h; i > 0; i--) {
+ for (j = w; j > 0; j--) {
+ if (view->x->x_big_endian) {
+ if (pixelBytes == 4) {
image++;
}
- }
- image += line - w;
- }
- } else {
- for (i = h; i > 0; i--) {
- for (j = w; j > 0; j--) {
+ if (solid || stipple++ & 1) {
+ *(image++) = (pixel >> 16) & 0xff;
+ *(image++) = (pixel >> 8) & 0xff;
+ *(image++) = (pixel >> 0) & 0xff;
+ } else {
+ image += 3;
+ }
+ } else {
if (stipple++ & 1) {
- *(image++) = (pixel >> 0) & 0xff;
- *(image++) = (pixel >> 8) & 0xff;
- *(image++) = (pixel >> 16) & 0xff;
- if (bitmapPad == 32) {
- image++;
- }
+ *(image++) = (pixel >> 0) & 0xff;
+ *(image++) = (pixel >> 8) & 0xff;
+ *(image++) = (pixel >> 16) & 0xff;
+ } else {
+ image += 3;
}
+ if (pixelBytes == 4) {
+ image++;
+ }
}
- if (!(w & 1)) {
- stipple++;
- }
- image += line - w;
}
+ if (!(w & 1)) {
+ stipple++;
+ }
+ image += line - w * pixelBytes;
}
}
break;

View File

@ -0,0 +1,98 @@
$OpenBSD: patch-src_sim_g_smmaps_c,v 1.1.1.1 2008/01/18 03:36:32 deanna Exp $
--- src/sim/g_smmaps.c.orig Fri Nov 30 21:49:55 2007
+++ src/sim/g_smmaps.c Tue Jan 15 20:28:31 2008
@@ -84,64 +84,68 @@ int DynamicData[32];
if (tile >= TILE_COUNT) tile -= TILE_COUNT;
-#if defined(MSDOS) || defined(OSF1) || defined(IS_INTEL)
-
-#define ROW1_8(n) \
+#define LE_ROW1_8(n) \
l = mem[n]; \
image[0] = l; \
image[1] = l >>8; \
image[2] = l >>16; \
image += lineBytes;
-#define ROW1_16(n) \
+#define LE_ROW1_16(n) \
memcpy((char *)image, ((char *)mem) + (n * 4 * 2), (3 * 2)); \
image += lineBytes;
-#define ROW1_24(n) \
+#define LE_ROW1_24(n) \
memcpy((char *)image, ((char *)mem) + (n * 4 * 3), (3 * 3)); \
image += lineBytes;
-#define ROW1_32(n) \
+#define LE_ROW1_32(n) \
memcpy((char *)image, ((char *)mem) + (n * 4 * 4), (3 * 4)); \
image += lineBytes;
-#else
-
-#define ROW1_8(n) \
+#define BE_ROW1_8(n) \
l = mem[n]; \
image[0] = l >>24; \
image[1] = l >>16; \
image[2] = l >>8; \
image += lineBytes;
-#define ROW1_16(n) \
+#define BE_ROW1_16(n) \
l = mem[n]; /* XXX: WRONG. handle depth */ \
image[0] = l >>24; \
image[1] = l >>16; \
image[2] = l >>8; \
image += lineBytes;
-#define ROW1_24(n) \
+#define BE_ROW1_24(n) \
l = mem[n]; /* XXX: WRONG. handle depth */ \
image[0] = l >>24; \
image[1] = l >>16; \
image[2] = l >>8; \
image += lineBytes;
-#define ROW1_32(n) \
+#define BE_ROW1_32(n) \
l = mem[n]; /* XXX: WRONG. handle depth */ \
image[0] = l >>24; \
image[1] = l >>16; \
image[2] = l >>8; \
image += lineBytes;
-#endif
+#define LE_ROW3_8 LE_ROW1_8(0) LE_ROW1_8(1) LE_ROW1_8(2)
+#define LE_ROW3_16 LE_ROW1_16(0) LE_ROW1_16(1) LE_ROW1_16(2)
+#define LE_ROW3_24 LE_ROW1_24(0) LE_ROW1_24(1) LE_ROW1_24(2)
+#define LE_ROW3_32 LE_ROW1_32(0) LE_ROW1_32(1) LE_ROW1_32(2)
-#define ROW3_8 ROW1_8(0) ROW1_8(1) ROW1_8(2)
-#define ROW3_16 ROW1_16(0) ROW1_16(1) ROW1_16(2)
-#define ROW3_24 ROW1_24(0) ROW1_24(1) ROW1_24(2)
-#define ROW3_32 ROW1_32(0) ROW1_32(1) ROW1_32(2)
+#define BE_ROW3_8 BE_ROW1_8(0) BE_ROW1_8(1) BE_ROW1_8(2)
+#define BE_ROW3_16 BE_ROW1_16(0) BE_ROW1_16(1) BE_ROW1_16(2)
+#define BE_ROW3_24 BE_ROW1_24(0) BE_ROW1_24(1) BE_ROW1_24(2)
+#define BE_ROW3_32 BE_ROW1_32(0) BE_ROW1_32(1) BE_ROW1_32(2)
+#define ROW3_8 if (view->x->needs_swap) { BE_ROW3_8 } else { LE_ROW3_8 }
+#define ROW3_16 LE_ROW3_16
+#define ROW3_24 LE_ROW3_24
+#define ROW3_32 LE_ROW3_32
+
#define ROW3 \
switch (view->x->depth) { \
case 1: \
@@ -153,8 +157,6 @@ int DynamicData[32];
ROW3_16 \
break; \
case 24: \
- ROW3_24 \
- break; \
case 32: \
ROW3_32 \
break; \

View File

@ -0,0 +1,23 @@
$OpenBSD: patch-src_sim_headers_sim_h,v 1.1.1.1 2008/01/18 03:36:32 deanna Exp $
--- src/sim/headers/sim.h.orig Sat Jan 12 15:15:46 2008
+++ src/sim/headers/sim.h Sat Jan 12 15:17:14 2008
@@ -91,7 +91,9 @@
#include <assert.h>
#include <ctype.h>
#include <setjmp.h>
+#ifndef __OpenBSD__
#include <malloc.h>
+#endif
#include <errno.h>
#include <signal.h>
#include <math.h>
@@ -104,7 +106,9 @@
#include <sys/resource.h>
#ifndef MSDOS
#ifndef HPUX
+#ifndef __OpenBSD__
#include <alloca.h>
+#endif
#endif
#include <sys/mman.h>
#include <netinet/in.h>

View File

@ -0,0 +1,12 @@
$OpenBSD: patch-src_sim_headers_view_h,v 1.1.1.1 2008/01/18 03:36:32 deanna Exp $
--- src/sim/headers/view.h.orig Fri Nov 30 21:49:55 2007
+++ src/sim/headers/view.h Tue Jan 15 20:28:31 2008
@@ -113,6 +113,8 @@ typedef struct XDisplay {
Pixmap vert_stipple;
Pixmap horiz_stipple;
Pixmap diag_stipple;
+ int needs_swap;
+ int x_big_endian;
} XDisplay;

View File

@ -0,0 +1,53 @@
$OpenBSD: patch-src_sim_makefile,v 1.1.1.1 2008/01/18 03:36:32 deanna Exp $
--- src/sim/makefile.orig Fri Nov 30 21:49:55 2007
+++ src/sim/makefile Sun Jan 13 11:20:13 2008
@@ -1,28 +1,24 @@
-XINCLUDE = /usr/include/X11
+XINCLUDE = %%X11BASE%%/include
+XLIBS = %%X11BASE%%/lib
TCLHOME = ../tcl
TKHOME = ../tk
TCLXHOME = ../tclx
TCLLIBRARY = /usr/local/lib/tcl
TKLIBRARY = /usr/local/lib/tk
-CC = gcc
-
OPTFLAGS = -O3
#OPTFLAGS = -g
#DEFINES = -DIS_LINUX -DIS_INTEL -DCAM -DNET
DEFINES = -DIS_LINUX -DIS_INTEL
-
-CFLAGS = $(OPTFLAGS) $(DEFINES)
-
+CFLAGS+= $(DEFINES)
#LDFLAGS = -Bstatic
INSTALL = install -s
INCLUDES = \
- -Iheaders \
- -I$(XPMHOME) \
-I$(XINCLUDE) \
+ -Iheaders \
-I$(TCLHOME) \
-I$(TCLXHOME)/src \
-I$(TKHOME)
@@ -31,6 +27,7 @@ CPPFLAGS = $(INCLUDES)
LIBS = $(TCLXHOME)/libtk.a \
$(TCLXHOME)/libtcl.a \
+ -L$(XLIBS) \
-lm \
-lX11 \
-lXext \
@@ -97,7 +94,7 @@ lint:
alint $(INCLUDES) $(SRCS) > LINT
sim: $(ALLOBJS)
- $(CC) $(CFLAGS) $(LDFLAGS) $(INCLUDES) $(ALLOBJS) $(LIBS) -o sim
+ $(CC) ${DEFINES} $(CFLAGS) $(LDFLAGS) $(INCLUDES) $(ALLOBJS) $(LIBS) -o sim
clean:
rm -f $(OBJS) \

View File

@ -0,0 +1,59 @@
$OpenBSD: patch-src_sim_s_fileio_c,v 1.1.1.1 2008/01/18 03:36:32 deanna Exp $
--- src/sim/s_fileio.c.orig Fri Nov 30 21:49:55 2007
+++ src/sim/s_fileio.c Tue Jan 15 20:28:31 2008
@@ -62,17 +62,19 @@
#include "sim.h"
-#if defined(MSDOS) || defined(OSF1) || defined(IS_INTEL)
-
#define SWAP_SHORTS(a,b) _swap_shorts(a,b)
#define SWAP_LONGS(a,b) _swap_longs(a,b)
#define HALF_SWAP_LONGS(a,b) _half_swap_longs(a,b)
+#define NOOP_ON_BE { int test = 1; if (!(*(unsigned char*) (&test))) return; }
+
static void
_swap_shorts(short *buf, int len)
{
int i;
+ NOOP_ON_BE;
+
/* Flip bytes in each short! */
for (i = 0; i < len; i++) {
*buf = ((*buf & 0xFF) <<8) | ((*buf &0xFF00) >>8);
@@ -85,6 +87,8 @@ _swap_longs(long *buf, int len)
{
int i;
+ NOOP_ON_BE;
+
/* Flip bytes in each long! */
for (i = 0; i < len; i++) {
long l = *buf;
@@ -102,6 +106,8 @@ _half_swap_longs(long *buf, int len)
{
int i;
+ NOOP_ON_BE
+
/* Flip bytes in each long! */
for (i = 0; i < len; i++) {
long l = *buf;
@@ -111,15 +117,6 @@ _half_swap_longs(long *buf, int len)
buf++;
}
}
-
-#else
-
-#define SWAP_SHORTS(a, b)
-#define SWAP_LONGS(a, b)
-#define HALF_SWAP_LONGS(a, b)
-
-#endif
-
static int
_load_short(short *buf, int len, FILE *f)

View File

@ -0,0 +1,12 @@
$OpenBSD: patch-src_sim_w_resrc_c,v 1.1.1.1 2008/01/18 03:36:32 deanna Exp $
--- src/sim/w_resrc.c.orig Fri Nov 30 21:49:55 2007
+++ src/sim/w_resrc.c Tue Jan 15 20:28:31 2008
@@ -71,7 +71,7 @@
#endif
-char *HomeDir, *ResourceDir, *KeyDir, *HostName;
+char *HomeDir, *ResourceDir, *KeyDir, *HostName = "";
struct Resource *Resources = NULL;

View File

@ -0,0 +1,12 @@
$OpenBSD: patch-src_sim_w_tk_c,v 1.1.1.1 2008/01/18 03:36:32 deanna Exp $
--- src/sim/w_tk.c.orig Fri Nov 30 21:49:55 2007
+++ src/sim/w_tk.c Mon Jan 14 21:31:31 2008
@@ -819,7 +819,7 @@ tk_main()
Tk_MainLoop();
- sim_exit(0); // Just sets tkMustExit and ExitReturn
+ sim_really_exit(0);
bail:

View File

@ -0,0 +1,88 @@
$OpenBSD: patch-src_sim_w_x_c,v 1.1.1.1 2008/01/18 03:36:32 deanna Exp $
--- src/sim/w_x.c.orig Fri Nov 30 21:49:55 2007
+++ src/sim/w_x.c Tue Jan 15 20:28:31 2008
@@ -327,28 +327,43 @@ FindXDisplay(Tk_Window tkwin)
color->pixel; \
break; \
case 15: \
+ if (xd->visual->red_mask == 0x7c00) { \
xd->pixels[i] = \
(((color->red >> (8 + 3)) & 0x1f) << (5 + 5)) | \
(((color->green >> (8 + 2)) & 0x1f) << (5)) | \
(((color->blue >> (8 + 3)) & 0x1f) << (0)); \
+ } else { \
+ (((color->blue >> (8 + 3)) & 0x1f) << (5 + 5)) | \
+ (((color->green >> (8 + 2)) & 0x1f) << (5)) | \
+ (((color->red >> (8 + 3)) & 0x1f) << (0)); \
+ } \
break; \
case 16: \
+ if (xd->visual->red_mask == 0xf800) { \
xd->pixels[i] = \
(((color->red >> (8 + 3)) & 0x1f) << (6 + 5)) | \
(((color->green >> (8 + 2)) & 0x3f) << (5)) | \
(((color->blue >> (8 + 3)) & 0x1f) << (0)); \
+ } else { \
+ xd->pixels[i] = \
+ (((color->blue >> (8 + 3)) & 0x1f) << (6 + 5)) | \
+ (((color->green >> (8 + 2)) & 0x3f) << (5)) | \
+ (((color->red >> (8 + 3)) & 0x1f) << (0)); \
+ } \
break; \
case 24: \
+ case 32: \
+ if (xd->visual->red_mask == 0xff0000) { \
xd->pixels[i] = \
((color->red & 0xff) << 16) | \
((color->green & 0xff) << 8) | \
((color->blue & 0xff) << 0); \
- break; \
- case 32: \
+ } else { \
xd->pixels[i] = \
- ((color->red & 0xff) << 16) | \
+ ((color->blue & 0xff) << 16) | \
((color->green & 0xff) << 8) | \
- ((color->blue & 0xff) << 0); \
+ ((color->red & 0xff) << 0); \
+ } \
break; \
} \
} \
@@ -488,6 +503,7 @@ SimView *
InitNewView(SimView *view, char *title, int class, int w, int h)
{
int type, i;
+ int test = 1;
int d = 8;
unsigned long valuemask = 0;
char *t;
@@ -582,6 +598,10 @@ InitNewView(SimView *view, char *title, int class, int
view->type = X_Mem_View;
}
+ view->x->needs_swap = !(*(unsigned char*) (&test));
+ view->x->x_big_endian = (ImageByteOrder(view->x->dpy) == MSBFirst);
+
+
GetPixmaps(view->x);
view->pixels = view->x->pixels;
@@ -1138,7 +1158,7 @@ DoResizeView(SimView *view, int w, int h)
view->pixel_bytes = 2;
view->depth = 15;
bitmap_pad = 16;
- bitmap_depth = 16;
+ bitmap_depth = 15;
view->line_bytes8 =
((view->m_width * view->pixel_bytes) + 3) & (~3);
break;
@@ -1156,7 +1176,7 @@ DoResizeView(SimView *view, int w, int h)
view->pixel_bytes = 4;
//view->pixel_bytes = 3;
view->depth = 24;
- bitmap_depth = 32;
+ bitmap_depth = 24;
bitmap_pad = 32;
view->line_bytes8 =
((view->m_width * 4) + 3) & (~3);

View File

@ -0,0 +1,15 @@
$OpenBSD: patch-src_tcl_makefile,v 1.1.1.1 2008/01/18 03:36:32 deanna Exp $
--- src/tcl/makefile.orig Fri Nov 30 21:49:55 2007
+++ src/tcl/makefile Sun Jan 13 11:45:22 2008
@@ -24,9 +24,8 @@
TCL_LIBRARY = /usr/local/lib/tcl
-CC = gcc
-
-CFLAGS = -O3 -I. -DTCL_LIBRARY=\"${TCL_LIBRARY}\" -DIS_LINUX
+EXTRA_CFLAGS = -I. -DTCL_LIBRARY=\"${TCL_LIBRARY}\" -DIS_LINUX
+CFLAGS += $(EXTRA_CFLAGS)
#CFLAGS = -g -I. -DTCL_LIBRARY=\"${TCL_LIBRARY}\" -DIS_LINUX
GENERIC_OBJS = \

View File

@ -0,0 +1,111 @@
$OpenBSD: patch-src_tcl_tclenv_c,v 1.1.1.1 2008/01/18 03:36:32 deanna Exp $
--- src/tcl/tclenv.c.orig Fri Nov 30 21:49:55 2007
+++ src/tcl/tclenv.c Tue Jan 15 20:28:31 2008
@@ -1,7 +1,7 @@
/*
* tclEnv.c --
*
- * Tcl support for environment variables, including a setenv
+ * Tcl support for environment variables, including a setenv_tcl
* procedure.
*
* Copyright 1991 Regents of the University of California
@@ -57,13 +57,8 @@ static char * EnvTraceProc _ANSI_ARGS_((ClientData cl
int flags));
static int FindVariable _ANSI_ARGS_((char *name, int *lengthPtr));
-#ifdef IS_LINUX
-int setenv _ANSI_ARGS_((const char *name, const char *value, int replace));
-int unsetenv _ANSI_ARGS_((const char *name));
-#else
-void setenv _ANSI_ARGS_((char *name, char *value));
-void unsetenv _ANSI_ARGS_((char *name));
-#endif
+void setenv_tcl _ANSI_ARGS_((char *name, char *value));
+int unsetenv_tcl _ANSI_ARGS_((char *name));
/*
@@ -188,7 +183,7 @@ FindVariable(name, lengthPtr)
/*
*----------------------------------------------------------------------
*
- * setenv --
+ * setenv_tcl --
*
* Set an environment variable, replacing an existing value
* or creating a new variable if there doesn't exist a variable
@@ -204,20 +199,11 @@ FindVariable(name, lengthPtr)
*----------------------------------------------------------------------
*/
-#ifdef IS_LINUX
-int
-setenv(name, value, replace)
- const char *name; /* Name of variable whose value is to be
- * set. */
- const char *value; /* New value for variable. */
- int replace;
-#else
void
-setenv(name, value)
+setenv_tcl(name, value)
char *name; /* Name of variable whose value is to be
* set. */
char *value; /* New value for variable. */
-#endif
{
int index, length, nameLength;
char *p;
@@ -272,17 +258,12 @@ setenv(name, value)
for (eiPtr= firstInterpPtr; eiPtr != NULL; eiPtr = eiPtr->nextPtr) {
(void) Tcl_SetVar2(eiPtr->interp, "env", (char *)name, p+1, TCL_GLOBAL_ONLY);
}
-
-#ifdef IS_LINUX
- return 0;
-#endif
-
}
/*
*----------------------------------------------------------------------
*
- * unsetenv --
+ * unsetenv_tcl --
*
* Remove an environment variable, updating the "env" arrays
* in all interpreters managed by us.
@@ -297,12 +278,8 @@ setenv(name, value)
*/
int
-unsetenv(name)
-#ifdef IS_LINUX
- const char *name; /* Name of variable to remove. */
-#else
+unsetenv_tcl(name)
char *name; /* Name of variable to remove. */
-#endif
{
int index, dummy;
char **envPtr;
@@ -402,15 +379,15 @@ EnvTraceProc(clientData, interp, name1, name2, flags)
}
/*
- * If a value is being set, call setenv to do all of the work.
+ * If a value is being set, call setenv_tcl to do all of the work.
*/
if (flags & TCL_TRACE_WRITES) {
- setenv(name2, Tcl_GetVar2(interp, "env", name2, TCL_GLOBAL_ONLY), 0);
+ setenv_tcl(name2, Tcl_GetVar2(interp, "env", name2, TCL_GLOBAL_ONLY));
}
if (flags & TCL_TRACE_UNSETS) {
- unsetenv(name2);
+ unsetenv_tcl(name2);
}
return NULL;
}

View File

@ -0,0 +1,12 @@
$OpenBSD: patch-src_tcl_tclunix_h,v 1.1.1.1 2008/01/18 03:36:32 deanna Exp $
--- src/tcl/tclunix.h.orig Fri Nov 30 21:49:55 2007
+++ src/tcl/tclunix.h Tue Jan 15 20:28:31 2008
@@ -101,7 +101,7 @@
*/
extern int errno;
-extern int sys_nerr;
+//extern int sys_nerr;
//#ifndef IS_LINUX
//extern char *sys_errlist[];
//#endif

View File

@ -0,0 +1,25 @@
$OpenBSD: patch-src_tclx_config_mk,v 1.1.1.1 2008/01/18 03:36:32 deanna Exp $
--- src/tclx/config.mk.orig Fri Nov 30 21:49:55 2007
+++ src/tclx/config.mk Sun Jan 13 10:30:56 2008
@@ -60,9 +60,7 @@ XPM_LIBS=-L/usr/X11R6/lib -lXpm
# profiling is enabled, the DO_STRIPPING option below must be disabled.
#
-CC=gcc
-
-OPTIMIZE_FLAG=-O3 -DIS_LINUX
+OPTIMIZE_FLAG=-DIS_LINUX
#OPTIMIZE_FLAG=-g -DIS_LINUX
#------------------------------------------------------------------------------
@@ -78,8 +76,8 @@ DO_STRIPPING=false
# compiler and linker. Also the yacc program you wish to use.
#
AR=ar
-XCFLAGS=
-XLDFLAGS=
+XCFLAGS= -I%%X11BASE%%/include
+XLDFLAGS= -L%%X11BASE/lib
YACC=yacc
#YACC=bison -b y

View File

@ -0,0 +1,12 @@
$OpenBSD: patch-src_tclx_ossupp_makefile,v 1.1.1.1 2008/01/18 03:36:32 deanna Exp $
--- src/tclx/ossupp/makefile.orig Fri Nov 30 21:49:55 2007
+++ src/tclx/ossupp/makefile Tue Jan 15 20:28:31 2008
@@ -30,7 +30,7 @@ CFLAGS=$(OPTIMIZE_FLAG) $(XCFLAGS) -I../$(TCL_UCB_DIR)
all: made.tmp
made.tmp: $(SUPPORT_OBJS)
- $(AR) cr ../libtcl.a $(SUPPORT_OBJS)
+ #$(AR) cr ../libtcl.a $(SUPPORT_OBJS)
touch made.tmp
#------------------------------------------------------------------------------

View File

@ -0,0 +1,122 @@
$OpenBSD: patch-src_tclx_src_tclxgdat_y,v 1.1.1.1 2008/01/18 03:36:32 deanna Exp $
--- src/tclx/src/tclxgdat.y.orig Fri Nov 30 21:49:55 2007
+++ src/tclx/src/tclxgdat.y Tue Jan 15 20:28:31 2008
@@ -64,78 +64,78 @@
timedate: /* empty */
| timedate item;
-item: tspec =
+item: tspec
{timeflag++;}
- | zone =
+ | zone
{zoneflag++;}
- | dtspec =
+ | dtspec
{dateflag++;}
- | dyspec =
+ | dyspec
{dayflag++;}
- | rspec =
+ | rspec
{relflag++;}
| nspec;
-nspec: NUMBER =
+nspec: NUMBER
{if (timeflag && dateflag && !relflag) year = $1;
else {timeflag++;hh = $1/100;mm = $1%100;ss = 0;merid = 24;}};
-tspec: NUMBER MERIDIAN =
+tspec: NUMBER MERIDIAN
{hh = $1; mm = 0; ss = 0; merid = $2;}
- | NUMBER ':' NUMBER =
+ | NUMBER ':' NUMBER
{hh = $1; mm = $3; merid = 24;}
- | NUMBER ':' NUMBER MERIDIAN =
+ | NUMBER ':' NUMBER MERIDIAN
{hh = $1; mm = $3; merid = $4;}
- | NUMBER ':' NUMBER NUMBER =
+ | NUMBER ':' NUMBER NUMBER
{hh = $1; mm = $3; merid = 24;
dayLight = STANDARD; ourzone = -($4%100 + 60*$4/100);}
- | NUMBER ':' NUMBER ':' NUMBER =
+ | NUMBER ':' NUMBER ':' NUMBER
{hh = $1; mm = $3; ss = $5; merid = 24;}
- | NUMBER ':' NUMBER ':' NUMBER MERIDIAN =
+ | NUMBER ':' NUMBER ':' NUMBER MERIDIAN
{hh = $1; mm = $3; ss = $5; merid = $6;}
- | NUMBER ':' NUMBER ':' NUMBER NUMBER =
+ | NUMBER ':' NUMBER ':' NUMBER NUMBER
{hh = $1; mm = $3; ss = $5; merid = 24;
dayLight = STANDARD; ourzone = -($6%100 + 60*$6/100);};
-zone: ZONE =
+zone: ZONE
{ourzone = $1; dayLight = STANDARD;}
- | DAYZONE =
+ | DAYZONE
{ourzone = $1; dayLight = DAYLIGHT;};
-dyspec: DAY =
+dyspec: DAY
{dayord = 1; dayreq = $1;}
- | DAY ',' =
+ | DAY ','
{dayord = 1; dayreq = $1;}
- | NUMBER DAY =
+ | NUMBER DAY
{dayord = $1; dayreq = $2;};
-dtspec: NUMBER '/' NUMBER =
+dtspec: NUMBER '/' NUMBER
{month = $1; day = $3;}
- | NUMBER '/' NUMBER '/' NUMBER =
+ | NUMBER '/' NUMBER '/' NUMBER
{month = $1; day = $3; year = $5;}
- | MONTH NUMBER =
+ | MONTH NUMBER
{month = $1; day = $2;}
- | MONTH NUMBER ',' NUMBER =
+ | MONTH NUMBER ',' NUMBER
{month = $1; day = $2; year = $4;}
- | NUMBER MONTH =
+ | NUMBER MONTH
{month = $2; day = $1;}
- | NUMBER MONTH NUMBER =
+ | NUMBER MONTH NUMBER
{month = $2; day = $1; year = $3;};
-rspec: NUMBER UNIT =
+rspec: NUMBER UNIT
{relsec += 60L * $1 * $2;}
- | NUMBER MUNIT =
+ | NUMBER MUNIT
{relmonth += $1 * $2;}
- | NUMBER SUNIT =
+ | NUMBER SUNIT
{relsec += $1;}
- | UNIT =
+ | UNIT
{relsec += 60L * $1;}
- | MUNIT =
+ | MUNIT
{relmonth += $1;}
- | SUNIT =
+ | SUNIT
{relsec++;}
- | rspec AGO =
+ | rspec AGO
{relsec = -relsec; relmonth = -relmonth;};
%%
@@ -228,7 +228,7 @@ time_t daylcorr(future, now) time_t future, now;
static char *lptr;
-static
+//static
yylex()
{
#ifndef YYSTYPE

View File

@ -0,0 +1,12 @@
$OpenBSD: patch-src_tclx_src_tclxid_c,v 1.1.1.1 2008/01/18 03:36:32 deanna Exp $
--- src/tclx/src/tclxid.c.orig Sat Jan 12 14:51:43 2008
+++ src/tclx/src/tclxid.c Sat Jan 12 14:57:59 2008
@@ -239,7 +239,7 @@ Tcl_IdCmd (clientData, interp, argc, argv)
" process group [set]", (char *) NULL);
return TCL_ERROR;
}
- setpgrp ();
+ setpgrp (0, 0);
return TCL_OK;
}
Tcl_AppendResult (interp, tclXWrongArgs, argv [0],

View File

@ -0,0 +1,15 @@
$OpenBSD: patch-src_tclx_src_tclxint_h,v 1.1.1.1 2008/01/18 03:36:32 deanna Exp $
--- src/tclx/src/tclxint.h.orig Fri Nov 30 21:49:55 2007
+++ src/tclx/src/tclxint.h Tue Jan 15 20:28:31 2008
@@ -67,7 +67,10 @@
# include <sys/times.h>
#endif
-#include <values.h>
+//#include "values.h"
+#include <limits.h>
+#include <float.h>
+#define MAXDOUBLE DBL_MAX
#include <grp.h>
/*
* On some systems this is not included by tclUnix.h.

View File

@ -0,0 +1,22 @@
$OpenBSD: patch-src_tk_makefile,v 1.1.1.1 2008/01/18 03:36:32 deanna Exp $
--- src/tk/makefile.orig Fri Nov 30 21:49:55 2007
+++ src/tk/makefile Sun Jan 13 10:56:25 2008
@@ -27,14 +27,12 @@
# switch unless your library is in a non-standard place.
#
-CC = gcc
+EXTRA_CFLAGS = -I. -I$(XINCLUDE) -I$(TCL_DIR) -DTK_VERSION=\"2.3\" -DUSE_XPM3 -DIS_LINUX
+CFLAGS+= $(EXTRA_CFLAGS)
-CFLAGS = -I. -I$(XINCLUDE) -I$(TCL_DIR) -O3 -DTK_VERSION=\"2.3\" -DUSE_XPM3 -DIS_LINUX
-#CFLAGS = -I. -I$(XINCLUDE) -I$(TCL_DIR) -g -DTK_VERSION=\"2.3\" -DUSE_XPM3 -DIS_LINUX
-
TCL_DIR = ../tcl
-XINCLUDE = /usr/include/X11
-XLIB = -L/usr/X11R6/lib -lX11 -lXpm
+XINCLUDE = %%X11BASE%%/include
+XLIB = -L%%X11BASE%%/lib -lX11 -lXpm
LIBS = libtk.a $(TCL_DIR)/libtcl.a
LINKS = $(LIBS)

View File

@ -0,0 +1,12 @@
$OpenBSD: patch-src_tk_tkcanvas_c,v 1.1.1.1 2008/01/18 03:36:32 deanna Exp $
--- src/tk/tkcanvas.c.orig Sat Jan 12 14:49:05 2008
+++ src/tk/tkcanvas.c Sat Jan 12 14:49:14 2008
@@ -1488,7 +1488,7 @@ ConfigureCanvas(interp, canvasPtr, argc, argv, flags)
#if defined(USE_XPM3)
//#include "xpmtk.h"
-#include <xpm.h>
+#include <X11/xpm.h>
/*
*--------------------------------------------------------------
*

View File

@ -0,0 +1,98 @@
$OpenBSD: patch-src_tk_tkcolor_c,v 1.1.1.1 2008/01/18 03:36:32 deanna Exp $
--- src/tk/tkcolor.c.orig Fri Nov 30 21:49:55 2007
+++ src/tk/tkcolor.c Tue Jan 15 20:28:31 2008
@@ -484,42 +484,67 @@ Tk_VisInfo(Screen *screen)
#else
scrnum = Tk_IndexOfScreen(screen);
vTemplate.screen = scrnum;
- vTemplate.depth = 8;
- vTemplate.class = PseudoColor;
+ vTemplate.class = TrueColor;
visualList =
XGetVisualInfo(DisplayOfScreen(screen),
VisualScreenMask |
- VisualDepthMask |
VisualClassMask,
&vTemplate, &visualsMatched);
- if (visualsMatched > 0) {
- info->visual = visualList[0].visual;
- info->depth = 8;
- info->pixmap = XCreatePixmap(screen->display,
- RootWindowOfScreen(screen),
- 1, 1, 8);
-//fprintf(stderr, "TK_CreateColormap %d\n", TK_CreateColormap);
- if ((TK_CreateColormap == 0) &&
- (info->visual == DefaultVisualOfScreen(screen))) {
- info->colormap = DefaultColormapOfScreen(screen);
- info->gc = DefaultGCOfScreen(screen);
- } else {
- info->colormap =
- XCreateColormap(screen->display,
- RootWindowOfScreen(screen),
- info->visual, AllocNone);
- info->gc =
- XCreateGC(screen->display,
- info->pixmap, 0, &values);
- }
- } else {
+ info->visual = NULL;
+
+ if (visualList != NULL) {
+ int i;
+ for (i = 0; i < visualsMatched; i++) {
+ if (visualList[i].depth > 24)
+ continue; /* Most likely broken */
+
+ info->visual = visualList[i].visual;
+ info->depth = visualList[i].depth;
+
+ break;
+ }
+ }
+
+ if (info->visual == NULL) {
info->visual = XDefaultVisualOfScreen(screen);
info->depth = XDefaultDepthOfScreen(screen);
- info->pixmap = XCreatePixmap(screen->display,
- RootWindowOfScreen(screen),
- 1, 1, info->depth);
info->colormap = XDefaultColormapOfScreen(screen);
info->gc = DefaultGCOfScreen(screen);
+
+ if (info->depth == 8) {
+ vTemplate.screen = scrnum;
+ vTemplate.class = PseudoColor;
+ vTemplate.depth = 8;
+ visualList = XGetVisualInfo(DisplayOfScreen(screen),
+ VisualScreenMask |
+ VisualDepthMask |
+ VisualClassMask,
+ &vTemplate, &visualsMatched);
+
+ if (visualsMatched > 0) {
+ info->visual = visualList[0].visual;
+ info->depth = visualList[0].depth;
+
+ }
+ }
+ }
+
+ info->pixmap = XCreatePixmap(screen->display,
+ RootWindowOfScreen(screen),
+ 1, 1, info->depth);
+
+ if ((TK_CreateColormap == 0) &&
+ (info->visual == DefaultVisualOfScreen(screen))) {
+ info->colormap = DefaultColormapOfScreen(screen);
+ info->gc = DefaultGCOfScreen(screen);
+ } else {
+ info->colormap =
+ XCreateColormap(screen->display,
+ RootWindowOfScreen(screen),
+ info->visual, AllocNone);
+ info->gc =
+ XCreateGC(screen->display,
+ info->pixmap, 0, &values);
}
XFree((char *)visualList);

View File

@ -0,0 +1,12 @@
$OpenBSD: patch-src_tk_tkpixmap_c,v 1.1.1.1 2008/01/18 03:36:32 deanna Exp $
--- src/tk/tkpixmap.c.orig Sat Jan 12 14:48:29 2008
+++ src/tk/tkpixmap.c Sat Jan 12 14:48:40 2008
@@ -41,7 +41,7 @@ static char *AtFSid = "$Header: tkPixmap.c[1.1] Mon Se
* Include the xpm 3 defines for color pixmaps
*/
//#include "xpmtk.h"
-#include <xpm.h>
+#include <X11/xpm.h>
/*
* One of the following data structures exists for each bitmap that is

View File

@ -0,0 +1,62 @@
$OpenBSD: patch-src_tk_tkwm_c,v 1.1.1.1 2008/01/18 03:36:32 deanna Exp $
--- src/tk/tkwm.c.orig Fri Nov 30 21:49:55 2007
+++ src/tk/tkwm.c Tue Jan 15 20:28:31 2008
@@ -349,36 +349,35 @@ TkWmMapWindow(winPtr)
if (wmPtr->hints.initial_state == NormalState) {
winPtr->flags |= TK_MAPPED;
}
- if (!(wmPtr->flags & WM_NEVER_MAPPED)) {
- return 1;
- }
- wmPtr->flags &= ~WM_NEVER_MAPPED;
+ if (wmPtr->flags & WM_NEVER_MAPPED) {
+ wmPtr->flags &= ~WM_NEVER_MAPPED;
- /*
- * This is the first time this window has ever been mapped.
- * Store all the window-manager-related information for the
- * window.
- */
+ /*
+ * This is the first time this window has ever been mapped.
+ * Store all the window-manager-related information for the
+ * window.
+ */
#ifndef X11R3
- if (wmPtr->titleUid == NULL) {
- wmPtr->titleUid = winPtr->nameUid;
- }
- if (XStringListToTextProperty(&wmPtr->titleUid, 1, &textProp) != 0) {
- XSetWMName(winPtr->display, winPtr->window, &textProp);
- XFree((char *) textProp.value);
- }
+ if (wmPtr->titleUid == NULL) {
+ wmPtr->titleUid = winPtr->nameUid;
+ }
+ if (XStringListToTextProperty(&wmPtr->titleUid, 1, &textProp) != 0) {
+ XSetWMName(winPtr->display, winPtr->window, &textProp);
+ XFree((char *) textProp.value);
+ }
#endif
- TkWmSetClass(winPtr);
- TkWmSetWmProtocols(winPtr);
+ TkWmSetClass(winPtr);
+ TkWmSetWmProtocols(winPtr);
- if (wmPtr->iconName != NULL) {
- XSetIconName(winPtr->display, winPtr->window, wmPtr->iconName);
- }
+ if (wmPtr->iconName != NULL) {
+ XSetIconName(winPtr->display, winPtr->window, wmPtr->iconName);
+ }
- if (wmPtr->master != None) {
- XSetTransientForHint(winPtr->display, winPtr->window, wmPtr->master);
+ if (wmPtr->master != None) {
+ XSetTransientForHint(winPtr->display, winPtr->window, wmPtr->master);
+ }
}
wmPtr->flags |= WM_UPDATE_SIZE_HINTS;

View File

@ -0,0 +1,9 @@
Micropolis, Unix Version, (A.K.A. "S*mC*ty"). This game was released
for the Unix platform in or about 1990 and has been modified for
inclusion in the One Laptop Per Child program. Copyright (C) 1989 -
2007 Electronic Arts Inc.
The Micropolis package was modified from the original source. The
changes can be found in the patches directory or online at
http://www.openbsd.org/cgi-bin/cvsweb/ports/games/micropolis/patches/

572
games/micropolis/pkg/PLIST Normal file
View File

@ -0,0 +1,572 @@
@comment $OpenBSD: PLIST,v 1.1.1.1 2008/01/18 03:36:32 deanna Exp $
bin/micropolis
libexec/sim
share/doc/micropolis/
share/doc/micropolis/manual/
share/doc/micropolis/manual/Ask.html
share/doc/micropolis/manual/Budget.Cancel.html
share/doc/micropolis/manual/Budget.Collected.html
share/doc/micropolis/manual/Budget.Continue.html
share/doc/micropolis/manual/Budget.Police.html
share/doc/micropolis/manual/Budget.Previous.html
share/doc/micropolis/manual/Budget.Road.html
share/doc/micropolis/manual/Budget.html
share/doc/micropolis/manual/Disaster.No.html
share/doc/micropolis/manual/Disaster.Yes.html
share/doc/micropolis/manual/Editor.BuildPie.html
share/doc/micropolis/manual/Editor.Options.html
share/doc/micropolis/manual/Editor.ToolChalk.html
share/doc/micropolis/manual/Editor.ToolInd.html
share/doc/micropolis/manual/Editor.ToolName.html
share/doc/micropolis/manual/Editor.ToolNuclear.html
share/doc/micropolis/manual/Editor.ToolPie.html
share/doc/micropolis/manual/Editor.ToolQuery.html
share/doc/micropolis/manual/Editor.ToolRail.html
share/doc/micropolis/manual/Editor.ToolRes.html
share/doc/micropolis/manual/Editor.ToolSeaport.html
share/doc/micropolis/manual/Editor.ToolStadium.html
share/doc/micropolis/manual/Editor.ToolWire.html
share/doc/micropolis/manual/Editor.View.html
share/doc/micropolis/manual/Editor.html
share/doc/micropolis/manual/Evaluation.Dismiss.html
share/doc/micropolis/manual/Evaluation.GoodJob.html
share/doc/micropolis/manual/Evaluation.Statistics.html
share/doc/micropolis/manual/Evaluation.html
share/doc/micropolis/manual/File.Cancel.html
share/doc/micropolis/manual/File.Directory.html
share/doc/micropolis/manual/File.OK.html
share/doc/micropolis/manual/File.html
share/doc/micropolis/manual/Frob.Dismiss.html
share/doc/micropolis/manual/Frob.html
share/doc/micropolis/manual/Graph.120Years.html
share/doc/micropolis/manual/Graph.Com.html
share/doc/micropolis/manual/Graph.Dismiss.html
share/doc/micropolis/manual/Graph.Money.html
share/doc/micropolis/manual/Graph.Pollution.html
share/doc/micropolis/manual/Graph.html
share/doc/micropolis/manual/Head.Demand.html
share/doc/micropolis/manual/Head.Entry.html
share/doc/micropolis/manual/Head.Funds.html
share/doc/micropolis/manual/Head.OptionsMenu.html
share/doc/micropolis/manual/Head.Scrollbar.html
share/doc/micropolis/manual/Head.TimeMenu.html
share/doc/micropolis/manual/Head.WindowsMenu.html
share/doc/micropolis/manual/Head.html
share/doc/micropolis/manual/Help.Dismiss.html
share/doc/micropolis/manual/Help.Scrollbar.html
share/doc/micropolis/manual/Help.html
share/doc/micropolis/manual/Map.Zones.html
share/doc/micropolis/manual/Map.html
share/doc/micropolis/manual/Notice.Text.html
share/doc/micropolis/manual/Notice.View.html
share/doc/micropolis/manual/Notice.html
share/doc/micropolis/manual/Plan.Goto.html
share/doc/micropolis/manual/Plan.Support.html
share/doc/micropolis/manual/Plan.Veto.html
share/doc/micropolis/manual/Player.Display.html
share/doc/micropolis/manual/Player.html
share/doc/micropolis/manual/Quit.AllQuit.html
share/doc/micropolis/manual/Quit.IQuit.html
share/doc/micropolis/manual/Quit.IResign.html
share/doc/micropolis/manual/Quit.No.html
share/doc/micropolis/manual/README
share/doc/micropolis/manual/Scenario.Bern.html
share/doc/micropolis/manual/Scenario.Detroit.html
share/doc/micropolis/manual/Scenario.LoadCity.html
share/doc/micropolis/manual/Scenario.Name.html
share/doc/micropolis/manual/Scenario.Rio.html
share/doc/micropolis/manual/Scenario.SanFran.html
share/doc/micropolis/manual/Scenario.Use.html
share/doc/micropolis/manual/Scenario.html
share/doc/micropolis/manual/SelectCity.No.html
share/doc/micropolis/manual/SelectCity.Yes.html
share/doc/micropolis/manual/Window.html
share/doc/micropolis/manual/bibliography.html
share/doc/micropolis/manual/credits.html
share/doc/micropolis/manual/history.html
share/doc/micropolis/manual/index.html
share/doc/micropolis/manual/inside.html
share/doc/micropolis/manual/intro.html
share/doc/micropolis/manual/reference.html
share/doc/micropolis/manual/tutorial.html
share/micropolis/
share/micropolis/images/
share/micropolis/images/airport.xpm
share/micropolis/images/background-micropolis.xpm
share/micropolis/images/button1hilite.xpm
share/micropolis/images/button2hilite.xpm
share/micropolis/images/button3hilite.xpm
share/micropolis/images/button4hilite.xpm
share/micropolis/images/checkbox1checked.xpm
share/micropolis/images/checkbox1hilite.xpm
share/micropolis/images/checkbox1hilitechecked.xpm
share/micropolis/images/checkbox2checked.xpm
share/micropolis/images/checkbox2hilite.xpm
share/micropolis/images/checkbox2hilitechecked.xpm
share/micropolis/images/checkbox3checked.xpm
share/micropolis/images/checkbox3hilite.xpm
share/micropolis/images/checkbox3hilitechecked.xpm
share/micropolis/images/coal.xpm
share/micropolis/images/com.xpm
share/micropolis/images/demandg.xpm
share/micropolis/images/fire.xpm
share/micropolis/images/gr10.xpm
share/micropolis/images/gr10hi.xpm
share/micropolis/images/gr120.xpm
share/micropolis/images/gr120hi.xpm
share/micropolis/images/grcom.xpm
share/micropolis/images/grcomhi.xpm
share/micropolis/images/grcrim.xpm
share/micropolis/images/grcrimhi.xpm
share/micropolis/images/grind.xpm
share/micropolis/images/grindhi.xpm
share/micropolis/images/grmony.xpm
share/micropolis/images/grmonyhi.xpm
share/micropolis/images/grpoll.xpm
share/micropolis/images/grpollhi.xpm
share/micropolis/images/grres.xpm
share/micropolis/images/grreshi.xpm
share/micropolis/images/icairp.xpm
share/micropolis/images/icairphi.xpm
share/micropolis/images/icchlk.xpm
share/micropolis/images/icchlkhi.xpm
share/micropolis/images/iccoal.xpm
share/micropolis/images/iccoalhi.xpm
share/micropolis/images/iccom.xpm
share/micropolis/images/iccomhi.xpm
share/micropolis/images/icdozr.xpm
share/micropolis/images/icdozrhi.xpm
share/micropolis/images/icersr.xpm
share/micropolis/images/icersrhi.xpm
share/micropolis/images/icfire.xpm
share/micropolis/images/icfirehi.xpm
share/micropolis/images/icind.xpm
share/micropolis/images/icindhi.xpm
share/micropolis/images/icnuc.xpm
share/micropolis/images/icnuchi.xpm
share/micropolis/images/icpark.xpm
share/micropolis/images/icparkhi.xpm
share/micropolis/images/icpol.xpm
share/micropolis/images/icpolhi.xpm
share/micropolis/images/icqry.xpm
share/micropolis/images/icqryhi.xpm
share/micropolis/images/icrail.xpm
share/micropolis/images/icrailhi.xpm
share/micropolis/images/icres.xpm
share/micropolis/images/icreshi.xpm
share/micropolis/images/icroad.xpm
share/micropolis/images/icroadhi.xpm
share/micropolis/images/icseap.xpm
share/micropolis/images/icseaphi.xpm
share/micropolis/images/icstad.xpm
share/micropolis/images/icstadhi.xpm
share/micropolis/images/icwire.xpm
share/micropolis/images/icwirehi.xpm
share/micropolis/images/ind.xpm
share/micropolis/images/key.xpm
share/micropolis/images/key2city.xpm
share/micropolis/images/leftdisabled.xpm
share/micropolis/images/lefthilite.xpm
share/micropolis/images/legendmm.xpm
share/micropolis/images/legendn.xpm
share/micropolis/images/legendpm.xpm
share/micropolis/images/maphilite.xpm
share/micropolis/images/micropolisg.xpm
share/micropolis/images/micropolism.xpm
share/micropolis/images/micropoliss.xpm
share/micropolis/images/nuclear.xpm
share/micropolis/images/obj1-0.xpm
share/micropolis/images/obj1-1.xpm
share/micropolis/images/obj1-2.xpm
share/micropolis/images/obj1-3.xpm
share/micropolis/images/obj1-4.xpm
share/micropolis/images/obj2-0.xpm
share/micropolis/images/obj2-1.xpm
share/micropolis/images/obj2-2.xpm
share/micropolis/images/obj2-3.xpm
share/micropolis/images/obj2-4.xpm
share/micropolis/images/obj2-5.xpm
share/micropolis/images/obj2-6.xpm
share/micropolis/images/obj2-7.xpm
share/micropolis/images/obj3-0.xpm
share/micropolis/images/obj3-1.xpm
share/micropolis/images/obj3-10.xpm
share/micropolis/images/obj3-2.xpm
share/micropolis/images/obj3-3.xpm
share/micropolis/images/obj3-4.xpm
share/micropolis/images/obj3-5.xpm
share/micropolis/images/obj3-6.xpm
share/micropolis/images/obj3-7.xpm
share/micropolis/images/obj3-8.xpm
share/micropolis/images/obj3-9.xpm
share/micropolis/images/obj4-0.xpm
share/micropolis/images/obj4-1.xpm
share/micropolis/images/obj4-2.xpm
share/micropolis/images/obj4-3.xpm
share/micropolis/images/obj4-4.xpm
share/micropolis/images/obj4-5.xpm
share/micropolis/images/obj4-6.xpm
share/micropolis/images/obj4-7.xpm
share/micropolis/images/obj5-0.xpm
share/micropolis/images/obj5-1.xpm
share/micropolis/images/obj5-10.xpm
share/micropolis/images/obj5-11.xpm
share/micropolis/images/obj5-12.xpm
share/micropolis/images/obj5-13.xpm
share/micropolis/images/obj5-14.xpm
share/micropolis/images/obj5-15.xpm
share/micropolis/images/obj5-2.xpm
share/micropolis/images/obj5-3.xpm
share/micropolis/images/obj5-4.xpm
share/micropolis/images/obj5-5.xpm
share/micropolis/images/obj5-6.xpm
share/micropolis/images/obj5-7.xpm
share/micropolis/images/obj5-8.xpm
share/micropolis/images/obj5-9.xpm
share/micropolis/images/obj6-0.xpm
share/micropolis/images/obj6-1.xpm
share/micropolis/images/obj6-2.xpm
share/micropolis/images/obj7-0.xpm
share/micropolis/images/obj7-1.xpm
share/micropolis/images/obj7-2.xpm
share/micropolis/images/obj7-3.xpm
share/micropolis/images/obj7-4.xpm
share/micropolis/images/obj7-5.xpm
share/micropolis/images/obj8-0.xpm
share/micropolis/images/obj8-1.xpm
share/micropolis/images/obj8-2.xpm
share/micropolis/images/obj8-3.xpm
share/micropolis/images/playhilite.xpm
share/micropolis/images/police.xpm
share/micropolis/images/res.xpm
share/micropolis/images/rightdisabled.xpm
share/micropolis/images/righthilite.xpm
share/micropolis/images/scbern.xpm
share/micropolis/images/scbernhi.xpm
share/micropolis/images/scbos.xpm
share/micropolis/images/scboshi.xpm
share/micropolis/images/scdet.xpm
share/micropolis/images/scdethi.xpm
share/micropolis/images/scdull.xpm
share/micropolis/images/scdullhi.xpm
share/micropolis/images/scenario1hilite.xpm
share/micropolis/images/scenario2hilite.xpm
share/micropolis/images/scenario3hilite.xpm
share/micropolis/images/scenario4hilite.xpm
share/micropolis/images/scenario5hilite.xpm
share/micropolis/images/scenario6hilite.xpm
share/micropolis/images/scenario7hilite.xpm
share/micropolis/images/scenario8hilite.xpm
share/micropolis/images/scham.xpm
share/micropolis/images/schamhi.xpm
share/micropolis/images/sclcty.xpm
share/micropolis/images/sclctyhi.xpm
share/micropolis/images/scncty.xpm
share/micropolis/images/scnctyhi.xpm
share/micropolis/images/scrio.xpm
share/micropolis/images/scriohi.xpm
share/micropolis/images/scsfo.xpm
share/micropolis/images/scsfohi.xpm
share/micropolis/images/sctkyo.xpm
share/micropolis/images/sctkyohi.xpm
share/micropolis/images/seaport.xpm
share/micropolis/images/spacer.xpm
share/micropolis/images/stadium.xpm
share/micropolis/images/tiles-0.xpm
share/micropolis/images/tiles-1.xpm
share/micropolis/images/tiles-10.xpm
share/micropolis/images/tiles-100.xpm
share/micropolis/images/tiles-101.xpm
share/micropolis/images/tiles-102.xpm
share/micropolis/images/tiles-103.xpm
share/micropolis/images/tiles-104.xpm
share/micropolis/images/tiles-105.xpm
share/micropolis/images/tiles-106.xpm
share/micropolis/images/tiles-107.xpm
share/micropolis/images/tiles-108.xpm
share/micropolis/images/tiles-109.xpm
share/micropolis/images/tiles-11.xpm
share/micropolis/images/tiles-110.xpm
share/micropolis/images/tiles-111.xpm
share/micropolis/images/tiles-112.xpm
share/micropolis/images/tiles-113.xpm
share/micropolis/images/tiles-114.xpm
share/micropolis/images/tiles-115.xpm
share/micropolis/images/tiles-116.xpm
share/micropolis/images/tiles-117.xpm
share/micropolis/images/tiles-118.xpm
share/micropolis/images/tiles-119.xpm
share/micropolis/images/tiles-12.xpm
share/micropolis/images/tiles-120.xpm
share/micropolis/images/tiles-121.xpm
share/micropolis/images/tiles-122.xpm
share/micropolis/images/tiles-123.xpm
share/micropolis/images/tiles-124.xpm
share/micropolis/images/tiles-125.xpm
share/micropolis/images/tiles-126.xpm
share/micropolis/images/tiles-127.xpm
share/micropolis/images/tiles-128.xpm
share/micropolis/images/tiles-129.xpm
share/micropolis/images/tiles-13.xpm
share/micropolis/images/tiles-130.xpm
share/micropolis/images/tiles-131.xpm
share/micropolis/images/tiles-132.xpm
share/micropolis/images/tiles-133.xpm
share/micropolis/images/tiles-134.xpm
share/micropolis/images/tiles-135.xpm
share/micropolis/images/tiles-136.xpm
share/micropolis/images/tiles-137.xpm
share/micropolis/images/tiles-138.xpm
share/micropolis/images/tiles-139.xpm
share/micropolis/images/tiles-14.xpm
share/micropolis/images/tiles-140.xpm
share/micropolis/images/tiles-141.xpm
share/micropolis/images/tiles-142.xpm
share/micropolis/images/tiles-143.xpm
share/micropolis/images/tiles-144.xpm
share/micropolis/images/tiles-145.xpm
share/micropolis/images/tiles-146.xpm
share/micropolis/images/tiles-147.xpm
share/micropolis/images/tiles-148.xpm
share/micropolis/images/tiles-149.xpm
share/micropolis/images/tiles-15.xpm
share/micropolis/images/tiles-150.xpm
share/micropolis/images/tiles-151.xpm
share/micropolis/images/tiles-152.xpm
share/micropolis/images/tiles-153.xpm
share/micropolis/images/tiles-154.xpm
share/micropolis/images/tiles-155.xpm
share/micropolis/images/tiles-156.xpm
share/micropolis/images/tiles-16.xpm
share/micropolis/images/tiles-17.xpm
share/micropolis/images/tiles-18.xpm
share/micropolis/images/tiles-19.xpm
share/micropolis/images/tiles-2.xpm
share/micropolis/images/tiles-20.xpm
share/micropolis/images/tiles-21.xpm
share/micropolis/images/tiles-22.xpm
share/micropolis/images/tiles-23.xpm
share/micropolis/images/tiles-24.xpm
share/micropolis/images/tiles-25.xpm
share/micropolis/images/tiles-26.xpm
share/micropolis/images/tiles-27.xpm
share/micropolis/images/tiles-28.xpm
share/micropolis/images/tiles-29.xpm
share/micropolis/images/tiles-3.xpm
share/micropolis/images/tiles-30.xpm
share/micropolis/images/tiles-31.xpm
share/micropolis/images/tiles-32.xpm
share/micropolis/images/tiles-33.xpm
share/micropolis/images/tiles-34.xpm
share/micropolis/images/tiles-35.xpm
share/micropolis/images/tiles-36.xpm
share/micropolis/images/tiles-37.xpm
share/micropolis/images/tiles-38.xpm
share/micropolis/images/tiles-39.xpm
share/micropolis/images/tiles-4.xpm
share/micropolis/images/tiles-40.xpm
share/micropolis/images/tiles-41.xpm
share/micropolis/images/tiles-42.xpm
share/micropolis/images/tiles-43.xpm
share/micropolis/images/tiles-44.xpm
share/micropolis/images/tiles-45.xpm
share/micropolis/images/tiles-46.xpm
share/micropolis/images/tiles-47.xpm
share/micropolis/images/tiles-48.xpm
share/micropolis/images/tiles-49.xpm
share/micropolis/images/tiles-5.xpm
share/micropolis/images/tiles-50.xpm
share/micropolis/images/tiles-51.xpm
share/micropolis/images/tiles-52.xpm
share/micropolis/images/tiles-53.xpm
share/micropolis/images/tiles-54.xpm
share/micropolis/images/tiles-55.xpm
share/micropolis/images/tiles-56.xpm
share/micropolis/images/tiles-57.xpm
share/micropolis/images/tiles-58.xpm
share/micropolis/images/tiles-59.xpm
share/micropolis/images/tiles-6.xpm
share/micropolis/images/tiles-60.xpm
share/micropolis/images/tiles-61.xpm
share/micropolis/images/tiles-62.xpm
share/micropolis/images/tiles-63.xpm
share/micropolis/images/tiles-64.xpm
share/micropolis/images/tiles-65.xpm
share/micropolis/images/tiles-66.xpm
share/micropolis/images/tiles-67.xpm
share/micropolis/images/tiles-68.xpm
share/micropolis/images/tiles-69.xpm
share/micropolis/images/tiles-7.xpm
share/micropolis/images/tiles-70.xpm
share/micropolis/images/tiles-71.xpm
share/micropolis/images/tiles-72.xpm
share/micropolis/images/tiles-73.xpm
share/micropolis/images/tiles-74.xpm
share/micropolis/images/tiles-75.xpm
share/micropolis/images/tiles-76.xpm
share/micropolis/images/tiles-77.xpm
share/micropolis/images/tiles-78.xpm
share/micropolis/images/tiles-79.xpm
share/micropolis/images/tiles-8.xpm
share/micropolis/images/tiles-80.xpm
share/micropolis/images/tiles-81.xpm
share/micropolis/images/tiles-82.xpm
share/micropolis/images/tiles-83.xpm
share/micropolis/images/tiles-84.xpm
share/micropolis/images/tiles-85.xpm
share/micropolis/images/tiles-86.xpm
share/micropolis/images/tiles-87.xpm
share/micropolis/images/tiles-88.xpm
share/micropolis/images/tiles-89.xpm
share/micropolis/images/tiles-9.xpm
share/micropolis/images/tiles-90.xpm
share/micropolis/images/tiles-91.xpm
share/micropolis/images/tiles-92.xpm
share/micropolis/images/tiles-93.xpm
share/micropolis/images/tiles-94.xpm
share/micropolis/images/tiles-95.xpm
share/micropolis/images/tiles-96.xpm
share/micropolis/images/tiles-97.xpm
share/micropolis/images/tiles-98.xpm
share/micropolis/images/tiles-99.xpm
share/micropolis/images/tiles.xpm
share/micropolis/images/tilesbw.xpm
share/micropolis/images/tilessm.xpm
share/micropolis/res/
share/micropolis/res/buildidx.tcl
share/micropolis/res/button.tcl
share/micropolis/res/dejavu-lgc/
share/micropolis/res/dejavu-lgc/DejaVuLGCSans-Bold.ttf
share/micropolis/res/dejavu-lgc/DejaVuLGCSans-BoldOblique.ttf
share/micropolis/res/dejavu-lgc/DejaVuLGCSans-ExtraLight.ttf
share/micropolis/res/dejavu-lgc/DejaVuLGCSans-Oblique.ttf
share/micropolis/res/dejavu-lgc/DejaVuLGCSans.ttf
share/micropolis/res/dejavu-lgc/DejaVuLGCSansCondensed-Bold.ttf
share/micropolis/res/dejavu-lgc/DejaVuLGCSansCondensed-BoldOblique.ttf
share/micropolis/res/dejavu-lgc/DejaVuLGCSansCondensed-Oblique.ttf
share/micropolis/res/dejavu-lgc/DejaVuLGCSansCondensed.ttf
share/micropolis/res/dejavu-lgc/DejaVuLGCSansMono-Bold.ttf
share/micropolis/res/dejavu-lgc/DejaVuLGCSansMono-BoldOblique.ttf
share/micropolis/res/dejavu-lgc/DejaVuLGCSansMono-Oblique.ttf
share/micropolis/res/dejavu-lgc/DejaVuLGCSansMono.ttf
share/micropolis/res/dejavu-lgc/DejaVuLGCSerif-Bold.ttf
share/micropolis/res/dejavu-lgc/DejaVuLGCSerif-BoldOblique.ttf
share/micropolis/res/dejavu-lgc/DejaVuLGCSerif-Oblique.ttf
share/micropolis/res/dejavu-lgc/DejaVuLGCSerif.ttf
share/micropolis/res/dejavu-lgc/DejaVuLGCSerifCondensed-Bold.ttf
share/micropolis/res/dejavu-lgc/DejaVuLGCSerifCondensed-BoldOblique.ttf
share/micropolis/res/dejavu-lgc/DejaVuLGCSerifCondensed-Oblique.ttf
share/micropolis/res/dejavu-lgc/DejaVuLGCSerifCondensed.ttf
share/micropolis/res/dejavu-lgc/fonts.alias
share/micropolis/res/dejavu-lgc/fonts.dir
share/micropolis/res/dejavu-lgc/fonts.scale
share/micropolis/res/entry.tcl
share/micropolis/res/help.tcl
share/micropolis/res/hexa.112
share/micropolis/res/hexa.232
share/micropolis/res/hexa.384
share/micropolis/res/hexa.385
share/micropolis/res/hexa.386
share/micropolis/res/hexa.387
share/micropolis/res/hexa.388
share/micropolis/res/hexa.456
share/micropolis/res/hexa.544
share/micropolis/res/hexa.563
share/micropolis/res/hexa.999
share/micropolis/res/init.tcl
share/micropolis/res/listbox.tcl
share/micropolis/res/menu.tcl
share/micropolis/res/micropolis.tcl
@comment share/micropolis/res/micropolis.tcl.orig
share/micropolis/res/mkindex.tcl
share/micropolis/res/parray.tcl
share/micropolis/res/snro.111
share/micropolis/res/snro.222
share/micropolis/res/snro.333
share/micropolis/res/snro.444
share/micropolis/res/snro.555
share/micropolis/res/snro.666
share/micropolis/res/snro.777
share/micropolis/res/snro.888
share/micropolis/res/sound.tcl
share/micropolis/res/sounds/
share/micropolis/res/sounds/a.wav
share/micropolis/res/sounds/aaah.wav
share/micropolis/res/sounds/airport.wav
share/micropolis/res/sounds/beep.wav
share/micropolis/res/sounds/boing.wav
share/micropolis/res/sounds/bop.wav
share/micropolis/res/sounds/build.wav
share/micropolis/res/sounds/bulldozer.wav
share/micropolis/res/sounds/chalk.wav
share/micropolis/res/sounds/coal.wav
share/micropolis/res/sounds/com.wav
share/micropolis/res/sounds/computer.wav
share/micropolis/res/sounds/cuckoo.wav
share/micropolis/res/sounds/e.wav
share/micropolis/res/sounds/eraser.wav
share/micropolis/res/sounds/explosion-hi.wav
share/micropolis/res/sounds/explosion-high.wav
share/micropolis/res/sounds/explosion-low.wav
share/micropolis/res/sounds/fire.wav
share/micropolis/res/sounds/heavytraffic.wav
share/micropolis/res/sounds/honkhonk-hi.wav
share/micropolis/res/sounds/honkhonk-high.wav
share/micropolis/res/sounds/honkhonk-low.wav
share/micropolis/res/sounds/honkhonk-med.wav
share/micropolis/res/sounds/ignition.wav
share/micropolis/res/sounds/ind.wav
share/micropolis/res/sounds/monster.wav
share/micropolis/res/sounds/nuclear.wav
share/micropolis/res/sounds/o.wav
share/micropolis/res/sounds/oop.wav
share/micropolis/res/sounds/park.wav
share/micropolis/res/sounds/police.wav
share/micropolis/res/sounds/quack.wav
share/micropolis/res/sounds/quackquack.wav
share/micropolis/res/sounds/query.wav
share/micropolis/res/sounds/rail.wav
share/micropolis/res/sounds/res.wav
share/micropolis/res/sounds/road.wav
share/micropolis/res/sounds/rumble.wav
share/micropolis/res/sounds/seaport.wav
share/micropolis/res/sounds/siren.wav
share/micropolis/res/sounds/skid.wav
share/micropolis/res/sounds/sorry.wav
share/micropolis/res/sounds/stadium.wav
share/micropolis/res/sounds/uhuh.wav
share/micropolis/res/sounds/whip.wav
share/micropolis/res/sounds/wire.wav
share/micropolis/res/sounds/woosh.wav
share/micropolis/res/sounds/zone.wav
share/micropolis/res/stri.202
share/micropolis/res/stri.219
share/micropolis/res/stri.301
share/micropolis/res/stri.356
share/micropolis/res/tcl.tdx
share/micropolis/res/tcl.tlb
share/micropolis/res/tclindex
share/micropolis/res/tclinit.tcl
share/micropolis/res/text.tcl
share/micropolis/res/tk.tcl
share/micropolis/res/tk.tdx
share/micropolis/res/tk.tlb
share/micropolis/res/tkerror.tcl
share/micropolis/res/wask.tcl
share/micropolis/res/wbudget.tcl
share/micropolis/res/weditor.tcl
share/micropolis/res/weval.tcl
share/micropolis/res/wfile.tcl
share/micropolis/res/wfrob.tcl
share/micropolis/res/wgraph.tcl
share/micropolis/res/whead.tcl
share/micropolis/res/whelp.tcl
share/micropolis/res/wish.tcl
share/micropolis/res/wishx.tcl
share/micropolis/res/wmap.tcl
share/micropolis/res/wnotice.tcl
share/micropolis/res/wplayer.tcl
share/micropolis/res/wscen.tcl
share/micropolis/res/wscen_old.tcl
share/micropolis/res/wscen_older.tcl
share/micropolis/res/wsplash.tcl