# HG changeset patch # User rubidium # Date 2009-05-17 17:17:48 # Node ID f2bc1b87905712249eb2103169f201e88000e57a # Parent 6facb6ede000a25880f703f674cc9debeec54fec (svn r16340) -Codechange: introduce SoundID (uint16) and use that instead of SoundFX, which was used as a byte and uint16 at different places, when the uint16 sound ID is meant. diff --git a/src/engine_type.h b/src/engine_type.h --- a/src/engine_type.h +++ b/src/engine_type.h @@ -62,7 +62,7 @@ struct ShipVehicleInfo { CargoID cargo_type; uint16 capacity; byte running_cost; - SoundFxByte sfx; + SoundID sfx; bool refittable; }; @@ -80,7 +80,7 @@ struct AircraftVehicleInfo { byte cost_factor; byte running_cost; byte subtype; - SoundFxByte sfx; + SoundID sfx; byte acceleration; uint16 max_speed; byte mail_capacity; @@ -92,7 +92,7 @@ struct RoadVehicleInfo { byte cost_factor; byte running_cost; byte running_cost_class; - SoundFxByte sfx; + SoundID sfx; uint16 max_speed; ///< Maximum speed in mph/3.2 units byte capacity; CargoID cargo_type; diff --git a/src/newgrf.cpp b/src/newgrf.cpp --- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -811,7 +811,7 @@ static ChangeInfoResult RoadVehicleChang break; case 0x12: // SFX - rvi->sfx = (SoundFx)grf_load_byte(&buf); + rvi->sfx = grf_load_byte(&buf); break; case 0x13: // Power in 10hp @@ -937,7 +937,7 @@ static ChangeInfoResult ShipVehicleChang break; case 0x10: // SFX - svi->sfx = (SoundFx)grf_load_byte(&buf); + svi->sfx = grf_load_byte(&buf); break; case 0x11: // Cargos available for refitting @@ -1053,7 +1053,7 @@ static ChangeInfoResult AircraftVehicleC break; case 0x12: // SFX - avi->sfx = (SoundFx)grf_load_byte(&buf); + avi->sfx = grf_load_byte(&buf); break; case 0x13: // Cargos available for refitting @@ -2020,7 +2020,7 @@ static ChangeInfoResult SoundEffectChang } for (int i = 0; i < numinfo; i++) { - uint sound = sid + i + _cur_grffile->sound_offset - ORIGINAL_SAMPLE_COUNT; + SoundID sound = sid + i + _cur_grffile->sound_offset - ORIGINAL_SAMPLE_COUNT; if (sound >= GetNumSounds()) { grfmsg(1, "SoundEffectChangeInfo: Sound %d not defined (max %d)", sound, GetNumSounds()); @@ -2037,7 +2037,7 @@ static ChangeInfoResult SoundEffectChang break; case 0x0A: { // Override old sound - uint orig_sound = grf_load_byte(&buf); + SoundID orig_sound = grf_load_byte(&buf); if (orig_sound >= ORIGINAL_SAMPLE_COUNT) { grfmsg(1, "SoundEffectChangeInfo: Original sound %d not defined (max %d)", orig_sound, ORIGINAL_SAMPLE_COUNT); diff --git a/src/newgrf_sound.cpp b/src/newgrf_sound.cpp --- a/src/newgrf_sound.cpp +++ b/src/newgrf_sound.cpp @@ -34,7 +34,7 @@ void InitializeSoundPool() } -FileEntry *GetSound(uint index) +FileEntry *GetSound(SoundID index) { if (index >= GetNumSounds()) return NULL; return GetSoundInternal(index); diff --git a/src/newgrf_sound.h b/src/newgrf_sound.h --- a/src/newgrf_sound.h +++ b/src/newgrf_sound.h @@ -23,9 +23,9 @@ enum VehicleSoundEvent { FileEntry *AllocateFileEntry(); void InitializeSoundPool(); -FileEntry *GetSound(uint index); +FileEntry *GetSound(SoundID sound_id); uint GetNumSounds(); bool PlayVehicleSound(const Vehicle *v, VehicleSoundEvent event); -bool PlayTileSound(const struct GRFFile *file, uint16 sound_id, TileIndex tile); +bool PlayTileSound(const struct GRFFile *file, SoundID sound_id, TileIndex tile); #endif /* NEWGRF_SOUND_H */ diff --git a/src/news_type.h b/src/news_type.h --- a/src/news_type.h +++ b/src/news_type.h @@ -5,6 +5,7 @@ #ifndef NEWS_TYPE_H #define NEWS_TYPE_H +#include "core/enum_type.hpp" #include "date_type.h" #include "strings_type.h" #include "sound_type.h" diff --git a/src/roadveh_cmd.cpp b/src/roadveh_cmd.cpp --- a/src/roadveh_cmd.cpp +++ b/src/roadveh_cmd.cpp @@ -690,7 +690,7 @@ TileIndex RoadVehicle::GetOrderStationLo static void StartRoadVehSound(const Vehicle *v) { if (!PlayVehicleSound(v, VSE_START)) { - SoundFx s = RoadVehInfo(v->engine_type)->sfx; + SoundID s = RoadVehInfo(v->engine_type)->sfx; if (s == SND_19_BUS_START_PULL_AWAY && (v->tick_counter & 3) == 0) s = SND_1A_BUS_START_PULL_AWAY_WITH_HORN; SndPlayVehicleFx(s, v); diff --git a/src/sound.cpp b/src/sound.cpp --- a/src/sound.cpp +++ b/src/sound.cpp @@ -123,11 +123,11 @@ bool SoundInitialize(const char *filenam } /* Low level sound player */ -static void StartSound(uint sound, int panning, uint volume) +static void StartSound(SoundID sound_id, int panning, uint volume) { if (volume == 0) return; - const FileEntry *fe = GetSound(sound); + const FileEntry *fe = GetSound(sound_id); if (fe == NULL) return; MixerChannel *mc = MxAllocateChannel(); @@ -195,7 +195,7 @@ void SndCopyToPool() * @param top Top edge of virtual coordinates where the sound is produced * @param bottom Bottom edge of virtual coordinates where the sound is produced */ -static void SndPlayScreenCoordFx(SoundFx sound, int left, int right, int top, int bottom) +static void SndPlayScreenCoordFx(SoundID sound, int left, int right, int top, int bottom) { if (msf.effect_vol == 0) return; @@ -220,7 +220,7 @@ static void SndPlayScreenCoordFx(SoundFx } } -void SndPlayTileFx(SoundFx sound, TileIndex tile) +void SndPlayTileFx(SoundID sound, TileIndex tile) { /* emits sound from center of the tile */ int x = min(MapMaxX() - 1, TileX(tile)) * TILE_SIZE + TILE_SIZE / 2; @@ -232,7 +232,7 @@ void SndPlayTileFx(SoundFx sound, TileIn SndPlayScreenCoordFx(sound, pt.x, pt2.x, pt.y, pt2.y); } -void SndPlayVehicleFx(SoundFx sound, const Vehicle *v) +void SndPlayVehicleFx(SoundID sound, const Vehicle *v) { SndPlayScreenCoordFx(sound, v->coord.left, v->coord.right, @@ -240,7 +240,7 @@ void SndPlayVehicleFx(SoundFx sound, con ); } -void SndPlayFx(SoundFx sound) +void SndPlayFx(SoundID sound) { StartSound(sound, 0, msf.effect_vol); } diff --git a/src/sound_func.h b/src/sound_func.h --- a/src/sound_func.h +++ b/src/sound_func.h @@ -13,9 +13,9 @@ extern MusicFileSettings msf; bool SoundInitialize(const char *filename); -void SndPlayTileFx(SoundFx sound, TileIndex tile); -void SndPlayVehicleFx(SoundFx sound, const Vehicle *v); -void SndPlayFx(SoundFx sound); +void SndPlayTileFx(SoundID sound, TileIndex tile); +void SndPlayVehicleFx(SoundID sound, const Vehicle *v); +void SndPlayFx(SoundID sound); void SndCopyToPool(); #endif /* SOUND_FUNC_H */ diff --git a/src/sound_type.h b/src/sound_type.h --- a/src/sound_type.h +++ b/src/sound_type.h @@ -5,8 +5,6 @@ #ifndef SOUND_TYPE_H #define SOUND_TYPE_H -#include "core/enum_type.hpp" - struct MusicFileSettings { byte playlist; byte music_vol; @@ -106,11 +104,9 @@ enum SoundFx { SND_END }; -/** Define basic enum properties */ -template <> struct EnumPropsT : MakeEnumPropsT {}; -typedef TinyEnumT SoundFxByte; - /** The number of sounds in the original sample.cat */ static const uint ORIGINAL_SAMPLE_COUNT = 73; +typedef uint16 SoundID; + #endif /* SOUND_TYPE_H */ diff --git a/src/table/engines.h b/src/table/engines.h --- a/src/table/engines.h +++ b/src/table/engines.h @@ -518,7 +518,7 @@ static const RailVehicleInfo _orig_rail_ * @param g sound effect * @param h refittable */ -#define SVI(a, b, c, d, e, f, g, h) { a, b, c, d, e, f, {g}, h } +#define SVI(a, b, c, d, e, f, g, h) { a, b, c, d, e, f, g, h } static const ShipVehicleInfo _orig_ship_vehicle_info[] = { /* image_index cargo_type cargo_amount refittable * | base_cost | | running_cost | @@ -550,7 +550,7 @@ static const ShipVehicleInfo _orig_ship_ * @param h mail_capacity * @param i passenger_capacity */ -#define AVI(a, b, c, d, e, f, g, h, i) { a, b, c, d, {e}, f, (g * 129) / 10, h, i } +#define AVI(a, b, c, d, e, f, g, h, i) { a, b, c, d, e, f, (g * 129) / 10, h, i } #define H AIR_HELI #define P AIR_CTOL #define J AIR_CTOL | AIR_FAST @@ -619,7 +619,7 @@ static const AircraftVehicleInfo _orig_a * @param h weight (1/4ton) * @param i power (10hp) */ -#define ROV(a, b, c, d, e, f, g, h, i) { a, b, c, RC_R, {d}, e, f, g, h, i, 76, 0 } +#define ROV(a, b, c, d, e, f, g, h, i) { a, b, c, RC_R, d, e, f, g, h, i, 76, 0 } static const RoadVehicleInfo _orig_road_vehicle_info[] = { /* image_index sfx max_speed * | base_cost | | capacity