本文整理汇总了Python中reader.Reader.readshort方法的典型用法代码示例。如果您正苦于以下问题:Python Reader.readshort方法的具体用法?Python Reader.readshort怎么用?Python Reader.readshort使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类reader.Reader
的用法示例。
在下文中一共展示了Reader.readshort方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: checksumcontent
# 需要导入模块: from reader import Reader [as 别名]
# 或者: from reader.Reader import readshort [as 别名]
def checksumcontent(hdr, data):
if hdr.flags & 0x00000004:
r = Reader(data)
if hdr.flags & 0x00000100:
r.skip(8)
if hdr.flags & 0x00001000:
nseq = r.readint()
r.skip(nseq * 4)
if hdr.flags & 0x00002000:
nseq = r.readint()
r.skip(nseq * 4)
if hdr.flags & 0x00004000:
r.skip(4)
if hdr.flags & 0x00400000:
r.skip(8)
if hdr.flags & 0x01000000:
r.skip(8)
if hdr.flags & 0x02000000:
r.skip(4)
if hdr.flags & 0x04000000:
r.skip(8)
if hdr.flags & 0x08000000:
r.skip(6)
checksum = checksumdata(data[0 : r.position], True)
while len(r):
frag_start = r.position
r.readformat('Q')
r.readshort()
frag_len = r.readshort()
r.readshort()
r.readshort()
r.skip(frag_len - 16)
frag_checksum = checksumdata(data[frag_start : frag_start + frag_len], True)
checksum = (checksum + frag_checksum) & 0xFFFFFFFF
return checksum
else:
return checksumdata(data, True)
示例2: print
# 需要导入模块: from reader import Reader [as 别名]
# 或者: from reader.Reader import readshort [as 别名]
resourceId = r.readint()
flags = r.readint()
print("resourceId = {:08x} flags = {:x}".format(resourceId, flags))
assert flags == 0 or flags == 2
resourceId2 = r.readint()
numTextures = r.readbyte()
numConnections = r.readbyte()
numVisible = r.readshort()
for i in range(numTextures):
textureId = r.readshort()
#print('texture {}: {:04x}'.format(i, textureId))
#r.align()
geometryId = r.readint()
#print('geometryId={:08x}'.format(geometryId))
x, y, z = r.readformat('fff')
rw, rx, ry, rz = r.readformat('ffff')
#print('x={}, y={}, z={}'.format(x, y, z))
#print('rw={}, rx={}, ry={}, rz={}'.format(rw, rx, ry, rz))
示例3: Reader
# 需要导入模块: from reader import Reader [as 别名]
# 或者: from reader.Reader import readshort [as 别名]
from reader import Reader
from bsp import BSPNode
from model import unpack_vertex, unpack_trifan
r = Reader(sys.stdin.buffer.raw.read())
fid = r.readint()
assert fid & 0xFF000000 == 0x0D000000
numPieces = r.readint()
print('{:08x} numPieces = {}'.format(fid, numPieces))
for pi in range(numPieces):
#print('======')
pieceIndex = r.readshort()
#print('pieceIndex = {}'.format(pieceIndex))
assert pieceIndex == pi
unk4 = r.readshort()
#print('unk4 = {}'.format(unk4))
assert unk4 == 0
numTriangleFans = r.readint()
#print('numTriangleFans = {}'.format(numTriangleFans))
numCollisionTriangleFans = r.readint()
#print('numCollisionTriangleFans = {}'.format(numCollisionTriangleFans))
numShorts = r.readint()
#print('numShorts = {}'.format(numShorts))
示例4: Reader
# 需要导入模块: from reader import Reader [as 别名]
# 或者: from reader.Reader import readshort [as 别名]
#!/usr/bin/env python
import sys
from reader import Reader
r = Reader(sys.stdin.buffer.raw.read())
#r.dump(1024)
fid = r.readint()
assert fid & 0x0000FFFF == 0x0000FFFE
numCells = r.readint()
numObjects = r.readshort()
r.readshort()
for i in range(numObjects):
modelId = r.readint()
x, y, z = r.readformat('3f')
assert x >= 0.0 and x <= 192.0
assert y >= 0.0 and y <= 192.0
#assert z >= 0.0 and z <= 512.0
rw, rx, ry, rz = r.readformat('4f')
numBuildings = r.readshort()
hasthings = r.readshort()
#print('fid = {:08x} numBuildings = {} thing = {}'.format(fid, numBuildings, thing))
for i in range(numBuildings):
modelId = r.readint()
x, y, z = r.readformat('3f')
示例5: Reader
# 需要导入模块: from reader import Reader [as 别名]
# 或者: from reader.Reader import readshort [as 别名]
#!/usr/bin/env python
import sys
import wave
from reader import Reader
r = Reader(sys.stdin.buffer.raw.read())
fid = r.readint()
assert fid & 0xFF000000 == 0x0A000000
typ = r.readint()
dataLen = r.readint()
unk2 = r.readshort()
unk3 = r.readshort()
channelSampleRate = r.readint()
totalSampleRate = r.readint()
numChannels = r.readshort()
bitsPerSample = r.readint()
print('==== fid = {:08x}'.format(fid))
if typ == 18:
print('unk2 = {} unk3 = {} channelSampleRate = {} totalSampleRate = {} numChannels = {} bitsPerSample = {}'
.format(unk2, unk3, channelSampleRate, totalSampleRate, numChannels, bitsPerSample))
assert typ == 18
assert dataLen == len(r)
assert unk2 == 1
assert unk3 == 1 or unk3 == 2
assert bitsPerSample == 8 or bitsPerSample == 16
assert channelSampleRate * numChannels == totalSampleRate
示例6: readarray
# 需要导入模块: from reader import Reader [as 别名]
# 或者: from reader.Reader import readshort [as 别名]
def readarray(r):
numBytes = r.readshort()
if numBytes == 0xFFFF:
numBytes = r.readint()
bytes = r.readformat('{}s'.format(numBytes))
r.align()
return bytes
r = Reader(sys.stdin.buffer.raw.read())
fid = r.readint()
assert fid & 0xFF000000 == 0x0E000000
print('=== fid = {:08x}'.format(fid))
if fid == 0x0e00000e: # spell table
count = r.readshort()
unk1 = r.readshort()
assert unk1 == 0x2000
for i in range(count):
iden = r.readint()
name = readcryptstring(r)
desc = readcryptstring(r)
#print('iden = {:08x} name = "{}" desc = "{}"'.format(iden, name, desc))
# 1 war
# 2 life
# 3 item
# 4 creature
# 5 void