mirror of
https://github.com/Steffo99/lihzahrd.git
synced 2024-11-24 17:14:22 +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))
|
left, right, top, bottom = struct.unpack("iiii", self.file.read(16))
|
||||||
return Rect(left, right, top, bottom)
|
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:
|
def string(self, size=None) -> str:
|
||||||
if size is None:
|
if size is None:
|
||||||
size = self.uint1()
|
size = self.leb128()
|
||||||
return str(self.file.read(size), encoding="latin1")
|
return str(self.file.read(size), encoding="latin1")
|
||||||
|
|
||||||
def uuid(self) -> uuid.UUID:
|
def uuid(self) -> uuid.UUID:
|
||||||
|
|
|
@ -547,7 +547,7 @@ class World:
|
||||||
unknown_world_header_data = f.read_until(pointers.world_tiles)
|
unknown_world_header_data = f.read_until(pointers.world_tiles)
|
||||||
|
|
||||||
# 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)
|
unknown_world_tiles_data = f.read_until(pointers.chests)
|
||||||
|
|
||||||
|
@ -577,7 +577,7 @@ class World:
|
||||||
name=chest_name,
|
name=chest_name,
|
||||||
contents=chest_contents)
|
contents=chest_contents)
|
||||||
chests.append(chest)
|
chests.append(chest)
|
||||||
tm[chest.position].extra = chest
|
#`tm[chest.position].extra = chest
|
||||||
|
|
||||||
unknown_chests_data = f.read_until(pointers.signs)
|
unknown_chests_data = f.read_until(pointers.signs)
|
||||||
|
|
||||||
|
@ -590,7 +590,7 @@ class World:
|
||||||
sign = Sign(text=f.string(),
|
sign = Sign(text=f.string(),
|
||||||
position=Coordinates(f.int4(), f.int4()))
|
position=Coordinates(f.int4(), f.int4()))
|
||||||
signs.append(sign)
|
signs.append(sign)
|
||||||
tm[sign.position].extra = sign
|
#`tm[sign.position].extra = sign
|
||||||
|
|
||||||
unknown_signs_data = f.read_until(pointers.npcs)
|
unknown_signs_data = f.read_until(pointers.npcs)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue