From 171e350e348afadb55967b9c13d5eadc7f7d2cf4 Mon Sep 17 00:00:00 2001 From: Arda Serdar Pektezol <1669855+pektezol@users.noreply.github.com> Date: Thu, 21 Sep 2023 01:53:59 +0300 Subject: add strings builder, customize ALL outputs (#6) --- pkg/classes/stringTable.go | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'pkg/classes/stringTable.go') diff --git a/pkg/classes/stringTable.go b/pkg/classes/stringTable.go index 3983c1f..44d8a73 100644 --- a/pkg/classes/stringTable.go +++ b/pkg/classes/stringTable.go @@ -2,6 +2,7 @@ package classes import ( "github.com/pektezol/bitreader" + "github.com/pektezol/demoparser/pkg/writer" ) type StringTable struct { @@ -38,6 +39,7 @@ func ParseStringTables(reader *bitreader.Reader) []StringTable { func (stringTable *StringTable) ParseStream(reader *bitreader.Reader) { stringTable.Name = reader.TryReadString() entryCount := reader.TryReadBits(16) + writer.AppendLine("\tTable Name: %s", stringTable.Name) stringTable.TableEntries = make([]StringTableEntry, entryCount) for i := 0; i < int(entryCount); i++ { @@ -45,7 +47,12 @@ func (stringTable *StringTable) ParseStream(reader *bitreader.Reader) { entry.Parse(reader) stringTable.TableEntries[i] = entry } - + if entryCount != 0 { + writer.AppendLine("\t\t%d Table Entries:", entryCount) + writer.AppendOutputFromTemp() + } else { + writer.AppendLine("\t\tNo Table Entries") + } if reader.TryReadBool() { classCount := reader.TryReadBits(16) stringTable.Classes = make([]StringTableClass, classCount) @@ -55,6 +62,10 @@ func (stringTable *StringTable) ParseStream(reader *bitreader.Reader) { class.Parse(reader) stringTable.Classes[i] = class } + writer.AppendLine("\t\t%d Classes:", classCount) + writer.AppendOutputFromTemp() + } else { + writer.AppendLine("\t\tNo Class Entries") } } @@ -73,8 +84,10 @@ func (stringTableEntry *StringTableEntry) Parse(reader *bitreader.Reader) { func (stringTableClass *StringTableClass) Parse(reader *bitreader.Reader) { stringTableClass.Name = reader.TryReadString() + writer.TempAppendLine("\t\t\tName: %s", stringTableClass.Name) if reader.TryReadBool() { dataLen := reader.TryReadBits(16) stringTableClass.Data = reader.TryReadStringLength(dataLen) + writer.TempAppendLine("\t\t\tData: %s", stringTableClass.Data) } } -- cgit v1.2.3