extensions/sdktools/vhelpers.cpp
changeset 4304 bff9916aa9b2
parent 4272 8b39aa02b05b
child 4319 f17d11bcd078
     1.1 --- a/extensions/sdktools/vhelpers.cpp	Sat Mar 29 14:22:53 2014 -0400
     1.2 +++ b/extensions/sdktools/vhelpers.cpp	Sat Mar 29 14:23:16 2014 -0400
     1.3 @@ -309,6 +309,94 @@
     1.4  	return false;
     1.5  }
     1.6  
     1.7 +char *UTIL_SendFlagsToString(int flags, int type)
     1.8 +{
     1.9 +	static char str[1024];
    1.10 +	str[0] = 0;
    1.11 +
    1.12 +	if (flags & SPROP_UNSIGNED)
    1.13 +	{
    1.14 +		strcat(str, "Unsigned|");
    1.15 +	}
    1.16 +	if (flags & SPROP_COORD)
    1.17 +	{
    1.18 +		strcat(str, "Coord|");
    1.19 +	}
    1.20 +	if (flags & SPROP_NOSCALE)
    1.21 +	{
    1.22 +		strcat(str, "NoScale|");
    1.23 +	}
    1.24 +	if (flags & SPROP_ROUNDDOWN)
    1.25 +	{
    1.26 +		strcat(str, "RoundDown|");
    1.27 +	}
    1.28 +	if (flags & SPROP_ROUNDUP)
    1.29 +	{
    1.30 +		strcat(str, "RoundUp|");
    1.31 +	}
    1.32 +	if (flags & SPROP_NORMAL)
    1.33 +	{
    1.34 +		if (type == DPT_Int)
    1.35 +		{
    1.36 +			strcat(str, "VarInt|");
    1.37 +		}
    1.38 +		else
    1.39 +		{
    1.40 +			strcat(str, "Normal|");
    1.41 +		}
    1.42 +	}
    1.43 +	if (flags & SPROP_EXCLUDE)
    1.44 +	{
    1.45 +		strcat(str, "Exclude|");
    1.46 +	}
    1.47 +	if (flags & SPROP_XYZE)
    1.48 +	{
    1.49 +		strcat(str, "XYZE|");
    1.50 +	}
    1.51 +	if (flags & SPROP_INSIDEARRAY)
    1.52 +	{
    1.53 +		strcat(str, "InsideArray|");
    1.54 +	}
    1.55 +	if (flags & SPROP_PROXY_ALWAYS_YES)
    1.56 +	{
    1.57 +		strcat(str, "AlwaysProxy|");
    1.58 +	}
    1.59 +	if (flags & SPROP_CHANGES_OFTEN)
    1.60 +	{
    1.61 +		strcat(str, "ChangesOften|");
    1.62 +	}
    1.63 +	if (flags & SPROP_IS_A_VECTOR_ELEM)
    1.64 +	{
    1.65 +		strcat(str, "VectorElem|");
    1.66 +	}
    1.67 +	if (flags & SPROP_COLLAPSIBLE)
    1.68 +	{
    1.69 +		strcat(str, "Collapsible|");
    1.70 +	}
    1.71 +#if SOURCE_ENGINE >= SE_ORANGEBOX
    1.72 +	if (flags & SPROP_COORD_MP)
    1.73 +	{
    1.74 +		strcat(str, "CoordMP|");
    1.75 +	}
    1.76 +	if (flags & SPROP_COORD_MP_LOWPRECISION)
    1.77 +	{
    1.78 +		strcat(str, "CoordMPLowPrec|");
    1.79 +	}
    1.80 +	if (flags & SPROP_COORD_MP_INTEGRAL)
    1.81 +	{
    1.82 +		strcat(str, "CoordMpIntegral|");
    1.83 +	}
    1.84 +#endif
    1.85 +
    1.86 +	int len = strlen(str) - 1;
    1.87 +	if (len > 0)
    1.88 +	{
    1.89 +		str[len] = 0; // Strip the final '|'
    1.90 +	}
    1.91 +
    1.92 +	return str;
    1.93 +}
    1.94 +
    1.95  void UTIL_DrawSendTable_XML(FILE *fp, SendTable *pTable, int space_count)
    1.96  {
    1.97  	char spaces[255];
    1.98 @@ -341,6 +429,7 @@
    1.99  
   1.100  		fprintf(fp, "   %s<offset>%d</offset>\n", spaces, pProp->GetOffset());
   1.101  		fprintf(fp, "   %s<bits>%d</bits>\n", spaces, pProp->m_nBits);
   1.102 +		fprintf(fp, "   %s<flags>%s</flags>\n", spaces, UTIL_SendFlagsToString(pProp->GetFlags(), pProp->GetType()));
   1.103  
   1.104  		if ((pOtherTable = pTable->GetProp(i)->GetDataTable()) != NULL)
   1.105  		{
   1.106 @@ -384,22 +473,24 @@
   1.107  			if (type != NULL)
   1.108  			{
   1.109  				fprintf(fp,
   1.110 -					"%*sMember: %s (offset %d) (type %s) (bits %d)\n", 
   1.111 +					"%*sMember: %s (offset %d) (type %s) (bits %d) (%s)\n", 
   1.112  					level, "", 
   1.113  					pProp->GetName(),
   1.114  					pProp->GetOffset(),
   1.115  					type,
   1.116 -					pProp->m_nBits);
   1.117 +					pProp->m_nBits,
   1.118 +					UTIL_SendFlagsToString(pProp->GetFlags(), pProp->GetType()));
   1.119  			}
   1.120  			else
   1.121  			{
   1.122  				fprintf(fp,
   1.123 -					"%*sMember: %s (offset %d) (type %d) (bits %d)\n", 
   1.124 +					"%*sMember: %s (offset %d) (type %d) (bits %d) (%s)\n", 
   1.125  					level, "", 
   1.126  					pProp->GetName(),
   1.127  					pProp->GetOffset(),
   1.128  					pProp->GetType(),
   1.129 -					pProp->m_nBits);
   1.130 +					pProp->m_nBits,
   1.131 +					UTIL_SendFlagsToString(pProp->GetFlags(), pProp->GetType()));
   1.132  			}
   1.133  		}
   1.134  	}
   1.135 @@ -644,7 +735,7 @@
   1.136  
   1.137  }
   1.138  
   1.139 -char *UTIL_FlagsToString(int flags)
   1.140 +char *UTIL_DataFlagsToString(int flags)
   1.141  {
   1.142  	static char str[1024];
   1.143  	str[0] = 0;
   1.144 @@ -722,7 +813,7 @@
   1.145  			else
   1.146  			{
   1.147  				externalname  = pMap->dataDesc[i].externalName;
   1.148 -				flags = UTIL_FlagsToString(pMap->dataDesc[i].flags);
   1.149 +				flags = UTIL_DataFlagsToString(pMap->dataDesc[i].flags);
   1.150  
   1.151  				if (externalname == NULL)
   1.152  				{