void page_draw_planet() { Planet *plan; SDL_Rect destr = {0, 0, 768, 768}; plan = (Planet*)cur_object; SDL_BlitSurface(planet[plan->Type()], NULL, screen, &destr); lasttick = -1; page_update_planet(); stats_draw_planet(plan, 0); }
void page_update_planet() { SDL_Rect srcr = {0, 0, 64, 64}; SDL_Rect destr = {0, 0, 64, 64}; Planet *plan = (Planet*)cur_object; if(lasttick != -1) { for(int sctr=0; sctr < plan->num_satellites; ++sctr) { Satellite *sat = plan->satellites[sctr]; srcr.x = sat->XPos(lasttick) - 32; srcr.y = sat->YPos(lasttick) - 32; destr.x = sat->XPos(lasttick) - 32; destr.y = sat->YPos(lasttick) - 32; SDL_FillRect(screen, &destr, black); SDL_BlitSurface(planet[plan->Type()], &srcr, screen, &destr); update(&destr); } } for(int sctr=0; sctr < plan->num_satellites; ++sctr) { Satellite *sat = plan->satellites[sctr]; if(!(sat->InFront(cur_game->tick))) { srcr.x = sat->XPos(cur_game->tick) - 32; srcr.y = sat->YPos(cur_game->tick) - 32; destr.x = sat->XPos(cur_game->tick) - 32; destr.y = sat->YPos(cur_game->tick) - 32; SDL_BlitSurface(satellite[sat->Type()], NULL, screen, &destr); SDL_BlitSurface(planet[plan->Type()], &srcr, screen, &destr); update(&destr); } } for(int sctr=0; sctr < plan->num_satellites; ++sctr) { Satellite *sat = plan->satellites[sctr]; if(sat->InFront(cur_game->tick)) { srcr.x = sat->XPos(cur_game->tick) - 32; srcr.y = sat->YPos(cur_game->tick) - 32; destr.x = sat->XPos(cur_game->tick) - 32; destr.y = sat->YPos(cur_game->tick) - 32; SDL_BlitSurface(satellite[sat->Type()], NULL, screen, &destr); update(&destr); } } lasttick = cur_game->tick; }