Example #1
0
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);

}
Example #2
0
/// 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);
}