Files
2025-03-05 08:37:43 +01:00

84 lines
2.1 KiB
C

/*
* PVVMUD a 3D MUD
* Copyright (C) 1998-1999 Programvareverkstedet (pvv@pvv.org)
*
* 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
*
*/
#include "pvvmud.H"
#include <iostream.h>
#include "srvgosmanager.H"
#include "mud.H"
#define GOSSTATE_LOGIN 1
#define GOSSTATE_QUIT 2
#define GOSSTATE_ONLINE 3
#define GOSSTATE_RUNNING 4
CSrvGOSManager::CSrvGOSManager(CMud * mud, CSrvGOSProtocol * protocol): CManager(protocol){
m_mud = mud;
m_state = GOSSTATE_LOGIN;
m_numberOfClients = 0;
getProtocol()->setName("GOS Srv");
getProtocol()->sendHello();
}
CSrvGOSProtocol * CSrvGOSManager::getProtocol() {
return (CSrvGOSProtocol*)CManager::getCommunicate();
}
int CSrvGOSManager::getQuit(){
return m_state == GOSSTATE_QUIT;
}
int CSrvGOSManager::getOnLine(){
return m_state == GOSSTATE_ONLINE;
}
int CSrvGOSManager::getRunning(){
return m_state == GOSSTATE_RUNNING;
}
void CSrvGOSManager::setRunning(){
m_state = GOSSTATE_RUNNING;
}
int CSrvGOSManager::getNumClients(){
return m_numberOfClients;
}
int CSrvGOSManager::addNumClients(int add){
return m_numberOfClients += add;
}
CInetAddress * CSrvGOSManager::getAddress(){
return m_gosAddress;
}
void CSrvGOSManager::quit(){
m_state = GOSSTATE_QUIT;
m_mud->markGOS();
}
void CSrvGOSManager::login(CInetAddress * gosAddress){
m_gosAddress = gosAddress;
m_state = GOSSTATE_ONLINE;
m_mud->markGOS();
cdebug << "GOS online at address: " << m_gosAddress->getAddressString() << "\n";
}