Implement stoploopsound from moh 2.0 and above

This commit is contained in:
smallmodel 2024-11-12 18:21:12 +01:00
parent 851a16e18c
commit 1ad5964c2f
No known key found for this signature in database
GPG key ID: 9F2D623CEDF08512
2 changed files with 28 additions and 0 deletions

View file

@ -566,6 +566,15 @@ Event EV_Client_LoopSound
"soundName volume min_distance pitch",
"Play the specified sound as a looping sound"
);
// Added in 2.0
Event EV_Client_StopLoopSound
(
"stoploopsound",
EV_DEFAULT,
NULL,
NULL,
"Stop the looping sound"
);
Event EV_Client_Cache
(
"cache",
@ -1269,6 +1278,7 @@ CLASS_DECLARATION(Listener, ClientGameCommandManager, NULL) {
{&EV_Client_StopSound, &ClientGameCommandManager::StopSound },
{&EV_Client_StopAliasChannel, &ClientGameCommandManager::StopAliasChannel },
{&EV_Client_LoopSound, &ClientGameCommandManager::LoopSound },
{&EV_Client_StopLoopSound, &ClientGameCommandManager::StopLoopSound },
{&EV_Client_Cache, &ClientGameCommandManager::Cache },
{&EV_Client_CacheImage, &ClientGameCommandManager::CacheImage },
{&EV_Client_CacheFont, &ClientGameCommandManager::CacheFont },
@ -4010,6 +4020,9 @@ void ClientGameCommandManager::StopSound(Event *ev)
cgi.S_StopSound(current_entity_number, channel);
}
//===============
// StopAliasChannel
//===============
void ClientGameCommandManager::StopAliasChannel(Event *ev)
{
str sound_name;
@ -4105,6 +4118,20 @@ void ClientGameCommandManager::LoopSound(Event *ev)
current_centity->tikiLoopSoundFlags = 0;
}
//===============
// StopLoopSound
//===============
void ClientGameCommandManager::StopLoopSound(Event* ev)
{
if (!current_centity) {
cgi.DPrintf("CCM::StopLoopSound : StopLoopSound in %s without current_centity\n", cgi.TIKI_Name(current_tiki));
return;
}
Com_Printf("\n\nClientGameCommandManager::StopLoopSound\n\n");
current_centity->tikiLoopSound = NULL;
}
//===============
// CacheImageResource
//===============

View file

@ -851,6 +851,7 @@ private:
void StopSound(Event *ev);
void StopAliasChannel(Event *ev);
void LoopSound(Event *ev);
void StopLoopSound(Event *ev); // Added in 2.0
void Cache(Event *ev);
void CacheImage(Event *ev);
void CacheFont(Event *ev);