+#define SIM_NSOUNDS 47
+#define SIM_NCHANNELS 32
+#define DOZER_CHANNEL 0
+#define DOZER_SOUND "rumble.wav"
+
+struct sound {
+ char *id;
+ char *file;
+#ifdef WITH_SDL_MIXER
+ Mix_Chunk *wave;
+#else
+ void *wave;
+#endif
+};
+
+struct sound sounds[SIM_NSOUNDS] = {
+ { "A", "a.wav", NULL },
+ { "Aaah", "aaah.wav", NULL },
+ { "Airport", "airport.wav", NULL },
+ { "Beep", "beep.wav", NULL },
+ { "Boing", "boing.wav", NULL },
+ { "Bop", "bop.wav", NULL },
+ { "Build", "build.wav", NULL },
+ { "Bulldozer", "bulldozer.wav", NULL },
+ { "Chalk", "chalk.wav", NULL },
+ { "Coal", "coal.wav", NULL },
+ { "Com", "com.wav", NULL },
+ { "Computer", "computer.wav", NULL },
+ { "Cuckoo", "cuckoo.wav", NULL },
+ { "E", "e.wav", NULL },
+ { "Eraser", "eraser.wav", NULL },
+ { "Explosion-High", "explosion-high.wav", NULL },
+ { "Explosion-Low", "explosion-low.wav", NULL },
+ { "Fire", "fire.wav", NULL },
+ { "HeavyTraffic", "heavytraffic.wav", NULL },
+ { "HonkHonk-High", "honkhonk-high.wav", NULL },
+ { "HonkHonk-Low", "honkhonk-low.wav", NULL },
+ { "HonkHonk-Med", "honkhonk-med.wav", NULL },
+ { "Ignition", "ignition.wav", NULL },
+ { "Ind", "ind.wav", NULL },
+ { "Monster", "monster.wav", NULL },
+ { "Nuclear", "nuclear.wav", NULL },
+ { "O", "o.wav", NULL },
+ { "Oop", "oop.wav", NULL },
+ { "Park", "park.wav", NULL },
+ { "Player", "player.wav", NULL },
+ { "Police", "police.wav", NULL },
+ { "QuackQuack", "quackquack.wav", NULL },
+ { "Query", "query.wav", NULL },
+ { "Rail", "rail.wav", NULL },
+ { "Res", "res.wav", NULL },
+ { "Road", "road.wav", NULL },
+ { "Rumble", "rumble.wav", NULL },
+ { "Seaport", "seaport.wav", NULL },
+ { "Siren", "siren.wav", NULL },
+ { "Skid", "skid.wav", NULL },
+ { "Sorry", "sorry.wav", NULL },
+ { "Stadium", "stadium.wav", NULL },
+ { "UhUh", "uhuh.wav", NULL },
+ { "Whip", "whip.wav", NULL },
+ { "Wire", "wire.wav", NULL },
+ { "Woosh", "woosh.wav", NULL },
+ { "Zone", "zone.wav", NULL }
+};
+
+static int SoundInitialized = 0;
+
+#ifdef WITH_SDL_MIXER