rnd-20020501-1-src
[rocksndiamonds.git] / src / main.c
index 8533d336d74f9b5479151118d3a12a00f2668bc7..2b0716e2cd2333f648394ddf6d31d052a1f4e33e 100644 (file)
@@ -136,20 +136,169 @@ char *sound_name[NUM_SOUNDS] =
   "gate.wav"
 };
 
-/* background music */
-int background_loop[] =
+/* sound effects: setup file identifiers and corresponding default filenames */
+struct SoundEffectInfo sound_effects[NUM_SOUND_EFFECTS] =
 {
+  { "infotron_collecting",     "infotron.wav"  },
+  { "zonk_falling",            "NONE"  },
+  { "zonk_pushing",            "zonkpush.wav"  },
+  { "player_screaming",                "autsch.wav"    }
+};
+
+struct SoundEffectInfo sound_effects_NEW[] =
+{
+  /* sounds for Boulder Dash style elements and actions */
+  { "bd_empty_space.digging",  "empty.wav"     },
+  { "bd_sand.digging",         "schlurf.wav"   },
+  { "bd_diamond.collecting",   "pong.wav"      },
+  { "bd_diamond.impact",       "pling.wav"     },
+  { "bd_rock.pushing",         "pusch.wav"     },
+  { "bd_rock.impact",          "klopf.wav"     },
+  { "bd_magic_wall.activating",        "quirk.wav"     },
+  { "bd_magic_wall.changing",  "quirk.wav"     },
+  { "bd_magic_wall.running",   "miep.wav"      },
+  { "bd_amoeba.growing",       "amoebe.wav"    },
+  { "bd_amoeba.turning_to_gem",        "pling.wav"     },
+  { "bd_amoeba.turning_to_rock","klopf.wav"    },
+  { "bd_butterfly.moving",     "klapper.wav"   },
+  { "bd_firefly.moving",       "roehr.wav"     },
+  { "bd_exit.entering",                "buing.wav"     },
+
+  /* sounds for Supaplex style elements and actions */
+  { "sp_empty_space.digging",  "empty.wav"     },
+  { "sp_base.digging",         "base.wav"      },
+  { "sp_buggy_base.digging",   "base.wav"      },
+  { "sp_buggy_base.passing",   "bug.wav"       },
+  { "sp_infotron.collecting",  "infotron.wav"  },
+  { "sp_infotron.impact",      "pling.wav"     },
+  { "sp_zonk.pushing",         "zonkpush.wav"  },
+  { "sp_zonk.impact",          "zonkdown.wav"  },
+  { "sp_disk_red.collecting",  "infotron.wav"  },
+  { "sp_disk_orange.pushing",  "zonkpush.wav"  },
+  { "sp_disk_yellow.pushing",  "pusch.wav"     },
+  { "sp_port.passing",         "gate.wav"      },
+  { "sp_exit.entering",                "buing.wav"     },
+  { "sp_element.exploding",    "booom.wav"     },
+
+  /* sounds for Sokoban style elements and actions */
+  { "sokoban_object.pushing",  "pusch.wav"     },
+  { "sokoban_field.filling",   "deng.wav"      },
+  { "sokoban_game.solving",    "buing.wav"     },
+
+  /* sounds for Emerald Mine style elements and actions */
+  { "empty_space.digging",     "empty.wav"     },
+  { "sand.digging",            "schlurf.wav"   },
+  { "emerald.collecting",      "pong.wav"      },
+  { "emerald.impact",          "pling.wav"     },
+  { "diamond.collecting",      "pong.wav"      },
+  { "diamond.impact",          "pling.wav"     },
+  { "diamond.smashing",                "quirk.wav"     },
+  { "rock.pushing",            "pusch.wav"     },
+  { "rock.impact",             "klopf.wav"     },
+  { "bomb.pushing",            "pusch.wav"     },
+  { "nut.pushing",             "knurk.wav"     },
+  { "nut.cracking",            "knack.wav"     },
+  { "nut.impact",              "klumpf.wav"    },
+  { "dynamite.collecting",     "pong.wav"      },
+  { "dynamite.placing",                "deng.wav"      },
+  { "dynamite.burning",                "zisch.wav"     },
+  { "key.collecting",          "pong.wav"      },
+  { "gate.passing",            "gate.wav"      },
+  { "bug.moving",              "klapper.wav"   },
+  { "spaceship.moving",                "roehr.wav"     },
+  { "yamyam.waiting",          "njam.wav"      },
+  { "robot.moving",            "schlurf.wav"   },
+  { "robot_wheel.activating",  "deng.wav"      },
+  { "robot_wheel.running",     "miep.wav"      },
+  { "magic_wall.activating",   "quirk.wav"     },
+  { "magic_wall.changing",     "quirk.wav"     },
+  { "magic_wall.running",      "miep.wav"      },
+  { "amoeba.growing",          "amoebe.wav"    },
+  { "acid.splashing",          "blurb.wav"     },
+  { "exit.opening",            "oeffnen.wav"   },
+  { "exit.entering",           "buing.wav"     },
+
+  /* sounds for Emerald Mine Club style elements and actions */
+  { "balloon.moving",          "schlurf.wav"   },
+  { "spring.pushing",          "pusch.wav"     },
+
+  /* sounds for Diamond Caves style elements and actions */
+  { "pearl.collecting",                "pong.wav"      },
+  { "pearl.breaking",          "knack.wav"     },
+  { "crystal.collecting",      "pong.wav"      },
+  { "envelope.collecting",     "pong.wav"      },
+  { "sand_invisible.digging",  "schlurf.wav"   },
+  { "shield_passive.collecting","pong.wav"     },
+  { "shield_active.collecting",        "pong.wav"      },
+  { "extra_time.collecting",   "gong.wav"      },
+  { "mole.eating_amoeba",      "blurb.wav"     },
+  { "switchgate.opening",      "oeffnen.wav"   },
+  { "switchgate.closing",      "oeffnen.wav"   },
+  { "switchgate.passing",      "gate.wav"      },
+  { "timegate.opening",                "oeffnen.wav"   },
+  { "timegate.closing",                "oeffnen.wav"   },
+  { "timegate.passing",                "gate.wav"      },
+  { "timegate_wheel.activating","deng.wav"     },
+  { "timegate_wheel.running",  "miep.wav"      },
+
+  /* sounds for DX Boulderdash style elements and actions */
+  { "dx_bomb.pushing",         "pusch.wav"     },
+  { "trap_inactive.digging",   "schlurf.wav"   },
+
+  /* sounds for Rocks'n'Diamonds style elements and actions */
+  { "amoeba.turning_to_gem",   "pling.wav"     },
+  { "amoeba.turning_to_rock",  "klopf.wav"     },
+  { "speed_pill.collecting",   "pong.wav"      },
+  { "penguin.entering_exit",   "buing.wav"     },
+  { "dynabomb_nr.collecting",  "pong.wav"      },
+  { "dynabomb_sz.collecting",  "pong.wav"      },
+  { "dynabomb_xl.collecting",  "pong.wav"      },
+  { "satellite.pushing",       "pusch.wav"     },
+  { "lamp.activating",         "deng.wav"      },
+  { "time_orb_full.collecting",        "gong.wav"      },
+  { "time_orb_full.impact",    "deng.wav"      },
+  { "time_orb_empty.pushing",  "pusch.wav"     },
+  { "time_orb_empty.impact",   "deng.wav"      },
+
+  /* sounds for generic elements and actions */
+  { "player.screaming",                "autsch.wav"    },
+  { "element.exploding",       "roaaar.wav"    },
+
+  /* sounds for other game actions */
+  { "game.running_out_of_time",        "gong.wav"      },
+  { "game.leveltime_bonus",    "sirr.wav"      },
+  { "game.laughing_at_player", "lachen.wav"    },
+
+  /* sounds for other non-game actions */
+  { "menu.door_opening",       "oeffnen.wav"   },
+  { "menu.door_closing",       "oeffnen.wav"   },
+  { "menu.hall_of_fame",       "halloffame.wav"},
+  { "menu.info_screen",                "rhythmloop.wav"},
+
 #if 0
-  SND_ALCHEMY,
-  SND_CHASE,
-  SND_NETWORK,
-  SND_CZARDASZ,
-  SND_TYGER,
-  SND_VOYAGER,
-  SND_TWILIGHT
+  { "[not used]",              "antigrav.wav"  },
+  { "[not used]",              "bong.wav"      },
+  { "[not used]",              "fuel.wav"      },
+  { "[not used]",              "holz.wav"      },
+  { "[not used]",              "hui.wav"       },
+  { "[not used]",              "kabumm.wav"    },
+  { "[not used]",              "kink.wav"      },
+  { "[not used]",              "kling.wav"     },
+  { "[not used]",              "krach.wav"     },
+  { "[not used]",              "laser.wav"     },
+  { "[not used]",              "quiek.wav"     },
+  { "[not used]",              "rumms.wav"     },
+  { "[not used]",              "schlopp.wav"   },
+  { "[not used]",              "schrff.wav"    },
+  { "[not used]",              "schwirr.wav"   },
+  { "[not used]",              "slurp.wav"     },
+  { "[not used]",              "sproing.wav"   },
+  { "[not used]",              "warnton.wav"   },
+  { "[not used]",              "whoosh.wav"    },
+  { "[not used]",              "boom.wav"      },
+  { "[not used]",              "exit.wav"      },
 #endif
 };
-int num_bg_loops = sizeof(background_loop)/sizeof(int);
 
 char *element_info[] =
 {