void TextButton::free_all() { this->free_text_vram(); if( this->owns_bg_vram ) { if( this->bg_vram ) { oamFreeGfx( this->get_oam(), this->bg_vram ); this->bg_vram = 0; } if( this->bg_active_vram ) { oamFreeGfx( this->get_oam(), this->bg_active_vram ); this->bg_active_vram = 0; } if( this->bg_inactive_vram ) { oamFreeGfx( this->get_oam(), this->bg_inactive_vram ); this->bg_inactive_vram = 0; } } if( this->owns_fg_vram ) { if( this->fg_vram ) { oamFreeGfx( this->get_oam(), this->fg_vram ); this->fg_vram = 0; } } }
void TextButton::free_text_vram() { if( this->text_vram && this->owns_text_vram ) { oamFreeGfx( this->get_oam(), this->text_vram ); this->text_vram = 0; } }
void HwSpriteScraper::freeRect(SpriteScraperRect *rect) { sassert(rect->buffer, "Freeing non-allocated sprite"); oamFreeGfx(rect->oam, rect->buffer); rect->buffer = NULL; rect->oam = NULL; rect->live = false; rect->livePrev = false; }
void DSGM_ResetSprites(DSGM_Sprite *sprites, int spriteCount) { int i, j; for(i = 0; i < spriteCount; i++) { if(sprites[i].topTiles) { for(j = 0; j < sprites[i].frames; j++) { oamFreeGfx(&oamMain, sprites[i].topTiles[j]); sprites[i].topTiles[j] = NULL; } free(sprites[i].topTiles); sprites[i].topTiles = NULL; } if(sprites[i].bottomTiles) { for(j = 0; j < sprites[i].frames; j++) { oamFreeGfx(&oamSub, sprites[i].bottomTiles[j]); sprites[i].bottomTiles[j] = NULL; } free(sprites[i].bottomTiles); sprites[i].bottomTiles = NULL; } } for(i = 0; i < 32; i++) { DSGM_rotations[DSGM_TOP][i] = 0; DSGM_rotations[DSGM_BOTTOM][i] = 0; DSGM_scales[DSGM_TOP][i].x = 1 << 8; DSGM_scales[DSGM_TOP][i].y = 1 << 8; DSGM_scales[DSGM_BOTTOM][i].x = 1 << 8; DSGM_scales[DSGM_BOTTOM][i].y = 1 << 8; } DSGM_nextFreeSprite[DSGM_TOP] = 0; DSGM_nextFreeSprite[DSGM_BOTTOM] = 0; memset(&DSGM_rotsetTracker, 0, sizeof(DSGM_rotsetTracker)); //DSGM_nextFreeRotset[DSGM_TOP] = 0; //DSGM_nextFreeRotset[DSGM_BOTTOM] = 0; oamClear(&oamMain, 0, 0); oamClear(&oamSub, 0, 0); //oamUpdate(&oamMain); //oamUpdate(&oamSub); }
//sprite deconstructor void killSprite(mySprite *s) { s->alive = false; //api: free the graphics if(s->gfx) { oamFreeGfx(oam, s->gfx); spriteMemoryUsage -= (s->size & 0xFFF) << 5; } s->gfx = 0; }
// Deconstructor assets::~assets() { for (unsigned int i = 0; i < gfxAssets.size(); i++) { // Free the video memory it may be using if (gfxAssets[i]->vmLoaded) oamFreeGfx(oam, gfxAssets[i]->offset); delete gfxAssets[i]; } for (unsigned int i = 0; i < tilesetAssets.size(); i++) delete tilesetAssets[i]; for (unsigned int i = 0; i < paletteAssets.size(); i++) delete paletteAssets[i]; for (unsigned int i = 0; i < backgroundAssets.size(); i++) delete backgroundAssets[i]; for (unsigned int i = 0; i < objectAssets.size(); i++) delete objectAssets[i]; for (unsigned int i = 0; i < levelAssets.size(); i++) delete levelAssets[i]; }
Enemy::~Enemy() { oamFreeGfx(&oamMain, s_gfx); }
//Frees a button's related VRAM space. void destroybutton(BUTTON *butt) { oamFreeGfx(&oamMain, butt->sprite_gfx_mem); }