FIFE  2008.0
 All Classes Namespaces Functions Variables Enumerations Enumerator
timeevent.cpp
00001 /***************************************************************************
00002  *   Copyright (C) 2005-2008 by the FIFE team                              *
00003  *   http://www.fifengine.de                                               *
00004  *   This file is part of FIFE.                                            *
00005  *                                                                         *
00006  *   FIFE is free software; you can redistribute it and/or                 *
00007  *   modify it under the terms of the GNU Lesser General Public            *
00008  *   License as published by the Free Software Foundation; either          *
00009  *   version 2.1 of the License, or (at your option) any later version.    *
00010  *                                                                         *
00011  *   This library is distributed in the hope that it will be useful,       *
00012  *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
00013  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU     *
00014  *   Lesser General Public License for more details.                       *
00015  *                                                                         *
00016  *   You should have received a copy of the GNU Lesser General Public      *
00017  *   License along with this library; if not, write to the                 *
00018  *   Free Software Foundation, Inc.,                                       *
00019  *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA          *
00020  ***************************************************************************/
00021 
00022 // Standard C++ library includes
00023 #include <iostream>
00024 
00025 // 3rd party library includes
00026 #include <SDL.h>
00027 
00028 // FIFE includes
00029 // These includes are split up in two parts, separated by one empty line
00030 // First block: files included from the FIFE root src directory
00031 // Second block: files included from the same folder
00032 #include "timemanager.h"
00033 #include "timeevent.h"
00034 
00035 namespace FIFE {
00036 
00037     TimeEvent::TimeEvent(int period):
00038         m_period(period),
00039         m_last_updated(TimeManager::instance()->getTime()) {
00040     }
00041 
00042     TimeEvent::~TimeEvent() {
00043         return;
00044     }
00045 
00046     void TimeEvent::managerUpdateEvent(unsigned long time) {
00047         int time_delta = static_cast<int>(time - m_last_updated);
00048         if (m_period < 0) {
00049             return;
00050         } else if (m_period == 0 || time_delta >= m_period) {
00051             updateEvent(time_delta);
00052             m_last_updated = time;
00053         }
00054     }
00055 
00056     void TimeEvent::setPeriod(int period) {
00057         m_period = period;
00058     }
00059 
00060     int TimeEvent::getPeriod() {
00061         return m_period;
00062     }
00063 
00064     unsigned long TimeEvent::getLastUpdateTime() {
00065         return m_last_updated;
00066     }
00067 
00068     void TimeEvent::setLastUpdateTime(unsigned long ms) {
00069         m_last_updated = ms;
00070     }
00071 
00072 
00073 } //FIFE