aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--pkg/messages/types/svcUserMessage.go141
1 files changed, 102 insertions, 39 deletions
diff --git a/pkg/messages/types/svcUserMessage.go b/pkg/messages/types/svcUserMessage.go
index 2e7f044..1acbe31 100644
--- a/pkg/messages/types/svcUserMessage.go
+++ b/pkg/messages/types/svcUserMessage.go
@@ -54,8 +54,12 @@ func ParseSvcUserMessage(reader *bitreader.Reader) SvcUserMessage {
54 svcUserMessage.parseVoiceMask(userMessageReader) 54 svcUserMessage.parseVoiceMask(userMessageReader)
55 case EUserMessageTypeCloseCaption: 55 case EUserMessageTypeCloseCaption:
56 svcUserMessage.parseCloseCaption(userMessageReader) 56 svcUserMessage.parseCloseCaption(userMessageReader)
57 case EUserMessageTypeHintText:
58 svcUserMessage.parseHintText(userMessageReader)
57 case EUserMessageTypeKeyHintText: 59 case EUserMessageTypeKeyHintText:
58 svcUserMessage.parseKeyHintText(userMessageReader) 60 svcUserMessage.parseKeyHintText(userMessageReader)
61 case EUserMessageTypeCreditsMsg:
62 svcUserMessage.parseCreditsMsg(userMessageReader)
59 case EUserMessageTypeLogoTimeMsg: 63 case EUserMessageTypeLogoTimeMsg:
60 svcUserMessage.parseLogoTimeMsg(userMessageReader) 64 svcUserMessage.parseLogoTimeMsg(userMessageReader)
61 case EUserMessageTypeAchievementEvent: 65 case EUserMessageTypeAchievementEvent:
@@ -64,6 +68,8 @@ func ParseSvcUserMessage(reader *bitreader.Reader) SvcUserMessage {
64 svcUserMessage.parseCurrentTimescale(userMessageReader) 68 svcUserMessage.parseCurrentTimescale(userMessageReader)
65 case EUserMessageTypeDesiredTimescale: 69 case EUserMessageTypeDesiredTimescale:
66 svcUserMessage.parseDesiredTimescale(userMessageReader) 70 svcUserMessage.parseDesiredTimescale(userMessageReader)
71 case EUserMessageTypeCreditsPortalMsg:
72 svcUserMessage.parseCreditsPortalMsg(userMessageReader)
67 case EUserMessageTypeMPMapCompleted: 73 case EUserMessageTypeMPMapCompleted:
68 svcUserMessage.parseMpMapCompleted(userMessageReader) 74 svcUserMessage.parseMpMapCompleted(userMessageReader)
69 case EUserMessageTypeMPMapIncomplete: 75 case EUserMessageTypeMPMapIncomplete:
@@ -76,6 +82,10 @@ func ParseSvcUserMessage(reader *bitreader.Reader) SvcUserMessage {
76 svcUserMessage.parsePortalFxSurface(userMessageReader) 82 svcUserMessage.parsePortalFxSurface(userMessageReader)
77 case EUserMessageTypePaintWorld: 83 case EUserMessageTypePaintWorld:
78 svcUserMessage.parsePaintWorld(userMessageReader) 84 svcUserMessage.parsePaintWorld(userMessageReader)
85 case EUserMessageTypeRemovePaint:
86 svcUserMessage.parseRemovePaint(userMessageReader)
87 case EUserMessageTypeApplyHitBoxDamageEffect:
88 svcUserMessage.parseApplyHitBoxDamageEffect(userMessageReader)
79 case EUserMessageTypeTransitionFade: 89 case EUserMessageTypeTransitionFade:
80 svcUserMessage.parseTransitionFade(userMessageReader) 90 svcUserMessage.parseTransitionFade(userMessageReader)
81 case EUserMessageTypeScoreboardTempUpdate: 91 case EUserMessageTypeScoreboardTempUpdate:
@@ -517,43 +527,53 @@ func (svcUserMessage *SvcUserMessage) parseVoiceMask(reader *bitreader.Reader) {
517} 527}
518 528
519func (svcUserMessage *SvcUserMessage) parseCloseCaption(reader *bitreader.Reader) { 529func (svcUserMessage *SvcUserMessage) parseCloseCaption(reader *bitreader.Reader) {
520 type CloseCaptionFlag uint8 530 // type CloseCaptionFlag uint8
521 const ( 531 // const (
522 None CloseCaptionFlag = 0 532 // None CloseCaptionFlag = 0
523 WarnIfMissing CloseCaptionFlag = 1 533 // WarnIfMissing CloseCaptionFlag = 1
524 FromPlayer CloseCaptionFlag = 1 << 1 534 // FromPlayer CloseCaptionFlag = 1 << 1
525 GenderMale CloseCaptionFlag = 1 << 2 535 // GenderMale CloseCaptionFlag = 1 << 2
526 GenderFemale CloseCaptionFlag = 1 << 3 536 // GenderFemale CloseCaptionFlag = 1 << 3
527 ) 537 // )
528 closeCaption := struct { 538 closeCaption := struct {
529 TokenName string 539 Hash uint32
530 Duration float32 540 Duration float32
531 Flags uint8 541 Flags uint8
532 }{ 542 }{
533 TokenName: reader.TryReadString(), 543 Hash: reader.TryReadUInt32(),
534 Duration: float32(reader.TryReadSInt16()) * 0.1, 544 Duration: float32(reader.TryReadSInt16()) * 0.1,
535 Flags: reader.TryReadUInt8(), 545 // Flags: reader.TryReadUInt8(),
536 }
537 getFlags := func(flags CloseCaptionFlag) []string {
538 var flagStrings []string
539 if flags&WarnIfMissing != 0 {
540 flagStrings = append(flagStrings, "WarnIfMissing")
541 }
542 if flags&FromPlayer != 0 {
543 flagStrings = append(flagStrings, "FromPlayer")
544 }
545 if flags&GenderMale != 0 {
546 flagStrings = append(flagStrings, "GenderMale")
547 }
548 if flags&GenderFemale != 0 {
549 flagStrings = append(flagStrings, "GenderFemale")
550 }
551 return flagStrings
552 } 546 }
547 // getFlags := func(flags CloseCaptionFlag) []string {
548 // var flagStrings []string
549 // if flags&WarnIfMissing != 0 {
550 // flagStrings = append(flagStrings, "WarnIfMissing")
551 // }
552 // if flags&FromPlayer != 0 {
553 // flagStrings = append(flagStrings, "FromPlayer")
554 // }
555 // if flags&GenderMale != 0 {
556 // flagStrings = append(flagStrings, "GenderMale")
557 // }
558 // if flags&GenderFemale != 0 {
559 // flagStrings = append(flagStrings, "GenderFemale")
560 // }
561 // return flagStrings
562 // }
553 svcUserMessage.Data = closeCaption 563 svcUserMessage.Data = closeCaption
554 writer.TempAppendLine("\t\t\tToken Name: %s", closeCaption.TokenName) 564 writer.TempAppendLine("\t\t\tHash: %v", closeCaption.Hash)
555 writer.TempAppendLine("\t\t\tDuration: %f", closeCaption.Duration) 565 writer.TempAppendLine("\t\t\tDuration: %f", closeCaption.Duration)
556 writer.TempAppendLine("\t\t\tFlags: %v", getFlags(CloseCaptionFlag(closeCaption.Flags))) 566 // writer.TempAppendLine("\t\t\tFlags: %v", getFlags(CloseCaptionFlag(closeCaption.Flags)))
567}
568
569func (svcUserMessage *SvcUserMessage) parseHintText(reader *bitreader.Reader) {
570 hintText := struct {
571 Text string
572 }{
573 Text: reader.TryReadString(),
574 }
575 svcUserMessage.Data = hintText
576 writer.TempAppendLine("\t\t\tText: %s", hintText.Text)
557} 577}
558 578
559func (svcUserMessage *SvcUserMessage) parseKeyHintText(reader *bitreader.Reader) { 579func (svcUserMessage *SvcUserMessage) parseKeyHintText(reader *bitreader.Reader) {
@@ -569,6 +589,14 @@ func (svcUserMessage *SvcUserMessage) parseKeyHintText(reader *bitreader.Reader)
569 writer.TempAppendLine("\t\t\tString: %s", keyHintText.KeyString) 589 writer.TempAppendLine("\t\t\tString: %s", keyHintText.KeyString)
570} 590}
571 591
592func (svcUserMessage *SvcUserMessage) parseCreditsMsg(reader *bitreader.Reader) {
593 creditsMsg := struct{ Byte uint8 }{
594 Byte: reader.TryReadUInt8(),
595 }
596 svcUserMessage.Data = creditsMsg
597 writer.TempAppendLine("\t\t\tByte: %v", creditsMsg.Byte)
598}
599
572func (svcUserMessage *SvcUserMessage) parseLogoTimeMsg(reader *bitreader.Reader) { 600func (svcUserMessage *SvcUserMessage) parseLogoTimeMsg(reader *bitreader.Reader) {
573 logoTimeMsg := struct{ Time float32 }{ 601 logoTimeMsg := struct{ Time float32 }{
574 Time: reader.TryReadFloat32(), 602 Time: reader.TryReadFloat32(),
@@ -612,6 +640,14 @@ func (svcUserMessage *SvcUserMessage) parseDesiredTimescale(reader *bitreader.Re
612 writer.TempAppendLine("\t\t\tUnk4: %f", desiredTimescale.Unk4) 640 writer.TempAppendLine("\t\t\tUnk4: %f", desiredTimescale.Unk4)
613} 641}
614 642
643func (svcUserMessage *SvcUserMessage) parseCreditsPortalMsg(reader *bitreader.Reader) {
644 creditsPortalMsg := struct{ Byte uint8 }{
645 Byte: reader.TryReadUInt8(),
646 }
647 svcUserMessage.Data = creditsPortalMsg
648 writer.TempAppendLine("\t\t\tByte: %v", creditsPortalMsg.Byte)
649}
650
615func (svcUserMessage *SvcUserMessage) parseMpMapCompleted(reader *bitreader.Reader) { 651func (svcUserMessage *SvcUserMessage) parseMpMapCompleted(reader *bitreader.Reader) {
616 mpMapCompleted := struct { 652 mpMapCompleted := struct {
617 Branch uint8 653 Branch uint8
@@ -782,6 +818,33 @@ func (svcUserMessage *SvcUserMessage) parsePaintWorld(reader *bitreader.Reader)
782 writer.TempAppendLine("\t\t\tPositions: %v", paintWorld.Positions) 818 writer.TempAppendLine("\t\t\tPositions: %v", paintWorld.Positions)
783} 819}
784 820
821func (svcUserMessage *SvcUserMessage) parseRemovePaint(reader *bitreader.Reader) {
822 removePaint := struct {
823 Unk uint32
824 }{
825 Unk: reader.TryReadUInt32(),
826 }
827 svcUserMessage.Data = removePaint
828 writer.TempAppendLine("\t\t\tUnk: %d", removePaint.Unk)
829}
830
831func (svcUserMessage *SvcUserMessage) parseApplyHitBoxDamageEffect(reader *bitreader.Reader) {
832 applyHitBotDamageStruct := struct {
833 UnkInt uint32
834 UnkByte1 uint8
835 UnkByte2 uint8
836 }{
837 UnkInt: reader.TryReadUInt32(),
838 UnkByte1: reader.TryReadUInt8(),
839 UnkByte2: reader.TryReadUInt8(),
840 }
841 svcUserMessage.Data = applyHitBotDamageStruct
842 writer.TempAppendLine("\t\t\tUnkInt: %d", applyHitBotDamageStruct.UnkInt)
843 writer.TempAppendLine("\t\t\tUnkByte1: %v", applyHitBotDamageStruct.UnkByte1)
844 writer.TempAppendLine("\t\t\tUnkByte2: %v", applyHitBotDamageStruct.UnkByte2)
845
846}
847
785func (svcUserMessage *SvcUserMessage) parseTransitionFade(reader *bitreader.Reader) { 848func (svcUserMessage *SvcUserMessage) parseTransitionFade(reader *bitreader.Reader) {
786 transitionFade := struct { 849 transitionFade := struct {
787 Seconds float32 850 Seconds float32
@@ -830,17 +893,17 @@ const (
830 EUserMessageTypeRequestState 893 EUserMessageTypeRequestState
831 EUserMessageTypeCloseCaption // done // Show a caption (by string id number)(duration in 10th of a second) 894 EUserMessageTypeCloseCaption // done // Show a caption (by string id number)(duration in 10th of a second)
832 EUserMessageTypeCloseCaptionDirect // Show a forced caption (by string id number)(duration in 10th of a second) 895 EUserMessageTypeCloseCaptionDirect // Show a forced caption (by string id number)(duration in 10th of a second)
833 EUserMessageTypeHintText // Displays hint text display 896 EUserMessageTypeHintText // done // Displays hint text display
834 EUserMessageTypeKeyHintText // done // Displays hint text display 897 EUserMessageTypeKeyHintText // done // Displays hint text display
835 EUserMessageTypeSquadMemberDied 898 EUserMessageTypeSquadMemberDied
836 EUserMessageTypeAmmoDenied 899 EUserMessageTypeAmmoDenied
837 EUserMessageTypeCreditsMsg 900 EUserMessageTypeCreditsMsg // done
838 EUserMessageTypeLogoTimeMsg // done 901 EUserMessageTypeLogoTimeMsg // done
839 EUserMessageTypeAchievementEvent // done 902 EUserMessageTypeAchievementEvent // done
840 EUserMessageTypeUpdateJalopyRadar 903 EUserMessageTypeUpdateJalopyRadar
841 EUserMessageTypeCurrentTimescale // done // Send one float for the new timescale 904 EUserMessageTypeCurrentTimescale // done // Send one float for the new timescale
842 EUserMessageTypeDesiredTimescale // Send timescale and some blending vars 905 EUserMessageTypeDesiredTimescale // done // Send timescale and some blending vars
843 EUserMessageTypeCreditsPortalMsg // portal 1 end 906 EUserMessageTypeCreditsPortalMsg // done // portal 1 end
844 EUserMessageTypeInventoryFlash // portal 2 start 907 EUserMessageTypeInventoryFlash // portal 2 start
845 EUserMessageTypeIndicatorFlash 908 EUserMessageTypeIndicatorFlash
846 EUserMessageTypeControlHelperAnimate 909 EUserMessageTypeControlHelperAnimate
@@ -857,15 +920,15 @@ const (
857 EUserMessageTypeMPTauntLocked // done 920 EUserMessageTypeMPTauntLocked // done
858 EUserMessageTypeMPAllTauntsLocked 921 EUserMessageTypeMPAllTauntsLocked
859 EUserMessageTypePortalFX_Surface // done 922 EUserMessageTypePortalFX_Surface // done
860 EUserMessageTypePaintWorld // d 923 EUserMessageTypePaintWorld // done
861 EUserMessageTypePaintEntity 924 EUserMessageTypePaintEntity
862 EUserMessageTypeChangePaintColor 925 EUserMessageTypeChangePaintColor
863 EUserMessageTypePaintBombExplode 926 EUserMessageTypePaintBombExplode
864 EUserMessageTypeRemoveAllPaint 927 EUserMessageTypeRemoveAllPaint
865 EUserMessageTypePaintAllSurfaces 928 EUserMessageTypePaintAllSurfaces
866 EUserMessageTypeRemovePaint 929 EUserMessageTypeRemovePaint // done
867 EUserMessageTypeStartSurvey 930 EUserMessageTypeStartSurvey
868 EUserMessageTypeApplyHitBoxDamageEffect 931 EUserMessageTypeApplyHitBoxDamageEffect // done
869 EUserMessageTypeSetMixLayerTriggerFactor 932 EUserMessageTypeSetMixLayerTriggerFactor
870 EUserMessageTypeTransitionFade // done 933 EUserMessageTypeTransitionFade // done
871 EUserMessageTypeScoreboardTempUpdate // done 934 EUserMessageTypeScoreboardTempUpdate // done