void CPlayerMindGameBeamEffectLinkedEffect::Update() { if (m_LightningID != -1) { const float remainingDelay = m_RestartDelay - gEnv->pTimer->GetFrameTime(); if (remainingDelay <= 0.0f) { m_RestartDelay = 0.0f; StopEmitter(); // Note: the effect will be restarted when needed again // (so this will be during the next call to BetweenPoints()). } else { m_RestartDelay = remainingDelay; } } }
void CPlayerMindGameBeamEffectLinkedEffect::ReleaseAll() { StopEmitter(); }
void CPlayerMindGameBeamEffectLinkedEffect::SetLightningEffect(const CPlayerMindGameBeamEffectLinkedEffectConfig* effectConfig) { StopEmitter(); assert(effectConfig != NULL); m_EffectConfig = effectConfig; }
bool SceneBasement::ObjectClicked(const char *szObjectName, float x, float y) { // Interrupteur if ( strcmp(szObjectName, "switch") == 0) { if (!TaskResolved("task_house_basement_changebulb")) { _lpSceneDirector->getSequencer()->VoiceOver(szObjectName, KStr("HOUSE_BASEMENT_ASHLEY_BULBBROK"),""); } else { if (TaskResolved("task_house_basement_light")) { _lpSceneDirector->getSequencer()->VoiceOver(szObjectName, KStr("HOUSE_BASEMENT_ASHLEY_LIGHT"),""); } else { ESoundBank::getSound("reveal")->playSample(); ResolveObjective("house","basementlight"); ResolveTask("task_house_basement_light"); AddTask("task_house_basement_natsumineed"); setAdditionalName("light"); Init(); } } return true; } if ( strcmp(szObjectName, "bulbbroken") == 0) { _lpSceneDirector->getSequencer()->Talk(szObjectName, CHARACTER_POSX, CHARACTER_POSY, KStr("HOUSE_BASEMENT_ASHLEY_CUT"), "", true); return true; } if ( strcmp(szObjectName, "nobulb") == 0) { _lpSceneDirector->getSequencer()->Talk(szObjectName, CHARACTER_POSX, CHARACTER_POSY, KStr("HOUSE_BASEMENT_ASHLEY_MISSBULB"), "", true); return true; } if ( strcmp(szObjectName, "basement_rope") == 0) { PickupMultiple(szObjectName, "inv_house_rope",-1); StopEmitter("flake_rope"); return true; } if ( strcmp(szObjectName, "basement_screwdriver") == 0) { PickupSimple(szObjectName, "inv_house_basement_screwdriver"); return true; } if ( strcmp(szObjectName, "basement_grip") == 0) { PickupMultiple(szObjectName, "inv_house_basement_gripbroken",-1); // _lpSceneDirector->getSequencer()->Talk(NULL, CHARACTER_POSX, CHARACTER_POSY, KStr("HOUSE_BASEMENT_ASHLEY_WRISTBROK"), "", true); return true; } if ( strcmp(szObjectName, "basement_hammer") == 0) { PickupSimple(szObjectName, "inv_house_basement_hammer"); return true; } if ( strcmp(szObjectName, "basement_paper") == 0) { PickupSimple(szObjectName, "inv_house_basement_paper"); return true; } if ( strcmp(szObjectName, "basement_sketch") == 0) { PickupSimple(szObjectName, "inv_house_basement_sketch"); _lpSceneDirector->getSequencer()->Talk(szObjectName, CHARACTER_POSX, CHARACTER_POSY, KStr("HOUSE_BASEMENT_ASHLEY_DRAWING"), "", true); return true; } if ( strcmp(szObjectName, "basement_bonzai") == 0) { if (TaskResolved("task_house_basement_givepaper") && TaskResolved("task_house_basement_givecharcoal")) { _lpSceneDirector->getSequencer()->Talk(szObjectName, CHARACTER_POSX, CHARACTER_POSY, KStr("HOUSE_BASEMENT_ASHLEY_INEED2"), "", true); return true; } } if ( strcmp(szObjectName, "envelope_basement") == 0) { PickupSimple(szObjectName, "ihm_envelope"); _lpSceneDirector->getDiaryPtr()->beginCreatePage("letterpaper.png"); _lpSceneDirector->getDiaryPtr()->addStringToPage("ENVELOPE_BASEMENT", FONT_DIARY_2, 0, 0); _lpSceneDirector->getDiaryPtr()->addImageToPage("logofraternity.png"); _lpSceneDirector->getDiaryPtr()->endCreatePage(); return true; } // Seau de charbon if ( strcmp(szObjectName, "basement_coalbucketup") == 0) { ResolveTask("task_house_basement_reversecoal"); ESoundBank::getSound("success")->playSample(); _lpSceneDirector->getSequencer()->ShowImage(NULL,"basement_coalbucketup",false); _lpSceneDirector->getSequencer()->ShowImage(NULL,"basement_coalbucketdown",true); _lpSceneDirector->getSequencer()->Talk(szObjectName, CHARACTER_POSX, CHARACTER_POSY, KStr("HOUSE_BASEMENT_ASHLEY_OUPSFALL"), "", true); } // boite à outils if ( strcmp(szObjectName, "basement_toolboxclosed") == 0) { ResolveTask("task_house_basement_opentoolbox"); ESoundBank::getSound("success")->playSample(); _lpSceneDirector->getSequencer()->ShowImage(NULL,"basement_toolboxopen",true); _lpSceneDirector->getSequencer()->ShowImage(NULL,"basement_toolboxclosed",false); _lpSceneDirector->getSequencer()->ShowImage(NULL,"basement_hammer",true); } // Grille fermée if ( strcmp(szObjectName, "basement_gridclosed") == 0 || strcmp(szObjectName, "basement_gridopen") == 0) { _lpSceneDirector->GoToScene("basement_grid","",false); return true; } // Fantome if ( strcmp(szObjectName, "basement_ghosthidden") == 0) { // 1ère communication if (!TaskResolved("task_house_meetnatsumi")) { ResolveTask("task_house_meetnatsumi"); } int x,y; GetObjectPosition("basement_ghostup", x, y); _lpSceneDirector->getSequencer()->PlaySound(NULL, "ghostappear"); _lpSceneDirector->getSequencer()->ShowImage(NULL,"basement_ghosthidden",false); _lpSceneDirector->getSequencer()->ShowEmitter(NULL, "creeping_static_hidden", false); _lpSceneDirector->getSequencer()->ShowEmitter(NULL, "creeping_static_up", true); _lpSceneDirector->getSequencer()->ShowImage(NULL,"basement_ghostup",true); // On a donné les 2 objets attendus if (TaskResolved("task_house_basement_givepaper") && TaskResolved("task_house_basement_givecharcoal")) { _lpSceneDirector->getSequencer()->Talk("canu", x, y, KStr("HOUSE_BASEMENT_NATSUMI_CANYOUBONZ"), "", false, false, _lpGhostVoice); _lpTimerGhost->startCounter(0.0f, 1.0f, 0, 10000, K_COUNTER_LINEAR); } else { if (!TaskToResolve("task_house_basement_givepaper")) { AddTask("task_house_basement_givepaper"); } if (!TaskToResolve("task_house_basement_givecharcoal")) { AddTask("task_house_basement_givecharcoal"); } _lpSceneDirector->getSequencer()->Talk("doyouhave", x, y, KStr("HOUSE_BASEMENT_NATSUMI_DOYOUHAVE"), "", true, false, _lpGhostVoice); _lpTimerGhost->startCounter(0.0f, 1.0f, 0, 10000, K_COUNTER_LINEAR); } return true; } if ( strcmp(szObjectName, "basement_ghostup") == 0) { int x,y; GetObjectPosition("basement_ghostup", x, y); _lpSceneDirector->getSequencer()->Talk(szObjectName, x, y, KStr("HOUSE_BASEMENT_NATSUMI_DOYOUHAVE2"), "", true, false, _lpGhostVoice); return true; } #ifdef BFG_TEASING if ( strcmp(szObjectName, "gotostairs") == 0 && TaskResolved("task_japan_universeresolved")) { _lpSceneDirector->getSequencer()->GoToScene(NULL, "teasing", "", false); return true; } #endif return false; }