void set_defaults(void)
{
- int i;
-
- /* Reset arrays: */
-
- for (i = 0; i < num_bouncy_distros; i++)
- bouncy_distros[i].base.alive = NO;
-
- for (i = 0; i < num_broken_bricks; i++)
- broken_bricks[i].base.alive = NO;
-
- for (i = 0; i < num_bouncy_bricks; i++)
- bouncy_bricks[i].base.alive = NO;
-
- for (i = 0; i < num_bad_guys; i++)
- {
- /*bad_guys[i].alive = NO;*/
- badguy_init(&bad_guys[i]);
- }
-
- for (i = 0; i < num_floating_scores; i++)
- floating_scores[i].base.alive = NO;
-
- for (i = 0; i < num_upgrades; i++)
- {
- /*upgrades[i].alive = NO;*/
- upgrade_init(&upgrades[i]);
- }
-
- for (i = 0; i < num_bullets; i++)
- {
- /*bullets[i].alive = NO;*/
- bullet_init(&bullets[i]);
- }
-
-
/* Set defaults: */
scroll_x = 0;
score_multiplier = 1;
- super_bkgd_time = 0;
+ timer_init(&super_bkgd_timer);
counting_distros = NO;
distro_counter = 0;
if (found != -1)
{
- bouncy_distros[found].base.alive = YES;
- bouncy_distros[found].base.x = x;
- bouncy_distros[found].base.y = y;
- bouncy_distros[found].base.ym = -6;
+ bouncy_distro_init(&bouncy_distros[found],x,y);
}
}
void add_broken_brick(float x, float y)
{
- add_broken_brick_piece(x, y, -4, -16);
- add_broken_brick_piece(x, y + 16, -6, -12);
+ add_broken_brick_piece(x, y, -1, -4);
+ add_broken_brick_piece(x, y + 16, -1.5, -3);
- add_broken_brick_piece(x + 16, y, 4, -16);
- add_broken_brick_piece(x + 16, y + 16, 6, -12);
+ add_broken_brick_piece(x + 16, y, 1, -4);
+ add_broken_brick_piece(x + 16, y + 16, 1.5, -3);
}
if (found != -1)
{
- broken_bricks[found].base.alive = YES;
- broken_bricks[found].base.x = x;
- broken_bricks[found].base.y = y;
- broken_bricks[found].base.xm = xm;
- broken_bricks[found].base.ym = ym;
+ broken_brick_init(&broken_bricks[found], x, y, xm, ym);
}
}
if (found != -1)
{
- bouncy_bricks[found].base.alive = YES;
- bouncy_bricks[found].base.x = x;
- bouncy_bricks[found].base.y = y;
- bouncy_bricks[found].offset = 0;
- bouncy_bricks[found].offset_m = -BOUNCY_BRICK_SPEED;
- bouncy_bricks[found].shape = shape(x, y);
+ bouncy_brick_init(&bouncy_bricks[found],x,y);
}
}
{
++num_bad_guys;
bad_guys = realloc(bad_guys,num_bad_guys*sizeof(bad_guy_type));
- badguy_init(&bad_guys[num_bad_guys-1]);
found = num_bad_guys - 1;
}
if (found != -1)
{
- bad_guys[found].base.alive = YES;
- bad_guys[found].mode = NORMAL;
- bad_guys[found].dying = NO;
- bad_guys[found].kind = kind;
- bad_guys[found].base.x = x;
- bad_guys[found].base.y = y;
- bad_guys[found].base.xm = 1.3;
- bad_guys[found].base.ym = 1.5;
- bad_guys[found].dir = LEFT;
- bad_guys[found].seen = NO;
- timer_init(&bad_guys[found].timer);
+ badguy_init(&bad_guys[found], x, y, kind);
}
}
void add_upgrade(float x, float y, int kind)
{
- int i, r, found;
- /* we use this pointer to check, if realloc() returned a new memory address */
- upgrade_type * pointee = upgrades;
+ int i, found;
found = -1;
- r = 0;
for (i = 0; i < num_upgrades && found == -1; i++)
{
{
++num_upgrades;
upgrades = realloc(upgrades,num_upgrades*sizeof(upgrade_type));
- if(upgrades != pointee)
- r = 1;
- upgrade_init(&upgrades[num_upgrades-1]);
found = num_upgrades - 1;
}
if (found != -1)
{
- if(r == 1)
- {
- for (i = 0; i < num_upgrades && found == -1; i++)
- {
- upgrade_init(&upgrades[i]);
- }
- }
- upgrade_init(&upgrades[found]);
- upgrades[found].base.alive = YES;
- upgrades[found].kind = kind;
- upgrades[found].base.x = x;
- upgrades[found].base.y = y;
- upgrades[found].base.xm = 2;
- upgrades[found].base.ym = -2;
- upgrades[found].base.height = 0;
+ upgrade_init(&upgrades[found], x, y, kind);
}
}
{
++num_bullets;
bullets = realloc(bullets,num_bullets*sizeof(bullet_type));
- bullet_init(&bullets[num_bullets-1]);
found = num_bullets - 1;
}
if (found != -1)
{
- bullet_init(&bullets[found]);
- bullets[found].base.alive = YES;
-
- if (dir == RIGHT)
- {
- bullets[found].base.x = x + 32;
- bullets[found].base.xm = BULLET_XM + xm;
- }
- else
- {
- bullets[found].base.x = x;
- bullets[found].base.xm = -BULLET_XM + xm;
- }
-
- bullets[found].base.y = y;
- bullets[found].base.ym = BULLET_STARTING_YM;
+ bullet_init(&bullets[found], x, y, xm, dir);
play_sound(sounds[SND_SHOOT], SOUND_CENTER_SPEAKER);
}