From 12315f4d0e0ae993805f141f64cb8c73c5297311 Mon Sep 17 00:00:00 2001 From: Hans Lambermont Date: Sat, 12 Oct 2002 11:37:38 +0000 Subject: Initial revision --- .../gameengine/GameLogic/SCA_TimeEventManager.cpp | 110 +++++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 source/gameengine/GameLogic/SCA_TimeEventManager.cpp (limited to 'source/gameengine/GameLogic/SCA_TimeEventManager.cpp') diff --git a/source/gameengine/GameLogic/SCA_TimeEventManager.cpp b/source/gameengine/GameLogic/SCA_TimeEventManager.cpp new file mode 100644 index 00000000000..784afcce298 --- /dev/null +++ b/source/gameengine/GameLogic/SCA_TimeEventManager.cpp @@ -0,0 +1,110 @@ +/** + * $Id$ + * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. The Blender + * Foundation also sells licenses for use in proprietary software under + * the Blender License. See http://www.blender.org/BL/ for information + * about this. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL/BL DUAL LICENSE BLOCK ***** + */ + +#ifdef WIN32 + +// This warning tells us about truncation of __long__ stl-generated names. +// It can occasionally cause DevStudio to have internal compiler warnings. +#pragma warning( disable : 4786 ) +#endif + +#include "SCA_TimeEventManager.h" + +#include "SCA_LogicManager.h" +#include "FloatValue.h" + +SCA_TimeEventManager::SCA_TimeEventManager(SCA_LogicManager* logicmgr) +: SCA_EventManager(TIME_EVENTMGR) +{ +} + + + +SCA_TimeEventManager::~SCA_TimeEventManager() +{ + for (vector::iterator it = m_timevalues.begin(); + !(it == m_timevalues.end()); it++) + { + (*it)->Release(); + } +} + + + +void SCA_TimeEventManager::RegisterSensor(SCA_ISensor* sensor) +{ + // not yet +} + + + +void SCA_TimeEventManager::NextFrame(double curtime,double deltatime) +{ + if (m_timevalues.size() > 0) + { + CFloatValue* floatval = new CFloatValue(curtime); + + // update sensors, but ... need deltatime ! + for (vector::iterator it = m_timevalues.begin(); + !(it == m_timevalues.end()); it++) + { + float newtime = (*it)->GetNumber() + deltatime; + floatval->SetFloat(newtime); + (*it)->SetValue(floatval); + } + + floatval->Release(); + } +} + + + +void SCA_TimeEventManager::AddTimeProperty(CValue* timeval) +{ + timeval->AddRef(); + m_timevalues.push_back(timeval); +} + + + +void SCA_TimeEventManager::RemoveTimeProperty(CValue* timeval) +{ + for (vector::iterator it = m_timevalues.begin(); + !(it == m_timevalues.end()); it++) + { + if ((*it) == timeval) + { + this->m_timevalues.erase(it); + timeval->Release(); + break; + } + } +} -- cgit v1.2.3