File: explos.h

package info (click to toggle)
kraptor 0.0.20040403-6
  • links: PTS, VCS
  • area: main
  • in suites: squeeze, wheezy
  • size: 12,876 kB
  • ctags: 781
  • sloc: ansic: 7,107; makefile: 109; sh: 63
file content (56 lines) | stat: -rw-r--r-- 1,794 bytes parent folder | download | duplicates (6)
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
46
47
48
49
50
51
52
53
54
55
56
/*-------------------------------------------------------
 explos.h
 -------------------------------------------------------- 
 Copyright (c) 2002, Kronoman 
 En memoria de mi querido padre
 Agosto - 2002
 -------------------------------------------------------- 
 Engine de explosiones usando una lista enlazada
 muy sencilla, sirve para muchas capas de explosiones
 mediante el uso de punteros.
 --------------------------------------------------------*/ 

#ifndef EXPLOS_H
#define EXPLOS_H

#include "allegro.h"


/* estructura de datos  */
typedef struct EXPLOSION {
    fixed x,  y;     /* posicion  */
    fixed dx, dy;    /* direccion */
    int vida;      /* vida que le queda */
    fixed r, dr;   /* radio y decremento de radio por ciclo */
    BITMAP *spr;     /* sprite que lo representa */
    int rot; /* rotacion del bitmap */

    /* puntero al siguiente */
    struct EXPLOSION *next;
} EXPLOSION;



extern int cant_explosion_debug; /* Innecesaria, para testear performance solamente */

/* Cache de imagenes y sonidos, para el combo de explosion */
extern BITMAP *explo_cache_bmp[3];
extern SAMPLE *explo_cache_snd[3];

/* punteros */
extern EXPLOSION *ptr_explo_fondo;
extern EXPLOSION *ptr_explo_arriba;


/* prototipos */
void       agrega_explosion( EXPLOSION **prt_1era,
                             fixed x,  fixed y,
                             fixed dx, fixed dy,
                             int vida,
                             fixed r, fixed dr,
                             int rot,
                             BITMAP *spr );
void mover_explosiones(EXPLOSION **prt_1era);
void dibujar_explosion(EXPLOSION *prt_1era, BITMAP *bmp, int x, int y);
void liberar_lista_explosion(EXPLOSION **prt_1era);
#endif