@@ -39,6 +39,7 @@ static KeyValues2()
3939
4040 TypeNames [ typeof ( byte ) ] = "uint8" ;
4141 TypeNames [ typeof ( ulong ) ] = "uint64" ;
42+ TypeNames [ typeof ( QAngle ) ] = "qangle" ;
4243
4344 ValidAttributes [ 4 ] = TypeNames . Select ( kv => kv . Key ) . ToArray ( ) ;
4445 }
@@ -244,8 +245,8 @@ void WriteAttribute(string name, Type type, object value, bool in_array)
244245 var c = ( System . Drawing . Color ) value ;
245246 value = String . Join ( " " , new int [ ] { c . R , c . G , c . B , c . A } ) ;
246247 }
247- else if ( type == typeof ( UInt64 ) )
248- value = ( ( UInt64 ) value ) . ToString ( "X" ) ;
248+ else if ( value is ulong ulong_value )
249+ value = $ "0x { ulong_value : X } " ;
249250 else if ( type == typeof ( Vector2 ) )
250251 {
251252 var arr = new float [ 2 ] ;
@@ -276,6 +277,10 @@ void WriteAttribute(string name, Type type, object value, bool in_array)
276277 var m = ( Matrix4x4 ) value ;
277278 value = string . Join ( " " , m . M11 , m . M12 , m . M13 , m . M14 , m . M21 , m . M22 , m . M23 , m . M24 , m . M31 , m . M32 , m . M33 , m . M34 , m . M41 , m . M42 , m . M43 , m . M44 ) ;
278279 }
280+ else if ( value is QAngle qangle_value )
281+ {
282+ value = string . Join ( " " , ( int ) qangle_value . Pitch , ( int ) qangle_value . Yaw , ( int ) qangle_value . Roll ) ;
283+ }
279284
280285 if ( in_array )
281286 Writer . Write ( String . Format ( " \" {0}\" ," , value . ToString ( ) ) ) ;
@@ -327,6 +332,7 @@ public void Encode(Datamodel dm, int encoding_version, Stream stream)
327332 Writer . WriteTokens ( "$prefix_element$" ) ;
328333 Writer . WriteLine ( "{" ) ;
329334 Writer . Indent ++ ;
335+ Writer . WriteTokenLine ( "id" , "elementid" , Guid . NewGuid ( ) . ToString ( ) ) ;
330336 foreach ( var attr in dm . PrefixAttributes )
331337 WriteAttribute ( attr . Key , attr . Value . GetType ( ) , attr . Value , false ) ;
332338 Writer . Indent -- ;
0 commit comments