summaryrefslogtreecommitdiff
path: root/src/common/core.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/common/core.h')
-rw-r--r--src/common/core.h48
1 files changed, 25 insertions, 23 deletions
diff --git a/src/common/core.h b/src/common/core.h
index c2a8d9e58..c92bf4fa6 100644
--- a/src/common/core.h
+++ b/src/common/core.h
@@ -5,7 +5,7 @@
#ifndef COMMON_CORE_H
#define COMMON_CORE_H
-#include "common/cbasetypes.h"
+#include "common/hercules.h"
/* so that developers with --enable-debug can raise signals from any section of the code they'd like */
#ifdef DEBUG
@@ -28,27 +28,6 @@ enum E_CORE_ST {
CORE_ST_LAST
};
-#ifdef HERCULES_CORE
-extern int arg_c;
-extern char **arg_v;
-
-/// @see E_CORE_ST
-extern int runflag;
-extern char *SERVER_NAME;
-
-enum server_types SERVER_TYPE;
-
-extern void cmdline_args_init_local(void);
-extern int do_init(int,char**);
-extern void set_server_type(void);
-extern void do_abort(void);
-extern int do_final(void);
-
-/// Called when a terminate signal is received. (Ctrl+C pressed)
-/// If NULL, runflag is set to CORE_ST_STOP instead.
-extern void (*shutdown_callback)(void);
-#endif // HERCULES_CORE
-
/// Options for command line argument handlers.
enum cmdline_options {
CMDLINE_OPT_NORMAL = 0x0, ///< No special options.
@@ -78,10 +57,30 @@ struct cmdline_interface {
const char *(*arg_source) (struct CmdlineArgData *arg);
};
-struct cmdline_interface *cmdline;
+struct core_interface {
+ int arg_c;
+ char **arg_v;
+ /// @see E_CORE_ST
+ int runflag;
+ char *server_name;
+ enum server_types server_type;
+
+ /// Called when a terminate signal is received. (Ctrl+C pressed)
+ /// If NULL, runflag is set to CORE_ST_STOP instead.
+ void (*shutdown_callback)(void);
+};
#define CMDLINEARG(x) bool cmdline_arg_ ## x (const char *name, const char *params)
+#define SERVER_NAME (core->server_name)
+#define SERVER_TYPE (core->server_type)
+
#ifdef HERCULES_CORE
+extern void cmdline_args_init_local(void);
+extern int do_init(int,char**);
+extern void set_server_type(void);
+extern void do_abort(void);
+extern int do_final(void);
+
/// Special plugin ID assigned to the Hercules core
#define HPM_PID_CORE ((unsigned int)-1)
@@ -91,4 +90,7 @@ struct cmdline_interface *cmdline;
void cmdline_defaults(void);
#endif // HERCULES_CORE
+HPShared struct core_interface *core;
+HPShared struct cmdline_interface *cmdline;
+
#endif /* COMMON_CORE_H */