mirror of
https://github.com/Steffo99/lihzahrd.git
synced 2024-11-21 15:44:24 +00:00
Begin implementing LEB128
This commit is contained in:
parent
cab7d810f5
commit
d4692f9b79
2 changed files with 13 additions and 4 deletions
|
@ -57,9 +57,18 @@ class FileReader:
|
|||
left, right, top, bottom = struct.unpack("iiii", self.file.read(16))
|
||||
return Rect(left, right, top, bottom)
|
||||
|
||||
def leb128(self) -> int:
|
||||
byte = self.uint1()
|
||||
while byte & 0b1000_0000:
|
||||
byte = byte & 0b0111_1111
|
||||
byte = byte << 7
|
||||
byte = byte | self.uint1()
|
||||
# TODO
|
||||
raise NotImplementedError("TODO")
|
||||
|
||||
def string(self, size=None) -> str:
|
||||
if size is None:
|
||||
size = self.uint1()
|
||||
size = self.leb128()
|
||||
return str(self.file.read(size), encoding="latin1")
|
||||
|
||||
def uuid(self) -> uuid.UUID:
|
||||
|
|
|
@ -547,7 +547,7 @@ class World:
|
|||
unknown_world_header_data = f.read_until(pointers.world_tiles)
|
||||
|
||||
# Tiles
|
||||
tm = cls._create_tilematrix(f, world_size, tileframeimportant)
|
||||
#`tm = cls._create_tilematrix(f, world_size, tileframeimportant)
|
||||
|
||||
unknown_world_tiles_data = f.read_until(pointers.chests)
|
||||
|
||||
|
@ -577,7 +577,7 @@ class World:
|
|||
name=chest_name,
|
||||
contents=chest_contents)
|
||||
chests.append(chest)
|
||||
tm[chest.position].extra = chest
|
||||
#`tm[chest.position].extra = chest
|
||||
|
||||
unknown_chests_data = f.read_until(pointers.signs)
|
||||
|
||||
|
@ -590,7 +590,7 @@ class World:
|
|||
sign = Sign(text=f.string(),
|
||||
position=Coordinates(f.int4(), f.int4()))
|
||||
signs.append(sign)
|
||||
tm[sign.position].extra = sign
|
||||
#`tm[sign.position].extra = sign
|
||||
|
||||
unknown_signs_data = f.read_until(pointers.npcs)
|
||||
|
||||
|
|
Loading…
Reference in a new issue