implemented boolean values parsing
This commit is contained in:
parent
74d09c51a0
commit
c4af1f31e8
@ -8,6 +8,7 @@ namespace ParadoxSaveParser.Lib;
|
|||||||
[JsonSerializable(typeof(string))]
|
[JsonSerializable(typeof(string))]
|
||||||
[JsonSerializable(typeof(long))]
|
[JsonSerializable(typeof(long))]
|
||||||
[JsonSerializable(typeof(double))]
|
[JsonSerializable(typeof(double))]
|
||||||
|
[JsonSerializable(typeof(bool))]
|
||||||
public partial class ParsedValueJsonContext : JsonSerializerContext
|
public partial class ParsedValueJsonContext : JsonSerializerContext
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
@ -154,12 +154,17 @@ public class SaveParserEU4
|
|||||||
switch (tok.type)
|
switch (tok.type)
|
||||||
{
|
{
|
||||||
case TokenType.StringOrNumber:
|
case TokenType.StringOrNumber:
|
||||||
|
try
|
||||||
|
{
|
||||||
// string values can be empty
|
// string values can be empty
|
||||||
if (tok.value!.Length == 0)
|
if (tok.value!.Length == 0)
|
||||||
return string.Empty;
|
return string.Empty;
|
||||||
|
if (tok.value.Equals("yes"))
|
||||||
|
return true;
|
||||||
|
if (tok.value.Equals("no"))
|
||||||
|
return false;
|
||||||
|
|
||||||
string tokStr = tok.value.ToString();
|
string tokStr = tok.value.ToString();
|
||||||
_stringBuilderPool.Return(tok.value);
|
|
||||||
if (tokStr[0] != '-' && !char.IsDigit(tokStr[0]))
|
if (tokStr[0] != '-' && !char.IsDigit(tokStr[0]))
|
||||||
return tokStr;
|
return tokStr;
|
||||||
if (tokStr.Contains('.') && double.TryParse(tokStr, out double d))
|
if (tokStr.Contains('.') && double.TryParse(tokStr, out double d))
|
||||||
@ -167,6 +172,11 @@ public class SaveParserEU4
|
|||||||
if (long.TryParse(tokStr, out long l))
|
if (long.TryParse(tokStr, out long l))
|
||||||
return l;
|
return l;
|
||||||
return tokStr;
|
return tokStr;
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
_stringBuilderPool.Return(tok.value!);
|
||||||
|
}
|
||||||
case TokenType.BracketOpen:
|
case TokenType.BracketOpen:
|
||||||
object obj = ParseListOrDict();
|
object obj = ParseListOrDict();
|
||||||
return obj;
|
return obj;
|
||||||
|
|||||||
@ -3,11 +3,12 @@ option csharp_namespace = "ParadoxSaveParser.WebAPI.MyProtobuf";
|
|||||||
|
|
||||||
message Item {
|
message Item {
|
||||||
oneof value {
|
oneof value {
|
||||||
int64 i64 = 1;
|
bool b = 1;
|
||||||
double f64 = 2;
|
int64 i64 = 2;
|
||||||
string str = 3;
|
double f64 = 3;
|
||||||
ItemList list = 4;
|
string str = 4;
|
||||||
ItemListMap map = 5;
|
ItemList list = 5;
|
||||||
|
ItemListMap map = 6;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user