Пример #1
0
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;
		}
	}
}
Пример #2
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;
	}
}
Пример #3
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;
}
Пример #4
0
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);
}
Пример #5
0
//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;
}
Пример #6
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];
}
Пример #7
0
Enemy::~Enemy() {
	oamFreeGfx(&oamMain, s_gfx);
}
Пример #8
0
//Frees a button's related VRAM space.
void destroybutton(BUTTON *butt)
{
	oamFreeGfx(&oamMain, butt->sprite_gfx_mem);
}