mirror of
https://github.com/rehlds/rechecker.git
synced 2024-12-27 04:45:29 +03:00
155 lines
3.7 KiB
C++
155 lines
3.7 KiB
C++
/*
|
|
*
|
|
* 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.
|
|
*
|
|
* 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
|
|
*
|
|
* In addition, as a special exception, the author gives permission to
|
|
* link the code of this program with the Half-Life Game Engine ("HL
|
|
* Engine") and Modified Game Libraries ("MODs") developed by Valve,
|
|
* L.L.C ("Valve"). You must obey the GNU General Public License in all
|
|
* respects for all of the code used other than the HL Engine and MODs
|
|
* from Valve. If you modify this file, you may extend this exception
|
|
* to your version of the file, but you are not obligated to do so. If
|
|
* you do not wish to do so, delete this exception statement from your
|
|
* version.
|
|
*
|
|
*/
|
|
|
|
#include "precompiled.h"
|
|
|
|
char *BaseSystemModule::GetName()
|
|
{
|
|
return m_Name;
|
|
}
|
|
|
|
char *BaseSystemModule::GetType()
|
|
{
|
|
return "GenericModule";
|
|
}
|
|
|
|
char *BaseSystemModule::GetStatusLine()
|
|
{
|
|
return "No status available.\n";
|
|
}
|
|
|
|
void BaseSystemModule::ExecuteCommand(int commandID, char *commandLine)
|
|
{
|
|
m_System->DPrintf("WARNING! Undeclared ExecuteCommand().\n");
|
|
}
|
|
|
|
extern int COM_BuildNumber();
|
|
|
|
int BaseSystemModule::GetVersion()
|
|
{
|
|
return COM_BuildNumber();
|
|
}
|
|
|
|
int BaseSystemModule::GetSerial()
|
|
{
|
|
return m_Serial;
|
|
}
|
|
|
|
IBaseSystem *BaseSystemModule::GetSystem()
|
|
{
|
|
return m_System;
|
|
}
|
|
|
|
bool BaseSystemModule::Init(IBaseSystem *system, int serial, char *name)
|
|
{
|
|
if (!system)
|
|
return false;
|
|
|
|
m_State = MODULE_INITIALIZING;
|
|
m_System = system;
|
|
m_Serial = serial;
|
|
m_SystemTime = 0;
|
|
|
|
if (name) {
|
|
strcopy(m_Name, name);
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
void BaseSystemModule::RunFrame(double time)
|
|
{
|
|
m_SystemTime = time;
|
|
}
|
|
|
|
void BaseSystemModule::ShutDown()
|
|
{
|
|
if (m_State == MODULE_DISCONNECTED)
|
|
return;
|
|
|
|
m_Listener.Clear();
|
|
m_State = MODULE_DISCONNECTED;
|
|
|
|
if (!m_System->RemoveModule(this))
|
|
{
|
|
m_System->DPrintf("ERROR! BaseSystemModule::ShutDown: faild to remove module %s.\n", m_Name);
|
|
}
|
|
}
|
|
|
|
void BaseSystemModule::RegisterListener(ISystemModule *module)
|
|
{
|
|
ISystemModule *listener = (ISystemModule *)m_Listener.GetFirst();
|
|
while (listener)
|
|
{
|
|
if (listener->GetSerial() == module->GetSerial())
|
|
{
|
|
m_System->DPrintf("WARNING! BaseSystemModule::RegisterListener: module %s already added.\n", module->GetName());
|
|
return;
|
|
}
|
|
|
|
listener = (ISystemModule *)m_Listener.GetNext();
|
|
}
|
|
|
|
m_Listener.Add(module);
|
|
}
|
|
|
|
void BaseSystemModule::RemoveListener(ISystemModule *module)
|
|
{
|
|
ISystemModule *listener = (ISystemModule *)m_Listener.GetFirst();
|
|
while (listener)
|
|
{
|
|
if (listener->GetSerial() == module->GetSerial())
|
|
{
|
|
m_Listener.Remove(module);
|
|
return;
|
|
}
|
|
|
|
listener = (ISystemModule *)m_Listener.GetNext();
|
|
}
|
|
}
|
|
|
|
void BaseSystemModule::FireSignal(unsigned int signal, void *data)
|
|
{
|
|
ISystemModule *listener = (ISystemModule *)m_Listener.GetFirst();
|
|
while (listener)
|
|
{
|
|
listener->ReceiveSignal(this, signal, data);
|
|
listener = (ISystemModule *)m_Listener.GetNext();
|
|
}
|
|
}
|
|
|
|
void BaseSystemModule::ReceiveSignal(ISystemModule *module, unsigned int signal, void *data)
|
|
{
|
|
m_System->DPrintf("WARNING! Unhandled signal (%i) from module %s.\n", signal, module->GetName());
|
|
}
|
|
|
|
int BaseSystemModule::GetState()
|
|
{
|
|
return m_State;
|
|
}
|