From f3dba05143fc8be277137e42fe1933ac185365d4 Mon Sep 17 00:00:00 2001 From: Perttu Ahola Date: Sat, 10 Mar 2012 16:46:19 +0200 Subject: Remove servermain.cpp, use main.cpp with a couple of #ifdefs instead --- src/main.cpp | 268 ++++++++++++++++++++++++++++++++--------------------------- 1 file changed, 146 insertions(+), 122 deletions(-) (limited to 'src/main.cpp') diff --git a/src/main.cpp b/src/main.cpp index 46fe4715d..e78d4441c 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -373,13 +373,14 @@ Doing currently: #endif #ifdef _MSC_VER +#ifndef SERVER // Dedicated server isn't linked with Irrlicht #pragma comment(lib, "Irrlicht.lib") - //#pragma comment(lib, "jthread.lib") - #pragma comment(lib, "zlibwapi.lib") - #pragma comment(lib, "Shell32.lib") // This would get rid of the console window //#pragma comment(linker, "/subsystem:windows /ENTRY:mainCRTStartup") #endif + #pragma comment(lib, "zlibwapi.lib") + #pragma comment(lib, "Shell32.lib") +#endif #include "irrlicht.h" // createDevice @@ -421,13 +422,30 @@ Profiler main_profiler; Profiler *g_profiler = &main_profiler; /* - Random stuff + Debug streams */ +// Connection +std::ostream *dout_con_ptr = &dummyout; +std::ostream *derr_con_ptr = &verbosestream; +//std::ostream *dout_con_ptr = &infostream; +//std::ostream *derr_con_ptr = &errorstream; + +// Server +std::ostream *dout_server_ptr = &infostream; +std::ostream *derr_server_ptr = &errorstream; + +// Client +std::ostream *dout_client_ptr = &infostream; +std::ostream *derr_client_ptr = &errorstream; + +#ifndef SERVER /* - mainmenumanager.h + Random stuff */ +/* mainmenumanager.h */ + gui::IGUIEnvironment* guienv = NULL; gui::IGUIStaticText *guiroot = NULL; MainMenuManager g_menumgr; @@ -439,28 +457,21 @@ bool noMenuActive() // Passed to menus to allow disconnecting and exiting MainGameCallback *g_gamecallback = NULL; +#endif /* - Debug streams + gettime.h implementation */ -// Connection -std::ostream *dout_con_ptr = &dummyout; -std::ostream *derr_con_ptr = &verbosestream; -//std::ostream *dout_con_ptr = &infostream; -//std::ostream *derr_con_ptr = &errorstream; - -// Server -std::ostream *dout_server_ptr = &infostream; -std::ostream *derr_server_ptr = &errorstream; +#ifdef SERVER -// Client -std::ostream *dout_client_ptr = &infostream; -std::ostream *derr_client_ptr = &errorstream; +u32 getTimeMs() +{ + /* Use imprecise system calls directly (from porting.h) */ + return porting::getTimeMs(); +} -/* - gettime.h implementation -*/ +#else // A small helper class class TimeGetter @@ -506,6 +517,30 @@ u32 getTimeMs() return g_timegetter->getTime(); } +#endif + +class StderrLogOutput: public ILogOutput +{ +public: + /* line: Full line with timestamp, level and thread */ + void printLog(const std::string &line) + { + std::cerr< screensize = driver->getScreenSize(); + + video::ITexture *bgtexture = + driver->getTexture(getTexturePath("menubg.png").c_str()); + if(bgtexture) + { + s32 texturesize = 128; + s32 tiled_y = screensize.Height / texturesize + 1; + s32 tiled_x = screensize.Width / texturesize + 1; + + for(s32 y=0; y rect(0,0,texturesize,texturesize); + rect += v2s32(x*texturesize, y*texturesize); + driver->draw2DImage(bgtexture, rect, + core::rect(core::position2d(0,0), + core::dimension2di(bgtexture->getSize())), + NULL, NULL, true); + } + } + + video::ITexture *logotexture = + driver->getTexture(getTexturePath("menulogo.png").c_str()); + if(logotexture) + { + v2s32 logosize(logotexture->getOriginalSize().Width, + logotexture->getOriginalSize().Height); + logosize *= 4; + + video::SColor bgcolor(255,50,50,50); + core::rect bgrect(0, screensize.Height-logosize.Y-20, + screensize.Width, screensize.Height); + driver->draw2DRectangle(bgcolor, bgrect, NULL); + + core::rect rect(0,0,logosize.X,logosize.Y); + rect += v2s32(screensize.Width/2,screensize.Height-10-logosize.Y); + rect -= v2s32(logosize.X/2, 0); + driver->draw2DImage(logotexture, rect, + core::rect(core::position2d(0,0), + core::dimension2di(logotexture->getSize())), + NULL, NULL, true); + } +} + +#endif + // These are defined global so that they're not optimized too much. // Can't change them to volatile. s16 temp16; @@ -909,7 +993,7 @@ std::string tempstring2; void SpeedTests() { { - dstream<<"The following test should take around 20ms."< screensize = driver->getScreenSize(); - - video::ITexture *bgtexture = - driver->getTexture(getTexturePath("menubg.png").c_str()); - if(bgtexture) - { - s32 texturesize = 128; - s32 tiled_y = screensize.Height / texturesize + 1; - s32 tiled_x = screensize.Width / texturesize + 1; - - for(s32 y=0; y rect(0,0,texturesize,texturesize); - rect += v2s32(x*texturesize, y*texturesize); - driver->draw2DImage(bgtexture, rect, - core::rect(core::position2d(0,0), - core::dimension2di(bgtexture->getSize())), - NULL, NULL, true); - } - } - - video::ITexture *logotexture = - driver->getTexture(getTexturePath("menulogo.png").c_str()); - if(logotexture) - { - v2s32 logosize(logotexture->getOriginalSize().Width, - logotexture->getOriginalSize().Height); - logosize *= 4; - - video::SColor bgcolor(255,50,50,50); - core::rect bgrect(0, screensize.Height-logosize.Y-20, - screensize.Width, screensize.Height); - driver->draw2DRectangle(bgcolor, bgrect, NULL); - - core::rect rect(0,0,logosize.X,logosize.Y); - rect += v2s32(screensize.Width/2,screensize.Height-10-logosize.Y); - rect -= v2s32(logosize.X/2, 0); - driver->draw2DImage(logotexture, rect, - core::rect(core::position2d(0,0), - core::dimension2di(logotexture->getSize())), - NULL, NULL, true); - } -} - -class StderrLogOutput: public ILogOutput -{ -public: - /* line: Full line with timestamp, level and thread */ - void printLog(const std::string &line) - { - std::cerr< allowed_options; allowed_options.insert("help", ValueSpec(VALUETYPE_FLAG, "Show allowed options")); - allowed_options.insert("server", ValueSpec(VALUETYPE_FLAG, - "Run server directly")); allowed_options.insert("config", ValueSpec(VALUETYPE_STRING, "Load configuration from specified file")); allowed_options.insert("port", ValueSpec(VALUETYPE_STRING, - "Set network port to connect to")); - allowed_options.insert("address", ValueSpec(VALUETYPE_STRING, - "Address to connect to")); - allowed_options.insert("random-input", ValueSpec(VALUETYPE_FLAG, - "Enable random user input, for testing")); + "Set network port (UDP) to use")); allowed_options.insert("disable-unittests", ValueSpec(VALUETYPE_FLAG, "Disable unit tests")); allowed_options.insert("enable-unittests", ValueSpec(VALUETYPE_FLAG, "Enable unit tests")); allowed_options.insert("map-dir", ValueSpec(VALUETYPE_STRING, "Map directory (where everything in the world is stored)")); -#ifdef _WIN32 - allowed_options.insert("dstream-on-stderr", ValueSpec(VALUETYPE_FLAG)); -#endif - allowed_options.insert("speedtests", ValueSpec(VALUETYPE_FLAG, - "Run speed tests")); allowed_options.insert("info-on-stderr", ValueSpec(VALUETYPE_FLAG, "Print debug information to console")); +#ifndef SERVER + allowed_options.insert("speedtests", ValueSpec(VALUETYPE_FLAG, + "Run speed tests")); + allowed_options.insert("address", ValueSpec(VALUETYPE_STRING, + "Address to connect to")); + allowed_options.insert("random-input", ValueSpec(VALUETYPE_FLAG, + "Enable random user input, for testing")); + allowed_options.insert("server", ValueSpec(VALUETYPE_FLAG, + "Run server directly")); +#endif Settings cmd_args; @@ -1145,13 +1161,7 @@ int main(int argc, char *argv[]) Low-level initialization */ - bool disable_stderr = false; -#ifdef _WIN32 - if(cmd_args.getFlag("dstream-on-stderr") == false) - disable_stderr = true; -#endif - - if(cmd_args.getFlag("info-on-stderr")) + if(cmd_args.getFlag("info-on-stderr") || cmd_args.getFlag("speedtests")) log_add_output(&main_stderr_log_out, LMT_INFO); porting::signal_handler_init(); @@ -1170,6 +1180,7 @@ int main(int argc, char *argv[]) #else std::string debugfile = porting::path_user+DIR_DELIM+DEBUGFILE; #endif + bool disable_stderr = false; debugstreams_init(disable_stderr, debugfile.c_str()); // Initialize debug stacks debug_stacks_init(); @@ -1261,13 +1272,6 @@ int main(int argc, char *argv[]) run_tests(); } - /*for(s16 y=-100; y<100; y++) - for(s16 x=-100; x<100; x++) - { - std::cout<__| \\___ >____ > |__| "<drop(); + +#endif // !SERVER END_DEBUG_EXCEPTION_HANDLER(errorstream) -- cgit v1.2.3