From f651273ebf2a8b11aa01ed1434ecb613177ced6a Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Sun, 2 Aug 2015 16:13:36 +0300 Subject: Add gui mode for dyecmd. Now only basic code added. --- src/Makefile.am | 1551 +++++++++++++++++-------------------- src/actions/actiondef.h | 4 + src/client.h | 6 + src/dyetool/actions/actions.cpp | 109 +++ src/dyetool/actions/chat.cpp | 63 ++ src/dyetool/actions/commands.cpp | 93 +++ src/dyetool/actions/move.cpp | 44 ++ src/dyetool/actions/pets.cpp | 47 ++ src/dyetool/actions/statusbar.cpp | 49 ++ src/dyetool/actions/tabs.cpp | 39 + src/dyetool/actions/target.cpp | 38 + src/dyetool/actions/windows.cpp | 58 ++ src/dyetool/client.cpp | 748 ++++++++++++++++++ src/dyetool/client.h | 126 +++ src/dyetool/dyemain.cpp | 7 +- src/dyetool/gui/viewport.cpp | 290 +++++++ src/dyetool/gui/viewport.h | 220 ++++++ src/eventsmanager.cpp | 26 + src/gui/dialogsmanager.cpp | 23 +- src/gui/gui.cpp | 9 +- src/gui/popupmanager.cpp | 16 + src/gui/popups/popupmenu.h | 3 + src/gui/viewport.h | 6 + src/gui/widgets/browserbox.cpp | 2 + src/gui/widgets/textfield.cpp | 2 + src/gui/widgets/window.cpp | 10 + src/gui/windowmanager.cpp | 15 +- src/input/inputmanager.cpp | 55 +- src/maingui.cpp | 1 + src/net/ipc.cpp | 3 + src/resources/dyepalette.cpp | 5 +- src/resources/resourcemanager.cpp | 14 +- src/soundmanager.cpp | 4 + 33 files changed, 2808 insertions(+), 878 deletions(-) create mode 100644 src/dyetool/actions/actions.cpp create mode 100644 src/dyetool/actions/chat.cpp create mode 100644 src/dyetool/actions/commands.cpp create mode 100644 src/dyetool/actions/move.cpp create mode 100644 src/dyetool/actions/pets.cpp create mode 100644 src/dyetool/actions/statusbar.cpp create mode 100644 src/dyetool/actions/tabs.cpp create mode 100644 src/dyetool/actions/target.cpp create mode 100644 src/dyetool/actions/windows.cpp create mode 100644 src/dyetool/client.cpp create mode 100644 src/dyetool/client.h create mode 100644 src/dyetool/gui/viewport.cpp create mode 100644 src/dyetool/gui/viewport.h diff --git a/src/Makefile.am b/src/Makefile.am index 947896dd6..c4f25e6c3 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -2,235 +2,68 @@ AUTOMAKE_OPTIONS = subdir-objects bin_PROGRAMS = manaplus dyecmd -manaplus_CXXFLAGS = -DPKG_DATADIR=\""$(pkgdatadir)/"\" \ +dyecmd_CXXFLAGS = -DPKG_DATADIR=\""$(pkgdatadir)/"\" \ -DLOCALEDIR=\""$(localedir)"\" \ -Wall -dyecmd_CXXFLAGS = -DPKG_DATADIR=\""$(pkgdatadir)/"\" \ +manaplus_CXXFLAGS = -DPKG_DATADIR=\""$(pkgdatadir)/"\" \ -DLOCALEDIR=\""$(localedir)"\" \ -Wall if ENABLE_PORTABLE -manaplus_CXXFLAGS += -DENABLE_PORTABLE dyecmd_CXXFLAGS += -DENABLE_PORTABLE +manaplus_CXXFLAGS += -DENABLE_PORTABLE endif if ENABLE_CHECKPLUGIN -manaplus_CXXFLAGS += -fplugin=../build/checkplugin.so -fplugin-arg-checkplugin-command=detectnullpointers dyecmd_CXXFLAGS += -fplugin=../build/checkplugin.so -fplugin-arg-checkplugin-command=detectnullpointers +manaplus_CXXFLAGS += -fplugin=../build/checkplugin.so -fplugin-arg-checkplugin-command=detectnullpointers endif if USE_OPENGL -manaplus_CXXFLAGS += -DUSE_OPENGL dyecmd_CXXFLAGS += -DUSE_OPENGL +manaplus_CXXFLAGS += -DUSE_OPENGL endif if ENABLE_MEM_DEBUG -manaplus_CXXFLAGS += -DENABLE_MEM_DEBUG -DDEBUG_DUMP_LEAKS dyecmd_CXXFLAGS += -DENABLE_MEM_DEBUG -DDEBUG_DUMP_LEAKS +manaplus_CXXFLAGS += -DENABLE_MEM_DEBUG -DDEBUG_DUMP_LEAKS manaplus_SOURCES = debug/debug_new.cpp \ debug/debug_new.h \ debug/fast_mutex.h \ debug/static_assert.h +dyecmd_SOURCES = debug/debug_new.cpp \ + debug/debug_new.h \ + debug/fast_mutex.h \ + debug/static_assert.h else manaplus_SOURCES = endif if ENABLE_CILKPLUS -manaplus_CXXFLAGS += -DENABLE_CILKPLUS -fcilkplus -lcilkrts dyecmd_CXXFLAGS += -DENABLE_CILKPLUS -fcilkplus -lcilkrts +manaplus_CXXFLAGS += -DENABLE_CILKPLUS -fcilkplus -lcilkrts endif dyecmd_CXXFLAGS += -DDYECMD -dyecmd_SOURCES = gui/cliprect.cpp \ - gui/color.cpp \ - gui/rect.cpp \ - events/actionevent.h \ - gui/cliprect.h \ - gui/color.h \ - events/event.h \ - gui/rect.h \ - dyetool/dyemain.cpp \ - animatedsprite.cpp \ - animatedsprite.h \ - animationdelayload.cpp \ - animationdelayload.h \ - configuration.cpp \ - configuration.h \ - graphicsmanager.cpp \ - graphicsmanager.h \ - graphicsvertexes.cpp \ - graphicsvertexes.h \ - logger.cpp \ - logger.h \ - navigationmanager.cpp \ - navigationmanager.h \ - settings.cpp \ - settings.h \ - listeners/debugmessagelistener.cpp \ - listeners/debugmessagelistener.h \ - resources/map/walklayer.cpp \ - resources/map/walklayer.h \ - render/graphics.cpp \ - render/graphics.h \ - render/renderers.cpp \ - render/renderers.h \ - render/sdl2softwaregraphics.cpp \ - render/sdl2softwaregraphics.h \ - render/sdl2graphics.cpp \ - render/sdl2graphics.h \ - render/sdlgraphics.cpp \ - render/sdlgraphics.h \ - render/softwaregraphicsdef.hpp \ - render/mgl.cpp \ - render/mgl.h \ - render/mgl.hpp \ - render/mglcheck.h \ - render/mgldefines.h \ - render/mglemu.cpp \ - render/mglemu.h \ - render/mglfunctions.h \ - render/mgltypes.h \ - render/mglx.cpp \ - render/mglx.h \ - render/mglx.hpp \ - render/mglxinit.cpp \ - render/mglxinit.h \ - render/mglxtypes.h \ - render/mobileopenglgraphics.cpp \ - render/mobileopenglgraphics.h \ - render/modernopenglgraphics.cpp \ - render/modernopenglgraphics.h \ - render/normalopenglgraphics.cpp \ - render/normalopenglgraphics.h \ - render/safeopenglgraphics.cpp\ - render/safeopenglgraphics.h \ - render/shaders/shader.cpp \ - render/shaders/shader.h \ - render/shaders/shaderprogram.cpp \ - render/shaders/shaderprogram.h \ - render/shaders/shadersmanager.cpp \ - render/shaders/shadersmanager.h \ - resources/action.cpp \ - resources/action.h \ - resources/animation.cpp \ - resources/animation.h \ - resources/atlasitem.h \ - resources/atlasmanager.cpp \ - resources/atlasmanager.h \ - resources/atlasresource.cpp \ - resources/atlasresource.h \ - resources/db/palettedb.cpp \ - resources/db/palettedb.h \ - resources/delayedmanager.cpp \ - resources/delayedmanager.h \ - resources/dye.cpp \ - resources/dye.h \ - resources/dyepalette.cpp \ - resources/dyepalette.h \ - resources/effectdescription.h \ - resources/emoteinfo.h \ - resources/emotesprite.h \ - resources/equipmentslots.h \ - resources/image.cpp \ - resources/image.h \ - resources/imagehelper.cpp \ - resources/imagehelper.h \ - resources/imagerect.h \ - resources/imageset.cpp \ - resources/imageset.h \ - resources/imagewriter.cpp \ - resources/imagewriter.h \ - resources/openglimagehelper.cpp \ - resources/openglimagehelper.h \ - resources/resource.cpp \ - resources/resource.h \ - resources/resourcemanager.cpp \ - resources/resourcemanager.h \ - resources/sdl2softwareimagehelper.cpp \ - resources/sdl2softwareimagehelper.h \ - resources/sdl2imagehelper.cpp \ - resources/sdl2imagehelper.h \ - resources/sdlimagehelper.cpp \ - resources/sdlimagehelper.h \ - resources/sdlmusic.cpp \ - resources/sdlmusic.h \ - resources/soundeffect.cpp \ - resources/soundeffect.h \ - resources/subimage.cpp \ - resources/subimage.h \ - resources/surfaceimagehelper.cpp \ - resources/surfaceimagehelper.h \ - resources/textureatlas.h \ - resources/updatefile.h \ - resources/spritedef.cpp \ - resources/spritedef.h \ - resources/spritedisplay.h \ - resources/spritereference.h \ - test/testmain.cpp \ - test/testmain.h \ - utils/env.cpp \ - utils/env.h \ - utils/gettext.h \ - utils/gettexthelper.cpp \ - utils/gettexthelper.h \ - utils/glxhelper.cpp \ - utils/glxhelper.h \ - utils/files.cpp \ - utils/files.h \ - utils/mkdir.cpp \ - utils/mkdir.h \ - utils/paths.cpp \ - utils/paths.h \ - utils/perfomance.cpp \ - utils/perfomance.h \ - utils/physfsrwops.cpp \ - utils/physfsrwops.h \ - utils/physfstools.cpp \ - utils/physfstools.h \ - utils/physfscheckutils.cpp \ - utils/physfscheckutils.h \ - utils/physfsmemoryobject.h \ - utils/process.cpp \ - utils/process.h \ - utils/sdl2helper.cpp \ - utils/sdl2helper.h \ - utils/sdlcheckutils.cpp \ - utils/sdlcheckutils.h \ - utils/sdlhelper.cpp \ - utils/sdlhelper.h \ - utils/sdlmemoryobject.h \ - utils/stringmap.h \ - utils/stringutils.cpp \ - utils/stringutils.h \ - utils/timer.cpp \ - utils/timer.h \ - utils/xml.cpp \ - utils/xml.h \ - utils/xmlutils.cpp \ - utils/xmlutils.h \ - utils/translation/podict.cpp \ - utils/translation/podict.h +dyecmd_SOURCES = dyetool/dyemain.cpp if USE_MUMBLE manaplus_CXXFLAGS += -DUSE_MUMBLE endif if ENABLE_CHECKS -manaplus_CXXFLAGS += -DENABLE_CHECKS dyecmd_CXXFLAGS += -DENABLE_CHECKS +manaplus_CXXFLAGS += -DENABLE_CHECKS endif +SRC = + if USE_SDL2 if USE_INTERNALSDLGFX dyecmd_CXXFLAGS += -I$(srcdir)/sdl2gfx -DUSE_SDL2 -dyecmd_SOURCES += sdl2gfx/SDL2_framerate.c \ - sdl2gfx/SDL2_framerate.h \ - sdl2gfx/SDL2_rotozoom.c \ - sdl2gfx/SDL2_rotozoom.h - manaplus_CXXFLAGS += -I$(srcdir)/sdl2gfx -DUSE_SDL2 -manaplus_SOURCES += sdl2gfx/SDL2_framerate.c \ +SRC += sdl2gfx/SDL2_framerate.c \ sdl2gfx/SDL2_framerate.h \ sdl2gfx/SDL2_rotozoom.c \ sdl2gfx/SDL2_rotozoom.h @@ -240,8 +73,10 @@ manaplus_CXXFLAGS += -DUSE_SDL2 endif endif -manaplus_SOURCES += events/actionevent.h \ +SRC += events/actionevent.h \ listeners/actionlistener.h \ + listeners/attributelistener.cpp \ + listeners/attributelistener.h \ gui/widgets/basiccontainer.h \ gui/buttoninfo.h \ gui/buttontext.h \ @@ -267,9 +102,8 @@ manaplus_SOURCES += events/actionevent.h \ listeners/debugmessagelistener.h \ listeners/guitableactionlistener.cpp \ listeners/guitableactionlistener.h \ - listeners/inputactionreplaylistener.cpp \ - listeners/inputactionreplaylistener.h \ - listeners/inventorylistener.h \ + listeners/tooltiplistener.cpp \ + listeners/tooltiplistener.h \ render/graphics.h \ events/inputguievent.h \ input/key.h \ @@ -285,21 +119,12 @@ manaplus_SOURCES += events/actionevent.h \ listeners/openurllistener.h \ listeners/playerdeathlistener.cpp \ listeners/playerdeathlistener.h \ - listeners/playerpostdeathlistener.h \ - listeners/playerlistener.cpp \ - listeners/playerlistener.h \ gui/rect.h \ events/selectionevent.h \ listeners/selectionlistener.h \ listeners/statlistener.cpp \ listeners/statlistener.h \ listeners/tablemodellistener.h \ - listeners/tooltiplistener.cpp \ - listeners/tooltiplistener.h \ - listeners/updatestatuslistener.cpp \ - listeners/updatestatuslistener.h \ - listeners/uploadlistener.cpp \ - listeners/uploadlistener.h \ utils/sdlpixel.h \ gui/widgets/widget.h \ listeners/weightlistener.h \ @@ -316,33 +141,12 @@ manaplus_SOURCES += events/actionevent.h \ input/key.cpp \ gui/rect.cpp \ gui/widgets/widget.cpp \ - gui/widgets/basiccontainer2.cpp - -manaplus_SOURCES += gui/widgets/avatarlistbox.cpp \ - gui/widgets/avatarlistbox.h \ - gui/models/avatarlistmodel.h \ - gui/models/beingslistmodel.h \ + gui/widgets/basiccontainer2.cpp \ gui/models/colorlistmodel.h \ - gui/widgets/tabs/chat/battletab.cpp \ - gui/widgets/tabs/chat/battletab.h \ - gui/widgets/tabs/chat/channeltab.cpp \ - gui/widgets/tabs/chat/channeltab.h \ gui/widgets/browserbox.cpp \ gui/widgets/browserbox.h \ gui/widgets/button.cpp \ gui/widgets/button.h \ - gui/widgets/characterdisplay.cpp \ - gui/widgets/characterdisplay.h \ - gui/widgets/characterviewbase.h \ - gui/widgets/characterviewnormal.cpp \ - gui/widgets/characterviewnormal.h \ - gui/widgets/characterviewsmall.cpp \ - gui/widgets/characterviewsmall.h \ - gui/widgets/tabs/chat/chattabtype.h \ - gui/widgets/tabs/debugwindowtabs.cpp \ - gui/widgets/tabs/debugwindowtabs.h \ - gui/widgets/tabs/chat/chattab.cpp \ - gui/widgets/tabs/chat/chattab.h \ gui/widgets/chatinput.h \ gui/widgets/checkbox.cpp \ gui/widgets/checkbox.h \ @@ -359,8 +163,6 @@ manaplus_SOURCES += gui/widgets/avatarlistbox.cpp \ gui/widgets/desktop.h \ gui/widgets/dropdown.cpp \ gui/widgets/dropdown.h \ - gui/widgets/emoteshortcutcontainer.cpp \ - gui/widgets/emoteshortcutcontainer.h \ gui/widgets/equipmentbox.h \ gui/widgets/equipmentpage.h \ gui/widgets/extendedlistbox.cpp \ @@ -378,8 +180,6 @@ manaplus_SOURCES += gui/widgets/avatarlistbox.cpp \ gui/models/langlistmodel.h \ gui/widgets/flowcontainer.cpp \ gui/widgets/flowcontainer.h \ - gui/widgets/tabs/chat/gmtab.cpp \ - gui/widgets/tabs/chat/gmtab.h \ gui/widgets/guitable.cpp \ gui/widgets/guitable.h \ gui/widgets/horizontcontainer.cpp \ @@ -388,23 +188,8 @@ manaplus_SOURCES += gui/widgets/avatarlistbox.cpp \ gui/widgets/icon.h \ gui/widgets/inttextfield.cpp \ gui/widgets/inttextfield.h \ - gui/widgets/itemcontainer.cpp \ - gui/widgets/itemcontainer.h \ - gui/widgets/itemlinkhandler.cpp \ - gui/widgets/itemlinkhandler.h \ - gui/widgets/virtshortcutcontainer.cpp \ - gui/widgets/virtshortcutcontainer.h \ - gui/widgets/emotepage.cpp \ - gui/widgets/emotepage.h \ - gui/widgets/itemshortcutcontainer.cpp \ - gui/widgets/itemshortcutcontainer.h \ - gui/widgets/spellshortcutcontainer.cpp \ - gui/widgets/spellshortcutcontainer.h \ - gui/widgets/statuswindowattrs.h \ gui/widgets/label.cpp \ gui/widgets/label.h \ - gui/widgets/tabs/chat/langtab.cpp \ - gui/widgets/tabs/chat/langtab.h \ gui/widgets/layout.cpp \ gui/widgets/layout.h \ gui/widgets/layoutarray.cpp \ @@ -423,16 +208,9 @@ manaplus_SOURCES += gui/widgets/avatarlistbox.cpp \ gui/models/modelistmodel.h \ gui/models/namesmodel.cpp \ gui/models/namesmodel.h \ - gui/models/opengllistmodel.h \ - gui/models/playerrelationlistmodel.h \ - gui/models/playertablemodel.cpp \ - gui/models/playertablemodel.h \ - gui/models/questsmodel.h \ gui/models/serverslistmodel.h \ gui/widgets/passwordfield.cpp \ gui/widgets/passwordfield.h \ - gui/widgets/playerbox.cpp \ - gui/widgets/playerbox.h \ gui/widgets/popup.cpp \ gui/widgets/popup.h \ gui/widgets/popuplist.cpp \ @@ -447,52 +225,11 @@ manaplus_SOURCES += gui/widgets/avatarlistbox.cpp \ gui/widgets/radiogroup.h \ gui/widgets/scrollarea.cpp \ gui/widgets/scrollarea.h \ - gui/widgets/serverslistbox.h \ - gui/widgets/setupbuttonitem.cpp \ - gui/widgets/setupbuttonitem.h \ - gui/widgets/setupitem.cpp \ - gui/widgets/setupitem.h \ - gui/widgets/setupquickitem.cpp \ - gui/widgets/setupquickitem.h \ - gui/widgets/tabs/setuptab.cpp \ - gui/widgets/tabs/setuptab.h \ - gui/widgets/tabs/setuptabscroll.cpp \ - gui/widgets/tabs/setuptabscroll.h \ - gui/widgets/setuptouchitem.cpp \ - gui/widgets/setuptouchitem.h \ - gui/models/shopitems.cpp \ - gui/models/shopitems.h \ - gui/widgets/shoplistbox.cpp \ - gui/widgets/shoplistbox.h \ - gui/widgets/shortcutcontainer.cpp \ - gui/widgets/shortcutcontainer.h \ - gui/widgets/skilldata.cpp \ - gui/widgets/skilldata.h \ - gui/widgets/skillinfo.cpp \ - gui/widgets/skillinfo.h \ - gui/widgets/skilllistbox.h \ - gui/models/skillmodel.cpp \ - gui/models/skillmodel.h \ - gui/models/sortlistmodelbuy.h \ - gui/models/sortlistmodelinv.h \ gui/models/soundsmodel.h \ gui/widgets/slider.cpp \ gui/widgets/slider.h \ gui/widgets/sliderlist.cpp \ gui/widgets/sliderlist.h \ - gui/widgets/tabs/shortcuttab.h \ - gui/widgets/tabs/skilltab.h \ - gui/widgets/tabs/socialattacktab.h \ - gui/widgets/tabs/socialfriendsfunctor.h \ - gui/widgets/tabs/socialfriendstab.h \ - gui/widgets/tabs/socialguildtab.h \ - gui/widgets/tabs/socialguildtab2.h \ - gui/widgets/tabs/socialnavigationtab.h \ - gui/widgets/tabs/socialpartytab.h \ - gui/widgets/tabs/socialpickuptab.h \ - gui/widgets/tabs/socialplayerstab.h \ - gui/widgets/tabs/socialtab.h \ - gui/widgets/tabs/socialtabbase.h \ gui/widgets/tabs/tab.cpp \ gui/widgets/tabs/tab.h \ gui/widgets/tabbedarea.cpp \ @@ -500,12 +237,7 @@ manaplus_SOURCES += gui/widgets/avatarlistbox.cpp \ gui/models/tablemodel.cpp \ gui/models/tablemodel.h \ gui/models/targettypemodel.h \ - gui/models/touchactionmodel.cpp \ - gui/models/touchactionmodel.h \ gui/models/typelistmodel.h \ - gui/models/updatetypemodel.h \ - gui/models/updatelistmodel.h \ - gui/models/worldlistmodel.h \ gui/models/themesmodel.h \ gui/widgets/tabstrip.cpp \ gui/widgets/tabstrip.h \ @@ -515,12 +247,8 @@ manaplus_SOURCES += gui/widgets/avatarlistbox.cpp \ gui/widgets/textfield.h \ gui/widgets/textpreview.cpp \ gui/widgets/textpreview.h \ - gui/widgets/tabs/chat/tradetab.cpp \ - gui/widgets/tabs/chat/tradetab.h \ gui/widgets/vertcontainer.cpp \ gui/widgets/vertcontainer.h \ - gui/widgets/tabs/chat/whispertab.cpp \ - gui/widgets/tabs/chat/whispertab.h \ gui/widgets/widget2.h \ gui/widgets/widgetgroup.cpp \ gui/widgets/widgetgroup.h \ @@ -528,151 +256,23 @@ manaplus_SOURCES += gui/widgets/avatarlistbox.cpp \ gui/widgets/window.h \ gui/widgets/windowcontainer.cpp \ gui/widgets/windowcontainer.h \ - gui/popups/beingpopup.cpp \ - gui/popups/beingpopup.h \ - gui/popups/createpartypopup.h \ - gui/windows/buydialog.cpp \ - gui/windows/buydialog.h \ - gui/windows/buyselldialog.cpp \ - gui/windows/buyselldialog.h \ - gui/windows/changeemaildialog.cpp \ - gui/windows/changeemaildialog.h \ - gui/windows/changepassworddialog.cpp \ - gui/windows/changepassworddialog.h \ - gui/windows/charselectdialog.cpp \ - gui/windows/charselectdialog.h \ - gui/windows/charcreatedialog.cpp \ - gui/windows/charcreatedialog.h \ - gui/windows/chardeleteconfirm.h \ - gui/windows/chatwindow.cpp \ - gui/windows/chatwindow.h \ gui/windows/confirmdialog.cpp \ gui/windows/confirmdialog.h \ - gui/windows/connectiondialog.cpp \ - gui/windows/connectiondialog.h \ - gui/windows/debugwindow.cpp \ - gui/windows/debugwindow.h \ - gui/windows/didyouknowwindow.cpp \ - gui/windows/didyouknowwindow.h \ - gui/windows/editdialog.cpp \ - gui/windows/editdialog.h \ - gui/windows/editserverdialog.cpp \ - gui/windows/editserverdialog.h \ - gui/windows/emotewindow.cpp \ - gui/windows/emotewindow.h \ - gui/windows/equipmentwindow.cpp \ - gui/windows/equipmentwindow.h \ gui/focushandler.cpp \ gui/focushandler.h \ gui/gui.cpp \ gui/gui.h \ gui/mailmessage.h \ - gui/windows/helpwindow.cpp \ - gui/windows/helpwindow.h \ - gui/windows/inventorywindow.cpp \ - gui/windows/inventorywindow.h \ - gui/windows/itemamountwindow.cpp \ - gui/windows/itemamountwindow.h \ - gui/popups/itempopup.cpp \ - gui/popups/itempopup.h \ - gui/popups/spellpopup.cpp \ - gui/popups/spellpopup.h \ - gui/popups/statuspopup.cpp \ - gui/popups/statuspopup.h \ - gui/popups/textboxpopup.cpp \ - gui/popups/textboxpopup.h \ - gui/windows/killstats.cpp \ - gui/windows/killstats.h \ - gui/windows/logindialog.cpp \ - gui/windows/logindialog.h \ - gui/windows/minimap.cpp \ - gui/windows/minimap.h \ - gui/windows/ministatuswindow.cpp \ - gui/windows/ministatuswindow.h \ - gui/windows/npcdialog.cpp \ - gui/windows/npcdialog.h \ - gui/windows/npcselldialog.cpp \ - gui/windows/npcselldialog.h \ gui/windows/okdialog.cpp \ gui/windows/okdialog.h \ - gui/windows/outfitwindow.cpp \ - gui/windows/outfitwindow.h \ - gui/windows/textcommandeditor.cpp \ - gui/windows/textcommandeditor.h \ gui/onlineplayer.h \ gui/palette.cpp \ gui/palette.h \ - gui/popupmanager.cpp \ - gui/popupmanager.h \ - gui/popups/popupmenu.cpp \ - gui/popups/popupmenu.h \ - gui/popups/skillpopup.cpp \ - gui/popups/skillpopup.h \ - gui/windows/questswindow.cpp \ - gui/windows/questswindow.h \ - gui/windows/quitdialog.cpp \ - gui/windows/quitdialog.h \ - gui/windows/registerdialog.cpp \ - gui/windows/registerdialog.h \ gui/sdlinput.cpp \ gui/sdlinput.h \ - gui/widgets/selldialog.cpp \ - gui/widgets/selldialog.h \ - gui/windows/serverdialog.cpp \ - gui/windows/serverdialog.h \ - gui/windows/setupwindow.cpp \ - gui/windows/setupwindow.h \ - gui/widgets/tabs/setup_audio.cpp \ - gui/widgets/tabs/setup_audio.h \ - gui/widgets/tabs/setup_colors.cpp \ - gui/widgets/tabs/setup_colors.h \ - gui/widgets/tabs/setup_joystick.cpp \ - gui/widgets/tabs/setup_joystick.h \ - gui/widgets/tabs/setup_mods.cpp \ - gui/widgets/tabs/setup_mods.h \ - gui/widgets/tabs/setup_other.cpp \ - gui/widgets/tabs/setup_other.h \ - gui/widgets/tabs/setup_theme.cpp \ - gui/widgets/tabs/setup_theme.h \ - gui/widgets/tabs/setup_touch.cpp \ - gui/widgets/tabs/setup_touch.h \ - gui/widgets/tabs/setup_chat.cpp \ - gui/widgets/tabs/setup_chat.h \ - gui/widgets/tabs/setup_input.cpp \ - gui/widgets/tabs/setup_input.h \ - gui/widgets/tabs/setup_perfomance.cpp \ - gui/widgets/tabs/setup_perfomance.h \ - gui/widgets/tabs/setup_players.cpp \ - gui/widgets/tabs/setup_players.h \ - gui/widgets/tabs/setup_quick.cpp \ - gui/widgets/tabs/setup_quick.h \ - gui/widgets/tabs/setup_relations.cpp \ - gui/widgets/tabs/setup_relations.h \ - gui/widgets/tabs/setup_video.cpp \ - gui/widgets/tabs/setup_video.h \ - gui/widgets/tabs/setup_visual.cpp \ - gui/widgets/tabs/setup_visual.h \ + gui/windows/editdialog.cpp \ + gui/windows/editdialog.h \ gui/setupactiondata.h \ - gui/setupinputpages.cpp \ - gui/setupinputpages.h \ - input/pages/basic.cpp \ - input/pages/basic.h \ - input/pages/chat.cpp \ - input/pages/chat.h \ - input/pages/emotes.cpp \ - input/pages/emotes.h \ - input/pages/gui.cpp \ - input/pages/gui.h \ - input/pages/move.cpp \ - input/pages/move.h \ - input/pages/other.cpp \ - input/pages/other.h \ - input/pages/outfits.cpp \ - input/pages/outfits.h \ - input/pages/shortcuts.cpp \ - input/pages/shortcuts.h \ - input/pages/windows.cpp \ - input/pages/windows.h \ gui/fonts/font.cpp \ gui/fonts/font.h \ gui/fonts/textchunk.cpp \ @@ -681,22 +281,6 @@ manaplus_SOURCES += gui/widgets/avatarlistbox.cpp \ gui/fonts/textchunklist.h \ gui/fonts/textchunksmall.cpp \ gui/fonts/textchunksmall.h \ - gui/windows/shopwindow.cpp \ - gui/windows/shopwindow.h \ - gui/windows/shortcutwindow.cpp \ - gui/windows/shortcutwindow.h \ - gui/windows/skilldialog.cpp \ - gui/windows/skilldialog.h \ - gui/windows/socialwindow.cpp \ - gui/windows/socialwindow.h \ - gui/popups/speechbubble.cpp \ - gui/popups/speechbubble.h \ - gui/windows/statuswindow.cpp \ - gui/windows/statuswindow.h \ - gui/windows/textdialog.cpp \ - gui/windows/textdialog.h \ - gui/popups/textpopup.cpp \ - gui/popups/textpopup.h \ gui/skin.cpp \ gui/skin.h \ gui/theme.cpp \ @@ -704,130 +288,37 @@ manaplus_SOURCES += gui/widgets/avatarlistbox.cpp \ gui/themecolorsidoperators.cpp \ gui/themecolorsidoperators.h \ gui/themeinfo.h \ - gui/touchactiondata.cpp \ - gui/touchactiondata.h \ - gui/windows/tradewindow.cpp \ - gui/windows/tradewindow.h \ - gui/windows/unregisterdialog.cpp \ - gui/windows/unregisterdialog.h \ - gui/windows/updaterwindow.cpp \ - gui/windows/updaterwindow.h \ gui/userpalette.cpp \ gui/userpalette.h \ - gui/viewport.cpp \ - gui/viewport.h \ gui/windowmanager.cpp \ gui/windowmanager.h \ - gui/windows/whoisonline.cpp \ - gui/windows/whoisonline.h \ - gui/windowmenu.cpp \ - gui/windowmenu.h \ - gui/windows/worldselectdialog.cpp \ - gui/windows/worldselectdialog.h \ - net/adminhandler.h \ - net/beinghandler.h \ - net/buysellhandler.h \ - net/character.h \ - net/charserverhandler.cpp \ - net/charserverhandler.h \ - net/chathandler.h \ - net/download.cpp \ - net/download.h \ enums/net/auctionsearchtype.h \ enums/net/battlegroundtype.h \ enums/net/downloadstatus.h \ enums/net/packettype.h \ - net/gamehandler.h \ - net/generalhandler.h \ - net/guildhandler.h \ - net/inventoryhandler.h \ - net/ipc.cpp \ - net/ipc.h \ - net/ea/inventoryitem.h \ - net/logindata.h \ - net/loginhandler.h \ - net/messagehandler.h \ - net/messagein.cpp \ - net/messagein.h \ - net/messageout.cpp \ - net/messageout.h \ - net/net.cpp \ - net/net.h \ - net/netconsts.h \ - net/npchandler.h \ - net/partyhandler.h \ enums/net/partyshare.h \ enums/net/servertype.h \ enums/net/storesearchtype.h \ - net/pethandler.h \ - net/playerhandler.h \ - net/questhandler.h \ - net/registrationoptions.h \ - net/sdltcpnet.cpp \ - net/sdltcpnet.h \ - net/serverfeatures.h \ - net/serverinfo.h \ - net/skillhandler.h \ - net/tradehandler.h \ - net/updatetypeoperators.cpp \ - net/updatetypeoperators.h \ enums/net/updatetype.h \ - net/uploadcharinfo.h \ - net/worldinfo.h \ - net/packetcounters.cpp \ - net/packetcounters.h \ - net/packetdefine.h \ - net/packetlimiter.cpp \ - net/packetlimiter.h \ resources/action.cpp \ resources/action.h \ resources/ambientlayer.cpp \ resources/ambientlayer.h \ - resources/animation.cpp \ - resources/animation.h \ resources/atlasitem.h \ resources/atlasmanager.cpp \ resources/atlasmanager.h \ resources/atlasresource.cpp \ resources/atlasresource.h \ resources/attack.h \ - resources/db/avatardb.cpp \ - resources/db/avatardb.h \ - resources/db/badgesdb.cpp \ - resources/db/badgesdb.h \ - resources/beingcommon.cpp \ - resources/beingcommon.h \ - resources/beinginfo.cpp \ - resources/beinginfo.h \ - resources/beingmenuitem.h \ - resources/chatobject.cpp \ - resources/chatobject.h \ - resources/db/chardb.cpp \ - resources/db/chardb.h \ - resources/db/colordb.cpp \ - resources/db/colordb.h \ - resources/db/commandsdb.cpp \ - resources/db/commandsdb.h \ resources/cursor.cpp \ resources/cursor.h \ - resources/delayedmanager.cpp \ - resources/delayedmanager.h \ - resources/db/deaddb.cpp \ - resources/db/deaddb.h \ resources/dye.cpp \ resources/dye.h \ resources/dyecolor.h \ resources/dyepalette.cpp \ resources/dyepalette.h \ - resources/db/emotedb.cpp \ - resources/db/emotedb.h \ - resources/db/homunculusdb.cpp \ - resources/db/homunculusdb.h \ - resources/db/horsedb.cpp \ - resources/db/horsedb.h \ resources/fboinfo.h \ resources/frame.h \ - resources/horseinfo.h \ resources/image.cpp \ resources/image.h \ resources/imagehelper.cpp \ @@ -836,47 +327,17 @@ manaplus_SOURCES += gui/widgets/avatarlistbox.cpp \ resources/imageset.h \ resources/imagewriter.cpp \ resources/imagewriter.h \ - resources/db/itemdb.cpp \ - resources/db/itemdb.h \ - resources/db/itemdbstat.h \ - resources/iteminfo.h \ - resources/iteminfo.cpp \ - resources/itemslot.h \ - enums/resources/itemsoundevent.h \ - resources/itemtype.h \ - resources/itemtypemap.h \ - resources/itemtypemapdata.h \ - resources/db/mapdb.cpp \ - resources/db/mapdb.h \ - resources/db/mercenarydb.cpp \ - resources/db/mercenarydb.h \ - resources/db/moddb.cpp \ - resources/db/moddb.h \ - resources/mapinfo.h \ - enums/resources/map/mapitemtype.h \ - resources/mapreader.cpp \ - resources/mapreader.h \ - resources/modinfo.cpp \ - resources/modinfo.h \ resources/mstack.h \ resources/notificationinfo.h \ resources/notifications.h \ enums/resources/notifyflags.h \ enums/resources/notifytypes.h \ - resources/db/monsterdb.cpp \ - resources/db/monsterdb.h \ - resources/db/npcdb.cpp \ - resources/db/npcdb.h \ resources/openglimagehelper.cpp \ resources/openglimagehelper.h \ resources/questeffect.h \ resources/questitem.h \ resources/questitemtext.h \ resources/questtype.h \ - resources/db/palettedb.cpp \ - resources/db/palettedb.h \ - resources/db/petdb.cpp \ - resources/db/petdb.h \ resources/resource.cpp \ resources/resource.h \ resources/resourcemanager.cpp \ @@ -892,10 +353,6 @@ manaplus_SOURCES += gui/widgets/avatarlistbox.cpp \ resources/skillconsts.h \ resources/skillowner.h \ resources/skilltype.h \ - resources/db/sounddb.cpp \ - resources/db/sounddb.h \ - resources/db/weaponsdb.cpp \ - resources/db/weaponsdb.h \ resources/soundeffect.cpp \ resources/soundeffect.h \ resources/soundinfo.h \ @@ -919,8 +376,6 @@ manaplus_SOURCES += gui/widgets/avatarlistbox.cpp \ utils/base64.cpp \ utils/base64.h \ utils/booleanoptions.h \ - utils/chatutils.cpp \ - utils/chatutils.h \ utils/checkutils.cpp \ utils/checkutils.h \ utils/copynpaste.cpp \ @@ -982,79 +437,11 @@ manaplus_SOURCES += gui/widgets/avatarlistbox.cpp \ test/testmain.h \ actions/actiondef.h \ actions/actionfuncptr.h \ - actions/actions.cpp \ - actions/actions.h \ - actions/chat.cpp \ - actions/chat.h \ - actions/commands.cpp \ - actions/commands.h \ - actions/move.cpp \ - actions/move.h \ - actions/pets.cpp \ - actions/pets.h \ - actions/statusbar.cpp \ - actions/statusbar.h \ - actions/tabs.cpp \ - actions/tabs.h \ - actions/target.cpp \ - actions/target.h \ - actions/windows.cpp \ - actions/windows.h \ - being/actor.cpp \ - being/actor.h \ - being/actorsprite.cpp \ - being/actorsprite.h \ - enums/being/actortype.h \ - enums/being/attacktype.h \ - enums/being/attributes.h \ - listeners/actorspritelistener.h \ - listeners/arrowslistener.cpp \ - listeners/arrowslistener.h \ - listeners/attributelistener.cpp \ - listeners/attributelistener.h \ - listeners/awaylistener.cpp \ - listeners/awaylistener.h \ listeners/baselistener.hpp \ - listeners/charrenamelistener.cpp \ - listeners/charrenamelistener.h \ - actormanager.cpp \ - actormanager.h \ - animatedsprite.cpp \ - animatedsprite.h \ - animationdelayload.cpp \ - animationdelayload.h \ - particle/animationparticle.cpp \ - particle/animationparticle.h \ - avatar.cpp \ - avatar.h \ - being/being.cpp \ - being/being.h \ - enums/being/beingaction.h \ - being/beingcacheentry.h \ - enums/being/beingdirection.h \ - being/beingflag.h \ - being/beingspeech.h \ - beingequipbackend.cpp \ - beingequipbackend.h \ - spellmanager.cpp \ - spellmanager.h \ - catch.hpp \ - chatlogger.cpp \ - chatlogger.h \ - client.cpp \ - client.h \ commandline.cpp \ commandline.h \ configmanager.cpp \ configmanager.h \ - being/compounditem.h \ - being/compoundsprite.cpp \ - being/compoundsprite.h \ - being/crazymoves.cpp \ - being/crazymoves.h \ - enums/being/cookingtype.h \ - enums/being/gender.h \ - being/homunculusinfo.h \ listeners/configlistener.h \ configuration.cpp \ configuration.h \ @@ -1063,55 +450,16 @@ manaplus_SOURCES += gui/widgets/avatarlistbox.cpp \ defaults.h \ dirs.cpp \ dirs.h \ - dragdrop.h \ - dropshortcut.cpp \ - dropshortcut.h \ - effectmanager.cpp \ - effectmanager.h \ - emoteshortcut.cpp \ - emoteshortcut.h \ - emoteshortcutconsts.h \ - equipment.h \ eventsmanager.cpp \ eventsmanager.h \ - flooritem.cpp \ - flooritem.h \ - game.cpp \ - game.h \ - gamemodifiers.cpp \ - gamemodifiers.h \ render/graphics.cpp \ render/graphics.h \ graphicsmanager.cpp \ graphicsmanager.h \ graphicsvertexes.cpp \ graphicsvertexes.h \ - guild.cpp \ - guild.h \ - enums/dragdropsource.h \ - enums/equipslot.h \ - enums/guildpositionflags.h \ - enums/inventorytype.h \ - particle/imageparticle.cpp \ - particle/imageparticle.h \ - imagesprite.cpp \ - imagesprite.h \ - inventory.cpp \ - inventory.h \ - item.cpp \ - item.h \ - itemshortcut.cpp \ - itemshortcut.h \ - itemsoundmanager.cpp \ - itemsoundmanager.h \ - spellshortcut.cpp \ - spellshortcut.h \ - textcommand.cpp \ - textcommand.h \ events/inputevent.h \ - enums/input/inputaction.h \ input/inputactiondata.h \ - input/inputactionmap.h \ input/inputactionoperators.cpp \ input/inputactionoperators.h \ input/inputactionsortfunctor.h \ @@ -1129,17 +477,623 @@ manaplus_SOURCES += gui/widgets/avatarlistbox.cpp \ input/multitouchmanager.cpp \ input/multitouchmanager.h \ localconsts.h \ - being/localplayer.cpp \ - being/localplayer.h \ - being/mercenaryinfo.h \ - being/petinfo.h \ - enums/being/pickup.h \ logger.cpp \ logger.h \ - main.cpp \ - main.h \ maingui.cpp \ maingui.h \ + render/mgl.cpp \ + render/mgl.h \ + render/mgl.hpp \ + render/mglcheck.h \ + render/mgldefines.h \ + render/mglemu.cpp \ + render/mglemu.h \ + render/mglfunctions.h \ + render/mgltypes.h \ + render/mglx.cpp \ + render/mglx.h \ + render/mglx.hpp \ + render/mglxinit.cpp \ + render/mglxinit.h \ + render/mglxtypes.h \ + render/mobileopenglgraphics.cpp \ + render/mobileopenglgraphics.h \ + render/modernopenglgraphics.cpp \ + render/modernopenglgraphics.h \ + render/normalopenglgraphics.cpp \ + render/normalopenglgraphics.h \ + input/mouseinput.h \ + options.h \ + render/graphicsdef.hpp \ + render/imagegraphics.cpp \ + render/imagegraphics.h \ + render/graphics_calcImageRect.hpp \ + render/graphics_drawImageRect.hpp \ + render/nullopenglgraphics.cpp \ + render/nullopenglgraphics.h \ + render/opengldebug.h \ + render/openglgraphicsdef.hpp \ + render/openglgraphicsdef1.hpp \ + render/openglgraphicsdefadvanced.hpp \ + render/renderers.cpp \ + render/renderers.h \ + render/rendererslistsdl.h \ + render/rendererslistsdl2.h \ + enums/render/blitmode.h \ + enums/render/rendertype.h \ + being/playerignorestrategy.h \ + enums/being/rank.h \ + enums/being/reachable.h \ + enums/being/relation.h \ + enums/being/targetcursorsize.h \ + enums/being/targetcursortype.h \ + position.cpp \ + position.h \ + render/safeopenglgraphics.cpp\ + render/safeopenglgraphics.h \ + render/sdl2graphics.cpp \ + render/sdl2graphics.h \ + render/sdl2softwaregraphics.cpp \ + render/sdl2softwaregraphics.h \ + render/sdlgraphics.cpp \ + render/sdlgraphics.h \ + render/softwaregraphicsdef.hpp \ + sdlshared.h \ + settings.cpp \ + settings.h \ + enums/screendensity.h \ + enums/state.h \ + enums/simpletypes/allowsort.h \ + enums/simpletypes/allplayers.h \ + enums/simpletypes/beingid.h \ + enums/simpletypes/beingtypeid.h \ + enums/simpletypes/booldefines.h \ + enums/simpletypes/damaged.h \ + enums/simpletypes/enable.h \ + enums/simpletypes/enumdefines.h \ + enums/simpletypes/equipm.h \ + enums/simpletypes/equipped.h \ + enums/simpletypes/favorite.h \ + enums/simpletypes/forcedisplay.h \ + enums/simpletypes/identified.h \ + enums/simpletypes/ignorerecord.h \ + enums/simpletypes/intdefines.h \ + enums/simpletypes/keep.h \ + enums/simpletypes/modal.h \ + enums/simpletypes/modifiable.h \ + enums/simpletypes/move.h \ + enums/simpletypes/notify.h \ + enums/simpletypes/npcnames.h \ + enums/simpletypes/online.h \ + enums/simpletypes/sfx.h \ + enums/simpletypes/showcenter.h \ + enums/simpletypes/skiperror.h \ + enums/simpletypes/speech.h \ + enums/simpletypes/trading.h \ + enums/simpletypes/tryremovecolors.h \ + enums/simpletypes/useargs.h \ + enums/simpletypes/useresman.h \ + enums/simpletypes/visible.h \ + render/surfacegraphics.cpp \ + render/surfacegraphics.h \ + render/shaders/shader.cpp \ + render/shaders/shader.h \ + render/shaders/shaderprogram.cpp \ + render/shaders/shaderprogram.h \ + render/shaders/shadersmanager.cpp \ + render/shaders/shadersmanager.h \ + resources/animation.cpp \ + resources/animation.h \ + simpleanimation.cpp \ + simpleanimation.h \ + sprite.h \ + soundconsts.h \ + soundmanager.cpp \ + soundmanager.h \ + text.cpp \ + text.h \ + textmanager.cpp \ + textmanager.h \ + touchactions.cpp \ + touchactions.h \ + touchmanager.cpp \ + touchmanager.h \ + variabledata.h \ + vector.cpp \ + vector.h \ + net/ipc.cpp \ + net/ipc.h \ + net/sdltcpnet.cpp \ + net/sdltcpnet.h \ + gui/popups/textboxpopup.cpp \ + gui/popups/textboxpopup.h \ + gui/popups/textpopup.cpp \ + gui/popups/textpopup.h \ + gui/popupmanager.cpp \ + gui/popupmanager.h \ + enums/input/inputaction.h \ + input/inputactionmap.h \ + winver.h + +dyecmd_SOURCES += ${SRC} +manaplus_SOURCES += ${SRC} + +manaplus_SOURCES += main.cpp \ + main.h \ + avatar.cpp \ + avatar.h \ + actormanager.cpp \ + actormanager.h \ + animatedsprite.cpp \ + animatedsprite.h \ + animationdelayload.cpp \ + animationdelayload.h \ + actions/actions.cpp \ + actions/actions.h \ + actions/chat.cpp \ + actions/chat.h \ + actions/commands.cpp \ + actions/commands.h \ + actions/move.cpp \ + actions/move.h \ + actions/pets.cpp \ + actions/pets.h \ + actions/statusbar.cpp \ + actions/statusbar.h \ + actions/tabs.cpp \ + actions/tabs.h \ + actions/target.cpp \ + actions/target.h \ + actions/windows.cpp \ + actions/windows.h \ + client.cpp \ + client.h \ + imagesprite.cpp \ + imagesprite.h \ + inventory.cpp \ + inventory.h \ + textcommand.cpp \ + textcommand.h \ + item.cpp \ + item.h \ + itemshortcut.cpp \ + itemshortcut.h \ + itemsoundmanager.cpp \ + itemsoundmanager.h \ + enums/dragdropsource.h \ + enums/equipslot.h \ + enums/guildpositionflags.h \ + enums/inventorytype.h \ + spellshortcut.cpp \ + spellshortcut.h \ + statuseffect.cpp \ + statuseffect.h \ + units.cpp \ + units.h \ + particle/animationparticle.cpp \ + particle/animationparticle.h \ + being/being.cpp \ + being/being.h \ + enums/being/beingaction.h \ + being/beingcacheentry.h \ + enums/being/beingdirection.h \ + being/beingflag.h \ + being/beingspeech.h \ + being/localplayer.cpp \ + being/localplayer.h \ + being/mercenaryinfo.h \ + being/petinfo.h \ + being/compounditem.h \ + being/compoundsprite.cpp \ + being/compoundsprite.h \ + being/crazymoves.cpp \ + being/crazymoves.h \ + enums/being/cookingtype.h \ + enums/being/gender.h \ + being/homunculusinfo.h \ + enums/being/pickup.h \ + beingequipbackend.cpp \ + beingequipbackend.h \ + shopitem.cpp \ + shopitem.h \ + flooritem.cpp \ + flooritem.h \ + game.cpp \ + game.h \ + gamemodifiers.cpp \ + gamemodifiers.h \ + guild.cpp \ + guild.h \ + spellmanager.cpp \ + spellmanager.h \ + catch.hpp \ + chatlogger.cpp \ + chatlogger.h \ + shortcutbase.cpp \ + shortcutbase.h \ + being/playerinfo.cpp \ + being/playerinfo.h \ + being/playerrelation.cpp \ + being/playerrelation.h \ + being/playerrelations.cpp \ + being/playerrelations.h \ + gui/touchactiondata.cpp \ + gui/touchactiondata.h \ + gui/models/avatarlistmodel.h \ + gui/models/beingslistmodel.h \ + gui/models/opengllistmodel.h \ + gui/models/playerrelationlistmodel.h \ + gui/models/playertablemodel.cpp \ + gui/models/playertablemodel.h \ + gui/models/questsmodel.h \ + being/actor.cpp \ + being/actor.h \ + being/actorsprite.cpp \ + being/actorsprite.h \ + enums/being/actortype.h \ + enums/being/attacktype.h \ + enums/being/attributes.h \ + dragdrop.h \ + dropshortcut.cpp \ + dropshortcut.h \ + effectmanager.cpp \ + effectmanager.h \ + emoteshortcut.cpp \ + emoteshortcut.h \ + emoteshortcutconsts.h \ + equipment.h \ + listeners/actorspritelistener.h \ + listeners/arrowslistener.cpp \ + listeners/arrowslistener.h \ + listeners/awaylistener.cpp \ + listeners/awaylistener.h \ + listeners/charrenamelistener.cpp \ + listeners/charrenamelistener.h \ + gui/viewport.cpp \ + gui/viewport.h \ + gui/popups/itempopup.cpp \ + gui/popups/itempopup.h \ + gui/popups/spellpopup.cpp \ + gui/popups/spellpopup.h \ + gui/popups/statuspopup.cpp \ + gui/popups/statuspopup.h \ + gui/popups/popupmenu.cpp \ + gui/popups/popupmenu.h \ + gui/popups/skillpopup.cpp \ + gui/popups/skillpopup.h \ + gui/popups/speechbubble.cpp \ + gui/popups/speechbubble.h \ + gui/popups/beingpopup.cpp \ + gui/popups/beingpopup.h \ + gui/popups/createpartypopup.h \ + gui/widgets/itemcontainer.cpp \ + gui/widgets/itemcontainer.h \ + gui/widgets/tabs/chat/battletab.cpp \ + gui/widgets/tabs/chat/battletab.h \ + gui/widgets/tabs/chat/channeltab.cpp \ + gui/widgets/tabs/chat/channeltab.h \ + gui/widgets/tabs/chat/chattabtype.h \ + gui/widgets/tabs/debugwindowtabs.cpp \ + gui/widgets/tabs/debugwindowtabs.h \ + gui/widgets/tabs/chat/chattab.cpp \ + gui/widgets/tabs/chat/chattab.h \ + gui/widgets/tabs/chat/gmtab.cpp \ + gui/widgets/tabs/chat/gmtab.h \ + gui/widgets/tabs/chat/langtab.cpp \ + gui/widgets/tabs/chat/langtab.h \ + gui/widgets/tabs/chat/tradetab.cpp \ + gui/widgets/tabs/chat/tradetab.h \ + gui/widgets/tabs/chat/whispertab.cpp \ + gui/widgets/tabs/chat/whispertab.h \ + gui/widgets/tabs/chat/guildtab.cpp \ + gui/widgets/tabs/chat/guildtab.h \ + gui/widgets/tabs/chat/partytab.cpp \ + gui/widgets/tabs/chat/partytab.h \ + gui/widgets/avatarlistbox.cpp \ + gui/widgets/avatarlistbox.h \ + gui/widgets/characterdisplay.cpp \ + gui/widgets/characterdisplay.h \ + gui/widgets/characterviewbase.h \ + gui/widgets/characterviewnormal.cpp \ + gui/widgets/characterviewnormal.h \ + gui/widgets/characterviewsmall.cpp \ + gui/widgets/characterviewsmall.h \ + gui/widgets/itemlinkhandler.cpp \ + gui/widgets/itemlinkhandler.h \ + gui/widgets/emoteshortcutcontainer.cpp \ + gui/widgets/emoteshortcutcontainer.h \ + gui/widgets/virtshortcutcontainer.cpp \ + gui/widgets/virtshortcutcontainer.h \ + gui/widgets/emotepage.cpp \ + gui/widgets/emotepage.h \ + gui/widgets/itemshortcutcontainer.cpp \ + gui/widgets/itemshortcutcontainer.h \ + gui/widgets/spellshortcutcontainer.cpp \ + gui/widgets/spellshortcutcontainer.h \ + gui/widgets/statuswindowattrs.h \ + gui/widgets/selldialog.cpp \ + gui/widgets/selldialog.h \ + gui/widgets/tabs/setup_audio.cpp \ + gui/widgets/tabs/setup_audio.h \ + gui/widgets/tabs/setup_colors.cpp \ + gui/widgets/tabs/setup_colors.h \ + gui/widgets/tabs/setup_joystick.cpp \ + gui/widgets/tabs/setup_joystick.h \ + gui/widgets/tabs/setup_mods.cpp \ + gui/widgets/tabs/setup_mods.h \ + gui/widgets/tabs/setup_other.cpp \ + gui/widgets/tabs/setup_other.h \ + gui/widgets/tabs/setup_theme.cpp \ + gui/widgets/tabs/setup_theme.h \ + gui/widgets/tabs/setup_touch.cpp \ + gui/widgets/tabs/setup_touch.h \ + gui/widgets/tabs/setup_chat.cpp \ + gui/widgets/tabs/setup_chat.h \ + gui/widgets/tabs/setup_input.cpp \ + gui/widgets/tabs/setup_input.h \ + gui/widgets/tabs/setup_perfomance.cpp \ + gui/widgets/tabs/setup_perfomance.h \ + gui/widgets/tabs/setup_players.cpp \ + gui/widgets/tabs/setup_players.h \ + gui/widgets/tabs/setup_quick.cpp \ + gui/widgets/tabs/setup_quick.h \ + gui/widgets/tabs/setup_relations.cpp \ + gui/widgets/tabs/setup_relations.h \ + gui/widgets/tabs/setup_video.cpp \ + gui/widgets/tabs/setup_video.h \ + gui/widgets/tabs/setup_visual.cpp \ + gui/widgets/tabs/setup_visual.h \ + gui/widgets/serverslistbox.h \ + gui/widgets/setupbuttonitem.cpp \ + gui/widgets/setupbuttonitem.h \ + gui/widgets/setupitem.cpp \ + gui/widgets/setupitem.h \ + gui/widgets/setupquickitem.cpp \ + gui/widgets/setupquickitem.h \ + gui/widgets/tabs/setuptab.cpp \ + gui/widgets/tabs/setuptab.h \ + gui/widgets/tabs/setuptabscroll.cpp \ + gui/widgets/tabs/setuptabscroll.h \ + gui/widgets/setuptouchitem.cpp \ + gui/widgets/setuptouchitem.h \ + gui/widgets/playerbox.cpp \ + gui/widgets/playerbox.h \ + gui/models/shopitems.cpp \ + gui/models/shopitems.h \ + gui/widgets/shoplistbox.cpp \ + gui/widgets/shoplistbox.h \ + gui/widgets/shortcutcontainer.cpp \ + gui/widgets/shortcutcontainer.h \ + gui/widgets/skilldata.cpp \ + gui/widgets/skilldata.h \ + gui/widgets/skillinfo.cpp \ + gui/widgets/skillinfo.h \ + gui/widgets/skilllistbox.h \ + gui/widgets/tabs/shortcuttab.h \ + gui/widgets/tabs/skilltab.h \ + gui/widgets/tabs/socialattacktab.h \ + gui/widgets/tabs/socialfriendsfunctor.h \ + gui/widgets/tabs/socialfriendstab.h \ + gui/widgets/tabs/socialguildtab.h \ + gui/widgets/tabs/socialguildtab2.h \ + gui/widgets/tabs/socialnavigationtab.h \ + gui/widgets/tabs/socialpartytab.h \ + gui/widgets/tabs/socialpickuptab.h \ + gui/widgets/tabs/socialplayerstab.h \ + gui/widgets/tabs/socialtab.h \ + gui/widgets/tabs/socialtabbase.h \ + gui/models/skillmodel.cpp \ + gui/models/skillmodel.h \ + gui/models/sortlistmodelbuy.h \ + gui/models/sortlistmodelinv.h \ + gui/models/touchactionmodel.cpp \ + gui/models/touchactionmodel.h \ + gui/models/updatetypemodel.h \ + gui/models/updatelistmodel.h \ + gui/models/worldlistmodel.h \ + gui/windowmenu.cpp \ + gui/windowmenu.h \ + gui/windows/tradewindow.cpp \ + gui/windows/tradewindow.h \ + gui/windows/unregisterdialog.cpp \ + gui/windows/unregisterdialog.h \ + gui/windows/updaterwindow.cpp \ + gui/windows/updaterwindow.h \ + gui/windows/whoisonline.cpp \ + gui/windows/whoisonline.h \ + gui/windows/worldselectdialog.cpp \ + gui/windows/worldselectdialog.h \ + gui/windows/shopwindow.cpp \ + gui/windows/shopwindow.h \ + gui/windows/shortcutwindow.cpp \ + gui/windows/shortcutwindow.h \ + gui/windows/skilldialog.cpp \ + gui/windows/skilldialog.h \ + gui/windows/socialwindow.cpp \ + gui/windows/socialwindow.h \ + gui/windows/statuswindow.cpp \ + gui/windows/statuswindow.h \ + gui/windows/textdialog.cpp \ + gui/windows/textdialog.h \ + gui/windows/setupwindow.cpp \ + gui/windows/setupwindow.h \ + gui/windows/serverdialog.cpp \ + gui/windows/serverdialog.h \ + gui/windows/quitdialog.cpp \ + gui/windows/quitdialog.h \ + gui/windows/questswindow.cpp \ + gui/windows/questswindow.h \ + gui/windows/registerdialog.cpp \ + gui/windows/registerdialog.h \ + gui/windows/buydialog.cpp \ + gui/windows/buydialog.h \ + gui/windows/buyselldialog.cpp \ + gui/windows/buyselldialog.h \ + gui/windows/changeemaildialog.cpp \ + gui/windows/changeemaildialog.h \ + gui/windows/changepassworddialog.cpp \ + gui/windows/changepassworddialog.h \ + gui/windows/charselectdialog.cpp \ + gui/windows/charselectdialog.h \ + gui/windows/charcreatedialog.cpp \ + gui/windows/charcreatedialog.h \ + gui/windows/chardeleteconfirm.h \ + gui/windows/chatwindow.cpp \ + gui/windows/chatwindow.h \ + gui/windows/connectiondialog.cpp \ + gui/windows/connectiondialog.h \ + gui/windows/debugwindow.cpp \ + gui/windows/debugwindow.h \ + gui/windows/didyouknowwindow.cpp \ + gui/windows/didyouknowwindow.h \ + gui/windows/editserverdialog.cpp \ + gui/windows/editserverdialog.h \ + gui/windows/emotewindow.cpp \ + gui/windows/emotewindow.h \ + gui/windows/equipmentwindow.cpp \ + gui/windows/equipmentwindow.h \ + gui/windows/helpwindow.cpp \ + gui/windows/helpwindow.h \ + gui/windows/inventorywindow.cpp \ + gui/windows/inventorywindow.h \ + gui/windows/itemamountwindow.cpp \ + gui/windows/itemamountwindow.h \ + gui/windows/killstats.cpp \ + gui/windows/killstats.h \ + gui/windows/logindialog.cpp \ + gui/windows/logindialog.h \ + gui/windows/minimap.cpp \ + gui/windows/minimap.h \ + gui/windows/ministatuswindow.cpp \ + gui/windows/ministatuswindow.h \ + gui/windows/npcdialog.cpp \ + gui/windows/npcdialog.h \ + gui/windows/npcselldialog.cpp \ + gui/windows/npcselldialog.h \ + gui/windows/outfitwindow.cpp \ + gui/windows/outfitwindow.h \ + gui/windows/textcommandeditor.cpp \ + gui/windows/textcommandeditor.h \ + gui/setupinputpages.cpp \ + gui/setupinputpages.h \ + input/pages/basic.cpp \ + input/pages/basic.h \ + input/pages/chat.cpp \ + input/pages/chat.h \ + input/pages/emotes.cpp \ + input/pages/emotes.h \ + input/pages/gui.cpp \ + input/pages/gui.h \ + input/pages/move.cpp \ + input/pages/move.h \ + input/pages/other.cpp \ + input/pages/other.h \ + input/pages/outfits.cpp \ + input/pages/outfits.h \ + input/pages/shortcuts.cpp \ + input/pages/shortcuts.h \ + input/pages/windows.cpp \ + input/pages/windows.h \ + listeners/playerpostdeathlistener.h \ + listeners/inputactionreplaylistener.cpp \ + listeners/inputactionreplaylistener.h \ + listeners/inventorylistener.h \ + listeners/updatestatuslistener.cpp \ + listeners/updatestatuslistener.h \ + listeners/uploadlistener.cpp \ + listeners/uploadlistener.h \ + listeners/playerlistener.cpp \ + listeners/playerlistener.h \ + listeners/playerrelationslistener.h \ + listeners/renamelistener.cpp \ + listeners/renamelistener.h \ + listeners/requesttradelistener.h \ + particle/rotationalparticle.cpp \ + particle/rotationalparticle.h \ + navigationmanager.cpp \ + navigationmanager.h \ + notifymanager.cpp \ + notifymanager.h \ + particle/imageparticle.cpp \ + particle/imageparticle.h \ + particle/particle.cpp \ + particle/particle.h \ + particle/particlecontainer.cpp \ + particle/particlecontainer.h \ + particle/particleemitter.cpp \ + particle/particleemitter.h \ + particle/particleemitterprop.h \ + particle/particleinfo.h \ + particle/particlelist.cpp \ + particle/particlelist.h \ + particle/particlevector.cpp \ + particle/particlevector.h \ + party.cpp \ + party.h \ + utils/chatutils.cpp \ + utils/chatutils.h \ + resources/db/avatardb.cpp \ + resources/db/avatardb.h \ + resources/db/badgesdb.cpp \ + resources/db/badgesdb.h \ + resources/db/chardb.cpp \ + resources/db/chardb.h \ + resources/db/colordb.cpp \ + resources/db/colordb.h \ + resources/db/commandsdb.cpp \ + resources/db/commandsdb.h \ + resources/db/deaddb.cpp \ + resources/db/deaddb.h \ + resources/db/emotedb.cpp \ + resources/db/emotedb.h \ + resources/db/homunculusdb.cpp \ + resources/db/homunculusdb.h \ + resources/db/horsedb.cpp \ + resources/db/horsedb.h \ + resources/db/itemdb.cpp \ + resources/db/itemdb.h \ + resources/db/itemdbstat.h \ + resources/db/mapdb.cpp \ + resources/db/mapdb.h \ + resources/db/mercenarydb.cpp \ + resources/db/mercenarydb.h \ + resources/db/moddb.cpp \ + resources/db/moddb.h \ + resources/db/monsterdb.cpp \ + resources/db/monsterdb.h \ + resources/db/npcdb.cpp \ + resources/db/npcdb.h \ + resources/db/palettedb.cpp \ + resources/db/palettedb.h \ + resources/db/petdb.cpp \ + resources/db/petdb.h \ + resources/db/sounddb.cpp \ + resources/db/sounddb.h \ + resources/db/weaponsdb.cpp \ + resources/db/weaponsdb.h \ + resources/iteminfo.h \ + resources/iteminfo.cpp \ + resources/itemslot.h \ + enums/resources/itemsoundevent.h \ + resources/itemtype.h \ + resources/itemtypemap.h \ + resources/itemtypemapdata.h \ + resources/mapinfo.h \ + enums/resources/map/mapitemtype.h \ + resources/mapreader.cpp \ + resources/mapreader.h \ + resources/modinfo.cpp \ + resources/modinfo.h \ + resources/beingcommon.cpp \ + resources/beingcommon.h \ + resources/beinginfo.cpp \ + resources/beinginfo.h \ + resources/beingmenuitem.h \ + resources/chatobject.cpp \ + resources/chatobject.h \ + resources/delayedmanager.cpp \ + resources/delayedmanager.h \ + resources/horseinfo.h \ enums/resources/map/blockmask.h \ enums/resources/map/blocktype.h \ resources/map/location.h \ @@ -1159,177 +1113,59 @@ manaplus_SOURCES += gui/widgets/avatarlistbox.cpp \ resources/map/metatile.h \ resources/map/objectslayer.cpp \ resources/map/objectslayer.h \ - render/mgl.cpp \ - render/mgl.h \ - render/mgl.hpp \ - render/mglcheck.h \ - render/mgldefines.h \ - render/mglemu.cpp \ - render/mglemu.h \ - render/mglfunctions.h \ - render/mgltypes.h \ - render/mglx.cpp \ - render/mglx.h \ - render/mglx.hpp \ - render/mglxinit.cpp \ - render/mglxinit.h \ - render/mglxtypes.h \ - render/mobileopenglgraphics.cpp \ - render/mobileopenglgraphics.h \ - render/modernopenglgraphics.cpp \ - render/modernopenglgraphics.h \ - render/normalopenglgraphics.cpp \ - render/normalopenglgraphics.h \ - input/mouseinput.h \ - navigationmanager.cpp \ - navigationmanager.h \ - notifymanager.cpp \ - notifymanager.h \ - options.h \ - render/graphicsdef.hpp \ - render/imagegraphics.cpp \ - render/imagegraphics.h \ - render/graphics_calcImageRect.hpp \ - render/graphics_drawImageRect.hpp \ - render/nullopenglgraphics.cpp \ - render/nullopenglgraphics.h \ - render/opengldebug.h \ - render/openglgraphicsdef.hpp \ - render/openglgraphicsdef1.hpp \ - render/openglgraphicsdefadvanced.hpp \ - render/renderers.cpp \ - render/renderers.h \ - render/rendererslistsdl.h \ - render/rendererslistsdl2.h \ - enums/render/blitmode.h \ - enums/render/rendertype.h \ - particle/particle.cpp \ - particle/particle.h \ - particle/particlecontainer.cpp \ - particle/particlecontainer.h \ - particle/particleemitter.cpp \ - particle/particleemitter.h \ - particle/particleemitterprop.h \ - particle/particleinfo.h \ - particle/particlelist.cpp \ - particle/particlelist.h \ - particle/particlevector.cpp \ - particle/particlevector.h \ - party.cpp \ - party.h \ - being/playerignorestrategy.h \ - being/playerinfo.cpp \ - being/playerinfo.h \ - being/playerrelation.cpp \ - being/playerrelation.h \ - being/playerrelations.cpp \ - being/playerrelations.h \ - enums/being/rank.h \ - enums/being/reachable.h \ - enums/being/relation.h \ - enums/being/targetcursorsize.h \ - enums/being/targetcursortype.h \ - listeners/playerrelationslistener.h \ - listeners/renamelistener.cpp \ - listeners/renamelistener.h \ - listeners/requesttradelistener.h \ - position.cpp \ - position.h \ + particle/textparticle.cpp \ + particle/textparticle.h \ resources/map/properties.h \ resources/map/speciallayer.cpp \ resources/map/speciallayer.h \ resources/map/tileanimation.cpp \ resources/map/tileanimation.h \ - particle/rotationalparticle.cpp \ - particle/rotationalparticle.h \ - render/safeopenglgraphics.cpp\ - render/safeopenglgraphics.h \ - render/sdl2graphics.cpp \ - render/sdl2graphics.h \ - render/sdl2softwaregraphics.cpp \ - render/sdl2softwaregraphics.h \ - render/sdlgraphics.cpp \ - render/sdlgraphics.h \ - render/softwaregraphicsdef.hpp \ - sdlshared.h \ - settings.cpp \ - settings.h \ - shopitem.cpp \ - shopitem.h \ - shortcutbase.cpp \ - shortcutbase.h \ - simpleanimation.cpp \ - simpleanimation.h \ - soundconsts.h \ - soundmanager.cpp \ - soundmanager.h \ - sprite.h \ - enums/screendensity.h \ - enums/state.h \ - enums/simpletypes/allowsort.h \ - enums/simpletypes/allplayers.h \ - enums/simpletypes/beingid.h \ - enums/simpletypes/beingtypeid.h \ - enums/simpletypes/booldefines.h \ - enums/simpletypes/damaged.h \ - enums/simpletypes/enable.h \ - enums/simpletypes/enumdefines.h \ - enums/simpletypes/equipm.h \ - enums/simpletypes/equipped.h \ - enums/simpletypes/favorite.h \ - enums/simpletypes/forcedisplay.h \ - enums/simpletypes/identified.h \ - enums/simpletypes/ignorerecord.h \ - enums/simpletypes/intdefines.h \ - enums/simpletypes/keep.h \ - enums/simpletypes/modal.h \ - enums/simpletypes/modifiable.h \ - enums/simpletypes/move.h \ - enums/simpletypes/notify.h \ - enums/simpletypes/npcnames.h \ - enums/simpletypes/online.h \ - enums/simpletypes/sfx.h \ - enums/simpletypes/showcenter.h \ - enums/simpletypes/skiperror.h \ - enums/simpletypes/speech.h \ - enums/simpletypes/trading.h \ - enums/simpletypes/tryremovecolors.h \ - enums/simpletypes/useargs.h \ - enums/simpletypes/useresman.h \ - enums/simpletypes/visible.h \ - statuseffect.cpp \ - statuseffect.h \ - render/surfacegraphics.cpp \ - render/surfacegraphics.h \ - render/shaders/shader.cpp \ - render/shaders/shader.h \ - render/shaders/shaderprogram.cpp \ - render/shaders/shaderprogram.h \ - render/shaders/shadersmanager.cpp \ - render/shaders/shadersmanager.h \ - text.cpp \ - text.h \ - textmanager.cpp \ - textmanager.h \ - particle/textparticle.cpp \ - particle/textparticle.h \ resources/map/tileset.h \ - touchactions.cpp \ - touchactions.h \ - touchmanager.cpp \ - touchmanager.h \ - units.cpp \ - units.h \ - variabledata.h \ - vector.cpp \ - vector.h \ resources/map/walklayer.cpp \ resources/map/walklayer.h \ - winver.h \ - gui/widgets/tabs/chat/guildtab.cpp \ - gui/widgets/tabs/chat/guildtab.h \ - gui/widgets/tabs/chat/partytab.cpp \ - gui/widgets/tabs/chat/partytab.h \ + net/adminhandler.h \ + net/beinghandler.h \ + net/buysellhandler.h \ + net/character.h \ + net/charserverhandler.cpp \ + net/charserverhandler.h \ + net/chathandler.h \ + net/download.cpp \ + net/download.h \ + net/gamehandler.h \ + net/generalhandler.h \ + net/guildhandler.h \ + net/inventoryhandler.h \ + net/ea/inventoryitem.h \ + net/logindata.h \ + net/loginhandler.h \ + net/messagehandler.h \ + net/messagein.cpp \ + net/messagein.h \ + net/messageout.cpp \ + net/messageout.h \ + net/net.cpp \ + net/net.h \ + net/netconsts.h \ + net/npchandler.h \ + net/partyhandler.h \ + net/pethandler.h \ + net/playerhandler.h \ + net/questhandler.h \ + net/registrationoptions.h \ + net/serverfeatures.h \ + net/serverinfo.h \ + net/skillhandler.h \ + net/tradehandler.h \ + net/updatetypeoperators.cpp \ + net/updatetypeoperators.h \ + net/uploadcharinfo.h \ + net/worldinfo.h \ + net/packetcounters.cpp \ + net/packetcounters.h \ + net/packetdefine.h \ + net/packetlimiter.cpp \ + net/packetlimiter.h \ net/ea/adminhandler.cpp \ net/ea/adminhandler.h \ net/ea/beinghandler.cpp \ @@ -1600,6 +1436,29 @@ manaplus_SOURCES += \ mumblemanager.cpp \ mumblemanager.h +dyecmd_SOURCES += dyetool/gui/viewport.cpp \ + dyetool/gui/viewport.h \ + dyetool/client.cpp \ + dyetool/client.h \ + dyetool/actions/actions.cpp \ + dyetool/actions/actions.h \ + dyetool/actions/chat.cpp \ + dyetool/actions/chat.h \ + dyetool/actions/commands.cpp \ + dyetool/actions/commands.h \ + dyetool/actions/move.cpp \ + dyetool/actions/move.h \ + dyetool/actions/pets.cpp \ + dyetool/actions/pets.h \ + dyetool/actions/statusbar.cpp \ + dyetool/actions/statusbar.h \ + dyetool/actions/tabs.cpp \ + dyetool/actions/tabs.h \ + dyetool/actions/target.cpp \ + dyetool/actions/target.h \ + dyetool/actions/windows.cpp \ + dyetool/actions/windows.h + if ENABLE_UNITTESTS TESTS = manaplustests check_PROGRAMS = manaplustests diff --git a/src/actions/actiondef.h b/src/actions/actiondef.h index 6957f0f00..ec10520a0 100644 --- a/src/actions/actiondef.h +++ b/src/actions/actiondef.h @@ -28,6 +28,10 @@ #define impHandler(name) bool name(InputEvent &event) #define impHandler0(name) bool name(InputEvent &event A_UNUSED) +#define impHandlerVoid(name) bool name(InputEvent &event A_UNUSED) \ + { \ + return false; \ + } #define callYellowBar(name) \ GameModifiers::name(!inputManager.isActionActive( \ diff --git a/src/client.h b/src/client.h index 089ac06a3..95607ba08 100644 --- a/src/client.h +++ b/src/client.h @@ -23,6 +23,11 @@ #ifndef CLIENT_H #define CLIENT_H +#ifdef DYECMD +#include "dyetool/client.h" + +#else + #include "enums/state.h" #include "listeners/actionlistener.h" @@ -151,4 +156,5 @@ extern Client *client; extern unsigned int mLastHost; extern unsigned long mSearchHash; +#endif // DYECMD #endif // CLIENT_H diff --git a/src/dyetool/actions/actions.cpp b/src/dyetool/actions/actions.cpp new file mode 100644 index 000000000..046cd9c97 --- /dev/null +++ b/src/dyetool/actions/actions.cpp @@ -0,0 +1,109 @@ +/* + * The ManaPlus Client + * Copyright (C) 2012-2015 The ManaPlus Developers + * + * This file is part of The ManaPlus Client. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "actions/actions.h" + +#include "actions/actiondef.h" + +#include "debug.h" + +namespace Actions +{ + +impHandlerVoid(emote) +impHandlerVoid(outfit) +impHandlerVoid(mouseClick) +impHandlerVoid(ok) +impHandlerVoid(shortcut) +impHandlerVoid(quit) +impHandlerVoid(dropItem0) +impHandlerVoid(dropItem) +impHandlerVoid(dropItemId) +impHandlerVoid(dropItemInv) +impHandlerVoid(dropItemIdAll) +impHandlerVoid(dropItemInvAll) +impHandlerVoid(heal) +impHandlerVoid(healmd) +impHandlerVoid(itenplz) +impHandlerVoid(setHome) +impHandlerVoid(magicAttack) +impHandlerVoid(copyEquippedToOutfit) +impHandlerVoid(pickup) +impHandlerVoid(sit) +impHandlerVoid(screenshot) +impHandlerVoid(ignoreInput) +impHandlerVoid(buy) +impHandlerVoid(sell) +impHandlerVoid(talk) +impHandlerVoid(stopAttack) +impHandlerVoid(untarget) +impHandlerVoid(attack) +impHandlerVoid(targetAttack) +impHandlerVoid(attackHuman) +impHandlerVoid(safeVideoMode) +impHandlerVoid(stopSit) +impHandlerVoid(showKeyboard) +impHandlerVoid(showWindows) +impHandlerVoid(openTrade) +impHandlerVoid(ipcToggle) +impHandlerVoid(where) +impHandlerVoid(who) +impHandlerVoid(cleanGraphics) +impHandlerVoid(cleanFonts) +impHandlerVoid(trade) +impHandlerVoid(priceLoad) +impHandlerVoid(priceSave) +impHandlerVoid(cacheInfo) +impHandlerVoid(disconnect) +impHandlerVoid(undress) +impHandlerVoid(dirs) +impHandlerVoid(uptime) +impHandlerVoid(dump) +impHandlerVoid(serverIgnoreAll) +impHandlerVoid(serverUnIgnoreAll) +impHandler0(error) +{ + exit(0); +} +impHandlerVoid(dumpGraphics) +impHandlerVoid(dumpEnvironment) +impHandlerVoid(dumpTests) +impHandlerVoid(dumpOGL) +impHandlerVoid(dumpGL) +impHandlerVoid(dumpMods) +#if defined USE_OPENGL && defined DEBUG_SDLFONT +impHandlerVoid(testSdlFont) +#endif +impHandlerVoid(createItems) +impHandlerVoid(uploadConfig) +impHandlerVoid(uploadServerConfig) +impHandlerVoid(uploadLog) +impHandlerVoid(mercenaryFire) +impHandlerVoid(useItem) +impHandlerVoid(useItemInv) +impHandlerVoid(invToStorage) +impHandlerVoid(tradeAdd) +impHandlerVoid(storageToInv) +impHandlerVoid(protectItem) +impHandlerVoid(unprotectItem) +impHandlerVoid(kick) +impHandlerVoid(clearDrop) + +} // namespace Actions diff --git a/src/dyetool/actions/chat.cpp b/src/dyetool/actions/chat.cpp new file mode 100644 index 000000000..70bc09034 --- /dev/null +++ b/src/dyetool/actions/chat.cpp @@ -0,0 +1,63 @@ +/* + * The ManaPlus Client + * Copyright (C) 2012-2015 The ManaPlus Developers + * + * This file is part of The ManaPlus Client. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "actions/chat.h" + +#include "actions/actiondef.h" + +#include "debug.h" + +namespace Actions +{ + +impHandlerVoid(toggleChat) +impHandlerVoid(prevChatTab) +impHandlerVoid(nextChatTab) +impHandlerVoid(closeChatTab) +impHandlerVoid(closeAllChatTabs) +impHandlerVoid(ignoreAllWhispers) +impHandlerVoid(scrollChatUp) +impHandlerVoid(scrollChatDown) +impHandlerVoid(msg) +impHandlerVoid(msgText) +impHandlerVoid(msg2) +impHandlerVoid(query) +impHandlerVoid(clearChatTab) +impHandlerVoid(createParty) +impHandlerVoid(createGuild) +impHandlerVoid(party) +impHandlerVoid(guild) +impHandlerVoid(me) +impHandlerVoid(toggle) +impHandlerVoid(kickParty) +impHandlerVoid(kickGuild) +impHandlerVoid(addText) +impHandlerVoid(clearChat) +impHandlerVoid(chatGeneralTab) +impHandlerVoid(chatDebugTab) +impHandlerVoid(chatBattleTab) +impHandlerVoid(chatTradeTab) +impHandlerVoid(chatLangTab) +impHandlerVoid(chatGmTab) +impHandlerVoid(chatPartyTab) +impHandlerVoid(chatGuildTab) +impHandlerVoid(hat) + +} // namespace Actions diff --git a/src/dyetool/actions/commands.cpp b/src/dyetool/actions/commands.cpp new file mode 100644 index 000000000..1820e3038 --- /dev/null +++ b/src/dyetool/actions/commands.cpp @@ -0,0 +1,93 @@ +/* + * The ManaPlus Client + * Copyright (C) 2012-2015 The ManaPlus Developers + * + * This file is part of The ManaPlus Client. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "actions/commands.h" + +#include "actions/actiondef.h" + +#include "debug.h" + +namespace Actions +{ + +impHandlerVoid(chatAnnounce) +impHandlerVoid(chatIgnore) +impHandlerVoid(chatUnignore) +impHandlerVoid(chatErase) +impHandlerVoid(chatFriend) +impHandlerVoid(chatDisregard) +impHandlerVoid(chatNeutral) +impHandlerVoid(chatBlackList) +impHandlerVoid(chatEnemy) +impHandlerVoid(chatNuke) +impHandlerVoid(chatAdd) +impHandlerVoid(present) +impHandlerVoid(printAll) +impHandlerVoid(move) +impHandlerVoid(setTarget) +impHandlerVoid(commandOutfit) +impHandlerVoid(commandEmote) +impHandlerVoid(awayMessage) +impHandlerVoid(pseudoAway) +impHandlerVoid(follow) +impHandlerVoid(navigate) +impHandlerVoid(navigateTo) +impHandlerVoid(moveCamera) +impHandlerVoid(imitation) +impHandlerVoid(sendMail) +impHandlerVoid(info) +impHandlerVoid(wait) +impHandlerVoid(addPriorityAttack) +impHandlerVoid(addAttack) +impHandlerVoid(removeAttack) +impHandlerVoid(addIgnoreAttack) +impHandlerVoid(setDrop) +impHandlerVoid(url) +impHandlerVoid(openUrl) +impHandlerVoid(execute) +impHandlerVoid(enableHighlight) +impHandlerVoid(disableHighlight) +impHandlerVoid(dontRemoveName) +impHandlerVoid(removeName) +impHandlerVoid(disableAway) +impHandlerVoid(enableAway) +impHandlerVoid(testParticle) +impHandlerVoid(talkRaw) +impHandlerVoid(gm) +impHandlerVoid(hack) +impHandlerVoid(debugSpawn) +impHandlerVoid(serverIgnoreWhisper) +impHandlerVoid(serverUnIgnoreWhisper) +impHandlerVoid(setHomunculusName) +impHandlerVoid(fireHomunculus) +impHandlerVoid(leaveParty) +impHandlerVoid(warp) +impHandlerVoid(homunTalk) +impHandlerVoid(homunEmote) +impHandlerVoid(commandHomunEmote) +impHandlerVoid(createPublicChatRoom) +impHandlerVoid(joinChatRoom) +impHandlerVoid(leaveChatRoom) +impHandlerVoid(confSet) +impHandlerVoid(serverConfSet) +impHandlerVoid(confGet) +impHandlerVoid(serverConfGet) + +} // namespace Actions diff --git a/src/dyetool/actions/move.cpp b/src/dyetool/actions/move.cpp new file mode 100644 index 000000000..2e1a759fa --- /dev/null +++ b/src/dyetool/actions/move.cpp @@ -0,0 +1,44 @@ +/* + * The ManaPlus Client + * Copyright (C) 2012-2015 The ManaPlus Developers + * + * This file is part of The ManaPlus Client. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "actions/move.h" + +#include "actions/actiondef.h" + +#include "debug.h" + +namespace Actions +{ + +impHandlerVoid(moveUp) +impHandlerVoid(moveDown) +impHandlerVoid(moveLeft) +impHandlerVoid(moveRight) +impHandlerVoid(moveForward) +impHandlerVoid(moveToPoint) +impHandlerVoid(crazyMoves) +impHandlerVoid(moveToTarget) +impHandlerVoid(moveToHome) +impHandlerVoid(directUp) +impHandlerVoid(directDown) +impHandlerVoid(directLeft) +impHandlerVoid(directRight) + +} // namespace Actions diff --git a/src/dyetool/actions/pets.cpp b/src/dyetool/actions/pets.cpp new file mode 100644 index 000000000..89b6da30c --- /dev/null +++ b/src/dyetool/actions/pets.cpp @@ -0,0 +1,47 @@ +/* + * The ManaPlus Client + * Copyright (C) 2012-2015 The ManaPlus Developers + * + * This file is part of The ManaPlus Client. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "actions/pets.h" + +#include "actions/actiondef.h" + +#include "debug.h" + +namespace Actions +{ + +impHandlerVoid(commandEmotePet) +impHandlerVoid(talkPet) +impHandlerVoid(setPetName) +impHandlerVoid(petEmote) +impHandlerVoid(catchPet) +impHandlerVoid(petMoveUp) +impHandlerVoid(petMoveDown) +impHandlerVoid(petMoveLeft) +impHandlerVoid(petMoveRight) +impHandlerVoid(petDirectUp) +impHandlerVoid(petDirectDown) +impHandlerVoid(petDirectLeft) +impHandlerVoid(petDirectRight) +impHandlerVoid(petAiStart) +impHandlerVoid(petAiStop) +impHandlerVoid(petMove) + +} // namespace Actions diff --git a/src/dyetool/actions/statusbar.cpp b/src/dyetool/actions/statusbar.cpp new file mode 100644 index 000000000..155bf280c --- /dev/null +++ b/src/dyetool/actions/statusbar.cpp @@ -0,0 +1,49 @@ +/* + * The ManaPlus Client + * Copyright (C) 2012-2015 The ManaPlus Developers + * + * This file is part of The ManaPlus Client. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "actions/statusbar.h" + +#include "actions/actiondef.h" + +#include "debug.h" + +namespace Actions +{ + +impHandlerVoid(switchQuickDrop) +impHandlerVoid(changeCrazyMove) +impHandlerVoid(changePickupType) +impHandlerVoid(changeMoveType) +impHandlerVoid(changeAttackWeaponType) +impHandlerVoid(changeAttackType) +impHandlerVoid(changeTargetingType) +impHandlerVoid(changeFollowMode) +impHandlerVoid(changeImitationMode) +impHandlerVoid(changeMagicAttackType) +impHandlerVoid(changePvpMode) +impHandlerVoid(changeMoveToTarget) +impHandlerVoid(changeGameModifier) +impHandlerVoid(changeAudio) +impHandlerVoid(away) +impHandlerVoid(camera) +impHandlerVoid(changeMapMode) +impHandlerVoid(changeTrade) + +} // namespace Actions diff --git a/src/dyetool/actions/tabs.cpp b/src/dyetool/actions/tabs.cpp new file mode 100644 index 000000000..942de1ba9 --- /dev/null +++ b/src/dyetool/actions/tabs.cpp @@ -0,0 +1,39 @@ +/* + * The ManaPlus Client + * Copyright (C) 2012-2015 The ManaPlus Developers + * + * This file is part of The ManaPlus Client. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "actions/tabs.h" + +#include "actions/actiondef.h" + +#include "debug.h" + +namespace Actions +{ + +impHandlerVoid(prevSocialTab) +impHandlerVoid(nextSocialTab) +impHandlerVoid(nextShortcutsTab) +impHandlerVoid(prevShortcutsTab) +impHandlerVoid(nextCommandsTab) +impHandlerVoid(prevCommandsTab) +impHandlerVoid(nextInvTab) +impHandlerVoid(prevInvTab) + +} // namespace Actions diff --git a/src/dyetool/actions/target.cpp b/src/dyetool/actions/target.cpp new file mode 100644 index 000000000..f3ddd3b2a --- /dev/null +++ b/src/dyetool/actions/target.cpp @@ -0,0 +1,38 @@ +/* + * The ManaPlus Client + * Copyright (C) 2012-2015 The ManaPlus Developers + * + * This file is part of The ManaPlus Client. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "actions/target.h" + +#include "actions/actiondef.h" + +#include "debug.h" + +namespace Actions +{ + +impHandlerVoid(targetPlayer) +impHandlerVoid(targetMonster) +impHandlerVoid(targetClosestMonster) +impHandlerVoid(targetNPC) +impHandlerVoid(targetMercenary) +impHandlerVoid(targetPet) +impHandlerVoid(contextMenu) + +} // namespace Actions diff --git a/src/dyetool/actions/windows.cpp b/src/dyetool/actions/windows.cpp new file mode 100644 index 000000000..37637a3f1 --- /dev/null +++ b/src/dyetool/actions/windows.cpp @@ -0,0 +1,58 @@ +/* + * The ManaPlus Client + * Copyright (C) 2012-2015 The ManaPlus Developers + * + * This file is part of The ManaPlus Client. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "actions/windows.h" + +#include "actions/actiondef.h" + +#include "debug.h" + +namespace Actions +{ + +impHandlerVoid(setupWindowShow) +impHandlerVoid(hideWindows) +impHandlerVoid(helpWindowShow) +impHandlerVoid(aboutWindowShow) +impHandlerVoid(statusWindowShow) +impHandlerVoid(inventoryWindowShow) +impHandlerVoid(equipmentWindowShow) +impHandlerVoid(skillDialogShow) +impHandlerVoid(minimapWindowShow) +impHandlerVoid(chatWindowShow) +impHandlerVoid(shortcutWindowShow) +impHandlerVoid(debugWindowShow) +impHandlerVoid(socialWindowShow) +impHandlerVoid(emoteShortcutWindowShow) +impHandlerVoid(outfitWindowShow) +impHandlerVoid(shopWindowShow) +impHandlerVoid(dropShortcutWindowShow) +impHandlerVoid(killStatsWindowShow) +impHandlerVoid(spellShortcutWindowShow) +impHandlerVoid(whoIsOnlineWindowShow) +impHandlerVoid(didYouKnowWindowShow) +impHandlerVoid(questsWindowShow) +impHandlerVoid(bankWindowShow) +impHandlerVoid(cartWindowShow) +impHandlerVoid(updaterWindowShow) +impHandlerVoid(quickWindowShow) +impHandlerVoid(mailWindowShow) + +} // namespace Actions diff --git a/src/dyetool/client.cpp b/src/dyetool/client.cpp new file mode 100644 index 000000000..85cf216e2 --- /dev/null +++ b/src/dyetool/client.cpp @@ -0,0 +1,748 @@ +/* + * The ManaPlus Client + * Copyright (C) 2004-2009 The Mana World Development Team + * Copyright (C) 2009-2010 The Mana Developers + * Copyright (C) 2011-2015 The ManaPlus Developers + * + * This file is part of The ManaPlus Client. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "client.h" + +#include "chatlogger.h" +#include "configmanager.h" +#include "dirs.h" +#include "dropshortcut.h" +#include "emoteshortcut.h" +#include "eventsmanager.h" +#include "game.h" +#include "graphicsmanager.h" +#include "itemshortcut.h" +#include "party.h" +#include "settings.h" +#include "soundmanager.h" +#include "spellshortcut.h" +#include "statuseffect.h" +#include "units.h" +#include "touchmanager.h" + +#include "being/playerinfo.h" +#include "being/playerrelations.h" + +#include "input/inputmanager.h" +#include "input/joystick.h" +#include "input/keyboardconfig.h" + +#include "gui/dialogsmanager.h" +#include "gui/gui.h" +#include "gui/skin.h" +#include "gui/popupmanager.h" +#include "gui/windowmanager.h" + +#include "gui/widgets/button.h" +#include "gui/widgets/createwidget.h" +#include "gui/widgets/desktop.h" +#include "gui/widgets/windowcontainer.h" +#include "gui/widgets/window.h" + +#include "resources/imagehelper.h" +#include "resources/resourcemanager.h" + +#include "utils/cpu.h" +#include "utils/delete2.h" +#include "utils/env.h" +#include "utils/fuzzer.h" +#include "utils/gettext.h" +#include "utils/gettexthelper.h" +#ifdef ANDROID +#include "utils/paths.h" +#endif +#include "utils/physfstools.h" +#include "utils/sdlcheckutils.h" +#include "utils/timer.h" + +#include "utils/translation/translationmanager.h" + +#include "listeners/errorlistener.h" + +#include "configuration.h" + +#include "net/ipc.h" + +#ifdef WIN32 +#include +#include "utils/specialfolder.h" +#undef ERROR +#endif + +#ifdef ANDROID +#ifndef USE_SDL2 +#include +#include +#endif +#endif + +#include + +#include "debug.h" + +std::string errorMessage; + +Client *client = nullptr; + +extern FPSmanager fpsManager; + +volatile bool runCounters; +bool isSafeMode = false; +int serverVersion = 0; +unsigned int tmwServerVersion = 0; +int start_time; +unsigned int mLastHost = 0; +unsigned long mSearchHash = 0; +int textures_count = 0; + +Client::Client() : + ActionListener(), + mCurrentDialog(nullptr), + mSetupButton(nullptr), + mVideoButton(nullptr), + mHelpButton(nullptr), + mAboutButton(nullptr), + mThemesButton(nullptr), + mPerfomanceButton(nullptr), +#ifdef ANDROID + mCloseButton(nullptr), +#endif + mState(STATE_GAME), + mOldState(STATE_START), + mSkin(nullptr), + mButtonPadding(1), + mButtonSpacing(3), + mPing(0), + mConfigAutoSaved(false) +{ + WindowManager::init(); +} + +void Client::testsInit() +{ +} + +void Client::testsClear() +{ +} + +// +++ need remove duplicate from here +void Client::gameInit() +{ + logger = new Logger; + + // Load branding information + if (!settings.options.brandingPath.empty()) + branding.init(settings.options.brandingPath); + branding.setDefaultValues(getBrandingDefaults()); + + Dirs::initRootDir(); + Dirs::initHomeDir(); + + // Configure logger + if (!settings.options.logFileName.empty()) + settings.logFileName = settings.options.logFileName; + else + settings.logFileName = settings.localDataDir + "/manaplus.log"; + logger->setLogFile(settings.logFileName); + +#ifdef USE_FUZZER + Fuzzer::init(); +#endif + ConfigManager::backupConfig("config.xml"); + ConfigManager::initConfiguration(); + paths.setDefaultValues(getPathsDefaults()); + logger->log("init 4"); + logger->setDebugLog(config.getBoolValue("debugLog")); + logger->setReportUnimplimented(config.getBoolValue("unimplimentedLog")); + + config.incValue("runcount"); + +#ifndef ANDROID + if (settings.options.test.empty()) + ConfigManager::storeSafeParameters(); +#endif + + const ResourceManager *const resman = ResourceManager::getInstance(); + if (!resman->setWriteDir(settings.localDataDir)) + { + logger->error(strprintf("%s couldn't be set as home directory! " + "Exiting.", settings.localDataDir.c_str())); + } + + GettextHelper::initLang(); + +// chatLogger = new ChatLogger; +// if (settings.options.chatLogDir.empty()) +// { +// chatLogger->setBaseLogDir(settings.localDataDir +// + std::string("/logs/")); +// } +// else +// { +// chatLogger->setBaseLogDir(settings.options.chatLogDir); +// } + + logger->setLogToStandardOut(config.getBoolValue("logToStandardOut")); + + // Log the client version + logger->log1(FULL_VERSION); + logger->log("Start configPath: " + config.getConfigPath()); + + Dirs::initScreenshotDir(); + + // Initialize SDL + logger->log1("Initializing SDL..."); + if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_TIMER) < 0) + { + logger->safeError(strprintf("Could not initialize SDL: %s", + SDL_GetError())); + } + atexit(SDL_Quit); + +#ifndef USE_SDL2 + SDL_EnableUNICODE(1); +#endif + WindowManager::applyKeyRepeat(); + + // disable unused SDL events +#ifndef USE_SDL2 + SDL_EventState(SDL_VIDEOEXPOSE, SDL_IGNORE); +#endif + SDL_EventState(SDL_SYSWMEVENT, SDL_IGNORE); + SDL_EventState(SDL_USEREVENT, SDL_IGNORE); + +#ifdef WIN32 + Dirs::extractDataDir(); + Dirs::mountDataDir(); +#endif + + WindowManager::setIcon(); + ConfigManager::checkConfigVersion(); + logVars(); + Cpu::detect(); +#if defined(USE_OPENGL) +#if !defined(ANDROID) && !defined(__APPLE__) && !defined(__native_client__) + if (!settings.options.safeMode && settings.options.test.empty() + && !config.getBoolValue("videodetected")) + { + graphicsManager.detectVideoSettings(); + } +#endif +#endif + updateEnv(); + initGraphics(); + +#ifndef WIN32 + Dirs::extractDataDir(); + Dirs::mountDataDir(); +#endif + + Dirs::updateDataPath(); + + // Add the main data directories to our PhysicsFS search path + if (!settings.options.dataPath.empty()) + resman->addToSearchPath(settings.options.dataPath, false); + + // Add the local data directory to PhysicsFS search path + resman->addToSearchPath(settings.localDataDir, false); + TranslationManager::loadCurrentLang(); + + WindowManager::initTitle(); + + mainGraphics->postInit(); + + theme = new Theme; + Theme::selectSkin(); + touchManager.init(); + + // Initialize the item and emote shortcuts. +// for (unsigned f = 0; f < SHORTCUT_TABS; f ++) +// itemShortcut[f] = new ItemShortcut(f); +// emoteShortcut = new EmoteShortcut; +// dropShortcut = new DropShortcut; + + gui = new Gui(); + gui->postInit(mainGraphics); + dialogsManager = new DialogsManager; + popupManager = new PopupManager; + + initSoundManager(); + eventsManager.init(); + + // Initialize keyboard + keyboard.init(); + inputManager.init(); + + // Initialise player relations + Joystick::init(); + WindowManager::createWindows(); + + keyboard.update(); + if (joystick) + joystick->update(); + +// if (mState != STATE_ERROR) +// mState = STATE_CHOOSE_SERVER; + + startTimers(); + + const int fpsLimit = config.getIntValue("fpslimit"); + settings.limitFps = fpsLimit > 0; + + SDL_initFramerate(&fpsManager); + WindowManager::setFramerate(fpsLimit); + + start_time = static_cast(time(nullptr)); + +// PlayerInfo::init(); + +#ifdef ANDROID +#ifndef USE_SDL2 + WindowManager::updateScreenKeyboard(SDL_GetScreenKeyboardHeight(nullptr)); +#endif +#endif + + mSkin = theme->load("windowmenu.xml", ""); + if (mSkin) + { + mButtonPadding = mSkin->getPadding(); + mButtonSpacing = mSkin->getOption("spacing", 3); + } +} + +Client::~Client() +{ + if (!settings.options.testMode) + gameClear(); + else + testsClear(); +} + +void Client::initSoundManager() +{ + // Initialize sound engine + try + { + if (config.getBoolValue("sound")) + soundManager.init(); + + soundManager.setSfxVolume(config.getIntValue("sfxVolume")); + soundManager.setMusicVolume(config.getIntValue("musicVolume")); + } + catch (const char *const err) + { + mState = STATE_ERROR; + errorMessage = err; + logger->log("Warning: %s", err); + } + soundManager.playMusic(branding.getValue( + "loginMusic", "Magick - Real.ogg")); +} + +void Client::initGraphics() +{ + WindowManager::applyVSync(); + runCounters = config.getBoolValue("packetcounters"); + + graphicsManager.initGraphics(); + + imageHelper->postInit(); + getConfigDefaults2(config.getDefaultValues()); + WindowManager::applyGrabMode(); + WindowManager::applyGamma(); + + mainGraphics->beginDraw(); +} + +void Client::gameClear() +{ + if (logger) + logger->log1("Quitting1"); + + eventsManager.shutdown(); + WindowManager::deleteWindows(); + if (windowContainer) + windowContainer->slowLogic(); + + stopTimers(); + + delete2(ipc); + + if (logger) + logger->log1("Quitting2"); + + delete2(mCurrentDialog); + delete2(popupManager); + delete2(dialogsManager); + delete2(gui); + + if (logger) + logger->log1("Quitting3"); + + graphicsManager.deleteRenderers(); + + if (logger) + logger->log1("Quitting4"); + + XML::cleanupXML(); + + if (logger) + logger->log1("Quitting5"); + + // Shutdown sound + soundManager.close(); + + if (logger) + logger->log1("Quitting6"); + + touchManager.clear(); + ResourceManager::deleteInstance(); + + if (logger) + logger->log1("Quitting8"); + + WindowManager::deleteIcon(); + + if (logger) + logger->log1("Quitting9"); + + delete2(joystick); + + keyboard.deinit(); + + if (logger) + logger->log1("Quitting10"); + + soundManager.shutdown(); + touchManager.shutdown(); + +#ifdef DEBUG_CONFIG + config.enableKeyLogging(); +#endif + config.removeOldKeys(); + config.write(); + serverConfig.write(); + + config.clear(); + serverConfig.clear(); + + if (logger) + logger->log1("Quitting11"); + +#ifdef USE_PROFILER + Perfomance::clear(); +#endif + +#ifdef DEBUG_OPENGL_LEAKS + if (logger) + logger->log("textures left: %d", textures_count); +#endif + +// delete2(chatLogger); + TranslationManager::close(); +} + +#define ADDBUTTON(var, object) var = object; \ + x -= var->getWidth() + mButtonSpacing; \ + var->setPosition(x, mButtonPadding); \ + top->add(var); + +void Client::stateGame() +{ + if (!gui) + return; + + BasicContainer2 *const top = static_cast( + gui->getTop()); + + if (!top) + return; + + CREATEWIDGETV(desktop, Desktop, nullptr); + top->add(desktop); + int x = top->getWidth() - mButtonPadding; + ADDBUTTON(mSetupButton, new Button(desktop, + // TRANSLATORS: setup tab quick button + _("Setup"), "Setup", this)) + ADDBUTTON(mPerfomanceButton, new Button(desktop, + // TRANSLATORS: perfoamance tab quick button + _("Performance"), "Perfomance", this)) + ADDBUTTON(mVideoButton, new Button(desktop, + // TRANSLATORS: video tab quick button + _("Video"), "Video", this)) + ADDBUTTON(mThemesButton, new Button(desktop, + // TRANSLATORS: theme tab quick button + _("Theme"), "Themes", this)) + ADDBUTTON(mAboutButton, new Button(desktop, + // TRANSLATORS: theme tab quick button + _("About"), "about", this)) + ADDBUTTON(mHelpButton, new Button(desktop, + // TRANSLATORS: theme tab quick button + _("Help"), "help", this)) +#ifdef ANDROID + ADDBUTTON(mCloseButton, new Button(desktop, + // TRANSLATORS: close quick button + _("Close"), "close", this)) +#endif + desktop->setSize(mainGraphics->getWidth(), + mainGraphics->getHeight()); +} + +int Client::gameExec() +{ + int lastTickTime = tick_time; + + while (mState != STATE_EXIT) + { + PROFILER_START(); + if (eventsManager.handleEvents()) + continue; + + BLOCK_START("Client::gameExec 4") + if (gui) + gui->logic(); + cur_time = static_cast(time(nullptr)); + int k = 0; + while (lastTickTime != tick_time && k < 40) + { +// if (mGame) +// mGame->logic(); +// else + if (gui) + gui->handleInput(); + + ++lastTickTime; + k ++; + } + soundManager.logic(); + + logic_count += k; + if (gui) + gui->slowLogic(); +// if (mGame) +// mGame->slowLogic(); + slowLogic(); + BLOCK_END("Client::gameExec 4") + + // This is done because at some point tick_time will wrap. + lastTickTime = tick_time; + + // Update the screen when application is visible, delay otherwise. + if (!WindowManager::getIsMinimized()) + { + frame_count++; + if (gui) + gui->draw(); + mainGraphics->updateScreen(); + } + else + { + SDL_Delay(100); + } + + BLOCK_START("~Client::SDL_framerateDelay") + if (settings.limitFps) + SDL_framerateDelay(&fpsManager); + BLOCK_END("~Client::SDL_framerateDelay") + + BLOCK_START("Client::gameExec 6") +// if (mState == STATE_CONNECT_GAME) +// { +// stateConnectGame1(); +// } + BLOCK_END("Client::gameExec 6") + + if (mState != mOldState) + { + BLOCK_START("Client::gameExec 7") + + mOldState = mState; + + // Get rid of the dialog of the previous state + delete2(mCurrentDialog); + + // State has changed, while the quitDialog was active, it might + // not be correct anymore +// if (mQuitDialog) +// { +// mQuitDialog->scheduleDelete(); +// mQuitDialog = nullptr; +// } + BLOCK_END("Client::gameExec 7") + + BLOCK_START("Client::gameExec 8") + switch (mState) + { + case STATE_GAME: + stateGame(); + break; + + case STATE_LOAD_DATA: + { + BLOCK_START("Client::gameExec STATE_LOAD_DATA") + logger->log1("State: LOAD DATA"); + + const ResourceManager *const resman + = ResourceManager::getInstance(); + + // If another data path has been set, + // we don't load any other files... + if (settings.options.dataPath.empty()) + { + // Add customdata directory + resman->searchAndAddArchives( + "customdata/", + "zip", + false); + } + + if (!settings.options.skipUpdate) + { + resman->searchAndAddArchives( + settings.updatesDir + "/local/", + "zip", + false); + + resman->addToSearchPath(settings.localDataDir + + dirSeparator + settings.updatesDir + "/local/", + false); + } + + logger->log("Init paths"); + paths.init("paths.xml", UseResman_true); + paths.setDefaultValues(getPathsDefaults()); + TranslationManager::loadCurrentLang(); + + if (desktop) + desktop->reloadWallpaper(); + + mState = STATE_GET_CHARACTERS; + BLOCK_END("Client::gameExec STATE_LOAD_DATA") + break; + } + case STATE_START: + default: + mState = STATE_FORCE_QUIT; + break; + } + BLOCK_END("Client::gameExec 8") + } + PROFILER_END(); + } + + return 0; +} + +void Client::action(const ActionEvent &event) +{ + std::string tab; + const std::string &eventId = event.getId(); + + if (eventId == "close") + { + setState(STATE_FORCE_QUIT); + return; + } + if (eventId == "Setup") + { + tab.clear(); + } + else if (eventId == "help") + { + inputManager.executeAction(InputAction::WINDOW_HELP); + return; + } + else if (eventId == "about") + { + inputManager.executeAction(InputAction::WINDOW_ABOUT); + return; + } + else if (eventId == "Video") + { + tab = "Video"; + } + else if (eventId == "Themes") + { + tab = "Theme"; + } + else if (eventId == "Perfomance") + { + tab = "Perfomance"; + } + else + { + return; + } +} + +void Client::moveButtons(const int width) +{ + if (mSetupButton) + { + int x = width - mSetupButton->getWidth() - mButtonPadding; + mSetupButton->setPosition(x, mButtonPadding); +#ifndef WIN32 + x -= mPerfomanceButton->getWidth() + mButtonSpacing; + mPerfomanceButton->setPosition(x, mButtonPadding); + + x -= mVideoButton->getWidth() + mButtonSpacing; + mVideoButton->setPosition(x, mButtonPadding); + + x -= mThemesButton->getWidth() + mButtonSpacing; + mThemesButton->setPosition(x, mButtonPadding); + + x -= mAboutButton->getWidth() + mButtonSpacing; + mAboutButton->setPosition(x, mButtonPadding); + + x -= mHelpButton->getWidth() + mButtonSpacing; + mHelpButton->setPosition(x, mButtonPadding); +#ifdef ANDROID + x -= mCloseButton->getWidth() + mButtonSpacing; + mCloseButton->setPosition(x, mButtonPadding); +#endif +#endif + } +} + +void Client::windowRemoved(const Window *const window) +{ + if (mCurrentDialog == window) + mCurrentDialog = nullptr; +} + +void Client::logVars() +{ +#ifdef ANDROID + logger->log("APPDIR: %s", getenv("APPDIR")); + logger->log("DATADIR2: %s", getSdStoragePath().c_str()); +#endif +} + +void Client::slowLogic() +{ +} + +int Client::testsExec() +{ + return 0; +} diff --git a/src/dyetool/client.h b/src/dyetool/client.h new file mode 100644 index 000000000..b0fb4229f --- /dev/null +++ b/src/dyetool/client.h @@ -0,0 +1,126 @@ +/* + * The ManaPlus Client + * Copyright (C) 2004-2009 The Mana World Development Team + * Copyright (C) 2009-2010 The Mana Developers + * Copyright (C) 2011-2015 The ManaPlus Developers + * + * This file is part of The ManaPlus Client. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef DYETOOL_CLIENT_H +#define DYETOOL_CLIENT_H + +#include "enums/state.h" + +#include "listeners/actionlistener.h" + +#include "net/serverinfo.h" + +#ifdef USE_SDL2 +#include +#else +#include +#endif + +#include "localconsts.h" + +class Button; +class Desktop; +class Skin; +class Window; + +extern bool isSafeMode; +extern int serverVersion; +extern unsigned int tmwServerVersion; +extern int start_time; +extern int textures_count; + +extern std::string errorMessage; + +/** + * The core part of the client. This class initializes all subsystems, runs + * the event loop, and shuts everything down again. + */ +class Client final : public ActionListener +{ + public: + Client(); + + A_DELETE_COPY(Client) + + ~Client(); + + void gameInit(); + + void testsInit(); + + int gameExec(); + + static int testsExec(); + + void setState(const State state) + { mState = state; } + + State getState() const A_WARN_UNUSED + { return mState; } + + void action(const ActionEvent &event) override final; + + void moveButtons(const int width); + + void windowRemoved(const Window *const window); + + void slowLogic(); + + private: + void stateGame(); + + void initSoundManager(); + + static void initGraphics(); + + void gameClear(); + + void testsClear(); + + static void logVars(); + + Window *mCurrentDialog; + Button *mSetupButton; + Button *mVideoButton; + Button *mHelpButton; + Button *mAboutButton; + Button *mThemesButton; + Button *mPerfomanceButton; +#ifdef ANDROID + Button *mCloseButton; +#endif + + State mState; + State mOldState; + + Skin *mSkin; + int mButtonPadding; + int mButtonSpacing; + int mPing; + bool mConfigAutoSaved; +}; + +extern Client *client; +extern unsigned int mLastHost; +extern unsigned long mSearchHash; + +#endif // DYETOOL_CLIENT_H diff --git a/src/dyetool/dyemain.cpp b/src/dyetool/dyemain.cpp index 9d20e1df6..1d5f55a6d 100644 --- a/src/dyetool/dyemain.cpp +++ b/src/dyetool/dyemain.cpp @@ -21,6 +21,7 @@ #include "logger.h" #include "graphicsmanager.h" +#include "maingui.h" #include "sdlshared.h" #include "resources/image.h" @@ -41,8 +42,6 @@ #include "debug.h" -int serverVersion = 0; - static void printHelp() { std::cout << _("dyecmd srcfile dyestring dstfile") << std::endl; @@ -52,6 +51,10 @@ static void printHelp() int main(int argc, char **argv) { + if (argc == 2) + { + return mainGui(argc, argv); + } if (argc < 3 || argc > 4) { printHelp(); diff --git a/src/dyetool/gui/viewport.cpp b/src/dyetool/gui/viewport.cpp new file mode 100644 index 000000000..26de44a3a --- /dev/null +++ b/src/dyetool/gui/viewport.cpp @@ -0,0 +1,290 @@ +/* + * The ManaPlus Client + * Copyright (C) 2004-2009 The Mana World Development Team + * Copyright (C) 2009-2010 The Mana Developers + * Copyright (C) 2011-2015 The ManaPlus Developers + * + * This file is part of The ManaPlus Client. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "gui/viewport.h" + +#include "actormanager.h" +#include "configuration.h" +#include "game.h" +#include "settings.h" +#include "sdlshared.h" +#include "textmanager.h" + +#include "enums/resources/map/mapitemtype.h" + +#include "resources/map/map.h" +#include "resources/map/mapitem.h" +#include "resources/map/speciallayer.h" + +#include "being/localplayer.h" +#include "being/playerinfo.h" + +#include "input/inputmanager.h" + +#include "gui/gui.h" +#include "gui/popupmanager.h" +#include "gui/userpalette.h" + +#include "gui/fonts/font.h" + +#include "gui/popups/beingpopup.h" +#include "gui/popups/popupmenu.h" +#include "gui/popups/textpopup.h" + +#include "gui/windows/ministatuswindow.h" + +#include "debug.h" + +Viewport *viewport = nullptr; + +extern volatile int tick_time; +extern MiniStatusWindow *miniStatusWindow; + +Viewport::Viewport() : + WindowContainer(nullptr), + MouseListener(), + mMouseX(0), + mMouseY(0), + mMap(nullptr), + mHoverBeing(nullptr), + mHoverItem(nullptr), + mHoverSign(nullptr), + mScrollRadius(config.getIntValue("ScrollRadius")), + mScrollLaziness(config.getIntValue("ScrollLaziness")), + mScrollCenterOffsetX(config.getIntValue("ScrollCenterOffsetX")), + mScrollCenterOffsetY(config.getIntValue("ScrollCenterOffsetY")), + mMousePressX(0), + mMousePressY(0), + mPixelViewX(0), + mPixelViewY(0), + mLocalWalkTime(-1), + mCameraRelativeX(0), + mCameraRelativeY(0), + mShowBeingPopup(config.getBoolValue("showBeingPopup")), + mSelfMouseHeal(config.getBoolValue("selfMouseHeal")), + mEnableLazyScrolling(config.getBoolValue("enableLazyScrolling")), + mMouseDirectionMove(config.getBoolValue("mouseDirectionMove")), + mLongMouseClick(config.getBoolValue("longmouseclick")), + mMouseClicked(false), + mPlayerFollowMouse(false) +{ + setOpaque(false); + addMouseListener(this); + + config.addListener("ScrollLaziness", this); + config.addListener("ScrollRadius", this); + config.addListener("showBeingPopup", this); + config.addListener("selfMouseHeal", this); + config.addListener("enableLazyScrolling", this); + config.addListener("mouseDirectionMove", this); + config.addListener("longmouseclick", this); + + setFocusable(true); +} + +Viewport::~Viewport() +{ + config.removeListeners(this); + CHECKLISTENERS +} + +void Viewport::setMap(Map *const map A_UNUSED) +{ +} + +void Viewport::draw(Graphics *graphics) +{ + BLOCK_START("Viewport::draw 1") + static int lastTick = tick_time; + + graphics->setColor(Color(64, 64, 64)); + graphics->fillRectangle( + Rect(0, 0, getWidth(), getHeight())); + + // Avoid freaking out when tick_time overflows + if (tick_time < lastTick) + lastTick = tick_time; + + // Draw contained widgets + WindowContainer::draw(graphics); + BLOCK_END("Viewport::draw 1") +} + +void Viewport::safeDraw(Graphics *graphics) +{ + Viewport::draw(graphics); +} + +void Viewport::logic() +{ + BLOCK_START("Viewport::logic") + // Make the player follow the mouse position + // if the mouse is dragged elsewhere than in a window. + Gui::getMouseState(mMouseX, mMouseY); + BLOCK_END("Viewport::logic") +} + +void Viewport::followMouse() +{ +} + +void Viewport::drawDebugPath(Graphics *const graphics A_UNUSED) +{ +} + +bool Viewport::openContextMenu(const MouseEvent &event A_UNUSED) +{ + return false; +} + +void Viewport::mousePressed(MouseEvent &event) +{ + if (event.getSource() != this || event.isConsumed()) + return; + + mMouseClicked = true; + + mMousePressX = event.getX(); + mMousePressY = event.getY(); + const MouseButtonT eventButton = event.getButton(); + + // Right click might open a popup + if (eventButton == MouseButton::RIGHT) + { + if (openContextMenu(event)) + return; + } + + // If a popup is active, just remove it + if (popupManager->isPopupMenuVisible()) + { + mPlayerFollowMouse = false; + popupManager->hidePopupMenu(); + return; + } + + // Left click can cause different actions + if (!mLongMouseClick && eventButton == MouseButton::LEFT) + { + if (leftMouseAction()) + { + mPlayerFollowMouse = false; + return; + } + } +} + +void Viewport::walkByMouse(const MouseEvent &event A_UNUSED) +{ +} + +void Viewport::mouseDragged(MouseEvent &event) +{ + if (event.getSource() != this || event.isConsumed()) + { + mPlayerFollowMouse = false; + return; + } + if (mMouseClicked) + { + if (abs(event.getX() - mMousePressX) > 32 + || abs(event.getY() - mMousePressY) > 32) + { + mPlayerFollowMouse = true; + } + } + + walkByMouse(event); +} + +void Viewport::mouseReleased(MouseEvent &event) +{ + mPlayerFollowMouse = false; + mLocalWalkTime = -1; + if (mLongMouseClick && mMouseClicked) + { + mMouseClicked = false; + if (event.getSource() != this || event.isConsumed()) + return; + const MouseButtonT eventButton = event.getButton(); + if (eventButton == MouseButton::LEFT) + { + // long button press + if (gui && gui->isLongPress()) + { + if (openContextMenu(event)) + { + gui->resetClickCount(); + return; + } + } + else + { + if (leftMouseAction()) + return; + } + walkByMouse(event); + } + } +} + +void Viewport::optionChanged(const std::string &name) +{ + if (name == "ScrollLaziness") + mScrollLaziness = config.getIntValue("ScrollLaziness"); + else if (name == "ScrollRadius") + mScrollRadius = config.getIntValue("ScrollRadius"); + else if (name == "showBeingPopup") + mShowBeingPopup = config.getBoolValue("showBeingPopup"); + else if (name == "selfMouseHeal") + mSelfMouseHeal = config.getBoolValue("selfMouseHeal"); + else if (name == "enableLazyScrolling") + mEnableLazyScrolling = config.getBoolValue("enableLazyScrolling"); + else if (name == "mouseDirectionMove") + mMouseDirectionMove = config.getBoolValue("mouseDirectionMove"); + else if (name == "longmouseclick") + mLongMouseClick = config.getBoolValue("longmouseclick"); +} + +void Viewport::mouseMoved(MouseEvent &event A_UNUSED) +{ +} + +void Viewport::toggleMapDrawType() +{ +} + +void Viewport::toggleCameraMode() +{ +} + +void Viewport::cleanHoverItems() +{ + mHoverBeing = nullptr; + mHoverItem = nullptr; + mHoverSign = nullptr; +} + +bool Viewport::leftMouseAction() +{ + return false; +} diff --git a/src/dyetool/gui/viewport.h b/src/dyetool/gui/viewport.h new file mode 100644 index 000000000..12527d962 --- /dev/null +++ b/src/dyetool/gui/viewport.h @@ -0,0 +1,220 @@ +/* + * The ManaPlus Client + * Copyright (C) 2004-2009 The Mana World Development Team + * Copyright (C) 2009-2010 The Mana Developers + * Copyright (C) 2011-2015 The ManaPlus Developers + * + * This file is part of The ManaPlus Client. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef DYETOOL_GUI_VIEWPORT_H +#define DYETOOL_GUI_VIEWPORT_H + +#include "position.h" + +#include "enums/simpletypes/beingid.h" + +#include "gui/widgets/windowcontainer.h" + +#include "listeners/mouselistener.h" + +class ActorSprite; +class Being; +class FloorItem; +class Graphics; +class Map; +class MapItem; + +/** Delay between two mouse calls when dragging mouse and move the player */ +const int walkingMouseDelay = 500; + +/** + * The viewport on the map. Displays the current map and handles mouse input + * and the popup menu. + * + * TODO: This class is planned to be extended to allow floating widgets on top + * of it such as NPC messages, which are positioned using map pixel + * coordinates. + */ +class Viewport final : public WindowContainer, + public MouseListener, + public ConfigListener +{ + public: + /** + * Constructor. + */ + Viewport(); + + A_DELETE_COPY(Viewport) + + /** + * Destructor. + */ + ~Viewport(); + + /** + * Sets the map displayed by the viewport. + */ + void setMap(Map *const map); + + /** + * Draws the viewport. + */ + void draw(Graphics *graphics) override final A_NONNULL(2); + + void safeDraw(Graphics *graphics) override final A_NONNULL(2); + + /** + * Implements player to keep following mouse. + */ + void logic() override final; + + /** + * Toggles whether the path debug graphics are shown. normal, + * debug with all images and grid, debug with out big images + * and with out grid. + */ + void toggleMapDrawType(); + + void toggleCameraMode(); + + /** + * Handles mouse press on map. + */ + void mousePressed(MouseEvent &event) override final; + + /** + * Handles mouse move on map + */ + void mouseDragged(MouseEvent &event) override final; + + /** + * Handles mouse button release on map. + */ + void mouseReleased(MouseEvent &event) override final; + + /** + * Handles mouse move on map. + */ + void mouseMoved(MouseEvent &event) override final; + + /** + * A relevant config option changed. + */ + void optionChanged(const std::string &name) override final; + + /** + * Returns camera x offset in pixels. + */ + int getCameraX() const A_WARN_UNUSED + { return mPixelViewX; } + + /** + * Returns camera y offset in pixels. + */ + int getCameraY() const A_WARN_UNUSED + { return mPixelViewY; } + + /** + * Changes viewpoint by relative pixel coordinates. + */ + void scrollBy(const int x, const int y) + { mPixelViewX += x; mPixelViewY += y; } + + /** + * Clear all hover item\being etc + */ + void cleanHoverItems(); + + Map *getMap() const A_WARN_UNUSED + { return mMap; } + + void moveCamera(const int dx, const int dy); + + int getCameraRelativeX() const A_WARN_UNUSED + { return mCameraRelativeX; } + + int getCameraRelativeY() const A_WARN_UNUSED + { return mCameraRelativeY; } + + void setCameraRelativeX(const int n) + { mCameraRelativeX = n; } + + void setCameraRelativeY(const int n) + { mCameraRelativeY = n; } + + int mMouseX; /**< Current mouse position in pixels. */ + int mMouseY; /**< Current mouse position in pixels. */ + + private: + /** + * Finds a path from the player to the mouse, and draws it. This is for + * debug purposes. + */ + void drawDebugPath(Graphics *const graphics) A_NONNULL(2); + + /** + * Draws the given path. + */ + void drawPath(Graphics *const graphics, + const Path &path, + const Color &color = Color(255, 0, 0)) + const A_NONNULL(2); + + bool leftMouseAction(); + + bool openContextMenu(const MouseEvent &event); + + void walkByMouse(const MouseEvent &event); + + /** + * Make the player go to the mouse position. + */ + void followMouse(); + + Map *mMap; /**< The current map. */ + + Being *mHoverBeing; /**< Being mouse is currently over. */ + FloorItem *mHoverItem; /**< FloorItem mouse is currently over. */ + MapItem *mHoverSign; /**< Map sign mouse is currently over. */ + + int mScrollRadius; + int mScrollLaziness; + int mScrollCenterOffsetX; + int mScrollCenterOffsetY; + int mMousePressX; + int mMousePressY; + int mPixelViewX; /**< Current viewpoint in pixels. */ + int mPixelViewY; /**< Current viewpoint in pixels. */ + + int mLocalWalkTime; /**< Timestamp before the next walk can be sent. */ + + int mCameraRelativeX; + int mCameraRelativeY; + + bool mShowBeingPopup; + bool mSelfMouseHeal; + bool mEnableLazyScrolling; + bool mMouseDirectionMove; + bool mLongMouseClick; + bool mMouseClicked; + bool mPlayerFollowMouse; +}; + +extern Viewport *viewport; /**< The viewport. */ + +#endif // DYETOOL_GUI_VIEWPORT_H diff --git a/src/eventsmanager.cpp b/src/eventsmanager.cpp index a6ae45e9c..3125e398b 100644 --- a/src/eventsmanager.cpp +++ b/src/eventsmanager.cpp @@ -22,7 +22,9 @@ #include "configuration.h" #include "client.h" +#ifndef DYECMD #include "game.h" +#endif #include "logger.h" #ifdef USE_MUMBLE #include "mumblemanager.h" @@ -122,12 +124,14 @@ bool EventsManager::handleCommonEvents(const SDL_Event &event) const bool EventsManager::handleEvents() const { BLOCK_START("EventsManager::handleEvents") +#ifndef DYECMD if (Game::instance()) { // Let the game handle the events while it is active Game::instance()->handleInput(); } else +#endif { SDL_Event event; // Handle SDL events @@ -179,6 +183,7 @@ bool EventsManager::handleEvents() const void EventsManager::handleGameEvents() const { BLOCK_START("EventsManager::handleGameEvents") +#ifndef DYECMD Game *const game = Game::instance(); // Events @@ -192,6 +197,7 @@ void EventsManager::handleGameEvents() const if (handleCommonEvents(event)) break; } // End while +#endif BLOCK_END("EventsManager::handleGameEvents") } @@ -421,7 +427,9 @@ void EventsManager::logEvent(const SDL_Event &event) #ifdef USE_SDL2 void EventsManager::handleSDL2WindowEvent(const SDL_Event &event) { +#ifndef DYECMD int fpsLimit = 0; +#endif const int eventType = event.window.event; const bool inGame = (client->getState() == STATE_GAME); switch (eventType) @@ -445,6 +453,7 @@ void EventsManager::handleSDL2WindowEvent(const SDL_Event &event) break; case SDL_WINDOWEVENT_MINIMIZED: WindowManager::setIsMinimized(true); +#ifndef DYECMD if (inGame) { if (localPlayer && !settings.awayMode) @@ -453,11 +462,13 @@ void EventsManager::handleSDL2WindowEvent(const SDL_Event &event) localPlayer->setHalfAway(true); } } +#endif setPriority(false); break; case SDL_WINDOWEVENT_RESTORED: case SDL_WINDOWEVENT_MAXIMIZED: WindowManager::setIsMinimized(false); +#ifndef DYECMD if (inGame) { if (localPlayer) @@ -467,6 +478,7 @@ void EventsManager::handleSDL2WindowEvent(const SDL_Event &event) localPlayer->setHalfAway(false); } } +#endif setPriority(true); break; default: @@ -476,6 +488,7 @@ void EventsManager::handleSDL2WindowEvent(const SDL_Event &event) if (!inGame) return; +#ifndef DYECMD if (eventType == SDL_WINDOWEVENT_MINIMIZED || eventType == SDL_WINDOWEVENT_RESTORED || eventType == SDL_WINDOWEVENT_MAXIMIZED) @@ -487,23 +500,28 @@ void EventsManager::handleSDL2WindowEvent(const SDL_Event &event) } Game::instance()->updateFrameRate(fpsLimit); } +#endif } #else void EventsManager::handleActive(const SDL_Event &event) { +#ifndef DYECMD int fpsLimit = 0; const bool inGame = (client->getState() == STATE_GAME); +#endif if (event.active.state & SDL_APPACTIVE) { if (event.active.gain) { // window restore WindowManager::setIsMinimized(false); +#ifndef DYECMD if (inGame && localPlayer) { if (!settings.awayMode) fpsLimit = config.getIntValue("fpslimit"); localPlayer->setHalfAway(false); } +#endif setPriority(true); } else @@ -512,25 +530,33 @@ void EventsManager::handleActive(const SDL_Event &event) client->setState(STATE_EXIT); #else WindowManager::setIsMinimized(true); +#ifndef DYECMD if (inGame && localPlayer && !settings.awayMode) { fpsLimit = config.getIntValue("altfpslimit"); localPlayer->setHalfAway(true); } +#endif setPriority(false); #endif } +#ifndef DYECMD if (inGame && localPlayer) localPlayer->updateStatus(); +#endif } +#ifndef DYECMD if (inGame && localPlayer) localPlayer->updateName(); +#endif if (event.active.state & SDL_APPINPUTFOCUS) settings.inputFocused = event.active.gain; if (event.active.state & SDL_APPMOUSEFOCUS) settings.mouseFocused = event.active.gain; +#ifndef DYECMD if (inGame) Game::instance()->updateFrameRate(fpsLimit); +#endif } #endif diff --git a/src/gui/dialogsmanager.cpp b/src/gui/dialogsmanager.cpp index 745ef2cc2..69ea6ae11 100644 --- a/src/gui/dialogsmanager.cpp +++ b/src/gui/dialogsmanager.cpp @@ -28,14 +28,19 @@ #include "being/playerinfo.h" #include "gui/widgets/createwidget.h" -#include "gui/widgets/selldialog.h" #include "gui/windows/confirmdialog.h" + +#ifndef DYECMD +#include "gui/widgets/selldialog.h" + #include "gui/windows/buyselldialog.h" #include "gui/windows/buydialog.h" #include "gui/windows/updaterwindow.h" #include "listeners/playerpostdeathlistener.h" +#endif + #include "listeners/weightlistener.h" #include "net/inventoryhandler.h" @@ -55,11 +60,13 @@ DialogsManager *dialogsManager = nullptr; OkDialog *weightNotice = nullptr; int weightNoticeTime = 0; +#ifndef DYECMD namespace { PlayerPostDeathListener postDeathListener; WeightListener weightListener; } // namespace +#endif DialogsManager::DialogsManager() : AttributeListener(), @@ -69,6 +76,7 @@ DialogsManager::DialogsManager() : void DialogsManager::closeDialogs() { +#ifndef DYECMD NpcDialog::clearDialogs(); BuyDialog::closeAll(); BuySellDialog::closeAll(); @@ -76,6 +84,7 @@ void DialogsManager::closeDialogs() SellDialog::closeAll(); if (inventoryHandler) inventoryHandler->destroyStorage(); +#endif if (deathNotice) { deathNotice->scheduleDelete(); @@ -85,11 +94,13 @@ void DialogsManager::closeDialogs() void DialogsManager::createUpdaterWindow() { +#ifndef DYECMD CREATEWIDGETV(updaterWindow, UpdaterWindow, settings.updateHost, settings.oldUpdates, false, UpdateType::Normal); +#endif } Window *DialogsManager::openErrorDialog(const std::string &header, @@ -126,6 +137,7 @@ Window *DialogsManager::openErrorDialog(const std::string &header, void DialogsManager::playerDeath() { +#ifndef DYECMD if (!deathNotice) { // TRANSLATORS: message header @@ -141,8 +153,10 @@ void DialogsManager::playerDeath() 260); deathNotice->addActionListener(&postDeathListener); } +#endif } +#ifndef DYECMD void DialogsManager::attributeChanged(const AttributesT id, const int oldVal, const int newVal) @@ -197,3 +211,10 @@ void DialogsManager::attributeChanged(const AttributesT id, } } } +#else +void DialogsManager::attributeChanged(const AttributesT id A_UNUSED, + const int oldVal A_UNUSED, + const int newVal A_UNUSED) +{ +} +#endif diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp index 382cd42bf..a7e14983e 100644 --- a/src/gui/gui.cpp +++ b/src/gui/gui.cpp @@ -73,7 +73,11 @@ #include "gui/widgets/window.h" +#ifndef DYECMD #include "dragdrop.h" +#else +#include "resources/image.h" +#endif #include "settings.h" #include "touchmanager.h" @@ -477,6 +481,7 @@ void Gui::draw() if ((settings.mouseFocused || button & SDL_BUTTON(1)) && mMouseCursors && mCustomCursor && mMouseCursorAlpha > 0.0F) { +#ifndef DYECMD const Image *const image = dragDrop.getItemImage(); if (mGuiFont) { @@ -497,6 +502,7 @@ void Gui::draw() const int posY = mouseY - (image->mBounds.h / 2); mGraphics->drawImage(image, posX, posY); } +#endif Image *const mouseCursor = mMouseCursors->get( static_cast(mCursorType)); if (mouseCursor) @@ -906,9 +912,10 @@ void Gui::distributeMouseEvent(Widget *const source, widget = parent; parent = swap->getParent(); +#ifndef DYECMD if (type == MouseEventType::RELEASED) dragDrop.clear(); - +#endif if (!widget || event.isConsumed()) break; diff --git a/src/gui/popupmanager.cpp b/src/gui/popupmanager.cpp index 3749a6502..cca9cffd4 100644 --- a/src/gui/popupmanager.cpp +++ b/src/gui/popupmanager.cpp @@ -42,14 +42,18 @@ PopupManager::~PopupManager() void PopupManager::closePopupMenu() { +#ifndef DYECMD if (popupMenu) popupMenu->handleLink("cancel", nullptr); +#endif } void PopupManager::hideBeingPopup() { +#ifndef DYECMD if (beingPopup) beingPopup->setVisible(Visible_false); +#endif } void PopupManager::hideTextPopup() @@ -60,19 +64,27 @@ void PopupManager::hideTextPopup() void PopupManager::hidePopupMenu() { +#ifndef DYECMD if (popupMenu) popupMenu->setVisible(Visible_false); +#endif } bool PopupManager::isPopupMenuVisible() { +#ifndef DYECMD return popupMenu ? popupMenu->isPopupVisible() : false; +#else + return false; +#endif } void PopupManager::clearPopup() { +#ifndef DYECMD if (popupMenu) popupMenu->clear(); +#endif } bool PopupManager::isTextPopupVisible() @@ -82,5 +94,9 @@ bool PopupManager::isTextPopupVisible() bool PopupManager::isBeingPopupVisible() { +#ifndef DYECMD return beingPopup ? beingPopup->isPopupVisible() : false; +#else + return false; +#endif } diff --git a/src/gui/popups/popupmenu.h b/src/gui/popups/popupmenu.h index ac6798ce1..d83fd7bd5 100644 --- a/src/gui/popups/popupmenu.h +++ b/src/gui/popups/popupmenu.h @@ -23,6 +23,8 @@ #ifndef GUI_POPUPS_POPUPMENU_H #define GUI_POPUPS_POPUPMENU_H +#ifndef DYECMD + #include "enums/inventorytype.h" #include "enums/simpletypes/beingid.h" @@ -229,4 +231,5 @@ class PopupMenu final : public Popup, public LinkHandler extern PopupMenu *popupMenu; +#endif // DYE_CMD #endif // GUI_POPUPS_POPUPMENU_H diff --git a/src/gui/viewport.h b/src/gui/viewport.h index 0963bd394..fa2dd7508 100644 --- a/src/gui/viewport.h +++ b/src/gui/viewport.h @@ -23,6 +23,11 @@ #ifndef GUI_VIEWPORT_H #define GUI_VIEWPORT_H +#ifdef DYECMD +#include "dyetool/gui/viewport.h" + +#else + #include "position.h" #include "enums/simpletypes/beingid.h" @@ -235,4 +240,5 @@ class Viewport final : public WindowContainer, extern Viewport *viewport; /**< The viewport. */ +#endif // DYECMD #endif // GUI_VIEWPORT_H diff --git a/src/gui/widgets/browserbox.cpp b/src/gui/widgets/browserbox.cpp index 068894418..67dbbe632 100644 --- a/src/gui/widgets/browserbox.cpp +++ b/src/gui/widgets/browserbox.cpp @@ -235,10 +235,12 @@ void BrowserBox::addRow(const std::string &row, const bool atTop) bLink.y2 = bLink.y1 + font->getHeight(); if (bLink.caption.empty()) { +#ifndef DYECMD const int id = atoi(bLink.link.c_str()); if (id) bLink.caption = ItemDB::get(id).getName(); else +#endif bLink.caption = bLink.link; if (translator) bLink.caption = translator->getStr(bLink.caption); diff --git a/src/gui/widgets/textfield.cpp b/src/gui/widgets/textfield.cpp index c7b9cd312..497f17d2f 100644 --- a/src/gui/widgets/textfield.cpp +++ b/src/gui/widgets/textfield.cpp @@ -748,8 +748,10 @@ void TextField::mousePressed(MouseEvent &event) event.consume(); if (event.getButton() == MouseButton::RIGHT) { +#ifndef DYECMD if (popupMenu) popupMenu->showTextFieldPopup(this); +#endif } else if (event.getButton() == MouseButton::LEFT) { diff --git a/src/gui/widgets/window.cpp b/src/gui/widgets/window.cpp index 73355e3fc..cd8da96bf 100644 --- a/src/gui/widgets/window.cpp +++ b/src/gui/widgets/window.cpp @@ -67,7 +67,11 @@ #include "client.h" #include "configuration.h" +#ifndef DYECMD #include "dragdrop.h" +#else +#include "resources/image.h" +#endif #include "graphicsvertexes.h" #include "soundconsts.h" #include "soundmanager.h" @@ -236,8 +240,10 @@ Window::~Window() if (gui) gui->removeDragged(this); +#ifndef DYECMD if (setupWindow) setupWindow->unregisterWindowForReset(this); +#endif client->windowRemoved(this); @@ -848,6 +854,7 @@ void Window::mousePressed(MouseEvent &event) else mMoved = false; } +#ifndef DYECMD else if (button == MouseButton::RIGHT) { if (popupMenu) @@ -856,6 +863,7 @@ void Window::mousePressed(MouseEvent &event) popupMenu->showWindowPopup(this); } } +#endif } void Window::close() @@ -891,8 +899,10 @@ void Window::updateResizeHandler(MouseEvent &event) if (!gui) return; +#ifndef DYECMD if (!dragDrop.isEmpty()) return; +#endif mResizeHandles = getResizeHandles(event); diff --git a/src/gui/windowmanager.cpp b/src/gui/windowmanager.cpp index d61ffea6e..01cc2c670 100644 --- a/src/gui/windowmanager.cpp +++ b/src/gui/windowmanager.cpp @@ -32,16 +32,19 @@ #include "gui/gui.h" #include "gui/userpalette.h" +#include "gui/popups/textpopup.h" + +#ifndef DYECMD #include "gui/popups/beingpopup.h" #include "gui/popups/itempopup.h" #include "gui/popups/popupmenu.h" #include "gui/popups/spellpopup.h" #include "gui/popups/textboxpopup.h" -#include "gui/popups/textpopup.h" #include "gui/windows/didyouknowwindow.h" #include "gui/windows/helpwindow.h" #include "gui/windows/setupwindow.h" +#endif #include "gui/widgets/createwidget.h" #include "gui/widgets/desktop.h" @@ -95,21 +98,23 @@ void WindowManager::init() void WindowManager::createWindows() { userPalette = new UserPalette; +#ifndef DYECMD CREATEWIDGETV0(setupWindow, SetupWindow); CREATEWIDGETV0(helpWindow, HelpWindow); CREATEWIDGETV0(didYouKnowWindow, DidYouKnowWindow); CREATEWIDGETV0(popupMenu, PopupMenu); CREATEWIDGETV0(beingPopup, BeingPopup); - CREATEWIDGETV0(textPopup, TextPopup); CREATEWIDGETV0(textBoxPopup, TextBoxPopup); CREATEWIDGETV0(itemPopup, ItemPopup); CREATEWIDGETV0(spellPopup, SpellPopup); +#endif + CREATEWIDGETV0(textPopup, TextPopup); } void WindowManager::deleteWindows() { +#ifndef DYECMD delete2(textBoxPopup); - delete2(textPopup); delete2(beingPopup); delete2(itemPopup); delete2(spellPopup); @@ -120,6 +125,8 @@ void WindowManager::deleteWindows() delete2(userPalette); delete2(spellManager) delete2(spellShortcut) +#endif + delete2(textPopup); } void WindowManager::initTitle() @@ -196,9 +203,11 @@ void WindowManager::resizeVideo(int actualWidth, client->moveButtons(width); +#ifndef DYECMD Game *const game = Game::instance(); if (game) game->videoResized(width, height); +#endif if (gui) gui->draw(); diff --git a/src/input/inputmanager.cpp b/src/input/inputmanager.cpp index 12c28c806..a9d35fb64 100644 --- a/src/input/inputmanager.cpp +++ b/src/input/inputmanager.cpp @@ -323,7 +323,9 @@ bool InputManager::hasConflicts(InputActionT &restrict key1, void InputManager::callbackNewKey() { +#ifndef DYECMD mSetupInput->newKeyCallback(mNewKeyIndex); +#endif } bool InputManager::isActionActive(const InputActionT index) const @@ -521,7 +523,9 @@ void InputManager::unassignKey() update(); } -bool InputManager::handleAssignKey(const SDL_Event &event, const int type) +#ifndef DYECMD +bool InputManager::handleAssignKey(const SDL_Event &event, + const int type) { if (setupWindow && setupWindow->isWindowVisible() && getNewKeyIndex() > InputAction::NO_VALUE) @@ -533,6 +537,13 @@ bool InputManager::handleAssignKey(const SDL_Event &event, const int type) } return false; } +#else +bool InputManager::handleAssignKey(const SDL_Event &event A_UNUSED, + const int type A_UNUSED) +{ + return false; +} +#endif bool InputManager::handleEvent(const SDL_Event &event) { @@ -551,6 +562,7 @@ bool InputManager::handleEvent(const SDL_Event &event) keyboard.handleActicateKey(event); // send straight to gui for certain windows +#ifndef DYECMD if (quitDialog || TextDialog::isActive()) { if (guiInput) @@ -560,6 +572,7 @@ bool InputManager::handleEvent(const SDL_Event &event) BLOCK_END("InputManager::handleEvent") return true; } +#endif break; } case SDL_KEYUP: @@ -666,6 +679,7 @@ void InputManager::updateConditionMask() mMask = 1; if (keyboard.isEnabled()) mMask |= InputCondition::ENABLED; +#ifndef DYECMD if ((!chatWindow || !chatWindow->isInputFocused()) && !NpcDialog::isAnyInputFocused() && !InventoryWindow::isAnyInputFocused() && @@ -700,18 +714,6 @@ void InputManager::updateConditionMask() #endif mMask |= InputCondition::NOROOM; - if (!settings.awayMode) - mMask |= InputCondition::NOAWAY; - - if (!setupWindow || !setupWindow->isWindowVisible()) - mMask |= InputCondition::NOSETUP; - - if (Game::instance() && Game::instance()->getValidSpeed()) - mMask |= InputCondition::VALIDSPEED; - - if (gui && !gui->getFocusHandler()->getModalFocused()) - mMask |= InputCondition::NOMODAL; - const NpcDialog *const dialog = NpcDialog::getActive(); if (!dialog || !dialog->isTextInputFocused()) mMask |= InputCondition::NONPCINPUT; @@ -721,15 +723,12 @@ void InputManager::updateConditionMask() if (!InventoryWindow::isStorageActive()) mMask |= InputCondition::NOTALKING; } + if (!setupWindow || !setupWindow->isWindowVisible()) + mMask |= InputCondition::NOSETUP; - if (!settings.disableGameModifiers) - mMask |= InputCondition::EMODS; + if (Game::instance() && Game::instance()->getValidSpeed()) + mMask |= InputCondition::VALIDSPEED; - if (!isActionActive0(InputAction::STOP_ATTACK) - && !isActionActive0(InputAction::UNTARGET)) - { - mMask |= InputCondition::NOTARGET; - } if (Game::instance()) mMask |= InputCondition::INGAME; @@ -738,6 +737,22 @@ void InputManager::updateConditionMask() if (localPlayer && localPlayer->isAlive()) mMask |= InputCondition::ALIVE; +#endif + + if (!settings.awayMode) + mMask |= InputCondition::NOAWAY; + + if (gui && !gui->getFocusHandler()->getModalFocused()) + mMask |= InputCondition::NOMODAL; + + if (!settings.disableGameModifiers) + mMask |= InputCondition::EMODS; + + if (!isActionActive0(InputAction::STOP_ATTACK) + && !isActionActive0(InputAction::UNTARGET)) + { + mMask |= InputCondition::NOTARGET; + } } bool InputManager::checkKey(const InputActionData *const key) const diff --git a/src/maingui.cpp b/src/maingui.cpp index aa91c0439..75e51b62d 100644 --- a/src/maingui.cpp +++ b/src/maingui.cpp @@ -20,6 +20,7 @@ * along with this program. If not, see . */ +#include "maingui.h" #include "main.h" diff --git a/src/net/ipc.cpp b/src/net/ipc.cpp index f6df452ac..e4a70abc8 100644 --- a/src/net/ipc.cpp +++ b/src/net/ipc.cpp @@ -187,6 +187,8 @@ void IPC::flush() if (!mThreadLocked) { SDL_mutexP(mMutex); +#ifndef DYECMD +// probably need enable only commands in tool if (chatWindow) { FOR_EACH (std::vector::const_iterator, it, @@ -195,6 +197,7 @@ void IPC::flush() chatWindow->chatInput(*it); } } +#endif mDelayedCommands.clear(); SDL_mutexV(mMutex); } diff --git a/src/resources/dyepalette.cpp b/src/resources/dyepalette.cpp index 895f9c03f..5ebbdf626 100644 --- a/src/resources/dyepalette.cpp +++ b/src/resources/dyepalette.cpp @@ -24,7 +24,9 @@ #include "logger.h" +#ifndef DYECMD #include "resources/db/palettedb.h" +#endif #include @@ -68,6 +70,7 @@ DyePalette::DyePalette(const std::string &description, ++pos; } } +#ifndef DYECMD else if (description[0] == '@') { size_t pos = 1; @@ -83,7 +86,7 @@ DyePalette::DyePalette(const std::string &description, pos = idx + 1; } } - +#endif logger->log("Error, invalid embedded palette: %s", description.c_str()); } diff --git a/src/resources/resourcemanager.cpp b/src/resources/resourcemanager.cpp index 0c0a5bd7c..bec7914fc 100644 --- a/src/resources/resourcemanager.cpp +++ b/src/resources/resourcemanager.cpp @@ -778,6 +778,7 @@ Resource *ResourceManager::getShaderProgram(const std::string &vertex, } #endif +#ifndef DYECMD struct WalkLayerLoader final { const std::string name; @@ -788,17 +789,15 @@ struct WalkLayerLoader final if (!v) return nullptr; -#ifdef DYECMD - return nullptr; -#else const WalkLayerLoader *const rl = static_cast(v); Resource *const resource = NavigationManager::loadWalkLayer(rl->map); return resource; -#endif } }; +#endif +#ifndef DYECMD WalkLayer *ResourceManager::getWalkLayer(const std::string &name, Map *const map) { @@ -806,6 +805,13 @@ WalkLayer *ResourceManager::getWalkLayer(const std::string &name, return static_cast(get("map_" + name, WalkLayerLoader::load, &rl)); } +#else +WalkLayer *ResourceManager::getWalkLayer(const std::string &name A_UNUSED, + Map *const map A_UNUSED) +{ + return nullptr; +} +#endif struct SpriteDefLoader final { diff --git a/src/soundmanager.cpp b/src/soundmanager.cpp index a501e506b..746f5a924 100644 --- a/src/soundmanager.cpp +++ b/src/soundmanager.cpp @@ -25,7 +25,9 @@ #include "configuration.h" #include "logger.h" +#ifndef DYECMD #include "being/localplayer.h" +#endif #include "resources/sdlmusic.h" #include "resources/resourcemanager.h" @@ -361,6 +363,7 @@ void SoundManager::logic() void SoundManager::playSfx(const std::string &path, const int x, const int y) const { +#ifndef DYECMD if (!mInstalled || path.empty() || !mPlayBattle) return; @@ -393,6 +396,7 @@ void SoundManager::playSfx(const std::string &path, if (!mCacheSounds) sample->decRef(); } +#endif } void SoundManager::playGuiSound(const std::string &name) -- cgit v1.2.3-60-g2f50