void Powerup_PickUp (int x, int y)
{
    int     i;
    powerup_t *pow;
    bool p_left = false, p_pick = false;

    for (i = 0, pow = levelData.powerups ; i < levelData.numPowerups ; i++, pow++) {
        if (pow->x == x && pow->y == y) {
            // got a powerup here
            if (Pow_Give (pow->type)) { //FIXME script
                // picked up this stuff, remove it!
                p_pick = true;
                Sprite_RemoveSprite (pow->sprite);
                Pow_Remove (pow);
            } else {
                // player do not need it, so may be next time!
                p_left = true;
            }
        }
    }

    if (p_left) {
        levelData.tilemap[ x ][ y ] |= POWERUP_TILE;
    } else {
        levelData.tilemap[ x ][ y ] &= ~POWERUP_TILE;
    }
}
Example #2
0
/*
-----------------------------------------------------------------------------
 Function: 
 
 Parameters:
 
 Returns:
 
 Notes: 

-----------------------------------------------------------------------------
*/
PUBLIC void Powerup_Reset( void )
{
	powerup_t *powerup = powerups;

	while( powerup )
	{
		powerup = Pow_Remove( powerup );
	}
	
	powerups = NULL;
}
Example #3
0
/*
-----------------------------------------------------------------------------
 Function: 
 
 Parameters:	x, y -[in] In are in TILES.
 
 Returns:
 
 Notes: 

-----------------------------------------------------------------------------
*/
PUBLIC void Powerup_PickUp( int x, int y )
{
	powerup_t *pow;
	_boolean p_left = false, p_pick = false;

	for( pow = powerups ; pow ; pow = pow->next )
	{
check_again:
		if( pow->x == x && pow->y == y)
		{// got a powerup here
			if( Pow_Give( pow->type ) ) //FIXME script
			{// picked up this stuff, remove it!
				p_pick = true;
				Sprite_RemoveSprite( pow->sprite );
				pow = Pow_Remove( pow );
				if( pow )
					goto check_again;
				else
					break;
			}
			else
			{// player do not need it, so may be next time!
				p_left = true;
			}
		}
	}

	if( p_left )
	{
		r_world->tilemap[ x ][ y ] |= POWERUP_TILE;
	}
	else
	{
		r_world->tilemap[ x ][ y ] &= ~POWERUP_TILE;
	}
}