~marc-q/sideaway/trunk

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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
/* Copyright 2014 Marc Volker Dickmann */
#include <stdio.h>
#include "SDL/SDL.h"
#include "EngineSprite.h"

void engine_sprite_init(struct EngineSprite* enginesprite, int x, int y, int w, int h)
{
    enginesprite->dest_rect.x = x;
    enginesprite->dest_rect.y = y;
    enginesprite->dest_rect.w = w;
    enginesprite->dest_rect.h = h;
}

void engine_sprite_set_health(struct EngineSprite* enginesprite, int health)
{
    enginesprite->sprite_health = health;
}

void engine_sprite_set_xy(struct EngineSprite* enginesprite, int x, int y)
{
    enginesprite->dest_rect.x = x;
    enginesprite->dest_rect.y = y;
}

void engine_sprite_load_image(struct EngineSprite* enginesprite, char *filename, SDL_Surface *destsf)
{
    enginesprite->image = SDL_LoadBMP(filename);
    
    if (enginesprite->image == NULL)
    {
        fprintf(stderr, "Couldn't load %s : %s\n", filename, SDL_GetError());
    }
    
    if (enginesprite->image->format->palette && destsf->format->palette)
    {
        SDL_SetColors(destsf, enginesprite->image->format->palette->colors, 0, enginesprite->image->format->palette->ncolors);
    }
}

void engine_sprite_unload_image(struct EngineSprite* enginesprite)
{
    SDL_FreeSurface(enginesprite->image);
}

void engine_sprite_pin_image(struct EngineSprite* enginesprite, SDL_Surface *destsf)
{
    SDL_BlitSurface(enginesprite->image, NULL, destsf, &enginesprite->dest_rect);
}

int engine_sprite_get_health(struct EngineSprite* enginesprite)
{
    return enginesprite->sprite_health;
}

int engine_sprite_get_x(struct EngineSprite* enginesprite)
{
    return enginesprite->dest_rect.x;
}

int engine_sprite_get_y(struct EngineSprite* enginesprite)
{
    return enginesprite->dest_rect.y;
}

int engine_sprite_get_width(struct EngineSprite* enginesprite)
{
    return enginesprite->dest_rect.w;
}

int engine_sprite_get_height(struct EngineSprite* enginesprite)
{
    return enginesprite->dest_rect.h;
}