mirror of https://github.com/FWGS/hlsdk-xash3d
Add func_notepad implementation.
This commit is contained in:
parent
aa474421df
commit
70a38e7f8a
|
@ -584,3 +584,76 @@ void CItemSlaveCollar::Use( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_T
|
|||
SetThink( &CItemSlaveCollar::OffThink );
|
||||
pev->nextthink = gpGlobals->time + 0.01f;
|
||||
}
|
||||
|
||||
class CNotepad : public CBaseToggle
|
||||
{
|
||||
public:
|
||||
void Spawn();
|
||||
void Precache();
|
||||
void KeyValue( KeyValueData *pkvd );
|
||||
void Use( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value );
|
||||
|
||||
int Save( CSave &save );
|
||||
int Restore( CRestore &restore );
|
||||
static TYPEDESCRIPTION m_SaveData[];
|
||||
private:
|
||||
string_t m_szText;
|
||||
int m_iTitle;
|
||||
};
|
||||
|
||||
LINK_ENTITY_TO_CLASS( func_notepad, CNotepad )
|
||||
|
||||
TYPEDESCRIPTION CNotepad::m_SaveData[] =
|
||||
{
|
||||
DEFINE_FIELD( CNotepad, m_szText, FIELD_STRING ),
|
||||
DEFINE_FIELD( CNotepad, m_iTitle, FIELD_INTEGER ),
|
||||
};
|
||||
|
||||
IMPLEMENT_SAVERESTORE( CNotepad, CBaseToggle )
|
||||
|
||||
void CNotepad::KeyValue( KeyValueData *pkvd )
|
||||
{
|
||||
if( FStrEq( pkvd->szKeyName, "title" ) )
|
||||
{
|
||||
m_iTitle = atoi( pkvd->szValue );
|
||||
pkvd->fHandled = TRUE;
|
||||
}
|
||||
else if( FStrEq( pkvd->szKeyName, "text" ) )
|
||||
{
|
||||
m_szText = ALLOC_STRING( pkvd->szValue );
|
||||
pkvd->fHandled = TRUE;
|
||||
}
|
||||
else
|
||||
CBaseToggle::KeyValue( pkvd );
|
||||
}
|
||||
|
||||
void CNotepad::Spawn()
|
||||
{
|
||||
Precache();
|
||||
|
||||
pev->solid = SOLID_BSP;
|
||||
pev->movetype = MOVETYPE_PUSH;
|
||||
|
||||
UTIL_SetOrigin( pev, pev->origin ); // set size and link into world
|
||||
UTIL_SetSize( pev, pev->mins, pev->maxs );
|
||||
SET_MODEL( ENT( pev ), STRING( pev->model ) );
|
||||
}
|
||||
|
||||
void CNotepad::Precache()
|
||||
{
|
||||
}
|
||||
|
||||
void CNotepad::Use( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value )
|
||||
{
|
||||
// Make sure that we have a caller
|
||||
if( !pActivator )
|
||||
return;
|
||||
// if it's not a player, ignore
|
||||
if( !pActivator->IsPlayer() )
|
||||
return;
|
||||
|
||||
MESSAGE_BEGIN( MSG_ONE, gmsgNotepad, 0, pActivator->edict() );
|
||||
WRITE_STRING( STRING( m_szText ) );
|
||||
WRITE_BYTE( m_iTitle );
|
||||
MESSAGE_END();
|
||||
}
|
||||
|
|
|
@ -341,6 +341,7 @@ public:
|
|||
#define AUTOAIM_10DEGREES 0.1736481776669
|
||||
|
||||
extern int gmsgHudText;
|
||||
extern int gmsgNotepad;
|
||||
extern BOOL gInitHUD;
|
||||
|
||||
#endif // PLAYER_H
|
||||
|
|
Loading…
Reference in New Issue