Attempt to fix
issue #125. The password pop-up doesn't appear every time when going into the official server anymore, now it only does it when the password is blank. If a user enters an invalid password, the password is set blank to avoid the user going back to the official server just to be rejected. When entering an invalid password, the unknown error dialog doesn't show up anymore, but the connection lost to server one still does. This fixes the bug where the user would be spammed with error messages. The user can also now change his password in the settings page.
# Configure for Qt4
set(QT_MIN_VERSION "4.5.0")
set(QT_USE_QTCORE TRUE)
set(QT_USE_QTGUI TRUE)
set(QT_USE_QTNETWORK TRUE)
set(QT_USE_QTSVG FALSE)
set(QT_USE_QTXML FALSE)
set(QT_USE_QTOPENGL FALSE)
set(QT_USE_QTMAIN TRUE)
find_package(Qt4 REQUIRED)
include(${QT_USE_FILE})
# Configure for SDL
find_package(SDL REQUIRED)
find_package(SDL_mixer REQUIRED)
include_directories(.)
include_directories(${SDL_INCLUDE_DIR})
include_directories(${SDLMIXER_INCLUDE_DIR})
if(UNIX)
# HACK: in freebsd cannot find iconv.h included via SDL.h
include_directories("/usr/local/include")
endif(UNIX)
if(WIN32 AND NOT UNIX)
set(HEDGEWARS_BINDIR ".")
set(HEDGEWARS_DATADIR "../share/")
add_definitions(-DUSE_XFIRE)
else()
set(HEDGEWARS_BINDIR ${CMAKE_INSTALL_PREFIX})
if(DEFINED DATA_INSTALL_DIR)
set(HEDGEWARS_DATADIR ${DATA_INSTALL_DIR})
else()
set(HEDGEWARS_DATADIR ${CMAKE_INSTALL_PREFIX}/share/)
endif()
#only the cocoa version of qt supports building 64 bit apps
if(APPLE AND (CMAKE_OSX_ARCHITECTURES MATCHES "x86_64*") AND (NOT QT_MAC_USE_COCOA))
message(FATAL_ERROR "Building the 64 bit version of Hedgewars *requires* the Cocoa variant of QT on Mac OS X")
endif()
endif()
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/hwconsts.cpp.in ${CMAKE_CURRENT_BINARY_DIR}/hwconsts.cpp)
set(hwfr_src
game.cpp
main.cpp
hwform.cpp
team.cpp
namegen.cpp
teamselect.cpp
teamselhelper.cpp
frameTeam.cpp
vertScrollArea.cpp
gameuiconfig.cpp
ui_hwform.cpp
gamecfgwidget.cpp
pagemain.cpp
pageeditteam.cpp
pagemultiplayer.cpp
pageoptions.cpp
pagenet.cpp
pagenetserver.cpp
pagenetgame.cpp
pageinfo.cpp
pagesingleplayer.cpp
pagetraining.cpp
pagecampaign.cpp
pageselectweapon.cpp
pageingame.cpp
pageroomslist.cpp
pageconnecting.cpp
pagescheme.cpp
pagegamestats.cpp
pageplayrecord.cpp
pageadmin.cpp
pagenettype.cpp
pagedrawmap.cpp
SquareLabel.cpp
hats.cpp
hedgehogerWidget.cpp
hwmap.cpp
mapContainer.cpp
tcpBase.cpp
about.cpp
proto.cpp
fpsedit.cpp
netserver.cpp
newnetclient.cpp
netudpserver.cpp
netudpwidget.cpp
netregister.cpp
netserverslist.cpp
chatwidget.cpp
binds.cpp
SDLs.cpp
${CMAKE_CURRENT_BINARY_DIR}/hwconsts.cpp
selectWeapon.cpp
itemNum.cpp
input_ip.cpp
igbox.cpp
weaponItem.cpp
misc.cpp
ammoSchemeModel.cpp
togglebutton.cpp
bgwidget.cpp
achievements.cpp
qaspectratiolayout.cpp
drawmapwidget.cpp
drawmapscene.cpp
)
#xfire integration
if(WIN32)
set(hwfr_src ${hwfr_src} xfire.cpp ../misc/xfire/xfiregameclient.cpp)
endif(WIN32)
if(MINGW)
# resource compilation for mingw
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/hedgewars_rc.o
COMMAND windres -I ${CMAKE_CURRENT_SOURCE_DIR}
-i ${CMAKE_CURRENT_SOURCE_DIR}/hedgewars.rc
-o ${CMAKE_CURRENT_BINARY_DIR}/hedgewars_rc.o)
set(hwfr_src ${hwfr_src} ${CMAKE_CURRENT_BINARY_DIR}/hedgewars_rc.o)
else(MINGW)
set(hwfr_src ${hwfr_src} hedgewars.rc)
endif(MINGW)
set(hwfr_moc_hdrs
game.h
hats.h
hwform.h
teamselect.h
teamselhelper.h
frameTeam.h
vertScrollArea.h
gameuiconfig.h
gamecfgwidget.h
AbstractPage.h
pagenet.h
pagemultiplayer.h
pagenetserver.h
pageingame.h
pagetraining.h
pageeditteam.h
pageoptions.h
pagemain.h
pageinfo.h
pagesingleplayer.h
pagenettype.h
pageconnecting.h
pagedrawmap.h
pagecampaign.h
pagenetgame.h
pageeditteam.h
pageroomslist.h
pagegamestats.h
pageadmin.h
pagescheme.h
pageselectweapon.h
pageplayrecord.h
SquareLabel.h
hedgehogerWidget.h
hwmap.h
mapContainer.h
tcpBase.h
about.h
proto.h
fpsedit.h
netserver.h
newnetclient.h
netudpserver.h
netudpwidget.h
netregister.h
netserverslist.h
chatwidget.h
SDLs.h
selectWeapon.h
itemNum.h
input_ip.h
igbox.h
weaponItem.h
misc.h
ammoSchemeModel.h
togglebutton.h
bgwidget.h
qaspectratiolayout.h
drawmapwidget.h
drawmapscene.h
)
set(hwfr_hdrs
binds.h
ui_hwform.h
KB.h
hwconsts.h
)
set(hwfr_rez hedgewars.qrc)
qt4_add_resources(hwfr_rez_src ${hwfr_rez})
qt4_wrap_cpp(hwfr_moc_srcs ${hwfr_moc_hdrs})
if(APPLE)
set(hwfr_src ${hwfr_src} InstallController.cpp CocoaInitializer.mm M3Panel.mm M3InstallController.m NSWorkspace_RBAdditions.m)
set(HW_LINK_LIBS IOKit)
if(NOT NOAUTOUPDATE)
find_package(Sparkle)
if(SPARKLE_FOUND)
add_definitions(-DSPARKLE_ENABLED)
set(hwfr_src ${hwfr_src} AutoUpdater.cpp SparkleAutoUpdater.mm)
set(HW_LINK_LIBS ${SPARKLE_LIBRARY} ${HW_LINK_LIBS})
endif()
endif()
endif()
add_executable(hedgewars WIN32
${hwfr_src}
${hwfr_moc_srcs}
${hwfr_hdrs}
${hwfr_rez_src}
)
set(HW_LINK_LIBS
${QT_LIBRARIES}
${SDL_LIBRARY}
${SDLMIXER_LIBRARY}
${HW_LINK_LIBS}
)
if(WIN32 AND NOT UNIX)
if(NOT SDL_LIBRARY)
set(HW_LINK_LIBS ${HW_LINK_LIBS} SDL)
endif()
set( HW_LINK_LIBS
${HW_LINK_LIBS}
ole32
oleaut32
winspool
uuid
)
endif()
target_link_libraries(hedgewars ${HW_LINK_LIBS})
install(PROGRAMS "${EXECUTABLE_OUTPUT_PATH}/hedgewars${CMAKE_EXECUTABLE_SUFFIX}" DESTINATION ${target_dir})