mirror of
https://github.com/mapbase-source/source-sdk-2013.git
synced 2025-04-22 06:23:41 +03:00
Add type check for script helper assignments from ScriptVariant_t
This commit is contained in:
parent
cbb60e1afd
commit
c0e12a2f58
sp/src
game/shared/mapbase
vscript
@ -560,16 +560,18 @@ bool CAnimEventTInstanceHelper::Set( void *p, const char *pszKey, ScriptVariant_
|
||||
|
||||
animevent_t *ani = ((animevent_t *)p);
|
||||
if (FStrEq( pszKey, "event" ))
|
||||
ani->event = variant;
|
||||
return variant.AssignTo( &ani->event );
|
||||
else if (FStrEq( pszKey, "options" ))
|
||||
ani->options = variant;
|
||||
// broken: return variant.AssignTo( &ani->options );
|
||||
// variant memory is freed afterwards
|
||||
return false;
|
||||
else if (FStrEq( pszKey, "cycle" ))
|
||||
ani->cycle = variant;
|
||||
return variant.AssignTo( &ani->cycle );
|
||||
else if (FStrEq( pszKey, "eventtime" ))
|
||||
ani->eventtime = variant;
|
||||
return variant.AssignTo( &ani->eventtime );
|
||||
else if (FStrEq( pszKey, "type" ))
|
||||
ani->type = variant;
|
||||
else if (FStrEq( pszKey, "source" ))
|
||||
return variant.AssignTo( &ani->type );
|
||||
else if (FStrEq( pszKey, "source" ) && variant.m_type == FIELD_HSCRIPT)
|
||||
{
|
||||
CBaseEntity *pEnt = ToEnt( variant.m_hScript );
|
||||
if (pEnt)
|
||||
|
@ -440,13 +440,11 @@ bool CScriptColorInstanceHelper::Get( void *p, const char *pszKey, ScriptVariant
|
||||
bool CScriptColorInstanceHelper::Set( void *p, const char *pszKey, ScriptVariant_t &variant )
|
||||
{
|
||||
Color *pClr = ((Color *)p);
|
||||
if ( strlen(pszKey) == 1 )
|
||||
int iVal;
|
||||
if ( strlen(pszKey) == 1 && variant.AssignTo( &iVal ) )
|
||||
{
|
||||
int iVal;
|
||||
variant.AssignTo( &iVal );
|
||||
switch (pszKey[0])
|
||||
{
|
||||
// variant.AssignTo( &(*pClr)[0] );
|
||||
case 'r':
|
||||
(*pClr)[0] = iVal;
|
||||
return true;
|
||||
|
@ -259,17 +259,13 @@ bool CScriptQuaternionInstanceHelper::Set( void *p, const char *pszKey, ScriptVa
|
||||
switch (pszKey[0])
|
||||
{
|
||||
case 'x':
|
||||
variant.AssignTo( &pQuat->x );
|
||||
return true;
|
||||
return variant.AssignTo( &pQuat->x );
|
||||
case 'y':
|
||||
variant.AssignTo( &pQuat->y );
|
||||
return true;
|
||||
return variant.AssignTo( &pQuat->y );
|
||||
case 'z':
|
||||
variant.AssignTo( &pQuat->z );
|
||||
return true;
|
||||
return variant.AssignTo( &pQuat->z );
|
||||
case 'w':
|
||||
variant.AssignTo( &pQuat->w );
|
||||
return true;
|
||||
return variant.AssignTo( &pQuat->w );
|
||||
}
|
||||
}
|
||||
return false;
|
||||
|
Loading…
x
Reference in New Issue
Block a user