BUG 0001980: Gegener hält Burg obwohl alle geflohen sind!

http://bugs.eressea.de/view.php?id=1980
Der Test unten erzeugt eine Temp-Einheit welche nach dem Kampf die Burg hält, trotz einer vernichtenden Niederlage innerhalb von 2 Kampfrunden. Der Angreifer darf die Burg zwar betreten, bekommt aber nicht das Kommando.
Grund ist das beim Betreten der Burg via u_set_building() nur dann die betretende Einheit zum Burgenbesitzer wird wenn es keinen Burgenbesitzer gibt.
Die eher aufgerufene Funktion building_owner() versucht zwar nach dem Kampf einen neuen Burgenbesitzer zu finden, da sich zu diesem Zeitpunkt aber nur eine Tote Einheit und einen Temp Einheit, beide mit 0 Personen, in der Bug befinden schlägt dies Fehl. Es wird von der Funktion zwar 0 zurückgegeben, aber b->_owner wird nicht zurückgesetzt (Vermutlich da der Server an anderer Stelle sonst annimmt das noch nie jemand in der Burg war). Daher die Überprüfung bei u_set_building ob der Burgenbesitzer tot ist, und wenn ja wird die betretende Einheit neuer Burgenbesitzer.
    local r1 = region.create(1, 2, "plain")
    local f1 = faction.create("noreply@tteessttiinngg.de", "human", "de")
    f1.id = 2
    local f2 = faction.create("noreply@tteessttiinngg.de", "human", "de")
    f2.id = 3
	f1.age=20
	f2.age=20
    
	local b1 = building.create(r1, "castle")
    b1.size = 100
	
	local u0 = unit.create(f1, r1, 10)
    u0.building = b1
    u0:add_item("money", u0.number * 100)
    u0:clear_orders()
    u0:add_order("KÄMPFE")
	u0:add_order("MACHE TEMP 1")
	u0:add_order("ENDE")
    
    local u1 = unit.create(f1, r1, 100)
    u1.building = b1
    u1:add_item("money", u1.number * 100)
    u1:clear_orders()
    u1:add_order("KÄMPFE FLIEHE")
    u1:add_order("GIB TEMP 1 ALLES PERSONEN")
    u1:add_order("GIB TEMP 1 ALLES")
	u1:add_order("GIB TEMP 1 Kommando")
 	
    local u2 = unit.create(f2, r1, 101)
	u2:add_item("sword", u2.number)
	u2:add_item("money", u2.number * 100)
    u2:set_skill("melee", 16)
    u2:clear_orders()
    u2:add_order("KÄMPFE")
	u2:add_order("ATTACKIEREN " .. itoa36(u1.id))
	u2:add_order("BETRETE BURG " .. itoa36(b1.id))
	
    process_orders()
Shit github online Editor!
This is the only Change.