void noShip::Draw(int x, int y) { unsigned flag_drawing_type = 1; // Sind wir verloren? Dann immer stehend zeichnen if(lost) { DrawFixed(x, y, true); return; } switch(state) { default: break; case STATE_IDLE: case STATE_SEAATTACK_WAITING: { DrawFixed(x, y, false); flag_drawing_type = 0; } break; case STATE_GOTOHARBOR: { DrawDriving(x, y); } break; case STATE_EXPEDITION_LOADING: case STATE_EXPEDITION_UNLOADING: case STATE_TRANSPORT_LOADING: case STATE_TRANSPORT_UNLOADING: case STATE_SEAATTACK_LOADING: case STATE_SEAATTACK_UNLOADING: case STATE_EXPLORATIONEXPEDITION_LOADING: case STATE_EXPLORATIONEXPEDITION_UNLOADING: { DrawFixed(x, y, false); } break; case STATE_EXPLORATIONEXPEDITION_WAITING: case STATE_EXPEDITION_WAITING: { DrawFixed(x, y, true); } break; case STATE_EXPEDITION_DRIVING: case STATE_TRANSPORT_DRIVING: case STATE_SEAATTACK_DRIVINGTODESTINATION: case STATE_EXPLORATIONEXPEDITION_DRIVING: { DrawDrivingWithWares(x, y); } break; case STATE_SEAATTACK_RETURN: { if(!figures.empty() || !wares.empty()) DrawDrivingWithWares(x, y); else DrawDriving(x, y); } break; } LOADER.GetImageN("boot_z", 40 + GAMECLIENT.GetGlobalAnimation(6, 1, 1, GetObjId()))-> Draw(x + SHIPS_FLAG_POS[GetCurMoveDir() + flag_drawing_type * 6].x, y + SHIPS_FLAG_POS[GetCurMoveDir() + flag_drawing_type * 6].y, 0, 0, 0, 0, 0, 0, COLOR_WHITE, COLORS[gwg->GetPlayer(player).color]); // Second, white flag, only when on expedition, always swinging in the opposite direction if(state >= STATE_EXPEDITION_LOADING && state <= STATE_EXPEDITION_DRIVING) LOADER.GetImageN("boot_z", 40 + GAMECLIENT.GetGlobalAnimation(6, 1, 1, GetObjId() + 4))-> Draw(x + SHIPS_FLAG_POS[GetCurMoveDir() + flag_drawing_type * 6].x, y + 4 + SHIPS_FLAG_POS[GetCurMoveDir() + flag_drawing_type * 6].y, 0, 0, 0, 0, 0, 0, COLOR_WHITE, COLOR_WHITE); }
/// Zeichnet normales Fahren auf dem Meer mit Gütern void noShip::DrawDrivingWithWares(DrawPoint& drawPt) { DrawDriving(drawPt); /// Waren zeichnen LOADER.GetImageN("boot_z", 30 + ((GetCurMoveDir() + 3) % 6))->Draw(drawPt); }