mirror of
https://github.com/infinitefusion/infinitefusion-e18.git
synced 2026-11-06 01:35:46 +00:00
Hotfix patch 6.9.2: Randomized champion crash fix
This commit is contained in:
@@ -2,22 +2,7 @@ module Encryption
|
||||
ENCRYPTION_KEY = [0x4A, 0x8F, 0x2C, 0xE1, 0x73, 0xB5, 0x96, 0x0D,
|
||||
0x5E, 0xA2, 0x3F, 0xC7, 0x81, 0x14, 0x6B, 0xD9]
|
||||
|
||||
CHUNK_SIZE = 1 << 20
|
||||
|
||||
def self.xor(data)
|
||||
key = ENCRYPTION_KEY.pack("C*")
|
||||
@full_chunk_key ||= (key * (CHUNK_SIZE / key.length)).unpack1("H*").to_i(16)
|
||||
full_chunk_key = @full_chunk_key
|
||||
result = String.new(capacity: data.bytesize, encoding: Encoding::BINARY)
|
||||
offset = 0
|
||||
while offset < data.bytesize
|
||||
chunk = data.byteslice(offset, CHUNK_SIZE)
|
||||
size = chunk.bytesize
|
||||
chunk_key = size == CHUNK_SIZE ? full_chunk_key : (key * (size / key.length + 1)).byteslice(0, size).unpack1("H*").to_i(16)
|
||||
xored = chunk.unpack1("H*").to_i(16) ^ chunk_key
|
||||
result << [xored.to_s(16).rjust(size * 2, "0")].pack("H*")
|
||||
offset += CHUNK_SIZE
|
||||
end
|
||||
return result
|
||||
data.bytes.each_with_index.map { |b, i| b ^ ENCRYPTION_KEY[i % ENCRYPTION_KEY.length] }.pack("C*")
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -548,7 +548,7 @@ class Messages
|
||||
@messages = [] if !@messages
|
||||
arr = []
|
||||
for i in 0...array.length
|
||||
arr[i] = (array[i] == "") ? nil : array[i]
|
||||
arr[i] = (array[i]) ? array[i] : ""
|
||||
end
|
||||
@messages[type] = arr
|
||||
end
|
||||
@@ -557,8 +557,7 @@ class Messages
|
||||
@messages = [] if !@messages
|
||||
arr = (@messages[type]) ? @messages[type] : []
|
||||
for i in 0...array.length
|
||||
arr[i] = array[i] if array[i]
|
||||
arr[i] = nil if arr[i] == ""
|
||||
arr[i] = (array[i]) ? array[i] : (arr[i]) ? arr[i] : ""
|
||||
end
|
||||
@messages[type] = arr
|
||||
end
|
||||
@@ -766,10 +765,6 @@ module MessageTypes
|
||||
@@messages.loadMessageFile(filename)
|
||||
end
|
||||
|
||||
def self.loadFallbackMessageFile(filename)
|
||||
@@messagesFallback.loadMessageFile(filename)
|
||||
end
|
||||
|
||||
def self.get(type, id)
|
||||
ret = @@messages.get(type, id)
|
||||
if ret == ""
|
||||
|
||||
Reference in New Issue
Block a user