aboutsummaryrefslogtreecommitdiff
path: root/pkg/classes/sarData.go
diff options
context:
space:
mode:
authorArda Serdar Pektezol <1669855+pektezol@users.noreply.github.com>2023-09-23 17:46:12 +0300
committerArda Serdar Pektezol <1669855+pektezol@users.noreply.github.com>2023-09-23 17:46:12 +0300
commit7745f2dcaa2c409c19c6e79bf1eaa2bc41444be0 (patch)
tree0c57a12442ec0b8e90089eddf44af78a01e8882a /pkg/classes/sarData.go
parentfeat: TONS of user message parsing (#10) (diff)
downloadsdp.go-7745f2dcaa2c409c19c6e79bf1eaa2bc41444be0.tar.gz
sdp.go-7745f2dcaa2c409c19c6e79bf1eaa2bc41444be0.tar.bz2
sdp.go-7745f2dcaa2c409c19c6e79bf1eaa2bc41444be0.zip
lp parser: only get portal count and cm ticks
Diffstat (limited to 'pkg/classes/sarData.go')
-rw-r--r--pkg/classes/sarData.go49
1 files changed, 14 insertions, 35 deletions
diff --git a/pkg/classes/sarData.go b/pkg/classes/sarData.go
index 27e8a64..9c61304 100644
--- a/pkg/classes/sarData.go
+++ b/pkg/classes/sarData.go
@@ -5,7 +5,6 @@ import (
5 "fmt" 5 "fmt"
6 6
7 "github.com/pektezol/bitreader" 7 "github.com/pektezol/bitreader"
8 "github.com/pektezol/demoparser/pkg/writer"
9) 8)
10 9
11type SarDataType uint8 10type SarDataType uint8
@@ -164,7 +163,6 @@ func (sarData *SarData) ParseSarData(reader *bitreader.Reader) (err error) {
164 len = 9 163 len = 9
165 } 164 }
166 dataReader := bitreader.NewReaderFromBytes(reader.TryReadBytesToSlice(len-1), true) 165 dataReader := bitreader.NewReaderFromBytes(reader.TryReadBytesToSlice(len-1), true)
167 writer.AppendLine("\tMessage: %s (%d):", sarData.Type.String(), sarData.Type)
168 switch sarData.Type { 166 switch sarData.Type {
169 case ESarDataTimescaleCheat: 167 case ESarDataTimescaleCheat:
170 sarData.Data, err = parseTimescaleCheatData(dataReader, len) 168 sarData.Data, err = parseTimescaleCheatData(dataReader, len)
@@ -175,7 +173,6 @@ func (sarData *SarData) ParseSarData(reader *bitreader.Reader) (err error) {
175 sarData.Data = parseInitialCVarData(dataReader) 173 sarData.Data = parseInitialCVarData(dataReader)
176 case ESarDataEntityInputSlot: 174 case ESarDataEntityInputSlot:
177 sarData.Slot = int(dataReader.TryReadBytes(1)) 175 sarData.Slot = int(dataReader.TryReadBytes(1))
178 writer.AppendLine("\t\tSlot: %d", sarData.Slot)
179 case ESarDataEntityInput: 176 case ESarDataEntityInput:
180 sarData.Data = parseEntityInputData(dataReader) 177 sarData.Data = parseEntityInputData(dataReader)
181 case ESarDataChecksum: 178 case ESarDataChecksum:
@@ -201,7 +198,7 @@ func (sarData *SarData) ParseSarData(reader *bitreader.Reader) (err error) {
201 if err != nil { 198 if err != nil {
202 sarData.Data = nil 199 sarData.Data = nil
203 } 200 }
204 writer.AppendLine("\t\tSlot: %d", sarData.Slot) 201
205 case ESarDataPause: 202 case ESarDataPause:
206 sarData.Data, err = parsePauseData(dataReader, len) 203 sarData.Data, err = parsePauseData(dataReader, len)
207 if err != nil { 204 if err != nil {
@@ -246,7 +243,7 @@ func parseTimescaleCheatData(reader *bitreader.Reader, length uint64) (SarDataTi
246 sarDataTimescaleCheat := SarDataTimescaleCheat{ 243 sarDataTimescaleCheat := SarDataTimescaleCheat{
247 Timescale: reader.TryReadFloat32(), 244 Timescale: reader.TryReadFloat32(),
248 } 245 }
249 writer.AppendLine("\t\tTimescale: %f", sarDataTimescaleCheat.Timescale) 246
250 return sarDataTimescaleCheat, nil 247 return sarDataTimescaleCheat, nil
251} 248}
252 249
@@ -255,7 +252,7 @@ func parseInitialCVarData(reader *bitreader.Reader) SarDataInitialCVar {
255 CVar: reader.TryReadString(), 252 CVar: reader.TryReadString(),
256 Val: reader.TryReadString(), 253 Val: reader.TryReadString(),
257 } 254 }
258 writer.AppendLine("\t\tCvar: \"%s\" = \"%s\"", sarDataInitialCvar.CVar, sarDataInitialCvar.Val) 255
259 return sarDataInitialCvar 256 return sarDataInitialCvar
260} 257}
261 258
@@ -266,10 +263,7 @@ func parseEntityInputData(reader *bitreader.Reader) SarDataEntityInput {
266 InputName: reader.TryReadString(), 263 InputName: reader.TryReadString(),
267 Parameter: reader.TryReadString(), 264 Parameter: reader.TryReadString(),
268 } 265 }
269 writer.AppendLine("\t\tTarget: %s", sarDataEntityInput.TargetName) 266
270 writer.AppendLine("\t\tClass: %s", sarDataEntityInput.ClassName)
271 writer.AppendLine("\t\tInput: %s", sarDataEntityInput.InputName)
272 writer.AppendLine("\t\tParameter: %s", sarDataEntityInput.Parameter)
273 return sarDataEntityInput 267 return sarDataEntityInput
274} 268}
275 269
@@ -281,8 +275,7 @@ func parseChecksumData(reader *bitreader.Reader, length uint64) (SarDataChecksum
281 DemoSum: reader.TryReadUInt32(), 275 DemoSum: reader.TryReadUInt32(),
282 SarSum: reader.TryReadUInt32(), 276 SarSum: reader.TryReadUInt32(),
283 } 277 }
284 writer.AppendLine("\t\tDemo Checksum: %d", sarDataChecksum.DemoSum) 278
285 writer.AppendLine("\t\tSAR Checksum: %d", sarDataChecksum.SarSum)
286 return sarDataChecksum, nil 279 return sarDataChecksum, nil
287} 280}
288 281
@@ -294,8 +287,7 @@ func parseChecksumV2Data(reader *bitreader.Reader, length uint64) (SarDataChecks
294 SarSum: reader.TryReadUInt32(), 287 SarSum: reader.TryReadUInt32(),
295 Signature: [64]byte(reader.TryReadBytesToSlice(60)), 288 Signature: [64]byte(reader.TryReadBytesToSlice(60)),
296 } 289 }
297 writer.AppendLine("\t\tSAR Checksum: %d", sarDataChecksumV2.SarSum) 290
298 writer.AppendLine("\t\tSignature: %v", sarDataChecksumV2.Signature)
299 return sarDataChecksumV2, nil 291 return sarDataChecksumV2, nil
300} 292}
301 293
@@ -312,10 +304,7 @@ func parsePortalPlacementData(reader *bitreader.Reader, length uint64) (SarDataP
312 Y: reader.TryReadFloat32(), 304 Y: reader.TryReadFloat32(),
313 Z: reader.TryReadFloat32(), 305 Z: reader.TryReadFloat32(),
314 } 306 }
315 writer.AppendLine("\t\tOrange: %t", orange) 307
316 writer.AppendLine("\t\tX: %f", sarDataPortalPlacement.X)
317 writer.AppendLine("\t\tY: %f", sarDataPortalPlacement.Y)
318 writer.AppendLine("\t\tZ: %f", sarDataPortalPlacement.Z)
319 return sarDataPortalPlacement, slot, nil 308 return sarDataPortalPlacement, slot, nil
320} 309}
321 310
@@ -333,7 +322,7 @@ func parsePauseData(reader *bitreader.Reader, length uint64) (SarDataPause, erro
333 sarDataPause := SarDataPause{ 322 sarDataPause := SarDataPause{
334 PauseTicks: reader.TryReadUInt32(), 323 PauseTicks: reader.TryReadUInt32(),
335 } 324 }
336 writer.AppendLine("\t\tPause Ticks: %d", sarDataPause.PauseTicks) 325
337 return sarDataPause, nil 326 return sarDataPause, nil
338} 327}
339 328
@@ -345,8 +334,7 @@ func parseWaitRunData(reader *bitreader.Reader, length uint64) (SarDataWaitRun,
345 Ticks: int(reader.TryReadUInt32()), 334 Ticks: int(reader.TryReadUInt32()),
346 Cmd: reader.TryReadString(), 335 Cmd: reader.TryReadString(),
347 } 336 }
348 writer.AppendLine("\t\tTicks: %d", sarDataWaitRun.Ticks) 337
349 writer.AppendLine("\t\tCmd: \"%s\"", sarDataWaitRun.Cmd)
350 return sarDataWaitRun, nil 338 return sarDataWaitRun, nil
351} 339}
352 340
@@ -358,8 +346,7 @@ func parseHWaitRunData(reader *bitreader.Reader, length uint64) (SarDataHWaitRun
358 Ticks: int(reader.TryReadUInt32()), 346 Ticks: int(reader.TryReadUInt32()),
359 Cmd: reader.TryReadString(), 347 Cmd: reader.TryReadString(),
360 } 348 }
361 writer.AppendLine("\t\tTicks: %d", sarDataHWaitRun.Ticks) 349
362 writer.AppendLine("\t\tCmd: \"%s\"", sarDataHWaitRun.Cmd)
363 return sarDataHWaitRun, nil 350 return sarDataHWaitRun, nil
364} 351}
365 352
@@ -372,14 +359,12 @@ func parseSpeedrunTimeData(reader *bitreader.Reader, length uint64) (SarDataSpee
372 for splitCount := 0; splitCount < int(numberOfSplits); splitCount++ { 359 for splitCount := 0; splitCount < int(numberOfSplits); splitCount++ {
373 splits[splitCount].Name = reader.TryReadString() 360 splits[splitCount].Name = reader.TryReadString()
374 splits[splitCount].NSegs = reader.TryReadUInt32() 361 splits[splitCount].NSegs = reader.TryReadUInt32()
375 writer.AppendLine("\t\t[%d] Split Name: \"%s\"", splitCount, splits[splitCount].Name) 362
376 writer.AppendLine("\t\t[%d] Number of Segments: %d", splitCount, splits[splitCount].NSegs)
377 splits[splitCount].Segs = make([]SarDataSpeedrunTimeSegs, splits[splitCount].NSegs) 363 splits[splitCount].Segs = make([]SarDataSpeedrunTimeSegs, splits[splitCount].NSegs)
378 for segCount := 0; segCount < int(splits[splitCount].NSegs); segCount++ { 364 for segCount := 0; segCount < int(splits[splitCount].NSegs); segCount++ {
379 splits[splitCount].Segs[segCount].Name = reader.TryReadString() 365 splits[splitCount].Segs[segCount].Name = reader.TryReadString()
380 splits[splitCount].Segs[segCount].Ticks = reader.TryReadUInt32() 366 splits[splitCount].Segs[segCount].Ticks = reader.TryReadUInt32()
381 writer.AppendLine("\t\t\t[%d] Segment Name: \"%s\"", segCount, splits[splitCount].Segs[segCount].Name) 367
382 writer.AppendLine("\t\t\t[%d] Segment Ticks: %d", segCount, splits[splitCount].Segs[segCount].Ticks)
383 } 368 }
384 } 369 }
385 return SarDataSpeedrunTime{ 370 return SarDataSpeedrunTime{
@@ -401,12 +386,7 @@ func parseTimestampData(reader *bitreader.Reader, length uint64) (SarDataTimesta
401 Minute: timestamp[5], 386 Minute: timestamp[5],
402 Second: timestamp[6], 387 Second: timestamp[6],
403 } 388 }
404 writer.AppendLine("\t\tYear: %d", sarDataTimeStamp.Year) 389
405 writer.AppendLine("\t\tMonth: %d", sarDataTimeStamp.Month)
406 writer.AppendLine("\t\tDay: %d", sarDataTimeStamp.Day)
407 writer.AppendLine("\t\tHour: %d", sarDataTimeStamp.Hour)
408 writer.AppendLine("\t\tMinute: %d", sarDataTimeStamp.Minute)
409 writer.AppendLine("\t\tSecond: %d", sarDataTimeStamp.Second)
410 return sarDataTimeStamp, nil 390 return sarDataTimeStamp, nil
411} 391}
412 392
@@ -418,7 +398,6 @@ func parseFileChecksumData(reader *bitreader.Reader, length uint64) (SarDataFile
418 Sum: reader.TryReadUInt32(), 398 Sum: reader.TryReadUInt32(),
419 Path: reader.TryReadString(), 399 Path: reader.TryReadString(),
420 } 400 }
421 writer.AppendLine("\t\tChecksum: %d", sarDataFileChecksum.Sum) 401
422 writer.AppendLine("\t\tPath: \"%s\"", sarDataFileChecksum.Path)
423 return sarDataFileChecksum, nil 402 return sarDataFileChecksum, nil
424} 403}