Ignore:
Timestamp:
Nov 10, 2003, 10:26:40 AM (19 years ago)
Author:
Sam Hocevar
Message:
  • libee/sprite.c: + More robust sprite loader. + Added ee_set_sprite_frame() and ee_get_sprite_frame(). + Free all structures in ee_free_sprite().
  • src/aliens.c src/bonus.c: + Use ee_draw_sprite() instead of our manual sprite rendering.
  • src/box.c: + Use ee_draw_line() instead of the manual equivalent.
  • data/: + Added foo_fighter, baz_fighter, item_gem and item_heart sprites.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • libcaca/trunk/libee/sprite.c

    r115 r121  
    2525#include <stdio.h>
    2626#include <stdlib.h>
     27#include <string.h>
    2728
    2829#include "ee.h"
     
    8889        for(y = 0; y < h; y++)
    8990        {
     91            memset(buf, ' ', w);
     92            buf[w] = '\0';
    9093            if(!fgets(buf, BUFSIZ, fd))
    9194                goto failed;
     
    97100        for(y = 0; y < h; y++)
    98101        {
     102            memset(buf, ' ', w);
     103            buf[w] = '\0';
    99104            if(!fgets(buf, BUFSIZ, fd))
    100105                goto failed;
     
    124129}
    125130
     131void ee_set_sprite_frame(struct ee_sprite *sprite, int f)
     132{
     133    if(f < 0 || f >= sprite->nf)
     134        return;
     135
     136    sprite->f = f;
     137}
     138
     139int ee_get_sprite_frame(struct ee_sprite *sprite)
     140{
     141    return sprite->f;
     142}
     143
    126144void ee_draw_sprite(int x, int y, struct ee_sprite *sprite)
    127145{
     
    146164void ee_free_sprite(struct ee_sprite *sprite)
    147165{
     166    int i;
     167
     168    for(i = sprite->nf; i--;)
     169    {
     170        struct ee_frame *frame = &sprite->frames[i];
     171        free(frame->chars);
     172        free(frame->color);
     173    }
     174
     175    free(sprite->frames);
    148176    free(sprite);
    149177}
Note: See TracChangeset for help on using the changeset viewer.