mirror of
https://github.com/OpenFusionProject/OpenFusion.git
synced 2026-03-28 15:40:03 +00:00
* Groundwork for nanocom boosters * The item use handler now has a switch for multiple item types (currently gumballs, and a stub for boosters) * All item types are now checked for expiration, not just vehicles * implement nanocom booster helpers, save and expiry * implement authentic taro and fm modfication * magic number and code refactor * make sure only close by group members are counted * add safe taro fm handling, rate command, race and mission booster logic * add config option to disable authentic group scaling * rename for consistency * make rates percentages, fix chat message, add config options * add config option to the ini file * add index guard for hasBoost functions * reorder config ini options * add bank item expiry option * fix trade oversight --------- Co-authored-by: CakeLancelot <CakeLancelot@users.noreply.github.com>
35 lines
986 B
C++
35 lines
986 B
C++
#pragma once
|
|
|
|
#include "core/Core.hpp"
|
|
|
|
#include <map>
|
|
#include <list>
|
|
|
|
#define REGISTER_SHARD_PACKET(pactype, handlr) CNShardServer::ShardPackets[pactype] = handlr;
|
|
#define REGISTER_SHARD_TIMER(handlr, delta) CNShardServer::Timers.push_back(TimerEvent(handlr, delta));
|
|
#define MS_PER_PLAYER_TICK 500
|
|
#define MS_PER_COMBAT_TICK 200
|
|
|
|
class CNShardServer : public CNServer {
|
|
private:
|
|
static void handlePacket(CNSocket* sock, CNPacketData* data);
|
|
|
|
static void keepAliveTimer(CNServer*, time_t);
|
|
static void periodicSaveTimer(CNServer* serv, time_t currTime);
|
|
static void periodicItemExpireTimer(CNServer* serv, time_t currTime);
|
|
|
|
public:
|
|
static std::map<uint32_t, PacketHandler> ShardPackets;
|
|
static std::list<TimerEvent> Timers;
|
|
|
|
CNShardServer(uint16_t p);
|
|
|
|
static void _killConnection(CNSocket *cns);
|
|
|
|
bool checkExtraSockets(int i);
|
|
void newConnection(CNSocket* cns);
|
|
void killConnection(CNSocket* cns);
|
|
void kill();
|
|
void onStep();
|
|
};
|