From c068f22329d5cc722622a2183bbb22eef2093df7 Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Mon, 24 Aug 2026 11:16:07 +0200 Subject: initial import --- src/parsec/sys_bind.cpp | 136 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 136 insertions(+) create mode 100644 src/parsec/sys_bind.cpp (limited to 'src/parsec/sys_bind.cpp') diff --git a/src/parsec/sys_bind.cpp b/src/parsec/sys_bind.cpp new file mode 100644 index 0000000..078da63 --- /dev/null +++ b/src/parsec/sys_bind.cpp @@ -0,0 +1,136 @@ +/* + * PARSEC - Dynamic Function Binding + * + * $Author: uberlinuxguy $ - $Date: 2004/09/15 12:25:33 $ + * + * Orginally written by: + * Copyright (c) Markus Hadwiger 1997-1999 + * + * 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 + */ + +// C library +#include +#include +#include + +// compilation flags/debug support +#include "config.h" +#include "debug.h" + +// general definitions +#include "general.h" +#include "objstruc.h" + +// global externals +#include "globals.h" + +// subsystem linkage info +#include "linkinfo.h" + +// local module header +#include "sys_bind.h" + + +// subsystems to bind --------------------------------------------------------- +// +int sys_BindType_PROTOCOL = BT_PROTOCOL_DEFAULT; + + + +// bind PROTOCOL subsystem ---------------------------------------------------- +// +void SYS_Bind_PROTOCOL() +{ +#ifdef DBIND_PROTOCOL + +#ifdef NET_NULL + + #undef PFX + #define PFX( func, arg ) NETs_ ## func arg; net_subsys_jtab.func = NETs_ ## func + + #include "def_prot.h" +#else // !NET_NULL + + +#ifndef LINKED_PROTOCOL_PEERTOPEER + if ( sys_BindType_PROTOCOL == BT_PROTOCOL_PEERTOPEER ) { + sys_BindType_PROTOCOL = BT_PROTOCOL_DEFAULT; + } +#endif // !LINKED_PROTOCOL_PEERTOPEER + +#ifndef LINKED_PROTOCOL_GAMESERVER + if ( sys_BindType_PROTOCOL == BT_PROTOCOL_GAMESERVER ) { + sys_BindType_PROTOCOL = BT_PROTOCOL_DEFAULT; + } +#endif // !LINKED_PROTOCOL_GAMESERVER + + if ( 0 ) { + +#ifdef LINKED_PROTOCOL_PEERTOPEER + + } else if ( sys_BindType_PROTOCOL == BT_PROTOCOL_PEERTOPEER ) { + + #undef PFX + #define PFX( func, arg ) NETs_PEERTOPEER_ ## func arg; net_subsys_jtab.func = NETs_PEERTOPEER_ ## func + + #include "def_prot.h" + +#endif // LINKED_PROTOCOL_PEERTOPEER + + +#ifdef LINKED_PROTOCOL_GAMESERVER + + } else if ( sys_BindType_PROTOCOL == BT_PROTOCOL_GAMESERVER ) { + + #undef PFX + #define PFX( func, arg ) NETs_GAMESERVER_ ## func arg; net_subsys_jtab.func = NETs_GAMESERVER_ ## func + + #include "def_prot.h" + +#endif // LINKED_PROTOCOL_GAMESERVERs + +#ifdef LINKED_PROTOCOL_DEMONULL + + } else if ( sys_BindType_PROTOCOL == BT_PROTOCOL_DEMONULL ) { + + #undef PFX + #define PFX( func, arg ) NETs_DEMONULL_ ## func arg; net_subsys_jtab.func = NETs_DEMONULL_ ## func + + #include "def_prot.h" + +#endif // LINKED_PROTOCOL_DEMONULL + + } else { + + // happens only if not even default subsystem linked. + PANIC( 0 ); + } + +#endif // !NET_NULL + +#endif // DBIND_PROTOCOL +} + + +// bind all dynamic subsystems functions -------------------------------------- +// +void SYS_BindDynamicFunctions() +{ + SYS_Bind_PROTOCOL(); +} + + + -- cgit v1.2.3