Files
@ r26336:7c7912ebd301
Branch filter:
Location: cpp/openttd-patchpack/source/src/sound_type.h
r26336:7c7912ebd301
8.4 KiB
text/x-c
Fix #9974, aa5a8fe: strftime buffer maxsize is off by one
strftime() return value doesn't count NULL character, but buffer size must include it.
strftime() return value doesn't count NULL character, but buffer size must include it.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 | /*
* This file is part of OpenTTD.
* OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
* OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
*/
/** @file sound_type.h Types related to sounds. */
#ifndef SOUND_TYPE_H
#define SOUND_TYPE_H
struct SoundEntry {
class RandomAccessFile *file;
size_t file_offset;
size_t file_size;
uint16 rate;
uint8 bits_per_sample;
uint8 channels;
uint8 volume;
uint8 priority;
byte grf_container_ver; ///< NewGRF container version if the sound is from a NewGRF.
};
/**
* Sound effects from baseset.
*
* This enum contains the sound effects from the sound baseset.
* For hysterical raisins the order of sound effects in the baseset
* is different to the order they are referenced in TTD/NewGRF.
* - The first two sound effects from the baseset are inserted at position 39.
* (see translation table _sound_idx)
* - The order in the enum is the order using in TTD/NewGRF.
* - The naming of the enum values includes the position in the baseset.
* That is, for sound effects 0x02 to 0x28 the naming is off-by-two.
*/
enum SoundFx {
SND_BEGIN = 0,
SND_02_CONSTRUCTION_WATER = 0, ///< 0 == 0x00 Construction: water infrastructure
SND_03_FACTORY, ///< 1 == 0x01 Industry producing: factory: whistle
SND_04_DEPARTURE_STEAM, ///< 2 == 0x02 Station departure: steam engine
SND_05_TRAIN_THROUGH_TUNNEL, ///< 3 == 0x03 Train enters tunnel: steam engine
SND_06_DEPARTURE_CARGO_SHIP, ///< 4 == 0x04 Station departure: cargo ships
SND_07_DEPARTURE_FERRY, ///< 5 == 0x05 Station departure: passenger ships
SND_08_TAKEOFF_PROPELLER, ///< 6 == 0x06 Takeoff: propeller plane (non-toyland)
SND_09_TAKEOFF_JET, ///< 7 == 0x07 Takeoff: regular jet plane
SND_0A_DEPARTURE_TRAIN, ///< 8 == 0x08 Station departure: diesel and electric engine
SND_0B_MINE, ///< 9 == 0x09 Industry animation: coal/copper/gold mine: headgear
SND_0C_POWER_STATION, ///< 10 == 0x0A Industry animation: power station: spark
SND_0D_UNUSED, ///< 11 == 0x0B unused (1)
SND_0E_LEVEL_CROSSING, ///< 12 == 0x0C Train passes through level crossing
SND_0F_BREAKDOWN_ROADVEHICLE, ///< 13 == 0x0D Breakdown: road vehicle (non-toyland)
SND_10_BREAKDOWN_TRAIN_SHIP, ///< 14 == 0x0E Breakdown: train or ship (non-toyland)
SND_11_UNUSED, ///< 15 == 0x0F unused (2)
SND_12_EXPLOSION, ///< 16 == 0x10 Destruction, crashes, disasters, ...
SND_13_TRAIN_COLLISION, ///< 15 == 0x11 Train+train crash
SND_14_CASHTILL, ///< 18 == 0x12 Income from cargo delivery
SND_15_BEEP, ///< 19 == 0x13 GUI button click
SND_16_NEWS_TICKER, ///< 20 == 0x14 News ticker
SND_17_SKID_PLANE, ///< 21 == 0x15 Plane landing / touching ground
SND_18_TAKEOFF_HELICOPTER, ///< 22 == 0x16 Takeoff: helicopter
SND_19_DEPARTURE_OLD_RV_1, ///< 23 == 0x17 Station departure: truck and old bus (1) (non-toyland)
SND_1A_DEPARTURE_OLD_RV_2, ///< 24 == 0x18 Station departure: truck and old bus (2) (random variation of SND_19_DEPARTURE_OLD_RV_1) (non-toyland)
SND_1B_DEPARTURE_MODERN_BUS, ///< 25 == 0x19 Station departure: modern bus (non-toyland)
SND_1C_DEPARTURE_OLD_BUS, ///< 26 == 0x1A Station departure: old bus (non-toyland)
SND_1D_APPLAUSE, ///< 27 == 0x1B News: first vehicle at station
SND_1E_NEW_ENGINE, ///< 28 == 0x1C News: new engine available
SND_1F_CONSTRUCTION_OTHER, ///< 29 == 0x1D Construction: other (non-water, non-rail, non-bridge)
SND_20_CONSTRUCTION_RAIL, ///< 30 == 0x1E Construction: rail infrastructure
SND_21_ROAD_WORKS, ///< 31 == 0x1F Road reconstruction animation
SND_22_UNUSED, ///< 32 == 0x20 unused (3)
SND_23_UNUSED, ///< 33 == 0x21 unused (4)
SND_24_FARM_1, ///< 34 == 0x22 Industry producing: farm (1): sheep
SND_25_FARM_2, ///< 35 == 0x23 Industry producing: farm (2): cow
SND_26_FARM_3, ///< 36 == 0x24 Industry producing: farm (3): horse
SND_27_CONSTRUCTION_BRIDGE, ///< 37 == 0x25 Construction: bridge
SND_28_SAWMILL, ///< 38 == 0x26 Industry producing: sawmill
SND_00_GOOD_YEAR, ///< 39 == 0x27 New year: performance improved
SND_01_BAD_YEAR, ///< 40 == 0x28 New year: performance declined
SND_29_SUGAR_MINE_2, ///< 41 == 0x29 Industry animation: sugar mine (2): shaking sieve
SND_2A_TOY_FACTORY_3, ///< 42 == 0x2A Industry animation: toy factory (3): eject product
SND_2B_TOY_FACTORY_2, ///< 43 == 0x2B Industry animation: toy factory (2): stamp product
SND_2C_TOY_FACTORY_1, ///< 44 == 0x2C Industry animation: toy factory (1): conveyor belt
SND_2D_SUGAR_MINE_1, ///< 45 == 0x2D Industry animation: sugar mine (1): shaking sieve
SND_2E_BUBBLE_GENERATOR, ///< 46 == 0x2E Industry animation: bubble generator (1): generate bubble
SND_2F_BUBBLE_GENERATOR_FAIL, ///< 47 == 0x2F Industry animation: bubble generator (2a): bubble pop
SND_30_TOFFEE_QUARRY, ///< 48 == 0x30 Industry animation: toffee quarry: drill
SND_31_BUBBLE_GENERATOR_SUCCESS, ///< 49 == 0x31 Industry animation: bubble generator (2b): bubble slurped
SND_32_UNUSED, ///< 50 == 0x32 unused (5)
SND_33_PLASTIC_MINE, ///< 51 == 0x33 Industry producing: plastic fountain
SND_34_ARCTIC_SNOW_1, ///< 52 == 0x34 Tree ambient: arctic snow (1): wind
SND_35_BREAKDOWN_ROADVEHICLE_TOYLAND, ///< 53 == 0x35 Breakdown: road vehicle (toyland)
SND_36_LUMBER_MILL_3, ///< 54 == 0x36 Industry animation: lumber mill (3): crashing tree
SND_37_LUMBER_MILL_2, ///< 55 == 0x37 Industry animation: lumber mill (2): falling tree
SND_38_LUMBER_MILL_1, ///< 56 == 0x38 Industry animation: lumber mill (1): chainsaw
SND_39_ARCTIC_SNOW_2, ///< 57 == 0x39 Tree ambient: arctic snow (2): heavy wind
SND_3A_BREAKDOWN_TRAIN_SHIP_TOYLAND, ///< 58 == 0x3A Breakdown: train or ship (toyland)
SND_3B_TAKEOFF_JET_FAST, ///< 59 == 0x3B Takeoff: supersonic plane (fast)
SND_3C_DEPARTURE_BUS_TOYLAND_1, ///< 60 == 0x3C Station departure: bus (1) (toyland)
SND_3D_TAKEOFF_JET_BIG, ///< 61 == 0x3D Takeoff: huge jet plane (high capacity)
SND_3E_DEPARTURE_BUS_TOYLAND_2, ///< 62 == 0x3E Station departure: bus (2) (toyland)
SND_3F_DEPARTURE_TRUCK_TOYLAND_1, ///< 63 == 0x3F Station departure: truck (1) (toyland)
SND_40_DEPARTURE_TRUCK_TOYLAND_2, ///< 64 == 0x40 Station departure: truck (2) (toyland)
SND_41_DEPARTURE_MAGLEV, ///< 65 == 0x41 Station departure: maglev engine
SND_42_RAINFOREST_1, ///< 66 == 0x42 Tree ambient: rainforest ambient (1): bird (1)
SND_43_RAINFOREST_2, ///< 67 == 0x43 Tree ambient: rainforest ambient (2): lion
SND_44_RAINFOREST_3, ///< 68 == 0x44 Tree ambient: rainforest ambient (3): monkeys
SND_45_TAKEOFF_PROPELLER_TOYLAND_1, ///< 69 == 0x45 Takeoff: propeller plane (1) (toyland)
SND_46_TAKEOFF_PROPELLER_TOYLAND_2, ///< 70 == 0x46 Takeoff: propeller plane (2) (toyland)
SND_47_DEPARTURE_MONORAIL, ///< 71 == 0x47 Station departure: monorail engine
SND_48_RAINFOREST_4, ///< 72 == 0x48 Tree ambient: rainforest ambient (4): bird (2)
SND_END
};
/** The number of sounds in the original sample.cat */
static const uint ORIGINAL_SAMPLE_COUNT = 73;
typedef uint16 SoundID;
static const SoundID INVALID_SOUND = 0xFFFF;
#endif /* SOUND_TYPE_H */
|