GeneticDropSeedAction::GeneticDropSeedAction(TiXmlElement* description, Bodypart* p_bp): GeneticAction(GAT_DropSeed) {
    setBodypart(p_bp);
	int result;
	description->Attribute("blockParentSpawnpoint",&result);
	if(result == 1) {
		blockParentSpawnpointForBodyparttype = true;
	}
	else {
		blockParentSpawnpointForBodyparttype = false;
	}
  };
 GeneticAddSpawnpointAction::GeneticAddSpawnpointAction(std::list<BodypartType> param_bodypartTypes, int param_position, float p_scaleModifier, float param_ang2d, float p_ang2, float p_rot, bool p_symetric, bool p_active, Bodypart* param_bodypart):
   GeneticAction(GAT_AddSpawnpoint), spawnpointAdded(false) {
   setBodypart(param_bodypart);
   sp = new SpawnpointInformation();
   sp->supportedBpTypes = param_bodypartTypes;
   sp->position = param_position;
   sp->occupied = false;
   sp->ang2d = param_ang2d;
   sp->ang2 = p_ang2;
   sp->rot = p_rot;
   sp->scaleModifier= p_scaleModifier;
   symetric = p_symetric;
   active = p_active;
 };
 GeneticEmptyChemicalStorageAction::GeneticEmptyChemicalStorageAction(TiXmlElement* description, Bodypart* p_bp): GeneticAction(GAT_ChemicalConsume) {
   setBodypart(p_bp);
 };
 GeneticEmptyChemicalStorageAction::GeneticEmptyChemicalStorageAction(Bodypart* param_bodypart):GeneticAction(GAT_ChemicalConsume) {
   setBodypart(param_bodypart);
 };
 GeneticChemicalConsumeAction::GeneticChemicalConsumeAction(std::string nChemName, float nAmount, Bodypart* p_bp):
   GeneticAction(GAT_ChemicalConsume), chemName(nChemName), amount(nAmount) {
   verify();
   setBodypart(p_bp);
 };
 GeneticDieAction::GeneticDieAction(TiXmlElement* description, Bodypart* p_bp): GeneticAction(GAT_Die) {
   setBodypart(p_bp);
 };
 GeneticSpawnBodypartAction::GeneticSpawnBodypartAction(BodypartType param_childBodypartType, Bodypart* param_parentBodypart):
       GeneticAction(GAT_SpawnBP), childBodypartType(param_childBodypartType) { setBodypart(param_parentBodypart); };
  GeneticSpawnParentAction::GeneticSpawnParentAction(TiXmlElement* description, Bodypart* p_bp): GeneticAction(GAT_SpawnParentBP) {
    setBodypart(p_bp);
	 int type;
    description->QueryIntAttribute("Type",&type);
    typeToSpawn = (BodypartType)type;
  };
 GeneticHealParentAction::GeneticHealParentAction(float param_amount, Bodypart* p_bp):
   GeneticAction(GAT_Heal) {
   setBodypart(p_bp);
   amount = param_amount;
 };
  GeneticSimpleMutateAction::GeneticSimpleMutateAction(TiXmlElement* description, Bodypart* p_bp): GeneticAction(GAT_Mutate) {
    description->QueryFloatAttribute("Strength",&strength);

    setBodypart(p_bp);
  };
 GeneticShrinkAction::GeneticShrinkAction(float param_amount, Bodypart* param_bodypart): 
   GeneticAction(GAT_Shrink) {
   setBodypart(param_bodypart);
   amount = param_amount;
 };
 GeneticGrowAction::GeneticGrowAction(float param_amount, Bodypart* param_bodypart):
   GeneticAction(GAT_Grow) {
   setBodypart(param_bodypart);
   amount = param_amount;
 };
  GeneticChangeMaxChemicalAmountAction::GeneticChangeMaxChemicalAmountAction(TiXmlElement* description, Bodypart* p_bp): GeneticAction(GAT_ChangeMaxChemAmount) {
    chemName = description->Attribute("Name");
    description->QueryFloatAttribute("Value",&value);

    setBodypart(p_bp);
  };
 GeneticChangeMaxChemicalAmountAction::GeneticChangeMaxChemicalAmountAction(std::string param_chemicalName, float param_value, Bodypart* param_bodypart):
       GeneticAction(GAT_ChangeMaxChemAmount), chemName(param_chemicalName), value(param_value) { setBodypart(param_bodypart); };
 GeneticChangeMaxSizeAction::GeneticChangeMaxSizeAction(float param_amount, Bodypart* param_bodypart):GeneticAction(GAT_ChangeMaxSize) {
    setBodypart(param_bodypart);
    amount = param_amount;
 };
 GeneticHealAction::GeneticHealAction(float param_amount, Bodypart* param_bodypart):
   GeneticAction(GAT_Heal) {
   setBodypart(param_bodypart);
   amount = param_amount;
 };
  GeneticChangeMaxSizeAction::GeneticChangeMaxSizeAction(TiXmlElement* description, Bodypart* p_bp): GeneticAction(GAT_ChangeMaxSize) {
    description->QueryFloatAttribute("Amount",&amount);

    setBodypart(p_bp);
  };
  GeneticHealAction::GeneticHealAction(TiXmlElement* description, Bodypart* p_bp): GeneticAction(GAT_Heal) {
    description->QueryFloatAttribute("Amount",&amount);

    setBodypart(p_bp);
  };
 GeneticSimpleChemicalConvertAction::GeneticSimpleChemicalConvertAction(
                                      std::string nFromChemName,
                                      std::string nToChemName,
                                      float nAmount,
                                      float nRatio, 
                                      Bodypart* p_bp): GeneticAction(GAT_SimpleConvert),
                                                            fromChemName(nFromChemName),
                                                            toChemName(nToChemName),
                                                            amount(nAmount),
                                                            ratio(nRatio) { verify(); setBodypart(p_bp); };
 GeneticDieAction::GeneticDieAction(Bodypart* param_bodypart):GeneticAction(GAT_Die) {
   setBodypart(param_bodypart);
 };
Пример #21
0
int
ControlPanel::handleEvent (mxEvent *event)
{
	MDLCACHE_CRITICAL_SECTION_( g_pMDLCache );

	int iret = 0;
	
	if ( HandleToolEvent( event ) )
	{
		return iret;
	}

	switch ( event->event )
	{
	case mxEvent::Size:
		{
			PositionControls( event->width, event->height );
			iret = 1;
		}
		break;
	case mxEvent::Action:
		{
			iret = 1;
			switch (event->action)
			{
			case IDC_TOOLSDRIVEMOUTH:
				{
					g_viewerSettings.faceposerToolsDriveMouth = ((mxCheckBox *)event->widget)->isChecked();
				}
				break;
			case IDC_TAB:
				{
					g_viewerSettings.showTexture = (tab->getSelectedIndex() == 3);
				}
				break;
				
			case IDC_RENDERMODE:
				{
					int index = cRenderMode->getSelectedIndex();
					if (index >= 0)
					{
						setRenderMode (index);
					}
				}
				break;
				
			case IDC_GROUND:
				setShowGround (((mxCheckBox *) event->widget)->isChecked());
				break;
				
			case IDC_MOVEMENT:
				setShowMovement (((mxCheckBox *) event->widget)->isChecked());
				break;
				
			case IDC_BACKGROUND:
				setShowBackground (((mxCheckBox *) event->widget)->isChecked());
				break;
				
			case IDC_HITBOXES:
				g_viewerSettings.showHitBoxes = ((mxCheckBox *) event->widget)->isChecked();
				break;
				
			case IDC_PHYSICSMODEL:
				g_viewerSettings.showPhysicsModel = ((mxCheckBox *) event->widget)->isChecked();
				break;
				
			case IDC_BONES:
				g_viewerSettings.showBones = ((mxCheckBox *) event->widget)->isChecked();
				break;
				
			case IDC_ATTACHMENTS:
				g_viewerSettings.showAttachments = ((mxCheckBox *) event->widget)->isChecked();
				break;
				
			case IDC_SEQUENCE:
				{
					int index = cSequence->getSelectedIndex();
					if (index >= 0)
					{
						setSequence ( index );
					}
				}
				break;
			
			case IDC_SPEEDSCALE:
				{
					g_viewerSettings.speedScale = ((mxSlider *) event->widget)->getValue();
					lSpeedScale->setLabel( va( "Speed scale %.2f", g_viewerSettings.speedScale ) );
				}
				break;
				
			case IDC_PRIMARYBLEND:
				{
					setBlend( 0, ((mxSlider *) event->widget)->getValue() );
				}
				break;
				
			case IDC_SECONDARYBLEND:
				{
					setBlend( 1, ((mxSlider *) event->widget)->getValue() );
				}
				break;
				
			case IDC_BODYPART:
				{
					int index = cBodypart->getSelectedIndex();
					if (index >= 0)
					{
						setBodypart (index);
						
					}
				}
				break;
				
			case IDC_SUBMODEL:
				{
					int index = cSubmodel->getSelectedIndex();
					if (index >= 0)
					{
						setSubmodel (index);
						
					}
				}
				break;
				
			case IDC_CONTROLLER:
				{
					int index = cController->getSelectedIndex();
					if (index >= 0)
						setBoneController (index);
				}
				break;
				
			case IDC_CONTROLLERVALUE:
				{
					int index = cController->getSelectedIndex();
					if (index >= 0)
						setBoneControllerValue (index, slController->getValue());
				}
				break;
				
			case IDC_SKINS:
				{
					int index = cSkin->getSelectedIndex();
					if (index >= 0)
					{
						models->GetActiveStudioModel()->SetSkin (index);
						g_viewerSettings.skin = index;
						g_pMatSysWindow->redraw();
					}
				}
				break;
			default:
				iret = 0;
				break;
			}
		}
	}

	return iret;
}
 GeneticRegularChemicalConsumeAction::GeneticRegularChemicalConsumeAction(std::string nChemName, float nAmount, int p_maxLifeTime, Bodypart* p_bp):
   GeneticAction(GAT_ChemicalConsume), chemName(nChemName), amount(nAmount), maxLifeTime(p_maxLifeTime) {
   verify();
   setBodypart(p_bp);
 };