In dieser Methode sind mir zwei Sachen unklar.
Der Zeiger a hat bereits die Inselhaus-Daten der Insel samt der jeweiligen x und y Position und der BebauungsId auf der Insel. Warum der Zeiger b?
Dann wird b in den Zeilen 61 - 69 mit den Daten aus a gefüllt. Die x und y Position werden jetzt aber in b so überschrieben, dass dort nicht mehr die Position auf der Insel steht, sondern die Werte den von buildingHeight und buildingWidth entsprechen. Warum wird das gemacht?
for (int y = 0; y < buildingHeight && feld.y_pos + y < height; y++)
{
for (int x = 0; x < buildingWidth && feld.x_pos + x < width; x++)
{
b[(feld.y_pos + y) * width + feld.x_pos + x] = feld;
b[(feld.y_pos + y) * width + feld.x_pos + x].x_pos = x; // <---- warum
b[(feld.y_pos + y) * width + feld.x_pos + x].y_pos = y; // <---- warum
}
}
Ich habe mal drei Fragen zum Verständnis der Insel.cpp
https://github.com/siredmar/mdcii-engine/blob/master/source/mdcii/mdcii/src/insel.cpp
Dort gibt es zwei Member
schicht1
undschicht2
, welche jeweils mit der Breite und Höhe der Insel initialisiert werden. Warum zwei Schichten?Später im Ctor wird die Funktion
this->insel_rastern
aufgerufen:In dieser Methode sind mir zwei Sachen unklar. Der Zeiger
a
hat bereits die Inselhaus-Daten der Insel samt der jeweiligen x und y Position und der BebauungsId auf der Insel. Warum der Zeigerb
?Dann wird
b
in den Zeilen 61 - 69 mit den Daten ausa
gefüllt. Die x und y Position werden jetzt aber inb
so überschrieben, dass dort nicht mehr die Position auf der Insel steht, sondern die Werte den vonbuildingHeight
undbuildingWidth
entsprechen. Warum wird das gemacht?Danke.