hcodedb::MAPObject Class Reference

Inheritance diagram for hcodedb::MAPObject:

Inheritance graph
[legend]
Collaboration diagram for hcodedb::MAPObject:

Collaboration graph
[legend]

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

Detailed Description

Definition at line 409 of file hcodedb.py.


Member Function Documentation

def hcodedb::MAPObject::__init__ (   self,
  key,
  type,
  size,
  data 
)

Reimplemented from hcodedb::HCodeObject.

Definition at line 410 of file hcodedb.py.

00410                                              :
00411         self.key = key
00412         self.type = type
00413 
00414         self.format = "@ii31sHHbBHbbHbHHb10iHHibBiiiHH"
00415         self.parsedata(data, size)
00416 
    def parsedata(self, data, size):

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):


Field Documentation

hcodedb::MAPObject::format

Definition at line 414 of file hcodedb.py.

hcodedb::MAPObject::key

Reimplemented from hcodedb::HCodeObject.

Definition at line 411 of file hcodedb.py.

hcodedb::MAPObject::losinfo

Definition at line 441 of file hcodedb.py.

hcodedb::MAPObject::map

Definition at line 440 of file hcodedb.py.

hcodedb::MAPObject::mapbits

Definition at line 489 of file hcodedb.py.

hcodedb::MAPObject::mapobj

Definition at line 454 of file hcodedb.py.

hcodedb::MAPObject::mechflags

Definition at line 448 of file hcodedb.py.

hcodedb::MAPObject::mechsonmap

Definition at line 446 of file hcodedb.py.

hcodedb::MAPObject::type

Reimplemented from hcodedb::HCodeObject.

Definition at line 412 of file hcodedb.py.


The documentation for this class was generated from the following file:
Generated on Mon May 28 04:25:49 2007 for BattletechMUX by  doxygen 1.4.7