Ignore:
Timestamp:
Dec 23, 2002, 10:28:37 AM (17 years ago)
Author:
Sam Hocevar
Message:
  • the beam now digs the tunnel.
  • the starfield is now an array of stars.
  • fixed wall rendering (offset issues and disappearing left wall).
  • 32 seekers on fragbomb explosion, not 16.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • ttyvaders/trunk/src/starfield.c

    r38 r50  
    44 *                 All Rights Reserved
    55 *
    6  *   $Id: starfield.c,v 1.4 2002/12/22 18:44:12 sam Exp $
     6 *   $Id: starfield.c,v 1.5 2002/12/23 09:28:37 sam Exp $
    77 *
    88 *   This program is free software; you can redistribute it and/or modify
     
    2525#include "common.h"
    2626
    27 void init_starfield( game *g, starfield *s )
     27starfield * create_starfield( game *g )
    2828{
    2929    int i;
     30    starfield *s;
     31
     32    s = malloc( STARS * sizeof(starfield) );
    3033
    3134    for( i = 0; i < STARS; i++ )
    3235    {
    33         s->x[i] = rand() % g->w;
    34         s->y[i] = rand() % g->h;
    35         s->z[i] = 1 + rand() % 3;
    36         s->ch[i] = (rand() % 2) ? '.' : '\'';
    37         s->c[i] = 6 + rand() % 2;
     36        s[i].x = GET_RAND( 0, g->w );
     37        s[i].y = GET_RAND( 0, g->h );
     38        s[i].z = GET_RAND( 1, 4 );
     39        s[i].c = GET_RAND( 6, 8 );
     40        s[i].ch = GET_RAND( 0, 2 ) ? '.' : '\'';
    3841    }
     42
     43    return s;
    3944}
    4045
     
    4550    for( i = 0; i < STARS; i++ )
    4651    {
    47         if( s->x[i] >= 0 )
     52        if( s[i].x >= 0 )
    4853        {
    49             gfx_color( s->c[i] );
    50             gfx_goto( s->x[i], s->y[i] );
    51             gfx_putchar( s->ch[i] );
     54            gfx_color( s[i].c );
     55            gfx_goto( s[i].x, s[i].y );
     56            gfx_putchar( s[i].ch );
    5257        }
    5358    }
     
    6065    for( i = 0; i < STARS; i++ )
    6166    {
    62         if( s->x[i] < 0 )
     67        if( s[i].x < 0 )
    6368        {
    64             s->x[i] = rand() % g->w;
    65             s->y[i] = 0;
    66             s->z[i] = 1 + rand() % 2;
    67             s->ch[i] = (rand() % 2) ? '.' : '\'';
    68             s->c[i] = 6 + rand() % 2;
     69            s[i].x = GET_RAND( 0, g->w );
     70            s[i].y = 0;
     71            s[i].z = GET_RAND( 1, 3 );
     72            s[i].c = GET_RAND( 6, 8 );
     73            s[i].ch = GET_RAND( 0, 2 ) ? '.' : '\'';
    6974        }
    70         else if( s->y[i] < g->h-1 )
     75        else if( s[i].y < g->h-1 )
    7176        {
    72             s->y[i] += s->z[i];
     77            s[i].y += s[i].z;
    7378        }
    7479        else
    7580        {
    76             s->x[i] = -1;
     81            s[i].x = -1;
    7782        }
    7883    }
    7984}
    8085
     86void free_starfield( game *g, starfield *s )
     87{
     88    free( s );
     89}
     90
Note: See TracChangeset for help on using the changeset viewer.