1 /***************************************************************************
2 sprite.cpp - description
3 -------------------
4 begin : Thu Jan 17 2002
5 copyright : (C) 2002 by Waldemar Baraldi
6 email : baraldi@lacasilla.com.ar
7 ***************************************************************************/
8
9 /***************************************************************************
10 * *
11 * This program is free software; you can redistribute it and/or modify *
12 * it under the terms of the GNU General Public License as published by *
13 * the Free Software Foundation; either version 2 of the License, or *
14 * (at your option) any later version. *
15 * *
16 ***************************************************************************/
17
18 #include "sprite.h"
19 #include "list.h"
20 #include "surface.h"
21 #include "imagemanager.h"
22
Sprite(Str * filenamebase,Str * filenameext,int nFrames,ImageManager * im)23 Sprite::Sprite(Str * filenamebase, Str * filenameext, int nFrames, ImageManager * im){
24 frames = (Image**) malloc(nFrames*(sizeof(Image*)));
25
26 this->n_frames=nFrames;
27 this->filenamebase=filenamebase;
28 this->filenameext=filenameext;
29 char aux[256];
30
31 for (int i=0;i<nFrames;i++){
32 sprintf(aux, "%s%04i%s", filenamebase->get(), i, filenameext->get());
33 frames[i]=im->getImage(new Str(aux));
34 }
35 }
36
~Sprite()37 Sprite::~Sprite(){
38 delete frames;
39 if (filenamebase) delete filenamebase;
40 if (filenameext) delete filenameext;
41 }
42
nFrames()43 int Sprite::nFrames(){
44 return n_frames;
45 }
46
frameWidth(ImageManager * im)47 int Sprite::frameWidth(ImageManager * im){
48 return frames[0]->width();
49 }
50
frameHeight(ImageManager * im)51 int Sprite::frameHeight(ImageManager * im){
52 return frames[0]->height();
53 }
54
frame(ImageManager * im,int n)55 Surface * Sprite::frame(ImageManager * im, int n){
56 return frames[n];
57 }
58