Facepunch.Steamworks/Generator/CodeWriter/Constants.cs
2020-02-13 11:26:55 +00:00

42 lines
1.3 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Generator
{
public partial class CodeWriter
{
private void Constants()
{
StartBlock( "internal static class Defines" );
foreach ( var o in def.Consts )
{
var type = o.Type.Substring( "const ".Length );
type = Cleanup.ConvertType( type );
var val = o.Val;
// Don't need to ull in c#
if ( val.EndsWith( "ull" ) )
val = val.Replace( "ull", "" );
val = val.Replace( "uint32", "uint" );
val = val.Replace( "16U", "16" );
val = val.Replace( "8U", "8" );
// we're not an actual typedef so can't cast like this
val = val.Replace( "( SteamItemInstanceID_t ) ~ 0", "~default(ulong)" );
// This is defined as 0xffffffff - which is too big for an int
// It seems like the loop around is required, so we just hard code it
if ( o.Name == "HSERVERQUERY_INVALID" && val == "0xffffffff" )
val = "-1";
WriteLine( $"internal static readonly {type} {o.Name} = {val};" );
}
EndBlock();
}
}
}