mirror of https://github.com/FWGS/hlsdk-xash3d
117 lines
2.7 KiB
C++
117 lines
2.7 KiB
C++
//---------------------------------------------------------
|
|
//---------------------------------------------------------
|
|
//- ---
|
|
//- music.cpp ---
|
|
//- ---
|
|
//---------------------------------------------------------
|
|
//---------------------------------------------------------
|
|
//- by Roy, based on the code by JujU -----------
|
|
//---------------------------------------------------------
|
|
//- fake and null mp3 player code for HL mod -----------
|
|
//---------------------------------------------------------
|
|
|
|
/*//---------------
|
|
|
|
This code is a placeholder for systems that support neither gstreamer nor fmod.
|
|
|
|
*///---------------
|
|
|
|
#ifdef USE_GSTREAMER
|
|
#include "musicgstreamer.cpp"
|
|
#elif defined(USE_FMOD)
|
|
#include "musicfmod.cpp"
|
|
#else
|
|
|
|
//---------------------------------------------------------
|
|
// inclusions
|
|
|
|
#include "extdll.h"
|
|
#include "util.h"
|
|
#include "cbase.h"
|
|
|
|
#include "music.h"
|
|
|
|
CMusic g_MusicPlayer;
|
|
|
|
|
|
//Fake functions to have something to work with on Linux
|
|
//---------------------------------------------------------
|
|
|
|
void CMusic :: Init ( void ){}
|
|
void CMusic :: OpenFile ( const char *filename, int repeat ){}
|
|
void CMusic :: OpenList ( const char *filename ){}
|
|
signed char EndCallback ( void *stream, void *buff, int len, int param )
|
|
{
|
|
return TRUE;
|
|
}
|
|
void CMusic :: Play ( void ){}
|
|
void CMusic :: Stop ( void ){}
|
|
void CMusic :: Reset ( void ){}
|
|
|
|
//---------------------------------------------------------
|
|
// The actual game entity
|
|
|
|
|
|
|
|
class CTriggerMusic : public CPointEntity
|
|
{
|
|
public:
|
|
|
|
void Spawn ( void );
|
|
|
|
void KeyValue ( KeyValueData *pkvd );
|
|
void Use ( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value );
|
|
|
|
|
|
virtual int Save ( CSave &save );
|
|
virtual int Restore ( CRestore &restore );
|
|
|
|
static TYPEDESCRIPTION m_SaveData[];
|
|
|
|
|
|
string_t m_iFileName; // chemin du fichier
|
|
int m_iFileType; // fichier texte ( liste ) ou fichier audio
|
|
|
|
};
|
|
|
|
LINK_ENTITY_TO_CLASS( trigger_music, CTriggerMusic );
|
|
|
|
|
|
|
|
TYPEDESCRIPTION CTriggerMusic::m_SaveData[] =
|
|
{
|
|
DEFINE_FIELD( CTriggerMusic, m_iFileType, FIELD_INTEGER ),
|
|
DEFINE_FIELD( CTriggerMusic, m_iFileName, FIELD_STRING ),
|
|
};
|
|
|
|
IMPLEMENT_SAVERESTORE( CTriggerMusic, CPointEntity );
|
|
|
|
|
|
|
|
void CTriggerMusic :: Spawn( void )
|
|
{
|
|
pev->solid = SOLID_NOT;
|
|
pev->effects = EF_NODRAW;
|
|
}
|
|
|
|
void CTriggerMusic :: KeyValue( KeyValueData *pkvd )
|
|
{
|
|
if (FStrEq(pkvd->szKeyName, "filetype"))
|
|
{
|
|
m_iFileType = atoi(pkvd->szValue);
|
|
pkvd->fHandled = TRUE;
|
|
}
|
|
else if (FStrEq(pkvd->szKeyName, "filename"))
|
|
{
|
|
m_iFileName = ALLOC_STRING(pkvd->szValue);
|
|
pkvd->fHandled = TRUE;
|
|
}
|
|
else
|
|
CPointEntity::KeyValue( pkvd );
|
|
}
|
|
|
|
void CTriggerMusic :: Use( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value )
|
|
{
|
|
return;
|
|
}
|
|
#endif |