EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Development::Server Code Submissions (https://www.eqemulator.org/forums/forumdisplay.php?f=669)
-   -   gcc and namespace fix /EQEmuLoginServer/Client.cpp (https://www.eqemulator.org/forums/showthread.php?t=33639)

orkim 05-26-2011 12:53 PM

gcc and namespace fix /EQEmuLoginServer/Client.cpp
 
This is a little diff to work around gcc and the enum/namespace issue. Apparently from what I've found online gcc doesn't like the namespace identifier in its enums, so you must declare a variable, set it, then compare with that.

If anyone else has a better way to fix this please speak up!

Code:

Index: Client.cpp
===================================================================
--- Client.cpp  (revision 1918)
+++ Client.cpp  (working copy)
@@ -127,7 +127,8 @@
        }

        unsigned int mode = *((unsigned int*)data);
-      if(mode == (unsigned int)LoginMode::lm_from_world)
+      LoginMode myMode = lm_from_world;
+      if(mode == (unsigned int)myMode)
        {
                server_log->Log(log_network, "Session ready indicated logged in from world(unsupported feature), disconnecting.");
                connection->Close();

-ork

lerxst2112 05-26-2011 03:38 PM

You should just be able to do this:

if(mode == (unsigned int)lm_from_world)

Is it actually an error now or still just a warning?

orkim 05-26-2011 03:54 PM

Yes, good call. Making the change you suggested keeps gcc compiling it just fine without allocating another variable for the comparison.

I think this still needs to be committed to SVN though.

Thanks,

-ork

Tabasco 05-26-2011 06:58 PM

It looks like as of gcc 4.4, scoped and strongly typed enums are supported. Just fix the makefile.

Code:

COPTS=$(WFLAGS) -O -g -m32 -pthread -pipe -DEQLAUNCH $(DFLAGS) $(MYSQL_FLAGS) -std=c++0x

orkim 05-26-2011 08:12 PM

Quote:

Originally Posted by Tabasco (Post 200443)
It looks like as of gcc 4.4, scoped and strongly typed enums are supported. Just fix the makefile.

Code:

COPTS=$(WFLAGS) -O -g -m32 -pthread -pipe -DEQLAUNCH $(DFLAGS) $(MYSQL_FLAGS) -std=c++0x

Confirmed. The -std=c++0x flag allowed the desired behavior. Tested with gcc 4.4.3.

Thanks,

-ork


All times are GMT -4. The time now is 03:56 AM.

Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.