/// <summary> /// Create the template output /// </summary> public virtual string TransformText() { this.Write("#pragma once\r\n#include <map>"); #line 7 "D:\ugly\CodeGenerator\cxx\CxxSerializerHeader.tt" foreach (GameFile file in CxxHelper.Definition.Files) { #line default #line hidden this.Write("\r\n#include \""); #line 12 "D:\ugly\CodeGenerator\cxx\CxxSerializerHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(file.Name))); #line default #line hidden this.Write(".h\""); #line 12 "D:\ugly\CodeGenerator\cxx\CxxSerializerHeader.tt" } #line default #line hidden this.Write("\r\nnamespace ugly\r\n{\r\n namespace "); #line 18 "D:\ugly\CodeGenerator\cxx\CxxSerializerHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.Namespace))); #line default #line hidden this.Write("\r\n {\r\n class Serializer\r\n {\r\n public:\r\n std::s" + "tring SerializeState("); #line 23 "D:\ugly\CodeGenerator\cxx\CxxSerializerHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.GameSetup))); #line default #line hidden this.Write("& gameSetup, "); #line 23 "D:\ugly\CodeGenerator\cxx\CxxSerializerHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.PlayerSetup))); #line default #line hidden this.Write("& playerSetup, "); #line 23 "D:\ugly\CodeGenerator\cxx\CxxSerializerHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.GameState))); #line default #line hidden this.Write("& gameState, "); #line 23 "D:\ugly\CodeGenerator\cxx\CxxSerializerHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.PlayerState))); #line default #line hidden this.Write("& playerState);\r\n std::string SerializeSetup("); #line 24 "D:\ugly\CodeGenerator\cxx\CxxSerializerHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.GameSetup))); #line default #line hidden this.Write("& gameSetup, "); #line 24 "D:\ugly\CodeGenerator\cxx\CxxSerializerHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.PlayerSetup))); #line default #line hidden this.Write("& playerSetup, "); #line 24 "D:\ugly\CodeGenerator\cxx\CxxSerializerHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.GameState))); #line default #line hidden this.Write("& gameState, "); #line 24 "D:\ugly\CodeGenerator\cxx\CxxSerializerHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.PlayerState))); #line default #line hidden this.Write("& playerState);\r\n bool ExecuteOrder(const std::string& order, "); #line 25 "D:\ugly\CodeGenerator\cxx\CxxSerializerHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.GameSetup))); #line default #line hidden this.Write("& gameSetup, "); #line 25 "D:\ugly\CodeGenerator\cxx\CxxSerializerHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.GameState))); #line default #line hidden this.Write("& gameState, int playerId);\r\n \r\n class IdMap\r\n {" + "\r\n public:"); #line 29 "D:\ugly\CodeGenerator\cxx\CxxSerializerHeader.tt" foreach (GameClass c in CxxHelper.Definition.Class.Values) { if (c.IdMember != null) { #line default #line hidden this.Write("\r\n std::map<"); #line 36 "D:\ugly\CodeGenerator\cxx\CxxSerializerHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(CxxHelper.GetBasicTypeName(CxxHelper.Definition.GetBasicType(c.IdMember.Type)))); #line default #line hidden this.Write(", "); #line 36 "D:\ugly\CodeGenerator\cxx\CxxSerializerHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(c.Name))); #line default #line hidden this.Write("*> "); #line 36 "D:\ugly\CodeGenerator\cxx\CxxSerializerHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.LowerCamelCase.Convert(c.Name))); #line default #line hidden this.Write(";"); #line 36 "D:\ugly\CodeGenerator\cxx\CxxSerializerHeader.tt" } } #line default #line hidden this.Write("\r\n void Clear();\r\n };\r\n private:\r\n Id" + "Map gameSetupId;\r\n IdMap gameStateId;\r\n };\r\n }\r\n}"); return(this.GenerationEnvironment.ToString()); }
/// <summary> /// Create the template output /// </summary> public virtual string TransformText() { this.Write("#pragma once\r\n#include <vector>\r\n#include <cstdint>"); #line 8 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" foreach (string d in CxxHelper.CurrentFile.Dependency) { #line default #line hidden this.Write("\r\n#include \""); #line 13 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(d))); #line default #line hidden this.Write(".h\""); #line 13 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" } if (CxxHelper.Server) { #line default #line hidden this.Write("\r\n\r\nnamespace ugly\r\n{"); #line 21 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" this.PushIndent(" "); } #line default #line hidden this.Write("\r\nnamespace "); #line 26 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.Namespace))); #line default #line hidden this.Write("\r\n{"); #line 27 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" foreach (GameEnum e in CxxHelper.CurrentFile.Enum) { #line default #line hidden this.Write("\r\n \r\n enum class "); #line 33 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(e.Name))); #line default #line hidden this.Write("\r\n {"); #line 34 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" foreach (KeyValuePair <string, int> kvp in e.Value) { #line default #line hidden this.Write(" \r\n "); #line 39 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(kvp.Key))); #line default #line hidden this.Write(" = "); #line 39 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(kvp.Value)); #line default #line hidden this.Write(","); #line 39 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" } #line default #line hidden this.Write("\r\n };"); #line 43 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" } foreach (GameClass c in CxxHelper.CurrentFile.Class) { #line default #line hidden this.Write("\r\n\r\n struct "); #line 51 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(c.Name))); #line default #line hidden this.Write("\r\n {"); #line 52 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" foreach (ClassMember m in c.Member) { #line default #line hidden this.Write("\r\n "); #line 57 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" for (int i = 0; i < m.Array; ++i) { #line default #line hidden this.Write("std::vector<"); #line 60 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" } BasicType type = CxxHelper.Definition.GetBasicType(m.Type); if (type.IsBasic()) { #line default #line hidden #line 65 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(CxxHelper.GetBasicTypeName(type))); #line default #line hidden #line 65 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" } else { #line default #line hidden #line 69 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(m.Type))); #line default #line hidden #line 69 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" } for (int i = 0; i < m.Array; ++i) { #line default #line hidden this.Write(">"); #line 73 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" } #line default #line hidden this.Write(" "); #line 75 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.LowerCamelCase.Convert(m.Name))); #line default #line hidden this.Write(";"); #line 75 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" } #line default #line hidden this.Write("\r\n\r\n "); #line 80 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(c.Name))); #line default #line hidden this.Write("();\r\n "); #line 81 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" foreach (ClassMethod m in c.Method) { if (CxxHelper.Server) { #line default #line hidden this.Write("\r\n bool"); #line 88 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" } else { #line default #line hidden this.Write("\r\n void"); #line 94 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" } #line default #line hidden this.Write(" "); #line 96 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(m.Name))); #line default #line hidden this.Write("("); #line 96 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" if (CxxHelper.Server) { #line default #line hidden this.Write("struct "); #line 99 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.GameSetup))); #line default #line hidden this.Write("& gameSetup, struct "); #line 99 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.PlayerSetup))); #line default #line hidden this.Write("& playerSetup, struct "); #line 99 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.GameState))); #line default #line hidden this.Write("& gameState, struct "); #line 99 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.PlayerState))); #line default #line hidden this.Write("& playerState, "); #line 99 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" } for (int idxParam = 0; idxParam < m.Param.Count; ++idxParam) { MethodParam a = m.Param[idxParam]; BasicType type = CxxHelper.Definition.GetBasicType(a.Type); if (idxParam != 0) { #line default #line hidden this.Write(", "); #line 107 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" } if (type == BasicType.Class) { #line default #line hidden this.Write("const "); #line 111 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" } if (type.IsBasic()) { #line default #line hidden #line 115 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(CxxHelper.GetBasicTypeName(type))); #line default #line hidden #line 115 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" } else { #line default #line hidden #line 119 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(a.Type))); #line default #line hidden #line 119 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" } if (type == BasicType.Class) { #line default #line hidden this.Write("&"); #line 123 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" } #line default #line hidden this.Write(" "); #line 125 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.LowerCamelCase.Convert(a.Name))); #line default #line hidden #line 125 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" } #line default #line hidden this.Write(");"); #line 127 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" } if (CxxHelper.Server) { if (c.ConditionMethod.Any()) { #line default #line hidden this.Write("\r\n"); #line 135 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" } foreach (string m in c.ConditionMethod) { #line default #line hidden this.Write("\r\n bool "); #line 141 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(m))); #line default #line hidden this.Write("(struct "); #line 141 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.GameSetup))); #line default #line hidden this.Write("& gameSetup, struct "); #line 141 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.PlayerSetup))); #line default #line hidden this.Write("& playerSetup, struct "); #line 141 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.GameState))); #line default #line hidden this.Write("& gameState, struct "); #line 141 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.PlayerState))); #line default #line hidden this.Write("& playerState);"); #line 141 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" } } #line default #line hidden this.Write("\r\n };"); #line 146 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" } #line default #line hidden this.Write("\r\n}"); #line 150 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" if (CxxHelper.Server) { this.PopIndent(); #line default #line hidden this.Write("\r\n}"); #line 156 "D:\ugly\CodeGenerator\cxx\CxxHeader.tt" } #line default #line hidden return(this.GenerationEnvironment.ToString()); }
/// <summary> /// Create the template output /// </summary> public virtual string TransformText() { this.Write("#include \""); #line 6 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.CurrentFile.Name))); #line default #line hidden this.Write(".h\"\r\n#include <cstdio>"); #line 7 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" if (CxxHelper.Server) { #line default #line hidden this.Write("\r\n\r\nnamespace ugly\r\n{"); #line 14 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" this.PushIndent(" "); } #line default #line hidden this.Write("\r\nnamespace "); #line 19 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.Namespace))); #line default #line hidden this.Write("\r\n{"); #line 20 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" foreach (GameClass c in CxxHelper.CurrentFile.Class) { #line default #line hidden this.Write("\r\n "); #line 25 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(c.Name))); #line default #line hidden this.Write("::"); #line 25 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(c.Name))); #line default #line hidden this.Write("()"); #line 25 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" for (int i = 0; i < c.Member.Count; ++i) { #line default #line hidden this.Write("\r\n "); #line 30 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" if (i == 0) { #line default #line hidden this.Write(":"); #line 33 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" } else { #line default #line hidden this.Write(","); #line 37 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" } #line default #line hidden this.Write(" "); #line 39 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.LowerCamelCase.Convert(c.Member[i].Name))); #line default #line hidden this.Write("()"); #line 39 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" } #line default #line hidden this.Write("\r\n { }\r\n "); #line 44 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" foreach (ClassMethod m in c.Method) { #line default #line hidden this.Write("\r\n "); #line 49 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" if (CxxHelper.Server) { #line default #line hidden this.Write("bool"); #line 52 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" } else { #line default #line hidden this.Write("void"); #line 56 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" } #line default #line hidden this.Write(" "); #line 58 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(c.Name))); #line default #line hidden this.Write("::"); #line 58 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(m.Name))); #line default #line hidden this.Write("("); #line 58 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" if (CxxHelper.Server) { #line default #line hidden this.Write("struct "); #line 61 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.GameSetup))); #line default #line hidden this.Write("& gameSetup, struct "); #line 61 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.PlayerSetup))); #line default #line hidden this.Write("& playerSetup, struct "); #line 61 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.GameState))); #line default #line hidden this.Write("& gameState, struct "); #line 61 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.PlayerState))); #line default #line hidden this.Write("& playerState, "); #line 61 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" } for (int idxParam = 0; idxParam < m.Param.Count; ++idxParam) { MethodParam a = m.Param[idxParam]; BasicType type = CxxHelper.Definition.GetBasicType(a.Type); if (idxParam != 0) { #line default #line hidden this.Write(", "); #line 69 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" } if (type == BasicType.Class) { #line default #line hidden this.Write("const "); #line 73 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" } if (type.IsBasic()) { #line default #line hidden #line 77 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(CxxHelper.GetBasicTypeName(type))); #line default #line hidden #line 77 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" } else { #line default #line hidden #line 81 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(a.Type))); #line default #line hidden #line 81 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" } if (type == BasicType.Class) { #line default #line hidden this.Write("&"); #line 85 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" } #line default #line hidden this.Write(" "); #line 87 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.LowerCamelCase.Convert(a.Name))); #line default #line hidden #line 87 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" } #line default #line hidden this.Write(")\r\n {"); #line 90 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" if (CxxHelper.Server) { #line default #line hidden this.Write("\r\n return false;"); #line 95 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" } else { #line default #line hidden this.Write(" std::printf(\""); #line 100 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(m.MethodId)); #line default #line hidden #line 100 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" foreach (MethodParam a in m.Param) { BasicType type = CxxHelper.Definition.GetBasicType(a.Type); if (type == BasicType.Class) { type = CxxHelper.Definition.GetBasicType(CxxHelper.Definition.Class[a.Type].IdMember.Type); } #line default #line hidden this.Write(" %"); #line 106 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(CxxHelper.GetBasicTypePrinter(type))); #line default #line hidden #line 106 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" } #line default #line hidden this.Write("\\n\""); #line 108 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" foreach (MethodParam a in m.Param) { BasicType type = CxxHelper.Definition.GetBasicType(a.Type); if (type == BasicType.Class) { BasicType realType = CxxHelper.Definition.GetBasicType(CxxHelper.Definition.Class[a.Type].IdMember.Type); #line default #line hidden this.Write(", "); #line 115 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" if (realType == BasicType.Enum) { #line default #line hidden this.Write("(int)"); #line 118 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" } #line default #line hidden #line 120 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.LowerCamelCase.Convert(a.Name))); #line default #line hidden this.Write("."); #line 120 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.LowerCamelCase.Convert(CxxHelper.Definition.Class[a.Type].IdMember.Name))); #line default #line hidden #line 120 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" } else if (type == BasicType.Enum) { #line default #line hidden this.Write(", (int)"); #line 124 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.LowerCamelCase.Convert(a.Name))); #line default #line hidden #line 124 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" } else { #line default #line hidden this.Write(", "); #line 128 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.LowerCamelCase.Convert(a.Name))); #line default #line hidden #line 128 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" } } #line default #line hidden this.Write(");"); #line 131 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" } #line default #line hidden this.Write("\r\n }"); #line 134 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" } if (CxxHelper.Server) { foreach (string m in c.ConditionMethod) { #line default #line hidden this.Write("\r\n\r\n bool "); #line 143 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(c.Name))); #line default #line hidden this.Write("::"); #line 143 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(m))); #line default #line hidden this.Write("(struct "); #line 143 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.GameSetup))); #line default #line hidden this.Write("& gameSetup, struct "); #line 143 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.PlayerSetup))); #line default #line hidden this.Write("& playerSetup, struct "); #line 143 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.GameState))); #line default #line hidden this.Write("& gameState, struct "); #line 143 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.PlayerState))); #line default #line hidden this.Write("& playerState)\r\n {\r\n return true;\r\n }"); #line 146 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" } } } #line default #line hidden this.Write("\r\n}"); #line 152 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" if (CxxHelper.Server) { this.PopIndent(); #line default #line hidden this.Write("\r\n}"); #line 158 "D:\ugly\CodeGenerator\cxx\CxxCode.tt" } #line default #line hidden return(this.GenerationEnvironment.ToString()); }
/// <summary> /// Create the template output /// </summary> public virtual string TransformText() { this.Write("#include \"Serializer.h\"\r\n#include <cctype>\r\n#include <sstream>\r\n\r\nnamespace ugly\r" + "\n{\r\n namespace "); #line 12 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.Namespace))); #line default #line hidden this.Write("\r\n {\r\n void Serializer::IdMap::Clear()\r\n {"); #line 15 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" foreach (GameClass c in CxxHelper.Definition.Class.Values) { if (c.IdMember != null) { #line default #line hidden this.Write("\r\n "); #line 22 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.LowerCamelCase.Convert(c.Name))); #line default #line hidden this.Write(".clear();"); #line 22 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" } } #line default #line hidden this.Write(@" } namespace { template<class T> T ReadNext(const char*& buf) { std::uint64_t data = 0; bool negative = false; if (*buf == '-') { negative = true; ++buf; } while (std::isdigit(*buf)) { data *= 10; data += ((*buf) - '0'); } if (*buf) ++buf; if (negative) return static_cast<T>(-static_cast<std::int64_t>(data)); return static_cast<T>(data); } template<typename T> void SerializeInternal(T& data, std::stringstream& buffer, Serializer::IdMap& ids, "); #line 52 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.GameSetup))); #line default #line hidden this.Write("& gameSetup, "); #line 52 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.PlayerSetup))); #line default #line hidden this.Write("& playerSetup, "); #line 52 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.GameState))); #line default #line hidden this.Write("& gameState, "); #line 52 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.PlayerState))); #line default #line hidden this.Write("& playerState);\r\n "); #line 53 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" foreach (GameClass c in CxxHelper.Definition.Class.Values) { #line default #line hidden this.Write("\r\n template<> void SerializeInternal("); #line 58 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(c.Name))); #line default #line hidden this.Write("& data, std::stringstream& buffer, Serializer::IdMap& ids, "); #line 58 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.GameSetup))); #line default #line hidden this.Write("& gameSetup, "); #line 58 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.PlayerSetup))); #line default #line hidden this.Write("& playerSetup, "); #line 58 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.GameState))); #line default #line hidden this.Write("& gameState, "); #line 58 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.PlayerState))); #line default #line hidden this.Write("& playerState);"); #line 58 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" } foreach (GameClass c in CxxHelper.Definition.Class.Values) { #line default #line hidden this.Write("\r\n\r\n template<> void SerializeInternal("); #line 66 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(c.Name))); #line default #line hidden this.Write("& data, std::stringstream& buffer, Serializer::IdMap& ids, "); #line 66 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.GameSetup))); #line default #line hidden this.Write("& gameSetup, "); #line 66 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.PlayerSetup))); #line default #line hidden this.Write("& playerSetup, "); #line 66 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.GameState))); #line default #line hidden this.Write("& gameState, "); #line 66 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.PlayerState))); #line default #line hidden this.Write("& playerState)\r\n {"); #line 67 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" if (c.IdMember != null) { #line default #line hidden this.Write("\r\n ids."); #line 72 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.LowerCamelCase.Convert(c.Name))); #line default #line hidden this.Write("[data."); #line 72 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.LowerCamelCase.Convert(c.IdMember.Name))); #line default #line hidden this.Write("] = &data;"); #line 72 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" } foreach (ClassMember m in c.Member) { #line default #line hidden this.Write("\r\n {"); #line 78 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" if (m.Array != 0) { for (int i = 0; i < m.Array; ++i) { #line default #line hidden this.Write("\r\n int size"); #line 85 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(i)); #line default #line hidden this.Write(" = (int)("); #line 85 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" if (i != 0) { #line default #line hidden this.Write("size"); #line 88 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(i - 1)); #line default #line hidden this.Write(" == 0 ? 0 : "); #line 88 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" } #line default #line hidden this.Write("data."); #line 90 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.LowerCamelCase.Convert(m.Name))); #line default #line hidden #line 90 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" for (int j = 0; j < i; ++j) { #line default #line hidden this.Write("[0]"); #line 93 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" } #line default #line hidden this.Write(".size());\r\n buffer << size"); #line 96 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(i)); #line default #line hidden this.Write(" << \" \";"); #line 96 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" } } if (m.Condition != null && m.Condition.Type == ConditionType.While && m.Array != 0) { #line default #line hidden this.Write(" bool executeLoop = true;"); #line 102 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" } string arrayIdxSuffix = ""; for (int i = 0; i < m.Array; ++i) { #line default #line hidden this.Write("\r\n for (int idx"); #line 109 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(i)); #line default #line hidden this.Write(" = 0; idx"); #line 109 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(i)); #line default #line hidden this.Write(" < size"); #line 109 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(i)); #line default #line hidden this.Write("; ++idx"); #line 109 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(i)); #line default #line hidden this.Write(")\r\n {"); #line 110 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.PushIndent(" "); arrayIdxSuffix += string.Format("[idx{0}]", i); } switch (CxxHelper.Definition.GetBasicType(m.Type)) { case BasicType.Char: case BasicType.Enum: #line default #line hidden this.Write(" \r\n buffer << (int)data."); #line 120 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.LowerCamelCase.Convert(m.Name))); #line default #line hidden #line 120 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(arrayIdxSuffix)); #line default #line hidden this.Write(" << \" \";"); #line 120 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" break; case BasicType.Class: if (m.Condition != null) { #line default #line hidden this.Write(" \r\n if ("); #line 127 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" if (m.Condition.Type == ConditionType.While) { #line default #line hidden this.Write("(executeLoop = (executeLoop && "); #line 130 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" } #line default #line hidden this.Write("data."); #line 132 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.LowerCamelCase.Convert(m.Name))); #line default #line hidden #line 132 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(arrayIdxSuffix)); #line default #line hidden this.Write("."); #line 132 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(m.Condition.Function))); #line default #line hidden this.Write("(gameSetup, playerSetup, gameState, playerState))"); #line 132 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" if (m.Condition.Type == ConditionType.While) { #line default #line hidden this.Write("))"); #line 135 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" } #line default #line hidden this.Write("\r\n {"); #line 139 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.PushIndent(" "); } #line default #line hidden this.Write("\r\n SerializeInternal(data."); #line 144 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.LowerCamelCase.Convert(m.Name))); #line default #line hidden #line 144 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(arrayIdxSuffix)); #line default #line hidden this.Write(", buffer, ids, gameSetup, playerSetup, gameState, playerState);"); #line 144 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" if (m.Condition != null) { this.PopIndent(); #line default #line hidden this.Write("\r\n }"); #line 150 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" } break; default: #line default #line hidden this.Write(" \r\n buffer << data."); #line 156 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.LowerCamelCase.Convert(m.Name))); #line default #line hidden #line 156 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(arrayIdxSuffix)); #line default #line hidden this.Write(" << \" \";"); #line 156 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" break; } for (int i = 0; i < m.Array; ++i) { this.PopIndent(); #line default #line hidden this.Write("\r\n }"); #line 164 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" } #line default #line hidden this.Write("\r\n }"); #line 168 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" } #line default #line hidden this.Write("\r\n }"); #line 172 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" } #line default #line hidden this.Write("\r\n }\r\n\r\n std::string Serializer::SerializeSetup("); #line 178 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.GameSetup))); #line default #line hidden this.Write("& gameSetup, "); #line 178 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.PlayerSetup))); #line default #line hidden this.Write("& playerSetup, "); #line 178 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.GameState))); #line default #line hidden this.Write("& gameState, "); #line 178 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.PlayerState))); #line default #line hidden this.Write(@"& playerState) { std::stringstream buffer; gameSetupId.Clear(); buffer << playerSetup.id << '\n'; SerializeInternal(gameSetup, buffer, gameSetupId, gameSetup, playerSetup, gameState, playerState); buffer << '\n'; return buffer.str(); } std::string Serializer::SerializeState("); #line 188 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.GameSetup))); #line default #line hidden this.Write("& gameSetup, "); #line 188 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.PlayerSetup))); #line default #line hidden this.Write("& playerSetup, "); #line 188 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.GameState))); #line default #line hidden this.Write("& gameState, "); #line 188 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.PlayerState))); #line default #line hidden this.Write(@"& playerState) { std::stringstream buffer; gameStateId.Clear(); SerializeInternal(gameState, buffer, gameStateId, gameSetup, playerSetup, gameState, playerState); buffer << '\n'; return buffer.str(); } bool Serializer::ExecuteOrder(const std::string& order, "); #line 197 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.GameSetup))); #line default #line hidden this.Write("& gameSetup, "); #line 197 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(CxxHelper.Definition.Config.GameState))); #line default #line hidden this.Write("& gameState, int currentPlayerId)\r\n {\r\n const char* buf = order" + ".c_str();\r\n int _methodId = ReadNext<int>(buf);\r\n switch (" + "_methodId)\r\n {"); #line 202 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" foreach (GameFile f in CxxHelper.Definition.Files) { foreach (GameClass c in f.Class) { foreach (ClassMethod m in c.Method) { #line default #line hidden this.Write("\r\n case "); #line 211 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(m.MethodId)); #line default #line hidden this.Write(":\r\n {\r\n "); #line 213 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(CxxHelper.GetBasicTypeName(CxxHelper.Definition.GetBasicType(c.IdMember.Type)))); #line default #line hidden this.Write(" argThisId = ReadNext<"); #line 213 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(CxxHelper.GetBasicTypeName(CxxHelper.Definition.GetBasicType(c.IdMember.Type)))); #line default #line hidden this.Write(">(buf);\r\n auto argThisIt = gameStateId."); #line 214 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.LowerCamelCase.Convert(c.Name))); #line default #line hidden this.Write(".find(argThisId);\r\n if (argThisIt == gameStateId."); #line 215 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.LowerCamelCase.Convert(c.Name))); #line default #line hidden this.Write(".end())\r\n {\r\n argThisIt = gameSetupId."); #line 217 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.LowerCamelCase.Convert(c.Name))); #line default #line hidden this.Write(".find(argThisId);\r\n if (argThisIt == gameSetupId."); #line 218 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.LowerCamelCase.Convert(c.Name))); #line default #line hidden this.Write(".end())\r\n return false;\r\n }\r\n " + " "); #line 221 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(c.Name))); #line default #line hidden this.Write("& argThis = *(argThisIt->second);"); #line 221 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" foreach (MethodParam a in m.Param) { BasicType type = CxxHelper.Definition.GetBasicType(a.Type); if (type == BasicType.Class) { #line default #line hidden this.Write("\r\n "); #line 229 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(CxxHelper.GetBasicTypeName(CxxHelper.Definition.GetBasicType(CxxHelper.Definition.Class[a.Type].IdMember.Type)))); #line default #line hidden this.Write(" "); #line 229 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.LowerCamelCase.Convert(a.Name))); #line default #line hidden this.Write("_id = ReadNext<"); #line 229 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(CxxHelper.GetBasicTypeName(CxxHelper.Definition.GetBasicType(CxxHelper.Definition.Class[a.Type].IdMember.Type)))); #line default #line hidden this.Write(">(buf);\r\n auto "); #line 230 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.LowerCamelCase.Convert(a.Name))); #line default #line hidden this.Write("_it = gameStateId."); #line 230 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.LowerCamelCase.Convert(a.Type))); #line default #line hidden this.Write(".find("); #line 230 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.LowerCamelCase.Convert(a.Name))); #line default #line hidden this.Write("_id);\r\n if ("); #line 231 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.LowerCamelCase.Convert(a.Name))); #line default #line hidden this.Write("_it == gameStateId."); #line 231 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.LowerCamelCase.Convert(a.Type))); #line default #line hidden this.Write(".end())\r\n {\r\n "); #line 233 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.LowerCamelCase.Convert(a.Name))); #line default #line hidden this.Write("_it = gameSetupId."); #line 233 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.LowerCamelCase.Convert(a.Type))); #line default #line hidden this.Write(".find("); #line 233 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.LowerCamelCase.Convert(a.Name))); #line default #line hidden this.Write("_id);\r\n if ("); #line 234 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.LowerCamelCase.Convert(a.Name))); #line default #line hidden this.Write("_it == gameSetupId."); #line 234 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.LowerCamelCase.Convert(a.Type))); #line default #line hidden this.Write(".end())\r\n return false;\r\n }\r\n " + " "); #line 237 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(a.Type))); #line default #line hidden this.Write("& "); #line 237 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.LowerCamelCase.Convert(a.Name))); #line default #line hidden this.Write(" = *("); #line 237 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.LowerCamelCase.Convert(a.Name))); #line default #line hidden this.Write("_it->second);"); #line 237 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" } else if (type == BasicType.Enum) { #line default #line hidden this.Write("\r\n "); #line 243 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(a.Type))); #line default #line hidden this.Write(" "); #line 243 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.LowerCamelCase.Convert(a.Name))); #line default #line hidden this.Write(" = ReadNext<"); #line 243 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(a.Type))); #line default #line hidden this.Write(">(buf);"); #line 243 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" } else { #line default #line hidden this.Write("\r\n "); #line 249 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(CxxHelper.GetBasicTypeName(type))); #line default #line hidden this.Write(" "); #line 249 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.LowerCamelCase.Convert(a.Name))); #line default #line hidden this.Write(" = ReadNext<"); #line 249 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(CxxHelper.GetBasicTypeName(type))); #line default #line hidden this.Write(">(buf);"); #line 249 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" } } #line default #line hidden this.Write("\r\n return argThis."); #line 254 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.CamelCase.Convert(m.Name))); #line default #line hidden this.Write("(gameSetup, gameSetup.player[currentPlayerId], gameState, gameState.player[curren" + "tPlayerId]"); #line 254 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" foreach (MethodParam a in m.Param) { #line default #line hidden this.Write(", "); #line 257 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" this.Write(this.ToStringHelper.ToStringWithCulture(Case.LowerCamelCase.Convert(a.Name))); #line default #line hidden #line 257 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" } #line default #line hidden this.Write(");\r\n }"); #line 260 "D:\ugly\CodeGenerator\cxx\CxxSerializationCode.tt" } } } #line default #line hidden this.Write("\r\n default:\r\n return false;\r\n }\r\n " + " }\r\n }\r\n}"); return(this.GenerationEnvironment.ToString()); }