00001 /* 00002 * Copyright (C) 2004-2007 The Pentagram Team 00003 * 00004 * This program is free software; you can redistribute it and/or modify 00005 * it under the terms of the GNU General Public License as published by 00006 * the Free Software Foundation; either version 2 of the License, or 00007 * (at your option) any later version. 00008 * 00009 * This program is distributed in the hope that it will be useful, 00010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00012 * GNU General Public License for more details. 00013 * 00014 * You should have received a copy of the GNU General Public License 00015 * along with this program; if not, write to the Free Software 00016 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 00017 */ 00018 00019 #include "pent_include.h" 00020 #include "DelayProcess.h" 00021 00022 #include "IDataSource.h" 00023 #include "ODataSource.h" 00024 00025 DEFINE_RUNTIME_CLASSTYPE_CODE(DelayProcess,Process); 00026 00027 00028 00029 DelayProcess::DelayProcess(int count_) 00030 : Process(), count(count_) 00031 { 00032 00033 } 00034 00035 DelayProcess::~DelayProcess() 00036 { 00037 00038 } 00039 00040 bool DelayProcess::run(const uint32 /*framenum*/) 00041 { 00042 if (--count == 0) 00043 terminate(); 00044 return false; 00045 } 00046 00047 void DelayProcess::dumpInfo() 00048 { 00049 Process::dumpInfo(); 00050 pout << "Frames left: " << count << std::endl; 00051 } 00052 00053 00054 bool DelayProcess::loadData(IDataSource* ids, uint32 version) 00055 { 00056 if (!Process::loadData(ids, version)) return false; 00057 00058 count = static_cast<int>(ids->read4()); 00059 00060 return true; 00061 } 00062 00063 void DelayProcess::saveData(ODataSource* ods) 00064 { 00065 Process::saveData(ods); 00066 ods->write4(static_cast<uint32>(count)); 00067 }