Add ValveType_Object type.

This is for the few cases where we have function parameters to objects that
don't fit our other predefined types (CBaseEntity, CBasePlayer, string).

Most calls currently pass those as POD (which is incorrect, but works on
x86), or one of the other pointer types (which is also incorrect, and can
lead to confusion, but works on x86 and x86-64).

This type only works when manually buffering the parameter for calls, and
is not supported for return types.
This commit is contained in:
Nick Hastings 2021-10-02 11:18:23 -04:00 committed by Nicholas Hastings
parent de84f47503
commit 0be7813398
2 changed files with 3 additions and 1 deletions

View File

@ -110,6 +110,7 @@ size_t ValveParamToBinParam(ValveType type,
case Valve_CBasePlayer:
case Valve_Edict:
case Valve_String:
case Valve_Object:
{
if (pass != PassType_Basic || (flags & PASSFLAG_BYREF))
{

View File

@ -48,11 +48,12 @@ enum ValveType
Valve_CBasePlayer, /**< CBasePlayer (disallow normal ents) */
Valve_Vector, /**< Vector */
Valve_QAngle, /**< QAngle */
Valve_POD, /**< Plain old data */
Valve_POD, /**< Plain old data, int32 size */
Valve_Float, /**< Float */
Valve_Edict, /**< Edict */
Valve_String, /**< String */
Valve_Bool, /**< Boolean */
Valve_Object, /**< Object, not matching one of the above types */
};
enum DataStatus