Absender: Timo Sandmann
Datum: Fr, 19.10.2007 22:12:21
In-reply-to:
<000001c81283$1b6ea170$fe78a8c0@mexpnew>
References:
<000001c81283$1b6ea170$fe78a8c0@mexpnew>
Hallo, Am 19.10.2007 um 21:06 schrieb Frank Menzel:
Hallo, in der todo-Liste ist mir vorhin der folgende Punkt aufgefallen: Gefahren bot-logik.c Low-Level-Verhalten muessen andere ueber Gefahren warnen Ich wollte dazu nur kurz anmerken, dass es diesen Punkt eigentlich bereits realisiert gibt, aber nie direkt so gesagt wurde.Dazu gibt es ja die Funktion register_emergency_proc, welche ich auch an mehreren Stellen einsetze. Damit können beliebige Verhalten ihre eigenen Routinen registrieren, um auf einen Notfall verhaltensabhängig reagierenzu können. Die Verhaltensroutinen werden durch die Registrierung in einem kleinen Array gespeichert und bei Gefahr der Reihe nachabgearbeitet mittels der Routine start_registered_emergency_procs in denGefahrensverhalten: -behaviour_hang_on -behaviour_avoid_border
das Problem ist, dass ein Verhalten nicht direkt weiß, ob ein Notfallverhalten lief. Natürlich könnte man über den beschriebenen Mechanismus für jedes Verhalten eine Funktion machen, die für jeden Notfall irgendwo einen Wert "Notfall_X_trat_auf" auf True setzt, das ist aber a) viel zu viel Overhead und b) ist dann immer noch unklar, wann der Notfall auftrat und ob es jetzt noch interessant ist. Besser wäre daher, dass die Verhalten selbst nachschauen können, was vor ihnen passiert ist. Das hatten wir hier ja schon mal diskutiert und darauf bezieht sich IMHO der Punkt in der ToDo-Liste.
Gruß Timo