MCPcopy Create free account
hub / github.com/OpenDungeons/OpenDungeons / onFrameStarted

Method onFrameStarted

source/modes/GameMode.cpp:1091–1121  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1089}
1090
1091void GameMode::onFrameStarted(const Ogre::FrameEvent& evt)
1092{
1093 GameEditorModeBase::onFrameStarted(evt);
1094
1095 refreshGuiSkill();
1096 refreshSpellButtonCoolDowns();
1097
1098 Player* player = mGameMap->getLocalPlayer();
1099 if (player == nullptr)
1100 {
1101 OD_LOG_ERR("No local player");
1102 return;
1103 }
1104 player->frameStarted(evt.timeSinceLastFrame);
1105
1106 if((mSkillCurrentCompletion.mProgressBar != nullptr) &&
1107 (mSkillCurrentCompletion.mCompletenessDisplayed < mSkillCurrentCompletion.mCompleteness))
1108 {
1109 const float completeTime = 3.0f;
1110 // We update current skill completeness. Because the required amount of skill
1111 // may be pretty high between the lowest and highest skills, we cannot fill it
1112 // linearly according to this amount (it would be too fast for cheap skills or
1113 // too slow for expensive ones).
1114 // We want to fill it so that a 100% skill is filled in 'completeTime' seconds
1115 float progress = evt.timeSinceLastFrame / completeTime;
1116 mSkillCurrentCompletion.mCompletenessDisplayed = std::min(mSkillCurrentCompletion.mCompleteness,
1117 mSkillCurrentCompletion.mCompletenessDisplayed + progress);
1118
1119 mSkillCurrentCompletion.mProgressBar->setProgress(mSkillCurrentCompletion.mCompletenessDisplayed);
1120 }
1121}
1122
1123void GameMode::onFrameEnded(const Ogre::FrameEvent& evt)
1124{

Callers 2

frameRenderingQueuedMethod · 0.45
updateMethod · 0.45

Calls 2

getLocalPlayerMethod · 0.80
frameStartedMethod · 0.80

Tested by

no test coverage detected