def SiftBattle(name):
    from mud.world.battle import BattleGroup,BattleSequence,BattleResult,BattleMustSurvive,BattleProto
    from mud.world.zone import Zone
    bp = BattleProto.byName(name)
    
    zone = Zone.byName(bp.zoneName)
    
    sequences = []
    seq = bp.side1StartSequence
    while seq:
        sequences.append(seq)
        seq = seq.nextSequence
    seq = bp.side2StartSequence
    while seq:
        sequences.append(seq)
        seq = seq.nextSequence
        
    sgroups = []
    for s in sequences:
        snd = s.zoneSound
        if snd:
            AddSound("./$/data/sound/%s"%snd)
        for g in s.battleGroups:
            if g.triggerSpawnGroup:
                for sg in zone.spawnGroups:
                    if sg.groupName == g.triggerSpawnGroup:
                        sgroups.append(sg)
                        
            if g.spawnGroup:
                for sg in zone.spawnGroups:
                    if sg.groupName == g.spawnGroup:
                        sgroups.append(sg)
        
    
    SiftBattleResult(zone,bp.side1VictoryResult)
    SiftBattleResult(zone,bp.side2VictoryResult)
    SiftBattleResult(zone,bp.side1DefeatResult)
    SiftBattleResult(zone,bp.side2DefeatResult)
    
    for sg in sgroups:
        for sinfo in sg.spawninfos:
            SiftSpawn(sinfo.spawn)
def SiftBattle(name):
    from mud.world.battle import BattleGroup, BattleSequence, BattleResult, BattleMustSurvive, BattleProto
    from mud.world.zone import Zone
    bp = BattleProto.byName(name)

    zone = Zone.byName(bp.zoneName)

    sequences = []
    seq = bp.side1StartSequence
    while seq:
        sequences.append(seq)
        seq = seq.nextSequence
    seq = bp.side2StartSequence
    while seq:
        sequences.append(seq)
        seq = seq.nextSequence

    sgroups = []
    for s in sequences:
        snd = s.zoneSound
        if snd:
            AddSound("./$/data/sound/%s" % snd)
        for g in s.battleGroups:
            if g.triggerSpawnGroup:
                for sg in zone.spawnGroups:
                    if sg.groupName == g.triggerSpawnGroup:
                        sgroups.append(sg)

            if g.spawnGroup:
                for sg in zone.spawnGroups:
                    if sg.groupName == g.spawnGroup:
                        sgroups.append(sg)

    SiftBattleResult(zone, bp.side1VictoryResult)
    SiftBattleResult(zone, bp.side2VictoryResult)
    SiftBattleResult(zone, bp.side1DefeatResult)
    SiftBattleResult(zone, bp.side2DefeatResult)

    for sg in sgroups:
        for sinfo in sg.spawninfos:
            SiftSpawn(sinfo.spawn)