Unfortunately, there's not much to add for the code:
<function name="populateDungeon" parameters="enemyList, weaponsList, suppliesList, area, max"><![CDATA[
empty = GetDirectChildren(area)
enemies = enemyList
weapons = weaponsList
while (ListCount(enemies) > 0) {
room = ObjectListItem(empty, GetRandomInt(1, ListCount(empty)) - 1) //This line is where the function hangs
for (i, 1, GetRandomInt(2, max), 1) {
enemy = CloneObject (ObjectListItem(enemies, GetRandomInt(1, ListCount(enemies)) - 1))
MoveObject (enemy, room)
enemy.wequip = ObjectListItem(weapons, GetRandomInt(1, ListCount(weapons)) - 1)
supply = GetRandomInt(0, (2 * ListCount(suppliesList)) - 1)
count = 0
while (supply < ListCount(suppliesList) and count <> 3) {
CloneObjectAndMove (ObjectListItem(suppliesList, supply), enemy)
supply = GetRandomInt(0, (2 * ListCount(suppliesList)) - 1)
count = count + 1
}
list remove (enemies, enemy.cloneof)
room.bads = room.bads + 1
}
if (ListCount(enemies) = 1) {
enemy = CloneObject (ObjectListItem(enemies, 0))
MoveObject (enemy, room)
enemy.wequip = ObjectListItem(weapons, GetRandomInt(1, ListCount(weapons)) - 1)
supply = GetRandomInt(0, (2 * ListCount(suppliesList)) - 1)
count = 0
while (supply < ListCount(suppliesList) and count <> 3) {
CloneObjectAndMove (ObjectListItem(suppliesList, supply), enemy)
supply = GetRandomInt(0, (2 * ListCount(suppliesList)) - 1)
count = count + 1
}
list remove (enemies, enemy.cloneof)
room.bads = room.bads + 1
}
room.battle = true
room.prubble = GetRandomInt(0, 4)
room.erubble = GetRandomInt(0, max)
list remove (empty, room)
}
]]></function>
It doesn't get very far into the function before it stops completely (the sixth line above). The parameters are put together just before the function is called, in the game's start script (the game doesn't react well to this function at all when it's called outside the start script, unfortunately).
list add (game.enemyList, Raider)
list add (game.enemyList, Raider)
list add (game.enemyList, Raider)
list add (game.enemyList, Brute)
list add (game.enemyList, Brute)
list add (game.enemyList, Brute)
list add (game.enemyList, Sickly)
list add (game.enemyList, Sickly)
list add (game.enemyList, Sickly)
list add (game.weaponslist, combat knife)
list add (game.weaponslist, crowbar)
list add (game.weaponslist, baton)
list add (game.weaponslist, pistol)
list add (game.weaponslist, shotgun)
list add (game.weaponslist, machete)
list add (game.weaponslist, baseball bat)
list add (game.supplieslist, leather jacket)
list add (game.supplieslist, bulletproof vest)
list add (game.supplieslist, pistol ammo)
list add (game.supplieslist, shotgun shells)
populateDungeon (game.enemyList, game.weaponslist, game.supplieslist, Combat Rooms, 3)