13528
13529
13530
13531
13532
13533
13534
13535
13536
13537
13538
13539
13540
13541
13542
13543
13544
13545
13546
13547
13548
13549
13550
13551
13552
13553
13554
13555
13556
13557
13558
13559
13560
13561
13562
13563
13564
13565
13566
13567
13568
13569
13570
13571
13572
13573
13574
13575
13576
13577
13578
13579
13580
13581
13582
13583
13584
13585
13586
13587
13588
13589
13590
13591
13592
13593
13594
13595
13596
13597
13598
13599
13600
13601
13602
13603
13604
13605
13606
13607
13608
13609
13610
13611
13612
13613
13614
13615
13616
13617
13618
13619
13620
13621
13622
13623
13624
13625
13626
13627
13628
13629
13630
13631
13632
13633
13634
13635
13636
13637
13638
13639
13640
13641
13642
13643
13644
13645
13646
13647
13648
13649
13650
13651
13652
13653
13654
13655
13656
13657
13658
13659
13660
13661
13662
13663
13664
13665
13666
13667
13668
13669
13670
13671
13672
13673
13674
13675
13676
13677
13678
13679
13680
13681
13682
13683
13684
13685
13686
13687
13688
13689
13690
13691
13692
13693
13694
13695
13696
13697
13698
13699
13700
13701
13702
13703
13704
13705
13706
13707
13708
13709
13710
13711
13712
13713
13714
13715
13716
13717
13718
13719
13720
13721
13722
13723
13724
13725
13726
13727
13728
13729
13730
13731
13732
13733
13734
13735
13736
13737
13738
13739
13740
13741
13742
13743
13744
13745
13746
13747
13748
13749
13750
13751
13752
13753
13754
13755
13756
13757
13758
|
# File 'lib/sc2ai/protocol/sc2api_pb.rb', line 13528
def _encode(buff)
val = @race
if val != 0
buff << 0x08
loop do
byte = val & 0x7F
val >>= 7
val &= (1 << 57) - 1
byte |= 0x80 if val != 0
buff << byte
break if val == 0
end
end
val = @observed_player_id
if val != 0
buff << 0x10
loop do
byte = val & 0x7F
val >>= 7
byte |= 0x80 if val > 0
buff << byte
break if val == 0
end
end
val = @options
if val
buff << 0x1a
current_len = buff.bytesize
buff << 42
val._encode(buff)
submessage_size = buff.bytesize - current_len - 1
byte = submessage_size & 0x7F
submessage_size >>= 7
byte |= 0x80 if submessage_size > 0
buff.setbyte(current_len, byte)
if submessage_size > 0
current_len += 1
encoded_int_len = 0
remaining_size = submessage_size
while remaining_size != 0
remaining_size >>= 7
encoded_int_len += 1
end
buff.bytesplice(current_len, 0, "*********", 0, encoded_int_len)
while submessage_size != 0
byte = submessage_size & 0x7F
submessage_size >>= 7
byte |= 0x80 if submessage_size > 0
buff.setbyte(current_len, byte)
current_len += 1
end
end
buff
end
val = @server_ports
if val
buff << 0x22
current_len = buff.bytesize
buff << 42
val._encode(buff)
submessage_size = buff.bytesize - current_len - 1
byte = submessage_size & 0x7F
submessage_size >>= 7
byte |= 0x80 if submessage_size > 0
buff.setbyte(current_len, byte)
if submessage_size > 0
current_len += 1
encoded_int_len = 0
remaining_size = submessage_size
while remaining_size != 0
remaining_size >>= 7
encoded_int_len += 1
end
buff.bytesplice(current_len, 0, "*********", 0, encoded_int_len)
while submessage_size != 0
byte = submessage_size & 0x7F
submessage_size >>= 7
byte |= 0x80 if submessage_size > 0
buff.setbyte(current_len, byte)
current_len += 1
end
end
buff
end
list = @client_ports
if list.size > 0
list.each do |item|
val = item
if val
buff << 0x2a
current_len = buff.bytesize
buff << 42
val._encode(buff)
submessage_size = buff.bytesize - current_len - 1
byte = submessage_size & 0x7F
submessage_size >>= 7
byte |= 0x80 if submessage_size > 0
buff.setbyte(current_len, byte)
if submessage_size > 0
current_len += 1
encoded_int_len = 0
remaining_size = submessage_size
while remaining_size != 0
remaining_size >>= 7
encoded_int_len += 1
end
buff.bytesplice(current_len, 0, "*********", 0, encoded_int_len)
while submessage_size != 0
byte = submessage_size & 0x7F
submessage_size >>= 7
byte |= 0x80 if submessage_size > 0
buff.setbyte(current_len, byte)
current_len += 1
end
end
buff
end
end
end
val = @shared_port
if has_shared_port?
buff << 0x30
loop do
byte = val & 0x7F
val >>= 7
val &= (1 << 57) - 1
byte |= 0x80 if val != 0
buff << byte
break if val == 0
end
end
val = @player_name
if (len = val.bytesize) > 0 || has_player_name?
buff << 0x3a
loop do
byte = len & 0x7F
len >>= 7
byte |= 0x80 if len > 0
buff << byte
break if len == 0
end
buff << (val.ascii_only? ? val : val.b)
end
val = @host_ip
if (len = val.bytesize) > 0 || has_host_ip?
buff << 0x42
loop do
byte = len & 0x7F
len >>= 7
byte |= 0x80 if len > 0
buff << byte
break if len == 0
end
buff << (val.ascii_only? ? val : val.b)
end
buff << @_unknown_fields if @_unknown_fields
buff
end
|