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 {