示例#1
0
void StagePanel::OnNotify(int sj_id, void* ud)
{
	ee::MultiSpritesImpl::OnNotify(sj_id, ud);

	switch (sj_id)
	{
	case ee::MSG_REORDER_SPRITE:
		{
			ee::ReorderSpriteSJ::Params* p = (ee::ReorderSpriteSJ::Params*)ud;
			ReorderSprite(p->spr, p->up);
		}
		break;
	case ee::MSG_REORDER_SPRITE_MOST:
		{
			ee::ReorderSpriteMostSJ::Params* p = (ee::ReorderSpriteMostSJ::Params*)ud;
			ReorderSpriteMost(p->spr, p->up);
		}
		break;
	case ee::MSG_SORT_SPRITES:
		{
			std::vector<ee::SprPtr>& sprs = *(std::vector<ee::SprPtr>*)ud;
			SortSprites(sprs);
		}
		break;
	case ee::MSG_INSERT_SPRITE:
		{
			ee::InsertSpriteSJ::Params* p = (ee::InsertSpriteSJ::Params*)ud;
			InsertSprite(p->spr, p->idx);
		}
		break;
	case ee::MSG_REMOVE_SPRITE:
		RemoveSprite(*(ee::SprPtr*)ud);
		break;
	case ee::MSG_CLEAR_SPRITE:
		ClearSprite();
		break;

	case ee::MSG_REMOVE_SHAPE:
		RemoveShape(*(ee::ShapePtr*)ud));
		break;
	case ee::MSG_INSERT_SHAPE:
		InsertShape(*(ee::ShapePtr*)ud));
		break;
	case ee::MSG_CLEAR_SHAPE:
		ClearShape();
		break;
	}
}
void BackGroundPropertyGridWidget::ConnectToSignals()
{
    //Connect button Clicked event to select color dialog action and open sprite dialog action
    connect(ui->openSpriteButton, SIGNAL(clicked()), this, SLOT(OpenSpriteDialog()));
    connect(ui->removeSpriteButton, SIGNAL(clicked()), this, SLOT(RemoveSprite()));
}
//////////////////////////////////////////////////////////////////////////
// high level scripting interface
//////////////////////////////////////////////////////////////////////////
HRESULT CPartEmitter::ScCallMethod(CScScript* Script, CScStack* Stack, CScStack* ThisStack, char* Name)
{
	//////////////////////////////////////////////////////////////////////////
	// SetBorder
	//////////////////////////////////////////////////////////////////////////
	if(strcmp(Name, "SetBorder")==0)
	{
		Stack->CorrectParams(4);
		int BorderX      = Stack->Pop()->GetInt();
		int BorderY      = Stack->Pop()->GetInt();
		int BorderWidth  = Stack->Pop()->GetInt();
		int BorderHeight = Stack->Pop()->GetInt();
		
		Stack->PushBool(SUCCEEDED(SetBorder(BorderX, BorderY, BorderWidth, BorderHeight)));

		return S_OK;
	}
	//////////////////////////////////////////////////////////////////////////
	// SetBorderThickness
	//////////////////////////////////////////////////////////////////////////
	else if(strcmp(Name, "SetBorderThickness")==0)
	{
		Stack->CorrectParams(4);
		int Left   = Stack->Pop()->GetInt();
		int Right  = Stack->Pop()->GetInt();
		int Top    = Stack->Pop()->GetInt();
		int Bottom = Stack->Pop()->GetInt();

		Stack->PushBool(SUCCEEDED(SetBorderThickness(Left, Right, Top, Bottom)));

		return S_OK;
	}
	//////////////////////////////////////////////////////////////////////////
	// AddSprite
	//////////////////////////////////////////////////////////////////////////
	else if(strcmp(Name, "AddSprite")==0)
	{
		Stack->CorrectParams(1);
		char* SpriteFile = Stack->Pop()->GetString();
		Stack->PushBool(SUCCEEDED(AddSprite(SpriteFile)));

		return S_OK;
	}
	//////////////////////////////////////////////////////////////////////////
	// RemoveSprite
	//////////////////////////////////////////////////////////////////////////
	else if(strcmp(Name, "RemoveSprite")==0)
	{
		Stack->CorrectParams(1);
		char* SpriteFile = Stack->Pop()->GetString();
		Stack->PushBool(SUCCEEDED(RemoveSprite(SpriteFile)));

		return S_OK;
	}

	//////////////////////////////////////////////////////////////////////////
	// Start
	//////////////////////////////////////////////////////////////////////////
	else if(strcmp(Name, "Start")==0)
	{
		Stack->CorrectParams(1);
		m_OverheadTime = Stack->Pop()->GetInt();
		Stack->PushBool(SUCCEEDED(Start()));

		return S_OK;
	}

	//////////////////////////////////////////////////////////////////////////
	// Stop
	//////////////////////////////////////////////////////////////////////////
	else if(strcmp(Name, "Stop")==0)
	{
		Stack->CorrectParams(0);

		for(int i=0; i<m_Particles.GetSize(); i++)
		{
			delete m_Particles[i];
		}
		m_Particles.RemoveAll();

		m_Running = false;
		Stack->PushBool(true);

		return S_OK;
	}

	//////////////////////////////////////////////////////////////////////////
	// Pause
	//////////////////////////////////////////////////////////////////////////
	else if(strcmp(Name, "Pause")==0)
	{
		Stack->CorrectParams(0);
		m_Running = false;
		Stack->PushBool(true);

		return S_OK;
	}

	//////////////////////////////////////////////////////////////////////////
	// Resume
	//////////////////////////////////////////////////////////////////////////
	else if(strcmp(Name, "Resume")==0)
	{
		Stack->CorrectParams(0);
		m_Running = true;
		Stack->PushBool(true);

		return S_OK;
	}

	//////////////////////////////////////////////////////////////////////////
	// AddGlobalForce
	//////////////////////////////////////////////////////////////////////////
	else if(strcmp(Name, "AddGlobalForce")==0)
	{
		Stack->CorrectParams(3);
		char* Name = Stack->Pop()->GetString();
		float Angle = Stack->Pop()->GetFloat();
		float Strength = Stack->Pop()->GetFloat();

		Stack->PushBool(SUCCEEDED(AddForce(Name, CPartForce::FORCE_GLOBAL, 0, 0, Angle, Strength)));

		return S_OK;
	}

	//////////////////////////////////////////////////////////////////////////
	// AddPointForce
	//////////////////////////////////////////////////////////////////////////
	else if(strcmp(Name, "AddPointForce")==0)
	{
		Stack->CorrectParams(5);
		char* Name = Stack->Pop()->GetString();
		int PosX = Stack->Pop()->GetInt();
		int PosY = Stack->Pop()->GetInt();
		float Angle = Stack->Pop()->GetFloat();
		float Strength = Stack->Pop()->GetFloat();

		Stack->PushBool(SUCCEEDED(AddForce(Name, CPartForce::FORCE_GLOBAL, PosX, PosY, Angle, Strength)));

		return S_OK;
	}

	//////////////////////////////////////////////////////////////////////////
	// RemoveForce
	//////////////////////////////////////////////////////////////////////////
	else if(strcmp(Name, "RemoveForce")==0)
	{
		Stack->CorrectParams(1);
		char* Name = Stack->Pop()->GetString();
		
		Stack->PushBool(SUCCEEDED(RemoveForce(Name)));

		return S_OK;
	}

	else return CBObject::ScCallMethod(Script, Stack, ThisStack, Name);
}
示例#4
0
 void PixelMapPartial::Delete(PartialMap::Context* context)
 {
   assert(context->sprite);
   assert(context->sprite->getParent() == this);
   RemoveSprite(context->sprite);
 }