├── exported_images
├── map
│ └── .gitkeep
└── house
│ └── .gitkeep
├── modules
├── game_things
│ ├── .gitignore
│ ├── things.otmod
│ └── things.lua
├── game_battle
│ ├── battlebutton.otui
│ └── battle.otmod
├── corelib
│ ├── settings.lua
│ ├── ui
│ │ ├── uilabel.lua
│ │ ├── uibutton.lua
│ │ ├── uicheckbox.lua
│ │ ├── uiwidget.lua
│ │ └── uiwindow.lua
│ ├── bitwise.lua
│ ├── corelib.otmod
│ ├── net.lua
│ ├── math.lua
│ ├── mouse.lua
│ ├── inputmessage.lua
│ ├── string.lua
│ └── globals.lua
├── .project
│ └── modules.sublime-project
├── game_market
│ ├── ui
│ │ ├── myoffers
│ │ │ ├── itemoffers.otui
│ │ │ └── offerhistory.otui
│ │ ├── general
│ │ │ ├── marketbuttons.otui
│ │ │ ├── marketcombobox.otui
│ │ │ ├── markettabs.otui
│ │ │ └── amountwindow.otui
│ │ ├── myoffers.otui
│ │ └── marketoffers
│ │ │ ├── overview.otui
│ │ │ └── itemdetails.otui
│ ├── market.otmod
│ └── market.otui
├── gamelib
│ ├── util.lua
│ ├── gamelib.otmod
│ ├── textmessages.lua
│ ├── position.lua
│ ├── protocolgame.lua
│ └── thing.lua
├── game_unjustifiedpoints
│ └── unjustifiedpoints.otmod
├── game_cooldown
│ └── cooldown.otmod
├── game_minimap
│ ├── minimap.otmod
│ └── minimap.otui
├── client_stats
│ └── stats.otmod
├── client_styles
│ ├── styles.otmod
│ └── styles.lua
├── client_topmenu
│ ├── topmenu.otmod
│ └── topmenu.otui
├── game_outfit
│ └── outfit.otmod
├── game_questlog
│ ├── questlog.otmod
│ ├── questlogwindow.otui
│ └── questlinewindow.otui
├── game_textmessage
│ ├── textmessage.otmod
│ └── textmessage.otui
├── game_viplist
│ ├── viplist.otmod
│ ├── viplist.otui
│ └── addvip.otui
├── game_containers
│ ├── containers.otmod
│ └── container.otui
├── game_playermount
│ ├── playermount.otmod
│ └── playermount.lua
├── game_spelllist
│ └── spelllist.otmod
├── client_options
│ ├── options.otmod
│ ├── audio.otui
│ ├── console.otui
│ └── options.otui
├── game_bugreport
│ ├── bugreport.otmod
│ ├── bugreport.lua
│ └── bugreport.otui
├── game_npctrade
│ └── npctrade.otmod
├── client_terminal
│ └── terminal.otmod
├── game_playerdeath
│ ├── playerdeath.otmod
│ └── deathwindow.otui
├── client_locales
│ ├── locales.otmod
│ └── locales.otui
├── game_hotkeys
│ └── hotkeys_manager.otmod
├── game_playertrade
│ └── playertrade.otmod
├── game_console
│ ├── console.otmod
│ └── violationwindow.otui
├── game_combatcontrols
│ └── combatcontrols.otmod
├── game_inventory
│ └── inventory.otmod
├── game_ruleviolation
│ └── ruleviolation.otmod
├── game_skills
│ └── skills.otmod
├── game_healthinfo
│ └── healthinfo.otmod
├── game_modaldialog
│ └── modaldialog.otmod
├── client_modulemanager
│ └── modulemanager.otmod
├── game_textwindow
│ ├── textwindow.otmod
│ └── textwindow.otui
├── client_background
│ ├── background.otmod
│ ├── background.otui
│ └── background.lua
├── client_entergame
│ ├── entergame.otmod
│ └── waitinglist.otui
├── client_serverlist
│ ├── serverlist.otmod
│ └── addserver.lua
├── client
│ └── client.otmod
└── game_interface
│ ├── interface.otmod
│ └── styles
│ └── countwindow.otui
├── data
├── things
│ └── .gitignore
├── locales
│ ├── de.lua
│ ├── es.lua
│ ├── pt.lua
│ ├── sv.lua
│ └── en.lua
├── images
│ ├── flags
│ │ ├── de.png
│ │ ├── en.png
│ │ ├── es.png
│ │ ├── pl.png
│ │ ├── pt.png
│ │ └── sv.png
│ ├── ui
│ │ ├── button.png
│ │ ├── item.png
│ │ ├── window.png
│ │ ├── checkbox.png
│ │ ├── colorbox.png
│ │ ├── combobox.png
│ │ ├── icon_add.png
│ │ ├── menubox.png
│ │ ├── spinbox.png
│ │ ├── textedit.png
│ │ ├── button_top.png
│ │ ├── miniwindow.png
│ │ ├── panel_flat.png
│ │ ├── panel_map.png
│ │ ├── panel_side.png
│ │ ├── panel_top.png
│ │ ├── progressbar.png
│ │ ├── scrollbar.png
│ │ ├── spinbox_up.png
│ │ ├── button_square.png
│ │ ├── item-blessed.png
│ │ ├── panel_bottom.png
│ │ ├── panel_content.png
│ │ ├── spinbox_down.png
│ │ ├── arrow_horizontal.png
│ │ ├── arrow_vertical.png
│ │ ├── button_popupmenu.png
│ │ ├── button_rounded.png
│ │ ├── button_top_blink.png
│ │ ├── button_topgame.png
│ │ ├── combobox_rounded.png
│ │ ├── combobox_square.png
│ │ ├── panel_container.png
│ │ ├── panel_lightflat.png
│ │ ├── tabbutton_square.png
│ │ ├── window_headless.png
│ │ ├── miniwindow_buttons.png
│ │ ├── separator_vertical.png
│ │ ├── tabbutton_rounded.png
│ │ └── separator_horizontal.png
│ ├── background.png
│ ├── clienticon.png
│ ├── game
│ │ ├── dangerous.png
│ │ ├── console
│ │ │ ├── say.png
│ │ │ ├── ignore.png
│ │ │ ├── yell.png
│ │ │ ├── channels.png
│ │ │ ├── whisper.png
│ │ │ ├── leftarrow.png
│ │ │ ├── rightarrow.png
│ │ │ ├── clearchannel.png
│ │ │ └── closechannel.png
│ │ ├── slots
│ │ │ ├── ammo.png
│ │ │ ├── back.png
│ │ │ ├── body.png
│ │ │ ├── feet.png
│ │ │ ├── head.png
│ │ │ ├── legs.png
│ │ │ ├── neck.png
│ │ │ ├── purse.png
│ │ │ ├── finger.png
│ │ │ ├── left-hand.png
│ │ │ ├── right-hand.png
│ │ │ ├── ammo-blessed.png
│ │ │ ├── back-blessed.png
│ │ │ ├── body-blessed.png
│ │ │ ├── feet-blessed.png
│ │ │ ├── head-blessed.png
│ │ │ ├── legs-blessed.png
│ │ │ ├── neck-blessed.png
│ │ │ ├── finger-blessed.png
│ │ │ ├── left-hand-blessed.png
│ │ │ └── right-hand-blessed.png
│ │ ├── minimap
│ │ │ ├── cross.png
│ │ │ ├── flag0.png
│ │ │ ├── flag1.png
│ │ │ ├── flag10.png
│ │ │ ├── flag11.png
│ │ │ ├── flag12.png
│ │ │ ├── flag13.png
│ │ │ ├── flag14.png
│ │ │ ├── flag15.png
│ │ │ ├── flag16.png
│ │ │ ├── flag17.png
│ │ │ ├── flag18.png
│ │ │ ├── flag19.png
│ │ │ ├── flag2.png
│ │ │ ├── flag3.png
│ │ │ ├── flag4.png
│ │ │ ├── flag5.png
│ │ │ ├── flag6.png
│ │ │ ├── flag7.png
│ │ │ ├── flag8.png
│ │ │ ├── flag9.png
│ │ │ ├── floor_up.png
│ │ │ ├── zoom_in.png
│ │ │ ├── zoom_out.png
│ │ │ ├── floor_down.png
│ │ │ └── flagcheckbox.png
│ │ ├── skull_socket.png
│ │ ├── states
│ │ │ ├── burning.png
│ │ │ ├── cursed.png
│ │ │ ├── dazzled.png
│ │ │ ├── drunk.png
│ │ │ ├── haste.png
│ │ │ ├── hungry.png
│ │ │ ├── slowed.png
│ │ │ ├── bleeding.png
│ │ │ ├── drowning.png
│ │ │ ├── freezing.png
│ │ │ ├── poisoned.png
│ │ │ ├── electrified.png
│ │ │ ├── logout_block.png
│ │ │ ├── magic_shield.png
│ │ │ ├── strengthened.png
│ │ │ ├── protection_zone.png
│ │ │ └── protection_zone_block.png
│ │ ├── viplist
│ │ │ ├── icons.png
│ │ │ └── vipcheckbox.png
│ │ ├── skulls
│ │ │ ├── skull_red.png
│ │ │ ├── skull_black.png
│ │ │ ├── skull_green.png
│ │ │ ├── skull_orange.png
│ │ │ ├── skull_white.png
│ │ │ └── skull_yellow.png
│ │ ├── spells
│ │ │ ├── cooldowns.png
│ │ │ └── defaultspells.png
│ │ ├── battle
│ │ │ ├── battle_npcs.png
│ │ │ ├── battle_party.png
│ │ │ ├── battle_players.png
│ │ │ ├── battle_skulls.png
│ │ │ └── battle_monsters.png
│ │ ├── combatmodes
│ │ │ ├── mount.png
│ │ │ ├── chasemode.png
│ │ │ ├── safefight.png
│ │ │ ├── redfistmode.png
│ │ │ ├── fightbalanced.png
│ │ │ ├── fightdefensive.png
│ │ │ ├── fightoffensive.png
│ │ │ ├── whitedovemode.png
│ │ │ ├── whitehandmode.png
│ │ │ └── yellowhandmode.png
│ │ ├── emblems
│ │ │ ├── emblem_blue.png
│ │ │ ├── emblem_red.png
│ │ │ ├── emblem_green.png
│ │ │ ├── emblem_member.png
│ │ │ └── emblem_other.png
│ │ ├── npcicons
│ │ │ ├── icon_chat.png
│ │ │ ├── icon_quest.png
│ │ │ ├── icon_trade.png
│ │ │ └── icon_tradequest.png
│ │ ├── shields
│ │ │ ├── shield_blue.png
│ │ │ ├── shield_gray.png
│ │ │ ├── shield_yellow.png
│ │ │ ├── shield_blue_shared.png
│ │ │ ├── shield_blue_white.png
│ │ │ ├── shield_yellow_shared.png
│ │ │ ├── shield_yellow_white.png
│ │ │ ├── shield_blue_not_shared.png
│ │ │ └── shield_yellow_not_shared.png
│ │ └── creaturetype
│ │ │ ├── summon_own.png
│ │ │ └── summon_other.png
│ ├── optionstab
│ │ ├── audio.png
│ │ ├── game.png
│ │ ├── console.png
│ │ └── graphics.png
│ └── topbuttons
│ │ ├── audio.png
│ │ ├── login.png
│ │ ├── motd.png
│ │ ├── battle.png
│ │ ├── hotkeys.png
│ │ ├── logout.png
│ │ ├── minimap.png
│ │ ├── options.png
│ │ ├── questlog.png
│ │ ├── skills.png
│ │ ├── terminal.png
│ │ ├── viplist.png
│ │ ├── audio_mute.png
│ │ ├── cooldowns.png
│ │ ├── healthinfo.png
│ │ ├── inventory.png
│ │ ├── particles.png
│ │ ├── spelllist.png
│ │ ├── modulemanager.png
│ │ ├── combatcontrols.png
│ │ └── unjustifiedpoints.png
├── sounds
│ └── startup.ogg
├── cursors
│ ├── textcursor.png
│ ├── targetcursor.png
│ ├── verticalcursor.png
│ ├── horizontalcursor.png
│ └── cursors.otml
├── particles
│ ├── particle.png
│ └── particles.otps
├── fonts
│ ├── terminus-10px.png
│ ├── terminus-14px-bold.png
│ ├── sans-bold-16px_cp1252.png
│ ├── verdana-11px-rounded_cp1250.png
│ ├── verdana-11px-rounded_cp1252.png
│ ├── verdana-11px-antialised_cp1250.png
│ ├── verdana-11px-antialised_cp1252.png
│ ├── verdana-11px-monochrome_cp1250.png
│ ├── verdana-11px-monochrome_cp1252.png
│ ├── sans-bold-16px.otfont
│ ├── verdana-11px-monochrome.otfont
│ ├── terminus-10px.otfont
│ ├── terminus-14px-bold.otfont
│ ├── verdana-11px-antialised.otfont
│ └── verdana-11px-rounded.otfont
└── styles
│ ├── 20-imageview.otui
│ ├── 10-splitters.otui
│ ├── 10-items.otui
│ ├── 10-creatures.otui
│ ├── 10-separators.otui
│ ├── 30-messageboxes.otui
│ ├── 10-panels.otui
│ ├── 10-listboxes.otui
│ ├── 10-labels.otui
│ ├── 10-textedits.otui
│ ├── 10-windows.otui
│ ├── 10-progressbars.otui
│ ├── 30-inputboxes.otui
│ ├── 20-spinboxes.otui
│ ├── 10-creaturebuttons.otui
│ ├── 20-topmenu.otui
│ ├── 10-checkboxes.otui
│ └── 20-tables.otui
├── BUGS
├── mods
├── .gitignore
└── README.txt
├── vc14
├── register_otclient_sdk_env.bat
├── register_otclient_boost_env.bat
├── arch32.props
├── arch64.props
├── release.props
├── debug.props
└── otclient.sln
├── src
├── otcicon.rc
├── otcicon.ico
├── framework
│ ├── cmake
│ │ ├── i486-mingw32_toolchain.cmake
│ │ ├── i586-mingw32msvc_toolchain.cmake
│ │ ├── i686-w64-mingw32_toolchain.cmake
│ │ ├── FindGMP.cmake
│ │ ├── FindOgg.cmake
│ │ ├── FindEGL.cmake
│ │ ├── FindZLIB.cmake
│ │ ├── FindGLEW.cmake
│ │ ├── FindVorbis.cmake
│ │ ├── FindPhysFS.cmake
│ │ ├── FindOpenGLES2.cmake
│ │ ├── FindVorbisFile.cmake
│ │ ├── FindOpenGLES1.cmake
│ │ ├── FindLua.cmake
│ │ ├── FindLuaJIT.cmake
│ │ ├── FindCXX11.cmake
│ │ ├── FindMySQL.cmake
│ │ ├── FindOpenAL.cmake
│ │ ├── FindOpenSSL.cmake
│ │ └── FindICU.cmake
│ ├── platform
│ │ ├── platform.cpp
│ │ └── crashhandler.h
│ ├── otml
│ │ ├── otml.h
│ │ └── otmlemitter.h
│ ├── luaengine
│ │ └── lbitlib.h
│ ├── graphics
│ │ └── painter.cpp
│ ├── core
│ │ ├── timer.cpp
│ │ └── clock.cpp
│ ├── ui
│ │ ├── ui.h
│ │ └── uitranslator.h
│ └── stdext
│ │ ├── net.h
│ │ └── boolean.h
└── client
│ ├── player.cpp
│ ├── global.h
│ ├── client.h
│ └── player.h
├── AUTHORS
├── website_and_php_files
├── map_viewer
│ ├── readme.txt
│ ├── libs
│ │ ├── chosen-sprite.png
│ │ ├── images
│ │ │ ├── death.png
│ │ │ ├── layers.png
│ │ │ ├── layers-2x.png
│ │ │ ├── marker-icon.png
│ │ │ ├── marker-shadow.png
│ │ │ ├── marker-icon-2x.png
│ │ │ └── marker-icon-red.png
│ │ ├── chosen-sprite@2x.png
│ │ ├── MarkerCluster.css
│ │ ├── L.Control.Zoomslider.ie.css
│ │ ├── leaflet.label.css
│ │ ├── byte64.js
│ │ └── MarkerCluster.Default.css
│ └── update_outfits.php
├── anti_index_page.htm
├── README.md
├── windows_run_3_pre_compress.sh
├── windows_run_1_pre_tile_generator.sh
├── windows_run_4_compress.sh
├── windows_run_2_tile_generator.sh
├── 3_pre_compress.php
├── linux_run_all.sh
└── 1_pre_tile_generator.php
├── .gitattributes
├── tools
├── katepart-syntax
│ └── README
├── gen_needed_translations.sh
└── gen_lang_template.sh
├── .travis.yml
├── ISSUE_TEMPLATE.md
└── LICENSE
/exported_images/map/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/exported_images/house/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/modules/game_things/.gitignore:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/data/things/.gitignore:
--------------------------------------------------------------------------------
1 | *
2 | !.gitignore
3 |
--------------------------------------------------------------------------------
/BUGS:
--------------------------------------------------------------------------------
1 | See https://github.com/edubart/otclient/issues
2 |
--------------------------------------------------------------------------------
/mods/.gitignore:
--------------------------------------------------------------------------------
1 | *
2 | !/README.txt
3 | !.gitignore
4 |
--------------------------------------------------------------------------------
/vc14/register_otclient_sdk_env.bat:
--------------------------------------------------------------------------------
1 | setx OTCLIENTSDKDir %CD%
--------------------------------------------------------------------------------
/src/otcicon.rc:
--------------------------------------------------------------------------------
1 | IDI_ICON1 ICON DISCARDABLE "otcicon.ico"
--------------------------------------------------------------------------------
/vc14/register_otclient_boost_env.bat:
--------------------------------------------------------------------------------
1 | setx BOOST_ROOT_OTCLIENT %CD%
--------------------------------------------------------------------------------
/AUTHORS:
--------------------------------------------------------------------------------
1 | See https://github.com/edubart/otclient/graphs/contributors
2 |
--------------------------------------------------------------------------------
/src/otcicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/src/otcicon.ico
--------------------------------------------------------------------------------
/website_and_php_files/map_viewer/readme.txt:
--------------------------------------------------------------------------------
1 | All config is in file:
2 | map.js
3 | (at start)
--------------------------------------------------------------------------------
/data/locales/de.lua:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/locales/de.lua
--------------------------------------------------------------------------------
/data/locales/es.lua:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/locales/es.lua
--------------------------------------------------------------------------------
/data/locales/pt.lua:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/locales/pt.lua
--------------------------------------------------------------------------------
/data/locales/sv.lua:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/locales/sv.lua
--------------------------------------------------------------------------------
/modules/game_battle/battlebutton.otui:
--------------------------------------------------------------------------------
1 | BattleButton < CreatureButton
2 | &isBattleButton: true
--------------------------------------------------------------------------------
/data/images/flags/de.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/flags/de.png
--------------------------------------------------------------------------------
/data/images/flags/en.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/flags/en.png
--------------------------------------------------------------------------------
/data/images/flags/es.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/flags/es.png
--------------------------------------------------------------------------------
/data/images/flags/pl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/flags/pl.png
--------------------------------------------------------------------------------
/data/images/flags/pt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/flags/pt.png
--------------------------------------------------------------------------------
/data/images/flags/sv.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/flags/sv.png
--------------------------------------------------------------------------------
/data/images/ui/button.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/ui/button.png
--------------------------------------------------------------------------------
/data/images/ui/item.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/ui/item.png
--------------------------------------------------------------------------------
/data/images/ui/window.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/ui/window.png
--------------------------------------------------------------------------------
/data/sounds/startup.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/sounds/startup.ogg
--------------------------------------------------------------------------------
/mods/README.txt:
--------------------------------------------------------------------------------
1 | This folder work exactly as modules folder, however is intended to place only mods here.
2 |
--------------------------------------------------------------------------------
/data/cursors/textcursor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/cursors/textcursor.png
--------------------------------------------------------------------------------
/data/images/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/background.png
--------------------------------------------------------------------------------
/data/images/clienticon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/clienticon.png
--------------------------------------------------------------------------------
/data/images/ui/checkbox.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/ui/checkbox.png
--------------------------------------------------------------------------------
/data/images/ui/colorbox.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/ui/colorbox.png
--------------------------------------------------------------------------------
/data/images/ui/combobox.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/ui/combobox.png
--------------------------------------------------------------------------------
/data/images/ui/icon_add.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/ui/icon_add.png
--------------------------------------------------------------------------------
/data/images/ui/menubox.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/ui/menubox.png
--------------------------------------------------------------------------------
/data/images/ui/spinbox.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/ui/spinbox.png
--------------------------------------------------------------------------------
/data/images/ui/textedit.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/ui/textedit.png
--------------------------------------------------------------------------------
/data/particles/particle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/particles/particle.png
--------------------------------------------------------------------------------
/website_and_php_files/anti_index_page.htm:
--------------------------------------------------------------------------------
1 |
2 |
NO INDEX
3 | NO INDEX
4 |
--------------------------------------------------------------------------------
/data/cursors/targetcursor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/cursors/targetcursor.png
--------------------------------------------------------------------------------
/data/fonts/terminus-10px.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/fonts/terminus-10px.png
--------------------------------------------------------------------------------
/data/images/game/dangerous.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/dangerous.png
--------------------------------------------------------------------------------
/data/images/ui/button_top.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/ui/button_top.png
--------------------------------------------------------------------------------
/data/images/ui/miniwindow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/ui/miniwindow.png
--------------------------------------------------------------------------------
/data/images/ui/panel_flat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/ui/panel_flat.png
--------------------------------------------------------------------------------
/data/images/ui/panel_map.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/ui/panel_map.png
--------------------------------------------------------------------------------
/data/images/ui/panel_side.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/ui/panel_side.png
--------------------------------------------------------------------------------
/data/images/ui/panel_top.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/ui/panel_top.png
--------------------------------------------------------------------------------
/data/images/ui/progressbar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/ui/progressbar.png
--------------------------------------------------------------------------------
/data/images/ui/scrollbar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/ui/scrollbar.png
--------------------------------------------------------------------------------
/data/images/ui/spinbox_up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/ui/spinbox_up.png
--------------------------------------------------------------------------------
/data/cursors/verticalcursor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/cursors/verticalcursor.png
--------------------------------------------------------------------------------
/data/images/game/console/say.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/console/say.png
--------------------------------------------------------------------------------
/data/images/game/slots/ammo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/slots/ammo.png
--------------------------------------------------------------------------------
/data/images/game/slots/back.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/slots/back.png
--------------------------------------------------------------------------------
/data/images/game/slots/body.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/slots/body.png
--------------------------------------------------------------------------------
/data/images/game/slots/feet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/slots/feet.png
--------------------------------------------------------------------------------
/data/images/game/slots/head.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/slots/head.png
--------------------------------------------------------------------------------
/data/images/game/slots/legs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/slots/legs.png
--------------------------------------------------------------------------------
/data/images/game/slots/neck.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/slots/neck.png
--------------------------------------------------------------------------------
/data/images/game/slots/purse.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/slots/purse.png
--------------------------------------------------------------------------------
/data/images/optionstab/audio.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/optionstab/audio.png
--------------------------------------------------------------------------------
/data/images/optionstab/game.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/optionstab/game.png
--------------------------------------------------------------------------------
/data/images/topbuttons/audio.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/topbuttons/audio.png
--------------------------------------------------------------------------------
/data/images/topbuttons/login.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/topbuttons/login.png
--------------------------------------------------------------------------------
/data/images/topbuttons/motd.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/topbuttons/motd.png
--------------------------------------------------------------------------------
/data/images/ui/button_square.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/ui/button_square.png
--------------------------------------------------------------------------------
/data/images/ui/item-blessed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/ui/item-blessed.png
--------------------------------------------------------------------------------
/data/images/ui/panel_bottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/ui/panel_bottom.png
--------------------------------------------------------------------------------
/data/images/ui/panel_content.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/ui/panel_content.png
--------------------------------------------------------------------------------
/data/images/ui/spinbox_down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/ui/spinbox_down.png
--------------------------------------------------------------------------------
/website_and_php_files/README.md:
--------------------------------------------------------------------------------
1 | PHP scripts to generate Leaflet map files and JS Leaflet script to view map/server stream.
--------------------------------------------------------------------------------
/data/cursors/horizontalcursor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/cursors/horizontalcursor.png
--------------------------------------------------------------------------------
/data/fonts/terminus-14px-bold.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/fonts/terminus-14px-bold.png
--------------------------------------------------------------------------------
/data/images/game/console/ignore.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/console/ignore.png
--------------------------------------------------------------------------------
/data/images/game/console/yell.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/console/yell.png
--------------------------------------------------------------------------------
/data/images/game/minimap/cross.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/minimap/cross.png
--------------------------------------------------------------------------------
/data/images/game/minimap/flag0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/minimap/flag0.png
--------------------------------------------------------------------------------
/data/images/game/minimap/flag1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/minimap/flag1.png
--------------------------------------------------------------------------------
/data/images/game/minimap/flag10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/minimap/flag10.png
--------------------------------------------------------------------------------
/data/images/game/minimap/flag11.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/minimap/flag11.png
--------------------------------------------------------------------------------
/data/images/game/minimap/flag12.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/minimap/flag12.png
--------------------------------------------------------------------------------
/data/images/game/minimap/flag13.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/minimap/flag13.png
--------------------------------------------------------------------------------
/data/images/game/minimap/flag14.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/minimap/flag14.png
--------------------------------------------------------------------------------
/data/images/game/minimap/flag15.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/minimap/flag15.png
--------------------------------------------------------------------------------
/data/images/game/minimap/flag16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/minimap/flag16.png
--------------------------------------------------------------------------------
/data/images/game/minimap/flag17.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/minimap/flag17.png
--------------------------------------------------------------------------------
/data/images/game/minimap/flag18.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/minimap/flag18.png
--------------------------------------------------------------------------------
/data/images/game/minimap/flag19.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/minimap/flag19.png
--------------------------------------------------------------------------------
/data/images/game/minimap/flag2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/minimap/flag2.png
--------------------------------------------------------------------------------
/data/images/game/minimap/flag3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/minimap/flag3.png
--------------------------------------------------------------------------------
/data/images/game/minimap/flag4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/minimap/flag4.png
--------------------------------------------------------------------------------
/data/images/game/minimap/flag5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/minimap/flag5.png
--------------------------------------------------------------------------------
/data/images/game/minimap/flag6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/minimap/flag6.png
--------------------------------------------------------------------------------
/data/images/game/minimap/flag7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/minimap/flag7.png
--------------------------------------------------------------------------------
/data/images/game/minimap/flag8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/minimap/flag8.png
--------------------------------------------------------------------------------
/data/images/game/minimap/flag9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/minimap/flag9.png
--------------------------------------------------------------------------------
/data/images/game/skull_socket.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/skull_socket.png
--------------------------------------------------------------------------------
/data/images/game/slots/finger.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/slots/finger.png
--------------------------------------------------------------------------------
/data/images/game/states/burning.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/states/burning.png
--------------------------------------------------------------------------------
/data/images/game/states/cursed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/states/cursed.png
--------------------------------------------------------------------------------
/data/images/game/states/dazzled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/states/dazzled.png
--------------------------------------------------------------------------------
/data/images/game/states/drunk.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/states/drunk.png
--------------------------------------------------------------------------------
/data/images/game/states/haste.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/states/haste.png
--------------------------------------------------------------------------------
/data/images/game/states/hungry.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/states/hungry.png
--------------------------------------------------------------------------------
/data/images/game/states/slowed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/states/slowed.png
--------------------------------------------------------------------------------
/data/images/game/viplist/icons.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/viplist/icons.png
--------------------------------------------------------------------------------
/data/images/optionstab/console.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/optionstab/console.png
--------------------------------------------------------------------------------
/data/images/optionstab/graphics.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/optionstab/graphics.png
--------------------------------------------------------------------------------
/data/images/topbuttons/battle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/topbuttons/battle.png
--------------------------------------------------------------------------------
/data/images/topbuttons/hotkeys.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/topbuttons/hotkeys.png
--------------------------------------------------------------------------------
/data/images/topbuttons/logout.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/topbuttons/logout.png
--------------------------------------------------------------------------------
/data/images/topbuttons/minimap.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/topbuttons/minimap.png
--------------------------------------------------------------------------------
/data/images/topbuttons/options.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/topbuttons/options.png
--------------------------------------------------------------------------------
/data/images/topbuttons/questlog.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/topbuttons/questlog.png
--------------------------------------------------------------------------------
/data/images/topbuttons/skills.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/topbuttons/skills.png
--------------------------------------------------------------------------------
/data/images/topbuttons/terminal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/topbuttons/terminal.png
--------------------------------------------------------------------------------
/data/images/topbuttons/viplist.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/topbuttons/viplist.png
--------------------------------------------------------------------------------
/data/images/ui/arrow_horizontal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/ui/arrow_horizontal.png
--------------------------------------------------------------------------------
/data/images/ui/arrow_vertical.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/ui/arrow_vertical.png
--------------------------------------------------------------------------------
/data/images/ui/button_popupmenu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/ui/button_popupmenu.png
--------------------------------------------------------------------------------
/data/images/ui/button_rounded.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/ui/button_rounded.png
--------------------------------------------------------------------------------
/data/images/ui/button_top_blink.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/ui/button_top_blink.png
--------------------------------------------------------------------------------
/data/images/ui/button_topgame.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/ui/button_topgame.png
--------------------------------------------------------------------------------
/data/images/ui/combobox_rounded.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/ui/combobox_rounded.png
--------------------------------------------------------------------------------
/data/images/ui/combobox_square.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/ui/combobox_square.png
--------------------------------------------------------------------------------
/data/images/ui/panel_container.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/ui/panel_container.png
--------------------------------------------------------------------------------
/data/images/ui/panel_lightflat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/ui/panel_lightflat.png
--------------------------------------------------------------------------------
/data/images/ui/tabbutton_square.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/ui/tabbutton_square.png
--------------------------------------------------------------------------------
/data/images/ui/window_headless.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/ui/window_headless.png
--------------------------------------------------------------------------------
/data/fonts/sans-bold-16px_cp1252.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/fonts/sans-bold-16px_cp1252.png
--------------------------------------------------------------------------------
/data/images/game/console/channels.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/console/channels.png
--------------------------------------------------------------------------------
/data/images/game/console/whisper.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/console/whisper.png
--------------------------------------------------------------------------------
/data/images/game/minimap/floor_up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/minimap/floor_up.png
--------------------------------------------------------------------------------
/data/images/game/minimap/zoom_in.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/minimap/zoom_in.png
--------------------------------------------------------------------------------
/data/images/game/minimap/zoom_out.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/minimap/zoom_out.png
--------------------------------------------------------------------------------
/data/images/game/skulls/skull_red.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/skulls/skull_red.png
--------------------------------------------------------------------------------
/data/images/game/slots/left-hand.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/slots/left-hand.png
--------------------------------------------------------------------------------
/data/images/game/slots/right-hand.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/slots/right-hand.png
--------------------------------------------------------------------------------
/data/images/game/spells/cooldowns.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/spells/cooldowns.png
--------------------------------------------------------------------------------
/data/images/game/states/bleeding.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/states/bleeding.png
--------------------------------------------------------------------------------
/data/images/game/states/drowning.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/states/drowning.png
--------------------------------------------------------------------------------
/data/images/game/states/freezing.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/states/freezing.png
--------------------------------------------------------------------------------
/data/images/game/states/poisoned.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/states/poisoned.png
--------------------------------------------------------------------------------
/data/images/topbuttons/audio_mute.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/topbuttons/audio_mute.png
--------------------------------------------------------------------------------
/data/images/topbuttons/cooldowns.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/topbuttons/cooldowns.png
--------------------------------------------------------------------------------
/data/images/topbuttons/healthinfo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/topbuttons/healthinfo.png
--------------------------------------------------------------------------------
/data/images/topbuttons/inventory.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/topbuttons/inventory.png
--------------------------------------------------------------------------------
/data/images/topbuttons/particles.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/topbuttons/particles.png
--------------------------------------------------------------------------------
/data/images/topbuttons/spelllist.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/topbuttons/spelllist.png
--------------------------------------------------------------------------------
/data/images/ui/miniwindow_buttons.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/ui/miniwindow_buttons.png
--------------------------------------------------------------------------------
/data/images/ui/separator_vertical.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/ui/separator_vertical.png
--------------------------------------------------------------------------------
/data/images/ui/tabbutton_rounded.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/ui/tabbutton_rounded.png
--------------------------------------------------------------------------------
/modules/corelib/settings.lua:
--------------------------------------------------------------------------------
1 | g_settings = makesingleton(g_configs.getSettings())
2 |
3 | -- Reserved for future functionality
4 |
--------------------------------------------------------------------------------
/data/images/game/battle/battle_npcs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/battle/battle_npcs.png
--------------------------------------------------------------------------------
/data/images/game/battle/battle_party.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/battle/battle_party.png
--------------------------------------------------------------------------------
/data/images/game/combatmodes/mount.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/combatmodes/mount.png
--------------------------------------------------------------------------------
/data/images/game/console/leftarrow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/console/leftarrow.png
--------------------------------------------------------------------------------
/data/images/game/console/rightarrow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/console/rightarrow.png
--------------------------------------------------------------------------------
/data/images/game/emblems/emblem_blue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/emblems/emblem_blue.png
--------------------------------------------------------------------------------
/data/images/game/emblems/emblem_red.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/emblems/emblem_red.png
--------------------------------------------------------------------------------
/data/images/game/minimap/floor_down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/minimap/floor_down.png
--------------------------------------------------------------------------------
/data/images/game/npcicons/icon_chat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/npcicons/icon_chat.png
--------------------------------------------------------------------------------
/data/images/game/npcicons/icon_quest.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/npcicons/icon_quest.png
--------------------------------------------------------------------------------
/data/images/game/npcicons/icon_trade.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/npcicons/icon_trade.png
--------------------------------------------------------------------------------
/data/images/game/shields/shield_blue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/shields/shield_blue.png
--------------------------------------------------------------------------------
/data/images/game/shields/shield_gray.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/shields/shield_gray.png
--------------------------------------------------------------------------------
/data/images/game/skulls/skull_black.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/skulls/skull_black.png
--------------------------------------------------------------------------------
/data/images/game/skulls/skull_green.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/skulls/skull_green.png
--------------------------------------------------------------------------------
/data/images/game/skulls/skull_orange.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/skulls/skull_orange.png
--------------------------------------------------------------------------------
/data/images/game/skulls/skull_white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/skulls/skull_white.png
--------------------------------------------------------------------------------
/data/images/game/skulls/skull_yellow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/skulls/skull_yellow.png
--------------------------------------------------------------------------------
/data/images/game/slots/ammo-blessed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/slots/ammo-blessed.png
--------------------------------------------------------------------------------
/data/images/game/slots/back-blessed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/slots/back-blessed.png
--------------------------------------------------------------------------------
/data/images/game/slots/body-blessed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/slots/body-blessed.png
--------------------------------------------------------------------------------
/data/images/game/slots/feet-blessed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/slots/feet-blessed.png
--------------------------------------------------------------------------------
/data/images/game/slots/head-blessed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/slots/head-blessed.png
--------------------------------------------------------------------------------
/data/images/game/slots/legs-blessed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/slots/legs-blessed.png
--------------------------------------------------------------------------------
/data/images/game/slots/neck-blessed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/slots/neck-blessed.png
--------------------------------------------------------------------------------
/data/images/game/states/electrified.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/states/electrified.png
--------------------------------------------------------------------------------
/data/images/game/states/logout_block.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/states/logout_block.png
--------------------------------------------------------------------------------
/data/images/game/states/magic_shield.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/states/magic_shield.png
--------------------------------------------------------------------------------
/data/images/game/states/strengthened.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/states/strengthened.png
--------------------------------------------------------------------------------
/data/images/game/viplist/vipcheckbox.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/viplist/vipcheckbox.png
--------------------------------------------------------------------------------
/data/images/topbuttons/modulemanager.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/topbuttons/modulemanager.png
--------------------------------------------------------------------------------
/data/images/ui/separator_horizontal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/ui/separator_horizontal.png
--------------------------------------------------------------------------------
/data/fonts/verdana-11px-rounded_cp1250.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/fonts/verdana-11px-rounded_cp1250.png
--------------------------------------------------------------------------------
/data/fonts/verdana-11px-rounded_cp1252.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/fonts/verdana-11px-rounded_cp1252.png
--------------------------------------------------------------------------------
/data/images/game/battle/battle_players.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/battle/battle_players.png
--------------------------------------------------------------------------------
/data/images/game/battle/battle_skulls.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/battle/battle_skulls.png
--------------------------------------------------------------------------------
/data/images/game/combatmodes/chasemode.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/combatmodes/chasemode.png
--------------------------------------------------------------------------------
/data/images/game/combatmodes/safefight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/combatmodes/safefight.png
--------------------------------------------------------------------------------
/data/images/game/console/clearchannel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/console/clearchannel.png
--------------------------------------------------------------------------------
/data/images/game/console/closechannel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/console/closechannel.png
--------------------------------------------------------------------------------
/data/images/game/emblems/emblem_green.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/emblems/emblem_green.png
--------------------------------------------------------------------------------
/data/images/game/emblems/emblem_member.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/emblems/emblem_member.png
--------------------------------------------------------------------------------
/data/images/game/emblems/emblem_other.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/emblems/emblem_other.png
--------------------------------------------------------------------------------
/data/images/game/minimap/flagcheckbox.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/minimap/flagcheckbox.png
--------------------------------------------------------------------------------
/data/images/game/shields/shield_yellow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/shields/shield_yellow.png
--------------------------------------------------------------------------------
/data/images/game/slots/finger-blessed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/slots/finger-blessed.png
--------------------------------------------------------------------------------
/data/images/game/spells/defaultspells.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/spells/defaultspells.png
--------------------------------------------------------------------------------
/data/images/topbuttons/combatcontrols.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/topbuttons/combatcontrols.png
--------------------------------------------------------------------------------
/website_and_php_files/windows_run_3_pre_compress.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | echo '3: Generate list of files to compress'
4 | php 3_pre_compress.php
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Normalize source code before commits
2 | *.lua eol=lf
3 | *.txt eol=lf
4 | *.ot* eol=lf
5 | *.cpp eol=lf
6 | *.h eol=lf
7 |
--------------------------------------------------------------------------------
/data/fonts/verdana-11px-antialised_cp1250.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/fonts/verdana-11px-antialised_cp1250.png
--------------------------------------------------------------------------------
/data/fonts/verdana-11px-antialised_cp1252.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/fonts/verdana-11px-antialised_cp1252.png
--------------------------------------------------------------------------------
/data/fonts/verdana-11px-monochrome_cp1250.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/fonts/verdana-11px-monochrome_cp1250.png
--------------------------------------------------------------------------------
/data/fonts/verdana-11px-monochrome_cp1252.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/fonts/verdana-11px-monochrome_cp1252.png
--------------------------------------------------------------------------------
/data/images/game/battle/battle_monsters.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/battle/battle_monsters.png
--------------------------------------------------------------------------------
/data/images/game/combatmodes/redfistmode.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/combatmodes/redfistmode.png
--------------------------------------------------------------------------------
/data/images/game/creaturetype/summon_own.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/creaturetype/summon_own.png
--------------------------------------------------------------------------------
/data/images/game/npcicons/icon_tradequest.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/npcicons/icon_tradequest.png
--------------------------------------------------------------------------------
/data/images/game/slots/left-hand-blessed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/slots/left-hand-blessed.png
--------------------------------------------------------------------------------
/data/images/game/slots/right-hand-blessed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/slots/right-hand-blessed.png
--------------------------------------------------------------------------------
/data/images/game/states/protection_zone.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/states/protection_zone.png
--------------------------------------------------------------------------------
/data/images/topbuttons/unjustifiedpoints.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/topbuttons/unjustifiedpoints.png
--------------------------------------------------------------------------------
/data/images/game/combatmodes/fightbalanced.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/combatmodes/fightbalanced.png
--------------------------------------------------------------------------------
/data/images/game/combatmodes/fightdefensive.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/combatmodes/fightdefensive.png
--------------------------------------------------------------------------------
/data/images/game/combatmodes/fightoffensive.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/combatmodes/fightoffensive.png
--------------------------------------------------------------------------------
/data/images/game/combatmodes/whitedovemode.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/combatmodes/whitedovemode.png
--------------------------------------------------------------------------------
/data/images/game/combatmodes/whitehandmode.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/combatmodes/whitehandmode.png
--------------------------------------------------------------------------------
/data/images/game/combatmodes/yellowhandmode.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/combatmodes/yellowhandmode.png
--------------------------------------------------------------------------------
/data/images/game/creaturetype/summon_other.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/creaturetype/summon_other.png
--------------------------------------------------------------------------------
/data/images/game/shields/shield_blue_shared.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/shields/shield_blue_shared.png
--------------------------------------------------------------------------------
/data/images/game/shields/shield_blue_white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/shields/shield_blue_white.png
--------------------------------------------------------------------------------
/website_and_php_files/windows_run_1_pre_tile_generator.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | echo '1: Move files to map_tiled folder'
4 | php 1_pre_tile_generator.php
--------------------------------------------------------------------------------
/data/images/game/shields/shield_yellow_shared.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/shields/shield_yellow_shared.png
--------------------------------------------------------------------------------
/data/images/game/shields/shield_yellow_white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/shields/shield_yellow_white.png
--------------------------------------------------------------------------------
/data/images/game/states/protection_zone_block.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/states/protection_zone_block.png
--------------------------------------------------------------------------------
/data/images/game/shields/shield_blue_not_shared.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/shields/shield_blue_not_shared.png
--------------------------------------------------------------------------------
/data/fonts/sans-bold-16px.otfont:
--------------------------------------------------------------------------------
1 | Font
2 | name: sans-bold-16px
3 | texture: sans-bold-16px_cp1252
4 | height: 20
5 | glyph-size: 24 24
6 | space-width: 3
7 |
--------------------------------------------------------------------------------
/data/images/game/shields/shield_yellow_not_shared.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/data/images/game/shields/shield_yellow_not_shared.png
--------------------------------------------------------------------------------
/website_and_php_files/map_viewer/libs/chosen-sprite.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/website_and_php_files/map_viewer/libs/chosen-sprite.png
--------------------------------------------------------------------------------
/website_and_php_files/map_viewer/libs/images/death.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/website_and_php_files/map_viewer/libs/images/death.png
--------------------------------------------------------------------------------
/website_and_php_files/map_viewer/libs/images/layers.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/website_and_php_files/map_viewer/libs/images/layers.png
--------------------------------------------------------------------------------
/website_and_php_files/map_viewer/libs/chosen-sprite@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/website_and_php_files/map_viewer/libs/chosen-sprite@2x.png
--------------------------------------------------------------------------------
/website_and_php_files/map_viewer/libs/images/layers-2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/website_and_php_files/map_viewer/libs/images/layers-2x.png
--------------------------------------------------------------------------------
/website_and_php_files/map_viewer/libs/images/marker-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/website_and_php_files/map_viewer/libs/images/marker-icon.png
--------------------------------------------------------------------------------
/website_and_php_files/map_viewer/libs/images/marker-shadow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/website_and_php_files/map_viewer/libs/images/marker-shadow.png
--------------------------------------------------------------------------------
/data/styles/20-imageview.otui:
--------------------------------------------------------------------------------
1 | ImageView < UIImageView
2 | image-smooth: false
3 | image-fixed-ratio: true
4 | draggable: true
5 | border-width: 2
6 | border-color: #000000
7 |
--------------------------------------------------------------------------------
/website_and_php_files/map_viewer/libs/images/marker-icon-2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/website_and_php_files/map_viewer/libs/images/marker-icon-2x.png
--------------------------------------------------------------------------------
/website_and_php_files/map_viewer/libs/images/marker-icon-red.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gesior/otclient_mapgen/HEAD/website_and_php_files/map_viewer/libs/images/marker-icon-red.png
--------------------------------------------------------------------------------
/data/fonts/verdana-11px-monochrome.otfont:
--------------------------------------------------------------------------------
1 | Font
2 | name: verdana-11px-monochrome
3 | texture: verdana-11px-monochrome_cp1252
4 | height: 14
5 | glyph-size: 16 16
6 | space-width: 3
7 |
--------------------------------------------------------------------------------
/data/fonts/terminus-10px.otfont:
--------------------------------------------------------------------------------
1 | Font
2 | name: terminus-10px
3 | texture: terminus-10px
4 | height: 12
5 | y-offset: 0
6 | glyph-size: 16 16
7 | fixed-glyph-width: 6
8 | space-width: 6
9 |
--------------------------------------------------------------------------------
/data/styles/10-splitters.otui:
--------------------------------------------------------------------------------
1 | Splitter < UISplitter
2 | size: 4 4
3 | opacity: 0
4 | background: #ffffff44
5 |
6 | ResizeBorder < UIResizeBorder
7 | size: 4 4
8 | opacity: 0
9 | background: #ffffff44
--------------------------------------------------------------------------------
/data/fonts/terminus-14px-bold.otfont:
--------------------------------------------------------------------------------
1 | Font
2 | name: terminus-14px-bold
3 | texture: terminus-14px-bold
4 | height: 16
5 | y-offset: 2
6 | glyph-size: 16 16
7 | fixed-glyph-width: 8
8 | space-width: 8
9 |
--------------------------------------------------------------------------------
/data/fonts/verdana-11px-antialised.otfont:
--------------------------------------------------------------------------------
1 | Font
2 | name: verdana-11px-antialised
3 | texture: verdana-11px-antialised_cp1252
4 | height: 14
5 | glyph-size: 16 16
6 | space-width: 4
7 | default: true
8 |
--------------------------------------------------------------------------------
/data/fonts/verdana-11px-rounded.otfont:
--------------------------------------------------------------------------------
1 | Font
2 | name: verdana-11px-rounded
3 | texture: verdana-11px-rounded_cp1252
4 | height: 16
5 | glyph-size: 16 16
6 | y-offset: -2
7 | spacing: -1 -3
8 | space-width: 4
9 |
--------------------------------------------------------------------------------
/modules/.project/modules.sublime-project:
--------------------------------------------------------------------------------
1 | {
2 | "folders":
3 | [
4 | {
5 | "path": "..",
6 | "folder_exclude_patterns": [".*", "*.*~"],
7 | "file_exclude_patterns": [".*", "*.*~"]
8 | }
9 | ]
10 | }
11 |
--------------------------------------------------------------------------------
/website_and_php_files/windows_run_4_compress.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | minFloor=0
4 | maxFloor=16
5 |
6 | echo '4: Compress images'
7 | for (( i=minFloor; i<=maxFloor; i++))
8 | do
9 | php 4_compress.php $i 0 &
10 | done
--------------------------------------------------------------------------------
/modules/game_things/things.otmod:
--------------------------------------------------------------------------------
1 | Module
2 | name: game_things
3 | description: Contains things spr and dat
4 | reloadable: false
5 | sandboxed: true
6 | scripts: [things]
7 | @onLoad: init()
8 | @onUnload: terminate()
9 |
--------------------------------------------------------------------------------
/data/styles/10-items.otui:
--------------------------------------------------------------------------------
1 | Item < UIItem
2 | size: 34 34
3 | padding: 1
4 | image-source: /images/ui/item
5 | font: verdana-11px-rounded
6 | border-color: white
7 | color: white
8 |
9 | $disabled:
10 | color: #646464
11 |
--------------------------------------------------------------------------------
/website_and_php_files/windows_run_2_tile_generator.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | minFloor=0
4 | maxFloor=16
5 |
6 | echo '2: Generate all zoom levels'
7 | for (( i=minFloor; i<=maxFloor; i++))
8 | do
9 | php 2_tile_generator.php $i &
10 | done
--------------------------------------------------------------------------------
/modules/game_market/ui/myoffers/itemoffers.otui:
--------------------------------------------------------------------------------
1 | Panel
2 | background-color: #22283399
3 | margin: 1
4 |
5 | Label
6 | !text: tr('Item Offers')
7 | anchors.top: parent.top
8 | anchors.left: parent.left
9 | margin-left: 10
10 |
--------------------------------------------------------------------------------
/data/styles/10-creatures.otui:
--------------------------------------------------------------------------------
1 | Creature < UICreature
2 | size: 80 80
3 | padding: 1
4 | image-source: /images/ui/panel_flat
5 | image-border: 1
6 | border-width: 1
7 | border-color: alpha
8 |
9 | $checked:
10 | border-color: white
11 |
--------------------------------------------------------------------------------
/modules/game_market/ui/myoffers/offerhistory.otui:
--------------------------------------------------------------------------------
1 | Panel
2 | background-color: #22283399
3 | margin: 1
4 |
5 | Label
6 | !text: tr('Offer History')
7 | anchors.top: parent.top
8 | anchors.left: parent.left
9 | margin-left: 10
10 |
--------------------------------------------------------------------------------
/modules/gamelib/util.lua:
--------------------------------------------------------------------------------
1 | function postostring(pos)
2 | return pos.x .. " " .. pos.y .. " " .. pos.z
3 | end
4 |
5 | function dirtostring(dir)
6 | for k,v in pairs(Directions) do
7 | if v == dir then
8 | return k
9 | end
10 | end
11 | end
--------------------------------------------------------------------------------
/modules/game_unjustifiedpoints/unjustifiedpoints.otmod:
--------------------------------------------------------------------------------
1 | Module
2 | name: game_unjustifiedpoints
3 | description: View unjustified points
4 | author: Summ
5 | sandboxed: true
6 | scripts: [ unjustifiedpoints ]
7 | @onLoad: init()
8 | @onUnload: terminate()
9 |
--------------------------------------------------------------------------------
/modules/game_cooldown/cooldown.otmod:
--------------------------------------------------------------------------------
1 | Module
2 | name: game_cooldown
3 | description: Spellcooldowns
4 | author: OTClient team
5 | website: https://github.com/edubart/otclient
6 | sandboxed: true
7 | scripts: [ cooldown ]
8 | @onLoad: init()
9 | @onUnload: terminate()
10 |
--------------------------------------------------------------------------------
/modules/game_minimap/minimap.otmod:
--------------------------------------------------------------------------------
1 | Module
2 | name: game_minimap
3 | description: Manage minimap
4 | author: edubart, BeniS
5 | website: https://github.com/edubart/otclient
6 | sandboxed: true
7 | scripts: [ minimap ]
8 | @onLoad: init()
9 | @onUnload: terminate()
10 |
--------------------------------------------------------------------------------
/modules/client_stats/stats.otmod:
--------------------------------------------------------------------------------
1 | Module
2 | name: client_stats
3 | description: Sends client statistics to a server
4 | author: baxnie
5 | website: https://github.com/edubart/otclient
6 | sandboxed: true
7 | scripts: [ stats ]
8 | @onLoad: init()
9 | @onUnload: terminate()
10 |
--------------------------------------------------------------------------------
/modules/client_styles/styles.otmod:
--------------------------------------------------------------------------------
1 | Module
2 | name: client_styles
3 | description: Load client fonts and styles
4 | author: edubart
5 | website: https://github.com/edubart/otclient
6 | scripts: [ styles ]
7 | sandboxed: true
8 | @onLoad: init()
9 | @onUnload: terminate()
10 |
--------------------------------------------------------------------------------
/modules/client_topmenu/topmenu.otmod:
--------------------------------------------------------------------------------
1 | Module
2 | name: client_topmenu
3 | description: Create the top menu
4 | author: edubart
5 | website: https://github.com/edubart/otclient
6 | scripts: [ topmenu ]
7 | sandboxed: true
8 | @onLoad: init()
9 | @onUnload: terminate()
10 |
11 |
--------------------------------------------------------------------------------
/modules/game_battle/battle.otmod:
--------------------------------------------------------------------------------
1 | Module
2 | name: game_battle
3 | description: Manage battle window
4 | author: andrefaramir, BeniS
5 | website: https://github.com/edubart/otclient
6 | sandboxed: true
7 | scripts: [ battle ]
8 | @onLoad: init()
9 | @onUnload: terminate()
10 |
--------------------------------------------------------------------------------
/modules/game_outfit/outfit.otmod:
--------------------------------------------------------------------------------
1 | Module
2 | name: game_outfit
3 | description: Change local player outfit
4 | author: baxnie, edubart
5 | website: https://github.com/edubart/otclient
6 | sandboxed: true
7 | scripts: [ outfit ]
8 | @onLoad: init()
9 | @onUnload: terminate()
10 |
--------------------------------------------------------------------------------
/modules/game_questlog/questlog.otmod:
--------------------------------------------------------------------------------
1 | Module
2 | name: game_questlog
3 | description: View game quests status
4 | author: edubart
5 | website: https://github.com/edubart/otclient
6 | sandboxed: true
7 | scripts: [ questlog ]
8 | @onLoad: init()
9 | @onUnload: terminate()
10 |
--------------------------------------------------------------------------------
/modules/game_textmessage/textmessage.otmod:
--------------------------------------------------------------------------------
1 | Module
2 | name: game_textmessage
3 | description: Manage game text messages
4 | author: edubart
5 | website: https://github.com/edubart/otclient
6 | sandboxed: true
7 | scripts: [ textmessage ]
8 | @onLoad: init()
9 | @onUnload: terminate()
--------------------------------------------------------------------------------
/modules/game_viplist/viplist.otmod:
--------------------------------------------------------------------------------
1 | Module
2 | name: game_viplist
3 | description: Manage vip list window
4 | author: baxnie, edubart
5 | website: https://github.com/edubart/otclient
6 | sandboxed: true
7 | scripts: [ viplist ]
8 | @onLoad: init()
9 | @onUnload: terminate()
10 |
--------------------------------------------------------------------------------
/modules/corelib/ui/uilabel.lua:
--------------------------------------------------------------------------------
1 | -- @docclass
2 | UILabel = extends(UIWidget, "UILabel")
3 |
4 | function UILabel.create()
5 | local label = UILabel.internalCreate()
6 | label:setPhantom(true)
7 | label:setFocusable(false)
8 | label:setTextAlign(AlignLeft)
9 | return label
10 | end
11 |
--------------------------------------------------------------------------------
/modules/game_containers/containers.otmod:
--------------------------------------------------------------------------------
1 | Module
2 | name: game_containers
3 | description: Manage containers
4 | author: edubart, baxnie
5 | website: https://github.com/edubart/otclient
6 | sandboxed: true
7 | scripts: [containers]
8 | @onLoad: init()
9 | @onUnload: terminate()
10 |
--------------------------------------------------------------------------------
/modules/game_playermount/playermount.otmod:
--------------------------------------------------------------------------------
1 | Module
2 | name: game_playermount
3 | description: Manage player mounts
4 | author: BeniS
5 | website: https://github.com/edubart/otclient
6 | sandboxed: true
7 | scripts: [ playermount ]
8 | @onLoad: init()
9 | @onUnload: terminate()
10 |
--------------------------------------------------------------------------------
/modules/game_spelllist/spelllist.otmod:
--------------------------------------------------------------------------------
1 | Module
2 | name: game_spelllist
3 | description: View available spells
4 | author: Summ, Edubart
5 | website: https://github.com/edubart/otclient
6 | sandboxed: true
7 | scripts: [ spelllist ]
8 | @onLoad: init()
9 | @onUnload: terminate()
10 |
--------------------------------------------------------------------------------
/modules/client_options/options.otmod:
--------------------------------------------------------------------------------
1 | Module
2 | name: client_options
3 | description: Create the options window
4 | author: edubart, BeniS
5 | website: https://github.com/edubart/otclient
6 | sandboxed: true
7 | scripts: [ options ]
8 | @onLoad: init()
9 | @onUnload: terminate()
10 |
--------------------------------------------------------------------------------
/modules/game_bugreport/bugreport.otmod:
--------------------------------------------------------------------------------
1 | Module
2 | name: game_bugreport
3 | description: Bug report interface (Ctrl+Z)
4 | author: edubart
5 | website: https://github.com/edubart/otclient
6 | scripts: [ bugreport ]
7 | sandboxed: true
8 | @onLoad: init()
9 | @onUnload: terminate()
10 |
--------------------------------------------------------------------------------
/modules/game_npctrade/npctrade.otmod:
--------------------------------------------------------------------------------
1 | Module
2 | name: game_npctrade
3 | description: NPC trade interface
4 | author: andrefaramir, baxnie
5 | website: https://github.com/edubart/otclient
6 | sandboxed: true
7 | scripts: [ npctrade ]
8 | @onLoad: init()
9 | @onUnload: terminate()
10 |
--------------------------------------------------------------------------------
/data/cursors/cursors.otml:
--------------------------------------------------------------------------------
1 | Cursors
2 | target:
3 | image: targetcursor
4 | hot-spot: 9 9
5 | horizontal:
6 | image: horizontalcursor
7 | hot-spot: 9 4
8 | vertical:
9 | image: verticalcursor
10 | hot-spot: 4 9
11 | text:
12 | image: textcursor
13 | hot-spot: 4 9
14 |
--------------------------------------------------------------------------------
/modules/client_terminal/terminal.otmod:
--------------------------------------------------------------------------------
1 | Module
2 | name: client_terminal
3 | description: Terminal for executing lua functions
4 | author: edubart
5 | website: https://github.com/edubart/otclient
6 | scripts: [ terminal ]
7 | sandboxed: true
8 | @onLoad: init()
9 | @onUnload: terminate()
10 |
--------------------------------------------------------------------------------
/modules/game_playerdeath/playerdeath.otmod:
--------------------------------------------------------------------------------
1 | Module
2 | name: game_playerdeath
3 | description: Manage player deaths
4 | author: BeniS, edubart
5 | website: https://github.com/edubart/otclient
6 | sandboxed: true
7 | scripts: [ playerdeath ]
8 | @onLoad: init()
9 | @onUnload: terminate()
10 |
--------------------------------------------------------------------------------
/modules/client_locales/locales.otmod:
--------------------------------------------------------------------------------
1 | Module
2 | name: client_locales
3 | description: Translates texts to selected language
4 | author: baxnie, edubart
5 | website: https://github.com/edubart/otclient
6 | sandboxed: true
7 | scripts: [ locales ]
8 | @onLoad: init()
9 | @onUnload: terminate()
10 |
--------------------------------------------------------------------------------
/modules/game_hotkeys/hotkeys_manager.otmod:
--------------------------------------------------------------------------------
1 | Module
2 | name: game_hotkeys
3 | description: Manage client hotkeys
4 | author: andrefaramir, BeniS
5 | website: https://github.com/edubart/otclient
6 | sandboxed: true
7 | scripts: [ hotkeys_manager ]
8 | @onLoad: init()
9 | @onUnload: terminate()
10 |
--------------------------------------------------------------------------------
/modules/game_playertrade/playertrade.otmod:
--------------------------------------------------------------------------------
1 | Module
2 | name: game_playertrade
3 | description: Allow to trade items with players
4 | author: edubart
5 | website: https://github.com/edubart/otclient
6 | sandboxed: true
7 | scripts: [ playertrade ]
8 | @onLoad: init()
9 | @onUnload: terminate()
10 |
--------------------------------------------------------------------------------
/modules/game_console/console.otmod:
--------------------------------------------------------------------------------
1 | Module
2 | name: game_console
3 | description: Manage chat window
4 | author: edubart, andrefaramir, baxnie, sn4ake, BeniS
5 | website: https://github.com/edubart/otclient
6 | sandboxed: true
7 | scripts: [ console ]
8 | @onLoad: init()
9 | @onUnload: terminate()
10 |
--------------------------------------------------------------------------------
/modules/game_combatcontrols/combatcontrols.otmod:
--------------------------------------------------------------------------------
1 | Module
2 | name: game_combatcontrols
3 | description: Combat controls window
4 | author: edubart, BeniS
5 | website: https://github.com/edubart/otclient
6 | sandboxed: true
7 | scripts: [ combatcontrols ]
8 | @onLoad: init()
9 | @onUnload: terminate()
10 |
--------------------------------------------------------------------------------
/modules/game_inventory/inventory.otmod:
--------------------------------------------------------------------------------
1 | Module
2 | name: game_inventory
3 | description: View local player equipments window
4 | author: baxnie, edubart, BeniS
5 | website: https://github.com/edubart/otclient
6 | sandboxed: true
7 | scripts: [ inventory ]
8 | @onLoad: init()
9 | @onUnload: terminate()
10 |
--------------------------------------------------------------------------------
/modules/game_market/market.otmod:
--------------------------------------------------------------------------------
1 | Module
2 | name: game_market
3 | description: Global item market system
4 | author: BeniS
5 | website: https://github.com/edubart/otclient
6 | sandboxed: true
7 | scripts: [ offerstatistic, marketoffer, marketprotocol, market ]
8 | @onLoad: init()
9 | @onUnload: terminate()
10 |
--------------------------------------------------------------------------------
/modules/game_ruleviolation/ruleviolation.otmod:
--------------------------------------------------------------------------------
1 | Module
2 | name: game_ruleviolation
3 | description: Rule violation interface (Ctrl+Y)
4 | author: andrefaramir
5 | website: https://github.com/edubart/otclient
6 | sandboxed: true
7 | scripts: [ ruleviolation ]
8 | @onLoad: init()
9 | @onUnload: terminate()
10 |
--------------------------------------------------------------------------------
/modules/corelib/ui/uibutton.lua:
--------------------------------------------------------------------------------
1 | -- @docclass
2 | UIButton = extends(UIWidget, "UIButton")
3 |
4 | function UIButton.create()
5 | local button = UIButton.internalCreate()
6 | button:setFocusable(false)
7 | return button
8 | end
9 |
10 | function UIButton:onMouseRelease(pos, button)
11 | return self:isPressed()
12 | end
13 |
--------------------------------------------------------------------------------
/modules/game_market/ui/general/marketbuttons.otui:
--------------------------------------------------------------------------------
1 | MarketButtonBox < ButtonBoxRounded
2 | font: verdana-11px-rounded
3 | color: #f55e5ebb
4 | size: 106 22
5 | text-offset: 0 2
6 | text-align: center
7 |
8 | $checked:
9 | color: white
10 |
11 | $disabled:
12 | color: #666666ff
13 | image-color: #ffffff88
14 |
--------------------------------------------------------------------------------
/modules/game_skills/skills.otmod:
--------------------------------------------------------------------------------
1 | Module
2 | name: game_skills
3 | description: Manage skills window
4 | author: baxnie, edubart
5 | website: https://github.com/edubart/otclient
6 | sandboxed: true
7 | scripts: [ skills ]
8 | @onLoad: init()
9 | @onUnload: terminate()
10 | dependencies:
11 | - game_interface
12 |
--------------------------------------------------------------------------------
/modules/game_healthinfo/healthinfo.otmod:
--------------------------------------------------------------------------------
1 | Module
2 | name: game_healthinfo
3 | description: Displays health, mana points, soul points, and conditions
4 | author: edubart, BeniS
5 | website: https://github.com/edubart/otclient
6 | sandboxed: true
7 | scripts: [ healthinfo ]
8 | @onLoad: init()
9 | @onUnload: terminate()
10 |
--------------------------------------------------------------------------------
/modules/game_modaldialog/modaldialog.otmod:
--------------------------------------------------------------------------------
1 | Module
2 | name: game_modaldialog
3 | description: Show and process modal dialogs
4 | author: Summ
5 | website: https://github.com/edubart/otclient
6 | sandboxed: true
7 | dependencies: [ game_interface ]
8 | scripts: [ modaldialog ]
9 | @onLoad: init()
10 | @onUnload: terminate()
11 |
--------------------------------------------------------------------------------
/modules/client_modulemanager/modulemanager.otmod:
--------------------------------------------------------------------------------
1 | Module
2 | name: client_modulemanager
3 | description: Manage other modules
4 | author: edubart
5 | website: https://github.com/edubart/otclient
6 | sandboxed: true
7 | scripts: [ modulemanager ]
8 | dependencies: [ client_topmenu ]
9 | @onLoad: init()
10 | @onUnload: terminate()
11 |
--------------------------------------------------------------------------------
/modules/corelib/bitwise.lua:
--------------------------------------------------------------------------------
1 | Bit = {}
2 |
3 | function Bit.bit(p)
4 | return 2 ^ p
5 | end
6 |
7 | function Bit.hasBit(x, p)
8 | return x % (p + p) >= p
9 | end
10 |
11 | function Bit.setbit(x, p)
12 | return Bit.hasBit(x, p) and x or x + p
13 | end
14 |
15 | function Bit.clearbit(x, p)
16 | return Bit.hasBit(x, p) and x - p or x
17 | end
--------------------------------------------------------------------------------
/modules/game_textwindow/textwindow.otmod:
--------------------------------------------------------------------------------
1 | Module
2 | name: game_textwindow
3 | description: Allow to edit text books and lists
4 | author: edubart, BeniS
5 | website: https://github.com/edubart/otclient
6 | sandboxed: true
7 | dependencies: [ game_interface ]
8 | scripts: [ textwindow ]
9 | @onLoad: init()
10 | @onUnload: terminate()
11 |
--------------------------------------------------------------------------------
/modules/client_background/background.otmod:
--------------------------------------------------------------------------------
1 | Module
2 | name: client_background
3 | description: Handles the background of the login screen
4 | author: edubart
5 | website: https://github.com/edubart/otclient
6 | sandboxed: true
7 | scripts: [ background ]
8 | dependencies: [ client_topmenu ]
9 | @onLoad: init()
10 | @onUnload: terminate()
11 |
--------------------------------------------------------------------------------
/data/styles/10-separators.otui:
--------------------------------------------------------------------------------
1 | HorizontalSeparator < UIWidget
2 | image-source: /images/ui/separator_horizontal
3 | image-border: 1
4 | height: 2
5 | phantom: true
6 | focusable: false
7 |
8 | VerticalSeparator < UIWidget
9 | image-source: /images/ui/separator_vertical
10 | image-border: 1
11 | width: 2
12 | phantom: true
13 | focusable: false
14 |
--------------------------------------------------------------------------------
/tools/katepart-syntax/README:
--------------------------------------------------------------------------------
1 | Syntax for OTML files for kate/kwrite/kdevelop
2 | Place the xml files in $HOME/.kde4/share/apps/katepart/syntax/
3 |
4 | After installing the files to go in "Configure Kate->Editor Component->Open/Save->Mode & Filetypes"
5 | select "Markup/OTML" and add "kate: space-indent on; indent-width 2;" in Variables field,
6 | do the same for "Scripts/Lua".
--------------------------------------------------------------------------------
/data/locales/en.lua:
--------------------------------------------------------------------------------
1 | locale = {
2 | name = "en",
3 | charset = "cp1252",
4 | languageName = "English",
5 |
6 | formatNumbers = true,
7 | decimalSeperator = '.',
8 | thousandsSeperator = ',',
9 |
10 | -- translations are not needed because everything is already in english
11 | translation = {}
12 | }
13 |
14 | modules.client_locales.installLocale(locale)
15 |
--------------------------------------------------------------------------------
/modules/corelib/ui/uicheckbox.lua:
--------------------------------------------------------------------------------
1 | -- @docclass
2 | UICheckBox = extends(UIWidget, "UICheckBox")
3 |
4 | function UICheckBox.create()
5 | local checkbox = UICheckBox.internalCreate()
6 | checkbox:setFocusable(false)
7 | checkbox:setTextAlign(AlignLeft)
8 | return checkbox
9 | end
10 |
11 | function UICheckBox:onClick()
12 | self:setChecked(not self:isChecked())
13 | end
14 |
--------------------------------------------------------------------------------
/src/framework/cmake/i486-mingw32_toolchain.cmake:
--------------------------------------------------------------------------------
1 | SET(CMAKE_SYSTEM_NAME Windows)
2 | SET(CMAKE_C_COMPILER i486-mingw32-gcc)
3 | SET(CMAKE_CXX_COMPILER i486-mingw32-g++)
4 | SET(CMAKE_RC_COMPILER i486-mingw32-windres)
5 | SET(CMAKE_FIND_ROOT_PATH /usr/i486-mingw32)
6 | SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
7 | SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
8 | SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
--------------------------------------------------------------------------------
/tools/gen_needed_translations.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | echo '-- generated by ./tools/gen_needed_translations.sh'
3 | echo 'neededTranslations = {'
4 | cat <(find -L \( -name "*.lua" -o -name "*.otui" \) -exec grep -oE "tr\\('(\\\\'|[^'])*'" {} \;) \
5 | <(find -L \( -name "*.lua" -o -name "*.otui" \) -exec grep -oE "tr\\(\"(\\\\\"|[^\"])*\"" {} \;) \
6 | | sort | uniq | sed "s/^tr(.\(.*\).$/ \"\1\",/"
7 | echo '}'
8 |
--------------------------------------------------------------------------------
/vc14/arch32.props:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | true
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | language: cpp
2 | compiler:
3 | - gcc
4 | before_script:
5 | - sudo apt-get install libboost-all-dev libphysfs-dev libssl-dev liblua5.1-dev libglew-dev libvorbis-dev libopenal-dev libz-dev -y
6 | script: |
7 | cmake . -DCMAKE_BUILD_TYPE=Release
8 | make
9 | notifications:
10 | irc:
11 | channels:
12 | - "irc.freenode.org#otclient"
13 | on_success: change
14 | skip_join: true
15 |
--------------------------------------------------------------------------------
/src/framework/cmake/i586-mingw32msvc_toolchain.cmake:
--------------------------------------------------------------------------------
1 | SET(CMAKE_SYSTEM_NAME Windows)
2 | SET(CMAKE_C_COMPILER i586-mingw32msvc-gcc)
3 | SET(CMAKE_CXX_COMPILER i586-mingw32msvc-g++)
4 | SET(CMAKE_RC_COMPILER i586-mingw32msvc-windres)
5 | SET(CMAKE_FIND_ROOT_PATH /usr/i586-mingw32msvc)
6 | SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
7 | SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
8 | SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
9 |
--------------------------------------------------------------------------------
/src/framework/cmake/i686-w64-mingw32_toolchain.cmake:
--------------------------------------------------------------------------------
1 | SET(CMAKE_SYSTEM_NAME Windows)
2 | SET(CMAKE_C_COMPILER i686-w64-mingw32-gcc)
3 | SET(CMAKE_CXX_COMPILER i686-w64-mingw32-g++)
4 | SET(CMAKE_RC_COMPILER i686-w64-mingw32-windres)
5 | SET(CMAKE_FIND_ROOT_PATH /usr/i686-w64-mingw32)
6 | SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
7 | SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
8 | SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
9 |
--------------------------------------------------------------------------------
/data/styles/30-messageboxes.otui:
--------------------------------------------------------------------------------
1 | MessageBoxLabel < Label
2 | id: messageBoxLabel
3 | anchors.horizontalCenter: parent.horizontalCenter
4 | anchors.top: parent.top
5 | text-wrap: true
6 | text-auto-resize: true
7 |
8 | MessageBoxButtonHolder < UIWidget
9 | id: buttonHolder
10 | margin-top: 10
11 | anchors.bottom: parent.bottom
12 |
13 | MessageBoxButton < Button
14 | margin-left: 10
15 | width: 80
16 |
--------------------------------------------------------------------------------
/modules/game_market/ui/myoffers.otui:
--------------------------------------------------------------------------------
1 | Panel
2 |
3 | MarketTabBar
4 | id: offersTabBar
5 | width: 187
6 | height:25
7 | anchors.top: parent.top
8 | anchors.left: parent.left
9 | anchors.right: parent.right
10 |
11 | Panel
12 | id: offersTabContent
13 | anchors.top: prev.bottom
14 | anchors.left: prev.left
15 | anchors.right: prev.right
16 | anchors.bottom: parent.bottom
17 |
--------------------------------------------------------------------------------
/website_and_php_files/map_viewer/libs/MarkerCluster.css:
--------------------------------------------------------------------------------
1 | .leaflet-cluster-anim .leaflet-marker-icon, .leaflet-cluster-anim .leaflet-marker-shadow {
2 | -webkit-transition: -webkit-transform 0.3s ease-out, opacity 0.3s ease-in;
3 | -moz-transition: -moz-transform 0.3s ease-out, opacity 0.3s ease-in;
4 | -o-transition: -o-transform 0.3s ease-out, opacity 0.3s ease-in;
5 | transition: transform 0.3s ease-out, opacity 0.3s ease-in;
6 | }
7 |
--------------------------------------------------------------------------------
/modules/game_market/ui/marketoffers/overview.otui:
--------------------------------------------------------------------------------
1 | Panel
2 | background-color: #22283399
3 | margin: 1
4 |
5 | Label
6 | !text: tr('Reserved for more functionality later.')
7 | anchors.top: parent.top
8 | anchors.left: parent.left
9 | anchors.right: parent.right
10 | margin-top: 6
11 | margin-left: 6
12 | margin-right: 6
13 | font: verdana-11px-rounded
14 | text-offset: 0 2
15 | height: 50
16 | text-wrap: true
--------------------------------------------------------------------------------
/data/styles/10-panels.otui:
--------------------------------------------------------------------------------
1 | Panel < UIWidget
2 | phantom: true
3 | auto-focus: first
4 |
5 | ScrollablePanel < UIScrollArea
6 | phantom: true
7 | auto-focus: first
8 |
9 | FlatPanel < Panel
10 | image-source: /images/ui/panel_flat
11 | image-border: 1
12 |
13 | ScrollableFlatPanel < ScrollablePanel
14 | image-source: /images/ui/panel_flat
15 | image-border: 1
16 |
17 | LightFlatPanel < Panel
18 | image-source: /images/ui/panel_lightflat
19 | image-border: 1
20 |
--------------------------------------------------------------------------------
/data/styles/10-listboxes.otui:
--------------------------------------------------------------------------------
1 | TextList < UIScrollArea
2 | layout: verticalBox
3 | border-width: 1
4 | border-color: #272727
5 | background-color: #636363
6 | padding: 1
7 | auto-focus: none
8 |
9 | HorizontalList < UIScrollArea
10 | layout: horizontalBox
11 | border-width: 1
12 | border-color: #272727
13 | background-color: #636363
14 |
15 | VerticalList < UIScrollArea
16 | layout: verticalBox
17 | border-width: 1
18 | border-color: #272727
19 | background-color: #636363
--------------------------------------------------------------------------------
/modules/client_entergame/entergame.otmod:
--------------------------------------------------------------------------------
1 | Module
2 | name: client_entergame
3 | description: Manages enter game and character list windows
4 | author: edubart
5 | website: https://github.com/edubart/otclient
6 |
7 | dependencies:
8 | - client_topmenu
9 |
10 | @onLoad: |
11 | dofile 'entergame'
12 | dofile 'characterlist'
13 | EnterGame.init()
14 | CharacterList.init()
15 |
16 | @onUnload: |
17 | EnterGame.terminate()
18 | CharacterList.terminate()
19 |
--------------------------------------------------------------------------------
/modules/client_serverlist/serverlist.otmod:
--------------------------------------------------------------------------------
1 | Module
2 | name: client_serverlist
3 | description: Manages a server list of previously entered servers
4 | author: BeniS
5 | website: https://github.com/edubart/otclient
6 |
7 | dependencies:
8 | - client_entergame
9 |
10 | @onLoad: |
11 | dofile 'serverlist'
12 | dofile 'addserver'
13 | ServerList.init()
14 | AddServer.init()
15 |
16 | @onUnload: |
17 | ServerList.terminate()
18 | AddServer.terminate()
19 |
--------------------------------------------------------------------------------
/data/styles/10-labels.otui:
--------------------------------------------------------------------------------
1 | Label < UILabel
2 | font: verdana-11px-antialised
3 | color: #dfdfdf
4 |
5 | $disabled:
6 | color: #dfdfdf88
7 |
8 | FlatLabel < UILabel
9 | font: verdana-11px-antialised
10 | color: #dfdfdf
11 | size: 86 20
12 | text-offset: 3 3
13 | image-source: /images/ui/panel_flat
14 | image-border: 1
15 |
16 | $disabled:
17 | color: #dfdfdf88
18 |
19 | MenuLabel < Label
20 |
21 | GameLabel < UILabel
22 | font: verdana-11px-antialised
23 | color: #dfdfdf
24 |
--------------------------------------------------------------------------------
/data/styles/10-textedits.otui:
--------------------------------------------------------------------------------
1 | TextEdit < UITextEdit
2 | font: verdana-11px-antialised
3 | color: #272727
4 | size: 86 22
5 | text-offset: 0 4
6 | opacity: 1
7 | padding: 4
8 | image-source: /images/ui/textedit
9 | image-border: 1
10 | selection-color: #272727
11 | selection-background-color: #cccccc
12 | $disabled:
13 | color: #27272788
14 | opacity: 0.5
15 |
16 | PasswordTextEdit < TextEdit
17 | text-hidden: true
18 |
19 | MultilineTextEdit < TextEdit
20 | multiline: true
21 |
--------------------------------------------------------------------------------
/modules/game_market/ui/general/marketcombobox.otui:
--------------------------------------------------------------------------------
1 | MarketComboBoxPopupMenuButton < ComboBoxRoundedPopupMenuButton
2 | height: 18
3 | font: verdana-11px-rounded
4 | text-offset: 2 2
5 |
6 | MarketComboBoxPopupMenuSeparator < UIWidget
7 | image-source: /images/combobox_rounded
8 | image-repeated: true
9 | image-clip: 1 59 89 1
10 | height: 1
11 | phantom: true
12 |
13 | MarketComboBoxPopupMenu < ComboBoxRoundedPopupMenu
14 |
15 | MarketComboBox < ComboBoxRounded
16 | font: verdana-11px-rounded
17 | size: 86 20
18 | text-offset: 3 2
19 |
--------------------------------------------------------------------------------
/website_and_php_files/map_viewer/libs/L.Control.Zoomslider.ie.css:
--------------------------------------------------------------------------------
1 | /* IE6-7 specific hacks */
2 | .leaflet-control-zoomslider-wrap {
3 | *width: 26px;
4 | }
5 | /* Fix IE6-divs having a too large min height */
6 | .leaflet-control-zoomslider-knob {
7 | *overflow: hidden;
8 | }
9 |
10 | /* Support for element:after { content: 'text' } */
11 | .leaflet-control-zoomslider-in {
12 | *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '+');
13 | }
14 | .leaflet-control-zoomslider-out {
15 | *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '-');
16 | }
--------------------------------------------------------------------------------
/modules/client/client.otmod:
--------------------------------------------------------------------------------
1 | Module
2 | name: client
3 | description: Initialize the client and setups its main window
4 | author: edubart
5 | website: https://github.com/edubart/otclient
6 | reloadable: false
7 | sandboxed: true
8 | scripts: [ client ]
9 | @onLoad: init()
10 | @onUnload: terminate()
11 |
12 | load-later:
13 | - client_styles
14 | - client_locales
15 | - client_topmenu
16 | - client_background
17 | - client_options
18 | - client_terminal
19 | - client_entergame
20 | - client_modulemanager
21 | - client_serverlist
22 | - client_stats
23 |
--------------------------------------------------------------------------------
/modules/gamelib/gamelib.otmod:
--------------------------------------------------------------------------------
1 | Module
2 | name: gamelib
3 | description: Contains game related classes
4 | author: OTClient team
5 | website: https://github.com/edubart/otclient
6 |
7 | dependencies:
8 | - game_things
9 |
10 | @onLoad: |
11 | dofile 'const'
12 | dofile 'util'
13 | dofile 'protocol'
14 | dofile 'protocollogin'
15 | dofile 'protocolgame'
16 | dofile 'position'
17 | dofile 'game'
18 |
19 | dofile 'creature'
20 | dofile 'player'
21 | dofile 'market'
22 | dofile 'textmessages'
23 | dofile 'thing'
24 | dofile 'spells'
25 |
26 | dofiles 'ui'
27 |
--------------------------------------------------------------------------------
/data/styles/10-windows.otui:
--------------------------------------------------------------------------------
1 | Window < UIWindow
2 | font: verdana-11px-antialised
3 | size: 200 200
4 | opacity: 1
5 | color: #dfdfdf
6 | text-offset: 0 6
7 | text-align: top
8 | image-source: /images/ui/window
9 | image-border: 6
10 | image-border-top: 27
11 | padding-top: 36
12 | padding-left: 16
13 | padding-right: 16
14 | padding-bottom: 16
15 |
16 | $disabled:
17 | color: #dfdfdf88
18 |
19 | $dragging:
20 | opacity: 0.8
21 |
22 | HeadlessWindow < UIWindow
23 | image-source: /images/ui/window_headless
24 | image-border: 5
25 | padding: 5
26 |
27 | MainWindow < Window
28 | anchors.centerIn: parent
--------------------------------------------------------------------------------
/vc14/arch64.props:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Speed
8 | true
9 | StreamingSIMDExtensions2
10 | Fast
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/modules/client_background/background.otui:
--------------------------------------------------------------------------------
1 | Panel
2 | id: background
3 | image-source: /images/background
4 | image-smooth: true
5 | image-fixed-ratio: true
6 | anchors.top: topMenu.bottom
7 | anchors.left: parent.left
8 | anchors.right: parent.right
9 | anchors.bottom: parent.bottom
10 | margin-top: 1
11 | focusable: false
12 |
13 | UILabel
14 | id: clientVersionLabel
15 | background-color: #00000099
16 | anchors.right: parent.right
17 | anchors.bottom: parent.bottom
18 | text-align: center
19 | text-auto-resize: true
20 | width: 120
21 | padding: 2
22 | color: #ffffff
23 | font: verdana-11px-monochrome
24 |
--------------------------------------------------------------------------------
/modules/game_viplist/viplist.otui:
--------------------------------------------------------------------------------
1 | VipListLabel < GameLabel
2 | margin-top: 2
3 | text-offset: 16 0
4 | image-rect: 0 0 12 12
5 | image-clip: 0 0 12 12
6 | image-source: /images/game/viplist/icons
7 | font: verdana-11px-monochrome
8 | phantom: false
9 |
10 | $first:
11 | margin-top: 5
12 |
13 | MiniWindow
14 | id: vipWindow
15 | !text: tr('VIP List')
16 | height: 100
17 | icon: /images/topbuttons/viplist
18 | @onClose: modules.game_viplist.onMiniWindowClose()
19 | &save: true
20 |
21 | MiniWindowContents
22 | layout: verticalBox
23 | padding-left: 5
24 | padding-right: 5
25 | &onMousePress: modules.game_viplist.onVipListMousePress
26 |
--------------------------------------------------------------------------------
/src/framework/cmake/FindGMP.cmake:
--------------------------------------------------------------------------------
1 | # Try to find the GMP library
2 | # GMP_FOUND - system has GMP
3 | # GMP_INCLUDE_DIR - the GMP include directory
4 | # GMP_LIBRARY - the GMP library
5 |
6 | FIND_PATH(GMP_INCLUDE_DIR NAMES gmp.h)
7 | SET(_GMP_STATIC_LIBS libgmp.a)
8 | SET(_GMP_SHARED_LIBS libgmp.dll.a gmp)
9 | IF(USE_STATIC_LIBS)
10 | FIND_LIBRARY(GMP_LIBRARY NAMES ${_GMP_STATIC_LIBS} ${_GMP_SHARED_LIBS})
11 | ELSE()
12 | FIND_LIBRARY(GMP_LIBRARY NAMES ${_GMP_SHARED_LIBS} ${_GMP_STATIC_LIBS})
13 | ENDIF()
14 | INCLUDE(FindPackageHandleStandardArgs)
15 | FIND_PACKAGE_HANDLE_STANDARD_ARGS(GMP DEFAULT_MSG GMP_LIBRARY GMP_INCLUDE_DIR)
16 | MARK_AS_ADVANCED(GMP_LIBRARY GMP_INCLUDE_DIR)
--------------------------------------------------------------------------------
/src/framework/cmake/FindOgg.cmake:
--------------------------------------------------------------------------------
1 | # Try to find the OGG library
2 | # OGG_FOUND - system has OGG
3 | # OGG_INCLUDE_DIR - the OGG include directory
4 | # OGG_LIBRARY - the OGG library
5 |
6 | FIND_PATH(OGG_INCLUDE_DIR NAMES ogg/ogg.h)
7 | SET(_OGG_STATIC_LIBS libogg.a)
8 | SET(_OGG_SHARED_LIBS libogg.dll.a ogg)
9 | IF(USE_STATIC_LIBS)
10 | FIND_LIBRARY(OGG_LIBRARY NAMES ${_OGG_STATIC_LIBS} ${_OGG_SHARED_LIBS})
11 | ELSE()
12 | FIND_LIBRARY(OGG_LIBRARY NAMES ${_OGG_SHARED_LIBS} ${_OGG_STATIC_LIBS})
13 | ENDIF()
14 | INCLUDE(FindPackageHandleStandardArgs)
15 | FIND_PACKAGE_HANDLE_STANDARD_ARGS(OGG DEFAULT_MSG OGG_LIBRARY OGG_INCLUDE_DIR)
16 | MARK_AS_ADVANCED(OGG_LIBRARY OGG_INCLUDE_DIR)
--------------------------------------------------------------------------------
/data/styles/10-progressbars.otui:
--------------------------------------------------------------------------------
1 | ProgressBar < UIProgressBar
2 | height: 16
3 | background-color: red
4 | image-source: /images/ui/progressbar
5 | image-border: 1
6 | font: verdana-11px-rounded
7 | text-offset: 0 2
8 |
9 | $!on:
10 | visible: false
11 | margin-top: 0
12 | margin-bottom: 0
13 | height: 0
14 |
15 | LifeProgressBar < UIProgressBar
16 | height: 16
17 | background-color: green
18 | border: 1 black
19 | font: verdana-11px-rounded
20 | text-offset: 0 2
21 | margin: 2
22 |
23 | ProgressRect < UIProgressRect
24 | anchors.fill: parent
25 | phantom: true
26 | color: white
27 | background-color: #00000088
28 | font: verdana-11px-rounded
29 |
--------------------------------------------------------------------------------
/modules/corelib/ui/uiwidget.lua:
--------------------------------------------------------------------------------
1 | -- @docclass UIWidget
2 |
3 | function UIWidget:setMargin(...)
4 | local params = {...}
5 | if #params == 1 then
6 | self:setMarginTop(params[1])
7 | self:setMarginRight(params[1])
8 | self:setMarginBottom(params[1])
9 | self:setMarginLeft(params[1])
10 | elseif #params == 2 then
11 | self:setMarginTop(params[1])
12 | self:setMarginRight(params[2])
13 | self:setMarginBottom(params[1])
14 | self:setMarginLeft(params[2])
15 | elseif #params == 4 then
16 | self:setMarginTop(params[1])
17 | self:setMarginRight(params[2])
18 | self:setMarginBottom(params[3])
19 | self:setMarginLeft(params[4])
20 | end
21 | end
22 |
--------------------------------------------------------------------------------
/src/framework/cmake/FindEGL.cmake:
--------------------------------------------------------------------------------
1 | # Try to find the EGL library
2 | # EGL_FOUND - system has EGL
3 | # EGL_INCLUDE_DIR - the EGL include directory
4 | # EGL_LIBRARY - the EGL library
5 |
6 | FIND_PATH(EGL_INCLUDE_DIR NAMES EGL/egl.h)
7 | SET(_EGL_STATIC_LIBS libEGL.a)
8 | SET(_EGL_SHARED_LIBS libEGL.dll.a EGL)
9 | #IF(USE_STATIC_LIBS)
10 | # FIND_LIBRARY(EGL_LIBRARY NAMES ${_EGL_STATIC_LIBS} ${_EGL_SHARED_LIBS})
11 | #ELSE()
12 | FIND_LIBRARY(EGL_LIBRARY NAMES ${_EGL_SHARED_LIBS} ${_EGL_STATIC_LIBS})
13 | #ENDIF()
14 | INCLUDE(FindPackageHandleStandardArgs)
15 | FIND_PACKAGE_HANDLE_STANDARD_ARGS(EGL DEFAULT_MSG EGL_LIBRARY EGL_INCLUDE_DIR)
16 | MARK_AS_ADVANCED(EGL_LIBRARY EGL_INCLUDE_DIR)
17 |
--------------------------------------------------------------------------------
/modules/corelib/corelib.otmod:
--------------------------------------------------------------------------------
1 | Module
2 | name: corelib
3 | description: Contains core lua classes, functions and constants used by other modules
4 | author: OTClient team
5 | website: https://github.com/edubart/otclient
6 | reloadable: false
7 |
8 | @onLoad: |
9 | dofile 'math'
10 | dofile 'string'
11 | dofile 'table'
12 | dofile 'bitwise'
13 | dofile 'struct'
14 |
15 | dofile 'const'
16 | dofile 'util'
17 | dofile 'globals'
18 | dofile 'config'
19 | dofile 'settings'
20 | dofile 'keyboard'
21 | dofile 'mouse'
22 | dofile 'net'
23 |
24 | dofiles 'classes'
25 | dofiles 'ui'
26 |
27 | dofile 'inputmessage'
28 | dofile 'outputmessage'
--------------------------------------------------------------------------------
/modules/game_playerdeath/deathwindow.otui:
--------------------------------------------------------------------------------
1 | DeathWindow < MainWindow
2 | id: deathWindow
3 | !text: tr('You are dead')
4 | &baseWidth: 350
5 | &baseHeight: 15
6 |
7 | Label
8 | id: labelText
9 | width: 550
10 | height: 140
11 | anchors.left: parent.left
12 | anchors.top: parent.top
13 | margin-left: 10
14 | margin-top: 2
15 |
16 | Button
17 | id: buttonOk
18 | !text: tr('Ok')
19 | width: 64
20 | anchors.left: parent.left
21 | anchors.bottom: parent.bottom
22 | margin-left: 160
23 |
24 | Button
25 | id: buttonCancel
26 | !text: tr('Cancel')
27 | width: 64
28 | anchors.left: prev.right
29 | anchors.bottom: parent.bottom
30 | margin-left: 5
31 |
--------------------------------------------------------------------------------
/src/framework/cmake/FindZLIB.cmake:
--------------------------------------------------------------------------------
1 | # Try to find the ZLIB library
2 | # ZLIB_FOUND - system has ZLIB
3 | # ZLIB_INCLUDE_DIR - the ZLIB include directory
4 | # ZLIB_LIBRARY - the ZLIB library
5 |
6 | FIND_PATH(ZLIB_INCLUDE_DIR NAMES zlib.h)
7 | SET(_ZLIB_STATIC_LIBS libz.a libzlib.a zlib1.a)
8 | SET(_ZLIB_SHARED_LIBS libz.dll.a zdll zlib zlib1 z)
9 | IF(USE_STATIC_LIBS)
10 | FIND_LIBRARY(ZLIB_LIBRARY NAMES ${_ZLIB_STATIC_LIBS} ${_ZLIB_SHARED_LIBS})
11 | ELSE()
12 | FIND_LIBRARY(ZLIB_LIBRARY NAMES ${_ZLIB_SHARED_LIBS} ${_ZLIB_STATIC_LIBS})
13 | ENDIF()
14 | INCLUDE(FindPackageHandleStandardArgs)
15 | FIND_PACKAGE_HANDLE_STANDARD_ARGS(ZLIB DEFAULT_MSG ZLIB_LIBRARY ZLIB_INCLUDE_DIR)
16 | MARK_AS_ADVANCED(ZLIB_LIBRARY ZLIB_INCLUDE_DIR)
--------------------------------------------------------------------------------
/modules/corelib/net.lua:
--------------------------------------------------------------------------------
1 | function translateNetworkError(errcode, connecting, errdesc)
2 | local text
3 | if errcode == 111 then
4 | text = tr('Connection refused, the server might be offline or restarting.\nPlease try again later.')
5 | elseif errcode == 110 then
6 | text = tr('Connection timed out. Either your network is failing or the server is offline.')
7 | elseif errcode == 1 then
8 | text = tr('Connection failed, the server address does not exist.')
9 | elseif connecting then
10 | text = tr('Connection failed.')
11 | else
12 | text = tr('Your connection has been lost.\nEither your network or the server went down.')
13 | end
14 | text = text .. ' ' .. tr('(ERROR %d)', errcode)
15 | return text
16 | end
17 |
--------------------------------------------------------------------------------
/src/framework/cmake/FindGLEW.cmake:
--------------------------------------------------------------------------------
1 | # Try to find the GLEW library
2 | # GLEW_FOUND - system has GLEW
3 | # GLEW_INCLUDE_DIR - the GLEW include directory
4 | # GLEW_LIBRARY - the GLEW library
5 |
6 | FIND_PATH(GLEW_INCLUDE_DIR NAMES GL/glew.h)
7 | SET(_GLEW_STATIC_LIBS libGLEW.a libglew32.a)
8 | SET(_GLEW_SHARED_LIBS libGLEW.dll.a libglew32.dll.a GLEW glew32)
9 | IF(USE_STATIC_LIBS)
10 | FIND_LIBRARY(GLEW_LIBRARY NAMES ${_GLEW_STATIC_LIBS} ${_GLEW_SHARED_LIBS})
11 | ELSE()
12 | FIND_LIBRARY(GLEW_LIBRARY NAMES ${_GLEW_SHARED_LIBS} ${_GLEW_STATIC_LIBS})
13 | ENDIF()
14 | INCLUDE(FindPackageHandleStandardArgs)
15 | FIND_PACKAGE_HANDLE_STANDARD_ARGS(GLEW DEFAULT_MSG GLEW_LIBRARY GLEW_INCLUDE_DIR)
16 | MARK_AS_ADVANCED(GLEW_LIBRARY GLEW_INCLUDE_DIR)
--------------------------------------------------------------------------------
/vc14/release.props:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | $(ProjectDir)../
7 | false
8 |
9 |
10 |
11 | Full
12 | $(IntDir)\obj_r\%(RelativeDir)
13 |
14 |
15 | UseLinkTimeCodeGeneration
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/tools/gen_lang_template.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | #best use ./gen_lang_template >> ../data/locales/XX.lua
3 | #it wont run if you type "sh gen_lang_template", type "./gen_lang_template.sh" instead
4 | #based on gen_needed_translations.sh
5 | echo '-- generated by ./tools/gen_lang_template.sh'
6 | echo 'locale ={'
7 | echo ' name="",'
8 | echo ' languageName="",'
9 | echo ' translation = {'
10 | cat <(find -L ../ \( -name "*.lua" -o -name "*.otui" \) -exec grep -oE "tr\\('(\\\\'|[^'])*'" {} \;) \
11 | <(find -L ../ \( -name "*.lua" -o -name "*.otui" \) -exec grep -oE "tr\\(\"(\\\\\"|[^\"])*\"" {} \;) \
12 | | sort | uniq | sed "s/^tr(.\(.*\).$/ [\"\1\"] = \"\",/"
13 | echo ' }'
14 | echo '}'
15 | echo 'modules.client_locales.installLocale(locale)'
16 |
--------------------------------------------------------------------------------
/src/framework/cmake/FindVorbis.cmake:
--------------------------------------------------------------------------------
1 | # Try to find the VORBIS library
2 | # VORBIS_FOUND - system has VORBIS
3 | # VORBIS_INCLUDE_DIR - the VORBIS include directory
4 | # VORBIS_LIBRARY - the VORBIS library
5 |
6 | FIND_PATH(VORBIS_INCLUDE_DIR NAMES vorbis/codec.h)
7 | SET(_VORBIS_STATIC_LIBS libvorbis.a)
8 | SET(_VORBIS_SHARED_LIBS libvorbis.dll.a vorbis)
9 | IF(USE_STATIC_LIBS)
10 | FIND_LIBRARY(VORBIS_LIBRARY NAMES ${_VORBIS_STATIC_LIBS} ${_VORBIS_SHARED_LIBS})
11 | ELSE()
12 | FIND_LIBRARY(VORBIS_LIBRARY NAMES ${_VORBIS_SHARED_LIBS} ${_VORBIS_STATIC_LIBS})
13 | ENDIF()
14 | INCLUDE(FindPackageHandleStandardArgs)
15 | FIND_PACKAGE_HANDLE_STANDARD_ARGS(VORBIS DEFAULT_MSG VORBIS_LIBRARY VORBIS_INCLUDE_DIR)
16 | MARK_AS_ADVANCED(VORBIS_LIBRARY VORBIS_INCLUDE_DIR)
--------------------------------------------------------------------------------
/src/framework/cmake/FindPhysFS.cmake:
--------------------------------------------------------------------------------
1 | # Try to find the PHYSFS library
2 | # PHYSFS_FOUND - system has PHYSFS
3 | # PHYSFS_INCLUDE_DIR - the PHYSFS include directory
4 | # PHYSFS_LIBRARY - the PHYSFS library
5 |
6 | FIND_PATH(PHYSFS_INCLUDE_DIR physfs.h PATH_SUFFIXES physfs)
7 | SET(_PHYSFS_STATIC_LIBS libphysfs.a)
8 | SET(_PHYSFS_SHARED_LIBS libphysfs.dll.a physfs)
9 | IF(USE_STATIC_LIBS)
10 | FIND_LIBRARY(PHYSFS_LIBRARY NAMES ${_PHYSFS_STATIC_LIBS} ${_PHYSFS_SHARED_LIBS})
11 | ELSE()
12 | FIND_LIBRARY(PHYSFS_LIBRARY NAMES ${_PHYSFS_SHARED_LIBS} ${_PHYSFS_STATIC_LIBS})
13 | ENDIF()
14 | INCLUDE(FindPackageHandleStandardArgs)
15 | FIND_PACKAGE_HANDLE_STANDARD_ARGS(PHYSFS DEFAULT_MSG PHYSFS_LIBRARY PHYSFS_INCLUDE_DIR)
16 | MARK_AS_ADVANCED(PHYSFS_LIBRARY PHYSFS_INCLUDE_DIR)
--------------------------------------------------------------------------------
/data/styles/30-inputboxes.otui:
--------------------------------------------------------------------------------
1 | InputBoxLabel < Label
2 | fixed-size: true
3 | text-align: left
4 | InputBoxLineEdit < TextEdit
5 | InputBoxTextEdit < MultilineTextEdit
6 | text-wrap: true
7 | InputBoxSpinBox < SpinBox
8 | InputBoxCheckBox < CheckBox
9 | InputBoxComboBox < ComboBox
10 | InputBoxComboBoxPopupMenu < ComboBoxPopupMenu
11 | InputBoxComboBoxPopupMenuButton < ComboBoxPopupMenuButton
12 | InputBoxButton < Button
13 | margin-left: 10
14 | fixed-size: true
15 |
16 | InputBoxButtonsPanel < Panel
17 | height: 20
18 | margin-top: 4
19 | focusable: false
20 | layout:
21 | type: horizontalBox
22 | align-right: true
23 |
24 | InputBoxWindow < MainWindow
25 | __class: UIInputBox
26 | width: 260
27 | layout:
28 | type: verticalBox
29 | fit-children: true
30 | spacing: 2
--------------------------------------------------------------------------------
/website_and_php_files/3_pre_compress.php:
--------------------------------------------------------------------------------
1 | isDir())
13 | continue;
14 |
15 | $imagePath = $filename->getPathname();
16 |
17 | if (substr($imagePath, $substrFromExtensionLength) != $fromExtension)
18 | continue;
19 |
20 | $files[] = $imagePath;
21 | }
22 | file_put_contents('fs_compress.serialized', serialize($files));
23 | echo "Files to compress count: " . count($files) . ", time: " . (time() - $startTime) . " seconds" . PHP_EOL;
--------------------------------------------------------------------------------
/modules/client_options/audio.otui:
--------------------------------------------------------------------------------
1 | Panel
2 | OptionCheckBox
3 | id: enableAudio
4 | !text: tr('Enable audio')
5 |
6 | OptionCheckBox
7 | id: enableMusicSound
8 | !text: tr('Enable music sound')
9 |
10 | Label
11 | id: musicSoundVolumeLabel
12 | !text: tr('Music volume: %d', 100)
13 | anchors.left: parent.left
14 | anchors.right: parent.right
15 | anchors.top: prev.bottom
16 | margin-top: 6
17 | @onSetup: |
18 | local value = modules.client_options.getOption('musicSoundVolume')
19 | self:setText(tr('Music volume: %d', value))
20 |
21 | OptionScrollbar
22 | id: musicSoundVolume
23 | anchors.left: parent.left
24 | anchors.right: parent.right
25 | anchors.top: prev.bottom
26 | margin-top: 3
27 | minimum: 0
28 | maximum: 100
29 |
--------------------------------------------------------------------------------
/data/styles/20-spinboxes.otui:
--------------------------------------------------------------------------------
1 | SpinBox < TextEdit
2 | __class: UISpinBox
3 | text-align: left
4 | size: 86 22
5 | padding: 0
6 | padding-left: 2
7 |
8 | Button
9 | id: up
10 | size: 11 11
11 | image-source: /images/ui/spinbox_up
12 | image-border: 1
13 | image-clip: 0 0 10 10
14 | anchors.top: parent.top
15 | anchors.right: parent.right
16 |
17 | $hover:
18 | image-clip: 0 10 10 10
19 | $pressed:
20 | image-clip: 0 20 10 10
21 |
22 | Button
23 | id: down
24 | size: 11 11
25 | image-source: /images/ui/spinbox_down
26 | image-border: 1
27 | image-clip: 0 0 10 10
28 | anchors.bottom: parent.bottom
29 | anchors.right: parent.right
30 |
31 | $hover:
32 | image-clip: 0 10 10 10
33 | $pressed:
34 | image-clip: 0 20 10 10
35 |
--------------------------------------------------------------------------------
/modules/client_options/console.otui:
--------------------------------------------------------------------------------
1 | Panel
2 | OptionCheckBox
3 | id: showInfoMessagesInConsole
4 | !text: tr('Show info messages in console')
5 |
6 | OptionCheckBox
7 | id: showEventMessagesInConsole
8 | !text: tr('Show event messages in console')
9 |
10 | OptionCheckBox
11 | id: showStatusMessagesInConsole
12 | !text: tr('Show status messages in console')
13 |
14 | OptionCheckBox
15 | id: showTimestampsInConsole
16 | !text: tr('Show timestamps in console')
17 |
18 | OptionCheckBox
19 | id: showLevelsInConsole
20 | !text: tr('Show levels in console')
21 |
22 | OptionCheckBox
23 | id: showPrivateMessagesInConsole
24 | !text: tr('Show private messages in console')
25 |
26 | OptionCheckBox
27 | id: showPrivateMessagesOnScreen
28 | !text: tr('Show private messages on screen')
--------------------------------------------------------------------------------
/modules/client_styles/styles.lua:
--------------------------------------------------------------------------------
1 | function init()
2 | local files
3 | files = g_resources.listDirectoryFiles('/styles')
4 | for _,file in pairs(files) do
5 | if g_resources.isFileType(file, 'otui') then
6 | g_ui.importStyle('/styles/' .. file)
7 | end
8 | end
9 |
10 | files = g_resources.listDirectoryFiles('/fonts')
11 | for _,file in pairs(files) do
12 | if g_resources.isFileType(file, 'otfont') then
13 | g_fonts.importFont('/fonts/' .. file)
14 | end
15 | end
16 |
17 | files = g_resources.listDirectoryFiles('/particles')
18 | for _,file in pairs(files) do
19 | if g_resources.isFileType(file, 'otps')then
20 | g_particles.importParticle('/particles/' .. file)
21 | end
22 | end
23 |
24 | g_mouse.loadCursors('/cursors/cursors')
25 | end
26 |
27 | function terminate()
28 | end
29 |
30 |
--------------------------------------------------------------------------------
/src/framework/cmake/FindOpenGLES2.cmake:
--------------------------------------------------------------------------------
1 | # Try to find the OpenGLES2 library
2 | # OPENGLES2_FOUND - system has OpenGL ES 2.0
3 | # OPENGLES2_INCLUDE_DIR - the OpenGL ES 2.0 include directory
4 | # OPENGLES2_LIBRARY - the OpenGL ES 2.0 library
5 |
6 | FIND_PATH(OPENGLES2_INCLUDE_DIR NAMES GLES2/gl2.h)
7 | SET(_OPENGLES2_STATIC_LIBS libGLESv2.a)
8 | SET(_OPENGLES2_SHARED_LIBS libGLESv2.dll.a GLESv2)
9 | #IF(USE_STATIC_LIBS)
10 | # FIND_LIBRARY(OPENGLES2_LIBRARY NAMES ${_OPENGLES2_STATIC_LIBS} ${_OPENGLES2_SHARED_LIBS})
11 | #ELSE()
12 | FIND_LIBRARY(OPENGLES2_LIBRARY NAMES ${_OPENGLES2_SHARED_LIBS} ${_OPENGLES2_STATIC_LIBS})
13 | #ENDIF()
14 | INCLUDE(FindPackageHandleStandardArgs)
15 | FIND_PACKAGE_HANDLE_STANDARD_ARGS(OpenGLES2 DEFAULT_MSG OPENGLES2_LIBRARY OPENGLES2_INCLUDE_DIR)
16 | MARK_AS_ADVANCED(OPENGLES2_LIBRARY OPENGLES2_INCLUDE_DIR)
17 |
--------------------------------------------------------------------------------
/src/framework/cmake/FindVorbisFile.cmake:
--------------------------------------------------------------------------------
1 | # Try to find the VORBISFILE library
2 | # VORBISFILE_FOUND - system has VORBISFILE
3 | # VORBISFILE_INCLUDE_DIR - the VORBISFILE include directory
4 | # VORBISFILE_LIBRARY - the VORBISFILE library
5 |
6 | FIND_PATH(VORBISFILE_INCLUDE_DIR NAMES vorbis/vorbisfile.h)
7 | SET(_VORBISFILE_STATIC_LIBS libvorbisfile.a)
8 | SET(_VORBISFILE_SHARED_LIBS libvorbisfile.dll.a vorbisfile)
9 | IF(USE_STATIC_LIBS)
10 | FIND_LIBRARY(VORBISFILE_LIBRARY NAMES ${_VORBISFILE_STATIC_LIBS} ${_VORBISFILE_SHARED_LIBS})
11 | ELSE()
12 | FIND_LIBRARY(VORBISFILE_LIBRARY NAMES ${_VORBISFILE_SHARED_LIBS} ${_VORBISFILE_STATIC_LIBS})
13 | ENDIF()
14 | INCLUDE(FindPackageHandleStandardArgs)
15 | FIND_PACKAGE_HANDLE_STANDARD_ARGS(VORBISFILE DEFAULT_MSG VORBISFILE_LIBRARY VORBISFILE_INCLUDE_DIR)
16 | MARK_AS_ADVANCED(VORBISFILE_LIBRARY VORBISFILE_INCLUDE_DIR)
--------------------------------------------------------------------------------
/modules/game_minimap/minimap.otui:
--------------------------------------------------------------------------------
1 | MiniWindow
2 | id: minimapWindow
3 | !text: tr('Minimap')
4 | height: 150
5 | icon: /images/topbuttons/minimap
6 | @onClose: modules.game_minimap.onMiniWindowClose()
7 | &save: true
8 |
9 | Label
10 | text: ?
11 | text-align: center
12 | phantom: false
13 | !tooltip: tr('Hold left mouse button to navigate\nScroll mouse middle button to zoom\nRight mouse button to create map marks\nPress Ctrl+Shift+M to view the entire game map')
14 | anchors.top: minimizeButton.top
15 | anchors.right: minimizeButton.left
16 | margin-right: 3
17 | size: 14 14
18 |
19 | MiniWindowContents
20 | Minimap
21 | id: minimap
22 | anchors.fill: parent
23 |
24 | ResizeBorder
25 | anchors.right: parent.right
26 | anchors.top: parent.top
27 | anchors.bottom: parent.bottom
28 | enabled: true
29 |
--------------------------------------------------------------------------------
/modules/corelib/math.lua:
--------------------------------------------------------------------------------
1 | -- @docclass math
2 |
3 | local U8 = 2^8
4 | local U16 = 2^16
5 | local U32 = 2^32
6 | local U64 = 2^64
7 |
8 | function math.round(num, idp)
9 | local mult = 10^(idp or 0)
10 | if num >= 0 then
11 | return math.floor(num * mult + 0.5) / mult
12 | else
13 | return math.ceil(num * mult - 0.5) / mult
14 | end
15 | end
16 |
17 | function math.isu8(num)
18 | return math.isinteger(num) and num >= 0 and num < U8
19 | end
20 |
21 | function math.isu16(num)
22 | return math.isinteger(num) and num >= U8 and num < U16
23 | end
24 |
25 | function math.isu32(num)
26 | return math.isinteger(num) and num >= U16 and num < U32
27 | end
28 |
29 | function math.isu64(num)
30 | return math.isinteger(num) and num >= U32 and num < U64
31 | end
32 |
33 | function math.isinteger(num)
34 | return ((type(num) == 'number') and (num == math.floor(num)))
35 | end
36 |
--------------------------------------------------------------------------------
/src/framework/cmake/FindOpenGLES1.cmake:
--------------------------------------------------------------------------------
1 | # Try to find the OpenGLES2 library
2 | # OPENGLES1_FOUND - system has OpenGL ES 1.0
3 | # OPENGLES1_INCLUDE_DIR - the OpenGL ES 1.0 include directory
4 | # OPENGLES1_LIBRARY - the OpenGL ES 1.0 library
5 |
6 | FIND_PATH(OPENGLES1_INCLUDE_DIR NAMES GLES/gl.h)
7 | SET(_OPENGLES1_STATIC_LIBS libGLESv1_CM.a libGLES_CM.a)
8 | SET(_OPENGLES1_SHARED_LIBS libGLESv1_CM.dll.a libGLES_CM.dll.a GLESv1_CM GLES_CM)
9 | #IF(USE_STATIC_LIBS)
10 | # FIND_LIBRARY(OPENGLES1_LIBRARY NAMES ${_OPENGLES1_STATIC_LIBS} ${_OPENGLES1_SHARED_LIBS})
11 | #ELSE()
12 | FIND_LIBRARY(OPENGLES1_LIBRARY NAMES ${_OPENGLES1_SHARED_LIBS} ${_OPENGLES1_STATIC_LIBS})
13 | #ENDIF()
14 | INCLUDE(FindPackageHandleStandardArgs)
15 | FIND_PACKAGE_HANDLE_STANDARD_ARGS(OpenGLES2 DEFAULT_MSG OPENGLES1_LIBRARY OPENGLES1_INCLUDE_DIR)
16 | MARK_AS_ADVANCED(OPENGLES1_LIBRARY OPENGLES1_INCLUDE_DIR)
17 |
--------------------------------------------------------------------------------
/data/particles/particles.otps:
--------------------------------------------------------------------------------
1 | Particle
2 | name: groupcooldown_particle
3 |
4 | duration: 0.4
5 | min-position-radius: 0
6 | max-position-radius: 32
7 | min-position-angle: 0
8 | max-position-angle: 360
9 | velocity: 10
10 | min-velocity-angle: 0
11 | max-velocity-angle: 360
12 | colors: #ffffff00 #ffffffff #fff13000
13 | colors-stops: 0 0.1 1
14 | size: 1 1
15 | texture: /particles/particle
16 | composition-mode: normal
17 |
18 | Effect
19 | name: groupcooldown-effect
20 | description: Effect for group cooldowns in the cooldown module
21 |
22 | System
23 | position: 0 0
24 |
25 | Emitter
26 | position: 0 0
27 | delay: 0.06
28 | duration: 0.2
29 | burst-rate: 350
30 | burst-count: 50
31 | particle-type: groupcooldown_particle
32 |
33 | AttractionAffector
34 | position: 0 0
35 | acceleration: 1000
36 |
37 |
--------------------------------------------------------------------------------
/ISSUE_TEMPLATE.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | ### Before creating an issue, please ensure:
4 | - [ ] This is a bug in the software that resides in this repository, and not a
5 | support matter (use https://otland.net/forums/otclient.494/ for support)
6 | - [ ] This issue is reproducible without changes to the code in this repository
7 |
8 | ### Steps to reproduce (include any configuration/script required to reproduce)
9 | 1.
10 | 2.
11 | 3.
12 |
13 | ### Expected behaviour
14 |
15 |
16 | ### Actual behaviour
17 |
18 |
19 | ### Environment
20 |
23 |
--------------------------------------------------------------------------------
/src/framework/cmake/FindLua.cmake:
--------------------------------------------------------------------------------
1 | # Try to find the lua library
2 | # LUA_FOUND - system has lua
3 | # LUA_INCLUDE_DIR - the lua include directory
4 | # LUA_LIBRARY - the lua library
5 | # LUA_LIBRARIES - the lua library and it's dependencies
6 |
7 | FIND_PATH(LUA_INCLUDE_DIR NAMES lua.h PATH_SUFFIXES lua51 lua5.1 lua)
8 | FIND_LIBRARY(LUA_LIBRARY NAMES)
9 | SET(_LUA_STATIC_LIBS liblua51.a liblua5.1.a liblua-5.1.a liblua.a )
10 | SET(_LUA_SHARED_LIBS liblua51.dll.a liblua5.1.dll.a liblua-5.1.dll.a liblua.dll.a lua51.dll lua5.1 lua-5.1 lua)
11 | IF(USE_STATIC_LIBS)
12 | FIND_LIBRARY(LUA_LIBRARY NAMES ${_LUA_STATIC_LIBS} ${_LUA_SHARED_LIBS})
13 | ELSE()
14 | FIND_LIBRARY(LUA_LIBRARY NAMES ${_LUA_SHARED_LIBS} ${_LUA_STATIC_LIBS})
15 | ENDIF()
16 | INCLUDE(FindPackageHandleStandardArgs)
17 | FIND_PACKAGE_HANDLE_STANDARD_ARGS(Lua DEFAULT_MSG LUA_LIBRARY LUA_INCLUDE_DIR)
18 | MARK_AS_ADVANCED(LUA_LIBRARY LUA_INCLUDE_DIR)
--------------------------------------------------------------------------------
/website_and_php_files/linux_run_all.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | minFloor=0
3 | maxFloor=16
4 |
5 | echo '1: Move files to map_tiled folder'
6 | php 1_pre_tile_generator.php
7 |
8 | echo '2: Generate all zoom levels'
9 | for (( i=minFloor; i<=maxFloor; i++))
10 | do
11 | php 2_tile_generator.php $i &
12 | done
13 |
14 | while [ `jobs -lr | grep 2_tile_generator | wc -l` -gt 0 ]
15 | do
16 | sleep 1
17 | echo `date +%T` ' - Generate zoom levels - running processes: ' `jobs -lr | grep 2_tile_generator | wc -l`
18 | done
19 |
20 | echo '3: Generate list of files to compress'
21 | php 3_pre_compress.php
22 |
23 | echo '4: Compress images'
24 | for (( i=minFloor; i<=maxFloor; i++))
25 | do
26 | php 4_compress.php $i 0 &
27 | done
28 |
29 | while [ `jobs -lr | grep 4_compress | wc -l` -gt 0 ]
30 | do
31 | sleep 1
32 | echo `date +%T` ' - Compress images - running processes: ' `jobs -lr | grep 4_compress | wc -l`
33 | done
34 |
35 |
--------------------------------------------------------------------------------
/modules/client_locales/locales.otui:
--------------------------------------------------------------------------------
1 | LocalesMainLabel < Label
2 | font: sans-bold-16px
3 |
4 | LocalesButton < UIWidget
5 | size: 96 96
6 | image-size: 96 96
7 | image-smooth: true
8 | text-offset: 0 96
9 | font: verdana-11px-antialised
10 |
11 | UIWindow
12 | id: localesWindow
13 | background-color: #000000
14 | opacity: 0.90
15 | clipping: true
16 | anchors.fill: parent
17 |
18 | LocalesMainLabel
19 | !text: tr('Select your language')
20 | text-auto-resize: true
21 | anchors.horizontalCenter: parent.horizontalCenter
22 | anchors.verticalCenter: parent.verticalCenter
23 | margin-top: -100
24 |
25 | Panel
26 | id: localesPanel
27 | margin-top: 50
28 | anchors.horizontalCenter: parent.horizontalCenter
29 | anchors.top: prev.bottom
30 | anchors.bottom: parent.bottom
31 | layout:
32 | type: grid
33 | cell-size: 96 128
34 | cell-spacing: 32
35 | flow: true
36 |
--------------------------------------------------------------------------------
/modules/gamelib/textmessages.lua:
--------------------------------------------------------------------------------
1 | local messageModeCallbacks = {}
2 |
3 | function g_game.onTextMessage(messageMode, message)
4 | local callbacks = messageModeCallbacks[messageMode]
5 | if not callbacks or #callbacks == 0 then
6 | perror(string.format('Unhandled onTextMessage message mode %i: %s', messageMode, message))
7 | return
8 | end
9 |
10 | for _, callback in pairs(callbacks) do
11 | callback(messageMode, message)
12 | end
13 | end
14 |
15 | function registerMessageMode(messageMode, callback)
16 | if not messageModeCallbacks[messageMode] then
17 | messageModeCallbacks[messageMode] = {}
18 | end
19 |
20 | table.insert(messageModeCallbacks[messageMode], callback)
21 | return true
22 | end
23 |
24 | function unregisterMessageMode(messageMode, callback)
25 | if not messageModeCallbacks[messageMode] then
26 | return false
27 | end
28 |
29 | return table.removevalue(messageModeCallbacks[messageMode], callback)
30 | end
31 |
--------------------------------------------------------------------------------
/src/framework/cmake/FindLuaJIT.cmake:
--------------------------------------------------------------------------------
1 | # Try to find the lua library
2 | # LUAJIT_FOUND - system has lua
3 | # LUAJIT_INCLUDE_DIR - the lua include directory
4 | # LUAJIT_LIBRARY - the lua library
5 | # LUAJIT_LIBRARIES - the lua library and it's dependencies
6 |
7 | FIND_PATH(LUAJIT_INCLUDE_DIR NAMES lua.h PATH_SUFFIXES luajit-2.0)
8 | SET(_LUAJIT_STATIC_LIBS libluajit51.a libluajit5.1.a libluajit-5.1.a libluajit.a)
9 | SET(_LUAJIT_SHARED_LIBS libluajit51.dll.a libluajit5.1.dll.a libluajit-5.1.dll.a libluajit.dll.a luajit51 luajit5.1 luajit-5.1 luajit)
10 | IF(USE_STATIC_LIBS)
11 | FIND_LIBRARY(LUAJIT_LIBRARY NAMES ${_LUAJIT_STATIC_LIBS} ${_LUAJIT_SHARED_LIBS})
12 | ELSE()
13 | FIND_LIBRARY(LUAJIT_LIBRARY NAMES ${_LUAJIT_SHARED_LIBS} ${_LUAJIT_STATIC_LIBS})
14 | ENDIF()
15 | INCLUDE(FindPackageHandleStandardArgs)
16 | FIND_PACKAGE_HANDLE_STANDARD_ARGS(LuaJIT DEFAULT_MSG LUAJIT_LIBRARY LUAJIT_INCLUDE_DIR)
17 | MARK_AS_ADVANCED(LUAJIT_LIBRARY LUAJIT_INCLUDE_DIR)
--------------------------------------------------------------------------------
/modules/game_market/ui/general/markettabs.otui:
--------------------------------------------------------------------------------
1 | MarketTabBar < TabBar
2 | MarketTabBarPanel < TabBarPanel
3 | MarketTabBarButton < TabBarButton
4 | size: 20 25
5 | font: verdana-11px-rounded
6 | text-offset: 0 2
7 |
8 | $!first:
9 | anchors.left: prev.right
10 | margin-left: 0
11 |
12 | $hover !checked:
13 | color: #ffffff
14 |
15 | $checked:
16 | color: #ffffff
17 |
18 | $on !checked:
19 | color: #f55e5e
20 |
21 | MarketRightTabBar < TabBar
22 | MarketRightTabBarPanel < TabBarPanel
23 | MarketRightTabBarButton < TabBarButton
24 | size: 20 25
25 | font: verdana-11px-rounded
26 | text-offset: 0 2
27 | color: #929292
28 |
29 | $first:
30 | anchors.right: parent.right
31 | anchors.left: none
32 |
33 | $!first:
34 | anchors.right: prev.left
35 | anchors.left: none
36 |
37 | $hover !checked:
38 | color: #ffffff
39 |
40 | $checked:
41 | color: #ffffff
42 |
43 | $on !checked:
44 | color: #f55e5e
45 |
--------------------------------------------------------------------------------
/src/framework/cmake/FindCXX11.cmake:
--------------------------------------------------------------------------------
1 | if(__FIND_CXX11_CMAKE__)
2 | return()
3 | endif()
4 | set(__FIND_CXX11_CMAKE__ TRUE)
5 |
6 | include(CheckCXXCompilerFlag)
7 | enable_language(CXX)
8 |
9 | check_cxx_compiler_flag("-std=c++11" COMPILER_KNOWS_CXX11)
10 | if(COMPILER_KNOWS_CXX11)
11 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
12 |
13 | # Tested on Mac OS X 10.8.2 with XCode 4.6 Command Line Tools
14 | # Clang requires this to find the correct c++11 headers
15 | check_cxx_compiler_flag("-stdlib=libc++" COMPILER_KNOWS_STDLIB)
16 | if(APPLE AND COMPILER_KNOWS_STDLIB)
17 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
18 | endif()
19 | else()
20 | check_cxx_compiler_flag("-std=c++0x" COMPILER_KNOWS_CXX0X)
21 | if(COMPILER_KNOWS_CXX0X)
22 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
23 | else()
24 | message(FATAL_ERROR "Your C++ compiler does not support C++11.")
25 | endif()
26 | endif()
27 |
--------------------------------------------------------------------------------
/modules/game_bugreport/bugreport.lua:
--------------------------------------------------------------------------------
1 | -- TODO: find another hotkey for this. Ctrl+Z will be reserved to undo on textedits.
2 | HOTKEY = 'Ctrl+Z'
3 |
4 | bugReportWindow = nil
5 | bugTextEdit = nil
6 |
7 | function init()
8 | g_ui.importStyle('bugreport')
9 |
10 | bugReportWindow = g_ui.createWidget('BugReportWindow', rootWidget)
11 | bugReportWindow:hide()
12 |
13 | bugTextEdit = bugReportWindow:getChildById('bugTextEdit')
14 |
15 | g_keyboard.bindKeyDown(HOTKEY, show)
16 | end
17 |
18 | function terminate()
19 | g_keyboard.unbindKeyDown(HOTKEY)
20 | bugReportWindow:destroy()
21 | end
22 |
23 | function doReport()
24 | g_game.reportBug(bugTextEdit:getText())
25 | bugReportWindow:hide()
26 | modules.game_textmessage.displayGameMessage(tr('Bug report sent.'))
27 | end
28 |
29 | function show()
30 | if g_game.isOnline() then
31 | bugTextEdit:setText('')
32 | bugReportWindow:show()
33 | bugReportWindow:raise()
34 | bugReportWindow:focus()
35 | end
36 | end
37 |
--------------------------------------------------------------------------------
/website_and_php_files/map_viewer/update_outfits.php:
--------------------------------------------------------------------------------
1 | $hiddenName)
9 | {
10 | $hiddenNames[$id] = base64_encode($hiddenName);
11 | }
12 | $response = $SQL->query('SELECT * FROM `minimap_stream`');
13 | $ret = [];
14 | if($response)
15 | {
16 | $result = $response->fetch();
17 | if($result)
18 | {
19 | $data = json_decode($result['info']);
20 | $ret = [];
21 | $ret['time'] = time() - $result['date'];
22 | $ret['players'] = [];
23 |
24 | foreach($data as $player)
25 | {
26 | if(!in_array($player[1], $hiddenNames))
27 | {
28 | $ret['players'][] = [$player[0],$player[1],$player[2],$player[3],$player[4],$player[5]+1,$player[6],$player[7],$player[8],$player[9],$player[10],$player[11],$player[12],$player[13]];
29 | }
30 | }
31 | }
32 | }
33 | echo json_encode($ret);
34 |
--------------------------------------------------------------------------------
/vc14/debug.props:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | $(ProjectDir)../
7 | true
8 |
9 |
10 |
11 | false
12 | false
13 | EnableFastChecks
14 | MultiThreadedDebugDLL
15 | $(IntDir)\obj_r\%(RelativeDir)
16 | /bigobj%(AdditionalOptions)
17 |
18 |
19 | $(OTCLIENT_LIBDEPS_D)
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/modules/game_interface/interface.otmod:
--------------------------------------------------------------------------------
1 | Module
2 | name: game_interface
3 | description: Create the game interface, where the ingame stuff starts
4 | author: OTClient team
5 | website: https://github.com/edubart/otclient
6 | sandboxed: true
7 | scripts: [ widgets/uigamemap, widgets/uiitem, gameinterface ]
8 | load-later:
9 | - game_hotkeys
10 | - game_questlog
11 | - game_textmessage
12 | - game_console
13 | - game_outfit
14 | - game_healthinfo
15 | - game_skills
16 | - game_inventory
17 | - game_combatcontrols
18 | - game_containers
19 | - game_viplist
20 | - game_battle
21 | - game_minimap
22 | - game_npctrade
23 | - game_textwindow
24 | - game_playertrade
25 | - game_bugreport
26 | - game_playerdeath
27 | - game_playermount
28 | - game_ruleviolation
29 | - game_market
30 | - game_spelllist
31 | - game_cooldown
32 | - game_modaldialog
33 | - game_unjustifiedpoints
34 | @onLoad: init()
35 | @onUnload: terminate()
36 |
--------------------------------------------------------------------------------
/src/framework/cmake/FindMySQL.cmake:
--------------------------------------------------------------------------------
1 | # Try to find the mysql library
2 | # MYSQL_FOUND - system has mysql
3 | # MYSQL_INCLUDE_DIR - the mysql include directory
4 | # MYSQL_LIBRARY - the mysql library
5 |
6 | FIND_PATH(MYSQL_INCLUDE_DIR NAMES mysql.h PATH_SUFFIXES mysql)
7 | IF(WIN32)
8 | SET(_MYSQL_STATIC_LIBS libmysql.a libmysql_r.a)
9 | SET(_MYSQL_SHARED_LIBS libmysql.dll.a libmysql_r.dll.a libmysql libmysql_r)
10 | ELSE()
11 | SET(_MYSQL_STATIC_LIBS libmysqlclient.a libmysqlclient_r.a)
12 | SET(_MYSQL_SHARED_LIBS libmysqlclient.dll.a libmysqlclient_r.dll.a mysqlclient mysqlclient_r)
13 | ENDIF()
14 |
15 | IF(USE_STATIC_LIBS)
16 | FIND_LIBRARY(MYSQL_LIBRARY NAMES ${_MYSQL_STATIC_LIBS} ${_MYSQL_SHARED_LIBS})
17 | ELSE()
18 | FIND_LIBRARY(MYSQL_LIBRARY NAMES ${_MYSQL_SHARED_LIBS} ${_MYSQL_STATIC_LIBS})
19 | ENDIF()
20 | INCLUDE(FindPackageHandleStandardArgs)
21 | FIND_PACKAGE_HANDLE_STANDARD_ARGS(MySQL DEFAULT_MSG MYSQL_LIBRARY MYSQL_INCLUDE_DIR)
22 | MARK_AS_ADVANCED(MYSQL_LIBRARY MYSQL_INCLUDE_DIR)
23 |
24 |
--------------------------------------------------------------------------------
/src/framework/cmake/FindOpenAL.cmake:
--------------------------------------------------------------------------------
1 | # Try to find the OPENAL library
2 | # OPENAL_FOUND - system has OPENAL
3 | # OPENAL_INCLUDE_DIR - the OPENAL include directory
4 | # OPENAL_LIBRARY - the OPENAL library
5 |
6 | SET(OPENAL_APPLE_PATHS ~/Library/Frameworks /Library/Frameworks)
7 | FIND_PATH(OPENAL_INCLUDE_DIR al.h PATH_SUFFIXES AL OpenAL PATHS ${OPENAL_APPLE_PATHS})
8 | SET(_OPENAL_STATIC_LIBS libOpenAL.a libal.a libopenal.a libOpenAL32.a)
9 | SET(_OPENAL_SHARED_LIBS libOpenAL.dll.a libal.dll.a libopenal.dll.a libOpenAL32.dll.a OpenAL al openal OpenAL32)
10 | IF(USE_STATIC_LIBS)
11 | FIND_LIBRARY(OPENAL_LIBRARY NAMES ${_OPENAL_STATIC_LIBS} ${_OPENAL_SHARED_LIBS} PATHS ${OPENAL_APPLE_PATHS})
12 | ELSE()
13 | FIND_LIBRARY(OPENAL_LIBRARY NAMES ${_OPENAL_SHARED_LIBS} ${_OPENAL_STATIC_LIBS} PATHS ${OPENAL_APPLE_PATHS})
14 | ENDIF()
15 | INCLUDE(FindPackageHandleStandardArgs)
16 | FIND_PACKAGE_HANDLE_STANDARD_ARGS(OPENAL DEFAULT_MSG OPENAL_LIBRARY OPENAL_INCLUDE_DIR)
17 | MARK_AS_ADVANCED(OPENAL_LIBRARY OPENAL_INCLUDE_DIR)
18 |
--------------------------------------------------------------------------------
/modules/client_serverlist/addserver.lua:
--------------------------------------------------------------------------------
1 | AddServer = {}
2 |
3 | -- private variables
4 | local addServerWindow = nil
5 |
6 | -- public functions
7 | function AddServer.init()
8 | addServerWindow = g_ui.displayUI('addserver')
9 | end
10 |
11 | function AddServer.terminate()
12 | addServerWindow:destroy()
13 | end
14 |
15 | function AddServer.add()
16 | local host = addServerWindow:getChildById('host'):getText()
17 | local port = addServerWindow:getChildById('port'):getText()
18 | local protocol = addServerWindow:getChildById('protocol'):getCurrentOption().text
19 |
20 | local added, error = ServerList.add(host, port, protocol)
21 | if not added then
22 | displayErrorBox(tr('Error'), tr(error))
23 | else
24 | AddServer.hide()
25 | end
26 | end
27 |
28 | function AddServer.show()
29 | addServerWindow:show()
30 | addServerWindow:raise()
31 | addServerWindow:focus()
32 | addServerWindow:lock()
33 | end
34 |
35 | function AddServer.hide()
36 | addServerWindow:hide()
37 | addServerWindow:unlock()
38 | end
--------------------------------------------------------------------------------
/modules/game_playermount/playermount.lua:
--------------------------------------------------------------------------------
1 | function init()
2 | connect(g_game, {
3 | onGameStart = online,
4 | onGameEnd = offline
5 | })
6 | if g_game.isOnline() then online() end
7 | end
8 |
9 | function terminate()
10 | disconnect(g_game, {
11 | onGameStart = online,
12 | onGameEnd = offline
13 | })
14 | offline()
15 | end
16 |
17 | function online()
18 | if g_game.getFeature(GamePlayerMounts) then
19 | g_keyboard.bindKeyDown('Ctrl+R', toggleMount)
20 | end
21 | end
22 |
23 | function offline()
24 | if g_game.getFeature(GamePlayerMounts) then
25 | g_keyboard.unbindKeyDown('Ctrl+R')
26 | end
27 | end
28 |
29 | function toggleMount()
30 | local player = g_game.getLocalPlayer()
31 | if player then
32 | player:toggleMount()
33 | end
34 | end
35 |
36 | function mount()
37 | local player = g_game.getLocalPlayer()
38 | if player then
39 | player:mount()
40 | end
41 | end
42 |
43 | function dismount()
44 | local player = g_game.getLocalPlayer()
45 | if player then
46 | player:dismount()
47 | end
48 | end
49 |
--------------------------------------------------------------------------------
/modules/game_textmessage/textmessage.otui:
--------------------------------------------------------------------------------
1 | TextMessageLabel < UILabel
2 | font: verdana-11px-rounded
3 | text-align: center
4 | text-wrap: true
5 | text-auto-resize: true
6 | margin-bottom: 2
7 | visible: false
8 |
9 | Panel
10 | anchors.fill: gameMapPanel
11 | anchors.bottom: gameBottomPanel.top
12 | focusable: false
13 |
14 | Panel
15 | id: centerTextMessagePanel
16 | layout:
17 | type: verticalBox
18 | fit-children: true
19 | width: 360
20 | anchors.centerIn: parent
21 |
22 | TextMessageLabel
23 | id: highCenterLabel
24 | TextMessageLabel
25 | id: middleCenterLabel
26 | TextMessageLabel
27 | id: lowCenterLabel
28 |
29 | TextMessageLabel
30 | id: privateLabel
31 | anchors.top: parent.top
32 | anchors.bottom: centerTextMessagePanel.top
33 | anchors.horizontalCenter: parent.horizontalCenter
34 | text-auto-resize: false
35 | width: 275
36 |
37 | TextMessageLabel
38 | id: statusLabel
39 | anchors.bottom: parent.bottom
40 | anchors.left: parent.left
41 | anchors.right: parent.right
42 |
--------------------------------------------------------------------------------
/modules/game_viplist/addvip.otui:
--------------------------------------------------------------------------------
1 | MainWindow
2 | size: 256 128
3 | !text: tr('Add to VIP list')
4 | @onEnter: modules.game_viplist.addVip()
5 | @onEscape: modules.game_viplist.destroyAddWindow()
6 |
7 | Label
8 | !text: tr('Please enter a character name:')
9 | anchors.top: parent.top
10 | anchors.left: parent.left
11 | anchors.right: parent.right
12 |
13 | TextEdit
14 | id: name
15 | anchors.top: prev.bottom
16 | anchors.left: parent.left
17 | anchors.right: parent.right
18 | margin-top: 4
19 |
20 | HorizontalSeparator
21 | anchors.left: parent.left
22 | anchors.right: parent.right
23 | anchors.bottom: next.top
24 | margin-bottom: 10
25 |
26 | Button
27 | !text: tr('Ok')
28 | width: 64
29 | anchors.right: next.left
30 | anchors.bottom: parent.bottom
31 | margin-right: 10
32 | @onClick: modules.game_viplist.addVip()
33 |
34 | Button
35 | !text: tr('Cancel')
36 | width: 64
37 | anchors.right: parent.right
38 | anchors.bottom: parent.bottom
39 | @onClick: modules.game_viplist.destroyAddWindow()
40 |
--------------------------------------------------------------------------------
/data/styles/10-creaturebuttons.otui:
--------------------------------------------------------------------------------
1 | CreatureButton < UICreatureButton
2 | height: 20
3 | margin-bottom: 5
4 |
5 | UICreature
6 | id: creature
7 | size: 20 20
8 | anchors.left: parent.left
9 | anchors.top: parent.top
10 | phantom: true
11 |
12 | UIWidget
13 | id: spacer
14 | width: 5
15 | anchors.left: creature.right
16 | anchors.top: creature.top
17 | phantom: true
18 |
19 | UIWidget
20 | id: skull
21 | height: 11
22 | anchors.left: spacer.right
23 | anchors.top: spacer.top
24 | phantom: true
25 |
26 | UIWidget
27 | id: emblem
28 | height: 11
29 | anchors.left: skull.right
30 | anchors.top: creature.top
31 | phantom: true
32 |
33 | Label
34 | id: label
35 | anchors.left: emblem.right
36 | anchors.top: creature.top
37 | color: #888888
38 | margin-left: 2
39 | phantom: true
40 |
41 | LifeProgressBar
42 | id: lifeBar
43 | height: 5
44 | anchors.left: spacer.right
45 | anchors.right: parent.right
46 | anchors.top: label.bottom
47 | margin-top: 2
48 | phantom: true
49 |
--------------------------------------------------------------------------------
/modules/game_bugreport/bugreport.otui:
--------------------------------------------------------------------------------
1 | BugReportWindow < MainWindow
2 | !text: tr('Report Bug')
3 | size: 280 250
4 | @onEscape: self:hide()
5 |
6 | Label
7 | id: bugLabel
8 | !text: tr('Please use this dialog to only report bugs. Do not report rule violations here!')
9 | text-wrap: true
10 | text-auto-resize: true
11 | anchors.top: parent.top
12 | anchors.left: parent.left
13 | anchors.right: parent.right
14 |
15 | MultilineTextEdit
16 | id: bugTextEdit
17 | anchors.top: bugLabel.bottom
18 | anchors.left: parent.left
19 | anchors.right: parent.right
20 | anchors.bottom: sendButton.top
21 | margin-top: 4
22 | margin-bottom: 8
23 |
24 | Button
25 | id: sendButton
26 | !text: tr('Send')
27 | anchors.bottom: cancelButton.bottom
28 | anchors.right: cancelButton.left
29 | margin-right: 10
30 | width: 80
31 | &onClick: doReport
32 |
33 | Button
34 | id: cancelButton
35 | !text: tr('Cancel')
36 | anchors.bottom: parent.bottom
37 | anchors.right: parent.right
38 | width: 80
39 | @onClick: self:getParent():hide()
40 |
--------------------------------------------------------------------------------
/modules/game_market/ui/general/amountwindow.otui:
--------------------------------------------------------------------------------
1 | AmountWindow < MainWindow
2 | id: amountWindow
3 | !text: tr('Amount')
4 | size: 270 90
5 |
6 | Item
7 | id: item
8 | text-offset: 0 22
9 | text-align: right
10 | anchors.left: parent.left
11 | anchors.top: parent.top
12 | margin-top: 2
13 | margin-left: -4
14 | focusable: false
15 | virtual: true
16 |
17 | HorizontalScrollBar
18 | id: amountScrollBar
19 | anchors.left: prev.right
20 | anchors.right: parent.right
21 | anchors.top: prev.top
22 | margin-left: 10
23 | margin-top: -2
24 |
25 | Button
26 | id: buttonCancel
27 | !text: tr('Cancel')
28 | height: 20
29 | anchors.left: amountScrollBar.horizontalCenter
30 | anchors.right: amountScrollBar.right
31 | anchors.top: amountScrollBar.bottom
32 | margin-top: 7
33 | focusable: false
34 |
35 | Button
36 | id: buttonOk
37 | !text: tr('Ok')
38 | height: 20
39 | anchors.right: amountScrollBar.horizontalCenter
40 | anchors.left: amountScrollBar.left
41 | anchors.top: amountScrollBar.bottom
42 | margin-top: 7
43 | margin-right: 6
44 | focusable: false
45 |
--------------------------------------------------------------------------------
/modules/client_entergame/waitinglist.otui:
--------------------------------------------------------------------------------
1 | MainWindow
2 | id: waitingWindow
3 | !text: tr('Waiting List')
4 | size: 260 180
5 | @onEscape: CharacterList.cancelWait()
6 |
7 | Label
8 | id: infoLabel
9 | anchors.top: parent.top
10 | anchors.bottom: progressBar.top
11 | anchors.left: parent.left
12 | anchors.right: parent.right
13 | text-wrap: true
14 |
15 | ProgressBar
16 | id: progressBar
17 | height: 15
18 | background-color: #4444ff
19 | anchors.bottom: timeLabel.top
20 | anchors.left: parent.left
21 | anchors.right: parent.right
22 | margin-bottom: 10
23 |
24 | Label
25 | id: timeLabel
26 | anchors.bottom: separator.bottom
27 | anchors.left: parent.left
28 | anchors.right: parent.right
29 | margin-bottom: 10
30 |
31 | HorizontalSeparator
32 | id: separator
33 | anchors.left: parent.left
34 | anchors.right: parent.right
35 | anchors.bottom: next.top
36 | margin-bottom: 10
37 |
38 | Button
39 | id: buttonCancel
40 | !text: tr('Cancel')
41 | width: 64
42 | anchors.right: parent.right
43 | anchors.bottom: parent.bottom
44 | @onClick: CharacterList.cancelWait()
--------------------------------------------------------------------------------
/modules/game_console/violationwindow.otui:
--------------------------------------------------------------------------------
1 | MainWindow
2 | id: ignoreWindow
3 | !text: tr('Report Rule Violation')
4 | size: 300 240
5 |
6 | Label
7 | !text: tr('Please state the rule violation in one clear sentence and wait for a reply from a gamemaster. Please note that your message will disappear if you close the channel.')
8 | text-wrap: true
9 | text-auto-resize: true
10 | anchors.left: parent.left
11 | anchors.right: parent.right
12 | anchors.top: parent.top
13 |
14 | TextEdit
15 | id: text
16 | text-wrap: true
17 | multiline: true
18 | anchors.top: prev.bottom
19 | anchors.bottom: next.top
20 | anchors.left: parent.left
21 | anchors.right: parent.right
22 | margin: 8 0
23 | max-length: 255
24 |
25 | Button
26 | id: buttonOk
27 | !text: tr('Ok')
28 | width: 64
29 | anchors.right: next.left
30 | anchors.bottom: parent.bottom
31 | margin-right: 10
32 | @onClick: self:getParent():onEnter()
33 |
34 | Button
35 | id: buttonCancel
36 | !text: tr('Cancel')
37 | width: 64
38 | anchors.right: parent.right
39 | anchors.bottom: parent.bottom
40 | @onClick: self:getParent():onEscape()
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | OTClient is made available under the MIT License
2 |
3 | Copyright (c) 2010-2017 OTClient
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in
13 | all copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | THE SOFTWARE.
22 |
--------------------------------------------------------------------------------
/modules/corelib/mouse.lua:
--------------------------------------------------------------------------------
1 | -- @docclass
2 | function g_mouse.bindAutoPress(widget, callback, delay, button)
3 | local button = button or MouseLeftButton
4 | connect(widget, { onMousePress = function(widget, mousePos, mouseButton)
5 | if mouseButton ~= button then
6 | return false
7 | end
8 | local startTime = g_clock.millis()
9 | callback(widget, mousePos, mouseButton, 0)
10 | periodicalEvent(function()
11 | callback(widget, g_window.getMousePosition(), mouseButton, g_clock.millis() - startTime)
12 | end, function()
13 | return g_mouse.isPressed(mouseButton)
14 | end, 30, delay)
15 | return true
16 | end })
17 | end
18 |
19 | function g_mouse.bindPressMove(widget, callback)
20 | connect(widget, { onMouseMove = function(widget, mousePos, mouseMoved)
21 | if widget:isPressed() then
22 | callback(mousePos, mouseMoved)
23 | return true
24 | end
25 | end })
26 | end
27 |
28 | function g_mouse.bindPress(widget, callback, button)
29 | connect(widget, { onMousePress = function(widget, mousePos, mouseButton)
30 | if not button or button == mouseButton then
31 | callback(mousePos, mouseButton)
32 | return true
33 | end
34 | return false
35 | end })
36 | end
37 |
--------------------------------------------------------------------------------
/modules/gamelib/position.lua:
--------------------------------------------------------------------------------
1 | Position = {}
2 |
3 | function Position.equals(pos1, pos2)
4 | return pos1.x == pos2.x and pos1.y == pos2.y and pos1.z == pos2.z
5 | end
6 |
7 | function Position.greaterThan(pos1, pos2, orEqualTo)
8 | if orEqualTo then
9 | return pos1.x >= pos2.x or pos1.y >= pos2.y or pos1.z >= pos2.z
10 | else
11 | return pos1.x > pos2.x or pos1.y > pos2.y or pos1.z > pos2.z
12 | end
13 | end
14 |
15 | function Position.lessThan(pos1, pos2, orEqualTo)
16 | if orEqualTo then
17 | return pos1.x <= pos2.x or pos1.y <= pos2.y or pos1.z <= pos2.z
18 | else
19 | return pos1.x < pos2.x or pos1.y < pos2.y or pos1.z < pos2.z
20 | end
21 | end
22 |
23 | function Position.isInRange(pos1, pos2, xRange, yRange)
24 | return math.abs(pos1.x-pos2.x) <= xRange and math.abs(pos1.y-pos2.y) <= yRange and pos1.z == pos2.z;
25 | end
26 |
27 | function Position.isValid(pos)
28 | return not (pos.x == 65535 and pos.y == 65535 and pos.z == 255)
29 | end
30 |
31 | function Position.distance(pos1, pos2)
32 | return math.sqrt(math.pow((pos2.x - pos1.x), 2) + math.pow((pos2.y - pos1.y), 2))
33 | end
34 |
35 | function Position.manhattanDistance(pos1, pos2)
36 | return math.abs(pos2.x - pos1.x) + math.abs(pos2.y - pos1.y)
37 | end
--------------------------------------------------------------------------------
/modules/client_topmenu/topmenu.otui:
--------------------------------------------------------------------------------
1 | TopMenuPanel
2 | id: topMenu
3 | anchors.top: parent.top
4 | anchors.left: parent.left
5 | anchors.right: parent.right
6 |
7 | TopMenuButtonsPanel
8 | id: leftButtonsPanel
9 | anchors.top: parent.top
10 | anchors.bottom: parent.bottom
11 | anchors.left: parent.left
12 |
13 | TopMenuButtonsPanel
14 | id: leftGameButtonsPanel
15 | anchors.top: parent.top
16 | anchors.bottom: parent.bottom
17 | anchors.left: prev.right
18 | visible: false
19 |
20 | TopMenuFrameCounterLabel
21 | id: fpsLabel
22 | text-auto-resize: true
23 | anchors.top: parent.top
24 | anchors.left: leftGameButtonsPanel.right
25 |
26 | TopMenuPingLabel
27 | color: white
28 | id: pingLabel
29 | text-auto-resize: true
30 | anchors.top: fpsLabel.bottom
31 | anchors.left: fpsLabel.left
32 |
33 | TopMenuButtonsPanel
34 | id: rightButtonsPanel
35 | anchors.top: parent.top
36 | anchors.bottom: parent.bottom
37 | anchors.right: parent.right
38 | padding-left: 0
39 |
40 | TopMenuButtonsPanel
41 | id: rightGameButtonsPanel
42 | anchors.top: parent.top
43 | anchors.bottom: parent.bottom
44 | anchors.right: prev.left
45 | visible: false
46 |
--------------------------------------------------------------------------------
/modules/corelib/ui/uiwindow.lua:
--------------------------------------------------------------------------------
1 | -- @docclass
2 | UIWindow = extends(UIWidget, "UIWindow")
3 |
4 | function UIWindow.create()
5 | local window = UIWindow.internalCreate()
6 | window:setTextAlign(AlignTopCenter)
7 | window:setDraggable(true)
8 | window:setAutoFocusPolicy(AutoFocusFirst)
9 | return window
10 | end
11 |
12 | function UIWindow:onKeyDown(keyCode, keyboardModifiers)
13 | if keyboardModifiers == KeyboardNoModifier then
14 | if keyCode == KeyEnter then
15 | signalcall(self.onEnter, self)
16 | elseif keyCode == KeyEscape then
17 | signalcall(self.onEscape, self)
18 | end
19 | end
20 | end
21 |
22 | function UIWindow:onFocusChange(focused)
23 | if focused then self:raise() end
24 | end
25 |
26 | function UIWindow:onDragEnter(mousePos)
27 | self:breakAnchors()
28 | self.movingReference = { x = mousePos.x - self:getX(), y = mousePos.y - self:getY() }
29 | return true
30 | end
31 |
32 | function UIWindow:onDragLeave(droppedWidget, mousePos)
33 | -- TODO: auto detect and reconnect anchors
34 | end
35 |
36 | function UIWindow:onDragMove(mousePos, mouseMoved)
37 | local pos = { x = mousePos.x - self.movingReference.x, y = mousePos.y - self.movingReference.y }
38 | self:setPosition(pos)
39 | self:bindRectToParent()
40 | end
41 |
--------------------------------------------------------------------------------
/src/client/player.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2010-2017 OTClient
3 | *
4 | * Permission is hereby granted, free of charge, to any person obtaining a copy
5 | * of this software and associated documentation files (the "Software"), to deal
6 | * in the Software without restriction, including without limitation the rights
7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 | * copies of the Software, and to permit persons to whom the Software is
9 | * furnished to do so, subject to the following conditions:
10 | *
11 | * The above copyright notice and this permission notice shall be included in
12 | * all copies or substantial portions of the Software.
13 | *
14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20 | * THE SOFTWARE.
21 | */
22 |
23 | #include "player.h"
24 |
--------------------------------------------------------------------------------
/modules/game_questlog/questlogwindow.otui:
--------------------------------------------------------------------------------
1 | QuestLabel < Label
2 | font: verdana-11px-monochrome
3 | text-offset: 2 0
4 | focusable: true
5 | color: #aaaaaa
6 | background-color: alpha
7 |
8 | $on:
9 | color: #00aa00
10 | $!on:
11 | color: #aaaaaa
12 |
13 | $focus:
14 | background-color: #444444
15 |
16 | $on focus:
17 | color: #00ff00
18 | $!on focus:
19 | color: #ffffff
20 |
21 | QuestLogWindow < MainWindow
22 | id: questLogWindow
23 | !text: tr('Quest Log')
24 | size: 500 400
25 | @onEscape: self:destroy()
26 |
27 | TextList
28 | id: questList
29 | anchors.top: parent.top
30 | anchors.bottom: closeButton.top
31 | anchors.left: parent.left
32 | anchors.right: questListScrollBar.left
33 | margin-bottom: 10
34 | focusable: false
35 | vertical-scrollbar: questListScrollBar
36 |
37 | VerticalScrollBar
38 | id: questListScrollBar
39 | anchors.top: parent.top
40 | anchors.bottom: closeButton.top
41 | anchors.right: parent.right
42 | margin-bottom: 10
43 | step: 14
44 | pixels-scroll: true
45 |
46 | Button
47 | id: closeButton
48 | anchors.bottom: parent.bottom
49 | anchors.right: parent.right
50 | !text: tr('Close')
51 | width: 90
52 | @onClick: self:getParent():destroy()
53 |
--------------------------------------------------------------------------------
/src/framework/platform/platform.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2010-2017 OTClient
3 | *
4 | * Permission is hereby granted, free of charge, to any person obtaining a copy
5 | * of this software and associated documentation files (the "Software"), to deal
6 | * in the Software without restriction, including without limitation the rights
7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 | * copies of the Software, and to permit persons to whom the Software is
9 | * furnished to do so, subject to the following conditions:
10 | *
11 | * The above copyright notice and this permission notice shall be included in
12 | * all copies or substantial portions of the Software.
13 | *
14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20 | * THE SOFTWARE.
21 | */
22 |
23 | #include "platform.h"
24 |
25 | Platform g_platform;
26 |
--------------------------------------------------------------------------------
/data/styles/20-topmenu.otui:
--------------------------------------------------------------------------------
1 | TopButton < UIButton
2 | size: 26 26
3 | image-source: /images/ui/button_top
4 | image-clip: 0 0 26 26
5 | image-border: 3
6 | image-color: #ffffffff
7 | icon-color: #ffffffff
8 |
9 | $on:
10 | image-source: /images/ui/button_top_blink
11 |
12 | $hover !disabled:
13 | image-color: #ffffff99
14 | image-clip: 26 0 26 26
15 |
16 | $pressed:
17 | image-clip: 52 0 26 26
18 |
19 | $disabled:
20 | image-color: #ffffff44
21 | icon-color: #ffffff44
22 |
23 | TopToggleButton < UIButton
24 | size: 26 26
25 | image-source: /images/ui/button_topgame
26 | image-clip: 26 0 26 26
27 | image-color: #ffffffff
28 | image-border: 3
29 | icon-color: #ffffffff
30 |
31 | $on:
32 | image-clip: 0 0 26 26
33 | image-color: #ffffffff
34 | icon-color: #ffffffff
35 |
36 | TopMenuButtonsPanel < Panel
37 | layout:
38 | type: horizontalBox
39 | spacing: 4
40 | fit-children: true
41 | padding: 6 4
42 |
43 | TopMenuPanel < Panel
44 | height: 36
45 | image-source: /images/ui/panel_top
46 | image-repeated: true
47 | focusable: false
48 |
49 | TopMenuFrameCounterLabel < Label
50 | font: verdana-11px-rounded
51 | color: white
52 | margin-top: 4
53 | margin-left: 5
54 |
55 | TopMenuPingLabel < Label
56 | font: verdana-11px-rounded
57 |
--------------------------------------------------------------------------------
/modules/client_options/options.otui:
--------------------------------------------------------------------------------
1 | OptionCheckBox < CheckBox
2 | @onCheckChange: modules.client_options.setOption(self:getId(), self:isChecked())
3 | height: 16
4 |
5 | $first:
6 | anchors.left: parent.left
7 | anchors.right: parent.right
8 | anchors.top: parent.top
9 |
10 | $!first:
11 | anchors.left: parent.left
12 | anchors.right: parent.right
13 | anchors.top: prev.bottom
14 | margin-top: 2
15 |
16 | OptionScrollbar < HorizontalScrollBar
17 | step: 1
18 | @onValueChange: modules.client_options.setOption(self:getId(), self:getValue())
19 |
20 | MainWindow
21 | id: optionsWindow
22 | !text: tr('Options')
23 | size: 480 340
24 |
25 | @onEnter: modules.client_options.hide()
26 | @onEscape: modules.client_options.hide()
27 |
28 | TabBarVertical
29 | id: optionsTabBar
30 | anchors.top: parent.top
31 | anchors.left: parent.left
32 | anchors.bottom: parent.bottom
33 |
34 | Panel
35 | id: optionsTabContent
36 | anchors.top: optionsTabBar.top
37 | anchors.left: optionsTabBar.right
38 | anchors.right: parent.right
39 | anchors.bottom: optionsTabBar.bottom
40 | margin-left: 10
41 |
42 | Button
43 | !text: tr('Ok')
44 | width: 64
45 | anchors.right: parent.right
46 | anchors.bottom: parent.bottom
47 | @onClick: modules.client_options.hide()
48 |
--------------------------------------------------------------------------------
/modules/game_textwindow/textwindow.otui:
--------------------------------------------------------------------------------
1 | TextWindow < MainWindow
2 | id: textWindow
3 | size: 300 280
4 |
5 | Item
6 | id: textItem
7 | virtual: true
8 | anchors.top: parent.top
9 | anchors.left: parent.left
10 |
11 | Label
12 | id: description
13 | anchors.top: parent.top
14 | anchors.left: textItem.right
15 | anchors.right: parent.right
16 | margin-left: 8
17 | text-auto-resize: true
18 | text-align: left
19 | text-wrap: true
20 |
21 | MultilineTextEdit
22 | id: text
23 | anchors.top: textScroll.top
24 | anchors.left: parent.left
25 | anchors.right: textScroll.left
26 | anchors.bottom: textScroll.bottom
27 | vertical-scrollbar: textScroll
28 | text-wrap: true
29 |
30 | VerticalScrollBar
31 | id: textScroll
32 | anchors.top: description.bottom
33 | anchors.bottom: okButton.top
34 | anchors.right: parent.right
35 | margin-top: 10
36 | margin-bottom: 10
37 | step: 16
38 | pixels-scroll: true
39 |
40 | Button
41 | id: okButton
42 | !text: tr('Ok')
43 | anchors.bottom: parent.bottom
44 | anchors.right: next.left
45 | margin-right: 10
46 | width: 60
47 |
48 | Button
49 | id: cancelButton
50 | !text: tr('Cancel')
51 | anchors.bottom: parent.bottom
52 | anchors.right: parent.right
53 | width: 60
54 |
--------------------------------------------------------------------------------
/src/framework/cmake/FindOpenSSL.cmake:
--------------------------------------------------------------------------------
1 | # Try to find the OpenSSL library
2 | # OPENSSL_FOUND - system has OpenSSL
3 | # OPENSSL_INCLUDE_DIR - the OpenSSL include directory
4 | # OPENSSL_LIBRARY - the OpenSSL library
5 |
6 | FIND_PATH(OPENSSL_INCLUDE_DIR NAMES openssl/ssl.h PATH_SUFFIXES openssl-1.0)
7 | SET(_OPENSSL_STATIC_LIBS libssl.a)
8 | SET(_OPENSSL_SHARED_LIBS libssl.dll.a ssl)
9 | SET(_OPENSSL_CRYPTO_STATIC_LIBS libcrypto.a)
10 | SET(_OPENSSL_CRYPTO_SHARED_LIBS libcrypto.dll.a crypto)
11 | IF(USE_STATIC_LIBS)
12 | FIND_LIBRARY(OPENSSL_LIBRARY NAMES ${_OPENSSL_STATIC_LIBS} ${_OPENSSL_SHARED_LIBS} PATH_SUFFIXES openssl-1.0)
13 | FIND_LIBRARY(OPENSSL_CRYPTO_LIBRARY NAMES ${_OPENSSL_CRYPTO_STATIC_LIBS} ${_OPENSSL_CRYPTO_SHARED_LIBS} PATH_SUFFIXES openssl-1.0)
14 | ELSE()
15 | FIND_LIBRARY(OPENSSL_LIBRARY NAMES ${_OPENSSL_SHARED_LIBS} ${_OPENSSL_STATIC_LIBS} PATH_SUFFIXES openssl-1.0)
16 | FIND_LIBRARY(OPENSSL_CRYPTO_LIBRARY NAMES ${_OPENSSL_CRYPTO_SHARED_LIBS} ${_OPENSSL_CRYPTO_STATIC_LIBS} PATH_SUFFIXES openssl-1.0)
17 | ENDIF()
18 | SET(OPENSSL_LIBRARIES ${OPENSSL_LIBRARY} ${OPENSSL_CRYPTO_LIBRARY})
19 | INCLUDE(FindPackageHandleStandardArgs)
20 | FIND_PACKAGE_HANDLE_STANDARD_ARGS(OPENSSL DEFAULT_MSG OPENSSL_LIBRARIES OPENSSL_INCLUDE_DIR)
21 | MARK_AS_ADVANCED(OPENSSL_LIBRARIES OPENSSL_LIBRARY OPENSSL_CRYPTO_LIBRARY OPENSSL_INCLUDE_DIR)
22 |
--------------------------------------------------------------------------------
/modules/game_interface/styles/countwindow.otui:
--------------------------------------------------------------------------------
1 | CountWindow < MainWindow
2 | id: countWindow
3 | !text: tr('Move Stackable Item')
4 | size: 196 90
5 |
6 | SpinBox
7 | id: spinBox
8 | anchors.left: parent.left
9 | anchors.top: parent.top
10 | width: 1
11 | height: 1
12 | phantom: true
13 | margin-top: 2
14 | focusable: true
15 |
16 | Item
17 | id: item
18 | anchors.left: parent.left
19 | anchors.top: parent.top
20 | margin-top: 2
21 | margin-left: -4
22 | focusable: false
23 | virtual: true
24 |
25 | HorizontalScrollBar
26 | id: countScrollBar
27 | anchors.left: prev.right
28 | anchors.right: parent.right
29 | anchors.top: prev.top
30 | margin-left: 10
31 | margin-top: -2
32 | focusable: false
33 |
34 | Button
35 | id: buttonCancel
36 | !text: tr('Cancel')
37 | height: 20
38 | anchors.left: countScrollBar.horizontalCenter
39 | anchors.right: countScrollBar.right
40 | anchors.top: countScrollBar.bottom
41 | margin-top: 7
42 | focusable: false
43 |
44 | Button
45 | id: buttonOk
46 | !text: tr('Ok')
47 | height: 20
48 | anchors.right: countScrollBar.horizontalCenter
49 | anchors.left: countScrollBar.left
50 | anchors.top: countScrollBar.bottom
51 | margin-top: 7
52 | margin-right: 6
53 | focusable: false
54 |
--------------------------------------------------------------------------------
/src/framework/otml/otml.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2010-2017 OTClient
3 | *
4 | * Permission is hereby granted, free of charge, to any person obtaining a copy
5 | * of this software and associated documentation files (the "Software"), to deal
6 | * in the Software without restriction, including without limitation the rights
7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 | * copies of the Software, and to permit persons to whom the Software is
9 | * furnished to do so, subject to the following conditions:
10 | *
11 | * The above copyright notice and this permission notice shall be included in
12 | * all copies or substantial portions of the Software.
13 | *
14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20 | * THE SOFTWARE.
21 | */
22 |
23 | #ifndef OTML_H
24 | #define OTML_H
25 |
26 | #include "otmldocument.h"
27 | #include "otmlnode.h"
28 |
29 | #endif
--------------------------------------------------------------------------------
/modules/game_questlog/questlinewindow.otui:
--------------------------------------------------------------------------------
1 | MissionLabel < Label
2 | font: verdana-11px-monochrome
3 | background-color: alpha
4 | text-offset: 2 0
5 | focusable: true
6 |
7 | $focus:
8 | background-color: #ffffff22
9 | color: #ffffff
10 |
11 | QuestLineWindow < MainWindow
12 | id: questLineWindow
13 | !text: tr('Quest Log')
14 | size: 500 400
15 | @onEscape: self:destroy()
16 |
17 | TextList
18 | id: missionList
19 | anchors.top: parent.top
20 | anchors.left: parent.left
21 | anchors.right: missionListScrollBar.left
22 | height: 100
23 | padding: 1
24 | focusable: false
25 | vertical-scrollbar: missionListScrollBar
26 |
27 | VerticalScrollBar
28 | id: missionListScrollBar
29 | anchors.top: parent.top
30 | anchors.right: parent.right
31 | height: 100
32 | step: 14
33 | pixels-scroll: true
34 |
35 | FlatLabel
36 | id: missionDescription
37 | anchors.top: missionList.bottom
38 | anchors.left: parent.left
39 | anchors.right: missionListScrollBar.right
40 | anchors.bottom: closeButton.top
41 | margin-bottom: 10
42 | margin-top: 10
43 | text-wrap: true
44 |
45 | Button
46 | id: closeButton
47 | anchors.bottom: parent.bottom
48 | anchors.right: parent.right
49 | !text: tr('Close')
50 | width: 90
51 | @onClick: self:getParent():destroy()
52 |
--------------------------------------------------------------------------------
/website_and_php_files/map_viewer/libs/leaflet.label.css:
--------------------------------------------------------------------------------
1 | .leaflet-label {
2 | background: rgb(235, 235, 235);
3 | background: rgba(235, 235, 235, 0.81);
4 | background-clip: padding-box;
5 | border-color: #777;
6 | border-color: rgba(0,0,0,0.25);
7 | border-radius: 4px;
8 | border-style: solid;
9 | border-width: 4px;
10 | color: #111;
11 | display: block;
12 | font: 12px/20px "Helvetica Neue", Arial, Helvetica, sans-serif;
13 | font-weight: bold;
14 | padding: 1px 6px;
15 | position: absolute;
16 | -webkit-user-select: none;
17 | -moz-user-select: none;
18 | -ms-user-select: none;
19 | user-select: none;
20 | pointer-events: none;
21 | white-space: nowrap;
22 | z-index: 6;
23 | }
24 |
25 | .leaflet-label.leaflet-clickable {
26 | cursor: pointer;
27 | pointer-events: auto;
28 | }
29 |
30 | .leaflet-label:before,
31 | .leaflet-label:after {
32 | border-top: 6px solid transparent;
33 | border-bottom: 6px solid transparent;
34 | content: none;
35 | position: absolute;
36 | top: 5px;
37 | }
38 |
39 | .leaflet-label:before {
40 | border-right: 6px solid black;
41 | border-right-color: inherit;
42 | left: -10px;
43 | }
44 |
45 | .leaflet-label:after {
46 | border-left: 6px solid black;
47 | border-left-color: inherit;
48 | right: -10px;
49 | }
50 |
51 | .leaflet-label-right:before,
52 | .leaflet-label-left:after {
53 | content: "";
54 | }
55 |
--------------------------------------------------------------------------------
/vc14/otclient.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 14
4 | VisualStudioVersion = 14.0.23107.0
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "otclient", "otclient.vcxproj", "{17A8F78F-1FFB-4128-A3B3-59CC6C19D89A}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Debug|Win32 = Debug|Win32
11 | Debug|x64 = Debug|x64
12 | Release|Win32 = Release|Win32
13 | Release|x64 = Release|x64
14 | EndGlobalSection
15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
16 | {17A8F78F-1FFB-4128-A3B3-59CC6C19D89A}.Debug|Win32.ActiveCfg = Debug|Win32
17 | {17A8F78F-1FFB-4128-A3B3-59CC6C19D89A}.Debug|Win32.Build.0 = Debug|Win32
18 | {17A8F78F-1FFB-4128-A3B3-59CC6C19D89A}.Debug|x64.ActiveCfg = Debug|x64
19 | {17A8F78F-1FFB-4128-A3B3-59CC6C19D89A}.Debug|x64.Build.0 = Debug|x64
20 | {17A8F78F-1FFB-4128-A3B3-59CC6C19D89A}.Release|Win32.ActiveCfg = Release|Win32
21 | {17A8F78F-1FFB-4128-A3B3-59CC6C19D89A}.Release|Win32.Build.0 = Release|Win32
22 | {17A8F78F-1FFB-4128-A3B3-59CC6C19D89A}.Release|x64.ActiveCfg = Release|x64
23 | {17A8F78F-1FFB-4128-A3B3-59CC6C19D89A}.Release|x64.Build.0 = Release|x64
24 | EndGlobalSection
25 | GlobalSection(SolutionProperties) = preSolution
26 | HideSolutionNode = FALSE
27 | EndGlobalSection
28 | EndGlobal
29 |
--------------------------------------------------------------------------------
/src/framework/platform/crashhandler.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2010-2017 OTClient
3 | *
4 | * Permission is hereby granted, free of charge, to any person obtaining a copy
5 | * of this software and associated documentation files (the "Software"), to deal
6 | * in the Software without restriction, including without limitation the rights
7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 | * copies of the Software, and to permit persons to whom the Software is
9 | * furnished to do so, subject to the following conditions:
10 | *
11 | * The above copyright notice and this permission notice shall be included in
12 | * all copies or substantial portions of the Software.
13 | *
14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20 | * THE SOFTWARE.
21 | */
22 |
23 | #ifndef CRASHHANDLER_H
24 | #define CRASHHANDLER_H
25 |
26 | #ifdef CRASH_HANDLER
27 | void installCrashHandler();
28 | #endif
29 |
30 | #endif
31 |
--------------------------------------------------------------------------------
/data/styles/10-checkboxes.otui:
--------------------------------------------------------------------------------
1 | CheckBox < UICheckBox
2 | size: 16 16
3 | text-align: left
4 | text-offset: 18 1
5 | color: #dfdfdf
6 | image-color: #dfdfdfff
7 | image-rect: 0 0 15 15
8 | image-source: /images/ui/checkbox
9 |
10 | $hover !disabled:
11 | color: #ffffff
12 |
13 | $!checked:
14 | image-clip: 0 0 15 15
15 |
16 | $hover !checked:
17 | image-clip: 0 15 15 15
18 |
19 | $checked:
20 | image-clip: 0 30 15 15
21 |
22 | $hover checked:
23 | image-clip: 0 45 15 15
24 |
25 | $disabled:
26 | image-color: #dfdfdf88
27 | color: #dfdfdf88
28 | opacity: 0.8
29 |
30 | ColorBox < UICheckBox
31 | size: 16 16
32 | image-color: #dfdfdfff
33 | image-source: /images/ui/colorbox
34 |
35 | $checked:
36 | image-clip: 16 0 16 16
37 |
38 | $!checked:
39 | image-clip: 0 0 16 16
40 |
41 | ButtonBox < UICheckBox
42 | font: verdana-11px-antialised
43 | color: #dfdfdfff
44 | size: 106 23
45 | text-offset: 0 0
46 | text-align: center
47 | image-source: /images/ui/button
48 | image-color: #dfdfdf
49 | image-clip: 0 0 22 23
50 | image-border: 3
51 |
52 | $hover !disabled:
53 | image-clip: 0 23 22 23
54 |
55 | $checked:
56 | image-clip: 0 46 22 23
57 | color: #dfdfdf
58 |
59 | $disabled:
60 | color: #dfdfdf88
61 | image-color: #dfdfdf88
62 |
63 | ButtonBoxRounded < ButtonBox
64 | image-source: /images/ui/button_rounded
--------------------------------------------------------------------------------
/website_and_php_files/1_pre_tile_generator.php:
--------------------------------------------------------------------------------
1 | $temp2[0], 'y' => $temp2[1], 'z' => $temp2[2]];
10 | }
11 |
12 | if(file_exists('map'))
13 | {
14 | if(!is_dir('map_tiled') && !@mkdir('map_tiled'))
15 | {
16 | exit('Cannot create folder "map_tiled".' . PHP_EOL);
17 | }
18 | if(!@rename('map', 'map_tiled/16'))
19 | {
20 | exit('Cannot move folder "map" to "map_tiled/16".' . PHP_EOL);
21 | }
22 | }
23 |
24 | if(!is_dir('map_tiled') || !is_dir('map_tiled/16'))
25 | {
26 | exit('Folder "map_tiled" or "map_tiled/16" does not exist.' . PHP_EOL);
27 | }
28 |
29 | echo 'Folders for tiles generator created and images moved to new folder in ' . round(microtime(true)-$start, 3) . ' seconds. Listing files in directory...' . PHP_EOL;
30 | $start = microtime(true);
31 |
32 | $files = [];
33 | $filesCount = 0;
34 |
35 | foreach(glob('map_tiled/16/*.png') as $imagePath)
36 | {
37 | $position = getImageCords($imagePath);
38 | $z = $position['z'];
39 | $files[$z][$imagePath] = $imagePath;
40 | ++$filesCount;
41 | }
42 | file_put_contents('fs_tiles.serialized', serialize($files));
43 | echo 'Listed ' . $filesCount . ' files in ' . round(microtime(true)-$start, 3) . ' seconds.' . PHP_EOL;
--------------------------------------------------------------------------------
/src/framework/luaengine/lbitlib.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2010-2017 OTClient
3 | *
4 | * Permission is hereby granted, free of charge, to any person obtaining a copy
5 | * of this software and associated documentation files (the "Software"), to deal
6 | * in the Software without restriction, including without limitation the rights
7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 | * copies of the Software, and to permit persons to whom the Software is
9 | * furnished to do so, subject to the following conditions:
10 | *
11 | * The above copyright notice and this permission notice shall be included in
12 | * all copies or substantial portions of the Software.
13 | *
14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20 | * THE SOFTWARE.
21 | */
22 |
23 | #ifndef LBITLIB_520_BACKPORT4_H
24 | #define LBITLIB_520_BACKPORT4_H
25 |
26 | struct lua_State;
27 |
28 | int luaopen_bit32 (lua_State *L);
29 |
30 | #endif
31 |
--------------------------------------------------------------------------------
/src/client/global.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2010-2017 OTClient
3 | *
4 | * Permission is hereby granted, free of charge, to any person obtaining a copy
5 | * of this software and associated documentation files (the "Software"), to deal
6 | * in the Software without restriction, including without limitation the rights
7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 | * copies of the Software, and to permit persons to whom the Software is
9 | * furnished to do so, subject to the following conditions:
10 | *
11 | * The above copyright notice and this permission notice shall be included in
12 | * all copies or substantial portions of the Software.
13 | *
14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20 | * THE SOFTWARE.
21 | */
22 |
23 | #ifndef CLIENT_GLOBAL_H
24 | #define CLIENT_GLOBAL_H
25 |
26 | #include
27 |
28 | // widely used headers
29 | #include "const.h"
30 | #include "position.h"
31 |
32 | #endif
33 |
--------------------------------------------------------------------------------
/data/styles/20-tables.otui:
--------------------------------------------------------------------------------
1 | Table < UITable
2 | layout: verticalBox
3 | header-column-style: TableHeaderColumn
4 | header-row-style: TableHeaderRow
5 | column-style: TableColumn
6 | row-style: TableRow
7 |
8 | TableData < UIScrollArea
9 | layout: verticalBox
10 |
11 | TableRow < UITableRow
12 | layout: horizontalBox
13 | height: 10
14 | text-wrap: true
15 | focusable: true
16 | even-background-color: alpha
17 | odd-background-color: #00000022
18 |
19 | $focus:
20 | background-color: #294f6d
21 | color: #ffffff
22 |
23 | TableColumn < Label
24 | width: 30
25 | text-wrap: true
26 | focusable: false
27 |
28 | TableHeaderRow < Label
29 | layout: horizontalBox
30 | focusable: false
31 | height: 10
32 | text-wrap: true
33 |
34 | TableHeaderColumn < UITableHeaderColumn
35 | font: verdana-11px-antialised
36 | background-color: alpha
37 | color: #dfdfdfff
38 | height: 23
39 | focusable: true
40 | text-offset: 0 0
41 | image-source: /images/ui/button
42 | image-color: #dfdfdf
43 | image-clip: 0 0 22 23
44 | image-border: 3
45 | padding: 5 10 5 10
46 | enabled: false
47 | focusable: false
48 |
49 | $hover !disabled:
50 | image-clip: 0 23 22 23
51 |
52 | $pressed:
53 | image-clip: 0 46 22 23
54 | text-offset: 1 1
55 |
56 | $disabled:
57 | color: #dfdfdf88
58 | opacity: 0.8
59 |
60 | SortableTableHeaderColumn < TableHeaderColumn
61 | enabled: true
62 | focusable: true
--------------------------------------------------------------------------------
/website_and_php_files/map_viewer/libs/byte64.js:
--------------------------------------------------------------------------------
1 | var keyStr = "ABCDEFGHIJKLMNOP" +
2 | "QRSTUVWXYZabcdef" +
3 | "ghijklmnopqrstuv" +
4 | "wxyz0123456789+/" +
5 | "=";
6 | function decodeByte64(input)
7 | {
8 | var output = "";
9 | var chr1, chr2, chr3 = "";
10 | var enc1, enc2, enc3, enc4 = "";
11 | var i = 0;
12 |
13 | // remove all characters that are not A-Z, a-z, 0-9, +, /, or =
14 | var base64test = /[^A-Za-z0-9\+\/\=]/g;
15 | if(base64test.exec(input))
16 | {
17 | alert("There were invalid base64 characters in the input text.\n" +
18 | "Valid base64 characters are A-Z, a-z, 0-9, '+', '/',and '='\n" +
19 | "Expect errors in decoding.");
20 | }
21 | input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
22 |
23 | do
24 | {
25 | enc1 = keyStr.indexOf(input.charAt(i++));
26 | enc2 = keyStr.indexOf(input.charAt(i++));
27 | enc3 = keyStr.indexOf(input.charAt(i++));
28 | enc4 = keyStr.indexOf(input.charAt(i++));
29 |
30 | chr1 = (enc1 << 2) | (enc2 >> 4);
31 | chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
32 | chr3 = ((enc3 & 3) << 6) | enc4;
33 |
34 | output = output + String.fromCharCode(chr1);
35 |
36 | if (enc3 != 64)
37 | {
38 | output = output + String.fromCharCode(chr2);
39 | }
40 | if (enc4 != 64)
41 | {
42 | output = output + String.fromCharCode(chr3);
43 | }
44 |
45 | chr1 = chr2 = chr3 = "";
46 | enc1 = enc2 = enc3 = enc4 = "";
47 | } while (i < input.length);
48 |
49 | return unescape(output);
50 | }
--------------------------------------------------------------------------------
/src/framework/graphics/painter.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2010-2017 OTClient
3 | *
4 | * Permission is hereby granted, free of charge, to any person obtaining a copy
5 | * of this software and associated documentation files (the "Software"), to deal
6 | * in the Software without restriction, including without limitation the rights
7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 | * copies of the Software, and to permit persons to whom the Software is
9 | * furnished to do so, subject to the following conditions:
10 | *
11 | * The above copyright notice and this permission notice shall be included in
12 | * all copies or substantial portions of the Software.
13 | *
14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20 | * THE SOFTWARE.
21 | */
22 |
23 | #include "painter.h"
24 | #include "graphics.h"
25 |
26 | #include
27 |
28 | Painter *g_painter = nullptr;
29 |
30 | Painter::Painter()
31 | {
32 |
33 | }
34 |
--------------------------------------------------------------------------------
/modules/client_background/background.lua:
--------------------------------------------------------------------------------
1 | -- private variables
2 | local background
3 | local clientVersionLabel
4 |
5 | -- public functions
6 | function init()
7 | background = g_ui.displayUI('background')
8 | background:lower()
9 |
10 | clientVersionLabel = background:getChildById('clientVersionLabel')
11 | clientVersionLabel:setText(g_app.getName() .. ' ' .. g_app.getVersion() .. '\n' ..
12 | 'Rev ' .. g_app.getBuildRevision() .. ' ('.. g_app.getBuildCommit() .. ')\n' ..
13 | 'Built on ' .. g_app.getBuildDate() .. '\n' .. g_app.getBuildCompiler())
14 |
15 | if not g_game.isOnline() then
16 | addEvent(function() g_effects.fadeIn(clientVersionLabel, 1500) end)
17 | end
18 |
19 | connect(g_game, { onGameStart = hide })
20 | connect(g_game, { onGameEnd = show })
21 | end
22 |
23 | function terminate()
24 | disconnect(g_game, { onGameStart = hide })
25 | disconnect(g_game, { onGameEnd = show })
26 |
27 | g_effects.cancelFade(background:getChildById('clientVersionLabel'))
28 | background:destroy()
29 |
30 | Background = nil
31 | end
32 |
33 | function hide()
34 | background:hide()
35 | end
36 |
37 | function show()
38 | background:show()
39 | end
40 |
41 | function hideVersionLabel()
42 | background:getChildById('clientVersionLabel'):hide()
43 | end
44 |
45 | function setVersionText(text)
46 | clientVersionLabel:setText(text)
47 | end
48 |
49 | function getBackground()
50 | return background
51 | end
--------------------------------------------------------------------------------
/src/framework/core/timer.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2010-2017 OTClient
3 | *
4 | * Permission is hereby granted, free of charge, to any person obtaining a copy
5 | * of this software and associated documentation files (the "Software"), to deal
6 | * in the Software without restriction, including without limitation the rights
7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 | * copies of the Software, and to permit persons to whom the Software is
9 | * furnished to do so, subject to the following conditions:
10 | *
11 | * The above copyright notice and this permission notice shall be included in
12 | * all copies or substantial portions of the Software.
13 | *
14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20 | * THE SOFTWARE.
21 | */
22 |
23 |
24 | #include "timer.h"
25 | #include "clock.h"
26 |
27 | void Timer::restart()
28 | {
29 | m_startTicks = g_clock.millis();
30 | m_stopped = false;
31 | }
32 |
33 | ticks_t Timer::ticksElapsed()
34 | {
35 | return g_clock.millis() - m_startTicks;
36 | }
37 |
--------------------------------------------------------------------------------
/src/client/client.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2010-2017 OTClient
3 | *
4 | * Permission is hereby granted, free of charge, to any person obtaining a copy
5 | * of this software and associated documentation files (the "Software"), to deal
6 | * in the Software without restriction, including without limitation the rights
7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 | * copies of the Software, and to permit persons to whom the Software is
9 | * furnished to do so, subject to the following conditions:
10 | *
11 | * The above copyright notice and this permission notice shall be included in
12 | * all copies or substantial portions of the Software.
13 | *
14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20 | * THE SOFTWARE.
21 | */
22 |
23 | #ifndef CLIENT_H
24 | #define CLIENT_H
25 |
26 | #include "global.h"
27 |
28 | class Client
29 | {
30 | public:
31 | void init(std::vector& args);
32 | void terminate();
33 | void registerLuaFunctions();
34 | };
35 |
36 | extern Client g_client;
37 |
38 | #endif
39 |
--------------------------------------------------------------------------------
/src/framework/otml/otmlemitter.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2010-2017 OTClient
3 | *
4 | * Permission is hereby granted, free of charge, to any person obtaining a copy
5 | * of this software and associated documentation files (the "Software"), to deal
6 | * in the Software without restriction, including without limitation the rights
7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 | * copies of the Software, and to permit persons to whom the Software is
9 | * furnished to do so, subject to the following conditions:
10 | *
11 | * The above copyright notice and this permission notice shall be included in
12 | * all copies or substantial portions of the Software.
13 | *
14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20 | * THE SOFTWARE.
21 | */
22 |
23 | #ifndef OTMLEMITTER_H
24 | #define OTMLEMITTER_H
25 |
26 | #include "declarations.h"
27 |
28 | class OTMLEmitter
29 | {
30 | public:
31 | /// Emits a node and it's children to a std::string
32 | static std::string emitNode(const OTMLNodePtr& node, int currentDepth = -1);
33 | };
34 |
35 | #endif
36 |
--------------------------------------------------------------------------------
/modules/game_market/ui/marketoffers/itemdetails.otui:
--------------------------------------------------------------------------------
1 | DetailsTableRow < TableRow
2 | font: verdana-11px-monochrome
3 | focusable: true
4 | color: #cccccc
5 | height: 45
6 | focusable: false
7 | padding: 2
8 | even-background-color: alpha
9 | odd-background-color: alpha
10 |
11 | DetailsTableColumn < TableColumn
12 | font: verdana-11px-monochrome
13 | background-color: alpha
14 | text-offset: 5 2
15 | color: #cccccc
16 | width: 100
17 | focusable: false
18 |
19 | Panel
20 | background-color: #22283399
21 | margin: 1
22 |
23 | Table
24 | id: detailsTable
25 | anchors.top: parent.top
26 | anchors.bottom: parent.bottom
27 | anchors.left: parent.left
28 | anchors.right: parent.right
29 | margin-top: 63
30 | margin-left: 6
31 | margin-bottom: 85
32 | margin-right: 6
33 | padding: 1
34 | focusable: false
35 | background-color: #222833
36 | border-width: 1
37 | border-color: #191f27
38 | table-data: detailsTableData
39 | row-style: DetailsTableRow
40 | column-style: DetailsTableColumn
41 |
42 | TableData
43 | id: detailsTableData
44 | anchors.top: detailsTable.top
45 | anchors.bottom: detailsTable.bottom
46 | anchors.left: detailsTable.left
47 | anchors.right: detailsTable.right
48 | vertical-scrollbar: detailsTableScrollBar
49 |
50 | VerticalScrollBar
51 | id: detailsTableScrollBar
52 | anchors.top: detailsTable.top
53 | anchors.bottom: detailsTable.bottom
54 | anchors.right: detailsTable.right
55 | step: 28
56 | pixels-scroll: true
--------------------------------------------------------------------------------
/modules/corelib/inputmessage.lua:
--------------------------------------------------------------------------------
1 | function InputMessage:getData()
2 | local dataType = self:getU8()
3 | if dataType == NetworkMessageTypes.Boolean then
4 | return numbertoboolean(self:getU8())
5 | elseif dataType == NetworkMessageTypes.U8 then
6 | return self:getU8()
7 | elseif dataType == NetworkMessageTypes.U16 then
8 | return self:getU16()
9 | elseif dataType == NetworkMessageTypes.U32 then
10 | return self:getU32()
11 | elseif dataType == NetworkMessageTypes.U64 then
12 | return self:getU64()
13 | elseif dataType == NetworkMessageTypes.NumberString then
14 | return tonumber(self:getString())
15 | elseif dataType == NetworkMessageTypes.String then
16 | return self:getString()
17 | elseif dataType == NetworkMessageTypes.Table then
18 | return self:getTable()
19 | else
20 | perror('Unknown data type ' .. dataType)
21 | end
22 | return nil
23 | end
24 |
25 | function InputMessage:getTable()
26 | local ret = {}
27 | local size = self:getU16()
28 | for i=1,size do
29 | local index = self:getData()
30 | local value = self:getData()
31 | ret[index] = value
32 | end
33 | return ret
34 | end
35 |
36 | function InputMessage:getColor()
37 | local color = {}
38 | color.r = self:getU8()
39 | color.g = self:getU8()
40 | color.b = self:getU8()
41 | color.a = self:getU8()
42 | return color
43 | end
44 |
45 | function InputMessage:getPosition()
46 | local position = {}
47 | position.x = self:getU16()
48 | position.y = self:getU16()
49 | position.z = self:getU8()
50 | return position
51 | end
52 |
--------------------------------------------------------------------------------
/src/framework/ui/ui.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2010-2017 OTClient
3 | *
4 | * Permission is hereby granted, free of charge, to any person obtaining a copy
5 | * of this software and associated documentation files (the "Software"), to deal
6 | * in the Software without restriction, including without limitation the rights
7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 | * copies of the Software, and to permit persons to whom the Software is
9 | * furnished to do so, subject to the following conditions:
10 | *
11 | * The above copyright notice and this permission notice shall be included in
12 | * all copies or substantial portions of the Software.
13 | *
14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20 | * THE SOFTWARE.
21 | */
22 |
23 | #ifndef UI_H
24 | #define UI_H
25 |
26 | #include "uimanager.h"
27 | #include "uiwidget.h"
28 | #include "uitextedit.h"
29 | #include "uilayout.h"
30 | #include "uihorizontallayout.h"
31 | #include "uiverticallayout.h"
32 | #include "uigridlayout.h"
33 | #include "uianchorlayout.h"
34 | #include "uiparticles.h"
35 |
36 | #endif
37 |
--------------------------------------------------------------------------------
/modules/game_things/things.lua:
--------------------------------------------------------------------------------
1 | filename = nil
2 | loaded = false
3 |
4 | function init()
5 | connect(g_game, { onClientVersionChange = load })
6 | end
7 |
8 | function terminate()
9 | disconnect(g_game, { onClientVersionChange = load })
10 | end
11 |
12 | function setFileName(name)
13 | filename = name
14 | end
15 |
16 | function isLoaded()
17 | return loaded
18 | end
19 |
20 | function load()
21 | local version = g_game.getClientVersion()
22 |
23 | local datPath, sprPath
24 | if filename then
25 | datPath = resolvepath('/things/' .. filename)
26 | sprPath = resolvepath('/things/' .. filename)
27 | else
28 | datPath = resolvepath('/things/' .. version .. '/Tibia')
29 | sprPath = resolvepath('/things/' .. version .. '/Tibia')
30 | end
31 |
32 | local errorMessage = ''
33 | if not g_things.loadDat(datPath) then
34 | errorMessage = errorMessage .. tr("Unable to load dat file, please place a valid dat in '%s'", datPath) .. '\n'
35 | end
36 | if not g_sprites.loadSpr(sprPath) then
37 | errorMessage = errorMessage .. tr("Unable to load spr file, please place a valid spr in '%s'", sprPath)
38 | end
39 |
40 | loaded = (errorMessage:len() == 0)
41 |
42 | if errorMessage:len() > 0 then
43 | local messageBox = displayErrorBox(tr('Error'), errorMessage)
44 | addEvent(function() messageBox:raise() messageBox:focus() end)
45 |
46 | disconnect(g_game, { onClientVersionChange = load })
47 | g_game.setClientVersion(0)
48 | g_game.setProtocolVersion(0)
49 | connect(g_game, { onClientVersionChange = load })
50 | end
51 | end
52 |
--------------------------------------------------------------------------------
/src/client/player.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2010-2017 OTClient
3 | *
4 | * Permission is hereby granted, free of charge, to any person obtaining a copy
5 | * of this software and associated documentation files (the "Software"), to deal
6 | * in the Software without restriction, including without limitation the rights
7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 | * copies of the Software, and to permit persons to whom the Software is
9 | * furnished to do so, subject to the following conditions:
10 | *
11 | * The above copyright notice and this permission notice shall be included in
12 | * all copies or substantial portions of the Software.
13 | *
14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20 | * THE SOFTWARE.
21 | */
22 |
23 | #ifndef PLAYER_H
24 | #define PLAYER_H
25 |
26 | #include "creature.h"
27 |
28 | // @bindclass
29 | class Player : public Creature
30 | {
31 | public:
32 | Player() { }
33 | virtual ~Player() { }
34 |
35 | PlayerPtr asPlayer() { return static_self_cast(); }
36 | bool isPlayer() { return true; }
37 | };
38 |
39 | #endif
40 |
--------------------------------------------------------------------------------
/website_and_php_files/map_viewer/libs/MarkerCluster.Default.css:
--------------------------------------------------------------------------------
1 | .marker-cluster-small {
2 | background-color: rgba(181, 226, 140, 0.6);
3 | }
4 | .marker-cluster-small div {
5 | background-color: rgba(110, 204, 57, 0.6);
6 | }
7 |
8 | .marker-cluster-medium {
9 | background-color: rgba(241, 211, 87, 0.6);
10 | }
11 | .marker-cluster-medium div {
12 | background-color: rgba(240, 194, 12, 0.6);
13 | }
14 |
15 | .marker-cluster-large {
16 | background-color: rgba(253, 156, 115, 0.6);
17 | }
18 | .marker-cluster-large div {
19 | background-color: rgba(241, 128, 23, 0.6);
20 | }
21 |
22 | /* IE 6-8 fallback colors */
23 | .leaflet-oldie .marker-cluster-small {
24 | background-color: rgb(181, 226, 140);
25 | }
26 | .leaflet-oldie .marker-cluster-small div {
27 | background-color: rgb(110, 204, 57);
28 | }
29 |
30 | .leaflet-oldie .marker-cluster-medium {
31 | background-color: rgb(241, 211, 87);
32 | }
33 | .leaflet-oldie .marker-cluster-medium div {
34 | background-color: rgb(240, 194, 12);
35 | }
36 |
37 | .leaflet-oldie .marker-cluster-large {
38 | background-color: rgb(253, 156, 115);
39 | }
40 | .leaflet-oldie .marker-cluster-large div {
41 | background-color: rgb(241, 128, 23);
42 | }
43 |
44 | .marker-cluster {
45 | background-clip: padding-box;
46 | border-radius: 20px;
47 | }
48 | .marker-cluster div {
49 | width: 30px;
50 | height: 30px;
51 | margin-left: 5px;
52 | margin-top: 5px;
53 |
54 | text-align: center;
55 | border-radius: 15px;
56 | font: 12px "Helvetica Neue", Arial, Helvetica, sans-serif;
57 | }
58 | .marker-cluster span {
59 | line-height: 30px;
60 | }
--------------------------------------------------------------------------------
/src/framework/stdext/net.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2010-2017 OTClient
3 | *
4 | * Permission is hereby granted, free of charge, to any person obtaining a copy
5 | * of this software and associated documentation files (the "Software"), to deal
6 | * in the Software without restriction, including without limitation the rights
7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 | * copies of the Software, and to permit persons to whom the Software is
9 | * furnished to do so, subject to the following conditions:
10 | *
11 | * The above copyright notice and this permission notice shall be included in
12 | * all copies or substantial portions of the Software.
13 | *
14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20 | * THE SOFTWARE.
21 | */
22 |
23 | #ifndef STDEXT_NET_H
24 | #define STDEXT_NET_H
25 |
26 | #include "types.h"
27 | #include
28 | #include
29 |
30 | namespace stdext {
31 | std::string ip_to_string(uint32 ip);
32 | uint32 string_to_ip(const std::string& string);
33 | std::vector listSubnetAddresses(uint32 address, uint8 mask);
34 | }
35 |
36 | #endif
37 |
--------------------------------------------------------------------------------
/modules/game_containers/container.otui:
--------------------------------------------------------------------------------
1 | PageButton < Button
2 | size: 30 18
3 | margin: 1
4 |
5 |
6 | ContainerWindow < MiniWindow
7 | height: 150
8 |
9 | UIItem
10 | id: containerItemWidget
11 | virtual: true
12 | size: 16 16
13 | anchors.top: parent.top
14 | anchors.left: parent.left
15 | margin-top: 4
16 | margin-left: 4
17 |
18 | UIButton
19 | id: upButton
20 | anchors.top: minimizeButton.top
21 | anchors.right: minimizeButton.left
22 | margin-right: 3
23 | size: 14 14
24 | image-source: /images/ui/miniwindow_buttons
25 | image-clip: 42 0 14 14
26 |
27 | $hover:
28 | image-clip: 42 14 14 14
29 |
30 | $pressed:
31 | image-clip: 42 28 14 14
32 |
33 | Panel
34 | id: pagePanel
35 | anchors.left: parent.left
36 | anchors.right: parent.right
37 | anchors.top: miniwindowTopBar.bottom
38 | height: 20
39 | margin: 2 3 0 3
40 | background: #00000066
41 | visible: false
42 |
43 | Label
44 | id: pageLabel
45 | anchors.top: parent.top
46 | anchors.horizontalCenter: parent.horizontalCenter
47 | margin-top: 2
48 | text-auto-resize: true
49 |
50 | PageButton
51 | id: prevPageButton
52 | text: <
53 | anchors.top: parent.top
54 | anchors.left: parent.left
55 |
56 | PageButton
57 | id: nextPageButton
58 | text: >
59 | anchors.top: parent.top
60 | anchors.right: parent.right
61 |
62 | MiniWindowContents
63 | padding-right: 0
64 | layout:
65 | type: grid
66 | cell-size: 34 34
67 | flow: true
68 |
--------------------------------------------------------------------------------
/modules/corelib/string.lua:
--------------------------------------------------------------------------------
1 | -- @docclass string
2 |
3 | function string:split(delim)
4 | local start = 1
5 | local results = {}
6 | while true do
7 | local pos = string.find(self, delim, start, true)
8 | if not pos then
9 | break
10 | end
11 | table.insert(results, string.sub(self, start, pos-1))
12 | start = pos + string.len(delim)
13 | end
14 | table.insert(results, string.sub(self, start))
15 | table.removevalue(results, '')
16 | return results
17 | end
18 |
19 | function string:starts(start)
20 | return string.sub(self, 1, #start) == start
21 | end
22 |
23 | function string:ends(test)
24 | return test =='' or string.sub(self,-string.len(test)) == test
25 | end
26 |
27 | function string:trim()
28 | return string.match(self, '^%s*(.*%S)') or ''
29 | end
30 |
31 | function string:explode(sep, limit)
32 | if type(sep) ~= 'string' or tostring(self):len() == 0 or sep:len() == 0 then
33 | return {}
34 | end
35 |
36 | local i, pos, tmp, t = 0, 1, "", {}
37 | for s, e in function() return string.find(self, sep, pos) end do
38 | tmp = self:sub(pos, s - 1):trim()
39 | table.insert(t, tmp)
40 | pos = e + 1
41 |
42 | i = i + 1
43 | if limit ~= nil and i == limit then
44 | break
45 | end
46 | end
47 |
48 | tmp = self:sub(pos):trim()
49 | table.insert(t, tmp)
50 | return t
51 | end
52 |
53 | function string:contains(str, checkCase, start, plain)
54 | if(not checkCase) then
55 | self = self:lower()
56 | str = str:lower()
57 | end
58 | return string.find(self, str, start and start or 1, plain == nil and true or false)
59 | end
60 |
--------------------------------------------------------------------------------
/modules/gamelib/protocolgame.lua:
--------------------------------------------------------------------------------
1 | local opcodeCallbacks = {}
2 | local extendedCallbacks = {}
3 |
4 | function ProtocolGame:onOpcode(opcode, msg)
5 | for i, callback in pairs(opcodeCallbacks) do
6 | if i == opcode then
7 | callback(self, msg)
8 | return true
9 | end
10 | end
11 | return false
12 | end
13 |
14 | function ProtocolGame:onExtendedOpcode(opcode, buffer)
15 | local callback = extendedCallbacks[opcode]
16 | if callback then
17 | callback(self, opcode, buffer)
18 | end
19 | end
20 |
21 | function ProtocolGame.registerOpcode(opcode, callback)
22 | if opcodeCallbacks[opcode] then
23 | error('opcode ' .. opcode .. ' already registered will be overriden')
24 | end
25 |
26 | opcodeCallbacks[opcode] = callback
27 | end
28 |
29 | function ProtocolGame.unregisterOpcode(opcode)
30 | opcodeCallbacks[opcode] = nil
31 | end
32 |
33 | function ProtocolGame.registerExtendedOpcode(opcode, callback)
34 | if not callback or type(callback) ~= 'function' then
35 | error('Invalid callback.')
36 | end
37 |
38 | if opcode < 0 or opcode > 255 then
39 | error('Invalid opcode. Range: 0-255')
40 | end
41 |
42 | if extendedCallbacks[opcode] then
43 | error('Opcode is already taken.')
44 | end
45 |
46 | extendedCallbacks[opcode] = callback
47 | end
48 |
49 | function ProtocolGame.unregisterExtendedOpcode(opcode)
50 | if opcode < 0 or opcode > 255 then
51 | error('Invalid opcode. Range: 0-255')
52 | end
53 |
54 | if not extendedCallbacks[opcode] then
55 | error('Opcode is not registered.')
56 | end
57 |
58 | extendedCallbacks[opcode] = nil
59 | end
60 |
--------------------------------------------------------------------------------
/src/framework/cmake/FindICU.cmake:
--------------------------------------------------------------------------------
1 | # Try to find the ICU library
2 | # ICU_FOUND - system has ICU
3 | # ICU_INCLUDE_DIR - the ICU include directory
4 | # ICU_LIBRARY - the ICU library
5 |
6 | FIND_PATH(ICU_INCLUDE_DIR NAMES unicode/utf8.h)
7 | SET(_ICUIO_STATIC_LIBS libicuio.a)
8 | SET(_ICUIO_SHARED_LIBS libicuio.dll.a icuio)
9 | SET(_ICUI18N_STATIC_LIBS libicui18n.a)
10 | SET(_ICUI18N_SHARED_LIBS libicui18n.dll.a icui18n)
11 | SET(_ICUUC_STATIC_LIBS libicuuc.a)
12 | SET(_ICUUC_SHARED_LIBS libicuuc.dll.a icuuc)
13 | SET(_ICUDATA_STATIC_LIBS libicudata.a)
14 | SET(_ICUDATA_SHARED_LIBS libicudata.dll.a icudata)
15 | IF(USE_STATIC_LIBS)
16 | FIND_LIBRARY(ICUIO_LIBRARY NAMES ${_ICUIO_STATIC_LIBS} ${_ICUIO_SHARED_LIBS})
17 | FIND_LIBRARY(ICUI18N_LIBRARY NAMES ${_ICUI18N_STATIC_LIBS} ${_ICUI18N_SHARED_LIBS})
18 | FIND_LIBRARY(ICUUC_LIBRARY NAMES ${_ICUUC_STATIC_LIBS} ${_ICUUC_SHARED_LIBS})
19 | FIND_LIBRARY(ICUDATA_LIBRARY NAMES ${_ICUDATA_STATIC_LIBS} ${_ICUDATA_SHARED_LIBS})
20 | ELSE()
21 | FIND_LIBRARY(ICUIO_LIBRARY NAMES ${_ICUIO_SHARED_LIBS} ${_ICUIO_STATIC_LIBS})
22 | FIND_LIBRARY(ICUI18N_LIBRARY NAMES ${_ICUI18N_SHARED_LIBS} ${_ICUI18N_STATIC_LIBS})
23 | FIND_LIBRARY(ICUUC_LIBRARY NAMES ${_ICUUC_SHARED_LIBS} ${_ICUUC_STATIC_LIBS})
24 | FIND_LIBRARY(ICUDATA_LIBRARY NAMES ${_ICUDATA_SHARED_LIBS} ${_ICUDATA_STATIC_LIBS})
25 | ENDIF()
26 | SET(ICU_LIBRARIES ${ICUIO_LIBRARY} ${ICUI18N_LIBRARY} ${ICUUC_LIBRARY} ${ICUDATA_LIBRARY})
27 | INCLUDE(FindPackageHandleStandardArgs)
28 | FIND_PACKAGE_HANDLE_STANDARD_ARGS(ICU DEFAULT_MSG ICU_LIBRARIES ICU_INCLUDE_DIR)
29 | MARK_AS_ADVANCED(ICU_LIBRARIES ICU_INCLUDE_DIR)
--------------------------------------------------------------------------------
/src/framework/core/clock.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2010-2017 OTClient
3 | *
4 | * Permission is hereby granted, free of charge, to any person obtaining a copy
5 | * of this software and associated documentation files (the "Software"), to deal
6 | * in the Software without restriction, including without limitation the rights
7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 | * copies of the Software, and to permit persons to whom the Software is
9 | * furnished to do so, subject to the following conditions:
10 | *
11 | * The above copyright notice and this permission notice shall be included in
12 | * all copies or substantial portions of the Software.
13 | *
14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20 | * THE SOFTWARE.
21 | */
22 |
23 | #include "clock.h"
24 |
25 | Clock g_clock;
26 |
27 | Clock::Clock()
28 | {
29 | m_currentMicros = 0;
30 | m_currentMillis = 0;
31 | m_currentSeconds = 0;
32 | }
33 |
34 | void Clock::update()
35 | {
36 | m_currentMicros = stdext::micros();
37 | m_currentMillis = m_currentMicros / 1000;
38 | m_currentSeconds = m_currentMicros / 1000000.0f;
39 | }
40 |
--------------------------------------------------------------------------------
/src/framework/stdext/boolean.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2010-2017 OTClient
3 | *
4 | * Permission is hereby granted, free of charge, to any person obtaining a copy
5 | * of this software and associated documentation files (the "Software"), to deal
6 | * in the Software without restriction, including without limitation the rights
7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 | * copies of the Software, and to permit persons to whom the Software is
9 | * furnished to do so, subject to the following conditions:
10 | *
11 | * The above copyright notice and this permission notice shall be included in
12 | * all copies or substantial portions of the Software.
13 | *
14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20 | * THE SOFTWARE.
21 | */
22 |
23 | #ifndef BOOLEAN_H
24 | #define BOOLEAN_H
25 |
26 | namespace stdext {
27 |
28 | template
29 | struct boolean {
30 | boolean() : v(def) { }
31 | operator bool &() { return v; }
32 | operator bool const &() const { return v; }
33 | bool& operator=(const bool& o) { v = o; return v; }
34 | private:
35 | bool v;
36 | };
37 |
38 | }
39 |
40 | #endif
41 |
--------------------------------------------------------------------------------
/modules/corelib/globals.lua:
--------------------------------------------------------------------------------
1 | -- @docvars @{
2 |
3 | -- root widget
4 | rootWidget = g_ui.getRootWidget()
5 | modules = package.loaded
6 |
7 | -- G is used as a global table to save variables in memory between reloads
8 | G = G or {}
9 |
10 | -- @}
11 |
12 | -- @docfuncs @{
13 |
14 | function scheduleEvent(callback, delay)
15 | local event = g_dispatcher.scheduleEvent(callback, delay)
16 | -- must hold a reference to the callback, otherwise it would be collected
17 | event._callback = callback
18 | return event
19 | end
20 |
21 | function addEvent(callback, front)
22 | local event = g_dispatcher.addEvent(callback, front)
23 | -- must hold a reference to the callback, otherwise it would be collected
24 | event._callback = callback
25 | return event
26 | end
27 |
28 | function cycleEvent(callback, interval)
29 | local event = g_dispatcher.cycleEvent(callback, interval)
30 | -- must hold a reference to the callback, otherwise it would be collected
31 | event._callback = callback
32 | return event
33 | end
34 |
35 | function periodicalEvent(eventFunc, conditionFunc, delay, autoRepeatDelay)
36 | delay = delay or 30
37 | autoRepeatDelay = autoRepeatDelay or delay
38 |
39 | local func
40 | func = function()
41 | if conditionFunc and not conditionFunc() then
42 | func = nil
43 | return
44 | end
45 | eventFunc()
46 | scheduleEvent(func, delay)
47 | end
48 |
49 | scheduleEvent(function()
50 | func()
51 | end, autoRepeatDelay)
52 | end
53 |
54 | function removeEvent(event)
55 | if event then
56 | event:cancel()
57 | event._callback = nil
58 | end
59 | end
60 |
61 | -- @}
--------------------------------------------------------------------------------
/modules/gamelib/thing.lua:
--------------------------------------------------------------------------------
1 | ThingCategoryItem = 0
2 | ThingCategoryCreature = 1
3 | ThingCategoryEffect = 2
4 | ThingCategoryMissile = 3
5 | ThingInvalidCategory = 4
6 | ThingLastCategory = ThingInvalidCategory
7 |
8 | ThingAttrGround = 0
9 | ThingAttrGroundBorder = 1
10 | ThingAttrOnBottom = 2
11 | ThingAttrOnTop = 3
12 | ThingAttrContainer = 4
13 | ThingAttrStackable = 5
14 | ThingAttrForceUse = 6
15 | ThingAttrMultiUse = 7
16 | ThingAttrWritable = 8
17 | ThingAttrWritableOnce = 9
18 | ThingAttrFluidContainer = 10
19 | ThingAttrSplash = 11
20 | ThingAttrNotWalkable = 12
21 | ThingAttrNotMoveable = 13
22 | ThingAttrBlockProjectile = 14
23 | ThingAttrNotPathable = 15
24 | ThingAttrPickupable = 16
25 | ThingAttrHangable = 17
26 | ThingAttrHookSouth = 18
27 | ThingAttrHookEast = 19
28 | ThingAttrRotateable = 20
29 | ThingAttrLight = 21
30 | ThingAttrDontHide = 22
31 | ThingAttrTranslucent = 23
32 | ThingAttrDisplacement = 24
33 | ThingAttrElevation = 25
34 | ThingAttrLyingCorpse = 26
35 | ThingAttrAnimateAlways = 27
36 | ThingAttrMinimapColor = 28
37 | ThingAttrLensHelp = 29
38 | ThingAttrFullGround = 30
39 | ThingAttrLook = 31
40 | ThingAttrCloth = 32
41 | ThingAttrMarket = 33
42 | ThingAttrNoMoveAnimation = 253 -- >= 1010, value = 16
43 | ThingAttrChargeable = 254 -- deprecated
44 | ThingLastAttr = 255
45 |
46 | SpriteMaskRed = 1
47 | SpriteMaskGreen = 2
48 | SpriteMaskBlue = 3
49 | SpriteMaskYellow = 4
--------------------------------------------------------------------------------
/modules/game_market/market.otui:
--------------------------------------------------------------------------------
1 | MarketWindow < MainWindow
2 | id: marketWindow
3 | !text: tr('Market')
4 | size: 700 530
5 |
6 | @onEscape: Market.close()
7 |
8 | // Main Panel Window
9 |
10 | MarketTabBar
11 | id: mainTabBar
12 | width: 164
13 | height: 25
14 | anchors.top: parent.top
15 | anchors.left: parent.left
16 |
17 | Panel
18 | id: mainTabContent
19 | anchors.top: prev.bottom
20 | anchors.left: parent.left
21 | anchors.right: parent.right
22 | anchors.bottom: parent.bottom
23 | padding: 3
24 | border-width: 1
25 | border-color: #000000
26 | margin-bottom: 20
27 |
28 | Label
29 | id: balanceLabel
30 | !text: tr('Balance') .. ':'
31 | font: verdana-11px-rounded
32 | text-offset: 0 2
33 | anchors.top: parent.top
34 | anchors.right: parent.right
35 |
36 | Button
37 | id: closeButton
38 | !text: tr('Close')
39 | anchors.top: mainTabContent.bottom
40 | anchors.horizontalCenter: mainTabContent.horizontalCenter
41 | margin-top: 5
42 | width: 110
43 | @onClick: Market.close()
44 |
45 | Button
46 | id: refreshOffersButton
47 | !text: tr('Refresh Offers')
48 | anchors.top: mainTabContent.bottom
49 | anchors.right: mainTabContent.right
50 | margin-top: 5
51 | width: 110
52 | @onClick: Market.refreshOffers()
53 |
54 | Button
55 | id: resetButton
56 | !text: tr('Reset Market')
57 | !tooltip: tr('Reset selection, filters & search')
58 | anchors.top: mainTabContent.bottom
59 | anchors.left: mainTabContent.left
60 | margin-top: 5
61 | width: 110
62 | @onClick: Market.reset()
--------------------------------------------------------------------------------
/src/framework/ui/uitranslator.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2010-2017 OTClient
3 | *
4 | * Permission is hereby granted, free of charge, to any person obtaining a copy
5 | * of this software and associated documentation files (the "Software"), to deal
6 | * in the Software without restriction, including without limitation the rights
7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 | * copies of the Software, and to permit persons to whom the Software is
9 | * furnished to do so, subject to the following conditions:
10 | *
11 | * The above copyright notice and this permission notice shall be included in
12 | * all copies or substantial portions of the Software.
13 | *
14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20 | * THE SOFTWARE.
21 | */
22 |
23 | #ifndef TRANSLATOR_H
24 | #define TRANSLATOR_H
25 |
26 | #include "../const.h"
27 | #include
28 |
29 | namespace Fw {
30 |
31 | AlignmentFlag translateAlignment(std::string aligment);
32 | AnchorEdge translateAnchorEdge(std::string anchorEdge);
33 | WidgetState translateState(std::string state);
34 | AutoFocusPolicy translateAutoFocusPolicy(std::string policy);
35 |
36 | };
37 |
38 | #endif
39 |
--------------------------------------------------------------------------------