Example #1
0
	def __init__(self, weaponsdat=None, flingydat=None, imagesdat=None, spritesdat=None, soundsdat=None, stat_txt=None, imagestbl=None, sfxdatatbl=None):
		if weaponsdat == None:
			weaponsdat = os.path.join(BASE_DIR, 'Libs', 'MPQ', 'arr', 'weapons.dat')
		if flingydat == None:
			flingydat = os.path.join(BASE_DIR, 'Libs', 'MPQ', 'arr', 'flingy.dat')
		if imagesdat == None:
			imagesdat = os.path.join(BASE_DIR, 'Libs', 'MPQ', 'arr', 'images.dat')
		if spritesdat == None:
			spritesdat = os.path.join(BASE_DIR, 'Libs', 'MPQ', 'arr', 'sprites.dat')
		if soundsdat == None:
			soundsdat = os.path.join(BASE_DIR, 'Libs', 'MPQ', 'arr', 'sfxdata.dat')
		if stat_txt == None:
			stat_txt = os.path.join(BASE_DIR, 'Libs', 'MPQ', 'rez', 'stat_txt.tbl')
		if imagestbl == None:
			imagestbl = os.path.join(BASE_DIR, 'Libs', 'MPQ', 'rez', 'images.tbl')
		if sfxdatatbl == None:
			sfxdatatbl = os.path.join(BASE_DIR, 'Libs', 'MPQ', 'rez', 'sfxdata.tbl')
		self.headers = {}
		self.offsets = {}
		self.code = odict()
		self.extrainfo = {}
		if isinstance(stat_txt, TBL.TBL):
			self.tbl = stat_txt
		else:
			self.tbl = TBL.TBL()
			self.tbl.load_file(stat_txt)
		if isinstance(weaponsdat, DAT.WeaponsDAT):
			self.weaponsdat = weaponsdat
		else:
			self.weaponsdat = DAT.WeaponsDAT(self.tbl)
			self.weaponsdat.load_file(weaponsdat)
		if isinstance(flingydat, DAT.FlingyDAT):
			self.flingydat = flingydat
		else:
			self.flingydat = DAT.FlingyDAT(self.tbl)
			self.flingydat.load_file(flingydat)
		if isinstance(imagesdat, DAT.ImagesDAT):
			self.imagesdat = imagesdat
		else:
			self.imagesdat = DAT.ImagesDAT(self.tbl)
			self.imagesdat.load_file(imagesdat)
		if isinstance(spritesdat, DAT.SpritesDAT):
			self.spritesdat = spritesdat
		else:
			self.spritesdat = DAT.SpritesDAT()
			self.spritesdat.load_file(spritesdat)
		if isinstance(soundsdat, DAT.SoundsDAT):
			self.soundsdat = soundsdat
		else:
			self.soundsdat = DAT.SoundsDAT()
			self.soundsdat.load_file(soundsdat)
		if isinstance(imagestbl, TBL.TBL):
			self.imagestbl = imagestbl
		else:
			self.imagestbl = TBL.TBL()
			self.imagestbl.load_file(imagestbl)
		if isinstance(sfxdatatbl, TBL.TBL):
			self.sfxdatatbl = sfxdatatbl
		else:
			self.sfxdatatbl = TBL.TBL()
			self.sfxdatatbl.load_file(sfxdatatbl)
Example #2
0
 def __init__(self, stat_txt=None):
     if stat_txt == None:
         stat_txt = os.path.join(BASE_DIR, 'Libs', 'MPQ', 'rez',
                                 'stat_txt.tbl')
     if isstr(stat_txt):
         self.tbl = TBL.TBL()
         self.tbl.load_file(stat_txt)
     else:
         self.tbl = stat_txt
     self.entries = [[0] * len(self.labels) for _ in range(self.count)]
     if self.datname == 'units.dat':
         self.data = [
             [[self.dat_value, 'Flingy'], ''],
             [[self.dat_value, 'Units'],
              ''], [[self.dat_value, 'Units'],
                    ''], [[self.dat_value, 'Units'], ''],
             [[self.dat_value, 'Images'],
              ''], [[None, ''], ''],
             [[None, ''],
              ''], [[None, ''], ''],
             [[None, ''],
              ''], [[self.info_value, 'ElevationLevels'], ''],
             [[None, ''],
              'Old Movement?: 0x1,0x2,0x4,0x8,0x10,0x20,0x40,0x80 (Mine-safe)'
              ], [[self.stattxt_value, 'Sublabel'], ''],
             [[self.dat_value, 'Orders'], ''],
             [[self.dat_value, 'Orders'], ''],
             [[self.dat_value, 'Orders'], ''],
             [[self.dat_value, 'Orders'], ''],
             [[self.dat_value, 'Orders'], ''],
             [[self.dat_value, 'Weapons'], ''], [[None, ''], ''],
             [[self.dat_value, 'Weapons'], ''], [[None, ''], ''],
             [[None, ''], ''],
             [[None, ''],
              'Building,Addon,Flyer,Worker,Subunit,"Flying Building",Hero,"Regenerates HP","Animated Idle(?)",Cloakable,"Two Units in 1 Egg","Single Entity","Resource Depot","Resource Container","Robotic Unit",Detector,"Organic Unit","Requires Creep",Unused(?),"Requires Psi",Burrowable,Spellcaster,"Permanent Cloak","Pickup Item(?)","Ignore Supply Check","Use Medium Overlays","Use Large Overlays","Battle Reactions","Full Auto-Attack",Invincible,"Mechanical Unit","Produces Units(?)"'
              ], [[None, ''], ''],
             [[None, ''], 'StarCraft crashes with values above 11'],
             [[self.dat_value, 'Upgrades'], ''],
             [[self.info_value, 'UnitSize'], ''], [[None, ''], ''],
             [[self.info_value, 'Rightclick'], ''],
             [[self.dat_value, 'Sfxdata'], ''],
             [[self.dat_value, 'Sfxdata'], ''],
             [[self.dat_value, 'Sfxdata'], ''],
             [[self.dat_value, 'Sfxdata'], ''],
             [[self.dat_value, 'Sfxdata'], ''],
             [[self.dat_value, 'Sfxdata'], ''],
             [[self.dat_value, 'Sfxdata'], ''], [[None, ''], ''],
             [[None, ''], ''], [[None, ''], 'X Position'],
             [[None, ''], 'Y Position'], [[None, ''], ''], [[None, ''], ''],
             [[None, ''], ''], [[None, ''], ''],
             [[self.dat_value, 'Portdata'], ''], [[None, ''], ''],
             [[None, ''], ''], [[self.time_value, ''], ''], [[None, ''],
                                                             ''],
             [[None, ''],
              'Zerg,Terran,Protoss,Men,Building,Factory,Independent,Neutral'
              ], [[None, ''], ''], [[None, ''], ''], [[None, ''], ''],
             [[None, ''], ''], [[None, ''], ''], [[None, ''], ''],
             [[None, ''], ''], [[None, ''], ''],
             [[None, ''],
              'Non-Neutral,"Unit Listing&&Palette","Mission Briefing","Player Settings","All Races","Set Doodad State","Non-Location Triggers","Unit&&Hero Settings","Location Triggers","BroodWar Only","Unused (0x400)","Unused (0x800)","Unused (0x1000)","Unused (0x2000)","Unused (0x4000)","Unused (0x8000)"'
              ]
         ]
         self.special = {'HitPoints': self.hitpoints}