void Scene_Hell_Vale::Init()
{
   StartAnimation("smoke_for_hell_anim");
   StartAnimation("clouds_anim");
   
   // Objets à ramasser
   SetupItem("hell_item_heart");
   SetupItem("hell_item_eyeball");
   SetupItem("hell_item_butterfly");
   SetupItem("hell_item_cane[2]");
   SetupItem("hell_sling_stick");
   
   // Quelle est l'âme visible ?
   if (TaskResolved("task_hell_meetsoul_1") && !TaskResolved("task_hell_savesoul_1")) {
      SetVisible("hell_vale_soul_1", true);
   }
   else if (TaskResolved("task_hell_meetsoul_2") && !TaskResolved("task_hell_savesoul_2")) {
      SetVisible("hell_vale_soul_2", true);
   }
   else if (TaskResolved("task_hell_meetsoul_3") && !TaskResolved("task_hell_savesoul_3")) {
      SetVisible("hell_vale_soul_3", true);
   }
   else if (TaskResolved("task_hell_meetsoul_richard")) {
      SetVisible("hell_vale_soul_richard", true);
   }
}
예제 #2
0
void WalkEntity(Entity_T *e, int direction)
{
	const float WALK_SPEED = TILE_WIDTH / 1000;
	switch(direction){
	case ENTDIR_UP:
		e->body->v.y = WALK_SPEED;
		if(e->state != ENTSTATE_WALK || e->dir == ENTDIR_DOWN)
			StartAnimation(e, ANIM_WALK_UP);
		break;
	case ENTDIR_DOWN:
		e->body->v.y = -WALK_SPEED;
		if(e->state != ENTSTATE_WALK || e->dir == ENTDIR_UP)
			StartAnimation(e, ANIM_WALK_DOWN);
		break;
	case ENTDIR_LEFT:
		e->body->v.x = -WALK_SPEED;
		if(e->state != ENTSTATE_WALK || e->dir == ENTDIR_RIGHT)
			StartAnimation(e, ANIM_WALK_LEFT);
		break;
	case ENTDIR_RIGHT:
		e->body->v.x = WALK_SPEED;
		if(e->state != ENTSTATE_WALK || e->dir == ENTDIR_LEFT)
			StartAnimation(e, ANIM_WALK_RIGHT);
		break;
	}
	e->dir = direction;
	e->state = ENTSTATE_WALK;
}
예제 #3
0
	void CFadeButtonUI::DoEvent(TEventUI& event)
	{
		if( event.Type == UIEVENT_MOUSEENTER && !IsAnimationRunning( FADE_IN_ID ) )
		{
			m_bFadeAlpha = 0;
			m_bMouseHove = TRUE;
			StopAnimation( FADE_OUT_ID );
			StartAnimation( FADE_ELLAPSE, FADE_FRAME_COUNT, FADE_IN_ID );
			Invalidate();
			return;
		}
		if( event.Type == UIEVENT_MOUSELEAVE && !IsAnimationRunning( FADE_OUT_ID ) )
		{
			m_bFadeAlpha = 0;
			m_bMouseLeave = TRUE;
			StopAnimation(FADE_IN_ID);
			StartAnimation(FADE_ELLAPSE, FADE_FRAME_COUNT, FADE_OUT_ID);
			Invalidate();
			return;
		}
		if( event.Type == UIEVENT_TIMER ) 
		{
			OnTimer(  event.wParam );
		}
		CButtonUI::DoEvent( event );
	}
void Scene_Inca_Mainscreen::Init()
{
   StartAnimation("bg2_anim");
   StartAnimation("clouds_anim");

   if (!TaskResolved("inca_ashleytalkintro")) {
      ResolveTask("inca_ashleytalkintro");
      _lpSceneDirector->getSequencer()->NarrationMode(NULL, SEQUENCE_NARRATION_DIALOG, true);
      _lpSceneDirector->getSequencer()->Talk(NULL, CHARACTER_POSX, CHARACTER_POSY, KStr("INCA_DIALOGBOX_INTRO1"), "", false, true);
      _lpSceneDirector->getSequencer()->Talk(NULL, CHARACTER_POSX, CHARACTER_POSY, KStr("INCA_DIALOGBOX_INTRO2"), "", false, true);
      _lpSceneDirector->getSequencer()->Talk(NULL, CHARACTER_POSX, CHARACTER_POSY, KStr("INCA_DIALOGBOX_INTRO3"), "", false, true);
      _lpSceneDirector->getSequencer()->NarrationMode(NULL, SEQUENCE_NARRATION_DIALOG, false);
      AddTask("task_inca_findspear");
      AddObjective("inca","spear");
      AddHint("inca","spear","where");
   }
   
   // Ajout de la statuette à l'inventaire si elle n'y est pas déjà
   if (_lpSceneDirector->getInventory()->getItemFromInventory("inv_inca_statuette") == NULL) {
      _lpSceneDirector->getInventory()->AddItem("inca","inv_inca_statuette");
   }
   
   // Morceaux de lance
   SetupItem("inca_spear[1]");
   SetupItem("inca_spear[2]");
   SetupItem("inca_spear[3]");
   SetupItem("inca_spear[4]");   
   SetupItem("inca_spear[5]");
   if (TaskResolved("task_inca_opencube")) {
      SetupItem("inca_spear[6]");
   }
   
   // Bloc de pierre
   if (TaskResolved("task_inca_opencube")) {
      SetVisible("inca_main_cubesclosed", false, true);
      SetVisible("inca_main_cubesopen", true, true);
   }
   else {
      SetVisible("inca_main_cubesclosed", true, true);
      SetVisible("inca_main_cubesopen", false, true);
   }
   
   // Le garde
   // Il n'a pas encore sa lance
   if (!TaskResolved("task_inca_givespear")) {
      SetVisible("inca_main_guard_nospear", true);
   }
   // Il a eu sa lance
   else {
      SetVisible("inca_main_guard_spear", true);
   }
   
   // La porte est ouverte
   if (TaskResolved("task_inca_opendoor")) {
      SetVisible("inca_main_door", false, false);
   }
}
예제 #5
0
bool nuiHugeImage::MouseClicked(const nglMouseInfo& rInfo)
{
  if ((rInfo.Buttons & nglMouseInfo::ButtonLeft)
   && (rInfo.Buttons & nglMouseInfo::ButtonDoubleClick))
  {
    float zoom = 0;
    int32 x = mX;
    int32 y = mY;
    if (mZoom == mMinZoom)
    {
      zoom = mMaxZoom;
    }
    else
    {
      zoom = mMinZoom;
      x += (rInfo.X - (mRect.GetWidth() / 2)) / mZoom;
      y += (rInfo.Y - (mRect.GetHeight() / 2)) / mZoom;
    }
    
    StopAnimation(_T("Zoom"));
    mpZoom->SetEndValue(zoom);
    StartAnimation(_T("Zoom"));
    
    if (mX != x)
    {
      StopAnimation(_T("PanX"));
      mpPanX->SetEndValue(x);
      StartAnimation(_T("PanX"));
    }

    if (mY != y)
    {
      StopAnimation(_T("PanY"));
      mpPanY->SetEndValue(y);
      StartAnimation(_T("PanY"));
    }    
    Invalidate();
  }
  else if (rInfo.Buttons & nglMouseInfo::ButtonLeft)
  {
    mClicked = true;
    mLastX = rInfo.X;
    mLastY = rInfo.Y;
  }
  else if (rInfo.Buttons & nglMouseInfo::ButtonWheelUp)
  {
    SetZoom(nuiClamp(mZoom * WHEEL_ZOOM, mMinZoom, mMaxZoom));
  }
  else if (rInfo.Buttons & nglMouseInfo::ButtonWheelDown)
  {
    SetZoom(nuiClamp(mZoom / WHEEL_ZOOM, mMinZoom, mMaxZoom));
  }
  return false;
}
예제 #6
0
파일: Flower.cpp 프로젝트: Kon-Iku/graine
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
//	Name        : 初期化
//	Description : 初期化
//	Arguments   : 
//	Returns     : 
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
void CFlower::Init(D3DXVECTOR3 pos,D3DXVECTOR3 dir,const LPCTSTR pszFName)
{
	m_kuki = CObject2D::Create(pszFName);
	//m_kuki->Init(D3DXVECTOR3(1,1,0));

	// キャラクターの初期化
	CCharacter::Init();
	Resize(D3DXVECTOR2(FLOWER_SIZE_X,FLOWER_SIZE_Y));
	pos += dir * (FLOWER_SIZE_X / 2);
	Translate(pos);

	m_angle = AngleOf2Vector(pos,D3DXVECTOR3(0,1,0));

	if(m_angle > 0)
		RotateZ((float)m_angle);

	m_lastTime		= CTimer::GetTime();

	if(rand() % 2 == 0)
		m_rotSpd = 3;
	else if(rand() % 2 == 1)
		m_rotSpd = -3;

	// アニメーション初期化
	StartAnimation();

	UVDivision(0, FLOWER_ANIME_SIZE_X, FLOWER_ANIME_SIZE_Y);
}
예제 #7
0
void Vignette_Hands::Init()
{
   SetVisible("hand_ashley", true);
   StartAnimation("handashley_animp2p");
   if (_strSceneAdditionalName == "island") {
      strcpy(_szHandName, "hand_pirate");
      Loader::LoadScene("island_beach");
   }
   if (_strSceneAdditionalName == "japan") {
      strcpy(_szHandName, "hand_japan");
      Loader::LoadScene("japan_mainscreen");
   }
   if (_strSceneAdditionalName == "inca") {
      strcpy(_szHandName, "hand_inca");
      Loader::LoadScene("inca_mainscreen");
   }
   if (_strSceneAdditionalName == "egypt") {
      strcpy(_szHandName, "hand_egypt");
      Loader::LoadScene("egypt_land");
   }
   if (_strSceneAdditionalName == "middleage") {
      strcpy(_szHandName, "hand_middleage");
      Loader::LoadScene("middleage_mainscreen");
   }

   _lpSceneDirector->getSequencer()->PreloadVideo("videos/soul_tunnel.ogv");     
}
예제 #8
0
void SceneTest::Init()
{
	 /* Load button graphics */
   _lpButtonGraphic = EImageBank::getImage("buttons.png");
	StartAnimation("crabeP2P");

}
예제 #9
0
void CCLUDrawBase::Key(unsigned char cKey, int iX, int iY)
{
	/// Need to implement this function
	if (cKey == 'q' || cKey == 'Q')
		exit(0);

	if (cKey == 's' || cKey == 'S')
	{
		char pcName[30];
		sprintf(pcName, "OGLScreen%03d.bmp", m_iSaveScreenNo++);
		SaveScreen2BMP(pcName);
	}

	if (cKey == 'a' || cKey == 'A')
	{
		if (!m_bIsAnimated)
			StartAnimation(m_iAnimPause);
		else StopAnimation();
	}
	
	if (cKey == 'm' || cKey == 'M')
	{
		if (m_iAnimRotType !=4)
			 m_iAnimRotType = 4;  // ANIMROT_MOUSE
		else m_iAnimRotType =0;		
	}


	// Select Rotation mode
	if (cKey >= '0' && cKey <= '9')
	{
		SetRTMode(cKey - '0');
	}
}
예제 #10
0
void nuiHugeImage::ZoomTo(float zoom)
{
  mpZoom->SetEndValue(zoom);
  StopAnimation(_T("Zoom"));
  StartAnimation(_T("Zoom"));
  Invalidate();
}
예제 #11
0
void SceneMenu::Init()
{
   _lpSceneDirector->ChangeMusic(DIRECTOR_MUSIC_MENU);
   SetSmoothOverlap("ashley", true);
   StartAnimation("ashleyanim");
   StartAnimation("zeplight");
   StartAnimation("bg1anim");
   StartAnimation("bg2anim");
   StartAnimation("bg4anim");
   
#ifdef BFG_TEASING
   Loader::LoadScene("teasing");
#endif
   Loader::LoadScene(GetStrGlobal("__lastscene__","parvis"));
   EWatchDog::Enable();
}
예제 #12
0
/**
* \author	Darryn Campbell (DCC, JRQ768)
* \date		November 2009 (DCC: Initial Creation, Modified from PB2.x Hourglass functionality)
*/
BOOL CHourglassAnimation::RequestToShow(BOOL bHourglassShouldBeShown)
{
	m_bRequestedToShow = bHourglassShouldBeShown;
	if (!bHourglassShouldBeShown)
	{
		//  Requested to hide the hourglass, stop the animation if it is 
		//  currently running
		if (m_bAnimationRunning)
			return StopAnimation();
	}
	else
	{
		//  Requested to Show the Hourglass
		if (m_bModuleIsForeground)
		{
			//  Hourglass is requested to be shown and we are the foreground
			//  window, start the animation if it is not already running
			if (!m_bAnimationRunning)
				return StartAnimation();
			else
				return FALSE;
		}
		else
		{
			//  Hourglass is requested to be shown and we are the background
			//  window.  No action.
		}
	}
	return TRUE;
}
예제 #13
0
/**
* \author	Darryn Campbell (DCC, JRQ768)
* \date		November 2009 (DCC: Initial Creation, Modified from PB2.x Hourglass functionality)
*/
BOOL CHourglassAnimation::SetFocus(BOOL bCurrentlyHasFocus)
{
	m_bModuleIsForeground = bCurrentlyHasFocus;
	//  If we have moved to the background stop the animation if it is 
	//  currently running
	if (!bCurrentlyHasFocus)
	{
		//  Background
		if (m_bAnimationRunning)
			StopAnimation();
	}
	else
	{
		//  We have gained focus
		//  Test whether or not we should be showning the hour glass
		if (m_bRequestedToShow)
		{
			//  We have previously been requested to shown the animation
			if (!m_bAnimationRunning)
				StartAnimation();
		}
		else
		{
			//  We have previously been requested to not show the animation
			//  It should not be running but test and stop it here anyway.
			if (m_bAnimationRunning)
				StopAnimation();
		}
	}
	return TRUE;
}
예제 #14
0
OP_STATUS QuickPagingLayout::GoToPage(int pos)
{
	if (0 > pos || UINT32(pos) >= m_pages.GetCount())
	{
		OP_ASSERT(!"Index out of bounds");
		return OpStatus::ERR_OUT_OF_RANGE;
	}

	if (pos == m_active_pos)
		return OpStatus::OK;

	if (m_active_pos >= 0)
		m_pages[m_active_pos]->SetParentOpWidget(0);

	m_previous_pos = m_active_pos;
	m_active_pos = pos;

	if (!m_visible)
		return OpStatus::OK;

	m_pages[m_active_pos]->SetParentOpWidget(m_parent_op_widget);

	if (m_previous_pos >= 0)
		StartAnimation();

	if (m_rect.IsEmpty())
		return OpStatus::OK;

	return Layout(m_rect);
}
예제 #15
0
	void CAnimControlUI::Start()
	{
		if(!IsRunning())
		{
			StartAnimation(m_uElapse,m_uTotalFrameCnt,ANIMATION_ID,TRUE);
		}
	}
예제 #16
0
/* void resetAnimation (); */
NS_IMETHODIMP imgContainer::ResetAnimation()
{
  if (mAnimationMode == kDontAnimMode || 
      !mAnim || mAnim->currentAnimationFrameIndex == 0)
    return NS_OK;

  PRBool oldAnimating = mAnim->animating;

  if (mAnim->animating) {
    nsresult rv = StopAnimation();
    NS_ENSURE_SUCCESS(rv, rv);
  }

  mAnim->lastCompositedFrameIndex = -1;
  mAnim->currentAnimationFrameIndex = 0;
  // Update display
  nsCOMPtr<imgIContainerObserver> observer(do_QueryReferent(mObserver));
  if (observer) {
    nsresult rv = RestoreDiscardedData();
    NS_ENSURE_SUCCESS(rv, rv);
    observer->FrameChanged(this, mFrames[0], &(mAnim->firstFrameRefreshArea));
  }

  if (oldAnimating)
    return StartAnimation();
  return NS_OK;
}
예제 #17
0
void ElementExpanderImpl::HandleCallback(OpMessage msg, MH_PARAM_1 par1, MH_PARAM_2 par2)
{
	switch(msg)
	{
	case MSG_FINGERTOUCH_ANIMATE:
		StartAnimation();
		break;
	}
}
예제 #18
0
파일: WPJDirector.cpp 프로젝트: woudX/WPJ
void WPJDisplayLinkDirector::SetAnimationInterval(double dValue)
{
	m_dAnimationInterval = dValue;
	if (! m_bInvalid)
	{
		StopAnimation();
		StartAnimation();
	}
}
void VLineFollowerComponent::CommonInit()
{
  StartAnimation(Model_AnimationName);

  if (m_pPhys)
    m_pPhys->SetDebugRendering(Debug_RenderMesh);

  m_mDeltaRotation.setRotationMatrix (hkvVec3(0,0,1), Model_DeltaRotation);
}
예제 #20
0
bool TankGob::Init(WCoord wx, WCoord wy, Player *pplr, fix fxHealth, dword ff, const char *pszName)
{
	if (!MobileUnitGob::Init(wx, wy, pplr, fxHealth, ff, pszName))
		return false;

	StartAnimation(&m_ani, m_dir, 0, 0);
	m_aniTurret.Init(m_pmuntc->panid);
	SetAnimationStrip(&m_aniTurret, m_pmuntc->anFiringStripIndices[m_dir16Turret]);
	return true;
}
예제 #21
0
void
ImageResource::EvaluateAnimation()
{
  if (!mAnimating && ShouldAnimate()) {
    nsresult rv = StartAnimation();
    mAnimating = NS_SUCCEEDED(rv);
  } else if (mAnimating && !ShouldAnimate()) {
    StopAnimation();
  }
}
예제 #22
0
void KPstateAudioSettings::UpdateDisplay(KPstateContext *pContext) const
{
    KPstate::UpdateDisplay(pContext);

    auto &menu = pContext->GetMenu();

    const auto dy = 0.6f;
    static const Lbl soundVolumeIds[11] =
    {
        Lbl::SoundVolumeOff, Lbl::SoundVolume10, Lbl::SoundVolume20,
        Lbl::SoundVolume30, Lbl::SoundVolume40, Lbl::SoundVolume50,
        Lbl::SoundVolume60, Lbl::SoundVolume70, Lbl::SoundVolume80,
        Lbl::SoundVolume90, Lbl::SoundVolume100
    };
    static const Lbl musicVolumeIds[11] =
    {
        Lbl::MusicVolumeOff, Lbl::MusicVolume10, Lbl::MusicVolume20,
        Lbl::MusicVolume30, Lbl::MusicVolume40, Lbl::MusicVolume50,
        Lbl::MusicVolume60, Lbl::MusicVolume70, Lbl::MusicVolume80,
        Lbl::MusicVolume90, Lbl::MusicVolume100
    };

    menu.plates[KPPlate::MenuBackground].SetPosition(2, 3.5, 14, 8.5);

    menu.plates[KPPlate::Logo].SetPosition(4, 9, 12, 11);
    menu.plates[KPPlate::Logo].SetFullyVisible();

    menu.labels[Lbl::Settings].SetPosition(4, 8, 1);
    menu.labels[Lbl::Settings].SetFullyVisible();
    menu.labels[Lbl::Audio].SetPosition(12, 8, 1, AlignItem::Right);
    menu.labels[Lbl::Audio].SetFullyVisible();

    auto y = 6.0f;
    menu.labels[Lbl::SoundVolume].SetPosition(8, y, 0.71f, AlignItem::Right);
    menu.labels[Lbl::SoundVolume].SetSignal(Signal::ToggleSoundVolume);

    auto labelId = soundVolumeIds[E_SoundVolume / 10];

    menu.labels[labelId].SetPosition(8.2f, y, 0.71f);
    menu.labels[labelId].SetSignal(Signal::ToggleSoundVolume);

    y -= dy;
    menu.labels[Lbl::MusicVolume].SetPosition(8, y, 0.71f, AlignItem::Right);
    menu.labels[Lbl::MusicVolume].SetSignal(Signal::ToggleMusicVolume);

    labelId = musicVolumeIds[E_MusicVolume / 10];

    menu.labels[labelId].SetPosition(8.2f, y, 0.71f);
    menu.labels[labelId].SetSignal(Signal::ToggleMusicVolume);

    menu.labels[Lbl::Back].SetPosition(8, 0.7f, 1, AlignItem::Centered);
    menu.labels[Lbl::Back].SetSignal(Signal::Back);

    StartAnimation(pContext);
}
void ZoomControlExternal::ExtendedZoomControls::Fade(
    /* [in] */ Int32 visibility,
    /* [in] */ Float startAlpha,
    /* [in] */ Float endAlpha)
{
    AutoPtr<IAlphaAnimation> anim;
    CAlphaAnimation::New(startAlpha, endAlpha, (IAlphaAnimation**)&anim);
    anim->SetDuration(500);
    StartAnimation(anim);
    SetVisibility(visibility);
}
예제 #24
0
void SlimeKingMiddle::MakeTheOtherSelf()
{
	auto s1 = Slime::create();
	auto s2 = Slime::create();
	auto monsterManager = static_cast<MonsterManager*>(layer->getChildByName("MonsterManager"));
	monsterManager->monsters.pushBack(s1);
	monsterManager->monsters.pushBack(s2);
	s1->setPosition(this->getPosition());
	s2->setPosition(this->getPosition());
	s1->Draw(layer);
	s2->Draw(layer);

	auto act = JumpBy::create(0.5f, Vec2(s1->getContentSize().width, 0), s1->getContentSize().height*0.5f, 1);
	s1->runAction(act->clone());
	s2->runAction(act->reverse());
	s1->scheduleUpdate();
	s1->StartAnimation();
	s2->scheduleUpdate();
	s2->StartAnimation();
}
예제 #25
0
void KPstateLightTest::UpdateDisplay(KPstateContext *pContext) const
{
    auto &menu = pContext->GetMenu();

    KPstate::UpdateDisplay(pContext);

    menu.labels[Lbl::Ok].SetPosition(8, 1, 1, AlignItem::Centered);
    menu.labels[Lbl::Ok].SetSignal(Signal::Back);

    StartAnimation(pContext);
}
void Scene_Inca_Mainscreen::StartEffect(const char *szEffect)
{
   StartAnimation("bg2_anim");
   if (strcmp(szEffect, "raise_door") == 0) {
      _bAnimDoor = true;
      int x, y;
      GetObjectPosition("inca_main_door", x, y, false, false);
      ESoundBank::getSound("rockdoor")->playSample();
      _lpAnimDoor->startCounter(0.0f, -210.0f, 0, 10000, K_COUNTER_EASEOUT);
      _lpSceneDirector->getSequencer()->NarrationMode(NULL, SEQUENCE_NARRATION_CINEMATIC, true);
   }
}
예제 #27
0
void CTrayIcon::SetAnimationDelay(int nDelay)
{
	ASSERT (nDelay >= 100);

	m_nAnimationDelay = max(nDelay, 100);

	if (m_bAnimationOn)
	{
		KillTimer(1);
		StartAnimation();
	}
}
예제 #28
0
MinerGob::MinerGob() : MobileUnitGob(&gConsts)
{
	m_aniVacuum.Init(s_panidVacuum);
	StartAnimation(&m_aniVacuum, 0, 0, kfAniLoop);
	m_nGalaxiteAmount = 0;
	m_gidFavoriteProcessor = kgidNull;
	m_tptGalaxite.tx = kxInvalid;
	m_fMinerUnderAttack = false;
	m_wfMunt &= ~kfMuntAggressivenessBits;
	m_fHidden = false;
	m_fAttemptingToDeliver = false;
}
예제 #29
0
 void SkeletController::AddAnimation(const char *name, int loop) {
     if (!m_animation || !m_started) {
         StartAnimation(name, loop);
     } else {
         AnimationEntry e = { name , loop };
         m_added_animations.push_back(e);
         if (m_loop <=0 ) {
             m_loop = 1;
         }
     }
     
 }
예제 #30
0
void Vignette_Hands::Draw()
{
   if (!_bSound) {
      _bSound = true;
      _lpSceneDirector->getSequencer()->PlaySound(NULL, "hands_vortex");
      SetVisible("hand_ashley", true);
      StartAnimation("handashley_animp2p");
      if (_strSceneAdditionalName == "island") {
         SetVisible("hand_pirate", true);
         StartAnimation("handpirate_animp2p");
      }
      if (_strSceneAdditionalName == "japan") {
         SetVisible("hand_japan", true);
         StartAnimation("handjapan_animp2p");
      }
      if (_strSceneAdditionalName == "inca") {
         SetVisible("hand_inca", true);
         StartAnimation("handinca_animp2p");
      }
      if (_strSceneAdditionalName == "egypt") {
         SetVisible("hand_egypt", true);
         StartAnimation("handegypt_animp2p");
      }
      if (_strSceneAdditionalName == "middleage") {
         SetVisible("hand_middleage", true);
         StartAnimation("handmiddleage_animp2p");
      }
   }
   EScene::Draw();
}