changeset 18875:b09d72b6f543 draft

(svn r23724) -Codechange: split of the check to see if ambient sounds are enabled to a header file allowing compilers to inline that check
author yexo <yexo@openttd.org>
date Tue, 03 Jan 2012 00:45:22 +0000
parents cbdefaa36526
children f07039e124aa
files src/clear_cmd.cpp src/newgrf_generic.cpp src/newgrf_generic.h src/tree_cmd.cpp src/water_cmd.cpp
diffstat 5 files changed, 13 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/src/clear_cmd.cpp
+++ b/src/clear_cmd.cpp
@@ -259,7 +259,7 @@
 			return;
 		}
 	}
-	AmbientSoundEffectCallback(tile);
+	AmbientSoundEffect(tile);
 
 	switch (_settings_game.game_creation.landscape) {
 		case LT_TROPIC: TileLoopClearDesert(tile); break;
--- a/src/newgrf_generic.cpp
+++ b/src/newgrf_generic.cpp
@@ -235,8 +235,6 @@
 {
 	assert(IsTileType(tile, MP_CLEAR) || IsTileType(tile, MP_TREES) || IsTileType(tile, MP_WATER));
 
-	/* Only run callback if enabled. */
-	if (!HasGrfMiscBit(GMB_AMBIENT_SOUND_CALLBACK)) return;
 	/* Only run every 1/200-th time. */
 	uint32 r; // Save for later
 	if (!Chance16R(1, 200, r)) return;
--- a/src/newgrf_generic.h
+++ b/src/newgrf_generic.h
@@ -51,6 +51,15 @@
 void AddGenericCallback(uint8 feature, const GRFFile *file, const SpriteGroup *group);
 
 uint16 GetAiPurchaseCallbackResult(uint8 feature, CargoID cargo_type, uint8 default_selection, IndustryType src_industry, IndustryType dst_industry, uint8 distance, AIConstructionEvent event, uint8 count, uint8 station_size, const GRFFile **file);
-void AmbientSoundEffectCallback(TileIndex tile);
+
+/** Play an ambient sound effect for an empty tile. */
+static inline void AmbientSoundEffect(TileIndex tile)
+{
+	/* Only run callback if enabled. */
+	if (!HasGrfMiscBit(GMB_AMBIENT_SOUND_CALLBACK)) return;
+
+	extern void AmbientSoundEffectCallback(TileIndex tile);
+	AmbientSoundEffectCallback(tile);
+}
 
 #endif /* NEWGRF_GENERIC_H */
--- a/src/tree_cmd.cpp
+++ b/src/tree_cmd.cpp
@@ -627,7 +627,7 @@
 		}
 	}
 
-	AmbientSoundEffectCallback(tile);
+	AmbientSoundEffect(tile);
 
 	uint treeCounter = GetTreeCounter(tile);
 
--- a/src/water_cmd.cpp
+++ b/src/water_cmd.cpp
@@ -1143,7 +1143,7 @@
  */
 void TileLoop_Water(TileIndex tile)
 {
-	if (IsTileType(tile, MP_WATER)) AmbientSoundEffectCallback(tile);
+	if (IsTileType(tile, MP_WATER)) AmbientSoundEffect(tile);
 
 	switch (GetFloodingBehaviour(tile)) {
 		case FLOOD_ACTIVE: