class WeaponSpec(Struct): def __init__(self, cont=None, name=""): Struct.__init__(self, "CDataWeaponspec") self.name = String(name) self.sprite_body = Pointer(Sprite, Sprite()) self.sprite_cursor = Pointer(Sprite, Sprite()) self.sprite_proj = Pointer(Sprite, Sprite()) self.sprite_muzzles = Array(Pointer(Sprite, Sprite())) self.visual_size = Int(96) self.firedelay = Int(500) self.maxammo = Int(10) self.ammoregentime = Int(0) self.damage = Int(1) self.offsetx = Float(0) self.offsety = Float(0) self.muzzleoffsetx = Float(0) self.muzzleoffsety = Float(0) self.muzzleduration = Float(5) # dig out sprites if we have a container if cont: for sprite in cont.sprites.items: if sprite.name.value == "weapon_" + name + "_body": self.sprite_body.Set(sprite) elif sprite.name.value == "weapon_" + name + "_cursor": self.sprite_cursor.Set(sprite) elif sprite.name.value == "weapon_" + name + "_proj": self.sprite_proj.Set(sprite) elif "weapon_" + name + "_muzzle" in sprite.name.value: self.sprite_muzzles.Add(Pointer(Sprite, sprite))
class SoundSet(Struct): def __init__(self, name="", files=()): Struct.__init__(self, "CDataSoundset") self.name = String(name) self.sounds = Array(Sound()) self.last = Int(-1) for filename in files: self.sounds.Add(Sound(filename))