From 482ec66805ddb3724febfb17f3378b11f95f58a3 Mon Sep 17 00:00:00 2001 From: Arda Serdar Pektezol <1669855+pektezol@users.noreply.github.com> Date: Sat, 23 Sep 2023 19:34:15 +0300 Subject: retouch parser and header messages (#11) --- cmd/parser.go | 3 +++ pkg/messages/messages.go | 2 +- pkg/packets/headers.go | 12 +++++++++++- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/cmd/parser.go b/cmd/parser.go index cf82529..556033d 100644 --- a/cmd/parser.go +++ b/cmd/parser.go @@ -15,12 +15,14 @@ func main() { if len(os.Args) != 2 { panic("specify file in command line arguments") } + writer.AppendLine("Generated By: github.com/pektezol/demoparser") files, err := os.ReadDir(os.Args[1]) if err != nil { // If it's not a directory file, err := os.Open(os.Args[1]) if err != nil { panic(err) } + writer.AppendLine("\nFile Name: %s", file.Name()) reader := bitreader.NewReader(file, littleEndian) demoParserHandler(reader) defer file.Close() @@ -32,6 +34,7 @@ func main() { if err != nil { panic(err) } + writer.AppendLine("\nFile Name: %s", file.Name()) reader := bitreader.NewReader(file, littleEndian) demoParserHandler(reader) defer file.Close() diff --git a/pkg/messages/messages.go b/pkg/messages/messages.go index 5cc781d..626f462 100644 --- a/pkg/messages/messages.go +++ b/pkg/messages/messages.go @@ -58,7 +58,7 @@ func ParseMessages(messageType uint64, reader *bitreader.Reader) any { case 22: messageData = messages.ParseSvcSplitScreen(reader) // skipped case 23: - messageData = messages.ParseSvcUserMessage(reader) // TODO: + messageData = messages.ParseSvcUserMessage(reader) case 24: messageData = messages.ParseSvcEntityMessage(reader) // skipped case 25: diff --git a/pkg/packets/headers.go b/pkg/packets/headers.go index d92b22d..a8de4e7 100644 --- a/pkg/packets/headers.go +++ b/pkg/packets/headers.go @@ -42,6 +42,16 @@ func ParseHeaders(reader *bitreader.Reader) Headers { if headers.NetworkProtocol != 2001 { panic("this parser only supports demos from portal 2") } - writer.AppendLine("Headers: %+v", headers) + writer.AppendLine("\nDemo File Stamp: %s", headers.DemoFileStamp) + writer.AppendLine("Demo Protocol: %d", headers.DemoProtocol) + writer.AppendLine("Network Protocol: %d", headers.NetworkProtocol) + writer.AppendLine("Server Name: %s", headers.ServerName) + writer.AppendLine("Client Name: %s", headers.ClientName) + writer.AppendLine("Map Name: %s", headers.MapName) + writer.AppendLine("Game Directory: %s", headers.GameDirectory) + writer.AppendLine("Playback Time: %f", headers.PlaybackTime) + writer.AppendLine("Playback Ticks: %d", headers.PlaybackTicks) + writer.AppendLine("Playback Frames: %d", headers.PlaybackFrames) + writer.AppendLine("Sign On Length: %d\n", headers.SignOnLength) return headers } -- cgit v1.2.3