From 0cdb1b7f5c95d832b0d9269fed155bcb01870cf3 Mon Sep 17 00:00:00 2001 From: TimePath Date: Tue, 3 Nov 2015 20:47:21 +1100 Subject: [PATCH] Sounds: infer extensions --- qcsrc/client/tuba.qc | 2 +- qcsrc/common/items/item/armor.qc | 8 +- qcsrc/common/items/item/health.qc | 8 +- qcsrc/common/items/item/powerup.qc | 4 +- .../common/mutators/mutator/instagib/items.qc | 8 +- qcsrc/common/sounds/all.inc | 214 +++++++++--------- qcsrc/common/sounds/all.qh | 4 +- qcsrc/common/sounds/sound.qh | 67 ++++-- qcsrc/common/weapons/all.qc | 11 +- qcsrc/server/t_items.qc | 2 +- 10 files changed, 171 insertions(+), 157 deletions(-) diff --git a/qcsrc/client/tuba.qc b/qcsrc/client/tuba.qc index ed2964936..68858ab52 100644 --- a/qcsrc/client/tuba.qc +++ b/qcsrc/client/tuba.qc @@ -3,7 +3,7 @@ #include "../common/constants.qh" -#define TUBA_STARTNOTE(i, n) W_Sound(strcat("tuba", (i ? ftos(i) : ""), "_loopnote", ftos(n))) +#define TUBA_STARTNOTE(i, n) _Sound_fixpath(W_Sound(strcat("tuba", (i ? ftos(i) : ""), "_loopnote", ftos(n)))) const int TUBA_MIN = -18; const int TUBA_MAX = 27; diff --git a/qcsrc/common/items/item/armor.qc b/qcsrc/common/items/item/armor.qc index bea60a49e..5bd550838 100644 --- a/qcsrc/common/items/item/armor.qc +++ b/qcsrc/common/items/item/armor.qc @@ -5,7 +5,7 @@ #ifndef MENUQC MODEL(ArmorSmall_ITEM, Item_Model("item_armor_small.md3")); -SOUND(ArmorSmall, "misc/armor1.wav"); +SOUND(ArmorSmall, "misc/armor1"); #endif REGISTER_ITEM(ArmorSmall, Armor) { @@ -25,7 +25,7 @@ REGISTER_ITEM(ArmorSmall, Armor) { #ifndef MENUQC MODEL(ArmorMedium_ITEM, Item_Model("item_armor_medium.md3")); -SOUND(ArmorMedium, "misc/armor10.wav"); +SOUND(ArmorMedium, "misc/armor10"); #endif REGISTER_ITEM(ArmorMedium, Armor) { @@ -45,7 +45,7 @@ REGISTER_ITEM(ArmorMedium, Armor) { #ifndef MENUQC MODEL(ArmorLarge_ITEM, Item_Model("item_armor_big.md3")); -SOUND(ArmorLarge, "misc/armor17_5.wav"); +SOUND(ArmorLarge, "misc/armor17_5"); #endif REGISTER_ITEM(ArmorLarge, Armor) { @@ -67,7 +67,7 @@ REGISTER_ITEM(ArmorLarge, Armor) { #ifndef MENUQC MODEL(ArmorMega_ITEM, Item_Model("item_armor_large.md3")); -SOUND(ArmorMega, "misc/armor25.wav"); +SOUND(ArmorMega, "misc/armor25"); #endif REGISTER_ITEM(ArmorMega, Armor) { diff --git a/qcsrc/common/items/item/health.qc b/qcsrc/common/items/item/health.qc index de075a202..6a2b5b138 100644 --- a/qcsrc/common/items/item/health.qc +++ b/qcsrc/common/items/item/health.qc @@ -5,7 +5,7 @@ #ifndef MENUQC MODEL(HealthSmall_ITEM, Item_Model("g_h1.md3")); -SOUND(HealthSmall, "misc/minihealth.ogg"); +SOUND(HealthSmall, "misc/minihealth"); #endif REGISTER_ITEM(HealthSmall, Health) { @@ -25,7 +25,7 @@ REGISTER_ITEM(HealthSmall, Health) { #ifndef MENUQC MODEL(HealthMedium_ITEM, Item_Model("g_h25.md3")); -SOUND(HealthMedium, "misc/mediumhealth.ogg"); +SOUND(HealthMedium, "misc/mediumhealth"); #endif REGISTER_ITEM(HealthMedium, Health) { @@ -45,7 +45,7 @@ REGISTER_ITEM(HealthMedium, Health) { #ifndef MENUQC MODEL(HealthLarge_ITEM, Item_Model("g_h50.md3")); -SOUND(HealthLarge, "misc/mediumhealth.ogg"); +SOUND(HealthLarge, "misc/mediumhealth"); #endif REGISTER_ITEM(HealthLarge, Health) { @@ -67,7 +67,7 @@ REGISTER_ITEM(HealthLarge, Health) { #ifndef MENUQC MODEL(HealthMega_ITEM, Item_Model("g_h100.md3")); -SOUND(HealthMega, "misc/megahealth.ogg"); +SOUND(HealthMega, "misc/megahealth"); #endif REGISTER_ITEM(HealthMega, Health) { diff --git a/qcsrc/common/items/item/powerup.qc b/qcsrc/common/items/item/powerup.qc index a1cf732c1..7deba67df 100644 --- a/qcsrc/common/items/item/powerup.qc +++ b/qcsrc/common/items/item/powerup.qc @@ -6,7 +6,7 @@ #ifndef MENUQC MODEL(Strength_ITEM, Item_Model("g_strength.md3")); -SOUND(Strength, "misc/powerup.ogg"); +SOUND(Strength, "misc/powerup"); #endif REGISTER_ITEM(Strength, Powerup) { @@ -24,7 +24,7 @@ REGISTER_ITEM(Strength, Powerup) { #ifndef MENUQC MODEL(Shield_ITEM, Item_Model("g_invincible.md3")); -SOUND(Shield, "misc/powerup_shield.ogg"); +SOUND(Shield, "misc/powerup_shield"); #endif REGISTER_ITEM(Shield, Powerup) { diff --git a/qcsrc/common/mutators/mutator/instagib/items.qc b/qcsrc/common/mutators/mutator/instagib/items.qc index ec2e25e33..a069e535f 100644 --- a/qcsrc/common/mutators/mutator/instagib/items.qc +++ b/qcsrc/common/mutators/mutator/instagib/items.qc @@ -9,7 +9,7 @@ GETTER(float, instagib_respawntimejitter_ammo) #ifndef MENUQC MODEL(VaporizerCells_ITEM, Item_Model("a_cells.md3")); -SOUND(VaporizerCells, "misc/itempickup.ogg"); +SOUND(VaporizerCells, "misc/itempickup"); #endif REGISTER_ITEM(VaporizerCells, Ammo) { @@ -29,7 +29,7 @@ REGISTER_ITEM(VaporizerCells, Ammo) { #ifndef MENUQC MODEL(ExtraLife_ITEM, Item_Model("g_h100.md3")); -SOUND(ExtraLife, "misc/megahealth.ogg"); +SOUND(ExtraLife, "misc/megahealth"); #endif REGISTER_ITEM(ExtraLife, Powerup) { @@ -47,7 +47,7 @@ REGISTER_ITEM(ExtraLife, Powerup) { #ifndef MENUQC MODEL(Invisibility_ITEM, Item_Model("g_strength.md3")); -SOUND(Invisibility, "misc/powerup.ogg"); +SOUND(Invisibility, "misc/powerup"); #endif REGISTER_ITEM(Invisibility, Powerup) { @@ -65,7 +65,7 @@ REGISTER_ITEM(Invisibility, Powerup) { #ifndef MENUQC MODEL(Speed_ITEM, Item_Model("g_invincible.md3")); -SOUND(Speed, "misc/powerup_shield.ogg"); +SOUND(Speed, "misc/powerup_shield"); #endif REGISTER_ITEM(Speed, Powerup) { diff --git a/qcsrc/common/sounds/all.inc b/qcsrc/common/sounds/all.inc index 87c28c353..69a95be0c 100644 --- a/qcsrc/common/sounds/all.inc +++ b/qcsrc/common/sounds/all.inc @@ -106,11 +106,11 @@ SOUND(WEAPONPICKUP, W_Sound("weaponpickup")); SOUND(WEAPONPICKUP_NEW_TOYS, W_Sound("weaponpickup_new_toys")); SOUND(WEAPON_SWITCH, W_Sound("weapon_switch")); -SOUND(CTF_CAPTURE_NEUTRAL, "ctf/capture.ogg"); -SOUND(CTF_CAPTURE_RED, "ctf/red_capture.wav"); -SOUND(CTF_CAPTURE_BLUE, "ctf/blue_capture.wav"); -SOUND(CTF_CAPTURE_YELLOW, "ctf/yellow_capture.ogg"); -SOUND(CTF_CAPTURE_PINK, "ctf/pink_capture.ogg"); +SOUND(CTF_CAPTURE_NEUTRAL, "ctf/capture"); +SOUND(CTF_CAPTURE_RED, "ctf/red_capture"); +SOUND(CTF_CAPTURE_BLUE, "ctf/blue_capture"); +SOUND(CTF_CAPTURE_YELLOW, "ctf/yellow_capture"); +SOUND(CTF_CAPTURE_PINK, "ctf/pink_capture"); Sound SND_CTF_CAPTURE(int teamid) { switch (teamid) { case NUM_TEAM_1: return SND_CTF_CAPTURE_RED; @@ -121,11 +121,11 @@ Sound SND_CTF_CAPTURE(int teamid) { } } -SOUND(CTF_DROPPED_NEUTRAL, "ctf/neutral_dropped.wav"); -SOUND(CTF_DROPPED_RED, "ctf/red_dropped.wav"); -SOUND(CTF_DROPPED_BLUE, "ctf/blue_dropped.wav"); -SOUND(CTF_DROPPED_YELLOW, "ctf/yellow_dropped.wav"); -SOUND(CTF_DROPPED_PINK, "ctf/pink_dropped.wav"); +SOUND(CTF_DROPPED_NEUTRAL, "ctf/neutral_dropped"); +SOUND(CTF_DROPPED_RED, "ctf/red_dropped"); +SOUND(CTF_DROPPED_BLUE, "ctf/blue_dropped"); +SOUND(CTF_DROPPED_YELLOW, "ctf/yellow_dropped"); +SOUND(CTF_DROPPED_PINK, "ctf/pink_dropped"); Sound SND_CTF_DROPPED(int teamid) { switch (teamid) { case NUM_TEAM_1: return SND_CTF_DROPPED_RED; @@ -136,14 +136,14 @@ Sound SND_CTF_DROPPED(int teamid) { } } -SOUND(CTF_PASS, "ctf/pass.wav"); -SOUND(CTF_RESPAWN, "ctf/flag_respawn.wav"); +SOUND(CTF_PASS, "ctf/pass"); +SOUND(CTF_RESPAWN, "ctf/flag_respawn"); -SOUND(CTF_RETURNED_NEUTRAL, "ctf/return.wav"); -SOUND(CTF_RETURNED_RED, "ctf/red_returned.wav"); -SOUND(CTF_RETURNED_BLUE, "ctf/blue_returned.wav"); -SOUND(CTF_RETURNED_YELLOW, "ctf/yellow_returned.wav"); -SOUND(CTF_RETURNED_PINK, "ctf/pink_returned.wav"); +SOUND(CTF_RETURNED_NEUTRAL, "ctf/return"); +SOUND(CTF_RETURNED_RED, "ctf/red_returned"); +SOUND(CTF_RETURNED_BLUE, "ctf/blue_returned"); +SOUND(CTF_RETURNED_YELLOW, "ctf/yellow_returned"); +SOUND(CTF_RETURNED_PINK, "ctf/pink_returned"); Sound SND_CTF_RETURNED(int teamid) { switch (teamid) { case NUM_TEAM_1: return SND_CTF_RETURNED_RED; @@ -154,11 +154,11 @@ Sound SND_CTF_RETURNED(int teamid) { } } -SOUND(CTF_TAKEN_NEUTRAL, "ctf/neutral_taken.wav"); -SOUND(CTF_TAKEN_RED, "ctf/red_taken.wav"); -SOUND(CTF_TAKEN_BLUE, "ctf/blue_taken.wav"); -SOUND(CTF_TAKEN_YELLOW, "ctf/yellow_taken.wav"); -SOUND(CTF_TAKEN_PINK, "ctf/pink_taken.wav"); +SOUND(CTF_TAKEN_NEUTRAL, "ctf/neutral_taken"); +SOUND(CTF_TAKEN_RED, "ctf/red_taken"); +SOUND(CTF_TAKEN_BLUE, "ctf/blue_taken"); +SOUND(CTF_TAKEN_YELLOW, "ctf/yellow_taken"); +SOUND(CTF_TAKEN_PINK, "ctf/pink_taken"); Sound SND_CTF_TAKEN(int teamid) { switch (teamid) { case NUM_TEAM_1: return SND_CTF_TAKEN_RED; @@ -169,109 +169,109 @@ Sound SND_CTF_TAKEN(int teamid) { } } -SOUND(CTF_TOUCH, "ctf/touch.wav"); - -SOUND(DOM_CLAIM, "domination/claim.wav"); - -SOUND(KA_DROPPED, "keepaway/dropped.wav"); -SOUND(KA_PICKEDUP, "keepaway/pickedup.wav"); -SOUND(KA_RESPAWN, "keepaway/respawn.wav"); -SOUND(KA_TOUCH, "keepaway/touch.wav"); - -SOUND(KH_ALARM, "kh/alarm.wav"); -SOUND(KH_CAPTURE, "kh/capture.wav"); -SOUND(KH_COLLECT, "kh/collect.wav"); -SOUND(KH_DESTROY, "kh/destroy.wav"); -SOUND(KH_DROP, "kh/drop.wav"); - -SOUND(NB_BOUNCE, "nexball/bounce.ogg"); -SOUND(NB_DROP, "nexball/drop.ogg"); -SOUND(NB_SHOOT1, "nexball/shoot1.ogg"); -SOUND(NB_SHOOT2, "nexball/shoot2.ogg"); -SOUND(NB_STEAL, "nexball/steal.ogg"); - -SOUND(ONS_CONTROLPOINT_BUILD, "onslaught/controlpoint_build.ogg"); -SOUND(ONS_CONTROLPOINT_BUILT, "onslaught/controlpoint_built.ogg"); -SOUND(ONS_CONTROLPOINT_UNDERATTACK, "onslaught/controlpoint_underattack.ogg"); -SOUND(ONS_DAMAGEBLOCKEDBYSHIELD, "onslaught/damageblockedbyshield.wav"); -SOUND(ONS_ELECTRICITY_EXPLODE, "onslaught/electricity_explode.ogg"); -SOUND(ONS_GENERATOR_DECAY, "onslaught/generator_decay.ogg"); -SOUND(ONS_GENERATOR_UNDERATTACK, "onslaught/generator_underattack.ogg"); -SOUND(ONS_HIT1, "onslaught/ons_hit1.ogg"); -SOUND(ONS_HIT2, "onslaught/ons_hit2.ogg"); -SOUND(ONS_SPARK1, "onslaught/ons_spark1.ogg"); -SOUND(ONS_SPARK2, "onslaught/ons_spark2.ogg"); -SOUND(ONS_SHOCKWAVE, "onslaught/shockwave.ogg"); - -SOUND(PORTO_BOUNCE, "porto/bounce.ogg"); -SOUND(PORTO_CREATE, "porto/create.ogg"); -SOUND(PORTO_EXPIRE, "porto/expire.ogg"); -SOUND(PORTO_EXPLODE, "porto/explode.ogg"); -SOUND(PORTO_FIRE, "porto/fire.ogg"); -SOUND(PORTO_UNSUPPORTED, "porto/unsupported.ogg"); - -SOUND(TUR_PHASER, "turrets/phaser.ogg"); - -SOUND(VEH_ALARM, "vehicles/alarm.wav"); -SOUND(VEH_ALARM_SHIELD, "vehicles/alarm_shield.wav"); -SOUND(VEH_MISSILE_ALARM, "vehicles/missile_alarm.wav"); +SOUND(CTF_TOUCH, "ctf/touch"); + +SOUND(DOM_CLAIM, "domination/claim"); + +SOUND(KA_DROPPED, "keepaway/dropped"); +SOUND(KA_PICKEDUP, "keepaway/pickedup"); +SOUND(KA_RESPAWN, "keepaway/respawn"); +SOUND(KA_TOUCH, "keepaway/touch"); + +SOUND(KH_ALARM, "kh/alarm"); +SOUND(KH_CAPTURE, "kh/capture"); +SOUND(KH_COLLECT, "kh/collect"); +SOUND(KH_DESTROY, "kh/destroy"); +SOUND(KH_DROP, "kh/drop"); + +SOUND(NB_BOUNCE, "nexball/bounce"); +SOUND(NB_DROP, "nexball/drop"); +SOUND(NB_SHOOT1, "nexball/shoot1"); +SOUND(NB_SHOOT2, "nexball/shoot2"); +SOUND(NB_STEAL, "nexball/steal"); + +SOUND(ONS_CONTROLPOINT_BUILD, "onslaught/controlpoint_build"); +SOUND(ONS_CONTROLPOINT_BUILT, "onslaught/controlpoint_built"); +SOUND(ONS_CONTROLPOINT_UNDERATTACK, "onslaught/controlpoint_underattack"); +SOUND(ONS_DAMAGEBLOCKEDBYSHIELD, "onslaught/damageblockedbyshield"); +SOUND(ONS_ELECTRICITY_EXPLODE, "onslaught/electricity_explode"); +SOUND(ONS_GENERATOR_DECAY, "onslaught/generator_decay"); +SOUND(ONS_GENERATOR_UNDERATTACK, "onslaught/generator_underattack"); +SOUND(ONS_HIT1, "onslaught/ons_hit1"); +SOUND(ONS_HIT2, "onslaught/ons_hit2"); +SOUND(ONS_SPARK1, "onslaught/ons_spark1"); +SOUND(ONS_SPARK2, "onslaught/ons_spark2"); +SOUND(ONS_SHOCKWAVE, "onslaught/shockwave"); + +SOUND(PORTO_BOUNCE, "porto/bounce"); +SOUND(PORTO_CREATE, "porto/create"); +SOUND(PORTO_EXPIRE, "porto/expire"); +SOUND(PORTO_EXPLODE, "porto/explode"); +SOUND(PORTO_FIRE, "porto/fire"); +SOUND(PORTO_UNSUPPORTED, "porto/unsupported"); + +SOUND(TUR_PHASER, "turrets/phaser"); + +SOUND(VEH_ALARM, "vehicles/alarm"); +SOUND(VEH_ALARM_SHIELD, "vehicles/alarm_shield"); +SOUND(VEH_MISSILE_ALARM, "vehicles/missile_alarm"); SOUND(VEH_BUMBLEBEE_FIRE, W_Sound("flacexp3")); -SOUND(VEH_RACER_BOOST, "vehicles/racer_boost.wav"); -SOUND(VEH_RACER_IDLE, "vehicles/racer_idle.wav"); -SOUND(VEH_RACER_MOVE, "vehicles/racer_move.wav"); +SOUND(VEH_RACER_BOOST, "vehicles/racer_boost"); +SOUND(VEH_RACER_IDLE, "vehicles/racer_idle"); +SOUND(VEH_RACER_MOVE, "vehicles/racer_move"); -SOUND(VEH_RAPTOR_FLY, "vehicles/raptor_fly.wav"); -SOUND(VEH_RAPTOR_SPEED, "vehicles/raptor_speed.wav"); +SOUND(VEH_RAPTOR_FLY, "vehicles/raptor_fly"); +SOUND(VEH_RAPTOR_SPEED, "vehicles/raptor_speed"); -SOUND(VEH_SPIDERBOT_DIE, "vehicles/spiderbot_die.wav"); -SOUND(VEH_SPIDERBOT_IDLE, "vehicles/spiderbot_idle.wav"); -SOUND(VEH_SPIDERBOT_JUMP, "vehicles/spiderbot_jump.wav"); -SOUND(VEH_SPIDERBOT_LAND, "vehicles/spiderbot_land.wav"); -SOUND(VEH_SPIDERBOT_STRAFE, "vehicles/spiderbot_strafe.wav"); -SOUND(VEH_SPIDERBOT_WALK, "vehicles/spiderbot_walk.wav"); +SOUND(VEH_SPIDERBOT_DIE, "vehicles/spiderbot_die"); +SOUND(VEH_SPIDERBOT_IDLE, "vehicles/spiderbot_idle"); +SOUND(VEH_SPIDERBOT_JUMP, "vehicles/spiderbot_jump"); +SOUND(VEH_SPIDERBOT_LAND, "vehicles/spiderbot_land"); +SOUND(VEH_SPIDERBOT_STRAFE, "vehicles/spiderbot_strafe"); +SOUND(VEH_SPIDERBOT_WALK, "vehicles/spiderbot_walk"); -SOUND(NADE_BEEP, "overkill/grenadebip.ogg"); +SOUND(NADE_BEEP, "overkill/grenadebip"); -SOUND(BUFF_LOST, "relics/relic_effect.wav"); +SOUND(BUFF_LOST, "relics/relic_effect"); -SOUND(POWEROFF, "misc/poweroff.wav"); -SOUND(POWERUP, "misc/powerup.ogg"); -SOUND(SHIELD_RESPAWN, "misc/shield_respawn.wav"); -SOUND(STRENGTH_RESPAWN, "misc/strength_respawn.wav"); +SOUND(POWEROFF, "misc/poweroff"); +SOUND(POWERUP, "misc/powerup"); +SOUND(SHIELD_RESPAWN, "misc/shield_respawn"); +SOUND(STRENGTH_RESPAWN, "misc/strength_respawn"); -SOUND(ARMOR25, "misc/armor25.wav"); -SOUND(ARMORIMPACT, "misc/armorimpact.wav"); -SOUND(BODYIMPACT1, "misc/bodyimpact1.wav"); -SOUND(BODYIMPACT2, "misc/bodyimpact2.wav"); +SOUND(ARMOR25, "misc/armor25"); +SOUND(ARMORIMPACT, "misc/armorimpact"); +SOUND(BODYIMPACT1, "misc/bodyimpact1"); +SOUND(BODYIMPACT2, "misc/bodyimpact2"); -SOUND(ITEMPICKUP, "misc/itempickup.ogg"); -SOUND(ITEMRESPAWNCOUNTDOWN, "misc/itemrespawncountdown.ogg"); -SOUND(ITEMRESPAWN, "misc/itemrespawn.ogg"); -SOUND(MEGAHEALTH, "misc/megahealth.ogg"); +SOUND(ITEMPICKUP, "misc/itempickup"); +SOUND(ITEMRESPAWNCOUNTDOWN, "misc/itemrespawncountdown"); +SOUND(ITEMRESPAWN, "misc/itemrespawn"); +SOUND(MEGAHEALTH, "misc/megahealth"); -SOUND(LAVA, "player/lava.wav"); -SOUND(SLIME, "player/slime.wav"); +SOUND(LAVA, "player/lava"); +SOUND(SLIME, "player/slime"); -SOUND(GIB, "misc/gib.wav"); -SOUND(GIB_SPLAT01, "misc/gib_splat01.wav"); -SOUND(GIB_SPLAT02, "misc/gib_splat02.wav"); -SOUND(GIB_SPLAT03, "misc/gib_splat03.wav"); -SOUND(GIB_SPLAT04, "misc/gib_splat04.wav"); +SOUND(GIB, "misc/gib"); +SOUND(GIB_SPLAT01, "misc/gib_splat01"); +SOUND(GIB_SPLAT02, "misc/gib_splat02"); +SOUND(GIB_SPLAT03, "misc/gib_splat03"); +SOUND(GIB_SPLAT04, "misc/gib_splat04"); Sound SND_GIB_SPLAT_RANDOM() { return Sounds_from(SND_GIB_SPLAT01.m_id + floor(prandom() * 4)); } -SOUND(HIT, "misc/hit.wav"); -SOUND(TYPEHIT, "misc/typehit.wav"); +SOUND(HIT, "misc/hit"); +SOUND(TYPEHIT, "misc/typehit"); -SOUND(SPAWN, "misc/spawn.ogg"); +SOUND(SPAWN, "misc/spawn"); -SOUND(TALK, "misc/talk.wav"); +SOUND(TALK, "misc/talk"); -SOUND(TELEPORT, "misc/teleport.ogg"); +SOUND(TELEPORT, "misc/teleport"); -SOUND(INVSHOT, "misc/invshot.wav"); +SOUND(INVSHOT, "misc/invshot"); -SOUND(JETPACK_FLY, "misc/jetpack_fly.ogg"); +SOUND(JETPACK_FLY, "misc/jetpack_fly"); diff --git a/qcsrc/common/sounds/all.qh b/qcsrc/common/sounds/all.qh index 1bf8ba170..4ad0e9b10 100644 --- a/qcsrc/common/sounds/all.qh +++ b/qcsrc/common/sounds/all.qh @@ -12,7 +12,7 @@ REGISTER_REGISTRY(RegisterSounds) REGISTER(RegisterSounds, SND, Sounds, name, m_id, NEW(Sound, SND_##name##_get)) // Used in places where a string is required -#define SND(id) (SND_##id.sound_str()) +#define SND(id) Sound_fixpath(SND_##id) PRECACHE(Sounds) { FOREACH(Sounds, true, LAMBDA({ @@ -20,7 +20,7 @@ PRECACHE(Sounds) { })); } -SOUND(Null, "misc/null.wav"); +SOUND(Null, "misc/null"); #include "all.inc" #endif diff --git a/qcsrc/common/sounds/sound.qh b/qcsrc/common/sounds/sound.qh index bc393dda3..dfc80e390 100644 --- a/qcsrc/common/sounds/sound.qh +++ b/qcsrc/common/sounds/sound.qh @@ -4,33 +4,56 @@ // Play all sounds via sound7, for access to the extra channels. // Otherwise, channels 8 to 15 would be blocked for a weird QW feature. #ifdef SVQC - #define _sound(e, c, s, v, a) do { \ - entity __e = e; \ - if (!sound_allowed(MSG_BROADCAST, __e)) break; \ - sound7(__e, c, s, v, a, 0, 0); \ - } while (0) + #define _sound(e, c, s, v, a) \ + do \ + { \ + entity __e = e; \ + if (!sound_allowed(MSG_BROADCAST, __e)) break; \ + sound7(__e, c, s, v, a, 0, 0); \ + } \ + while (0) #else - #define _sound(e, c, s, v, a) sound7(e, c, s, v, a, 0, 0) + #define _sound(e, c, s, v, a) sound7(e, c, s, v, a, 0, 0) #endif -#define sound(e, c, s, v, a) _sound(e, c, s.sound_str(), v, a) +#define sound(e, c, s, v, a) _sound(e, c, Sound_fixpath(s), v, a) CLASS(Sound, Object) - ATTRIB(Sound, m_id, int, 0) - ATTRIB(Sound, sound_str, string(), func_null) - CONSTRUCTOR(Sound, string() path) - { - CONSTRUCT(Sound); - this.sound_str = path; - } - METHOD(Sound, sound_precache, void(entity this)) { - string s = this.sound_str(); - if (s && s != "" && !fexists(strcat("sound/", s))) { - LOG_WARNINGF("Missing sound: \"%s\"\n", s); - return; + ATTRIB(Sound, m_id, int, 0) + ATTRIB(Sound, sound_str, string(), func_null) + CONSTRUCTOR(Sound, string() path) + { + CONSTRUCT(Sound); + this.sound_str = path; + } + #define Sound_fixpath(this) _Sound_fixpath((this).sound_str()) + string _Sound_fixpath(string base) + { + if (base == "") return string_null; + #define extensions(x) \ + x(wav) \ + x(ogg) \ + x(flac) \ + /**/ + string full, relative; + #define tryext(ext) { if (fexists(full = strcat("sound/", relative = strcat(base, "." #ext)))) break; } + do + { + extensions(tryext); +#undef tryext +#undef extensions + LOG_WARNINGF("Missing sound: \"%s\"\n", full); + return string_null; } - LOG_TRACEF("precache_sound(\"%s\")\n", s); - precache_sound(s); - } + while (0); + return relative; + } + METHOD(Sound, sound_precache, void(entity this)) + { + string s = Sound_fixpath(this); + if (!s) return; + LOG_TRACEF("precache_sound(\"%s\")\n", s); + precache_sound(s); + } ENDCLASS(Sound) #endif diff --git a/qcsrc/common/weapons/all.qc b/qcsrc/common/weapons/all.qc index ffbc0712d..b33812213 100644 --- a/qcsrc/common/weapons/all.qc +++ b/qcsrc/common/weapons/all.qc @@ -291,16 +291,7 @@ int GetAmmoStat(.int ammotype) string W_Sound(string w_snd) { - #define extensions(X) X(wav) X(ogg) - #define tryext(ext) { if (fexists(strcat("sound/", output = strcat("weapons/", w_snd, "."#ext)))) break; } - string output; - do { - extensions(tryext); - #undef tryext - #undef extensions - output = strcat("weapons/", w_snd); - } while (0); - + string output = strcat("weapons/", w_snd); #ifdef SVQC MUTATOR_CALLHOOK(WeaponSound, w_snd, output); return weapon_sound_output; diff --git a/qcsrc/server/t_items.qc b/qcsrc/server/t_items.qc index 77e3cfae0..c2088a984 100644 --- a/qcsrc/server/t_items.qc +++ b/qcsrc/server/t_items.qc @@ -762,7 +762,7 @@ void Item_Touch() other.last_pickup = time; Send_Effect(EFFECT_ITEM_PICKUP, CENTER_OR_VIEWOFS(this), '0 0 0', 1); - _sound (other, CH_TRIGGER, (this.item_pickupsound ? this.item_pickupsound : this.item_pickupsound_ent.sound_str()), VOL_BASE, ATTEN_NORM); + _sound (other, CH_TRIGGER, (this.item_pickupsound ? this.item_pickupsound : Sound_fixpath(this.item_pickupsound_ent)), VOL_BASE, ATTEN_NORM); if (this.classname == "droppedweapon") remove (this); -- 2.39.2