File: vehicletypeimage.cpp

package info (click to toggle)
asc 2.4.0.0-1
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 75,080 kB
  • ctags: 24,943
  • sloc: cpp: 155,023; sh: 8,829; ansic: 6,890; makefile: 650; perl: 138
file content (45 lines) | stat: -rw-r--r-- 1,733 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
/***************************************************************************
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 2 of the License, or     *
 *   (at your option) any later version.                                   *
 *                                                                         *
 ***************************************************************************/

#include <pgdraw.h>

#include "vehicletypeimage.h"

#include "../typen.h"
#include "../player.h"
#include "../vehicletype.h"

#include <pgapplication.h>

VehicleTypeImage::VehicleTypeImage( PG_Widget* parent, const PG_Point& pos, const Vehicletype* vehicletype, const Player& owningPlayer )
   : PG_Widget( parent, PG_Rect( pos.x, pos.y, fieldsizex, fieldsizey )),
                vt( vehicletype ), player( owningPlayer )
{
   
}


Surface VehicleTypeImage::clippingSurface;

void VehicleTypeImage::display( SDL_Surface * surface, const PG_Rect & src, const PG_Rect & dst )
{
   if ( !getClippingSurface().valid() )
      getClippingSurface() = Surface::createSurface( fieldsizex + 10, fieldsizey + 10, 32, 0 );

   getClippingSurface().Fill(0);

   vt->paint( getClippingSurface(), SPoint(5,5), player.getPlayerColor(), 0 );
   PG_Draw::BlitSurface( getClippingSurface().getBaseSurface(), PG_Rect( src.x + 5, src.y + 5, src.w, src.h), surface, dst);
}

void VehicleTypeImage::eventBlit ( SDL_Surface * surface, const PG_Rect & src, const PG_Rect & dst )
{
   display( PG_Application::GetScreen(), src, dst );
};