core.h 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. // Copyright (c) Athena Dev Teams - Licensed under GNU GPL
  2. // For more information, see LICENCE in the main folder
  3. #ifndef _CORE_H_
  4. #define _CORE_H_
  5. /* so that developers with --enable-debug can raise signals from any section of the code they'd like */
  6. #ifdef DEBUG
  7. #include <signal.h>
  8. #endif
  9. extern int arg_c;
  10. extern char **arg_v;
  11. #if defined(BUILDBOT)
  12. extern int buildbotflag;
  13. #endif
  14. #define UNKNOWN_VERSION '\x02'
  15. /// @see E_CORE_ST
  16. extern int runflag;
  17. extern char *SERVER_NAME;
  18. extern char db_path[12]; /// relative path for db from servers
  19. enum {
  20. ATHENA_SERVER_NONE = 0, // not defined
  21. ATHENA_SERVER_LOGIN = 1, // login server
  22. ATHENA_SERVER_CHAR = 2, // char server
  23. ATHENA_SERVER_INTER = 4, // inter server
  24. ATHENA_SERVER_MAP = 8, // map server
  25. };
  26. extern char SERVER_TYPE;
  27. extern int parse_console(const char* buf);
  28. const char *get_svn_revision(void);
  29. const char *get_git_hash(void);
  30. extern int do_init(int,char**);
  31. extern void set_server_type(void);
  32. extern void do_abort(void);
  33. extern void do_final(void);
  34. /// The main loop continues until runflag is CORE_ST_STOP
  35. enum E_CORE_ST
  36. {
  37. CORE_ST_STOP = 0,
  38. CORE_ST_RUN,
  39. CORE_ST_LAST
  40. };
  41. /// Called when a terminate signal is received. (Ctrl+C pressed)
  42. /// If NULL, runflag is set to CORE_ST_STOP instead.
  43. extern void (*shutdown_callback)(void);
  44. #endif /* _CORE_H_ */