des Programmierers Fundgrube: Wiederholungen

Es geht doch nichts darüber, wenn man gelegentlich Dinge findet die sich einfach kopieren lassen. Sei es von anderen (Programmierer klauen bekanntermassen wie die sprichwörtlichen Raben ^^) oder eben von einem selbst. Und es gab schon bei der mittlerweile schön laufenden 0.6.6 Probleme beim Speichern, die schon erwähnte GroupPosition lief gelegentlich auf einen kapitalen Fehler da sie nicht speicherbare Werte enthielt. Und damals – es ist witzigerweise fast genau ein Jahr her – ergänzte ich die Routine MySQLRegionData.cs um folgenden Schnipsel, der mir gute Dienste leistet immer noch:
[code lang=“csharp“]// bert@wolfsbone.de START 20091018
m_log.DebugFormat(„[DATA]: [BTRACE]: we will now inspect GroupPosition-Value Z“);
double tempGroupPositionZ = prim.GroupPosition.Z;
string tempString = tempGroupPositionZ.ToString(„0.00“);
string tempMessage = „[DATA]: [BTRACE]: it is: <“ + tempString + „>“;
m_log.DebugFormat(tempMessage);
if (tempString == „NaN“) {
m_log.DebugFormat(„[DATA]: [BTRACE]: now setting to 30, should be okay.“);
tempGroupPositionZ = 30;
}
// bert@wolfsbone.de END 20091018

cmd.Parameters.AddWithValue(„GroupPositionX“, (double)prim.GroupPosition.X);
cmd.Parameters.AddWithValue(„GroupPositionY“, (double)prim.GroupPosition.Y);
cmd.Parameters.AddWithValue(„GroupPositionZ“, (double)tempGroupPositionZ);[/code]

Etwas Ähnliches wollen wir dann doch mal wieder einbauen in die 0.6.9er, zunächst nur mit Meldecharakter um zu sehen was wann geschieht.

erste Annäherung

Nun, es gilt eine Aufgabe zu bewältigen, und diese heißt: Verlinken soll funktionieren. Wesentlich – wie immer im Bereich des (manchmal lästigen ;)) Reverse-Engineerings – ist, dass man langsam genug voranschreitet um einzelne Effekte auch klar einer bestimmten Ursache zuzuordnen.

Erste Aktion war, die mit dem Fehler behaftete Version standalone zum Laufen zu bringen. Das ist soweit geglückt, es sind einige Parameter in der OpenSim.ini und eine Standalone-Common.ini im config-include Bereich zu bestücken. Aktuelle Version an der ich bastele ist ja die 0.6.9er. Der standalone-Test ergibt – und in diesem Fall glücklicherweise – dass der Fehler auch dort auftritt. Das ist beruhigend, somit liegt es an der Grundversion und nicht an der falschen Implementierung ins Grid.
erste Annäherung weiterlesen