Public Member Functions | |
def | __init__ |
def | parsedata |
def | load_update1 |
def | load_mapobj |
def | load_bits |
Data Fields | |
key | |
type | |
format | |
map | |
losinfo | |
mechsonmap | |
mechflags | |
mapobj | |
mapbits |
Definition at line 409 of file hcodedb.py.
def hcodedb::MAPObject::__init__ | ( | self, | ||
key, | ||||
type, | ||||
size, | ||||
data | ||||
) |
def hcodedb::MAPObject::load_bits | ( | self, | ||
fp | ||||
) |
Definition at line 487 of file hcodedb.py.
00487 : 00488 00489 self.mapbits = [] 00490 fmt = "@" + "i"*self.height 00491 foo = _unpack(fmt, fp) 00492 fmt = "@" + "B"*(self.width / 4 + ((self.width % 4) and 1 or 0)) 00493 for x in foo: 00494 if x: 00495 self.mapbits.append(_unpack(fmt, fp)) 00496 else: 00497 self.mapbits.append([]) 00498 00499 class MapobjObject:
def hcodedb::MAPObject::load_mapobj | ( | self, | ||
fp | ||||
) |
Definition at line 465 of file hcodedb.py.
00465 : 00466 magic = ord(fp.read(1)) 00467 if magic <> MAPOBJSTART_MAGICNUM: 00468 sys.stderr.write("Did not find mapobjstartmagic for #%d\n"%self.mynum) 00469 sys.stderr.write("Wanted %d, got %d\n"%(MAPOBJSTART_MAGICNUM, magic)) 00470 00471 self.mapobj = [] 00472 for i in range(NUM_MAPOBJ): 00473 self.mapobj.append([]) 00474 00475 nextbyte = ord(fp.read(1)) 00476 while nextbyte: 00477 if nextbyte - 1 == TYPE_BITS: 00478 self.load_bits(fp) 00479 else: 00480 self.mapobj[nextbyte - 1].append(MapobjObject(fp)) 00481 nextbyte = ord(fp.read(1)) 00482 magic = ord(fp.read(1)) 00483 if magic <> MAPOBJEND_MAGICNUM: 00484 sys.stderr.write("no mapobjend found for #%d!\n") 00485 sys.stderr.write("Wanted %d, got %d\n"%(MAPOBJEND_MAGICNUM, magic)) 00486 def load_bits(self, fp):
def hcodedb::MAPObject::load_update1 | ( | self, | ||
fp | ||||
) |
Definition at line 439 of file hcodedb.py.
00439 : 00440 self.map = [] 00441 self.losinfo = [] 00442 num = self.first_free 00443 00444 if num: 00445 fmt = "@" + "i" * num 00446 self.mechsonmap = _unpack(fmt, fp) 00447 fmt = "@" + "b" * num 00448 self.mechflags = _unpack(fmt, fp) 00449 fmt = "@" + "H" * num 00450 for x in range(num): 00451 self.losinfo.append(_unpack(fmt, fp)) 00452 else: 00453 self.mechsonmap = [] 00454 self.mapobj = [] 00455 00456 magic = ord(fp.read(1)) 00457 if magic <> DYNAMIC_MAGIC: 00458 sys.stderr.write("Did not find DYNAMIC_MAGIC for #%d\n"%self.mynum) 00459 sys.stderr.write("Wanted %d, got %d\n"%(DYNAMIC_MAGIC, magic)) 00460 sys.exit(1) 00461 00462 if self.flags & MAPFLAG_MAPO: 00463 self.load_mapobj(fp) 00464 def load_mapobj(self, fp):
def hcodedb::MAPObject::parsedata | ( | self, | ||
data, | ||||
size | ||||
) |
Definition at line 417 of file hcodedb.py.
00417 : 00418 csize = struct.calcsize(self.format) 00419 if (size <> csize): 00420 sys.stderr.write("Wrong size: %d vs %d"%(size, csize)) 00421 if size < csize: 00422 data += "\0"*(csize - size) 00423 else: 00424 data = data[:csize] 00425 00426 pdata = list(struct.unpack(self.format, data)) 00427 (self.mynum, x, self.name, self.width, self.height, 00428 self.temp, self.grav, self.cloudbase, self.unused, self.vis, 00429 self.maxvis, self.light, self.winddir, self.windspeed, 00430 self.flags), pdata = pdata[:15], pdata[15:] 00431 00432 # Skip mapobjs 00433 pdata = pdata[10:] 00434 00435 (self.cf, self.maxcf, self.onmap, self.buildflag, 00436 self.first_free, x, x, x, 00437 self.moves, self.movemod) = pdata 00438 def load_update1(self, fp):
Definition at line 414 of file hcodedb.py.
Definition at line 441 of file hcodedb.py.
Definition at line 440 of file hcodedb.py.
Definition at line 489 of file hcodedb.py.
Definition at line 454 of file hcodedb.py.
Definition at line 448 of file hcodedb.py.
Definition at line 446 of file hcodedb.py.