static void hall_of_fame_phase_exit(struct phase *up) { struct hall_of_fame_phase *self = b6_cast_of(up, struct hall_of_fame_phase, up); int i; finalize_fade_io(&self->fade_io); if (self->entry) { save_hall_of_fame(&up->engine->hall_of_fame); self->entry = NULL; } if (self->music) { stop_music(up->engine->mixer); unload_music(up->engine->mixer); } del_controller_observer(&self->controller_observer); del_renderer_observer(&self->renderer_observer); if (self->cursor_base) { finalize_toolkit_label(&self->cursor_label); destroy_renderer_base(self->cursor_base); } for (i = 0; i < b6_card_of(self->label); i += 1) finalize_toolkit_label(&self->label[i]); if (self->panel) { destroy_renderer_texture(self->panel->texture); destroy_renderer_tile(self->panel); } if (self->background) { destroy_renderer_texture(self->background->texture); destroy_renderer_tile(self->background); } finalize_fixed_font(&self->font); close_hall_of_fame(self->array); }
void finalize_toolkit_label(struct toolkit_label *self) { destroy_renderer_texture(self->image[0].texture); if (self->image[1].texture) destroy_renderer_texture(self->image[1].texture); finalize_toolkit_image(&self->image[0]); finalize_toolkit_image(&self->image[1]); finalize_rgba(&self->rgba); }
static void finalize_menu_renderer_image(struct menu_renderer_image *self) { if (self->base) { del_renderer_observer(&self->renderer_observer); destroy_renderer_texture(self->tile[1]->texture); destroy_renderer_texture(self->tile[0]->texture); destroy_renderer_base(self->base); } }
void disable_toolkit_label_shadow(struct toolkit_label *self) { struct renderer_texture *texture = self->image[1].texture; if (texture) { self->image[1].texture = NULL; destroy_renderer_texture(texture); } }
void finalize_menu_renderer(struct menu_renderer *self) { del_renderer_observer(&self->renderer_observer); finalize_menu_renderer_image(&self->ghost); finalize_menu_renderer_image(&self->pacman); finalize_menu_renderer_image(&self->title); if (self->background) { destroy_renderer_texture(self->background->texture); destroy_renderer_tile(self->background); } finalize_fixed_font(&self->bright_font); finalize_fixed_font(&self->normal_font); }