Compare commits

..

853 Commits

Author SHA1 Message Date
Nuno Gonçalves (Ulukyn) 7df9b2f255 Merge branch '58-add-rotz-roty-and-dist-reflect-lua-to-3dcamera-of-a-scene' into 'main/gingo-test'
Resolve "Add rotz roty and dist reflect lua to 3DCamera of a scene"

See merge request ryzom/ryzom-core!48
3 years ago
Nuno Gonçalves (Ulukyn) 8697553956 Resolve "Add rotz roty and dist reflect lua to 3DCamera of a scene" 3 years ago
nimetu d2508c8b15 Update hunter to 0.23.321 3 years ago
Nuno Gonçalves (Ulukyn) d385dedabc Merge branch '56-message-bubble-is-very-high-on-fh-alarm-plants' into 'main/gingo-test'
Resolve "Message bubble is very high on FH alarm plants"

See merge request ryzom/ryzom-core!45
3 years ago
Nuno Gonçalves (Ulukyn) ae33eb99bf Resolve "Message bubble is very high on FH alarm plants" 3 years ago
Nuno Gonçalves (Ulukyn) 2b88fd66ba Merge branch '46-rework-item-buff-icon-placement' into 'main/gingo-test'
Hide 1x quantity for equipable items, dynamic buff icon placement

See merge request ryzom/ryzom-core!43
3 years ago
Ben Saine be5bfd992c Hide 1x quantity for equipable items, dynamic buff icon placement 3 years ago
Nuno Gonçalves (Ulukyn) 9a24e7557f Merge branch '54-improve-the-way-to-reskin-ryzhome-items-and-preview' into 'main/gingo-test'
Resolve "Improve the way to reskin ryzhome items and preview"

See merge request ryzom/ryzom-core!44
3 years ago
Nuno Gonçalves (Ulukyn) 8708fd74c6 Resolve "Improve the way to reskin ryzhome items and preview" 3 years ago
Nuno db86219eab Added NL_NO_ASSERT to remove asserts in server 3 years ago
Nuno Gonçalves (Ulukyn) c6ec8a8d7d Merge branch '40-dragging-from-player-trade-to-inventory-takes-two-tries' into 'main/gingo-test'
Resolve "Dragging from player trade to inventory takes two tries"

See merge request ryzom/ryzom-core!39
3 years ago
Ben Saine 357934fcde Resolve "Dragging from player trade to inventory takes two tries" 3 years ago
Nuno Gonçalves (Ulukyn) e784c3aab1 Merge branch '37-remove-open-menu-option-from-scroll-items-when-item-use-a-scroll-label' into 'main/gingo-test'
Resolve "Remove Open menu option from scroll items when item use a Scroll.Label"

See merge request ryzom/ryzom-core!37
3 years ago
Nuno Gonçalves (Ulukyn) 22b4c074e8 Resolve "Remove Open menu option from scroll items when item use a Scroll.Label" 3 years ago
Nuno Gonçalves (Ulukyn) 255257a7f5 Merge branch '36-add-ability-to-have-translated-titles-with-untraslated-fields' into 'main/gingo-test'
Resolve "Add ability to have translated titles with untraslated fields"

See merge request ryzom/ryzom-core!36
3 years ago
Nuno Gonçalves (Ulukyn) 855410f3d0 Resolve "Add ability to have translated titles with untraslated fields" 3 years ago
Nuno Gonçalves (Ulukyn) 71a2c6f6e8 Merge branch '35-allow-drag-and-drop-between-zig-and-guild' into 'main/gingo-test'
Resolve "Allow drag and drop between zig and guild"

See merge request ryzom/ryzom-core!35
3 years ago
Ben Saine 3b2553e3dd Resolve "Allow drag and drop between zig and guild" 3 years ago
Nuno Gonçalves (Ulukyn) 54c7e09a10 Merge branch '21-fix-nopatch-without-argument-crash' into 'main/gingo-test'
Fix crash when --nopatch is used without argument

See merge request ryzom/ryzom-core!29
3 years ago
Meelis Mägi aebab35cad Fix crash when --nopatch is used without argument 3 years ago
Nuno Gonçalves (Ulukyn) 7cb6d4287e Merge branch '27-fixed-crash-with-html-image-downloads' into 'main/gingo-test'
Fixed cleanup of html downloads

See merge request ryzom/ryzom-core!25
3 years ago
Meelis Mägi 663de25cbe Fixed cleanup of html downloads 3 years ago
Nuno a7811f553e Merge branch '16-drag-drop-to-player-trade-window-from-all-inventories' into main/gingo-test 3 years ago
Nuno 743bf7f601 Merge remote-tracking branch 'origin/main/atys-live' into main/gingo-test 3 years ago
Nuno Gonçalves (Ulukyn) e891dddd1e Merge branch 'fix-area-effect-flying-text' into 'main/gingo-test'
Fix flying text for area magic/combat actions

See merge request ryzom/ryzom-core!19
3 years ago
Meelis Mägi e185ddc19f Fix flying text for area magic/combat actions 3 years ago
Nuno Gonçalves (Ulukyn) b12c7ac25c Merge branch 'add-screenshot-dir-to-config' into 'main/gingo-test'
Add ScreenShotDirectory entry to client.cfg

See merge request ryzom/ryzom-core!16
3 years ago
Meelis Mägi 9cff221a1e Add ScreenShotDirectory entry to client.cfg 3 years ago
Nuno Gonçalves (Ulukyn) 219bf0e066 Merge branch 'fix-viewtext-localized-text' into 'main/gingo-test'
Fix CViewText always returning localization key

See merge request ryzom/ryzom-core!34
3 years ago
Meelis Mägi c012e7ffcf Fix CViewText always returning localization key 3 years ago
Ben Saine 82b724fe88 Resolve "Encoding issues in client beta (after core4 merge)" 3 years ago
Nuno Gonçalves (Ulukyn) 9f2d2e7dda Merge branch '26-encoding-issues-in-client-beta-after-core4-merge' into 'main/gingo-test'
Resolve "Encoding issues in client beta (after core4 merge)"

See merge request ryzom/ryzom-core!33
3 years ago
Ben Saine 5df8ec43a0 Resolve "Encoding issues in client beta (after core4 merge)" 3 years ago
Nimetu 7c82f26bac Fix CViewText always returning localization key 3 years ago
Nimetu 3521d2d02e Fix macOS build, missing include 3 years ago
Nuno 88280ef02f Merge remote-tracking branch 'origin/main/atys-live' into main/atys-live 3 years ago
Nimetu 7344c98e6e Add macOS to azure pipeline 3 years ago
Nimetu 005e714f7d Add macOS to azure pipeline 3 years ago
Nimetu 37abc25dcb Add ubuntu-18.04 hunter image to azure pipeline 3 years ago
kaetemi ec41ba753f Download with aria2 instead and enable the DX drivers 3 years ago
kaetemi 63b4ea547a Download and extract DX SDK 3 years ago
Nimetu c31747a939 Add windows-2019 to azure pipeline 3 years ago
Nimetu 8aa1aed3bd Use Windows SDK if DirectX SDK not installed 3 years ago
Nimetu 19c5b582bc Fix linking with static OpenAL under windows 3 years ago
Nuno 993d749dba Use Hunter package manager to compile external libraries 3 years ago
Nimetu f6ac9bc4c1 Fix moving fullscreen window between monitors 3 years ago
Nuno Gonçalves (Ulukyn) 9e3064871a Merge branch 'fix-fullscreen-window-move' into 'main/gingo-test'
Fix moving fullscreen window between monitors

See merge request ryzom/ryzom-core!32
3 years ago
Nimetu 36e83e32f4 Fix moving fullscreen window between monitors 3 years ago
Nuno 0df3879358 Reapply changes reverted into atys-live because bad merge 3 years ago
Nuno b7e5ac18e9 Merge branch 'main/atys-live' into main/gingo-test 3 years ago
Nuno Gonçalves (Ulukyn) 80623a20cc Merge branch '31-wrong-fullscreen-resolution-in-opengl-win' into 'main/gingo-test'
Fix initial fullscreen window on OpenGL/Windows

See merge request ryzom/ryzom-core!31
3 years ago
Nuno Gonçalves (Ulukyn) efbceec12e Merge branch '31-wrong-fullscreen-resolution-in-opengl-win' into 'main/gingo-test'
Fix initial fullscreen window on OpenGL/Windows

See merge request ryzom/ryzom-core!31
3 years ago
Nimetu 013aad73d2 Fix initial fullscreen window on OpenGL/Windows 3 years ago
Nuno de638dfe6c Remove fmod option 3 years ago
Nuno 177e2395a5 Revert "Merge branch '32-remove-fmod-option-not-used-or-client-crash' into main/atys-live"
This reverts commit 0e2ec103ab.
3 years ago
Nuno 0e2ec103ab Merge branch '32-remove-fmod-option-not-used-or-client-crash' into main/atys-live 3 years ago
Nuno 574efe0c36 Remove fmod option 3 years ago
Nuno e43515e88a Fix generate_module_interface.xslt used to server shard_unifier_service/nel_database_mapping.xml file 3 years ago
Nuno 41794a1122 Merge branch 'main/atys-pre-live' into main/atys-live 3 years ago
Nimetu c47db9bf94 Fix utf8 encoding on sphrase info window 3 years ago
Nimetu b325126b20 Fixed cleanup of html downloads 3 years ago
Nuno 35a7a6628b Adde default value to _HeadPitch. Change bounds 3 years ago
Nimetu aa34e88101 Fix crash when --nopatch is used without argument 3 years ago
Nuno b667ccb6b6 Merge branch 'fixes' into main/atys-pre-live 3 years ago
Nuno Gonçalves (Ulukyn) 568d8ab895 Merge branch '28-add-command-to-switch-small-full-map' into 'main/gingo-test'
Resolve "Add command to switch small/full map"

See merge request ryzom/ryzom-core!26
3 years ago
Nuno Gonçalves (Ulukyn) 7f01b21d11 Merge branch '29-fix-camera-vertical-rotation-prevent-see-under-the-char' into 'main/gingo-test'
Resolve "Fix camera vertical rotation (prevent see under the char)"

See merge request ryzom/ryzom-core!27
3 years ago
Nuno Gonçalves (Ulukyn) d436d5616a Merge branch 'modify-item-buff-icons' into 'main/gingo-test'
Fix item buff icon overlapping with quantity

See merge request ryzom/ryzom-core!22
3 years ago
Nuno Gonçalves (Ulukyn) 973e183f2e Merge branch 'add-craftplan-buffs-to-craft-interface' into 'main/gingo-test'
Add craftplan buffs to crafting interface

See merge request ryzom/ryzom-core!23
3 years ago
Nuno 5c56c87d09 Adde default value to _HeadPitch. Change bounds 3 years ago
Nuno c616010246 Remove nlerror in getCurrentWindowUnder (useless)
Add debug when lua error
3 years ago
Nuno 700a9aadb7 Add command to switch small/full map 3 years ago
Nuno Gonçalves (Ulukyn) a246f3e5d0 Merge branch '26-encoding-issues-in-client-beta-after-core4-merge' into 'main/gingo-test'
Resolve "Encoding issues in client beta (after core4 merge)"

See merge request ryzom/ryzom-core!24
3 years ago
Meelis Mägi bbc291b9d3 Resolve "Encoding issues in client beta (after core4 merge)" 3 years ago
Nuno Gonçalves (Ulukyn) a64981a92a Merge branch '25-remove-lock-option-from-item-menu-in-guild-inventory' into 'main/gingo-test'
Resolve "Remove lock option from item menu in guild inventory"

See merge request ryzom/ryzom-core!21
3 years ago
Nuno Gonçalves (Ulukyn) 17c9dd061a Resolve "Remove lock option from item menu in guild inventory" 3 years ago
Ben Saine b72a71e87c Revert "add: sorting (initial draft)"
This reverts commit b4ce38099f
3 years ago
bensaine b4ce38099f add: sorting (initial draft) 3 years ago
Nimetu 9eaf7d3550 Add craftplan buffs to crafting interface 3 years ago
Nimetu 26827d2c66 Fix item buff icon overlapping with quantity 3 years ago
Nuno Gonçalves (Ulukyn) b6781af51e Merge branch 'inventory-fixes' into 'main/gingo-test'
Inventory fixes

See merge request ryzom/ryzom-core!12
3 years ago
Nuno Gonçalves (Ulukyn) e1b611f219 Inventory fixes 3 years ago
Nuno Gonçalves (Ulukyn) 8d7932a271 Merge branch 'self-kill' into 'main/gingo-test'
Merge selfkill

See merge request ryzom/ryzom-core!13
3 years ago
Nuno Gonçalves (Ulukyn) 0cc7a35dad Merge selfkill 3 years ago
Nuno 2304445c39 Remove bad commit (core4 path will be used in a next merge) 3 years ago
Ulu Kyn 701d7309e5 Revert "Merge ryzom-data into ryzom-core"
This reverts commit f3d0c9dc5b.
3 years ago
Ulu Kyn f3d0c9dc5b Merge ryzom-data into ryzom-core 3 years ago
Ulu Kyn a71f022c1a Merge ryzom-data into ryzom-core 3 years ago
Nuno cc3d42737e Merge branch 'fixes' into main/gingo-test 3 years ago
Nuno 1e590f1a69 Remove CPath::memoryCompress() because break CPath::lockup() 3 years ago
Nuno f450b57be0 Merge branch '6-resolve-show-lock-status-of-items-in-room-and-guild' into main/yubo-dev 3 years ago
Nuno fbb343ad51 Added resal_flag to databases 3 years ago
bensaine e1527b724b fix: typo 3 years ago
bensaine c3a633ae50 add: srcInvIndex 3 years ago
Nuno a76e8e1a64 Merge branch 'fixes' into main/gingo-test 3 years ago
Nuno 2df441225c Add RYZOM_PRODUCT_VERSION 3 years ago
Nuno 56cbc51005 Merge branch 'fixes' into main/gingo-test 3 years ago
Nuno 7ce53abffe Missing serialization (client can't load the icfg) 3 years ago
Nuno 4c4028822e Missing serialization (client can't load the icfg) 3 years ago
Nuno b4323b6515 Missing serialization (client can't load the icfg) 3 years ago
Nuno 9923062417 Merge branch 'main/gingo-test' into fixes 3 years ago
Nuno 8f74ba7851 Merge branch 'feature/develop-atys' into main/gingo-test 3 years ago
Nuno d6f367b2ba Merge remote-tracking branch 'origin/2-rework-player-trade-window' into main/yubo-dev 3 years ago
Nuno 3f5c3c5d98 Merge remote-tracking branch 'origin/2-rework-player-trade-window' into main/yubo-dev 3 years ago
Nuno 514f4613a8 Remove CPath::memoryCompress() because break CPath::lockup() 3 years ago
Ben Saine 24b0c99034 add: change slot # 3 years ago
Nuno 3dc2aa1bb6 Merge remote-tracking branch 'origin/self-kill' into main/yubo-dev 3 years ago
Nuno 543be4bc4c Merge branch 'translations' 3 years ago
Nuno 80007bc602 Merge branch 'translations' into yubo 3 years ago
Nuno cf9855a6d5 Merge branch 'fixes' into yubo 3 years ago
Nuno bec18c661d Merge branch 'fixes' 3 years ago
Nimetu 13eef096b4 Merge branch 'develop' into develop-atys 3 years ago
Nimetu 759ece01d0 Merge branch 'atys' into develop-atys 3 years ago
Nuno 4a06fe15dd Merge branch 'master' into fixes 3 years ago
Nuno 575d5d9957 Merge branch 'fixes' into atys 3 years ago
Nuno 0d68ca05e2 Revert xml_macros 3 years ago
Nuno 6091e76516 Merge branch 'atys' into fixes 3 years ago
Nuno 0fbbf10361 Merge branch 'fixes' into atys 3 years ago
Nuno 557f5d3d6c Changes made after code-to-root-atys branch 3 years ago
Nuno d7d1bc60c2 Changes from Core 3 years ago
Nuno 3709ea4520 Revert All core changes (to be reapplied on next commit) 3 years ago
Nuno 70286d36a9 Remove unwanted files 3 years ago
Ulu Kyn 92ff9f12b0 Move to root 3 years ago
Nimetu 8cbb306db8 Remove loading certs from native Windows cert store. 3 years ago
Nuno 36c2ff5b86 Remove files in code 3 years ago
Nuno 1a49c4cd0b Merge branch 'atys' into fixes 3 years ago
Ben Saine 111d4a7a0a self kill command 3 years ago
bensaine 6cfc9585f5 Update .gitignore 3 years ago
Nimetu f76ad7a3eb Remove loading certs from native Windows cert store. 3 years ago
Nuno Gonçalves (Ulukyn) 5d91c33ddd Merge branch 'master' into translations 3 years ago
Nimetu 78478e32cd Merge branch 'develop' into develop-atys 3 years ago
Nimetu d388ff78ec Merge branch 'develop' into develop-atys 3 years ago
Nuno Gonçalves (Ulukyn) 8ef89b80b0 Fix resell issue (use uint16 instead of uint8 for Index) 3 years ago
Nuno Gonçalves (Ulukyn) bdea7d24d2 Fix resell issue (use uint16 instead of uint8 for Index) 3 years ago
Nuno Gonçalves (Ulukyn) 90161cd121 Fix resell issue (use uint16 instead of uint8 for Index) 3 years ago
Nuno Gonçalves (Ulukyn) 583a16d126 Merge remote-tracking branch 'origin/feature/develop-atys' into fixes 3 years ago
Nuno Gonçalves (Ulukyn) 01a2508567 Merge branch 'silan_refactoring' into yubo 3 years ago
Nuno Gonçalves (Ulukyn) b86b9283b2 Merge branch 'master' into silan_refactoring 3 years ago
Nimetu 0225beefa6 Merge branch 'develop' into develop-atys 3 years ago
Nimetu d9dd9863b7 Merge branch 'develop' into develop-atys 3 years ago
Ulukyn 7bed39665e Updated visual_slot.tab 3 years ago
Nuno 6a1ea5ff59 Merge branch 'master' into yubo 3 years ago
Nuno Gonçalves (Ulukyn) 72ccfc9a02 Update from core4 branch 3 years ago
Ulukyn 0e2a14c822 Updated visual_slot.tab 3 years ago
Nimetu a4248d5fa1 Merge branch 'atys' into develop-atys 3 years ago
Nimetu 984b2b3590 Merge branch 'develop' into develop-atys 3 years ago
Nuno 4331e35227 Added build scripts for windows client and 3dsmax plugin 3 years ago
Nuno Gonçalves (Ulukyn) ce5817721a Merge branch 'fixes' into atys 3 years ago
Nuno Gonçalves (Ulukyn) aae899b65a Fix string to ucstring 3 years ago
Nuno Gonçalves (Ulukyn) 4c66865de7 Merge branch 'fixes' into atys 3 years ago
Nimetu c00a9be398 Fix web link in item customtext being visible 3 years ago
Nuno Gonçalves (Ulukyn) 458861951b Merge branch 'fixes' into atys 3 years ago
Nuno Gonçalves (Ulukyn) 3f991d3781 Remove useless nlassert, just skip 3 years ago
Nuno Gonçalves (Ulukyn) 8d5c0facf8 Merge branch 'fixes' into atys 3 years ago
Nuno Gonçalves (Ulukyn) 178a22d961 Skip auto-select of char when player is reselecting char 3 years ago
Nuno Gonçalves (Ulukyn) f9dafe720c Merge branch 'rewards' 3 years ago
Nuno Gonçalves (Ulukyn) 72691a3379 Merge branch 'rewards' into yubo 3 years ago
Nuno Gonçalves (Ulukyn) bc991c8146 Merge branch 'master' into rewards 3 years ago
Riasan 62a821bc1d Changed: modify atys account urls 3 years ago
Riasan 103179ece7 Changed: modify account urls on client_default_cfg , allow read account manage url from client_default_cfg 3 years ago
Nimetu 19d0162332 Fix possible crash from unset variable 3 years ago
Nimetu 5bf139f690 Fix css rule declaration splitting 3 years ago
Nimetu d0d38238a8 Fix crash on reading background shorthand with single value 3 years ago
Nuno 64bff20e03 Merge branch 'silan_refactoring' into yubo 3 years ago
Nuno 1eb651a946 Merge branch 'master' into silan_refactoring 3 years ago
Nuno 7da7d8cbbe Merge branch 'interface_textures' into yubo 3 years ago
Nuno 0ee26a6488 Merge branch 'master' into interface_textures 3 years ago
Nuno 9e404a5965 Merge branch 'deco_objects' into yubo 3 years ago
Nuno 97099768dc Merge branch 'master' into deco_objects 3 years ago
kaetemi 7d1661df42
Merge branch 'develop' into feature/develop-atys 3 years ago
Nuno a443848924 Merge branch 'rewards' into yubo 3 years ago
Nuno ca0dc24aa0 Merge branch 'rewards' 3 years ago
Nuno 6d68e96dd4 Merge branch 'master' into rewards 3 years ago
kaetemi 6d4b58c281
Update GPL headers 4 years ago
kaetemi fcf97d93df
Merge remote-tracking branch 'ryzomcore/develop' into feature/develop-atys 4 years ago
kaetemi c5658cfe26
Merge remote-tracking branch 'ryzomcore/merge-into-atys' into feature/develop-atys 4 years ago
Nimetu bc0071ac57
Fix issue with single enchant icon on jewels not showing 4 years ago
kaetemi 37a729b5cc
Merge remote-tracking branch 'ryzomcore/atys' into feature/develop-atys
# Conflicts:
#	code/ryzom/client/src/interface_v3/dbctrl_sheet.cpp
4 years ago
Nuno Gonçalves (Ulukyn) efc1883cca Move files to root 4 years ago
Nuno 83a021e1e6 Merge branch 'master' into translations 4 years ago
Nuno 431b1ea339 Merge branch 'atys' into atys-live 4 years ago
Nuno 6c3d6403b0 Merge branch 'atys' into merge-into-atys 4 years ago
Nuno 405974c9c0 Merge remote-tracking branch 'origin/fixes' into atys 4 years ago
Nuno cc5bd3ddae Merge branch 'interface_textures' into yubo 4 years ago
Nuno 5613eb855e Remove useless visual_slot.tab 4 years ago
Nimetu 5614028f63 Fix bad merge 4 years ago
Nimetu a28bda89e6 Fix issue with single enchant icon on jewels not showing 4 years ago
Nimetu b2d6c313db Merge branch 'develop' into develop-atys 4 years ago
Nuno 74c643f147 Merge branch 'ark' into yubo 4 years ago
Nuno 3d43c3c626 Merge branch 'ark' 4 years ago
Nimetu 78fa873003 Merge branch 'atys' into develop-atys 4 years ago
Nuno 6bd853f7bf Merge branch 'master' into ark 4 years ago
Nuno 49b4295765 Merge remote-tracking branch 'origin/fixes' into atys 4 years ago
Nimetu 3362afaa4d Fix mission give item window sometimes not appearing. 4 years ago
Nuno c5b34c927e Merge tag 'live/871' into atys-live 4 years ago
Nuno fa3eab3305 Merge branch 'storyline/s2e0' into atys 4 years ago
Nuno 7d1534fb31 Fix bad commit 4 years ago
Nuno 791eb639df Merge branch 'atys' into storyline/s2e0 4 years ago
Nuno 772990d421 Added missing check when get node 4 years ago
Nuno c8fd716f8a Added #include <sys/sysctl.h> for Mac 4 years ago
Nuno 72f7cbe4fa Merge branch 'rewards' into yubo 4 years ago
Nuno 9d2fc8c630 Merge branch 'rewards' 4 years ago
Nuno b4e54d5ad4 Merge branch 'master' into rewards 4 years ago
Nuno 904daebd88 Merge branch 'ryzom/ark/features' into atys 4 years ago
Nuno 9c996b5fe3 Added getTimestampHuman, isShiftDown and isCtrlDown.
Improved getMouseDown getMouseMiddleDown and getMouseRightDown
4 years ago
Nuno 7964a42927 Merge branch 'atys' into ryzom/ark/features 4 years ago
Nuno 24cb13d744 Merge branch 'feature/bonusmalus-timers' into atys 4 years ago
Nuno c8f4a85f0c Merge branch 'translation-settings-improvements' into atys 4 years ago
Nuno 7bd936ea24 Merge branch 'atys' into fixes 4 years ago
Nuno 4bcea9a70e Merge branch 'fixes' into atys 4 years ago
Nuno 762e3b603e -ryzom-modulate-bgcolor can be false 4 years ago
Nuno 292e142319 Merge branch 'fixes' into atys 4 years ago
Nuno cdb1786018 Remove useless #include <sys/sysctl.h> 4 years ago
Nimetu 1299484163 Fix uninitialized value 4 years ago
Nimetu 668e15e394 Add initial support for centered multiline text in table 4 years ago
Sit Melai cdf1bacee1 Added checks if the DB leafs aren't present 4 years ago
Nuno 1ec4f88471 Added check if node are null 4 years ago
Sit Melai 673ce18e72 Fix crash if bubble message isn't translated 4 years ago
Nuno 54fd022501 Merge branch 'silan_refactoring' into yubo 4 years ago
Nuno 5fe26ec6d6 Merge branch 'new_interface_features' 4 years ago
Nuno 40a9e782c3 Merge branch 'new_interface_features' into yubo 4 years ago
Nuno 155e268ece Merge branch 'master' into new_interface_features 4 years ago
Nuno 649527039b Merge branch 'ryzom/op_refactoring' into atys 4 years ago
Nuno d350b1621d Merge branch 'translations' 4 years ago
Nuno 22bab29654 Merge branch 'translations' into yubo 4 years ago
Nuno 5632fffa44 Merge branch 'me-translations' into translations 4 years ago
Nuno 1cc000cc6c Merge branch 'translations' into me-translations 4 years ago
Nuno e9b7345ba5 Update GvE outpost options 4 years ago
Nuno 6f4319bfcb Merge branch 'translations' into yubo 4 years ago
Nuno ab958d1891 Merge branch 'master' into translations 4 years ago
Nuno c3c7e15c81 Merge branch 'master' into new_interface_features 4 years ago
Nuno 568a7a10a9 Merge branch 'new_interface_features' 4 years ago
Nuno f886d5eac7 Merge branch 'new_interface_features' into yubo 4 years ago
Nuno 540ab1ffc8 Fixed issue with families 4 years ago
Nuno 629e8f5272 Added Gen and Mar OP mats 4 years ago
Nuno 868f462d5f Added Gen and Mar OP mats 4 years ago
Nuno 5a7d067a71 Added Gen and Mar OP mats 4 years ago
Nuno 17f818eace Added GvE option 4 years ago
Nuno 5825332757 Merge branch 'atys' into ryzom/op_refactoring 4 years ago
Nimetu c1170a0a4d Ignore last linebreak in pre tag 4 years ago
Nimetu 291d332b56 Fix css style order when using external css files 4 years ago
Nimetu d8f54820c4 Ignore first linebreak after pre, textarea open tag 4 years ago
Nimetu 155418b20b Fix temp file collision and image update on http/304 response 4 years ago
Nimetu d665e1fc45 Fix detecting jpg image 4 years ago
Nimetu 36f9888b91 Merge branch 'atys' into develop-atys 4 years ago
Nimetu 17782d5d21 Merge branch 'develop' into develop-atys 4 years ago
Nuno 85e788da81 Merge branch 'master' into new_interface_features 4 years ago
Nuno 54de87acf4 Merge branch 'fixes' into atys 4 years ago
Nuno ebab993e3e Merge branch 'ryzom/ui/improvements' into atys 4 years ago
Nuno 3613dfd305 Merge branch 'storyline/s2e0' into atys 4 years ago
Nuno c09f82db16 Added boost icons 4 years ago
Nuno 6402a31e4e Added boost allegories family 4 years ago
Nuno 27cdcf1e02 Merge branch 'atys' into storyline/s2e0 4 years ago
Nuno de90245f27 Added GvE and GvG to TPVPType enum 4 years ago
Nuno bf2f8e39a5 Added nopatch arg for use with Ryztart 4 years ago
Nimetu 26482eef1b Revert "Add missing PowerRoot effect families to sheetid conversions table."
This reverts commit ff9aa6c608.
4 years ago
Nimetu 383e362ed7 Show bonus/malus timer text if available 4 years ago
Nimetu c09ed63120 Add xml options for icon regen text 4 years ago
Nimetu fdb271bdb3 Add macros to read properties from xmlNode 4 years ago
kaetemi dba92deea5 Avoid useless string operations 4 years ago
Nuno 0fb9422426 Merge branch 'master' into translations 4 years ago
kaetemi 2528e542cb Don't probe if normal received in probe state, otherwise server will not enter probe state, ryzom/ryzomcore#622, ryzom/ryzomcore#133 4 years ago
kaetemi 719f178f70 Disconnect if UDP Login fails, ryzom/ryzomcore#622 4 years ago
Riasan f83d8a206e Merge branch 'atys' of gitlab.com:ryzom/ryzom-core into atys 4 years ago
Riasan 8cd863ff44 Added: new privs TESTER for teleport via Map / Command 4 years ago
Nuno 89065eee3f Merge branch 'me-translations' 4 years ago
Sit Melai 91b3ff25b4 Add disabling of translation per channel 4 years ago
Nimetu 4bcf9270eb Show reload link when curl fails to open connection to website 4 years ago
Sit Melai c75071b488 Handle hiding the flag and inversing translations for each language 4 years ago
Nimetu 04a5aa372b Merge branch 'develop' into develop-atys 4 years ago
Nimetu 29ef76e537 utf-8 fixes, ryzom/ryzomcore#335 4 years ago
Nimetu 040eee5c9e Merge branch 'atys' into develop-atys 4 years ago
Nimetu c6ede4a8b4 Merge branch 'develop' into develop-atys 4 years ago
Nuno adf9a646b7 Merge branch 'ryzom/ui/improvements' into atys 4 years ago
Nuno 2aaa928cdc Fixed potential security hole 4 years ago
Nuno 83d0e600f1 Merge branch 'ryzom/ui/improvements' into atys 4 years ago
Nuno df69a1706f Fixed potential security hole 4 years ago
Nuno 6651e839f3 Merge branch 'translations' into me-translations 4 years ago
Nuno 62be2ab1fb Merge branch 'stline/s2e1' 4 years ago
Nuno 8c62f4e64c Merge branch 'master' into stline/s2e1 4 years ago
Nuno 2075bf7443 Merge branch 'translations' 4 years ago
Nuno 44caf59afd Merge branch 'master' into translations 4 years ago
Nuno 057cf828f4 Merge branch 'translations' 4 years ago
Nuno 8d2071524c Merge branch 'master' into translations 4 years ago
Nuno 6db93a0ef0 Merge branch 'ryzom/ui/improvements' into atys 4 years ago
Nuno f61d10c75e Added executeRyzomScript, executeTutorial and processTutorialEvent lua callbacks 4 years ago
Nuno 90728f372a Merge branch 'feature/hires-textures' into atys 4 years ago
Nuno 8fa5de61e3 Merge branch 'fixes' into atys 4 years ago
Nuno 74dbe1e52c Merge branch 'ryzom/ui/improvements' into atys 4 years ago
Nuno 6adf44f0b0 Merge branch 'fx' into atys 4 years ago
Nuno 98124a3bd5 Merge branch 'deco_objects' 4 years ago
Nuno 46ecaac095 Merge branch 'master' into deco_objects 4 years ago
Nuno 06e2840be5 Merge branch 'new_interface_features' 4 years ago
Nuno bbabe75247 Merge branch 'master' into new_interface_features 4 years ago
Nuno b62ddc49d2 Merge branch 'interface_textures' 4 years ago
Nuno 690286b2c4 Merge branch 'master' into interface_textures 4 years ago
Nuno ada7dec7d3 Merge branch 'stline/s2e1' 4 years ago
Nuno 98b091ab63 Added TeleportMarauder 4 years ago
Nuno 53252d40db Merge branch 'new_interface_features' into yubo 4 years ago
Nuno 2b648934ea Merge branch 'master' into new_interface_features 4 years ago
Nuno 46c7b0309d Added icons to broadcast 4 years ago
Nuno 347ed4b2fb Merge remote-tracking branch 'origin/ryzom/ui/improvements' into ryzom/ui/improvements 4 years ago
Nuno b9d29d5cfe Merge branch 'atys' into ryzom/ui/improvements 4 years ago
Nuno ea212bcba2 Merge branch 'stline/s2e1' into yubo 4 years ago
Nuno 281ec4ba60 Merge branch 'master' into stline/s2e1 4 years ago
Nuno 951f000be4 Keep missions window open when player accept one of them 4 years ago
Nuno 4726e74dcd Added marauder to static fames 4 years ago
Nuno c5fffb9ff0 Merge branch 'atys' into fixes 4 years ago
Nuno ae9989dfe4 Updated default textures in client 4 years ago
Nuno d35ae0db80 Merge branch 'ark' into yubo 4 years ago
Nuno 3dbdbad80a Merge branch 'master' into ark 4 years ago
Riasan 0a81f40606 Fixed: Typo 4 years ago
Nuno c63b21150e Merge branch 'atys' into feature/hires-textures 4 years ago
Nuno 9771d79bc3 Fixed bad conversion in getPlayerVp*Hex and getTargetVp*Hex 4 years ago
Nimetu b70573d1dc Merge branch 'atys' into develop-atys 4 years ago
Nimetu 7111cf44b3 Merge branch 'develop' into develop-atys 4 years ago
Nimetu cb77552121 Remove file from bad merge 4 years ago
Nuno 2bf8faf29e Fixed bad check of args 4 years ago
Nuno b984e2e3d8 Missing definition of getSheetShape 4 years ago
Nuno 140c380eb5 Merge branch 'ryzom/ark/features' into atys 4 years ago
Nuno 1225fc0fe8 Added onover options for createArkPointButton in map 4 years ago
Nuno 13cb05c732 Merge branch 'atys' into ryzom/ark/features 4 years ago
Nuno f84184af25 Merge branch 'atys' into feature/hires-textures 4 years ago
Nuno 4b6e0184a3 Merge branch 'atys' into feature/develop-atys 4 years ago
Nuno 269526e87f Fixed bad check of args 4 years ago
Nuno b8668813df Merge branch 'interface_textures' into yubo 4 years ago
Nuno 6f9dce0fdc Merge branch 'master' into interface_textures 4 years ago
Nuno fd8b2436ff Merge branch 'master' into me-translations 4 years ago
Nuno 588bd79535 Merge branch 'translations' 4 years ago
Nuno ced0ca3e1c Merge branch 'translations' into yubo 4 years ago
kaetemi e998d3a85c Merge remote-tracking branch 'ryzomcore/atys' into feature/develop-atys 4 years ago
kaetemi 5c3b0cf14b Merge remote-tracking branch 'ryzomcore/develop' into feature/develop-atys 4 years ago
Nuno c327303222 Merge branch 'master' into translations 4 years ago
Nuno 864eba1629 Merge branch 'master' into me-translations 4 years ago
Nuno 29c3651063 Merge branch 'translations' 4 years ago
Nuno acfb37103f Merge branch 'translations' into yubo 4 years ago
Nuno 3d38a8ca89 Merge branch 'master' into translations 4 years ago
Nuno 4f34ce36ae Merge branch 'atys' into ryzom/ui/improvements 4 years ago
Nuno 8d2b26b738 Merge branch 'fixes' into atys 4 years ago
Nuno 79e65a6b9e Rollback bad commit 4 years ago
Nuno 6e59af8dc9 Merge remote-tracking branch 'origin/fixes' into fixes 4 years ago
Nuno d23166ae49 Fixed getTargetVpcHex and getTargetVpc 4 years ago
Nuno 0b110c6a88 Fixed getTargetVpcHex and getTargetVpc 4 years ago
Nuno 13398f094a Merge branch 'fixes' into atys 4 years ago
Nuno 7018a4439c Fixed getTargetVpcHex and getTargetVpc 4 years ago
Riasan cbbbc74a60 Changed: add lua function 4 years ago
Nuno dab6321caa Merge branch 'ark' 4 years ago
Nuno 07390fed37 Merge branch 'ark' into yubo 4 years ago
Nuno ec98cd2e65 Merge branch 'master' into ark 4 years ago
Nuno ad52a23437 Merge branch 'translations' 4 years ago
Nuno c78d1d934f Merge branch 'ark' into yubo 4 years ago
Nuno 677933ed98 Merge branch 'ark' 4 years ago
Nuno 541529bb3f Merge branch 'interface_textures' into yubo 4 years ago
Nuno a273f78851 Merge branch 'interface_textures' 4 years ago
Nuno cb207bdd9d Merge branch 'master' into interface_textures 4 years ago
Nuno 8ec332fefa Merge branch 'master' into ark 4 years ago
Nuno 2f776eab9c Merge branch 'master' into translations 4 years ago
Nuno 04aa097781 Merge branch 'master' into yubo 4 years ago
Nuno 3996327394 Merge branch 'translations' 4 years ago
Nuno 27e553ccb5 Merge branch 'master' into ark 4 years ago
Nuno 323be1612e Merge branch 'fixes' into atys 4 years ago
Nuno 184582cfc9 Removed uiBotChatPhrase 4 years ago
Nimetu e39cd0a8d3 Add --url, --app options for client patcher 4 years ago
Nuno 0b9599c57b Merge branch 'friend_list_groups_and_notes' into atys 4 years ago
Sit Melai 9d7f2af1a7 Fixed not correctly removing Group Containers when removing people (causing crash at char change) 4 years ago
Nuno e021c09051 Merge branch 'interface_textures' into yubo 4 years ago
Nuno 52ff736ee9 Merge remote-tracking branch 'origin/master' into interface_textures 4 years ago
Nuno d2c56f4b7c Merge branch 'rewards' 4 years ago
Nuno 2bdc6fb7ae Merge branch 'rewards' into yubo 4 years ago
Nuno a848eab99c Merge remote-tracking branch 'origin/master' into rewards 4 years ago
kaetemi b0f1c73d77 Merge remote-tracking branch 'ryzomcore/atys' into feature/develop-atys 4 years ago
kaetemi 109ed7eba5 Merge branch 'develop' into feature/develop-atys 4 years ago
Nuno 9ae2df4527 Merge remote-tracking branch 'origin/fixes' into atys 4 years ago
Nimetu 762962ef25 Fixed: Only download own platform exedll_.ref files 4 years ago
Nimetu 9f3250f4db Fixed: patching single file with multiple version in a row. 4 years ago
Nimetu e8c18b1b44 fix build 4 years ago
Nimetu 73610be10d utf-8 fixes, ryzom/ryzomcore#335 4 years ago
Nimetu 72098f624d fix merge conflict 4 years ago
kaetemi 1a6e5e6e2b Merge branch 'develop' into feature/develop-atys 4 years ago
kaetemi 7adbb84514 Merge branch 'develop' into feature/develop-atys 4 years ago
kaetemi e74e229ad9 Merge remote-tracking branch 'ryzomcore/atys' into feature/code-to-root-atys 4 years ago
Nimetu ae91cc4179 Fixed: Ingame map search and search result tooltips for UTF8 strings 4 years ago
Nimetu 6ccd8853db Fixed: setActive() did not invalidate table cell size. 4 years ago
Nuno cc7793202b Merge remote-tracking branch 'origin/feature/hires-textures' into atys 4 years ago
Nuno 0bb160545f Merge remote-tracking branch 'origin/ryzom/ui/improvements' into atys 4 years ago
Nuno 0e1b464e98 Merge remote-tracking branch 'origin/ryzom/patch-changes' into atys 4 years ago
Nuno dfe051a8df Merge remote-tracking branch 'origin/fixes' into atys 4 years ago
Nuno Gonçalves (Ulukyn) 2f6133c8ba Merge branch 'second-action-bar-editable' into 'atys'
Make the second action bar editable like main one

See merge request ryzom/ryzom-core!1
4 years ago
Nuno Gonçalves (Ulukyn) 95f8cefecc Merge branch 'translation-original-message-by-default-option' into 'atys'
Added option to show the translation as a tooltip

See merge request ryzom/ryzom-core!2
4 years ago
Nuno Gonçalves (Ulukyn) b98cd5e345 Merge branch 'move-group-with-zig' into 'atys'
Move item group from/to zig

See merge request ryzom/ryzom-core!3
4 years ago
Nuno Gonçalves (Ulukyn) bca2a28187 Merge branch 'friend_list_groups_and_notes' into 'atys'
Friend list groups

See merge request ryzom/ryzom-core!4
4 years ago
Sit Melai b7cbeeb2ae Fixed grayed icons on second bar not draggable 4 years ago
Ulukyn 5d4e81e24c Merge branch 'stline/s2e1' into yubo 4 years ago
Ulukyn c73fff2ca6 Merge branch 'master' into stline/s2e1 4 years ago
Nimetu 9532fc3a81 Fixed: mouse free look when using inverted mouse 4 years ago
Nimetu 6b59fc0081 Fixed: ctrl+3 detected as KeyESCAPE when using keychar event 4 years ago
Sit Melai 47bf9ecbc8 Always create General group, so at first launch groups show directly when changed 4 years ago
Sit Melai 02732c1241 Changes to fix compilation on some setups 4 years ago
Sit Melai f96f0b41b9 Removed an unused variable and don't show groups anymore when there is only one 4 years ago
Sit Melai 5dc85db8b1 Added action handlers to change contact group and read/write to file 4 years ago
Sit Melai 49fcec5759 First steps, still work in progress 4 years ago
Sit Melai b8b21914f6 Made item groups compatible with Zigs 4 years ago
Sit Melai bccc86bd99 Added option to show the translation as a tooltip and original by default 4 years ago
Sit Melai e5b3b752d5 Copyright somehow got lost 4 years ago
Sit Melai c06469b2a0 Fixed second action bar not updating after being changed 4 years ago
Ulukyn 6fa74cd5c2 Added: Option to use ryzom_client_patcher as bnp unpacker and xdelta patcher 4 years ago
Riasan 8cd685d1f4 Merge remote-tracking branch 'remotes/origin/ui-improvements' into yubo 4 years ago
Riasan f31eeff8fc Changed: add display current online guildmembers 4 years ago
Sit Melai 7e10c697eb Merge Atys 4 years ago
Nimetu f7be62eb3d Fixed: Player/guild room buy dialog price 4 years ago
Nimetu 2a4b16ab1b Changed: Allow to use 2x/4x hi-res texture atlas for GUI elements 4 years ago
Ulukyn f7e8e3f516 Merge branch 'fix_opengl_on_mac' into atys 4 years ago
Ulukyn 107dbc1987 Changed: Fixed non-Mac compilation 4 years ago
Ulukyn 97dc744759 Merge branch 'translations' into yubo 4 years ago
Ulukyn 012339dcf1 Merge branch 'translations' 4 years ago
Ulukyn 884c65fc26 Merge branch 'master' into translations 4 years ago
Ulukyn 07f9a55e48 Merge branch 'fixes' into atys 4 years ago
Ulukyn a87b0f4c97 Changed: When ryzom patch fails try to download lzma file (this last may never fail) 4 years ago
Ulukyn 4138a99fb7 Merge remote-tracking branch 'origin/translation-german-fixes' into yubo 4 years ago
Ulukyn 7be52a10fe Merge branch 'atys' into fixes 4 years ago
Ulukyn f4a104bf3f Merge branch 'ryzom/ui/improvements' into atys 4 years ago
Ulukyn 80a6bf72a9 Changed: renamed creatures are now name in ucfirst 4 years ago
Ulukyn 17e539132b Added: very basic anti-spam system (prevent duplication of same message) 4 years ago
Ulukyn 27bd2cec01 Merge branch 'atys' into ryzom/ui/improvements 4 years ago
Ulukyn 6597f32fc1 Merge branch 'ryzom/deepl' into atys 4 years ago
Ulukyn 9e2872d15e Added: Add a language icon when client receive a translated message 4 years ago
Ulukyn 901f33d9a7 Merge branch 'storyline/s2e0' into atys 4 years ago
Ulukyn 421de3fa91 Changed: fixed issue with rumors 4 years ago
Ulukyn 08fb509d99 Merge branch 'atys' into storyline/s2e0 4 years ago
Sit Melai 6c8aeb6ae3 Missed a whitespace 4 years ago
Sit Melai 59c794f716 Wrongly removed previous change 4 years ago
Heernis 3c052d5fcc Merge branch 'master' into translation-german-fixes 4 years ago
Sit Melai c2e7807f99 Adapt action handler for editing phrases to handle second action bar 4 years ago
Riasan d130a7f826 Changed: fix client crash from opengl changes + fix compiling error because of moved client_default.cfg 5 years ago
Ulukyn fd2cc53d68 Merge remote-tracking branch 'origin/translation-german-fixes' into translations 5 years ago
Ulukyn 6ae34e08d9 Merge branch 'translations' into yubo 5 years ago
Ulukyn 80568ade1c Merge branch 'translations' 5 years ago
Ulukyn a8016b6a59 Merge branch 'master' into translations 5 years ago
Ulukyn d0fdfe175d Merge branch 'fixes' into yubo 5 years ago
Ulukyn 4254b6788a Fixed: Bad dispaly of server custom names 5 years ago
Riasan ada46dfabc Changed: update releasenote url 5 years ago
kaetemi fc197880a4 Merge remote-tracking branch 'ryzomcore/atys' into feature/code-to-root-atys 5 years ago
Ulukyn ada3c09a51 Merge branch 'master' into yubo 5 years ago
Ulukyn 83061f7f03 Merge remote-tracking branch 'origin/fix-media-player' into atys 5 years ago
Ulukyn 3c6bed32fd Merge remote-tracking branch 'origin/fix-media-player' into yubo 5 years ago
Nimetu 92b3a31f0b Fixed: Calling stop on music player should not affect background music. 5 years ago
Ulukyn f396858ea9 Merge branch 'ark' 5 years ago
Ulukyn eae8f9999d Merge branch 'stline/s2e1' 5 years ago
Ulukyn b8885cd661 Merge branch 'storyline/s2e1' into atys 5 years ago
Ulukyn f67a1cde32 Merge remote-tracking branch 'origin/ryzom/ui/improvements' into atys 5 years ago
Ulukyn feb1a5647d Merge remote-tracking branch 'origin/fix-media-player' into atys 5 years ago
Ulukyn f3009c4178 Merge branch 'master' into ark 5 years ago
Ulukyn 820bd23cf6 Merge branch 'ark' into origin/master 5 years ago
Ulukyn c883ea63e0 Merge branch 'ark' into yubo 5 years ago
Ulukyn 791a6641d9 Merge remote-tracking branch 'origin/master' into ark 5 years ago
Ulukyn 521a5c8fb7 Merge branch 'storyline/s2e1' into yubo 5 years ago
Ulukyn da876dcf7c Merge remote-tracking branch 'origin/ryzom/ui/improvements' into yubo 5 years ago
Ulukyn 0069db15a6 Merge remote-tracking branch 'origin/fix-media-player' into yubo 5 years ago
Ulukyn 3da2f45363 Added: Remove ambiance ans shininess to SE shapes. Add seasons texture set 5 years ago
Ulukyn 1143ecaae0 Merge branch 'atys' into storyline/s2e1 5 years ago
Heernis bcc107e187 Merge remote-tracking branch 'origin/master' into translation-german-fixes 5 years ago
Nimetu 36187626a9 Fixed: Restore playlist after charselect 5 years ago
Nimetu bde8d008d1 Fixed: Crash on switching chars, logout 5 years ago
Nimetu 6993a2731f Changed: SHow no-files text if there is no songs in playlist 5 years ago
Nimetu 52d6f89e1e Fixed: Clear song info when all songs are done playing. 5 years ago
Nimetu 5bddfcfb22 Fixed: Audio decoder getMusicInfo/getSongTitle needs to be thread safe 5 years ago
Ulukyn aa15fd4e98 Merge branch 'stline/s2e1' into yubo 5 years ago
Ulukyn 0f8673beac Merge branch 'master' into stline/s2e1 5 years ago
Ulukyn 219914b4bf Merge branch 'master' into yubo 5 years ago
Ulukyn fb4aebf506 Merge branch 'rewards' 5 years ago
Ulukyn 81832ae0af Merge branch 'master' into rewards 5 years ago
kaetemi 39d6ca285a Merge remote-tracking branch 'origin/develop' into feature/code-to-root-atys 5 years ago
kaetemi c8fc110a9e Merge moving code directory to root for atys branch, ref #593 5 years ago
kaetemi a9fc9c2015 Merge branch 'feature/pre-code-move' into feature/code-to-root-atys 5 years ago
Ulukyn e32c852d96 Merge branch 'ui-improvements' into yubo 5 years ago
Ulukyn f3a02d4f2a Merge branch 'master' into yubo 5 years ago
Ulukyn bd99cd8aed Merge branch 'ryzom/ui/improvements' into atys 5 years ago
Ulukyn 77d8cce15a Merge branch 'ryzom/ui/improvements' into yubo 5 years ago
Ulukyn aa0d9d0be9 Changed: add border to pvp tags and display only if pvp 5 years ago
Ulukyn 0845e19408 Merge branch 'atys' into ryzom/ui/improvements 5 years ago
Ulukyn ece240448d Merge remote-tracking branch 'origin/merge-into-atys' into atys 5 years ago
Ulukyn 07ff703de2 Merge branch 'master' into ui-improvements 5 years ago
Ulukyn f6116a813b Merge branch 'ui-improvements' 5 years ago
Ulukyn 422a8bb744 Merge remote-tracking branch 'origin/merge-into-atys' into yubo 5 years ago
Ulukyn 25d4cca3a9 Merge branch 'atys' into yubo 5 years ago
Ulukyn 6a40fcf12d Fixed: miss of return statement 5 years ago
Ulukyn bf0042173f Merge branch 'ui-improvements' into yubo 5 years ago
Ulukyn 681568ce08 Merge branch 'master' into ui-improvements 5 years ago
Ulukyn 47863be96e Merge branch 'marauder' into yubo 5 years ago
Ulukyn ade5b6e702 Merge branch 'master' into marauder 5 years ago
Ulukyn ecd8b952a2 Merge branch 'atys' into yubo 5 years ago
Ulukyn 272f91210b Fixed: remove stupid hack for textures (finally...) 5 years ago
Ulukyn 24d4fb8253 Fixed: Prevent crash if no StartupVerify config 5 years ago
Nimetu 24fd5a6230 Fixed: Clear scene background if sky filter is used 5 years ago
Riasan 9043e78794 Merge remote-tracking branch 'remotes/origin/merge-into-atys' into yubo 5 years ago
Nimetu 5250d22706 Changed: Filter craft plans according to tool type. 5 years ago
Nimetu 682985978d Changed: Automatically build playlist on play if needed 5 years ago
Nimetu b3f8f307b0 Changed: Use worker thread to gather song title/duration. 5 years ago
Ulukyn b5ffa8becd Merge remote-tracking branch 'origin/merge-into-atys' into atys 5 years ago
Ulukyn 92090056ea Merge remote-tracking branch 'origin/merge-into-atys' into yubo 5 years ago
Nimetu a6c7b3dd37 Fixed: mp3 player keeps playing after clearing files from playlist 5 years ago
Ulukyn 1e54da83ef Merge remote-tracking branch 'origin/merge-into-atys' into yubo 5 years ago
Ulukyn 6ec06b29ab Merge branch 'atys' into yubo 5 years ago
Ulukyn 7b15da1018 Removed: client_default.cfg (moved to ryzom-data) 5 years ago
Nimetu 598be95efd Added: Ingame config options for window snap. 5 years ago
Nimetu 7f373a904e Fixed: Animal marker invalidates map on each frame 5 years ago
Nimetu 983475ff7c Fixed: Hide 'sound disabled' warning on startup 5 years ago
Ulukyn 44824414b1 Merge branch 'ryzom/ui/improvements' into yubo 5 years ago
Ulukyn 95b0f63622 Fixed: hide RP-PVP tags if player are not tagged 5 years ago
Ulukyn 264b50a5ec Merge branch 'atys' into ryzom/ui/improvements 5 years ago
Ulukyn 143b96c214 Merge branch 'atys' into yubo 5 years ago
Ulukyn d4e5af7df2 Added: libicu in Makefile 5 years ago
Ulukyn 8dc9b89f94 Merge remote-tracking branch 'origin/merge-into-atys' into yubo 5 years ago
Nimetu 2d86c5377d Merge branch 'develop' into merge-into-atys 5 years ago
Ulukyn 04f9d593e0 Merge remote-tracking branch 'origin/merge-into-atys' into yubo 5 years ago
Nimetu 3be969a73d Merge branch 'develop' into merge-into-atys 5 years ago
Ulukyn ce8b05b284 Merge branch 'master' into stline/s2e1 5 years ago
Ulukyn 42b291c73e Merge remote-tracking branch 'origin/merge-into-atys' into yubo 5 years ago
Nimetu 4aa94b3ae9 Changed: Set WITH_RYZOM_LIVE=ON as default 5 years ago
Nimetu c0110133d7 Changed: Restore ryzom.com urls in client cfg 5 years ago
Nimetu c36faf2d61 Merge branch 'develop' into merge-into-atys 5 years ago
Ulukyn fef0cad61a Merge branch 'ryzom/ui/improvements' into yubo 5 years ago
Ulukyn debb6b7d0c Changed: exposed the toggle_fly to final clients 5 years ago
Heernis f11ed5ea49 Merge remote-tracking branch 'origin/master' into translation-german-fixes 5 years ago
Ulukyn 050d9fea2f Merge branch 'ryzom/ui/improvements' into yubo 5 years ago
Ulukyn 9a8f29bb67 Merge branch 'ryzom/ui/improvements' into atys 5 years ago
Ulukyn c2e879ebcc Changed: removed pvp check for rp logos 5 years ago
Ulukyn 11086f9b44 Merge branch 'translations' into yubo 5 years ago
Ulukyn 311e739d98 Merge branch 'translations' 5 years ago
Ulukyn f6f7e553fc Merge branch 'master' into translations 5 years ago
Ulukyn 255271cde5 Merge branch 'translation-german-fixes' 5 years ago
Ulukyn 6d233cdc2c Merge branch 'translation-german-fixes' into yubo 5 years ago
Ulukyn f337a28ae2 Merge branch 'translations' into translation-german-fixes 5 years ago
Ulukyn a36694614f Merge branch 'master' into translation-german-fixes 5 years ago
Ulukyn bcb8080d42 Merge branch 'master' into translations 5 years ago
Ulukyn 2c9193fa74 Merge branch 'ryzom/ui/improvements' into atys 5 years ago
Ulukyn 7e84ee9ec9 Merge branch 'ryzom/ui/improvements' into yubo 5 years ago
Ulukyn ff5d4e941c Merge branch 'atys' into ryzom/ui/improvements 5 years ago
Nimetu f853adfcba Changed: show/hide rp_logo_x icons depending if texture is set or not 5 years ago
Nimetu 1f736fc347 Fixed: Scroll bar losing position when group window is minimized 5 years ago
Ulukyn 8f3aaee987 Changed: new name of Enclyclopedia window 5 years ago
Ulukyn 8d0172e1fb Merge branch 'new_interface_features' into yubo 5 years ago
Ulukyn f06eebf26c Merge branch 'new_interface_features' 5 years ago
Ulukyn 31ecfdf181 Merge branch 'pact_interface' 5 years ago
Ulukyn 4997576923 Merge branch 'storyline/s2e1' into atys 5 years ago
Ulukyn 9b6693763f Merge branch 'ryzom/ark/features' into atys 5 years ago
Ulukyn b9d1cf26b7 Merge branch 'atys' into ryzom/ark/features 5 years ago
Ulukyn ae25e054d4 Merge branch 'ryzom/ui/improvements' into atys 5 years ago
Ulukyn 269f8c4b2d Merge branch 'fix-menu-scroll' into atys 5 years ago
Ulukyn a3db3c6ba6 Merge branch 'ryzom/ui/improvements' into yubo 5 years ago
Nimetu 4d9aa3e684 Changed: refactor 5 years ago
Nimetu e99b7e257d Fixed: Icon text must be in lowercase for bitmap icons 5 years ago
Nimetu 94873c3d3f Changed: Preserve icon text case as is 5 years ago
Nimetu 586e49282f Changed: Translate icon text if starts with uiit 5 years ago
Nimetu ca20d582b3 Changed: Remove char limit from displaying icon label 5 years ago
Nimetu 7cb5c817a6 Fixed: Switching continents ignored user landmark show/hide state 5 years ago
Nimetu ec1dfca0c5 Added: setUserLandMark command to show/hide user map markers 5 years ago
Ulukyn df6c0969c2 Merge branch 'master' into pact_interface 5 years ago
Ulukyn 590abe8bfd Merge branch 'master' into new_interface_features 5 years ago
Ulukyn b31fa09af7 Merge branch 'ryzom/ui/improvements' into yubo 5 years ago
Ulukyn 3220a2aa47 Changed: new name of Enclyclopedia window 5 years ago
Ulukyn c639bb3c07 Merge remote-tracking branch 'origin/ryzom/ui/improvements' into yubo 5 years ago
Nimetu 2f635117f7 Changed: Require confirmation when removing landmark 5 years ago
Ulukyn 0cf26cbdf8 Merge branch 'fix-menu-scroll' into yubo 5 years ago
Nimetu 34083dee80 Changed: Adding icon to menu elements 5 years ago
Nimetu edb0c1fe73 Revert "Added: New way to add icons in Contextual Menus"
This reverts commit 188c3494fa.
5 years ago
Nimetu 9aabe0bf35 Revert "Fixed: Remove blank space when an item menu are inactive"
This reverts commit 10f864b234.
5 years ago
Nimetu 3b08d50b83 Fixed: Scroll bar losing position when group window is minimized 5 years ago
Ulukyn 523c07d9d9 Merge branch 'ryzom/ark/features' into atys 5 years ago
Ulukyn e89d3233dc Merge branch 'ryzom/ark/features' into yubo 5 years ago
Ulukyn 96e95c19ee Changed: Fix issue with webig dynChat 5 years ago
Ulukyn e10f79dbf2 Merge branch 'ryzom/ark/features' into yubo 5 years ago
Ulukyn 0aff3b4365 Revert "Changed: Fix issue with webig dynChat "
This reverts commit 14a375eea9f97cabb23199719cfa8022d9e907d1.
5 years ago
Ulukyn b0fa434c05 Merge branch 'ryzom/ark/features' into yubo 5 years ago
Ulukyn e349cb4399 Fixed: issue with webig dyn chat 5 years ago
Ulukyn f9cf9db049 Merge branch 'ryzom/ark/features' into yubo 5 years ago
Ulukyn 92f3c01a74 Merge branch 'atys' into ryzom/ark/features 5 years ago
Ulukyn 3ffab7c1a1 Merge branch 'storyline/s2e1' into yubo 5 years ago
Ulukyn 4df2489f59 Changed: updated way to moveToTarget 5 years ago
Ulukyn de6418bb9a Merge branch 'storyline/s2e1' into yubo 5 years ago
Ulukyn 1db0300515 Added: moveToTarget lua command and OpenArkUrl move action 5 years ago
Ulukyn 435b4362d3 Merge branch 'atys' into yubo 5 years ago
Ulukyn f9d37a390a Fixed: Only get news from npcs 5 years ago
Ulukyn 99413cff48 Merge branch 'storyline/s2e0' into atys 5 years ago
Ulukyn d45f6efcef Merge branch 'storyline/s2e0' into yubo 5 years ago
Ulukyn 01cb2cfdd8 Fixed: check if crystallized spell have a root icon for background or add it 5 years ago
Ulukyn 5f762edac4 Merge branch 'storyline/s2e0' into atys 5 years ago
Ulukyn bfadcfaff5 Merge branch 'storyline/s2e0' into yubo 5 years ago
Ulukyn 55172c93b5 Merge branch 'atys' into storyline/s2e0 5 years ago
Ulukyn c950373782 Merge branch 'storyline/s2e0' into yubo 5 years ago
Ulukyn b1d18ddb53 Added: New familly brick BSGMC 5 years ago
Ulukyn b869cd07d6 Merge branch 'storyline/s2e0' into yubo 5 years ago
Ulukyn aaa24fd0f4 Merge branch 'storyline/s2e0' into atys 5 years ago
Ulukyn 6747613b03 Added: New familly brick BSGMC 5 years ago
Ulukyn ac6afb7b2f Merge branch 'stline/s2e0' 5 years ago
Ulukyn 4048ef29db Merge remote-tracking branch 'origin/webig-fixes' into atys 5 years ago
Ulukyn b5b395c127 Merge branch 'ryzom/ui/improvements' into atys 5 years ago
Ulukyn a7d2175f93 Merge remote-tracking branch 'origin/webig-fixes' into yubo 5 years ago
Ulukyn b16d132e1d Merge branch 'ryzom/ui/improvements' into yubo 5 years ago
Ulukyn e3cef8803e Changed: Disable help phrase in a special case 5 years ago
Ulukyn cb2201a69a Merge branch 'master' into stline/s2e0 5 years ago
Nimetu dfeba1426a Fixed: Invalid table cell id 5 years ago
Ulukyn c9bec465bc Merge remote-tracking branch 'origin/webig-fixes' into yubo 5 years ago
Nimetu 7856e93723 Fixed: ah:html_submit_form without caller object 5 years ago
Nimetu 8f59a71e3c Fixed: html button with empty formid attribute 5 years ago
Nimetu 15433b263b Changed: Add proper ids to groups in webig 5 years ago
Ulukyn 58a731628b Merge remote-tracking branch 'origin/ryzom/sheets' into atys 5 years ago
Ulukyn eb8daeb652 Merge remote-tracking branch 'origin/ryzom/sheets' into yubo 5 years ago
Ulukyn c6d5163c1d Merge branch 'ryzom/ui/improvements' into yubo 5 years ago
Ulukyn 2c63a3aa96 Merge branch 'ryzom/ui/improvements' into atys 5 years ago
Ulukyn 4709e766b9 Fixed: bad commit part 5 years ago
Ulukyn b2207337fa Merge branch 'ryzom/ui/improvements' into atys 5 years ago
Ulukyn 47dc707c91 Merge branch 'ryzom/ui/improvements' into yubo 5 years ago
Ulukyn 232af164ed Changed: remove sound of animals if sound context == 999 (for zig f 5 years ago
Ulukyn f18101d97e Added: Increase global density of vegetable 5 years ago
Ulukyn 0df2bdec2b Merge branch 'ryzom/ui/improvements' into atys 5 years ago
Ulukyn ed17e66d97 Merge branch 'ryzom/ui/improvements' into yubo 5 years ago
Ulukyn 7f149563f6 Changed: fixed issue with bad continent names 5 years ago
Nimetu e22d271408 Added: require-all-skills property to sbrick sheet 5 years ago
Ulukyn d77d3b7102 Merge branch 'master' into new_interface_features 5 years ago
Ulukyn e049c34c8d Merge branch 'ryzom/ark/features' into atys 5 years ago
Ulukyn 6114cb1044 Merge branch 'ryzom/ui/improvements' into atys 5 years ago
Ulukyn 609d6b470f Merge branch 'feature-new-forage-sbrick' 5 years ago
Ulukyn 414011ee37 Merge branch 'master' into feature-new-forage-sbrick 5 years ago
Ulukyn b558a1a18b Merge branch 'ryzom/ui/improvements' into yubo 5 years ago
Ulukyn b033942d36 Merge remote-tracking branch 'origin/ryzom/ui/improvements' into ryzom/ui/improvements 5 years ago
Ulukyn de8c9dddcb Added: new option to chat with npc when fame are < -30. Finish fast and temporary hack for who_am_i hide 5 years ago
Ulukyn 6e00000b9b Merge branch 'ryzom/ui/improvements' into yubo 5 years ago
Ulukyn 15ce2cd39c Added: new option to chat with npc when fame are < -30. Finish fast and temporary hack for who_am_i hide 5 years ago
Ulukyn f9738713a7 Changed: replace PrintfCommands by loadingTexts in cff to prevent overwrite of default values in user client.cfg 5 years ago
Ulukyn 20b1f3a4c5 Merge branch 'ryzom/ark/features' into yubo 5 years ago
Ulukyn 586d84bc20 Added: getContinentSheet lua function 5 years ago
Ulukyn b88341792a Merge branch 'ryzom/ui/improvements' into yubo 5 years ago
Ulukyn 1c562ddbe6 Merge remote-tracking branch 'origin/ryzom/ui/improvements' into ryzom/ui/improvements 5 years ago
Ulukyn 4675b8b8b9 Added: new way to manage news at loading screen 5 years ago
Ulukyn d2edcbf4ee Merge branch 'ryzom/ui/improvements' into yubo 5 years ago
Ulukyn 954151ca73 Added: new way to manage news at loading screen 5 years ago
Ulukyn 45b1bab23f Changed: Updated PrintfCommands for next Season 5 years ago
Ulukyn 123197b90b Merge branch 'atys' into yubo 5 years ago
Ulukyn 4b847a086a Changed: made setMap command available in FINAL_VERSION 5 years ago
Ulukyn 9f61f08e74 Merge branch 'new_interface_features' into yubo 5 years ago
Ulukyn aacbcf1e65 Merge branch 'master' into yubo 5 years ago
Ulukyn c838136d1a Merge branch 'master' into origin/new_interface_features 5 years ago
Ulukyn 0455d07125 Merge branch 'new_interface_features' 5 years ago
Ulukyn 6785217b3a Merge branch 'ryzom/ark/features' into atys 5 years ago
Ulukyn cc5423fdd5 Merge branch 'ryzom/ark/features' into yubo 5 years ago
Ulukyn c22f8776f4 Added: encodeToHexa and decodeFromHexa 5 years ago
Nimetu f5c0cbcdf3 Changed: Also show item parts quantity on craft sbrick info window 5 years ago
Nimetu 8b2108af2f Merge commit 'fec9975f5' into atys 5 years ago
Ulukyn a7ca6f4499 Merge branch 'ryzom/ui/improvements' into yubo 5 years ago
Ulukyn 9e5f20a679 Fixed: missing check 5 years ago
Ulukyn 11573ee85a Merge branch 'ryzom/ui/improvements' into yubo 5 years ago
Ulukyn 48a9a84d0e Merge branch 'ryzom/ark/features' into yubo 5 years ago
Ulukyn 2f27af125e Added: encodeURLParam 5 years ago
Ulukyn 10f864b234 Fixed: Remove blank space when an item menu are inactive 5 years ago
Ulukyn 0ac92bc08b Merge branch 'ryzom/ark/features' into yubo 5 years ago
Ulukyn 34c1265bce Revert "Merge remote-tracking branch 'origin/ryzom/ark/features' into ryzom/ark/features"
This reverts commit a6ee9fec63.
5 years ago
Ulukyn a6ee9fec63 Merge remote-tracking branch 'origin/ryzom/ark/features' into ryzom/ark/features 5 years ago
Ulukyn fe008c0e52 Added: moveCam and setCamMode lua functions 5 years ago
Ulukyn 935c5df73a Merge branch 'ryzom/ark/features' into yubo 5 years ago
Ulukyn 7a0737e759 Added: moveCam and setCamMode lua functions 5 years ago
Ulukyn 09d8346558 Merge branch 'atys' into ryzom/ark/features 5 years ago
Ulukyn 7f53767d85 Merge branch 'ryzom/ui/improvements' into yubo 5 years ago
karu 6a7fc98a52 Added: Show disabled until timer on icon 5 years ago
Ulukyn 3d919974cf Merge branch 'atys' into yubo 5 years ago
Ulukyn 691bf67c4d Changed: Updated version to 3.6.0 5 years ago
Ulukyn f053eaa157 Merge branch 'ryzom/ui/improvements' into yubo 5 years ago
Ulukyn 30fabcbd0a Changed: Improvements in game context menu 5 years ago
Ulukyn 3966020294 Merge branch 'new_interface_features' into yubo 5 years ago
Ulukyn eeac201cf3 Merge branch 'master' into new_interface_features 5 years ago
Ulukyn 357e3f07e4 Merge branch 'ryzom/ui/improvements' into yubo 5 years ago
Ulukyn 188c3494fa Added: New way to add icons in Contextual Menus 5 years ago
Ulukyn 51776f9203 Merge branch 'storyline' into yubo 5 years ago
Ulukyn 7b8a4e2210 Merge branch 'new_interface_features' into yubo 5 years ago
Ulukyn 762dcd15e2 Merge branch 'new_interface_features' 5 years ago
Ulukyn ac43b90ba0 Merge branch 'master' into new_interface_features 5 years ago
Ulukyn df3c7c2f2e Merge remote-tracking branch 'origin/event_atysmas' 5 years ago
Ulukyn 780b9c7e63 Merge branch 'new_interface_features' 5 years ago
Ulukyn f4ee795fde Merge branch 'new_interface_features' into yubo 5 years ago
Ulukyn c521de1d48 Merge branch 'master' into new_interface_features 5 years ago
Riasan d5ceb97fa0 Merge branch 'master' into event_atysmas 5 years ago
Ulukyn cdc33730ad Merge branch 'rewards' 5 years ago
Ulukyn 305a27f0db Merge branch 'master' into rewards 5 years ago
Nimetu 4c1daee42c Merge with develop
--HG--
branch : yubo
5 years ago
Ulu Kyn b5b8de283b Merge with ark
--HG--
branch : atys
5 years ago
Ulu Kyn 7b3c09f873 Merge with ark
--HG--
branch : yubo
5 years ago
Ulu Kyn 3f7fc2e870 Fusion
--HG--
branch : yubo
5 years ago
Ulu Kyn 4c0438d702 Added: setChar3dDBfromVPX and getRefHeightScale lua commands
Added: getPlayerVpaHex, getPlayerVpbHex, getPlayerVpcHex lua commands
Added: getTargetVpaHex, getTargetVpbHex, getTargetVpcHex lua commands

--HG--
branch : ark
5 years ago
Ulu Kyn 139b03f0f1 Added: Add OBSERVER privs to teleport from map option
--HG--
branch : atys
5 years ago
Ulu Kyn 99caf036ff Fixed: Revert Bad commit
--HG--
branch : yubo
5 years ago
Ulu Kyn 6c35550c83 Merge with WinVS2017_debug
--HG--
branch : yubo
5 years ago
Ulu Kyn 8221ee2eb9 Merge with ark
--HG--
branch : yubo
5 years ago
Ulu Kyn fd1f151504 Fusion
--HG--
branch : yubo
5 years ago
Ulu Kyn c43b4b8bc0 Fusion
--HG--
branch : ark
5 years ago
Ulu Kyn a806758fad Added: brodcast messages can now trigger lua code
--HG--
branch : ark
5 years ago
Ulu Kyn 58e24f9c58 Added: run_action and stop_action lua to simulate key_press actions
--HG--
branch : ark
5 years ago
Herrah 99ededcfcb fix for error "cannot convert argument 1 from 'std::wstring' to 'LPCWSTR'"
--HG--
branch : fix-WinVS2017_debug
5 years ago
Ulu Kyn e32e4492ce Merge with ark
--HG--
branch : atys
5 years ago
Ulu Kyn e3dc99e078 Fixed: Change way to load lua zone files when are in a bnp
--HG--
branch : ark
5 years ago
Nuno Gonçalves 9e406019d8 Merge with develop
--HG--
branch : atys
5 years ago
Nuno Gonçalves 19789a2544 Merge with develop
--HG--
branch : atys
5 years ago
Nimetu e4cce24f80 Merge with html-improvements
--HG--
branch : yubo
5 years ago
Nimetu 2e3fa918d4 Merge with html-improvements
--HG--
branch : yubo
5 years ago
Nuno Gonçalves 89973681a2 Fusion
--HG--
branch : yubo
5 years ago
Nuno Gonçalves 683af88cb9 Merge ark into yubo
--HG--
branch : yubo
5 years ago
Nimetu da5b7212f8 Merge with html-improvements
--HG--
branch : yubo
5 years ago
Nimetu 14b1c1232a Merge with html-improvements
--HG--
branch : yubo
5 years ago
Nuno Gonçalves de69dfc285 Merge from new_interface_features 5 years ago
Nuno Gonçalves f5776610f1 Merge from new_interface_features 5 years ago
Inky 11f2044c7d Fusion 5 years ago
Nimetu b53d797745 Merge with feature-closest-landmarks-menu
--HG--
branch : yubo
5 years ago
Nimetu 8b4c179a15 Merge with develop
--HG--
branch : yubo
5 years ago
ulukyn 959d52fd80 Fusion avec fix-bitmap-crash
--HG--
branch : yubo
5 years ago
Nimetu b423c0f057 Merge with feature-item-icon-buffs
--HG--
branch : yubo
5 years ago
Nimetu 7148d476ad Merge with develop
--HG--
branch : yubo
5 years ago
Nimetu c9a5fbacd9 Changed: Disable r2_islands_textures, ai_build_wmap, build_world_packed_col because no server code in yubo/atys branch.
--HG--
branch : yubo
5 years ago
Inky bfbb8e1292 Merge with menu_navi
--HG--
branch : yubo
5 years ago
Inky 045a80b59e Changed: removed tabulation event since not used
--HG--
branch : menu_navi
5 years ago
Inky 1ad5cf7a8e Merge with menu_navi
--HG--
branch : yubo
5 years ago
Inky c752619f13 Fixed: missing stream.h and import select var
--HG--
branch : menu_navi
5 years ago
Inky 26aef169b1 Merge with menu_navi
--HG--
branch : yubo
5 years ago
Inky 8006dbeabe Changed: export reflect texture(pushed, over) on CCtrlTextButton element
--HG--
branch : menu_navi
5 years ago
Inky 6fdbdc9ed1 Fixed: record only key next/prior event on CCtrlScroll element
--HG--
branch : menu_navi
5 years ago
Inky f75e413994 Changed: new key pushed event: left-right-tabulation
--HG--
branch : menu_navi
5 years ago
Inky 3acbf83058 Merge with menu_navi
--HG--
branch : yubo
5 years ago
Inky 77496daef4 Changed: new key pushed event to export
--HG--
branch : menu_navi
5 years ago
Inky c545629a10 Changed: import modal auto select first occurence
--HG--
branch : menu_navi
5 years ago
Inky 1910f7bc86 Merge with menu_navi
--HG--
branch : yubo
5 years ago
Inky c1e76fcbb2 Changed: add character exportation handler
--HG--
branch : menu_navi
5 years ago
Inky 20fe11c53f Changed: add character importation handler
--HG--
branch : menu_navi
5 years ago
Inky 6fcb6f0669 Merge with menu_navi
--HG--
branch : yubo
5 years ago
Inky a7cdf29463 Merge with lua
--HG--
branch : yubo
5 years ago
Inky b2b16e3cce Changed: fusion selection and creation handler
--HG--
branch : menu_navi
5 years ago
Inky 0f3f64cdc2 Changed: character creation handler
Todo: fusion both handler

--HG--
branch : menu_navi
5 years ago
Inky c8927c9c4b Changed: update button selection handler keyset_select
--HG--
branch : menu_navi
5 years ago
Inky 5d1233e805 Changed: update button selection handler mainland_select
--HG--
branch : menu_navi
5 years ago
Inky f5e9b7703c Changed: added keyboard events to CCtrlScroll elements
--HG--
branch : menu_navi
5 years ago
Inky 098df688b9 Merge with menu_navi
--HG--
branch : yubo
5 years ago
Inky 6d16b46890 Merge with lua
--HG--
branch : yubo
5 years ago
Inky 331b0d8718 Fixed: bad condition to verify parent id
--HG--
branch : menu_navi
5 years ago
Inky d9cb317667 Merge with menu_navi
--HG--
branch : yubo
5 years ago
Inky 90e508032c Changed: character selection handler
--HG--
branch : menu_navi
5 years ago
Inky 4a5de4cb13 An attempt to support keyboard interaction out game
Create, select and delete character

--HG--
branch : menu_navi
5 years ago
Inky 9d294ef242 Merge with develop
--HG--
branch : yubo
5 years ago
Inky 860d6e2abb Merge with compatibility-develop
--HG--
branch : yubo
6 years ago
Inky bfab92082b Changed: char selection keyboard navigation handler
--HG--
branch : compatibility-develop
6 years ago
Inky 64e26124f8 Fusion 6 years ago
Inky 21dfa80b73 Changed: display version at login
--HG--
branch : compatibility-develop
6 years ago
Inky ac4d9efd8b Merge with lua
--HG--
branch : yubo
6 years ago
Inky 00f850f143 Merge with lua
--HG--
branch : compatibility-develop
6 years ago
Nimetu a4b3e57fd0 Merge with develop
--HG--
branch : yubo
6 years ago
Nimetu 8b2aef9317 Merge with develop
--HG--
branch : yubo
6 years ago
Nimetu c123f63afd Merge with feature-item-icon-buffs
--HG--
branch : yubo
6 years ago
Nimetu a22767af76 Merge with feature-item-icon-buffs
--HG--
branch : yubo
6 years ago
ulukyn f8af0da354 Étiquette Live-746 ajoutée à la révision 2102fb276eb6
--HG--
branch : yubo
6 years ago
Riasan 4f08aa3082 Merge: update with default 6 years ago
ulukyn 72d636ded1 Fusion 6 years ago
Riasan cba4d7948d Merge: update with chan_motd 6 years ago
ulukyn 739d000055 Merge from interface_textures 6 years ago
ulukyn 963162855c Merge from interface_textures 6 years ago
ulukyn 89ef083460 Fusion 6 years ago
Inky 795606628f Merge with chan_motd 6 years ago
Inky e572cc3e83 Fusion 6 years ago
ulukyn bf34575037 Merge from pact_interface 6 years ago
ulukyn 57a32f10ee Merge from interface_textures 6 years ago
ulukyn 6c9a8da387 Merge from new_interface_features 6 years ago
Riasan 2aa065d109 Merge: test fixes 6 years ago
ulukyn 41b0fac726 Merge from new_interface_features 6 years ago
ulukyn b7ec1c68ac Added: Commands in Animal menu to enter/leave a pet (zig) into the bag
Fixed: Pets inventory weight are correclty displayed now
6 years ago
ulukyn cc6159a9d5 Merge from pact_interface 6 years ago
Inky 438b521ece Changed: update msg.xml egs command for autopact 6 years ago
Ulukyn f5f4411a00 Fusion 6 years ago
Riasan 29cb0c579f Merge: update with default 6 years ago
ulukyn 8434cb1a34 Merge from haircuts 6 years ago
ulukyn 39004eb54b Merge from haircuts 6 years ago
Riasan d2df2043c5 Merge: test translations 6 years ago
Riasan d8cfde63f8 Merge: update with default 6 years ago
Nuno Gonçalves 617682afe6 Fusion 6 years ago
Nuno Gonçalves c9d19b4879 Adding: leveldesign bnp folder 6 years ago
ulukyn 0b507cba7b Merge from rewards 6 years ago
ulukyn db5a7b141a Merge with default 6 years ago
ulukyn 478e2a646f Merge from rewards 6 years ago
ulukyn 020c59153d Merge from rewards 6 years ago
ulukyn 4f1008a413 Merge with default 6 years ago
Riasan f14c4d7746 Merge: update with default 6 years ago
ulukyn 23fe859e19 Merge from translations 6 years ago
Riasan c6978f769f Merge:add deco_objects changes to yubo 6 years ago
Riasan 319ae23064 Merge:add translations changes to yubo 6 years ago
Riasan 3e2e6cb696 Merge: update with default 6 years ago
Riasan 3c66bf2ba2 Merge: update with default 6 years ago
Riasan 1390a45f71 Merge: update with default 6 years ago
ulukyn d599fa4c14 Auto-Merge from default 6 years ago
ulukyn b4d09e0774 Auto-Merge from default 6 years ago
ulukyn 6f65197479 Auto-Merge from default 6 years ago
ulukyn 569599281b Auto-Merge from default 6 years ago
ulukyn 10562b720b Auto-Merge from default 6 years ago
ulukyn 1fc73a8079 Auto-Merge from default 6 years ago
ulukyn f821ff6973 Auto-Merge from default 6 years ago
Riasan d51b3b2eae Merge: update with default 6 years ago
Riasan 90c99b0b0e Merge: fixes on default 6 years ago
Riasan 48b2e9799e Merge: update with default 6 years ago
Riasan 9c680f43ce Merge: from events_to_primitives 6 years ago
Riasan 537865cdb9 Merge: from marauder 6 years ago
ulukyn 60feb8bc57 Merge from purple_gubani 6 years ago
ulukyn dd6057ad71 Merge from rewards 6 years ago
Riasan 882e067fc0 Merge: update with default 6 years ago
Riasan a82a018f40 Merge: test matis_rite on Yubo 6 years ago
Riasan eb1c367464 Merge: test rewards on Yubo 6 years ago
teanwen 4ca7ea8957 Merge with purple_gubani 6 years ago
ulukyn 6c731f049e Merge from default 6 years ago
ulukyn 363a59d238 Merge from rewards 6 years ago
Riasan b59b8a51a9 Merge: test marauder on yubo 6 years ago
ulukyn 5648981968 Merge from rewards 6 years ago
Riasan c1510a8fb8 Merge: update with Default 6 years ago
Riasan beb3dca614 Merge: update with Default 6 years ago
Riasan 80204090d4 Merge: update with default 6 years ago
Riasan 57e55ed250 Merge: update with default 6 years ago
Riasan 5601d84d60 Merge: update with default 6 years ago
Riasan 2b24a51439 Merge: update with default 6 years ago
Riasan 3343f46e11 Merge: update with default 6 years ago
Riasan 82e5e1a4fc Merge: update with default 6 years ago
Riasan 19285bc8e9 Merge: update with default 6 years ago
Riasan cdbd2e1f47 Merge: update with default 6 years ago
Riasan f8a252abcf Merge: update with default 6 years ago
Ul U'Kyn 453c81bc7c Updated: Lot of fixes in PatchSystem 6 years ago
Riasan 56f450782f Merge: test fix_city_guards on Yubo 6 years ago
Riasan dda9dff6ba Merge: update with ark 6 years ago
Riasan e0266dedcb Merge: update with marauder 6 years ago
Riasan 28fd5a7265 Merge: update with purple_gubani 6 years ago
ulukyn 085770a098 Merge from purple_gubani 6 years ago
ulukyn a5f98add80 Merge from ark 6 years ago
ulukyn bb667c736c Changed: Increse MAX_INVENTORY_ANIMAL to 7, add AnimalTicket sitem type 6 years ago
ulukyn d824ff5baf Merge from deco_objects 7 years ago
ulukyn 6cc550732b Merge from marauder 7 years ago
ulukyn fcfb17c784 Changed: Increase FACTION_POINTS_, FAME:PLAYER and GUILD:FAME to 7 7 years ago
Riasan 22b06fdb3e Merge: test marauder on Yubo 7 years ago
Riasan 05baa720e9 Changed: static fame to display marauder fame (black_kami) into fame window 7 years ago
Riasan 8be4abf0fe default in matis_rite gemergt 7 years ago
Riasan f47f2b4801 default in purple_gubani gemergt 7 years ago
Riasan 7c8eb4b3c6 default in event_atysmas gemergt 7 years ago
Riasan 146ccbbe4c default in deco_objects gemergt 7 years ago
Ul U'Kyn eaf08e863e Update files after Patch 7 years ago
Riasan 5afbc26916 Merge: test translation on Yubo 7 years ago
Ul U'Kyn b5234633b4 Changed: sheet_id.bin and some patch system scripts 7 years ago
Riasan c60705a297 Merge: test deco_objects on Yubo 7 years ago
Ul U'Kyn 9d4829ec54 Changed: fixed patch system, update sheet_id.bin 7 years ago
Ul U'Kyn c37ef9592e Changed: Update sheet_id.bin, new nevrax@devl1:~/ryzom-data-dev$ 7 years ago
Ul U'Kyn af3fe227c8 Merge from default 8 years ago
Ul U'Kyn 0e122c76ba Changed: Added CREATE_TIME and SERIAL properties to items in database.xml 8 years ago
Nuno Gonçalves 14c7013348 Merge from default 8 years ago
Nuno Gonçalves fbf0d664fc Changed: commiting changes for new creatures of Xmas2016 8 years ago
Nuno Gonçalves 0fd0934111 Changed: Updated visual_slot.tab 8 years ago
Nuno Gonçalves aadf864e4e Changed: Updated sheets 8 years ago
vl f86da6ec78 Moving folders, cleaning repo. That's much better now ! :D 9 years ago

18
.gitattributes vendored

@ -1,18 +0,0 @@
*.cpp ident
*.h ident
# Set the default behavior, in case people don't have core.autocrlf set.
* text=auto
# Explicitly declare text files you want to always be normalized and converted
# to native line endings on checkout.
*.c text
*.h text
*.cs text
*.jade text
*.json text
*.js text
*.css text
*.htm text
*.txt text
*.sh text eol=lf

3
.gitignore vendored

@ -90,6 +90,7 @@ ylwrap
*.mk *.mk
# Visual Studio garbage # Visual Studio garbage
.vscode/
*.opensdf *.opensdf
UpgradeLog*.XML UpgradeLog*.XML
_UpgradeReport_Files _UpgradeReport_Files
@ -162,6 +163,7 @@ build/*
build-2010/* build-2010/*
build/* build/*
install/* install/*
win-build/
build_* build_*
install_* install_*
nel/tools/build_gamedata/configuration/buildsite.py nel/tools/build_gamedata/configuration/buildsite.py
@ -265,7 +267,6 @@ web/public_php/db_version_tool
web/public_php/db_version_web web/public_php/db_version_web
web/public_php/role_service web/public_php/role_service
web/public_php/role_support web/public_php/role_support
web/public_php/role_admin
web/public_php/role_domain web/public_php/role_domain
web/public_php/db_version_ring web/public_php/db_version_ring
web/public_php/config_user.php web/public_php/config_user.php

@ -1,27 +1,28 @@
4eddbaff0c5e5d685db96ee3e8427aa0fd96ac83 v0.8.0 4eddbaff0c5e5d685db96ee3e8427aa0fd96ac83 ryzomcore/v0.8.0
00d9b6e29e95f56785fbf85abe60afd34674f402 v0.9.0 00d9b6e29e95f56785fbf85abe60afd34674f402 ryzomcore/v0.9.0
79776c337176dd5b02e1a74fe5dfb703b91747aa v0.9.1 79776c337176dd5b02e1a74fe5dfb703b91747aa ryzomcore/v0.9.1
fedf2aa443d09707beed814b0f499c6a5519cc84 v0.10.0 fedf2aa443d09707beed814b0f499c6a5519cc84 ryzomcore/v0.10.0
edaa3624a56420b02ccc64c26059801a389927ee v0.11.0 edaa3624a56420b02ccc64c26059801a389927ee ryzomcore/v0.11.0
e3fe4855f22c3e75722e015dc33c091c340b3ad7 v0.11.1 e3fe4855f22c3e75722e015dc33c091c340b3ad7 ryzomcore/v0.11.1
9e583b717fd63be0be9fd60b99087abf1691ea49 v0.11.2 9e583b717fd63be0be9fd60b99087abf1691ea49 ryzomcore/v0.11.2
bfe5628e14a024ba7ea32e4b326ae433a07856b9 v0.11.3 bfe5628e14a024ba7ea32e4b326ae433a07856b9 ryzomcore/v0.11.3
9a6120735daa97c96ac5d85ca35c7f21f607bd87 v0.12.0 9a6120735daa97c96ac5d85ca35c7f21f607bd87 ryzomcore/v0.12.0
3e92c7104c20d6bc6c2147b4b5fc289e8621d322 v1.0.0 3e17907af67e8d66d80e6b714707bbf912607f2a ryzom-patch-3.0.0
8eb94c3549be898fdc4a7c6d791d2477bdc11a18 v1.0.1 153e0b605c9e0c83ba05b6428c62838b49cc84b2 ryzom-patch-3.0.1
3e17907af67e8d66d80e6b714707bbf912607f2a ryzom/3.0.0 9d41f2994d44b9aad92b83f945f114e4b6bed44a ryzom-patch-3.0.2
153e0b605c9e0c83ba05b6428c62838b49cc84b2 ryzom/3.0.1 4300cc14aad098b1f86ea4c55577b7fa4a4cb5d2 ryzom-patch-3.1.0
9d41f2994d44b9aad92b83f945f114e4b6bed44a ryzom/3.0.2 d4060f217f4f834cc62a33f2f1ccdf3c28298066 ryzom-patch-3.1.0-hotfix
4300cc14aad098b1f86ea4c55577b7fa4a4cb5d2 ryzom/3.1.0 043aaeb3d8a2a54177581b57bda87a9deaad510e ryzom-patch-3.1.0-april_patch
d4060f217f4f834cc62a33f2f1ccdf3c28298066 ryzom/3.1.0-hotfix 4036ecf59e83960f03acebc2089eb2ff5eeaed0a ryzom-patch-3.2.0
043aaeb3d8a2a54177581b57bda87a9deaad510e ryzom/3.1.0-april_patch 18403bb9485da3d9742c6f007a16d5619ebfb196 ryzom-patch-3.2.1
4036ecf59e83960f03acebc2089eb2ff5eeaed0a ryzom/3.2.0 822ff8f8917ad66e09e2c21c983282f6f693b9f6 ryzom-patch-3.3.0
18403bb9485da3d9742c6f007a16d5619ebfb196 ryzom/3.2.1 00dde390a394fce9da06c2f3264140282158d39f ryzom-patch-3.3.0
822ff8f8917ad66e09e2c21c983282f6f693b9f6 ryzom/3.3.0 dcd4c4d161ef775136e18c7e8f5072b75dede27e ryzom-patch-3.3.1
00dde390a394fce9da06c2f3264140282158d39f ryzom/3.3.0 fc4be8ebec5ca754ef4453bc6a9faef90837c674 ryzom-patch-3.4.0
dcd4c4d161ef775136e18c7e8f5072b75dede27e ryzom/3.3.1 70eba02e8eab6920586dbabf74e9e8180c729980 ryzom-patch-3.4.0 Steam Fix
fc4be8ebec5ca754ef4453bc6a9faef90837c674 ryzom/3.4.0 3941482843f9cd130cfc16634efc08d34a98ed35 ryzom-patch-3.4.0 Atysmas
70eba02e8eab6920586dbabf74e9e8180c729980 ryzom/3.4.0-steam_fix ecae9feb4cceb78103e5d7236caccaf450796cdb ryzom-patch-3.5.0
3941482843f9cd130cfc16634efc08d34a98ed35 ryzom/3.4.0-atysmas 95783afa226f241062134eb62f4323295d29ac84 ryzom-patch-3.5.0.9637
ecae9feb4cceb78103e5d7236caccaf450796cdb ryzom/3.5.0 2102fb276eb69d49ed4923042215312a63c47c08 Live-746
95783afa226f241062134eb62f4323295d29ac84 ryzom/3.5.0.9637 8eb94c3549be898fdc4a7c6d791d2477bdc11a18 ryzomcore/v1.0.1
3e92c7104c20d6bc6c2147b4b5fc289e8621d322 ryzomcore/v1.0.0

@ -53,9 +53,6 @@ IF(HUNTER_ENABLED)
SET(WITH_STATIC_LIBXML2 ON CACHE BOOL "static libxml2" FORCE) SET(WITH_STATIC_LIBXML2 ON CACHE BOOL "static libxml2" FORCE)
SET(WITH_STATIC_EXTERNAL ON CACHE BOOL "static external" FORCE) SET(WITH_STATIC_EXTERNAL ON CACHE BOOL "static external" FORCE)
SET(WITH_EXTERNAL OFF CACHE BOOL "external libs" FORCE) SET(WITH_EXTERNAL OFF CACHE BOOL "external libs" FORCE)
# Workaround for PCH compilation issue, from curl intsizeof depencency
ADD_DEFINITIONS(-D__STDC_LIMIT_MACROS)
ENDIF() ENDIF()
@ -66,6 +63,8 @@ INCLUDE(ConfigureChecks)
INCLUDE(CheckDepends) INCLUDE(CheckDepends)
INCLUDE(${CMAKE_ROOT}/Modules/Documentation.cmake OPTIONAL) INCLUDE(${CMAKE_ROOT}/Modules/Documentation.cmake OPTIONAL)
MESSAGE("EXTERNAL ${WITH_EXTERNAL}")
# Force out of source builds. # Force out of source builds.
CHECK_OUT_OF_SOURCE() CHECK_OUT_OF_SOURCE()
@ -80,12 +79,16 @@ ENDIF()
CMAKE_MINIMUM_REQUIRED(VERSION 2.6) CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
PROJECT(RyzomCore CXX C) PROJECT(RyzomCore CXX C)
SET(NL_VERSION_MAJOR 4) SET(NL_VERSION_MAJOR 1)
SET(NL_VERSION_MINOR 0) SET(NL_VERSION_MINOR 1)
SET(NL_VERSION_PATCH 0 CACHE STRING "Patch version") SET(NL_VERSION_PATCH 0 CACHE STRING "Patch version")
SET(YEAR "2001-${CURRENT_YEAR}") SET(YEAR "2001-${CURRENT_YEAR}")
SET(AUTHOR "Winch Gate and The Ryzom Core Community") SET(AUTHOR "Winch Gate and The Ryzom Core Community")
SET(RYZOM_VERSION_MAJOR 3)
SET(RYZOM_VERSION_MINOR 6)
SET(RYZOM_VERSION_PATCH 0)
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
# Redirect output files # Redirect output files
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
@ -121,27 +124,27 @@ RYZOM_SETUP_PREFIX_PATHS()
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
# Default values for URL's # Default values for URL's
SET(RYZOM_CLIENT_CREATE_ACCOUNT_URL "https://core.ryzom.dev/ams/" CACHE STRING "Ryzom Client Create Account URL") SET(RYZOM_CLIENT_CREATE_ACCOUNT_URL "https://open.ryzom.dev/ams/" CACHE STRING "Ryzom Client Create Account URL")
SET(RYZOM_CLIENT_EDIT_ACCOUNT_URL "https://core.ryzom.dev/ams/" CACHE STRING "Ryzom Client Edit Account URL") SET(RYZOM_CLIENT_EDIT_ACCOUNT_URL "https://open.ryzom.dev/ams/" CACHE STRING "Ryzom Client Edit Account URL")
SET(RYZOM_CLIENT_FORGET_PASSWORD_URL "https://core.ryzom.dev/ams/" CACHE STRING "Ryzom Client Forget Password URL") SET(RYZOM_CLIENT_FORGET_PASSWORD_URL "https://open.ryzom.dev/ams/" CACHE STRING "Ryzom Client Forget Password URL")
SET(RYZOM_CLIENT_PATCH_URL "https://cdn.ryzom.dev/core4/patch/" CACHE STRING "Ryzom Client Patch URL") SET(RYZOM_CLIENT_PATCH_URL "https://cdn.ryzom.dev/open/patch/" CACHE STRING "Ryzom Client Patch URL")
SET(RYZOM_CLIENT_APP_NAME "core4") SET(RYZOM_CLIENT_APP_NAME "default")
SET(RYZOM_CLIENT_RELEASENOTES_URL "https://core4.ryzom.dev/releasenotes/index.php" CACHE STRING "Ryzom Client Release Notes URL") SET(RYZOM_WEBIG_MAIN_URL "https://open.ryzom.dev/" CACHE STRING "Ryzom Client WebIG Main URL")
SET(RYZOM_CLIENT_RELEASENOTES_RING_URL "https://core4.ryzom.dev/releasenotes_ring/index.php" CACHE STRING "Ryzom Client Release Notes URL") SET(RYZOM_WEBIG_TRUSTED_DOMAIN "open.ryzom.dev" CACHE STRING "Ryzom Client WebIG Trusted Domain")
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
# urls when compiling ryzom live client # urls when compiling ryzom live client
IF(WITH_RYZOM_LIVE) IF(WITH_RYZOM_LIVE)
MESSAGE("Using RYZOM_LIVE urls") MESSAGE("Using RYZOM_LIVE urls")
SET(RYZOM_CLIENT_CREATE_ACCOUNT_URL "https://account.ryzom.com/signup/from_client.php") SET(RYZOM_CLIENT_CREATE_ACCOUNT_URL "https://me.ryzom.com")
SET(RYZOM_CLIENT_EDIT_ACCOUNT_URL "https://account.ryzom.com/payment_profile/index.php") SET(RYZOM_CLIENT_EDIT_ACCOUNT_URL "https://me.ryzom.com")
SET(RYZOM_CLIENT_FORGET_PASSWORD_URL "https://account.ryzom.com/payment_profile/lost_secure_password.php") SET(RYZOM_CLIENT_FORGET_PASSWORD_URL "https://me.ryzom.com/?forget_password=1")
SET(RYZOM_CLIENT_PATCH_URL "http://dl.ryzom.com/patch_live") SET(RYZOM_CLIENT_PATCH_URL "http://dl.ryzom.com/patch_live")
SET(RYZOM_CLIENT_APP_NAME "ryzom_live") SET(RYZOM_CLIENT_APP_NAME "ryzom_live")
SET(RYZOM_CLIENT_RELEASENOTES_URL "https://app.ryzom.com/releasenotes/index.php") SET(RYZOM_WEBIG_MAIN_URL "https://app.ryzom.com/")
SET(RYZOM_CLIENT_RELEASENOTES_RING_URL "https://app.ryzom.com/releasenotes_ring/index.php") SET(RYZOM_WEBIG_TRUSTED_DOMAIN "app.ryzom.com")
ENDIF() ENDIF()
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
@ -158,14 +161,6 @@ IF(WIN32)
ENDIF() ENDIF()
IF(HUNTER_ENABLED) IF(HUNTER_ENABLED)
# This fix is for compiling OpenSSL in Azure Pipeline linux agent where ENV{SYSTEM} == "build"
IF(DEFINED ENV{SYSTEM} AND UNIX AND NOT APPLE)
STRING(TOUPPER "$ENV{SYSTEM}" _tmp)
IF (_tmp STREQUAL "BUILD")
UNSET(ENV{SYSTEM})
ENDIF()
UNSET(_tmp)
ENDIF()
## TODO: hack for freetype hunter package ## TODO: hack for freetype hunter package
SET(ON 1) SET(ON 1)
## ##
@ -210,7 +205,7 @@ ENDIF()
NL_CONFIGURE_CHECKS() NL_CONFIGURE_CHECKS()
IF(WITH_STATIC_LIBXML2) IF(WITH_STATIC_LIBXML2)
ADD_DEFINITIONS(-DLIBXML_STATIC) SET(LIBXML2_DEFINITIONS ${LIBXML2_DEFINITIONS} -DLIBXML_STATIC)
ENDIF() ENDIF()
IF(WITH_LIBXML2_ICONV) IF(WITH_LIBXML2_ICONV)
@ -225,7 +220,7 @@ IF(WITH_STATIC)
SET(LIBXML2_LIBRARIES ${LIBXML2_LIBRARIES} ${WINSOCK2_LIB}) SET(LIBXML2_LIBRARIES ${LIBXML2_LIBRARIES} ${WINSOCK2_LIB})
ENDIF() ENDIF()
IF(UNIX AND NOT HUNTER_ENABLED) IF(UNIX)
# under Linux and OS X, recent libxml2 versions are linked against liblzma # under Linux and OS X, recent libxml2 versions are linked against liblzma
FIND_PACKAGE(LibLZMA) FIND_PACKAGE(LibLZMA)
IF(LIBLZMA_LIBRARIES) IF(LIBLZMA_LIBRARIES)
@ -329,10 +324,6 @@ IF(WITH_NEL)
ENDIF() ENDIF()
FIND_PACKAGE(CURL REQUIRED) FIND_PACKAGE(CURL REQUIRED)
# if cmake finds config-file package, ie FIND_PACKAGE(CURL CONFIG), then CURL_LIBRARIES is not defined
IF(TARGET CURL::libcurl)
SET(CURL_LIBRARIES CURL::libcurl)
ENDIF()
IF((WIN32 OR CURL_LIBRARIES MATCHES "\\.a") AND WITH_STATIC_CURL) IF((WIN32 OR CURL_LIBRARIES MATCHES "\\.a") AND WITH_STATIC_CURL)
SET(CURL_STATIC ON) SET(CURL_STATIC ON)

@ -176,17 +176,6 @@ MACRO(FIND_PACKAGE_HELPER NAME INCLUDE)
SET(_INCLUDE_PATHS) SET(_INCLUDE_PATHS)
SET(_LIBRARY_PATHS) SET(_LIBRARY_PATHS)
# Check for root directories passed to CMake with -DXXX_ROOT=...
IF(DEFINED ENV{${_UPNAME_FIXED}_ROOT})
SET(_TMP ${${_UPNAME_FIXED}_ROOT})
GET_FILENAME_COMPONENT(_TMP ${_TMP} ABSOLUTE)
LIST(APPEND _INCLUDE_PATHS ${_TMP}/include ${_TMP})
LIST(APPEND _LIBRARY_PATHS ${_TMP}/lib${LIB_SUFFIX})
IF(_IS_VERBOSE)
MESSAGE(STATUS "Using ${_UPNAME_FIXED}_ROOT as root directory ${_TMP}")
ENDIF()
ENDIF()
# Check for root directories passed to CMake with -DXXX_DIR=... # Check for root directories passed to CMake with -DXXX_DIR=...
IF(DEFINED ${_UPNAME_FIXED}_DIR) IF(DEFINED ${_UPNAME_FIXED}_DIR)
@ -223,7 +212,7 @@ MACRO(FIND_PACKAGE_HELPER NAME INCLUDE)
ENDFOREACH() ENDFOREACH()
ENDIF() ENDIF()
IF(UNIX AND NOT DEFINED ENV{${_UPNAME_FIXED}_ROOT}) IF(UNIX)
# Append UNIX standard include paths # Append UNIX standard include paths
SET(_UNIX_INCLUDE_PATHS) SET(_UNIX_INCLUDE_PATHS)
@ -273,16 +262,11 @@ MACRO(FIND_PACKAGE_HELPER NAME INCLUDE)
ENDIF() ENDIF()
# Append environment variables XXX_DIR # Append environment variables XXX_DIR
IF(DEFINED ENV{${_UPNAME}_DIR}) LIST(APPEND _LIBRARY_PATHS
LIST(APPEND _LIBRARY_PATHS $ENV{${_UPNAME}_DIR}/lib${LIB_SUFFIX}
$ENV{${_UPNAME}_DIR}/lib${LIB_SUFFIX}) $ENV{${_UPNAME_FIXED}_DIR}/lib${LIB_SUFFIX})
ENDIF()
IF(DEFINED ENV{${_UPNAME_FIXED}_DIR})
LIST(APPEND _LIBRARY_PATHS
$ENV{${_UPNAME_FIXED}_DIR}/lib${LIB_SUFFIX})
ENDIF()
IF(UNIX AND NOT DEFINED ENV{${_UPNAME_FIXED}_ROOT}) IF(UNIX)
SET(_UNIX_LIBRARY_PATHS) SET(_UNIX_LIBRARY_PATHS)
# Append multiarch libraries paths # Append multiarch libraries paths
@ -327,30 +311,15 @@ MACRO(FIND_PACKAGE_HELPER NAME INCLUDE)
LIST(REMOVE_DUPLICATES _DEBUG_LIBRARIES) LIST(REMOVE_DUPLICATES _DEBUG_LIBRARIES)
# Search for release library # Search for release library
IF(DEFINED ENV{${_UPNAME_FIXED}_ROOT} AND NOT WIN32) FIND_LIBRARY(${_UPNAME_FIXED}_LIBRARY_RELEASE
FIND_LIBRARY(${_UPNAME_FIXED}_LIBRARY_RELEASE NAMES
NAMES ${_RELEASE_LIBRARIES}
${_RELEASE_LIBRARIES} HINTS ${PKG_${_NAME_FIXED}_LIBRARY_DIRS}
HINTS ${PKG_${_NAME_FIXED}_LIBRARY_DIRS} PATHS
PATHS ${_LIBRARY_PATHS}
${_LIBRARY_PATHS} ${_UNIX_LIBRARY_PATHS}
${_UNIX_LIBRARY_PATHS} NO_CMAKE_SYSTEM_PATH
NO_CMAKE_PATH )
NO_CMAKE_SYSTEM_PATH
NO_CMAKE_ENVIRONMENT_PATH
NO_SYSTEM_ENVIRONMENT_PATH
)
ELSE()
FIND_LIBRARY(${_UPNAME_FIXED}_LIBRARY_RELEASE
NAMES
${_RELEASE_LIBRARIES}
HINTS ${PKG_${_NAME_FIXED}_LIBRARY_DIRS}
PATHS
${_LIBRARY_PATHS}
${_UNIX_LIBRARY_PATHS}
NO_CMAKE_SYSTEM_PATH
)
ENDIF()
IF(_IS_VERBOSE) IF(_IS_VERBOSE)
IF(${_UPNAME_FIXED}_LIBRARY_RELEASE) IF(${_UPNAME_FIXED}_LIBRARY_RELEASE)
@ -361,30 +330,15 @@ MACRO(FIND_PACKAGE_HELPER NAME INCLUDE)
ENDIF() ENDIF()
# Search for debug library # Search for debug library
IF(DEFINED ENV{${_UPNAME_FIXED}_ROOT} AND NOT WIN32) FIND_LIBRARY(${_UPNAME_FIXED}_LIBRARY_DEBUG
FIND_LIBRARY(${_UPNAME_FIXED}_LIBRARY_DEBUG NAMES
NAMES ${_DEBUG_LIBRARIES}
${_DEBUG_LIBRARIES} HINTS ${PKG_${_NAME_FIXED}_LIBRARY_DIRS}
HINTS ${PKG_${_NAME_FIXED}_LIBRARY_DIRS} PATHS
PATHS ${_LIBRARY_PATHS}
${_LIBRARY_PATHS} ${_UNIX_LIBRARY_PATHS}
${_UNIX_LIBRARY_PATHS} NO_CMAKE_SYSTEM_PATH
NO_CMAKE_PATH )
NO_CMAKE_SYSTEM_PATH
NO_CMAKE_ENVIRONMENT_PATH
NO_SYSTEM_ENVIRONMENT_PATH
)
ELSE()
FIND_LIBRARY(${_UPNAME_FIXED}_LIBRARY_DEBUG
NAMES
${_DEBUG_LIBRARIES}
HINTS ${PKG_${_NAME_FIXED}_LIBRARY_DIRS}
PATHS
${_LIBRARY_PATHS}
${_UNIX_LIBRARY_PATHS}
NO_CMAKE_SYSTEM_PATH
)
ENDIF()
IF(_IS_VERBOSE) IF(_IS_VERBOSE)
IF(${_UPNAME_FIXED}_LIBRARY_DEBUG) IF(${_UPNAME_FIXED}_LIBRARY_DEBUG)
@ -731,7 +685,7 @@ MACRO(FIND_LIBXML2)
IF(CRYPT32_LIB) IF(CRYPT32_LIB)
LIST(APPEND LIBXML2_LIBRARIES ${CRYPT32_LIB}) LIST(APPEND LIBXML2_LIBRARIES ${CRYPT32_LIB})
ENDIF() ENDIF()
ELSEIF(NOT HUNTER_ENABLED) ELSE()
# under Linux and OS X, recent libxml2 versions are linked against liblzma # under Linux and OS X, recent libxml2 versions are linked against liblzma
FIND_PACKAGE(LibLZMA) FIND_PACKAGE(LibLZMA)

@ -16,14 +16,7 @@ ENDIF (ICONV_INCLUDE_DIR AND ICONV_LIBRARIES)
FIND_PATH(ICONV_INCLUDE_DIR iconv.h HINTS /sw/include/ PATHS /opt/local) FIND_PATH(ICONV_INCLUDE_DIR iconv.h HINTS /sw/include/ PATHS /opt/local)
FIND_LIBRARY(ICONV_LIBRARIES_RELEASE NAMES iconv libiconv c PATHS /opt/local) FIND_LIBRARY(ICONV_LIBRARIES NAMES iconv libiconv c PATHS /opt/local)
FIND_LIBRARY(ICONV_LIBRARIES_DEBUG NAMES iconvd libiconvd c PATHS /opt/local)
IF (ICONV_LIBRARIES_RELEASE AND ICONV_LIBRARIES_DEBUG)
SET(ICONV_LIBRARIES optimized ${ICONV_LIBRARIES_RELEASE} debug ${ICONV_LIBRARIES_DEBUG})
ELSE()
SET(ICONV_LIBRARIES ${ICONV_LIBRARIES_RELEASE})
ENDIF()
IF(ICONV_INCLUDE_DIR AND ICONV_LIBRARIES) IF(ICONV_INCLUDE_DIR AND ICONV_LIBRARIES)
SET(ICONV_FOUND TRUE) SET(ICONV_FOUND TRUE)
@ -67,6 +60,5 @@ ENDIF()
MARK_AS_ADVANCED( MARK_AS_ADVANCED(
ICONV_INCLUDE_DIR ICONV_INCLUDE_DIR
ICONV_LIBRARIES ICONV_LIBRARIES
ICONV_LIBRARIES_DEBUG
ICONV_SECOND_ARGUMENT_IS_CONST ICONV_SECOND_ARGUMENT_IS_CONST
) )

@ -38,25 +38,11 @@ find_path(LUA_INCLUDE_DIR lua.h
/opt /opt
) )
FIND_LIBRARY(LUA_LIBRARY find_library(LUA_LIBRARY
NAMES lua53 lua5.3 lua-5.3 lua NAMES lua53 lua5.3 lua-5.3 lua
HINTS HINTS
$ENV{LUA_DIR} ENV LUA_DIR
PATH_SUFFIXES lib64 lib PATH_SUFFIXES lib
PATHS
~/Library/Frameworks
/Library/Frameworks
/sw
/opt/local
/opt/csw
/opt
)
FIND_LIBRARY(LUA_LIBRARY_DEBUG
NAMES lua53-d lua5.3-d lua-5.3-d lua-d lua53d lua5.3d lua-5.3d luad
HINTS
$ENV{LUA_DIR}
PATH_SUFFIXES lib64 lib
PATHS PATHS
~/Library/Frameworks ~/Library/Frameworks
/Library/Frameworks /Library/Frameworks
@ -73,11 +59,7 @@ if(LUA_LIBRARY)
set( LUA_LIBRARIES "${LUA_LIBRARY};${LUA_MATH_LIBRARY}" CACHE STRING "Lua Libraries") set( LUA_LIBRARIES "${LUA_LIBRARY};${LUA_MATH_LIBRARY}" CACHE STRING "Lua Libraries")
# For Windows and Mac, don't need to explicitly include the math library # For Windows and Mac, don't need to explicitly include the math library
else() else()
if (LUA_LIBRARY_DEBUG) set( LUA_LIBRARIES "${LUA_LIBRARY}" CACHE STRING "Lua Libraries")
set( LUA_LIBRARIES optimized ${LUA_LIBRARY} debug ${LUA_LIBRARY_DEBUG} CACHE STRING "Lua Libraries")
else()
set( LUA_LIBRARIES "${LUA_LIBRARY}" CACHE STRING "Lua Libraries")
endif()
endif() endif()
endif() endif()
@ -95,5 +77,5 @@ FIND_PACKAGE_HANDLE_STANDARD_ARGS(Lua53
REQUIRED_VARS LUA_LIBRARIES LUA_INCLUDE_DIR REQUIRED_VARS LUA_LIBRARIES LUA_INCLUDE_DIR
VERSION_VAR LUA_VERSION_STRING) VERSION_VAR LUA_VERSION_STRING)
mark_as_advanced(LUA_INCLUDE_DIR LUA_LIBRARIES LUA_LIBRARY LUA_LIBRARY_DEBUG LUA_MATH_LIBRARY) mark_as_advanced(LUA_INCLUDE_DIR LUA_LIBRARIES LUA_LIBRARY LUA_MATH_LIBRARY)

@ -1,99 +0,0 @@
# Locate Lua library
# This module defines
# LUA54_FOUND, if false, do not try to link to Lua
# LUA_LIBRARIES
# LUA_INCLUDE_DIR, where to find lua.h
# LUA_VERSION_STRING, the version of Lua found (since CMake 2.8.8)
#
# Note that the expected include convention is
# #include "lua.h"
# and not
# #include <lua/lua.h>
# This is because, the lua location is not standardized and may exist
# in locations other than lua/
#=============================================================================
# Copyright 2007-2009 Kitware, Inc.
#
# Distributed under the OSI-approved BSD License (the "License");
# see accompanying file Copyright.txt for details.
#
# This software is distributed WITHOUT ANY WARRANTY; without even the
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the License for more information.
#=============================================================================
# (To distribute this file outside of CMake, substitute the full
# License text for the above reference.)
find_path(LUA_INCLUDE_DIR lua.h
HINTS
ENV LUA_DIR
PATH_SUFFIXES include/lua54 include/lua5.4 include/lua-5.4 include/lua include
PATHS
~/Library/Frameworks
/Library/Frameworks
/sw # Fink
/opt/local # DarwinPorts
/opt/csw # Blastwave
/opt
)
FIND_LIBRARY(LUA_LIBRARY
NAMES lua54 lua5.4 lua-5.4 lua
HINTS
$ENV{LUA_DIR}
PATH_SUFFIXES lib64 lib
PATHS
~/Library/Frameworks
/Library/Frameworks
/sw
/opt/local
/opt/csw
/opt
)
FIND_LIBRARY(LUA_LIBRARY_DEBUG
NAMES lua54-d lua5.4-d lua-5.4-d lua-d lua54d lua5.4d lua-5.4d luad
HINTS
$ENV{LUA_DIR}
PATH_SUFFIXES lib64 lib
PATHS
~/Library/Frameworks
/Library/Frameworks
/sw
/opt/local
/opt/csw
/opt
)
if(LUA_LIBRARY)
# include the math library for Unix
if(UNIX AND NOT APPLE AND NOT BEOS)
find_library(LUA_MATH_LIBRARY m)
set( LUA_LIBRARIES "${LUA_LIBRARY};${LUA_MATH_LIBRARY}" CACHE STRING "Lua Libraries")
# For Windows and Mac, don't need to explicitly include the math library
else()
if (LUA_LIBRARY_DEBUG)
set( LUA_LIBRARIES optimized ${LUA_LIBRARY} debug ${LUA_LIBRARY_DEBUG} CACHE STRING "Lua Libraries")
else()
set( LUA_LIBRARIES "${LUA_LIBRARY}" CACHE STRING "Lua Libraries")
endif()
endif()
endif()
if(LUA_INCLUDE_DIR AND EXISTS "${LUA_INCLUDE_DIR}/lua.h")
file(STRINGS "${LUA_INCLUDE_DIR}/lua.h" lua_version_str REGEX "^#define[ \t]+LUA_RELEASE[ \t]+\"Lua .+\"")
string(REGEX REPLACE "^#define[ \t]+LUA_RELEASE[ \t]+\"Lua ([^\"]+)\".*" "\\1" LUA_VERSION_STRING "${lua_version_str}")
unset(lua_version_str)
endif()
include(FindPackageHandleStandardArgs)
# handle the QUIETLY and REQUIRED arguments and set LUA_FOUND to TRUE if
# all listed variables are TRUE
FIND_PACKAGE_HANDLE_STANDARD_ARGS(Lua54
REQUIRED_VARS LUA_LIBRARIES LUA_INCLUDE_DIR
VERSION_VAR LUA_VERSION_STRING)
mark_as_advanced(LUA_INCLUDE_DIR LUA_LIBRARIES LUA_LIBRARY LUA_LIBRARY_DEBUG LUA_MATH_LIBRARY)

@ -10,32 +10,18 @@ MACRO(FIND_CORRECT_LUA_VERSION)
IF(LUABIND_LIBRARY_RELEASE MATCHES "\\.so") IF(LUABIND_LIBRARY_RELEASE MATCHES "\\.so")
INCLUDE(CheckDepends) INCLUDE(CheckDepends)
# check for Lua 5.4 # check for Lua 5.3
SET(LUA54_LIBRARIES liblua5.4 liblua-5.4 liblua.so.5.4) SET(LUA53_LIBRARIES liblua5.3 liblua-5.3 liblua.so.5.3)
FOREACH(_LIB ${LUA54_LIBRARIES}) FOREACH(_LIB ${LUA53_LIBRARIES})
CHECK_LINKED_LIBRARY(LUABIND_LIBRARY_RELEASE _LIB LUALIB_FOUND) CHECK_LINKED_LIBRARY(LUABIND_LIBRARY_RELEASE _LIB LUALIB_FOUND)
IF(LUALIB_FOUND) IF(LUALIB_FOUND)
MESSAGE(STATUS "Luabind is using Lua 5.4") MESSAGE(STATUS "Luabind is using Lua 5.3")
FIND_PACKAGE(Lua54 REQUIRED) FIND_PACKAGE(Lua53 REQUIRED)
BREAK() BREAK()
ENDIF() ENDIF()
ENDFOREACH() ENDFOREACH()
IF(NOT LUALIB_FOUND)
# check for Lua 5.3
SET(LUA53_LIBRARIES liblua5.3 liblua-5.3 liblua.so.5.3)
FOREACH(_LIB ${LUA53_LIBRARIES})
CHECK_LINKED_LIBRARY(LUABIND_LIBRARY_RELEASE _LIB LUALIB_FOUND)
IF(LUALIB_FOUND)
MESSAGE(STATUS "Luabind is using Lua 5.3")
FIND_PACKAGE(Lua53 REQUIRED)
BREAK()
ENDIF()
ENDFOREACH()
ENDIF()
IF(NOT LUALIB_FOUND) IF(NOT LUALIB_FOUND)
# check for Lua 5.2 # check for Lua 5.2
SET(LUA52_LIBRARIES liblua5.2 liblua-5.2 liblua.so.5.2) SET(LUA52_LIBRARIES liblua5.2 liblua-5.2 liblua.so.5.2)
@ -119,6 +105,11 @@ IF(WITH_LUA54)
LIST(APPEND LIBRARY_NAME_DEBUG luabind_lua54d) LIST(APPEND LIBRARY_NAME_DEBUG luabind_lua54d)
ENDIF() ENDIF()
IF(HUNTER_ENABLED)
LIST(APPEND LIBRARY_NAME_RELEASE luabind luabind09)
LIST(APPEND LIBRARY_NAME_DEBUG luabindd luabind09-d)
ENDIF()
IF(WITH_LUA53) IF(WITH_LUA53)
IF(WITH_STLPORT) IF(WITH_STLPORT)
LIST(APPEND LIBRARY_NAME_RELEASE luabind_stlport_lua53) LIST(APPEND LIBRARY_NAME_RELEASE luabind_stlport_lua53)
@ -165,8 +156,8 @@ IF(WITH_STLPORT)
ENDIF() ENDIF()
# generic libraries names # generic libraries names
LIST(APPEND LIBRARY_NAME_RELEASE luabind luabind09 libluabind) LIST(APPEND LIBRARY_NAME_RELEASE luabind libluabind)
LIST(APPEND LIBRARY_NAME_DEBUG luabind_d luabindd luabind09-d libluabind_d libluabindd) LIST(APPEND LIBRARY_NAME_DEBUG luabind_d luabindd libluabind_d libluabindd)
FIND_PACKAGE_HELPER(Luabind luabind/luabind.hpp RELEASE ${LIBRARY_NAME_RELEASE} DEBUG ${LIBRARY_NAME_DEBUG}) FIND_PACKAGE_HELPER(Luabind luabind/luabind.hpp RELEASE ${LIBRARY_NAME_RELEASE} DEBUG ${LIBRARY_NAME_DEBUG})

@ -45,35 +45,24 @@ ELSE()
IF(MSVC_VERSION LESS 1920) IF(MSVC_VERSION LESS 1920)
SET(_NAME "2017") SET(_NAME "2017")
ELSEIF(MSVC_VERSION LESS 1930)
SET(_NAME "2019")
ELSE() ELSE()
SET(_NAME "2022") SET(_NAME "2019")
ENDIF() ENDIF()
STRING(REGEX REPLACE "/MSVC/.+" "/MSVC" VC_DIR ${_COMPILER}) STRING(REGEX REPLACE "/MSVC/.+" "/MSVC" VC_DIR ${_COMPILER})
IF(DEFINED ENV{VCToolsVersion}) FILE(GLOB MSVC_TOOLCHAIN_VERSIONS RELATIVE ${VC_DIR} "${VC_DIR}/*")
SET(MSVC_TOOLCHAIN_VERSION $ENV{VCToolsVersion})
ELSE()
FILE(GLOB MSVC_TOOLCHAIN_VERSIONS RELATIVE ${VC_DIR} "${VC_DIR}/*")
IF(MSVC_TOOLCHAIN_VERSIONS)
LIST(SORT MSVC_TOOLCHAIN_VERSIONS)
LIST(REVERSE MSVC_TOOLCHAIN_VERSIONS)
ENDIF()
IF(MSVC_TOOLCHAIN_VERSIONS)
LIST(GET MSVC_TOOLCHAIN_VERSIONS 0 MSVC_TOOLCHAIN_VERSION)
ENDIF()
IF(MSVC_TOOLCHAIN_VERSIONS)
LIST(SORT MSVC_TOOLCHAIN_VERSIONS)
LIST(REVERSE MSVC_TOOLCHAIN_VERSIONS)
ENDIF() ENDIF()
IF (MSVC_TOOLCHAIN_VERSION) IF(MSVC_TOOLCHAIN_VERSIONS)
LIST(GET MSVC_TOOLCHAIN_VERSIONS 0 MSVC_TOOLCHAIN_VERSION)
SET(VC_DIR "${VC_DIR}/${MSVC_TOOLCHAIN_VERSION}") SET(VC_DIR "${VC_DIR}/${MSVC_TOOLCHAIN_VERSION}")
MESSAGE(STATUS "Found Visual C++ ${_NAME} (${_VERSION} with toolchain ${MSVC_TOOLCHAIN_VERSION}) in ${VC_DIR}") MESSAGE(STATUS "Found Visual C++ ${_NAME} (${_VERSION} with toolchain ${MSVC_TOOLCHAIN_VERSION}) in ${VC_DIR}")
ELSE() ELSE()
MESSAGE(FATAL_ERROR "Unable to find Visual C++ in ${VC_DIR}") MESSAGE(FATAL_ERROR "Unable to find Visual C++ in ${VC_DIR}")

@ -2,7 +2,7 @@
hunter_config(luabind hunter_config(luabind
VERSION 0.9.1 VERSION 0.9.1
URL "https://github.com/ryzom/luabind/tarball/0ae9bd6e40fe6c70e9d032ff096370929f58c143" URL "https://github.com/nimetu/luabind/tarball/2fa4606"
SHA1 "1dfabfa89ee72066118e4e28e797830e118d2a9b" SHA1 "3b4646bab9f0b2362d7b8d71d78e40deaf3cc747"
) )

@ -321,7 +321,7 @@ MACRO(NL_SETUP_DEFAULT_OPTIONS)
OPTION(WITH_SNOWBALLS "Build Snowballs." OFF) OPTION(WITH_SNOWBALLS "Build Snowballs." OFF)
OPTION(WITH_TOOLS "Build Tools" OFF) OPTION(WITH_TOOLS "Build Tools" OFF)
OPTION(WITH_RYZOM_LIVE "Use ryzom.com urls" OFF) OPTION(WITH_RYZOM_LIVE "Use ryzom.com urls" ON)
ENDMACRO(NL_SETUP_DEFAULT_OPTIONS) ENDMACRO(NL_SETUP_DEFAULT_OPTIONS)
MACRO(NL_SETUP_NEL_DEFAULT_OPTIONS) MACRO(NL_SETUP_NEL_DEFAULT_OPTIONS)
@ -393,7 +393,6 @@ MACRO(NL_SETUP_RYZOM_DEFAULT_OPTIONS)
OPTION(WITH_LUA51 "Build Ryzom Core using Lua 5.1" ON ) OPTION(WITH_LUA51 "Build Ryzom Core using Lua 5.1" ON )
OPTION(WITH_LUA52 "Build Ryzom Core using Lua 5.2" OFF) OPTION(WITH_LUA52 "Build Ryzom Core using Lua 5.2" OFF)
OPTION(WITH_LUA53 "Build Ryzom Core using Lua 5.3" OFF) OPTION(WITH_LUA53 "Build Ryzom Core using Lua 5.3" OFF)
OPTION(WITH_LUA54 "Build Ryzom Core using Lua 5.4" OFF)
OPTION(WITH_RYZOM_CLIENT_UAC "Ask to run as Administrator" OFF) OPTION(WITH_RYZOM_CLIENT_UAC "Ask to run as Administrator" OFF)
OPTION(WITH_RYZOM_PATCH "Enable Ryzom in-game patch support" OFF) OPTION(WITH_RYZOM_PATCH "Enable Ryzom in-game patch support" OFF)
OPTION(WITH_RYZOM_CUSTOM_PATCH_SERVER "Only use patch server from CFG file" OFF) OPTION(WITH_RYZOM_CUSTOM_PATCH_SERVER "Only use patch server from CFG file" OFF)
@ -1268,9 +1267,7 @@ MACRO(SETUP_EXTERNAL)
SET(CMAKE_USE_PTHREADS_INIT 1) SET(CMAKE_USE_PTHREADS_INIT 1)
SET(Threads_FOUND TRUE) SET(Threads_FOUND TRUE)
ELSE() ELSE()
IF(NOT MSVC) SET(THREADS_HAVE_PTHREAD_ARG ON)
SET(THREADS_HAVE_PTHREAD_ARG ON)
ENDIF()
FIND_PACKAGE(Threads) FIND_PACKAGE(Threads)
# TODO: replace all -l<lib> by absolute path to <lib> in CMAKE_THREAD_LIBS_INIT # TODO: replace all -l<lib> by absolute path to <lib> in CMAKE_THREAD_LIBS_INIT
ENDIF() ENDIF()

@ -1,63 +1,7 @@
# Ryzom Core [![Build Status](https://dev.azure.com/ryzom/ryzomcore/_apis/build/status/ryzom.ryzomcore?branchName=core4)](https://dev.azure.com/ryzom/ryzomcore/_build) # Ryzom Core [![Build Status](https://travis-ci.org/ryzom/ryzomcore.svg)](https://travis-ci.org/ryzom/ryzomcore)
Ryzom Core is the open-source project related to Ryzom Game. Written in C++, Ryzom Core contains the whole code (client, server, tools) used to make the commercial MMORPG Ryzom. Ryzom Core is a toolkit for the development of massively multiplayer online universes. It provides the base technologies and a set of development methodologies for the development of both client and server code. Ryzom Core is the open-source project related to Ryzom Game. Written in C++, Ryzom Core contains the whole code (client, server, tools) used to make the commercial MMORPG Ryzom. Ryzom Core is a toolkit for the development of massively multiplayer online universes. It provides the base technologies and a set of development methodologies for the development of both client and server code.
Ryzom Core is open source and released under the terms of the GNU Affero General Public License 3.0 (GNU/AGPLv3) for the source code. The art assets are dual-licenced under the Creative Commons Attributions-ShareAlike 3.0 (CC-BY-SA) and Free Art License 1.3 (FAL 1.3).
* Wiki: https://wiki.ryzom.dev/
* IRC: https://freegamedev.net/irc/#ryzom
* Discord: https://discord.gg/xjSBVkSmCy
## About the community Ryzom Core is open source and released under the terms of the GNU Affero General Public License 3.0 (GNU/AGPLv3) for the source code and the Creative Commons Attributions-ShareAlike 3.0 (CC-BY-SA) for the art assets. Which means you can create your own game using Ryzom Core, for more information on doing so check out Creating Your Own Game Using Ryzom Core.
We are a passionate group of gamers, and open-source aficionados. Many of us fell in love with the original vision and promise of the Saga of Ryzom, or the ideals of open source. For some the game was once our home, or still is. To others, it was an introduction to the open-source software world. We work on Ryzom Core because we care for the things we love, and the friendships we've made over the years.
The Ryzom Core repository is maintained by the community independently. It is not officially affiliated with the commercial game, nor with Winch Gate Ltd. See the History section on why.
## Support development
We are happy to work on this project in our free time. If you would like to contribute to the project financially, you can support us and our loved ones through any of the following links.
* [![Sponsor](https://img.shields.io/github/sponsors/kaetemi?style=social)]( https://github.com/sponsors/kaetemi) Jan Boon (Kaetemi), Polyverse OÜ. — Goes towards the Ryzom Core servers, and open-source development.
If you're a regular source code or game asset contributor to the open-source project, feel free to add yourself to this list.
## Project history
The Saga of Ryzom was originally developed by Nevrax. A small game development company with a visionary creative direction.
Several founders and developers of the company at the time were open-source aficionados. The ideal in their minds was to fully open source the game. Unfortunately, the investors thought differently and never fully bought into the open-source model. Only the engine was released at the time.
This gave birth to the NeL project. The Nevrax Library. While there was public interest in the engine, the lack of commitment to open source by the company made it difficult for independent contributors to work on the project.
When Nevrax eventually went bankrupt, they were initially bought out by Gameforge. A subsidiary called Gameforge France was formed to work on Ryzom.
A community-led [Virtual Citizenship Association (VCA)]( https://web.archive.org/web/20080905175524/https://www.virtualcitizenship.org/), raising over € 170,000 in pledges, failed to win the bid. The open-source NeL community was later abandoned by Gameforge once Ryzom eventually fell into oblivion, and revived itself as the OpenNeL project. After Gameforge failed to fully pay for the bankruptcy deal, and some hush-hush behind the backs of the community-led VCA, the ownership was transferred back to the liquidator and onto Winch Gate Properties Limited.
Fortunately, thanks to the efforts of original Nevrax employees, and key members of OpenNeL, the new owner showed some goodwill towards the open source community, and the full game client and server, as well as a substantial amount of graphics assets, were released as open source.
With the promise of the game becoming an open source project, they worked together with the OpenNeL community, which renamed to Ryzom Core in order to advertise the game better. In practice, the commercial game servers were being developed on a private repository. Beyond bug fixes and enhancements to the client, the community had zero input. New features that required server modifications were disallowed. The collaboration was doomed to fail.
The Ryzom Core community was backstabbed and slowly ignored by the new owner. A new Ryzom Forge project was launched behind closed doors, that claimed to make community contributions easier. Yet closing off development almost entirely to outsiders. No attempt was made by the new owner at fully committing to an open-source development model.
New features on the commercial game developed by the Ryzom Forge team are primarily web applications using the in-game browser, circumventing the AGPLv3. Furthermore, the Ryzom Forge team had at one point updated their private server repository to link the binaries to the game engine on the public repository. This in violation of the AGPLv3 license on community contributions, forcing their hand to make their private server fork public. The web apps remain closed source. The team also shut down the Ryzom Ring player scenario tools on the official servers, in favor of closed source web-based tools that are exclusive to the official event team.
As the commercial game owners historically, and still, have been a poorly committed and unreliable partner to running this as a truly open-source project, Ryzom Core is currently an independent community project, and is committed to remain that way and protect the rights of independent contributors.
## Copyright and contributions
All original source code is copyright (C) 2001-2022 Winch Gate Property Limited. The commercial game's official Git repositories are hosted on GitLab at https://gitlab.com/ryzom.
The NeL Sound driver for XAudio2 is copyright (C) 2008-2014 Jan BOON <jan.boon@kaetemi.be>.
Other community contributions and modifications are copyright their respective authors. Consult the OpenNeL SVN and the Ryzom Core Git repository histories for more details.
The source code in this repository is licensed under the AGPLv3, unless specified otherwise. Likewise, by committing to this repository, you agree to license your modifications under the AGPLv3. You retain all copyright over your work (\*). As such, you have the option to additionally dual-license your fully-owned contributions under any other license. Configuration files are implied to be public domain samples, as they may contain sensitive data in a production environment.
(\*) If, and only if, you have signed a CTA (part of the NDA, copyright and ownership - your contract may vary) with Winch Gate Ltd., your contributions, along with any other creations related to Ryzom, fall under that contract and will be copyright Winch Gate Ltd. instead (\*\*). As per your contract, your contributions are licensed back to you under the AGPLv3. You retain the moral rights to your work. These are non-transferable rights, which permit you to assert your authorship and be credited for your contributions. You should exercise this right.
(\*\*) If you live in a legislation where contractual copyright assignments without employment or commercial transaction are unenforceable (e.g. Belgium), and you are not being paid by Winch Gate Ltd. for your current work, the CTA is null and void, and you retain full copyright ownership over your contributions. Consult a lawyer to assert your rights. Don't give them away.
To comply with the AGPLv3 license, section 5(a), names of the contributors who own the copyrights to modifications will be added to the copyright notice in source files on a periodic basis. You may follow the existing format if you wish to do this yourself.
The removal of any valid copyright notice is a violation of the AGPLv3 license.

@ -77,91 +77,88 @@ jobs:
cd build cd build
make -j`nproc` make -j`nproc`
displayName: 'Make' displayName: 'Make'
- job: client - job: windows2019
strategy:
matrix:
ubuntu:
vmImage: 'ubuntu-18.04'
releaseName: 'Ubuntu18'
aptPackages: >-
libasound2-dev
libgl1-mesa-dev
libjack-dev
libpulse-dev
libxrandr-dev
libxrender-dev
libxxf86vm-dev
win2019:
vmImage: 'windows-2019'
releaseName: 'Win64'
cmakeExtra: >-
-DWITH_DRIVER_DIRECT3D=ON
-DWITH_DRIVER_XAUDIO2=ON
-DDXSDK_DIR=C:/DXSDK
macOS11:
vmImage: 'macOS-11'
releaseName: 'macOS'
MACOSX_DEPLOYMENT_TARGET: 10.12
cmakeExtra: >-
-DWITH_LIBXML2_ICONV=OFF
-GXcode
timeoutInMinutes: 120 timeoutInMinutes: 120
pool: pool:
vmImage: $(vmImage) vmImage: 'windows-2019'
steps: steps:
- checkout: self - checkout: self
fetchDepth: 0 fetchDepth: 1
- script: | - task: Cache@2
sudo apt update inputs:
sudo apt remove -y man-db key: 'hunter-win2019-x64-rel'
sudo apt install -y --no-install-recommends $(aptPackages) path: "c:/.hunter/_Base/Cache"
displayName: '(ubuntu) Dependencies'
condition: eq(variables['Agent.JobName'], 'client ubuntu')
- task: CmdLine@2 - task: CmdLine@2
inputs: inputs:
script: | script: |
aria2c https://download.microsoft.com/download/A/E/7/AE743F1F-632B-4809-87A9-AA1BB3458E31/DXSDK_Jun10.exe aria2c https://download.microsoft.com/download/A/E/7/AE743F1F-632B-4809-87A9-AA1BB3458E31/DXSDK_Jun10.exe
7z x DXSDK_Jun10.exe -oC:\ -r -y 7z x DXSDK_Jun10.exe -oC:\ -r -y
del DXSDK_Jun10.exe del DXSDK_Jun10.exe
displayName: '(windows) DirectX SDK' - task: CMake@1
condition: contains(variables['cmakeExtra'], 'DIRECT3D=ON') inputs:
workingDirectory: build.release
cmakeArgs: '-DCMAKE_CONFIGURATION_TYPES=Release -DHUNTER_ENABLED=ON -DHUNTER_CONFIGURATION_TYPES=Release -DFINAL_VERSION=OFF -DWITH_NEL_TESTS=OFF -DWITH_NEL_SAMPLES=OFF -DWITH_NEL_TOOLS=OFF -DWITH_RYZOM_TOOLS=OFF -DWITH_RYZOM_SERVER=OFF -DWITH_RYZOM_CLIENT=ON -DWITH_DRIVER_OPENGL=ON -DWITH_DRIVER_OPENAL=ON -DWITH_DRIVER_DIRECT3D=ON -DWITH_DRIVER_XAUDIO2=ON -DDXSDK_DIR=C:/DXSDK ..'
- task: MSBuild@1
inputs:
solution: build.release/ALL_BUILD.vcxproj
maximumCpuCount: true
configuration: release
platform: 'x64'
- job: ubuntu18hunter
timeoutInMinutes: 120
pool:
vmImage: ubuntu-18.04
steps:
- checkout: self
fetchDepth: 0
- script: |
sudo apt-get update
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends libasound2-dev libgl1-mesa-dev libjack-dev libpulse-dev libxrandr-dev libxrender-dev libxxf86vm-dev
displayName: 'Dependencies'
- task: Cache@2 - task: Cache@2
inputs: inputs:
key: 'hunter321b-$(releaseName)' key: 'hunter317-ubuntu18-rel"'
path: '$(Pipeline.Workspace)/.hunter/_Base/Cache' path: "$(Pipeline.Workspace)/.hunter/_Base/Cache"
- task: CMake@1 - script: |
displayName: 'Configure' mkdir build.release
cmake --version
cd build.release
unset SYSTEM
export MAKEFLAGS=-j`nproc`
cmake -DCMAKE_BUILD_TYPE=Release -DHUNTER_ENABLED=ON -DHUNTER_CONFIGURATION_TYPES=Release -DHUNTER_ROOT="$(Pipeline.Workspace)/.hunter" -DFINAL_VERSION=OFF -DWITH_NEL_TESTS=OFF -DWITH_NEL_SAMPLES=OFF -DWITH_NEL_TOOLS=OFF -DWITH_RYZOM_TOOLS=OFF -DWITH_RYZOM_SERVER=OFF -DWITH_RYZOM_CLIENT=ON -DWITH_DRIVER_OPENGL=ON -DWITH_DRIVER_OPENAL=ON ..
displayName: 'CMake, release'
- script: |
cd build.release
make -j`nproc`
displayName: 'Make, release'
#- task: PublishPipelineArtifact@1
# inputs:
# targetPath: build.release/bin
# artifactName: RyzomUbuntu18Release
- job: macOS11
timeoutInMinutes: 120
pool:
vmImage: 'macOS-11'
steps:
- checkout: self
fetchDepth: 0
- task: Cache@2
inputs: inputs:
workingDirectory: $(Build.BinariesDirectory) key: 'hunter317-macOS11-rel"'
cmakeArgs: >- path: "$(Pipeline.Workspace)/.hunter/_Base/Cache"
$(cmakeExtra)
-DCMAKE_CONFIGURATION_TYPES=Release
-DFINAL_VERSION=OFF
-DHUNTER_CONFIGURATION_TYPES=Release
-DHUNTER_ENABLED=ON
-DHUNTER_ROOT=$(Pipeline.Workspace)/.hunter
-DHUNTER_STATUS_DEBUG=ON
-DWITH_DRIVER_OPENAL=ON
-DWITH_DRIVER_OPENGL=ON
-DWITH_INSTALL_LIBRARIES=OFF
-DWITH_NEL_SAMPLES=OFF
-DWITH_NEL_TESTS=OFF
-DWITH_NEL_TOOLS=OFF
-DWITH_RYZOM_CLIENT=ON
-DWITH_RYZOM_SERVER=OFF
-DWITH_RYZOM_TOOLS=OFF
$(Build.SourcesDirectory)
- task: CMake@1 - task: CMake@1
displayName: 'Build'
inputs: inputs:
workingDirectory: $(Build.BinariesDirectory) workingDirectory: build.release
cmakeArgs: '--build . --config Release' cmakeArgs: '-GXcode -DCMAKE_CONFIGURATION_TYPES=Release -DHUNTER_ENABLED=ON -DHUNTER_STATUS_DEBUG=ON -DHUNTER_CONFIGURATION_TYPES=Release -DHUNTER_ROOT="$(Pipeline.Workspace)/.hunter" -DWITH_LIBXML2_ICONV=OFF -DFINAL_VERSION=OFF -DWITH_NEL_TESTS=OFF -DWITH_NEL_SAMPLES=OFF -DWITH_NEL_TOOLS=OFF -DWITH_RYZOM_TOOLS=OFF -DWITH_RYZOM_SERVER=OFF -DWITH_RYZOM_CLIENT=ON -DWITH_DRIVER_OPENGL=ON -DWITH_DRIVER_OPENAL=ON -DWITH_DRIVER_DIRECT3D=OFF -DWITH_DRIVER_XAUDIO2=OFF ..'
#- task: CMake@1 - task: Xcode@5
# displayName: 'Install' inputs:
# inputs: actions: 'build'
# workingDirectory: $(Build.BinariesDirectory) configuration: Release
# cmakeArgs: --install . --config Release --prefix $(Build.StagingDirectory) sdk: macosx12.0
xcWorkspacePath: 'build.release/RyzomCore.xcodeproj'
scheme: 'ALL_BUILD'
packageApp: false
#- task: PublishPipelineArtifact@1 #- task: PublishPipelineArtifact@1
# inputs: # inputs:
# targetPath: $(Build.StagingDirectory)/bin # targetPath: build.release/bin/
# artifactName: RyzomClient$(releaseName)Release # artifactName: RyzomClientMacOS11Release

@ -39,8 +39,8 @@
#cmakedefine RYZOM_CLIENT_PATCH_URL "${RYZOM_CLIENT_PATCH_URL}" #cmakedefine RYZOM_CLIENT_PATCH_URL "${RYZOM_CLIENT_PATCH_URL}"
#cmakedefine RYZOM_CLIENT_APP_NAME "${RYZOM_CLIENT_APP_NAME}" #cmakedefine RYZOM_CLIENT_APP_NAME "${RYZOM_CLIENT_APP_NAME}"
#cmakedefine RYZOM_CLIENT_RELEASENOTES_RING_URL "${RYZOM_CLIENT_RELEASENOTES_RING_URL}" #cmakedefine RYZOM_WEBIG_MAIN_URL "${RYZOM_WEBIG_MAIN_URL}"
#cmakedefine RYZOM_CLIENT_RELEASENOTES_URL "${RYZOM_CLIENT_RELEASENOTES_URL}" #cmakedefine RYZOM_WEBIG_TRUSTED_DOMAIN "${RYZOM_WEBIG_TRUSTED_DOMAIN}"
#cmakedefine AUTHOR "${AUTHOR}" #cmakedefine AUTHOR "${AUTHOR}"
#cmakedefine YEAR "${YEAR}" #cmakedefine YEAR "${YEAR}"

@ -32,9 +32,9 @@ parse_version()
export $VAR=$V export $VAR=$V
} }
parse_version NL $VERSION_FILE VERSION_MAJOR parse_version RYZOM $VERSION_FILE VERSION_MAJOR
parse_version NL $VERSION_FILE VERSION_MINOR parse_version RYZOM $VERSION_FILE VERSION_MINOR
parse_version NL $VERSION_FILE VERSION_PATCH parse_version RYZOM $VERSION_FILE VERSION_PATCH
VERSION=$VERSION_MAJOR.$VERSION_MINOR.$VERSION_PATCH VERSION=$VERSION_MAJOR.$VERSION_MINOR.$VERSION_PATCH

@ -1,120 +1,120 @@
;-------------------------------- ;--------------------------------
;Include Modern UI ;Include Modern UI
!include "MUI2.nsh" !include "MUI2.nsh"
;-------------------------------- ;--------------------------------
;General ;General
!define Company "Winch Gate" !define Company "Winch Gate"
!define GenericProduct "Ryzom" !define GenericProduct "Ryzom"
!define Product "Ryzom Installer" !define Product "Ryzom Installer"
!define RegistryCat "HKCU" !define RegistryCat "HKCU"
!define RegistryKey "Software\${Company}\${GenericProduct}" !define RegistryKey "Software\${Company}\${GenericProduct}"
!define Executable "ryzom_installer_qt_r.exe" !define Executable "ryzom_installer_qt_r.exe"
!define SrcDir "RyzomInstaller" !define SrcDir "RyzomInstaller"
!define Installer "ryzom_installer_windows.exe" !define Installer "ryzom_installer_windows.exe"
;Properly display all languages (Installer will not work on Windows 95, 98 or ME!) ;Properly display all languages (Installer will not work on Windows 95, 98 or ME!)
;Unicode true ;Unicode true
;New XP style ;New XP style
XPStyle on XPStyle on
;Name and file ;Name and file
Name "${Product}" Name "${Product}"
OutFile "${Installer}" OutFile "${Installer}"
;Default installation folder ;Default installation folder
InstallDir "$LOCALAPPDATA\${GenericProduct}" InstallDir "$LOCALAPPDATA\${GenericProduct}"
;Get installation folder from registry if available ;Get installation folder from registry if available
InstallDirRegKey "${RegistryCat}" "${RegistryKey}" "${GenericProduct} Install Path" InstallDirRegKey "${RegistryCat}" "${RegistryKey}" "${GenericProduct} Install Path"
;Request application privileges for Windows Vista ;Request application privileges for Windows Vista
RequestExecutionLevel user RequestExecutionLevel user
;Best compression ;Best compression
SetCompressor LZMA SetCompressor LZMA
; ??? ; ???
AllowSkipFiles on AllowSkipFiles on
;-------------------------------- ;--------------------------------
;Interface Settings ;Interface Settings
!define MUI_ICON "${SrcDir}\${GenericProduct}.ico" !define MUI_ICON "${SrcDir}\${GenericProduct}.ico"
!define MUI_UNICON "${SrcDir}\${GenericProduct}.ico" !define MUI_UNICON "${SrcDir}\${GenericProduct}.ico"
!define MUI_HEADERIMAGE !define MUI_HEADERIMAGE
!define MUI_HEADERIMAGE_BITMAP "modern-header.bmp" ; optional !define MUI_HEADERIMAGE_BITMAP "modern-header.bmp" ; optional
!define MUI_WELCOMEFINISHPAGE_BITMAP "modern-wizard.bmp" !define MUI_WELCOMEFINISHPAGE_BITMAP "modern-wizard.bmp"
!define MUI_UNWELCOMEFINISHPAGE_BITMAP "modern-wizard.bmp" !define MUI_UNWELCOMEFINISHPAGE_BITMAP "modern-wizard.bmp"
!define MUI_ABORTWARNING !define MUI_ABORTWARNING
;Show all languages, despite user's codepage ;Show all languages, despite user's codepage
!define MUI_LANGDLL_ALLLANGUAGES !define MUI_LANGDLL_ALLLANGUAGES
;-------------------------------- ;--------------------------------
;Language Selection Dialog Settings ;Language Selection Dialog Settings
;Remember the installer language ;Remember the installer language
!define MUI_LANGDLL_REGISTRY_ROOT "${RegistryCat}" !define MUI_LANGDLL_REGISTRY_ROOT "${RegistryCat}"
!define MUI_LANGDLL_REGISTRY_KEY "${RegistryKey}" !define MUI_LANGDLL_REGISTRY_KEY "${RegistryKey}"
!define MUI_LANGDLL_REGISTRY_VALUENAME "Language" !define MUI_LANGDLL_REGISTRY_VALUENAME "Language"
;-------------------------------- ;--------------------------------
;Pages ;Pages
!insertmacro MUI_PAGE_WELCOME !insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_DIRECTORY !insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES !insertmacro MUI_PAGE_INSTFILES
!define MUI_FINISHPAGE_RUN "$INSTDIR\${Executable}" !define MUI_FINISHPAGE_RUN "$INSTDIR\${Executable}"
!insertmacro MUI_PAGE_FINISH !insertmacro MUI_PAGE_FINISH
!insertmacro MUI_UNPAGE_WELCOME !insertmacro MUI_UNPAGE_WELCOME
!insertmacro MUI_UNPAGE_CONFIRM !insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES !insertmacro MUI_UNPAGE_INSTFILES
!insertmacro MUI_UNPAGE_FINISH !insertmacro MUI_UNPAGE_FINISH
;-------------------------------- ;--------------------------------
;Languages ;Languages
!insertmacro MUI_LANGUAGE "English" ;first language is the default language !insertmacro MUI_LANGUAGE "English" ;first language is the default language
!insertmacro MUI_LANGUAGE "French" !insertmacro MUI_LANGUAGE "French"
!insertmacro MUI_LANGUAGE "German" !insertmacro MUI_LANGUAGE "German"
!insertmacro MUI_LANGUAGE "Spanish" !insertmacro MUI_LANGUAGE "Spanish"
;-------------------------------- ;--------------------------------
;Reserve Files ;Reserve Files
;If you are using solid compression, files that are required before ;If you are using solid compression, files that are required before
;the actual installation should be stored first in the data block, ;the actual installation should be stored first in the data block,
;because this will make your installer start faster. ;because this will make your installer start faster.
!insertmacro MUI_RESERVEFILE_LANGDLL !insertmacro MUI_RESERVEFILE_LANGDLL
;-------------------------------- ;--------------------------------
;Installer Sections ;Installer Sections
; ---------------------------------------- ; ----------------------------------------
; Default section ; Default section
Section Section
SetOutPath "$INSTDIR" SetOutPath "$INSTDIR"
;Client, configuration and misc files ;Client, configuration and misc files
File "${SrcDir}\${Executable}" File "${SrcDir}\${Executable}"
File "${SrcDir}\msvcp120.dll" File "${SrcDir}\msvcp120.dll"
File "${SrcDir}\msvcr120.dll" File "${SrcDir}\msvcr120.dll"
;Shortcut on desktop ;Shortcut on desktop
CreateShortCut "$DESKTOP\${Product}.lnk" "$INSTDIR\${Executable}" CreateShortCut "$DESKTOP\${Product}.lnk" "$INSTDIR\${Executable}"
;Store installation folder ;Store installation folder
WriteRegStr "${RegistryCat}" "${RegistryKey}" "${GenericProduct} Install Path" $INSTDIR WriteRegStr "${RegistryCat}" "${RegistryKey}" "${GenericProduct} Install Path" $INSTDIR
SectionEnd SectionEnd
;-------------------------------- ;--------------------------------
;Installer Functions ;Installer Functions
Function .onInit Function .onInit
!insertmacro MUI_LANGDLL_DISPLAY !insertmacro MUI_LANGDLL_DISPLAY
FunctionEnd FunctionEnd

@ -1,298 +1,298 @@
;-------------------------------- ;--------------------------------
;Include Modern UI ;Include Modern UI
!include "MUI2.nsh" !include "MUI2.nsh"
;-------------------------------- ;--------------------------------
;General ;General
!define Company "Nevrax" !define Company "Nevrax"
!define Product "Ryzom" !define Product "Ryzom"
!define Version "2.1.0" !define Version "2.1.0"
!define Patch "661" !define Patch "661"
!define RegistryCat "HKLM" !define RegistryCat "HKLM"
!define RegistryKey "Software\${Company}\${Product}" !define RegistryKey "Software\${Company}\${Product}"
!define Executable "client_ryzom_rd.exe" !define Executable "client_ryzom_rd.exe"
!define DstDir "Output" !define DstDir "Output"
!define SrcDir "Ryzom" !define SrcDir "Ryzom"
!define Installer "ryzom_setup_${Patch}.exe" !define Installer "ryzom_setup_${Patch}.exe"
;Registry key for uninstaller ;Registry key for uninstaller
!define UninstallRegistryRoot "Software\Microsoft\Windows\CurrentVersion\Uninstall" !define UninstallRegistryRoot "Software\Microsoft\Windows\CurrentVersion\Uninstall"
!define UninstallRegistryKey "${UninstallRegistryRoot}\${Product}" !define UninstallRegistryKey "${UninstallRegistryRoot}\${Product}"
;Properly display all languages (Installer will not work on Windows 95, 98 or ME!) ;Properly display all languages (Installer will not work on Windows 95, 98 or ME!)
Unicode true Unicode true
;New XP style ;New XP style
XPStyle on XPStyle on
;Name and file ;Name and file
Name "${Product}" Name "${Product}"
OutFile "${DstDir}\${Installer}" OutFile "${DstDir}\${Installer}"
;Default installation folder ;Default installation folder
InstallDir "$PROGRAMFILES\${Product}" InstallDir "$PROGRAMFILES\${Product}"
;Get installation folder from registry if available ;Get installation folder from registry if available
InstallDirRegKey "${RegistryCat}" "${RegistryKey}" "${Product} Install Path" InstallDirRegKey "${RegistryCat}" "${RegistryKey}" "${Product} Install Path"
;Request application privileges for Windows Vista ;Request application privileges for Windows Vista
RequestExecutionLevel admin RequestExecutionLevel admin
;Best compression ;Best compression
SetCompressor LZMA SetCompressor LZMA
; ??? ; ???
AllowSkipFiles on AllowSkipFiles on
;-------------------------------- ;--------------------------------
;Variables ;Variables
;Will be used later ;Will be used later
Var MUI_TEMP Var MUI_TEMP
Var STARTMENU_FOLDER Var STARTMENU_FOLDER
;-------------------------------- ;--------------------------------
;Interface Settings ;Interface Settings
!define MUI_ICON "${SrcDir}\ryzom.ico" !define MUI_ICON "${SrcDir}\ryzom.ico"
!define MUI_UNICON "${SrcDir}\ryzom.ico" !define MUI_UNICON "${SrcDir}\ryzom.ico"
!define MUI_HEADERIMAGE !define MUI_HEADERIMAGE
!define MUI_HEADERIMAGE_BITMAP "modern-header.bmp" ; optional !define MUI_HEADERIMAGE_BITMAP "modern-header.bmp" ; optional
!define MUI_WELCOMEFINISHPAGE_BITMAP "modern-wizard.bmp" !define MUI_WELCOMEFINISHPAGE_BITMAP "modern-wizard.bmp"
!define MUI_UNWELCOMEFINISHPAGE_BITMAP "modern-wizard.bmp" !define MUI_UNWELCOMEFINISHPAGE_BITMAP "modern-wizard.bmp"
!define MUI_ABORTWARNING !define MUI_ABORTWARNING
;Show all languages, despite user's codepage ;Show all languages, despite user's codepage
!define MUI_LANGDLL_ALLLANGUAGES !define MUI_LANGDLL_ALLLANGUAGES
;-------------------------------- ;--------------------------------
;Language Selection Dialog Settings ;Language Selection Dialog Settings
;Remember the installer language ;Remember the installer language
!define MUI_LANGDLL_REGISTRY_ROOT "${RegistryCat}" !define MUI_LANGDLL_REGISTRY_ROOT "${RegistryCat}"
!define MUI_LANGDLL_REGISTRY_KEY "${RegistryKey}" !define MUI_LANGDLL_REGISTRY_KEY "${RegistryKey}"
!define MUI_LANGDLL_REGISTRY_VALUENAME "Language" !define MUI_LANGDLL_REGISTRY_VALUENAME "Language"
;-------------------------------- ;--------------------------------
;Pages ;Pages
!insertmacro MUI_PAGE_WELCOME !insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_DIRECTORY !insertmacro MUI_PAGE_DIRECTORY
;Start Menu Folder Page Configuration ;Start Menu Folder Page Configuration
!define MUI_STARTMENUPAGE_REGISTRY_ROOT "${RegistryCat}" !define MUI_STARTMENUPAGE_REGISTRY_ROOT "${RegistryCat}"
!define MUI_STARTMENUPAGE_REGISTRY_KEY "${RegistryKey}" !define MUI_STARTMENUPAGE_REGISTRY_KEY "${RegistryKey}"
!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder" !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder"
!insertmacro MUI_PAGE_STARTMENU Application $STARTMENU_FOLDER !insertmacro MUI_PAGE_STARTMENU Application $STARTMENU_FOLDER
!insertmacro MUI_PAGE_INSTFILES !insertmacro MUI_PAGE_INSTFILES
!define MUI_FINISHPAGE_RUN "$INSTDIR\${Executable}" !define MUI_FINISHPAGE_RUN "$INSTDIR\${Executable}"
!insertmacro MUI_PAGE_FINISH !insertmacro MUI_PAGE_FINISH
!insertmacro MUI_UNPAGE_WELCOME !insertmacro MUI_UNPAGE_WELCOME
!insertmacro MUI_UNPAGE_CONFIRM !insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES !insertmacro MUI_UNPAGE_INSTFILES
!insertmacro MUI_UNPAGE_FINISH !insertmacro MUI_UNPAGE_FINISH
;-------------------------------- ;--------------------------------
;Languages ;Languages
!insertmacro MUI_LANGUAGE "English" ;first language is the default language !insertmacro MUI_LANGUAGE "English" ;first language is the default language
!insertmacro MUI_LANGUAGE "French" !insertmacro MUI_LANGUAGE "French"
!insertmacro MUI_LANGUAGE "German" !insertmacro MUI_LANGUAGE "German"
;!insertmacro MUI_LANGUAGE "Spanish" ;!insertmacro MUI_LANGUAGE "Spanish"
;-------------------------------- ;--------------------------------
;Reserve Files ;Reserve Files
;If you are using solid compression, files that are required before ;If you are using solid compression, files that are required before
;the actual installation should be stored first in the data block, ;the actual installation should be stored first in the data block,
;because this will make your installer start faster. ;because this will make your installer start faster.
!insertmacro MUI_RESERVEFILE_LANGDLL !insertmacro MUI_RESERVEFILE_LANGDLL
;-------------------------------- ;--------------------------------
;Descriptions ;Descriptions
;French ;French
LangString MSG_SUPPORT_URL_TITLE ${LANG_FRENCH} "Support" LangString MSG_SUPPORT_URL_TITLE ${LANG_FRENCH} "Support"
LangString MSG_SUPPORT_URL ${LANG_FRENCH} "http://app.ryzom.com/app_forum/index.php?page=topic/view/22047/1&post149889=fr#1" LangString MSG_SUPPORT_URL ${LANG_FRENCH} "http://app.ryzom.com/app_forum/index.php?page=topic/view/22047/1&post149889=fr#1"
LangString MSG_HOME_URL_TITLE ${LANG_FRENCH} "${Product} sur le Web" LangString MSG_HOME_URL_TITLE ${LANG_FRENCH} "${Product} sur le Web"
LangString MSG_HOME_URL ${LANG_FRENCH} "http://ryzom.fr" LangString MSG_HOME_URL ${LANG_FRENCH} "http://ryzom.fr"
LangString MSG_CONFIRM_DELETE_BACKUPS ${LANG_FRENCH} "Voulez-vous supprimer vos fichiers de sauvegarde ? Appuyer sur Oui pour effacer vos fichiers de sauvegarde." LangString MSG_CONFIRM_DELETE_BACKUPS ${LANG_FRENCH} "Voulez-vous supprimer vos fichiers de sauvegarde ? Appuyer sur Oui pour effacer vos fichiers de sauvegarde."
;English ;English
LangString MSG_SUPPORT_URL_TITLE ${LANG_ENGLISH} "Support" LangString MSG_SUPPORT_URL_TITLE ${LANG_ENGLISH} "Support"
LangString MSG_SUPPORT_URL ${LANG_ENGLISH} "http://app.ryzom.com/app_forum/index.php?page=topic/view/22047/1&post149889=en#1" LangString MSG_SUPPORT_URL ${LANG_ENGLISH} "http://app.ryzom.com/app_forum/index.php?page=topic/view/22047/1&post149889=en#1"
LangString MSG_HOME_URL_TITLE ${LANG_ENGLISH} "${Product} on the Web" LangString MSG_HOME_URL_TITLE ${LANG_ENGLISH} "${Product} on the Web"
LangString MSG_HOME_URL ${LANG_ENGLISH} "http://ryzom.com" LangString MSG_HOME_URL ${LANG_ENGLISH} "http://ryzom.com"
LangString MSG_CONFIRM_DELETE_BACKUPS ${LANG_ENGLISH} "Deleting Save Files? Click Yes to delete your own save files." LangString MSG_CONFIRM_DELETE_BACKUPS ${LANG_ENGLISH} "Deleting Save Files? Click Yes to delete your own save files."
;German ;German
LangString MSG_SUPPORT_URL_TITLE ${LANG_GERMAN} "Support" LangString MSG_SUPPORT_URL_TITLE ${LANG_GERMAN} "Support"
LangString MSG_SUPPORT_URL ${LANG_GERMAN} "http://app.ryzom.com/app_forum/index.php?page=topic/view/22047/1&post149889=de#1" LangString MSG_SUPPORT_URL ${LANG_GERMAN} "http://app.ryzom.com/app_forum/index.php?page=topic/view/22047/1&post149889=de#1"
LangString MSG_HOME_URL_TITLE ${LANG_GERMAN} "${Product} im Internet" LangString MSG_HOME_URL_TITLE ${LANG_GERMAN} "${Product} im Internet"
LangString MSG_HOME_URL ${LANG_GERMAN} "http://ryzom.de" LangString MSG_HOME_URL ${LANG_GERMAN} "http://ryzom.de"
LangString MSG_CONFIRM_DELETE_BACKUPS ${LANG_GERMAN} "Gespeicherte Dateien löschen? Klicke Ja um die eigenen Dateien zu löschen." LangString MSG_CONFIRM_DELETE_BACKUPS ${LANG_GERMAN} "Gespeicherte Dateien löschen? Klicke Ja um die eigenen Dateien zu löschen."
;-------------------------------- ;--------------------------------
;Installer Sections ;Installer Sections
!macro CreateInternetShortcut FILENAME URL ICONFILE !macro CreateInternetShortcut FILENAME URL ICONFILE
WriteINIStr "${FILENAME}.url" "InternetShortcut" "URL" "${URL}" WriteINIStr "${FILENAME}.url" "InternetShortcut" "URL" "${URL}"
WriteINIStr "${FILENAME}.url" "InternetShortcut" "IconFile" "${ICONFILE}" WriteINIStr "${FILENAME}.url" "InternetShortcut" "IconFile" "${ICONFILE}"
WriteINIStr "${FILENAME}.url" "InternetShortcut" "IconIndex" "0" WriteINIStr "${FILENAME}.url" "InternetShortcut" "IconIndex" "0"
!macroend !macroend
; ---------------------------------------- ; ----------------------------------------
; Default section ; Default section
Section Section
;Install for All Users ;Install for All Users
SetShellVarContext all SetShellVarContext all
;Game directories ;Game directories
SetOutPath "$INSTDIR\cfg" SetOutPath "$INSTDIR\cfg"
File /r "${SrcDir}\cfg\*.*" File /r "${SrcDir}\cfg\*.*"
SetOutPath "$INSTDIR\data" SetOutPath "$INSTDIR\data"
File /r "${SrcDir}\data\*.*" File /r "${SrcDir}\data\*.*"
SetOutPath "$INSTDIR\examples" SetOutPath "$INSTDIR\examples"
File /r "${SrcDir}\examples\*.*" File /r "${SrcDir}\examples\*.*"
SetOutPath "$INSTDIR\user" SetOutPath "$INSTDIR\user"
File /r "${SrcDir}\user\*.*" File /r "${SrcDir}\user\*.*"
SetOutPath "$INSTDIR" SetOutPath "$INSTDIR"
;Client, configuration and misc files ;Client, configuration and misc files
File "${SrcDir}\client_default.cfg" File "${SrcDir}\client_default.cfg"
File "${SrcDir}\${Executable}" File "${SrcDir}\${Executable}"
File "${SrcDir}\configure.bat" File "${SrcDir}\configure.bat"
File "${SrcDir}\d3dcompiler_43.dll" File "${SrcDir}\d3dcompiler_43.dll"
File "${SrcDir}\d3dx9_43.dll" File "${SrcDir}\d3dx9_43.dll"
File "${SrcDir}\fmod.dll" File "${SrcDir}\fmod.dll"
File "${SrcDir}\forum.url" File "${SrcDir}\forum.url"
File "${SrcDir}\launch.bat" File "${SrcDir}\launch.bat"
File "${SrcDir}\msvcp100.dll" File "${SrcDir}\msvcp100.dll"
File "${SrcDir}\msvcr100.dll" File "${SrcDir}\msvcr100.dll"
File "${SrcDir}\nel_drv_direct3d_win_r.dll" File "${SrcDir}\nel_drv_direct3d_win_r.dll"
File "${SrcDir}\nel_drv_fmod_win_r.dll" File "${SrcDir}\nel_drv_fmod_win_r.dll"
File "${SrcDir}\nel_drv_opengl_win_r.dll" File "${SrcDir}\nel_drv_opengl_win_r.dll"
File "${SrcDir}\ryzom.ico" File "${SrcDir}\ryzom.ico"
File "${SrcDir}\ryzom.url" File "${SrcDir}\ryzom.url"
File "${SrcDir}\Ryzom6.ico" File "${SrcDir}\Ryzom6.ico"
;Create uninstaller ;Create uninstaller
WriteUninstaller "$INSTDIR\Uninstall.exe" WriteUninstaller "$INSTDIR\Uninstall.exe"
!insertmacro MUI_STARTMENU_WRITE_BEGIN Application !insertmacro MUI_STARTMENU_WRITE_BEGIN Application
;Create shortcuts in Start Menu ;Create shortcuts in Start Menu
CreateDirectory "$SMPROGRAMS\$STARTMENU_FOLDER" CreateDirectory "$SMPROGRAMS\$STARTMENU_FOLDER"
CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Uninstall.lnk" "$INSTDIR\Uninstall.exe" CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Uninstall.lnk" "$INSTDIR\Uninstall.exe"
CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\${Product}.lnk" "$INSTDIR\${Executable}" CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\${Product}.lnk" "$INSTDIR\${Executable}"
;Create URLs ;Create URLs
!insertmacro CreateInternetShortcut "$SMPROGRAMS\$STARTMENU_FOLDER\$(MSG_SUPPORT_URL_TITLE)" "$(MSG_SUPPORT_URL)" "$INSTDIR\ryzom.ico" !insertmacro CreateInternetShortcut "$SMPROGRAMS\$STARTMENU_FOLDER\$(MSG_SUPPORT_URL_TITLE)" "$(MSG_SUPPORT_URL)" "$INSTDIR\ryzom.ico"
!insertmacro CreateInternetShortcut "$SMPROGRAMS\$STARTMENU_FOLDER\$(MSG_HOME_URL_TITLE)" "$(MSG_HOME_URL)" "$INSTDIR\ryzom.ico" !insertmacro CreateInternetShortcut "$SMPROGRAMS\$STARTMENU_FOLDER\$(MSG_HOME_URL_TITLE)" "$(MSG_HOME_URL)" "$INSTDIR\ryzom.ico"
!insertmacro MUI_STARTMENU_WRITE_END !insertmacro MUI_STARTMENU_WRITE_END
;Shortcut on desktop ;Shortcut on desktop
CreateShortCut "$DESKTOP\${Product}.lnk" "$INSTDIR\${Executable}" CreateShortCut "$DESKTOP\${Product}.lnk" "$INSTDIR\${Executable}"
;Add/Remove Program entry ;Add/Remove Program entry
WriteRegStr HKLM "${UninstallRegistryKey}" "DisplayIcon" "$INSTDIR\${Executable},0" WriteRegStr HKLM "${UninstallRegistryKey}" "DisplayIcon" "$INSTDIR\${Executable},0"
WriteRegStr HKLM "${UninstallRegistryKey}" "DisplayName" "${Product}" WriteRegStr HKLM "${UninstallRegistryKey}" "DisplayName" "${Product}"
WriteRegStr HKLM "${UninstallRegistryKey}" "DisplayVersion" "${Version}" WriteRegStr HKLM "${UninstallRegistryKey}" "DisplayVersion" "${Version}"
WriteRegStr HKLM "${UninstallRegistryKey}" "InstallLocation" "$INSTDIR" WriteRegStr HKLM "${UninstallRegistryKey}" "InstallLocation" "$INSTDIR"
WriteRegStr HKLM "${UninstallRegistryKey}" "QuietUninstallString" '"$INSTDIR\Uninstall.exe" /S' WriteRegStr HKLM "${UninstallRegistryKey}" "QuietUninstallString" '"$INSTDIR\Uninstall.exe" /S'
WriteRegStr HKLM "${UninstallRegistryKey}" "UninstallString" "$INSTDIR\Uninstall.exe" WriteRegStr HKLM "${UninstallRegistryKey}" "UninstallString" "$INSTDIR\Uninstall.exe"
WriteRegStr HKLM "${UninstallRegistryKey}" "Publisher" "${Company}" WriteRegStr HKLM "${UninstallRegistryKey}" "Publisher" "${Company}"
WriteRegStr HKLM "${UninstallRegistryKey}" "HelpLink" "$(MSG_SUPPORT_URL)" WriteRegStr HKLM "${UninstallRegistryKey}" "HelpLink" "$(MSG_SUPPORT_URL)"
WriteRegStr HKLM "${UninstallRegistryKey}" "URLInfoAbout" "$(MSG_HOME_URL)" WriteRegStr HKLM "${UninstallRegistryKey}" "URLInfoAbout" "$(MSG_HOME_URL)"
;Store installation folder ;Store installation folder
WriteRegStr "${RegistryCat}" "${RegistryKey}" "${Product} Install Path" $INSTDIR WriteRegStr "${RegistryCat}" "${RegistryKey}" "${Product} Install Path" $INSTDIR
SectionEnd SectionEnd
;-------------------------------- ;--------------------------------
;Uninstaller Section ;Uninstaller Section
Section "Uninstall" Section "Uninstall"
;Install for All Users ;Install for All Users
SetShellVarContext all SetShellVarContext all
;Game directories ;Game directories
RMDir /r "$INSTDIR\cfg" RMDir /r "$INSTDIR\cfg"
RMDir /r "$INSTDIR\data" RMDir /r "$INSTDIR\data"
RMDir /r "$INSTDIR\examples" RMDir /r "$INSTDIR\examples"
;Temporary directories ;Temporary directories
RMDir /r "$INSTDIR\cache" RMDir /r "$INSTDIR\cache"
RMDir /r "$INSTDIR\unpack" RMDir /r "$INSTDIR\unpack"
;Client, configuration and misc files ;Client, configuration and misc files
Delete "$INSTDIR\client_default.cfg" Delete "$INSTDIR\client_default.cfg"
Delete "$INSTDIR\${Executable}" Delete "$INSTDIR\${Executable}"
Delete "$INSTDIR\configure.bat" Delete "$INSTDIR\configure.bat"
Delete "$INSTDIR\d3dcompiler_43.dll" Delete "$INSTDIR\d3dcompiler_43.dll"
Delete "$INSTDIR\d3dx9_43.dll" Delete "$INSTDIR\d3dx9_43.dll"
Delete "$INSTDIR\fmod.dll" Delete "$INSTDIR\fmod.dll"
Delete "$INSTDIR\forum.url" Delete "$INSTDIR\forum.url"
Delete "$INSTDIR\launch.bat" Delete "$INSTDIR\launch.bat"
Delete "$INSTDIR\msvcp100.dll" Delete "$INSTDIR\msvcp100.dll"
Delete "$INSTDIR\msvcr100.dll" Delete "$INSTDIR\msvcr100.dll"
Delete "$INSTDIR\nel_drv_direct3d_win_r.dll" Delete "$INSTDIR\nel_drv_direct3d_win_r.dll"
Delete "$INSTDIR\nel_drv_fmod_win_r.dll" Delete "$INSTDIR\nel_drv_fmod_win_r.dll"
Delete "$INSTDIR\nel_drv_opengl_win_r.dll" Delete "$INSTDIR\nel_drv_opengl_win_r.dll"
Delete "$INSTDIR\ryzom.ico" Delete "$INSTDIR\ryzom.ico"
Delete "$INSTDIR\ryzom.url" Delete "$INSTDIR\ryzom.url"
Delete "$INSTDIR\Ryzom6.ico" Delete "$INSTDIR\Ryzom6.ico"
;Delete uninstaller ;Delete uninstaller
Delete "$INSTDIR\Uninstall.exe" Delete "$INSTDIR\Uninstall.exe"
MessageBox MB_YESNO "$(MSG_CONFIRM_DELETE_BACKUPS)" IDNO DontDeleteMiscFiles MessageBox MB_YESNO "$(MSG_CONFIRM_DELETE_BACKUPS)" IDNO DontDeleteMiscFiles
;Delete directory ;Delete directory
RMDir /r "$INSTDIR" RMDir /r "$INSTDIR"
DontDeleteMiscFiles: DontDeleteMiscFiles:
;Delete directory if empty ;Delete directory if empty
RMDir "$INSTDIR" RMDir "$INSTDIR"
;Delete all shortcuts ;Delete all shortcuts
!insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP !insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP
;Delete Start Menu shortcuts ;Delete Start Menu shortcuts
Delete "$SMPROGRAMS\$MUI_TEMP\Uninstall.lnk" Delete "$SMPROGRAMS\$MUI_TEMP\Uninstall.lnk"
Delete "$SMPROGRAMS\$MUI_TEMP\${Product}.lnk" Delete "$SMPROGRAMS\$MUI_TEMP\${Product}.lnk"
Delete "$SMPROGRAMS\$MUI_TEMP\$(MSG_HOME_URL_TITLE).url" Delete "$SMPROGRAMS\$MUI_TEMP\$(MSG_HOME_URL_TITLE).url"
Delete "$SMPROGRAMS\$MUI_TEMP\$(MSG_SUPPORT_URL_TITLE).url" Delete "$SMPROGRAMS\$MUI_TEMP\$(MSG_SUPPORT_URL_TITLE).url"
RMDir /r /REBOOTOK "$SMPROGRAMS\$MUI_TEMP" RMDir /r /REBOOTOK "$SMPROGRAMS\$MUI_TEMP"
;Delete desktop shortcut ;Delete desktop shortcut
Delete "$DESKTOP\${Product}.lnk" Delete "$DESKTOP\${Product}.lnk"
;Delete registry ;Delete registry
DeleteRegKey /ifempty "${RegistryCat}" "${RegistryKey}" DeleteRegKey /ifempty "${RegistryCat}" "${RegistryKey}"
DeleteRegKey "${RegistryCat}" "${UninstallRegistryKey}" DeleteRegKey "${RegistryCat}" "${UninstallRegistryKey}"
SectionEnd SectionEnd
;-------------------------------- ;--------------------------------
;Installer Functions ;Installer Functions
Function .onInit Function .onInit
!insertmacro MUI_LANGDLL_DISPLAY !insertmacro MUI_LANGDLL_DISPLAY
FunctionEnd FunctionEnd
;-------------------------------- ;--------------------------------
;Uninstaller Functions ;Uninstaller Functions
Function un.onInit Function un.onInit
!insertmacro MUI_UNGETLANGUAGE !insertmacro MUI_UNGETLANGUAGE
FunctionEnd FunctionEnd

@ -17,11 +17,11 @@ IF((WITH_INSTALL_LIBRARIES AND WITH_STATIC) OR NOT WITH_STATIC)
ENDIF() ENDIF()
IF(WITH_NEL_TOOLS) IF(WITH_NEL_TOOLS)
ADD_EXECUTABLE(nellzma ${CMAKE_CURRENT_SOURCE_DIR}/LzmaUtil.c) ADD_EXECUTABLE(lzma ${CMAKE_CURRENT_SOURCE_DIR}/LzmaUtil.c)
TARGET_LINK_LIBRARIES(nellzma nel_sevenzip) TARGET_LINK_LIBRARIES(lzma nel_sevenzip)
NL_DEFAULT_PROPS(nellzma "NeL, 3rd Party: LZMA") NL_DEFAULT_PROPS(lzma "NeL, 3rd Party: LZMA")
NL_ADD_RUNTIME_FLAGS(nellzma) NL_ADD_RUNTIME_FLAGS(lzma)
INSTALL(TARGETS nellzma RUNTIME DESTINATION ${NL_BIN_PREFIX} COMPONENT tools) INSTALL(TARGETS lzma RUNTIME DESTINATION ${NL_BIN_PREFIX} COMPONENT tools)
ENDIF() ENDIF()

@ -134,6 +134,16 @@ namespace NLGUI
void setTexturePushed(const std::string &l, const std::string &m, const std::string &r); void setTexturePushed(const std::string &l, const std::string &m, const std::string &r);
void setTextureOver(const std::string &l, const std::string &m, const std::string &r); void setTextureOver(const std::string &l, const std::string &m, const std::string &r);
// lua
void setTextureLua (const std::string &name);
void setTexturePushedLua (const std::string &name);
void setTextureOverLua (const std::string &name);
// return texture _l.tga
std::string getTexture () const;
std::string getTexturePushed () const;
std::string getTextureOver() const;
int luaGetViewText(CLuaState &ls); int luaGetViewText(CLuaState &ls);
REFLECT_EXPORT_START(CCtrlTextButton, CCtrlBaseButton) REFLECT_EXPORT_START(CCtrlTextButton, CCtrlBaseButton)
@ -148,6 +158,9 @@ namespace NLGUI
REFLECT_SINT32("wmin", getWMin, setWMin) REFLECT_SINT32("wmin", getWMin, setWMin)
REFLECT_SINT32("hmin", getHMin, setHMin) REFLECT_SINT32("hmin", getHMin, setHMin)
REFLECT_LUA_METHOD("getViewText", luaGetViewText) REFLECT_LUA_METHOD("getViewText", luaGetViewText)
REFLECT_STRING("texture", getTexture, setTextureLua);
REFLECT_STRING("texture_pushed", getTexturePushed, setTexturePushedLua);
REFLECT_STRING("texture_over", getTextureOver, setTextureOverLua);
REFLECT_EXPORT_END REFLECT_EXPORT_END
void onRemoved(); void onRemoved();

@ -85,10 +85,7 @@ namespace NLGUI
/// Language code of the browser( e.g.: en, hu ) /// Language code of the browser( e.g.: en, hu )
std::string languageCode; std::string languageCode;
/// List of domains the widget can consider secure. /// List of domains the widget can consider secure.
std::vector<std::string> trustedDomains; std::vector< std::string > trustedDomains;
/// Web server
std::string webServer;
std::string webServerDomain;
/// Maximum concurrent MultiCurl connections per CGroupHTML instance /// Maximum concurrent MultiCurl connections per CGroupHTML instance
sint32 curlMaxConnections; sint32 curlMaxConnections;

@ -188,10 +188,6 @@ namespace NLGUI
// Hide a line. // Hide a line.
void setHiddenLine(uint line, bool h); void setHiddenLine(uint line, bool h);
// Highlight single line
void setSelected(uint line) { _Selected = line < _Lines.size() ? line : -1; }
void clearSelected() { _Selected = -1; }
// Max Visible Line (-1 == no limit) // Max Visible Line (-1 == no limit)
void setMaxVisibleLine(sint32 mvl); void setMaxVisibleLine(sint32 mvl);
sint32 getMaxVisibleLine() { return _MaxVisibleLine; } sint32 getMaxVisibleLine() { return _MaxVisibleLine; }
@ -284,13 +280,10 @@ namespace NLGUI
std::vector<CGroupSubMenu*> _SubMenus; std::vector<CGroupSubMenu*> _SubMenus;
CGroupMenu *_GroupMenu; // Master parent CGroupMenu *_GroupMenu; // Master parent
sint32 _MouseOver;
sint32 _Selected; sint32 _Selected;
sint32 _MaxVisibleLine; // -1 == no limit sint32 _MaxVisibleLine; // -1 == no limit
bool _ScrollToView;
friend class CGroupMenu; friend class CGroupMenu;
private: private:
/** Clone this menu, and set its new father /** Clone this menu, and set its new father
@ -378,10 +371,6 @@ namespace NLGUI
// Gray a line on the RootMenu // Gray a line on the RootMenu
void setGrayedLine(uint line, bool g); void setGrayedLine(uint line, bool g);
// Highlight single line
void setSelected(uint line) { if (_RootMenu) _RootMenu->setSelected(line); }
void clearSelected() { if(_RootMenu) _RootMenu->clearSelected(); }
CGroupSubMenu *getRootMenu() const { return _RootMenu; } CGroupSubMenu *getRootMenu() const { return _RootMenu; }
// Max Visible Line (-1 == no limit) // Max Visible Line (-1 == no limit)

@ -3,7 +3,7 @@
// //
// This source file has been modified by the following contributors: // This source file has been modified by the following contributors:
// Copyright (C) 2013-2014 Laszlo KIS-ADAM (dfighter) <dfighter1985@gmail.com> // Copyright (C) 2013-2014 Laszlo KIS-ADAM (dfighter) <dfighter1985@gmail.com>
// Copyright (C) 2019-2020 Jan BOON (Kaetemi) <jan.boon@kaetemi.be> // Copyright (C) 2019 Jan BOON (Kaetemi) <jan.boon@kaetemi.be>
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as // it under the terms of the GNU Affero General Public License as
@ -383,6 +383,7 @@ namespace NLGUI
void dummySet(const std::string &value); void dummySet(const std::string &value);
public: public:
// export some properties // export some properties
REFLECT_EXPORT_START(CInterfaceElement, CReflectable) REFLECT_EXPORT_START(CInterfaceElement, CReflectable)
REFLECT_BOOL ("active", getActive, setActive); REFLECT_BOOL ("active", getActive, setActive);
@ -397,7 +398,6 @@ namespace NLGUI
REFLECT_SINT32 ("h_real", getHReal, dummySet); REFLECT_SINT32 ("h_real", getHReal, dummySet);
REFLECT_STRING ("id", getIdByValue, dummySet); REFLECT_STRING ("id", getIdByValue, dummySet);
REFLECT_STRING ("sizeref", getSizeRefAsString, setSizeRef); REFLECT_STRING ("sizeref", getSizeRefAsString, setSizeRef);
REFLECT_STRING ("posparent", getPosParent, setPosParent);
REFLECT_LUA_METHOD("updateCoords", luaUpdateCoords); REFLECT_LUA_METHOD("updateCoords", luaUpdateCoords);
REFLECT_LUA_METHOD("invalidateCoords", luaInvalidateCoords); REFLECT_LUA_METHOD("invalidateCoords", luaInvalidateCoords);
REFLECT_LUA_METHOD("invalidateContent", luaInvalidateContent); REFLECT_LUA_METHOD("invalidateContent", luaInvalidateContent);
@ -524,8 +524,6 @@ namespace NLGUI
void parseSizeParent( const std::string &id ); void parseSizeParent( const std::string &id );
void setSizeParent( const std::string &id ); void setSizeParent( const std::string &id );
void getSizeParent( std::string &id ) const; void getSizeParent( std::string &id ) const;
std::string getPosParent() const;
void setSerializable( bool b ){ serializable = b; } void setSerializable( bool b ){ serializable = b; }
bool IsSerializable() const{ return serializable; } bool IsSerializable() const{ return serializable; }

@ -118,8 +118,6 @@ namespace NLGUI
// Force only a subset of letter to be displayed. Default is 0/0xFFFFFFFF // Force only a subset of letter to be displayed. Default is 0/0xFFFFFFFF
void enableStringSelection(uint start, uint end); void enableStringSelection(uint start, uint end);
void disableStringSelection(); void disableStringSelection();
void setShadowInSelection(bool s) { m_DisableShadowInSelection = !s; }
bool getShadowInSelection() const { return !m_DisableShadowInSelection; }
/// Get displayed text /// Get displayed text
std::string getText() const { return _Text; } std::string getText() const { return _Text; }
@ -285,8 +283,10 @@ namespace NLGUI
bool _FontSizeCoef; bool _FontSizeCoef;
bool _Embolden; bool _Embolden;
bool _Oblique; bool _Oblique;
// width of the font in pixel. Just a Hint for tabing format (computed with '_') // width of the font in pixel.
float _FontWidth; float _FontWidth;
// width of tabs
float _TabWidth;
// strings to use when computing font size // strings to use when computing font size
std::string _FontSizingChars; std::string _FontSizingChars;
std::string _FontSizingFallback; std::string _FontSizingFallback;
@ -451,7 +451,6 @@ namespace NLGUI
bool _StrikeThrough : 1; bool _StrikeThrough : 1;
bool _ContinuousUpdate : 1; bool _ContinuousUpdate : 1;
bool _Setuped : 1; bool _Setuped : 1;
bool m_DisableShadowInSelection : 1;
uint _TextSelectionStart; uint _TextSelectionStart;
uint _TextSelectionEnd; uint _TextSelectionEnd;

@ -654,8 +654,6 @@ namespace NLGUI
bool _GroupSelection; bool _GroupSelection;
bool multiSelection; bool multiSelection;
uint32 _WidgetCount; uint32 _WidgetCount;
std::set<std::string> m_LoggedMissingElement;
}; };
} }

@ -3,7 +3,6 @@
// //
// This source file has been modified by the following contributors: // This source file has been modified by the following contributors:
// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter) <dfighter1985@gmail.com> // Copyright (C) 2013 Laszlo KIS-ADAM (dfighter) <dfighter1985@gmail.com>
// Copyright (C) 2014 Jan BOON (Kaetemi) <jan.boon@kaetemi.be>
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as // it under the terms of the GNU Affero General Public License as
@ -68,7 +67,7 @@ public:
S17, S18, S19, S20, S21, S22, S23, S24, S25, S26, S27, S28, S29, S30, S31, S32, S17, S18, S19, S20, S21, S22, S23, S24, S25, S26, S27, S28, S29, S30, S31, S32,
S33, S34, S35, S36, S37, S38, S39, S40, S41, S42, S43, S44, S45, S46, S47, S48, S33, S34, S35, S36, S37, S38, S39, S40, S41, S42, S43, S44, S45, S46, S47, S48,
S49, S50, S51, S52, S53, S54, S55, S56, S57, S58, S59, S60, S61, S62, S63, S64, S49, S50, S51, S52, S53, S54, S55, S56, S57, S58, S59, S60, S61, S62, S63, S64,
TEXT, PACKED, Nb_Prop_Type TEXT, Nb_Prop_Type
}; };

@ -3,7 +3,6 @@
// //
// This source file has been modified by the following contributors: // This source file has been modified by the following contributors:
// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter) <dfighter1985@gmail.com> // Copyright (C) 2013 Laszlo KIS-ADAM (dfighter) <dfighter1985@gmail.com>
// Copyright (C) 2014 Jan BOON (Kaetemi) <jan.boon@kaetemi.be>
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as // it under the terms of the GNU Affero General Public License as

@ -380,7 +380,7 @@ extern bool _assertex_stop_1(bool &ignoreNextTime);
#define nlassume(exp) do { } while (0) #define nlassume(exp) do { } while (0)
#endif #endif
#ifdef NL_NO_DEBUG #ifdef NL_NO_ASSERT
# define nlassert(exp) nlassume(exp) # define nlassert(exp) nlassume(exp)
# define nlassertonce(exp) nlassume(exp) # define nlassertonce(exp) nlassume(exp)
# define nlassertex(exp, str) nlassume(exp) # define nlassertex(exp, str) nlassume(exp)

@ -25,7 +25,6 @@
#include "debug.h" #include "debug.h"
#include "common.h" #include "common.h"
#include "stream.h" #include "stream.h"
#include "wang_hash.h"
namespace NLMISC { namespace NLMISC {
@ -578,7 +577,6 @@ public:
};*/ };*/
// Traits for hash_map using CEntityId // Traits for hash_map using CEntityId
#if 0
struct CEntityIdHashMapTraits struct CEntityIdHashMapTraits
{ {
enum { bucket_size = 4, min_buckets = 8 }; enum { bucket_size = 4, min_buckets = 8 };
@ -598,27 +596,7 @@ struct CEntityIdHashMapTraits
return id1.getShortId() < id2.getShortId(); return id1.getShortId() < id2.getShortId();
} }
}; };
#else
struct CEntityIdHashMapTraits
{
enum { bucket_size = 4, min_buckets = 8 };
CEntityIdHashMapTraits() { }
size_t operator() (const NLMISC::CEntityId &id ) const
{
uint64 hash64 = id.getUniqueId();
if (sizeof(size_t) == 8)
{
return (size_t)NLMISC::wangHash64(hash64);
}
else
{
uint32 hash32a = NLMISC::wangHash((uint32)(hash64 & 0xFFFFFFFF));
uint32 hash32b = NLMISC::wangHash((uint32)(hash64 >> 32));
return hash32a ^ hash32b;
}
}
};
#endif
/*inline std::stringstream &operator << (std::stringstream &__os, const CEntityId &__t) /*inline std::stringstream &operator << (std::stringstream &__os, const CEntityId &__t)
{ {

@ -71,8 +71,11 @@ public:
*/ */
void registerClass(const KeyType &key, IFactoryRegister<BaseClass> *factoryRegister) void registerClass(const KeyType &key, IFactoryRegister<BaseClass> *factoryRegister)
{ {
nlassert(_FactoryRegisters.find(key) == _FactoryRegisters.end()); // TODO: Removed assert because of crash of fes in 2019. We need found why... (ulukyn)
_FactoryRegisters.insert(std::make_pair(key, factoryRegister)); //nlassert(_FactoryRegisters.find(key) == _FactoryRegisters.end());
//_FactoryRegisters.insert(std::make_pair(key, factoryRegister));
if (_FactoryRegisters.find(key) == _FactoryRegisters.end())
_FactoryRegisters.insert(std::make_pair(key, factoryRegister));
} }
/** Create a new instance of a factorable object. /** Create a new instance of a factorable object.

@ -257,12 +257,7 @@ public:
# endif // NL_DEBUG # endif // NL_DEBUG
# endif // NL_NO_ASM # endif // NL_NO_ASM
#elif defined(NL_OS_MAC) #elif defined(NL_OS_MAC)
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
// warning: 'OSAtomicCompareAndSwap32' is deprecated: first deprecated in macOS 10.12 -
// Use std::atomic_compare_exchange_strong_explicit(std::memory_order_relaxed) from <atomic> instead
return OSAtomicCompareAndSwap32(0, 1, reinterpret_cast<volatile sint32 *>(lockPtr)); return OSAtomicCompareAndSwap32(0, 1, reinterpret_cast<volatile sint32 *>(lockPtr));
#pragma clang diagnostic pop
#elif defined(NL_OS_UNIX) #elif defined(NL_OS_UNIX)
// GCC implements the same functionality using a builtin function // GCC implements the same functionality using a builtin function
// http://gcc.gnu.org/onlinedocs/gcc/Atomic-Builtins.html // http://gcc.gnu.org/onlinedocs/gcc/Atomic-Builtins.html

@ -274,7 +274,7 @@
//#define NL_NO_DEBUG //#define NL_NO_DEBUG
#undef NL_NO_DEBUG #undef NL_NO_DEBUG
#define NL_NO_ASSERT
// Standard types // Standard types

@ -20,6 +20,8 @@
#ifndef NL_UCSTRING_H #ifndef NL_UCSTRING_H
#define NL_UCSTRING_H #define NL_UCSTRING_H
#define RYZOM_LUA_UCSTRING
#include "types_nl.h" #include "types_nl.h"
#include "debug.h" #include "debug.h"

@ -72,3 +72,4 @@
#endif // XML_MACROS_H #endif // XML_MACROS_H

@ -1,9 +1,6 @@
// NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> // NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
// Copyright (C) 2010 Winch Gate Property Limited // Copyright (C) 2010 Winch Gate Property Limited
// //
// This source file has been modified by the following contributors:
// Copyright (C) 2020 Jan BOON (Kaetemi) <jan.boon@kaetemi.be>
//
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as // it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the // published by the Free Software Foundation, either version 3 of the
@ -95,11 +92,6 @@ public:
/// exchange memory data /// exchange memory data
void swap(CMessage &other); void swap(CMessage &other);
#ifdef NL_CPP14
/// Move operator
CMessage &operator=(CMessage &&other) noexcept { swap(other); return *this; }
#endif
/// Sets the message type as a string and put it in the buffer if we are in writing mode /// Sets the message type as a string and put it in the buffer if we are in writing mode
void setType (const std::string &name, TMessageType type=OneWay); void setType (const std::string &name, TMessageType type=OneWay);

@ -42,7 +42,7 @@
// Current version is 2, Ryzom Live uses 1 // Current version is 2, Ryzom Live uses 1
// Provided to allow compatibility with old binary files // Provided to allow compatibility with old binary files
#define NLSOUND_SHEET_VERSION_BUILT 2 #define NLSOUND_SHEET_VERSION_BUILT 1
namespace NLLIGO { namespace NLLIGO {
class CLigoConfig; class CLigoConfig;

@ -127,12 +127,6 @@ public:
/// Return driver name from type. /// Return driver name from type.
static const char *getDriverName(TDriver driverType); static const char *getDriverName(TDriver driverType);
/// Return driver dll filename, empty if unsupported driver
static std::string getDriverFileName(TDriver driverType);
/** Return possibly available drivers for current platform.
* If no drivers are available, return empty list.
*/
static std::vector<ISoundDriver::TDriver> getAvailableDrivers();
/** The static method which builds the sound driver instance /** The static method which builds the sound driver instance
* In case of failure, can throw one of these ESoundDriver exception objects: * In case of failure, can throw one of these ESoundDriver exception objects:
* ESoundDriverNotFound, ESoundDriverCorrupted, ESoundDriverOldVersion, ESoundDriverUnknownVersion * ESoundDriverNotFound, ESoundDriverCorrupted, ESoundDriverOldVersion, ESoundDriverUnknownVersion
@ -210,6 +204,7 @@ public:
private: private:
std::string _DllName; std::string _DllName;
}; };

@ -90,13 +90,6 @@ public:
NumDrivers NumDrivers
}; };
struct TDriverInfo
{
TDriver ID;
const char *Name;
TDriverInfo(TDriver id, const char *name) : ID(id), Name(name)
{}
};
/** Structure that contain the background flags.*/ /** Structure that contain the background flags.*/
struct TBackgroundFlags struct TBackgroundFlags
@ -169,10 +162,7 @@ public:
/// I forgot what this does, but it's fairly important. /// I forgot what this does, but it's fairly important.
bool AutoLoadSample; bool AutoLoadSample;
}; };
/// Return list of available sound drivers
static std::vector<TDriverInfo> getDrivers();
//@{ //@{
//@name Init methods //@name Init methods
/// Create the audio mixer singleton and return a pointer to its instance /// Create the audio mixer singleton and return a pointer to its instance
@ -222,7 +212,7 @@ public:
* \param forceSoftware: to force the driver to load in software buffer, not hardware * \param forceSoftware: to force the driver to load in software buffer, not hardware
*/ */
virtual void init(uint maxTrack = 32, bool useEax = true, bool useADPCM = true, NLMISC::IProgressCallback *progressCallBack = NULL, bool autoLoadSample = false, TDriver driverType = DriverAuto, bool forceSoftware = false, bool manualRolloff = true) = 0; virtual void init(uint maxTrack = 32, bool useEax = true, bool useADPCM = true, NLMISC::IProgressCallback *progressCallBack = NULL, bool autoLoadSample = false, TDriver driverType = DriverAuto, bool forceSoftware = false, bool manualRolloff = true) = 0;
/// Initialize the NeL Sound Driver with given driverName. /// Initialize the NeL Sound Driver with given driverName.
virtual void initDriver(const std::string &driverName) = 0; virtual void initDriver(const std::string &driverName) = 0;
/// Get the available devices on the loaded driver. /// Get the available devices on the loaded driver.

@ -2,7 +2,7 @@ FILE(GLOB SRC *.cpp *.h)
ADD_EXECUTABLE(nl_sample_cegui WIN32 ${SRC}) ADD_EXECUTABLE(nl_sample_cegui WIN32 ${SRC})
TARGET_COMPILE_DEFINITIONS(nl_sample_cegui PRIVATE "CEGUI_DATA_DIR=\"${NL_SHARE_ABSOLUTE_PREFIX}/nl_sample_cegui/datafiles/\"") ADD_DEFINITIONS(-DCEGUI_DATA_DIR="\\"${NL_SHARE_ABSOLUTE_PREFIX}/nl_sample_cegui/datafiles/\\"")
INCLUDE_DIRECTORIES(${CEGUI_INCLUDE_DIRS}) INCLUDE_DIRECTORIES(${CEGUI_INCLUDE_DIRS})

@ -2,7 +2,7 @@ FILE(GLOB SRC *.cpp)
ADD_EXECUTABLE(nl_sample_clusterview WIN32 ${SRC}) ADD_EXECUTABLE(nl_sample_clusterview WIN32 ${SRC})
TARGET_COMPILE_DEFINITIONS(nl_sample_clusterview PRIVATE "CV_DIR=\"${NL_SHARE_ABSOLUTE_PREFIX}/nl_sample_clusterview/\"") ADD_DEFINITIONS(-DCV_DIR="\\"${NL_SHARE_ABSOLUTE_PREFIX}/nl_sample_clusterview/\\"")
TARGET_LINK_LIBRARIES(nl_sample_clusterview nelmisc nel3d) TARGET_LINK_LIBRARIES(nl_sample_clusterview nelmisc nel3d)
NL_ADD_RUNTIME_FLAGS(nl_sample_clusterview) NL_ADD_RUNTIME_FLAGS(nl_sample_clusterview)

@ -2,7 +2,7 @@ FILE(GLOB SRC *.cpp)
ADD_EXECUTABLE(nl_sample_font WIN32 ${SRC}) ADD_EXECUTABLE(nl_sample_font WIN32 ${SRC})
TARGET_COMPILE_DEFINITIONS(nl_sample_font PRIVATE "FONT_DIR=\"${NL_SHARE_ABSOLUTE_PREFIX}/nl_sample_font/\"") ADD_DEFINITIONS(-DFONT_DIR="\\"${NL_SHARE_ABSOLUTE_PREFIX}/nl_sample_font/\\"")
# TODO: hunter TARGET_LINK_LIBRARIES(nl_sample_font PRIVATE nelmisc nel3d) # TODO: hunter TARGET_LINK_LIBRARIES(nl_sample_font PRIVATE nelmisc nel3d)
TARGET_LINK_LIBRARIES(nl_sample_font nelmisc nel3d) TARGET_LINK_LIBRARIES(nl_sample_font nelmisc nel3d)

@ -2,7 +2,7 @@ FILE(GLOB SRC *.cpp)
ADD_EXECUTABLE(nl_sample_font_perf ${SRC}) ADD_EXECUTABLE(nl_sample_font_perf ${SRC})
TARGET_COMPILE_DEFINITIONS(nl_sample_font_perf PRIVATE "FONT_DIR=\"${NL_SHARE_ABSOLUTE_PREFIX}/nl_sample_font_perf/\"") ADD_DEFINITIONS(-DFONT_DIR="\\"${NL_SHARE_ABSOLUTE_PREFIX}/nl_sample_font_perf/\\"")
TARGET_LINK_LIBRARIES(nl_sample_font_perf nelmisc nel3d) TARGET_LINK_LIBRARIES(nl_sample_font_perf nelmisc nel3d)
NL_DEFAULT_PROPS(nl_sample_font_perf "NeL, Samples, 3D: Font Performance Test") NL_DEFAULT_PROPS(nl_sample_font_perf "NeL, Samples, 3D: Font Performance Test")

@ -2,7 +2,7 @@ FILE(GLOB SRC *.cpp)
ADD_EXECUTABLE(nl_sample_georges ${SRC}) ADD_EXECUTABLE(nl_sample_georges ${SRC})
TARGET_COMPILE_DEFINITIONS(nl_sample_georges PRIVATE "GF_DIR=\"${NL_SHARE_ABSOLUTE_PREFIX}/nl_sample_georges/\"") ADD_DEFINITIONS(-DGF_DIR="\\"${NL_SHARE_ABSOLUTE_PREFIX}/nl_sample_georges/\\"")
TARGET_LINK_LIBRARIES(nl_sample_georges nelgeorges nelmisc) TARGET_LINK_LIBRARIES(nl_sample_georges nelgeorges nelmisc)
NL_DEFAULT_PROPS(nl_sample_georges "NeL, Samples: Georges") NL_DEFAULT_PROPS(nl_sample_georges "NeL, Samples: Georges")

@ -2,7 +2,7 @@ FILE(GLOB SRC *.cpp)
ADD_EXECUTABLE(nl_sample_configfile ${SRC}) ADD_EXECUTABLE(nl_sample_configfile ${SRC})
TARGET_COMPILE_DEFINITIONS(nl_sample_configfile PRIVATE "NL_SAMPLE_CFG=\"${NL_SHARE_ABSOLUTE_PREFIX}/nl_sample_configfile/\"") ADD_DEFINITIONS(-DNL_SAMPLE_CFG="\\"${NL_SHARE_ABSOLUTE_PREFIX}/nl_sample_configfile/\\"")
TARGET_LINK_LIBRARIES(nl_sample_configfile nelmisc) TARGET_LINK_LIBRARIES(nl_sample_configfile nelmisc)
NL_DEFAULT_PROPS(nl_sample_configfile "NeL, Samples, Misc: Config Files") NL_DEFAULT_PROPS(nl_sample_configfile "NeL, Samples, Misc: Config Files")

@ -2,7 +2,7 @@ FILE(GLOB SRC *.cpp)
ADD_EXECUTABLE(nl_sample_i18n ${SRC}) ADD_EXECUTABLE(nl_sample_i18n ${SRC})
TARGET_COMPILE_DEFINITIONS(nl_sample_i18n PRIVATE "NL_LANG_DATA=\"${NL_SHARE_ABSOLUTE_PREFIX}/nl_sample_i18n/\"") ADD_DEFINITIONS(-DNL_LANG_DATA="\\"${NL_SHARE_ABSOLUTE_PREFIX}/nl_sample_i18n/\\"")
TARGET_LINK_LIBRARIES(nl_sample_i18n nelmisc) TARGET_LINK_LIBRARIES(nl_sample_i18n nelmisc)
NL_DEFAULT_PROPS(nl_sample_i18n "NeL, Samples, Misc: I18N") NL_DEFAULT_PROPS(nl_sample_i18n "NeL, Samples, Misc: I18N")

@ -2,9 +2,7 @@ ADD_EXECUTABLE(nl_sample_chatclient client.cpp kbhit.cpp kbhit.h)
ADD_EXECUTABLE(nl_sample_chatserver WIN32 server.cpp) ADD_EXECUTABLE(nl_sample_chatserver WIN32 server.cpp)
SET(CHAT_DIR "CHAT_DIR=\"${NL_SHARE_ABSOLUTE_PREFIX}/nl_sample_chat/\"") ADD_DEFINITIONS(-DCHAT_DIR="\\"${NL_SHARE_ABSOLUTE_PREFIX}/nl_sample_chat/\\"")
TARGET_COMPILE_DEFINITIONS(nl_sample_chatclient PRIVATE ${CHAT_DIR})
TARGET_COMPILE_DEFINITIONS(nl_sample_chatserver PRIVATE ${CHAT_DIR})
TARGET_LINK_LIBRARIES(nl_sample_chatclient nelmisc nelnet) TARGET_LINK_LIBRARIES(nl_sample_chatclient nelmisc nelnet)
NL_DEFAULT_PROPS(nl_sample_chatclient "NeL, Samples, Net, Chat: Chat Client") NL_DEFAULT_PROPS(nl_sample_chatclient "NeL, Samples, Net, Chat: Chat Client")

@ -2,9 +2,7 @@ ADD_EXECUTABLE(nl_sample_ct_ai_service WIN32 ai_service.cpp)
ADD_EXECUTABLE(nl_sample_ct_gd_service WIN32 gd_service.cpp) ADD_EXECUTABLE(nl_sample_ct_gd_service WIN32 gd_service.cpp)
SET(NL_CT_CFG "NL_CT_CFG=\"${NL_SHARE_ABSOLUTE_PREFIX}/nl_sample_class_transport/\"") ADD_DEFINITIONS(-DNL_CT_CFG="\\"${NL_SHARE_ABSOLUTE_PREFIX}/nl_sample_class_transport/\\"")
TARGET_COMPILE_DEFINITIONS(nl_sample_ct_ai_service PRIVATE ${NL_CT_CFG})
TARGET_COMPILE_DEFINITIONS(nl_sample_ct_gd_service PRIVATE ${NL_CT_CFG})
TARGET_LINK_LIBRARIES(nl_sample_ct_ai_service nelmisc nelnet) TARGET_LINK_LIBRARIES(nl_sample_ct_ai_service nelmisc nelnet)
NL_DEFAULT_PROPS(nl_sample_ct_ai_service "NeL, Samples, Net, Class Transport: AI Service") NL_DEFAULT_PROPS(nl_sample_ct_ai_service "NeL, Samples, Net, Class Transport: AI Service")

@ -2,9 +2,7 @@ ADD_EXECUTABLE(nl_sample_ls_client client.cpp)
ADD_EXECUTABLE(nl_sample_ls_fes WIN32 frontend_service.cpp) ADD_EXECUTABLE(nl_sample_ls_fes WIN32 frontend_service.cpp)
SET(NL_LS_CFG "NL_LS_CFG=\"${NL_SHARE_ABSOLUTE_PREFIX}/nl_sample_login_system/\"") ADD_DEFINITIONS(-DNL_LS_CFG="\\"${NL_SHARE_ABSOLUTE_PREFIX}/nl_sample_login_system/\\"")
TARGET_COMPILE_DEFINITIONS(nl_sample_ls_client PRIVATE ${NL_LS_CFG})
TARGET_COMPILE_DEFINITIONS(nl_sample_ls_fes PRIVATE ${NL_LS_CFG})
TARGET_LINK_LIBRARIES(nl_sample_ls_client nelmisc nelnet) TARGET_LINK_LIBRARIES(nl_sample_ls_client nelmisc nelnet)
NL_DEFAULT_PROPS(nl_sample_ls_client "NeL, Samples, Net, Login Service: LS Client") NL_DEFAULT_PROPS(nl_sample_ls_client "NeL, Samples, Net, Login Service: LS Client")

@ -4,18 +4,14 @@ ADD_EXECUTABLE(nl_sample_udpclient client.cpp graph.cpp graph.h simlag.cpp simla
ADD_EXECUTABLE(nl_sample_udpserver WIN32 bench_service.cpp receive_task.cpp receive_task.h) ADD_EXECUTABLE(nl_sample_udpserver WIN32 bench_service.cpp receive_task.cpp receive_task.h)
SET(UDP_DIR "UDP_DIR=\"${NL_SHARE_ABSOLUTE_PREFIX}/nl_sample_udp/\"") ADD_DEFINITIONS(-DUDP_DIR="\\"${NL_SHARE_ABSOLUTE_PREFIX}/nl_sample_udp/\\"")
TARGET_COMPILE_DEFINITIONS(nl_sample_udpclient PRIVATE ${UDP_DIR})
TARGET_COMPILE_DEFINITIONS(nl_sample_udpserver PRIVATE ${UDP_DIR})
TARGET_LINK_LIBRARIES(nl_sample_udpclient nelmisc nelnet)
TARGET_LINK_LIBRARIES(nl_sample_udpserver nelmisc nelnet)
IF(WITH_3D) IF(WITH_3D)
ADD_DEFINITIONS(-DUSE_3D) ADD_DEFINITIONS(-DUSE_3D)
TARGET_LINK_LIBRARIES(nl_sample_udpclient nel3d)
ENDIF() ENDIF()
TARGET_LINK_LIBRARIES(nl_sample_udpclient nelmisc nelnet nel3d)
TARGET_LINK_LIBRARIES(nl_sample_udpserver nelmisc nelnet)
NL_DEFAULT_PROPS(nl_sample_udpclient "NeL, Samples, Net, UDP: UDP Client") NL_DEFAULT_PROPS(nl_sample_udpclient "NeL, Samples, Net, UDP: UDP Client")
NL_DEFAULT_PROPS(nl_sample_udpserver "NeL, Samples, Net, UDP: UDP Server") NL_DEFAULT_PROPS(nl_sample_udpserver "NeL, Samples, Net, UDP: UDP Server")
NL_ADD_RUNTIME_FLAGS(nl_sample_udpclient) NL_ADD_RUNTIME_FLAGS(nl_sample_udpclient)

@ -2,7 +2,7 @@ FILE(GLOB SRC *.cpp *.h)
ADD_EXECUTABLE(nl_sample_pacs WIN32 ${SRC}) ADD_EXECUTABLE(nl_sample_pacs WIN32 ${SRC})
TARGET_COMPILE_DEFINITIONS(nl_sample_pacs PRIVATE "NL_PACS_DATA=\"${NL_SHARE_ABSOLUTE_PREFIX}/nl_sample_pacs/\"") ADD_DEFINITIONS(-DNL_PACS_DATA="\\"${NL_SHARE_ABSOLUTE_PREFIX}/nl_sample_pacs/\\"")
TARGET_LINK_LIBRARIES(nl_sample_pacs nelmisc nelpacs nel3d) TARGET_LINK_LIBRARIES(nl_sample_pacs nelmisc nelpacs nel3d)
NL_DEFAULT_PROPS(nl_sample_pacs "NeL, Samples: PACS") NL_DEFAULT_PROPS(nl_sample_pacs "NeL, Samples: PACS")

@ -2,7 +2,7 @@ FILE(GLOB SRC *.cpp *.h)
ADD_EXECUTABLE(nl_sample_sound_sources ${SRC}) ADD_EXECUTABLE(nl_sample_sound_sources ${SRC})
TARGET_COMPILE_DEFINITIONS(nl_sample_sound_sources PRIVATE "NL_SOUND_DATA=\"${NL_SHARE_ABSOLUTE_PREFIX}/nl_sample_sound/\"") ADD_DEFINITIONS(-DNL_SOUND_DATA="\\"${NL_SHARE_ABSOLUTE_PREFIX}/nl_sample_sound/\\"")
TARGET_LINK_LIBRARIES(nl_sample_sound_sources nelmisc nelsound) TARGET_LINK_LIBRARIES(nl_sample_sound_sources nelmisc nelsound)
NL_DEFAULT_PROPS(nl_sample_sound_sources "NeL, Samples: Sound: Sound Sources") NL_DEFAULT_PROPS(nl_sample_sound_sources "NeL, Samples: Sound: Sound Sources")

@ -67,23 +67,16 @@ void Init()
AudioMixer->setPackedSheetOption("data", true); AudioMixer->setPackedSheetOption("data", true);
printf("Select NLSOUND Driver:\n"); printf("Select NLSOUND Driver:\n");
std::vector<UAudioMixer::TDriverInfo> drivers = UAudioMixer::getDrivers(); printf(" [1] FMod\n");
if (drivers.size() == 0) printf(" [2] OpenAl\n");
nlerror("No sound drivers available"); printf(" [3] DSound\n");
printf(" [4] XAudio2\n");
for(uint i = 0; i < drivers.size(); ++i)
printf(" [%d] %s\n", i, drivers[i].Name);
printf("> "); printf("> ");
int selection = getchar() - '0'; int selection = getchar();
printf("\n"); printf("\n");
UAudioMixer::TDriver selectedDriver = UAudioMixer::DriverAuto;
if (selection >= 0 && selection < drivers.size())
selectedDriver = drivers[selection].ID;
// init with 32 tracks, EAX enabled, no ADPCM, and activate automatic sample bank loading // init with 32 tracks, EAX enabled, no ADPCM, and activate automatic sample bank loading
AudioMixer->init(32, true, false, NULL, true, selectedDriver); AudioMixer->init(32, true, false, NULL, true, (UAudioMixer::TDriver)(selection - '0')/*UAudioMixer::DriverFMod*/);
/* /*
* 2. Initialize listener's position and orientation (in NeL coordinate system). * 2. Initialize listener's position and orientation (in NeL coordinate system).

@ -1,5 +1,5 @@
// NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> // NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
// Copyright (C) 2010-2017 Winch Gate Property Limited // Copyright (C) 2010-2020 Winch Gate Property Limited
// //
// This source file has been modified by the following contributors: // This source file has been modified by the following contributors:
// Copyright (C) 2010 Robert TIMM (rti) <mail@rtti.de> // Copyright (C) 2010 Robert TIMM (rti) <mail@rtti.de>
@ -1275,7 +1275,7 @@ static bool setupNVFragmentProgram2(const char *glext)
{ {
H_AUTO_OGL(setupNVFragmentProgram2); H_AUTO_OGL(setupNVFragmentProgram2);
CHECK_EXT("GL_NV_fragment_program2"); CHECK_EXT("GL_NV_fragment_program2");
return true; return true;
} }
@ -1284,7 +1284,7 @@ static bool setupARBFragmentShader(const char *glext)
{ {
H_AUTO_OGL(setupNVFragmentProgram2); H_AUTO_OGL(setupNVFragmentProgram2);
CHECK_EXT("GL_ARB_fragment_shader"); CHECK_EXT("GL_ARB_fragment_shader");
return true; return true;
} }
@ -1699,12 +1699,12 @@ void registerGlExtensions(CGlExtensions &ext)
ext.EXTVertexShader = false; ext.EXTVertexShader = false;
ext.ARBVertexProgram = false; ext.ARBVertexProgram = false;
} }
// Check pixel program // Check pixel program
// Disable feature ??? // Disable feature ???
if (!ext.DisableHardwarePixelProgram) if (!ext.DisableHardwarePixelProgram)
{ {
ext.ARBFragmentProgram = setupARBFragmentProgram(glext); ext.ARBFragmentProgram = setupARBFragmentProgram(glext);
ext.NVFragmentProgram2 = setupNVFragmentProgram2(glext); ext.NVFragmentProgram2 = setupNVFragmentProgram2(glext);
ext.ARBFragmentShader = setupARBFragmentShader(glext); ext.ARBFragmentShader = setupARBFragmentShader(glext);
} }

@ -265,9 +265,10 @@ bool GlWndProc(CDriverGL *driver, XEvent &e)
case ConfigureNotify: case ConfigureNotify:
if (driver->_WndActive) if (driver->_CurrentMode.Windowed && driver->_WndActive)
{ {
if (driver->_CurrentMode.Windowed) // first time setting decoration sizes
if ((driver->_DecorationWidth == -1) || (driver->_DecorationWidth == 0))
{ {
Atom type_return = 0; Atom type_return = 0;
int format_return = 0; int format_return = 0;
@ -293,19 +294,12 @@ bool GlWndProc(CDriverGL *driver, XEvent &e)
// don't allow negative decoration sizes // don't allow negative decoration sizes
if (driver->_DecorationWidth < 0) driver->_DecorationWidth = 0; if (driver->_DecorationWidth < 0) driver->_DecorationWidth = 0;
if (driver->_DecorationHeight < 0) driver->_DecorationHeight = 0; if (driver->_DecorationHeight < 0) driver->_DecorationHeight = 0;
driver->_WindowX = e.xconfigure.x - driver->_DecorationWidth;
driver->_WindowY = e.xconfigure.y - driver->_DecorationHeight;
}
else
{
// fullscreen
driver->_WindowX = e.xconfigure.x;
driver->_WindowY = e.xconfigure.y;
} }
driver->_CurrentMode.Width = e.xconfigure.width; driver->_CurrentMode.Width = e.xconfigure.width;
driver->_CurrentMode.Height = e.xconfigure.height; driver->_CurrentMode.Height = e.xconfigure.height;
driver->_WindowX = e.xconfigure.x - driver->_DecorationWidth;
driver->_WindowY = e.xconfigure.y - driver->_DecorationHeight;
} }
break; break;
@ -647,11 +641,6 @@ void CDriverGL::setWindowIcon(const std::vector<NLMISC::CBitmap> &bitmaps)
} }
// -------------------------------------------------- // --------------------------------------------------
#if defined(NL_OS_UNIX) && !defined(NL_OS_MAC)
static Bool WaitForNotify( Display *dpy, XEvent *event, XPointer arg ) {
return (event->type == MapNotify) && (event->xmap.window == reinterpret_cast<Window>(arg));
}
#endif
bool CDriverGL::setDisplay(nlWindow wnd, const GfxMode &mode, bool show, bool resizeable) bool CDriverGL::setDisplay(nlWindow wnd, const GfxMode &mode, bool show, bool resizeable)
{ {
H_AUTO_OGL(CDriverGL_setDisplay) H_AUTO_OGL(CDriverGL_setDisplay)
@ -679,9 +668,8 @@ bool CDriverGL::setDisplay(nlWindow wnd, const GfxMode &mode, bool show, bool re
// Retrieve the WGL extensions before init the driver. // Retrieve the WGL extensions before init the driver.
// Offscreen mode ? // Offscreen mode ?
if (mode.OffScreen) if (_CurrentMode.OffScreen)
{ {
_CurrentMode.OffScreen = true;
if (!createWindow(mode)) return false; if (!createWindow(mode)) return false;
HWND tmpHWND = _win; HWND tmpHWND = _win;
@ -1157,17 +1145,14 @@ bool CDriverGL::setDisplay(nlWindow wnd, const GfxMode &mode, bool show, bool re
} }
glXMakeCurrent (_dpy, _win, _ctx); glXMakeCurrent (_dpy, _win, _ctx);
// XMapRaised (_dpy, _win);
// XMapWindow(_dpy, _win);
_EventEmitter.init (_dpy, _win, this); _EventEmitter.init (_dpy, _win, this);
// KDE/GNOME has issues selecting correct fullscreen monitor if window is not visible before setMode() // XEvent event;
if (!mode.Windowed) // XIfEvent(dpy, &event, WaitForNotify, (char *)this);
{
XMapRaised(_dpy, _win);
XEvent event;
nlctassert(sizeof(XPointer) >= sizeof(_win));
XPeekIfEvent(_dpy, &event, WaitForNotify, reinterpret_cast<XPointer>(_win));
}
#endif // NL_OS_UNIX #endif // NL_OS_UNIX
@ -2499,19 +2484,13 @@ bool CDriverGL::getCurrentScreenMode(GfxMode &mode)
Window child; Window child;
// get window position so we can compare monitors (or mouse position if window not visible yet) // get window position so we can compare monitors (or mouse position if window not visible yet)
bool useMouseForPosition = true; XWindowAttributes xwa;
if (_win != EmptyWindow) XGetWindowAttributes(_dpy, _win, &xwa);
if (xwa.map_state != IsUnmapped)
{ {
XWindowAttributes xwa; XTranslateCoordinates(_dpy, _win, xwa.root, xwa.x, xwa.y, &x, &y, &child);
XGetWindowAttributes(_dpy, _win, &xwa);
if (xwa.map_state != IsUnmapped)
{
XTranslateCoordinates(_dpy, _win, xwa.root, xwa.x, xwa.y, &x, &y, &child);
useMouseForPosition = false;
}
} }
else
if (useMouseForPosition)
{ {
sint rx, ry, wx, wy; sint rx, ry, wx, wy;
uint mask; uint mask;
@ -2784,7 +2763,15 @@ void CDriverGL::setWindowPos(sint32 x, sint32 y)
#elif defined (NL_OS_UNIX) #elif defined (NL_OS_UNIX)
if (_CurrentMode.Windowed) if (_CurrentMode.Windowed)
{
// first time requesting decoration sizes
if (_WindowX && _WindowY && !_DecorationWidth && !_DecorationHeight && _WndActive)
{
_DecorationWidth = -1;
_DecorationHeight = -1;
}
XMoveWindow(_dpy, _win, x, y); XMoveWindow(_dpy, _win, x, y);
}
#endif // NL_OS_WINDOWS #endif // NL_OS_WINDOWS
} }
@ -2812,17 +2799,7 @@ void CDriverGL::showWindow(bool show)
if (show) if (show)
{ {
// if window is mapped, then MapNotify event will not trigger and XPeekIfEvent deadlocks XMapRaised(_dpy, _win);
XWindowAttributes attr;
XGetWindowAttributes(_dpy, _win, &attr);
if (attr.map_state == IsUnmapped)
{
XMapRaised(_dpy, _win);
// sync to MapNotify event or setWindowSize() in GNOME might resize window to wrong size
XEvent event;
nlctassert(sizeof(XPointer) >= sizeof(_win));
XPeekIfEvent(_dpy, &event, WaitForNotify, reinterpret_cast<XPointer>(_win));
}
// fix window position if windows manager want to impose them // fix window position if windows manager want to impose them
setWindowPos(_WindowX, _WindowY); setWindowPos(_WindowX, _WindowY);

@ -981,9 +981,10 @@ void CLodCharacterManager::addTextureCompute(CLodCharacterInstance &instance,
return; return;
// get lookup ptr. // get lookup ptr.
nlassert(lodTexture.Texture.size()==NL3D_CLOD_TEXT_SIZE);
if (lodTexture.Texture.size() < NL3D_CLOD_TEXT_SIZE) if (lodTexture.Texture.size() < NL3D_CLOD_TEXT_SIZE)
return; return;
nlassert(lodTexture.Texture.size()==NL3D_CLOD_TEXT_SIZE);
const CLodCharacterTexture::CTUVQ *lookUpPtr= &lodTexture.Texture[0]; const CLodCharacterTexture::CTUVQ *lookUpPtr= &lodTexture.Texture[0];

@ -172,8 +172,6 @@ void CMeshBase::serialMeshBase(NLMISC::IStream &f)
* ***********************************************/ * ***********************************************/
/* /*
Version 10:
- Ryzom Core release check
Version 9: Version 9:
- _CollisionMeshGeneration - _CollisionMeshGeneration
Version 8: Version 8:
@ -196,7 +194,7 @@ void CMeshBase::serialMeshBase(NLMISC::IStream &f)
Version 0: Version 0:
- 1st version. - 1st version.
*/ */
sint ver = f.serialVersion(10); sint ver = f.serialVersion(9);
if (ver >= 2) if (ver >= 2)
{ {

@ -1,5 +1,5 @@
// NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> // NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
// Copyright (C) 2010 Winch Gate Property Limited // Copyright (C) 2010-2020 Winch Gate Property Limited
// //
// This source file has been modified by the following contributors: // This source file has been modified by the following contributors:
// Copyright (C) 2013 Jan BOON (Kaetemi) <jan.boon@kaetemi.be> // Copyright (C) 2013 Jan BOON (Kaetemi) <jan.boon@kaetemi.be>
@ -1751,7 +1751,7 @@ void CVegetableManager::swapIgRdrPassHardMode(CVegetableInstanceGroup *ig, uin
// *************************************************************************** // ***************************************************************************
void CVegetableManager::setGlobalDensity(float density) void CVegetableManager::setGlobalDensity(float density)
{ {
clamp(density, 0.f, 1.f); clamp(density, 0.f, 100.f);
_GlobalDensity= density; _GlobalDensity= density;
} }

@ -442,8 +442,6 @@ void CZone::serial(NLMISC::IStream &f)
* It can be loaded/called through CAsyncFileManager for instance * It can be loaded/called through CAsyncFileManager for instance
* ***********************************************/ * ***********************************************/
/* /*
Version 5:
- Ryzom Core release check
Version 4: Version 4:
- PointLights - PointLights
Version 3: Version 3:
@ -455,7 +453,7 @@ void CZone::serial(NLMISC::IStream &f)
Version 0: Version 0:
- base verison. - base verison.
*/ */
uint ver= f.serialVersion(5); uint ver= f.serialVersion(4);
// No more compatibility before version 3 // No more compatibility before version 3
if (ver<3) if (ver<3)

@ -428,7 +428,7 @@ namespace NLGUI
if (bg.repeatX == CSS_VALUE_ROUND) if (bg.repeatX == CSS_VALUE_ROUND)
{ {
sint numTiles = std::max(1, (sint)std::ceil(((float)areaW / texW) - 0.5f)); sint numTiles = std::max(1, (sint)std::round((float)areaW / texW));
texW = areaW / numTiles; texW = areaW / numTiles;
if (bg.height.isAuto() && bg.repeatY != CSS_VALUE_ROUND) if (bg.height.isAuto() && bg.repeatY != CSS_VALUE_ROUND)
{ {
@ -439,7 +439,7 @@ namespace NLGUI
if (bg.repeatY == CSS_VALUE_ROUND) if (bg.repeatY == CSS_VALUE_ROUND)
{ {
sint numTiles = std::max(1, (sint)std::ceil(((float)areaH / texH) - 0.5f)); sint numTiles = std::max(1, (sint)std::round((float)areaH / texH));
texH = areaH / numTiles; texH = areaH / numTiles;
if (bg.width.isAuto() && bg.repeatX != CSS_VALUE_ROUND) if (bg.width.isAuto() && bg.repeatX != CSS_VALUE_ROUND)
{ {

@ -30,10 +30,9 @@ namespace NLGUI
bool CSSLength::parseValue(const std::string &value, bool allowPercent, bool allowNegative) bool CSSLength::parseValue(const std::string &value, bool allowPercent, bool allowNegative)
{ {
static const std::string knownUnitsArr[] = { static const std::set<std::string> knownUnits = {
"%", "rem", "em", "px", "pt", "vw", "vh", "vi", "vb", "vmin", "vmax" "%", "rem", "em", "px", "pt", "vw", "vh", "vi", "vb", "vmin", "vmax"
}; };
static const std::set<std::string> knownUnits(knownUnitsArr, &knownUnitsArr[sizeof(knownUnitsArr) / sizeof(knownUnitsArr[0])]);
std::string::size_type pos = 0; std::string::size_type pos = 0;
std::string::size_type len = value.size(); std::string::size_type len = value.size();
@ -66,17 +65,10 @@ bool CSSLength::parseValue(const std::string &value, bool allowPercent, bool all
} }
std::string unit = toLowerAscii(value.substr(pos)); std::string unit = toLowerAscii(value.substr(pos));
if (!allowPercent && unit == "%")
return false;
if (knownUnits.count(unit)) if (knownUnits.count(unit))
{ {
std::string tmpstr = value.substr(0, pos); std::string tmpstr = value.substr(0, pos);
if (fromString(tmpstr, m_Value)) return fromString(tmpstr, m_Value);
{
setUnit(unit);
return true;
}
} }
return false; return false;

@ -1103,7 +1103,19 @@ namespace NLGUI
// first loop -> true // first loop -> true
// second loop -> false && break // second loop -> false && break
loop = !loop; loop = !loop;
if (next < parts.size())
if (next >= parts.size())
break;
val = toLower(parts[next]);
if (val == "center")
{
if (bgPositionX.empty()) bgPositionX = "center";
if (bgPositionY.empty()) bgPositionY = "center";
// consume 'center'
next++;
}
else if (val == "left" || val == "right")
{ {
val = toLowerAscii(parts[next]); val = toLowerAscii(parts[next]);
if (val == "center") if (val == "center")

@ -872,6 +872,7 @@ namespace NLGUI
if (CCtrlBase::handleEvent(event)) return true; if (CCtrlBase::handleEvent(event)) return true;
if (!_Active || _Frozen) if (!_Active || _Frozen)
return false; return false;
if (event.getType() == NLGUI::CEventDescriptor::mouse) if (event.getType() == NLGUI::CEventDescriptor::mouse)
{ {
const NLGUI::CEventDescriptorMouse &eventDesc = (const NLGUI::CEventDescriptorMouse &)event; const NLGUI::CEventDescriptorMouse &eventDesc = (const NLGUI::CEventDescriptorMouse &)event;
@ -1255,6 +1256,7 @@ namespace NLGUI
if(wReal <= maxWReal) if(wReal <= maxWReal)
return; return;
// compute the new ofsX. // compute the new ofsX.
sint32 ofsX= _Target->getOfsX(); sint32 ofsX= _Target->getOfsX();
ofsX+= dx; ofsX+= dx;
@ -1432,8 +1434,6 @@ namespace NLGUI
childElement->getCorner(childX, childY, childHotSpot); childElement->getCorner(childX, childY, childHotSpot);
if (_Vertical) if (_Vertical)
{ {
// remove previous scroll offset from child
childY -= _Target->getOfsY();
sint32 maxHReal= _Target->getMaxHReal(); sint32 maxHReal= _Target->getMaxHReal();
sint32 hReal= _Target->getHReal(); sint32 hReal= _Target->getHReal();
if(hReal > maxHReal) if(hReal > maxHReal)
@ -1475,8 +1475,6 @@ namespace NLGUI
} }
else else
{ {
// remove previous scroll offset from child
childX -= _Target->getOfsX();
sint32 maxWReal= _Target->getMaxWReal(); sint32 maxWReal= _Target->getMaxWReal();
sint32 wReal= _Target->getWReal(); sint32 wReal= _Target->getWReal();
if(wReal > maxWReal) if(wReal > maxWReal)

@ -137,7 +137,7 @@ namespace NLGUI
if( name == "hardtext" ) if( name == "hardtext" )
{ {
if( _ViewText != NULL ) if( _ViewText != NULL )
return _ViewText->getHardText(); return _ViewText->getText();
else else
return std::string( "" ); return std::string( "" );
} }
@ -488,7 +488,7 @@ namespace NLGUI
xmlNewProp( node, BAD_CAST "wmargin", BAD_CAST toString( _WMargin ).c_str() ); xmlNewProp( node, BAD_CAST "wmargin", BAD_CAST toString( _WMargin ).c_str() );
xmlNewProp( node, BAD_CAST "wmin", BAD_CAST toString( _WMin ).c_str() ); xmlNewProp( node, BAD_CAST "wmin", BAD_CAST toString( _WMin ).c_str() );
xmlNewProp( node, BAD_CAST "hmin", BAD_CAST toString( _HMin ).c_str() ); xmlNewProp( node, BAD_CAST "hmin", BAD_CAST toString( _HMin ).c_str() );
xmlNewProp( node, BAD_CAST "hardtext", BAD_CAST _ViewText->getHardText().c_str() ); xmlNewProp( node, BAD_CAST "hardtext", BAD_CAST _ViewText->getText().c_str() );
xmlNewProp( node, BAD_CAST "text_y", BAD_CAST toString( _TextY ).c_str() ); xmlNewProp( node, BAD_CAST "text_y", BAD_CAST toString( _TextY ).c_str() );
xmlNewProp( node, BAD_CAST "text_x", BAD_CAST toString( _TextX ).c_str() ); xmlNewProp( node, BAD_CAST "text_x", BAD_CAST toString( _TextX ).c_str() );
xmlNewProp( node, BAD_CAST "text_underlined", BAD_CAST toString( _ViewText->getUnderlined() ).c_str() ); xmlNewProp( node, BAD_CAST "text_underlined", BAD_CAST toString( _ViewText->getUnderlined() ).c_str() );
@ -1105,6 +1105,69 @@ namespace NLGUI
// *************************************************************************** // ***************************************************************************
void CCtrlTextButton::setTextureLua(const std::string &name)
{
_TextureIdNormal[0].setTexture(std::string(name + "_l.tga").c_str());
_TextureIdNormal[1].setTexture(std::string(name + "_m.tga").c_str());
_TextureIdNormal[2].setTexture(std::string(name + "_r.tga").c_str());
}
// ***************************************************************************
void CCtrlTextButton::setTexturePushedLua(const std::string &name)
{
_TextureIdPushed[0].setTexture(std::string(name + "_l.tga").c_str());
_TextureIdPushed[1].setTexture(std::string(name + "_m.tga").c_str());
_TextureIdPushed[2].setTexture(std::string(name + "_r.tga").c_str());
}
// ***************************************************************************
void CCtrlTextButton::setTextureOverLua(const std::string &name)
{
_TextureIdOver[0].setTexture(std::string(name + "_l.tga").c_str());
_TextureIdOver[1].setTexture(std::string(name + "_m.tga").c_str());
_TextureIdOver[2].setTexture(std::string(name + "_r.tga").c_str());
}
// ***************************************************************************
std::string CCtrlTextButton::getTexture() const
{
std::string tx = CViewRenderer::getInstance()->getTextureNameFromId(_TextureIdNormal[0]);
std::string::size_type i = tx.rfind("_l.tga");
if (i != std::string::npos)
tx = tx.substr(0, i);
return tx;
}
// ***************************************************************************
std::string CCtrlTextButton::getTexturePushed() const
{
std::string tx = CViewRenderer::getInstance()->getTextureNameFromId(_TextureIdOver[0]);
std::string::size_type i = tx.rfind("_l.tga");
if (i != std::string::npos)
tx = tx.substr(0, i);
return tx;
}
// ***************************************************************************
std::string CCtrlTextButton::getTextureOver() const
{
std::string tx = CViewRenderer::getInstance()->getTextureNameFromId(_TextureIdPushed[0]);
std::string::size_type i = tx.rfind("_l.tga");
if (i != std::string::npos)
tx = tx.substr(0, i);
return tx;
}
// ***************************************************************************
int CCtrlTextButton::luaGetViewText(CLuaState &ls) int CCtrlTextButton::luaGetViewText(CLuaState &ls)
{ {
const char *funcName = "getViewText"; const char *funcName = "getViewText";

@ -745,10 +745,6 @@ namespace NLGUI
groupMenu->setY(pCB->getYReal()); groupMenu->setY(pCB->getYReal());
groupMenu->setBaseY(pCB->getYReal()); groupMenu->setBaseY(pCB->getYReal());
sint selected = pCB->getSelection();
if (selected >= 0)
groupMenu->setSelected((uint)selected);
// Must ensure the combo menu has same windows priority than the combo box window // Must ensure the combo menu has same windows priority than the combo box window
CInterfaceGroup *rootWin= pCB->getRootWindow(); CInterfaceGroup *rootWin= pCB->getRootWindow();
if(rootWin) if(rootWin)

@ -755,9 +755,6 @@ namespace NLGUI
// Display the selection if needed // Display the selection if needed
if (_CurrSelection == this && _SelectCursorPos!=_CursorPos) if (_CurrSelection == this && _SelectCursorPos!=_CursorPos)
{ {
// flush so that selection quad is covering text
rVR.flush();
sint32 blankTextId= rVR.getBlankTextureId(); sint32 blankTextId= rVR.getBlankTextureId();
CRGBA col= _BackSelectColor; CRGBA col= _BackSelectColor;
col.A= CWidgetManager::getInstance()->getGlobalColorForContent().A; col.A= CWidgetManager::getInstance()->getGlobalColorForContent().A;

@ -408,11 +408,8 @@ namespace NLGUI
// Check if domain is on TrustedDomain // Check if domain is on TrustedDomain
bool CGroupHTML::isTrustedDomain(const string &domain) bool CGroupHTML::isTrustedDomain(const string &domain)
{ {
if (domain == options.webServerDomain)
return true;
vector<string>::iterator it; vector<string>::iterator it;
it = find(options.trustedDomains.begin(), options.trustedDomains.end(), domain); it = find ( options.trustedDomains.begin(), options.trustedDomains.end(), domain);
return it != options.trustedDomains.end(); return it != options.trustedDomains.end();
} }
@ -3424,16 +3421,6 @@ namespace NLGUI
string finalUrl; string finalUrl;
bool isLocal = lookupLocalFile (finalUrl, _URL.c_str(), true); bool isLocal = lookupLocalFile (finalUrl, _URL.c_str(), true);
if (!isLocal && _URL.c_str()[0] == '/')
{
if (options.webServer.empty())
{
// Try again later
return;
}
finalUrl = options.webServer + finalUrl;
}
_URL = finalUrl; _URL = finalUrl;
CUrlParser uri (_URL); CUrlParser uri (_URL);
@ -5331,7 +5318,7 @@ namespace NLGUI
string suri = elm.getAttribute("href"); string suri = elm.getAttribute("href");
if(suri.find("ah:") == 0) if(suri.find("ah:") == 0)
{ {
if (_TrustedDomain) if (_TrustedDomain || suri.find("ah:script:") == 0)
_Link.back() = suri; _Link.back() = suri;
} }
else else
@ -6196,11 +6183,13 @@ namespace NLGUI
void CGroupHTML::htmlOBJECTend(const CHtmlElement &elm) void CGroupHTML::htmlOBJECTend(const CHtmlElement &elm)
{ {
if (!_TrustedDomain)
return;
if (_ObjectType=="application/ryzom-data") if (_ObjectType=="application/ryzom-data")
{ {
if (!_TrustedDomain)
return;
if (!_ObjectData.empty()) if (!_ObjectData.empty())
{ {
if (addBnpDownload(_ObjectData, _ObjectAction, _ObjectScript, _ObjectMD5Sum)) if (addBnpDownload(_ObjectData, _ObjectAction, _ObjectScript, _ObjectMD5Sum))
@ -6210,6 +6199,20 @@ namespace NLGUI
_ObjectScript.clear(); _ObjectScript.clear();
} }
} }
else if (_ObjectType=="application/ryzom-tutorial")
{
while(strFindReplace(_ObjectScript, "[", ""));
while(strFindReplace(_ObjectScript, "]", ""));
CLuaManager::getInstance().executeLuaScript("\ngame:executeTutorial([["+_ObjectScript+"]])\n", true);
_ObjectScript.clear();
}
else if (_ObjectType=="application/ryzom-script")
{
while(strFindReplace(_ObjectScript, "[", ""));
while(strFindReplace(_ObjectScript, "]", ""));
CLuaManager::getInstance().executeLuaScript("\ngame:executeRyzomScript([["+_ObjectScript+"]])\n", true);
_ObjectScript.clear();
}
_Object = false; _Object = false;
} }

@ -1,5 +1,5 @@
// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/> // Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
// Copyright (C) 2010-2019 Winch Gate Property Limited // Copyright (C) 2010-2020 Winch Gate Property Limited
// //
// This source file has been modified by the following contributors: // This source file has been modified by the following contributors:
// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter) <dfighter1985@gmail.com> // Copyright (C) 2013 Laszlo KIS-ADAM (dfighter) <dfighter1985@gmail.com>
@ -129,11 +129,9 @@ namespace NLGUI
_SelectionView = NULL; _SelectionView = NULL;
_GroupList = NULL; _GroupList = NULL;
_GroupMenu = NULL; _GroupMenu = NULL;
_MouseOver = -1;
_Selected = -1; _Selected = -1;
_MaxVisibleLine = -1; _MaxVisibleLine = -1;
_ScrollBar = NULL; _ScrollBar = NULL;
_ScrollToView = false;
} }
// ------------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------------
@ -382,6 +380,23 @@ namespace NLGUI
if (pUG) if (pUG)
setUserGroupRight((uint)_Lines.size()-1, pUG, true); setUserGroupRight((uint)_Lines.size()-1, pUG, true);
} }
// usergroup from simple icon
CXMLAutoPtr icon((const char*) xmlGetProp (cur, (xmlChar*)"icon"));
if (icon)
{
typedef std::pair<std::string, std::string> TTmplParams;
std::vector<TTmplParams> vparams;
uint lineIndex = _Lines.size()-1;
vparams.push_back(TTmplParams("id", toString("icon%d", lineIndex)));
vparams.push_back(TTmplParams("sizeref", ""));
vparams.push_back(TTmplParams("icon_texture", (const char*)icon));
//vparams.push_back(TTmplParams("icon_color", options.ColorNormal.toString()));
string lineId = toString("%s:icon", pV->getId().c_str());
CInterfaceGroup *pUG = CWidgetManager::getInstance()->getParser()->createGroupInstance("menu_row_icon", lineId, vparams);
if (pUG)
setUserGroupLeft((uint)_Lines.size()-1, pUG, true);
}
} }
cur = cur->next; cur = cur->next;
} }
@ -574,8 +589,6 @@ namespace NLGUI
CGroupFrame::updateCoords(); CGroupFrame::updateCoords();
bool mustUpdate = false;
if (_MaxVisibleLine > 0 && sint32(_Lines.size())>_MaxVisibleLine) if (_MaxVisibleLine > 0 && sint32(_Lines.size())>_MaxVisibleLine)
{ {
for(k = 0; k < _Lines.size(); ++k) for(k = 0; k < _Lines.size(); ++k)
@ -591,7 +604,6 @@ namespace NLGUI
_GroupList->setMaxH(widgetMaxH*_MaxVisibleLine+_GroupList->getSpace()*(_MaxVisibleLine-1)); _GroupList->setMaxH(widgetMaxH*_MaxVisibleLine+_GroupList->getSpace()*(_MaxVisibleLine-1));
if (_ScrollBar == NULL) if (_ScrollBar == NULL)
{ {
_ScrollToView = true;
_ScrollBar = new CCtrlScroll(CViewBase::TCtorParam()); _ScrollBar = new CCtrlScroll(CViewBase::TCtorParam());
_ScrollBar->setParent (this); _ScrollBar->setParent (this);
_ScrollBar->setParentPos (_GroupList); _ScrollBar->setParentPos (_GroupList);
@ -607,7 +619,6 @@ namespace NLGUI
_SelectionView->setW (-8-8-2); _SelectionView->setW (-8-8-2);
_ScrollBar->setSerializable( false ); _ScrollBar->setSerializable( false );
addCtrl(_ScrollBar); addCtrl(_ScrollBar);
mustUpdate = true;
} }
break; break;
} }
@ -656,13 +667,7 @@ namespace NLGUI
} }
} }
CGroupFrame::updateCoords();
if (mustUpdate)
{
CGroupFrame::updateCoords();
}
// *** Setup SubMenus and CheckBoxes Positions // *** Setup SubMenus and CheckBoxes Positions
sint32 maxViewW = 0; sint32 maxViewW = 0;
@ -885,8 +890,8 @@ namespace NLGUI
_SelectionView->setH (8); _SelectionView->setH (8);
_SelectionView->setY (4); _SelectionView->setY (4);
sint highlight = _MouseOver != -1 ? _MouseOver : _Selected;
if (highlight != -1 && _Lines[highlight].ViewText != NULL) if (_Selected != -1 && _Lines[_Selected].ViewText != NULL)
{ {
CRGBA col= _GroupMenu->_HighLightOver; CRGBA col= _GroupMenu->_HighLightOver;
@ -894,21 +899,11 @@ namespace NLGUI
_SelectionView->setModulateGlobalColor(getModulateGlobalColor()); _SelectionView->setModulateGlobalColor(getModulateGlobalColor());
// get refElm and refElmYReal // get refElm and refElmYReal
GET_REF_ELM(highlight) GET_REF_ELM(_Selected)
_SelectionView->setH (refElmHReal); _SelectionView->setH (refElmHReal);
_SelectionView->setY (refElmYReal - this->getYReal()); _SelectionView->setY (refElmYReal - this->getYReal());
} }
// initial scroll after becoming active
if (_ScrollBar && _ScrollToView)
{
_ScrollToView = false;
if (_Selected != -1 && _Lines[_Selected].ViewText != NULL)
_ScrollBar->ensureVisible(_Lines[_Selected].ViewText, Hotspot_Tx, Hotspot_Mx);
else
_ScrollBar->setTrackPos(_GroupList->getHReal());
}
} }
// ------------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------------
@ -924,12 +919,12 @@ namespace NLGUI
(xMouse < (_XReal + _WReal))&& (xMouse < (_XReal + _WReal))&&
(yMouse > _YReal) && (yMouse > _YReal) &&
(yMouse <= (_YReal+ _HReal)))) (yMouse <= (_YReal+ _HReal))))
_MouseOver = -1; _Selected= -1;
// CViewRenderer &rVR = *CViewRenderer::getInstance(); // CViewRenderer &rVR = *CViewRenderer::getInstance();
// Highlight (background under the selection) // Highlight (background under the selection)
if (_MouseOver != -1 || _Selected != -1) if (_Selected != -1)
{ {
// display hightlight // display hightlight
if(_GroupMenu->_HighLightOver.A > 0) if(_GroupMenu->_HighLightOver.A > 0)
@ -959,7 +954,7 @@ namespace NLGUI
} }
else else
{ {
if (i == _MouseOver) // Colors when the text is selected if (i == _Selected) // Colors when the text is selected
{ {
_Lines[i].ViewText->Over = true; _Lines[i].ViewText->Over = true;
_Lines[i].ViewText->setColor (_Lines[i].ViewText->OldColorOver); _Lines[i].ViewText->setColor (_Lines[i].ViewText->OldColorOver);
@ -997,7 +992,7 @@ namespace NLGUI
if (event.getType() == NLGUI::CEventDescriptor::mouse) if (event.getType() == NLGUI::CEventDescriptor::mouse)
{ {
const NLGUI::CEventDescriptorMouse &eventDesc = (const NLGUI::CEventDescriptorMouse &)event; const NLGUI::CEventDescriptorMouse &eventDesc = (const NLGUI::CEventDescriptorMouse &)event;
_MouseOver = -1; _Selected = -1;
// TODO First check sub menus that can be not in the area of this menu // TODO First check sub menus that can be not in the area of this menu
@ -1007,9 +1002,6 @@ namespace NLGUI
(eventDesc.getY() <= (_YReal+ _HReal)))) (eventDesc.getY() <= (_YReal+ _HReal))))
return false; return false;
if (_ScrollBar && _ScrollBar->isIn(eventDesc.getX(), eventDesc.getY()))
return false;
uint32 i = 0; uint32 i = 0;
for (i = 0; i < _Lines.size(); ++i) for (i = 0; i < _Lines.size(); ++i)
{ {
@ -1024,7 +1016,7 @@ namespace NLGUI
if ((eventDesc.getY() > refElmYReal) && if ((eventDesc.getY() > refElmYReal) &&
(eventDesc.getY() <= (refElmYReal + refElmHReal + _GroupList->getSpace()))) (eventDesc.getY() <= (refElmYReal + refElmHReal + _GroupList->getSpace())))
{ {
_MouseOver = i; _Selected = i;
break; break;
} }
} }
@ -1034,16 +1026,16 @@ namespace NLGUI
if (eventDesc.getEventTypeExtended() == NLGUI::CEventDescriptorMouse::mouseleftup) if (eventDesc.getEventTypeExtended() == NLGUI::CEventDescriptorMouse::mouseleftup)
{ {
// If a line is selected and the line is not grayed // If a line is selected and the line is not grayed
if ((_MouseOver != -1) && (!_Lines[i].ViewText->getGrayed())) if ((_Selected != -1) && (!_Lines[i].ViewText->getGrayed()))
{ {
CAHManager::getInstance()->runActionHandler ( _Lines[_MouseOver].AHName, CAHManager::getInstance()->runActionHandler ( _Lines[_Selected].AHName,
CWidgetManager::getInstance()->getCtrlLaunchingModal(), CWidgetManager::getInstance()->getCtrlLaunchingModal(),
_Lines[_MouseOver].AHParams ); _Lines[_Selected].AHParams );
if (_SubMenus[_MouseOver] != NULL) if (_SubMenus[_Selected] != NULL)
{ {
openSubMenu (_MouseOver); openSubMenu (_Selected);
} }
else else
{ {
@ -1062,11 +1054,11 @@ namespace NLGUI
if (eventDesc.getEventTypeExtended() == NLGUI::CEventDescriptorMouse::mouserightup) if (eventDesc.getEventTypeExtended() == NLGUI::CEventDescriptorMouse::mouserightup)
{ {
// If a line is selected and the line is not grayed and has right click action handler // If a line is selected and the line is not grayed and has right click action handler
if ((_MouseOver != -1) && (!_Lines[i].ViewText->getGrayed()) && !_Lines[_MouseOver].AHRightClick.empty()) if ((_Selected != -1) && (!_Lines[i].ViewText->getGrayed()) && !_Lines[_Selected].AHRightClick.empty())
{ {
CAHManager::getInstance()->runActionHandler ( _Lines[_MouseOver].AHRightClick, CAHManager::getInstance()->runActionHandler ( _Lines[_Selected].AHRightClick,
CWidgetManager::getInstance()->getCtrlLaunchingModal(), CWidgetManager::getInstance()->getCtrlLaunchingModal(),
_Lines[_MouseOver].AHRightClickParams ); _Lines[_Selected].AHRightClickParams );
return true; return true;
} }
} }
@ -1424,14 +1416,7 @@ namespace NLGUI
_Lines.erase(_Lines.begin() + index); _Lines.erase(_Lines.begin() + index);
//invalidate selection //invalidate selection
_MouseOver = -1; _Selected = -1;
if (_Selected != -1)
{
if (_Selected == index)
_Selected = -1;
else if (_Selected > index)
_Selected--;
}
if(_SubMenus[index]) if(_SubMenus[index])
{ {
@ -1465,7 +1450,6 @@ namespace NLGUI
// ------------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------------
void CGroupSubMenu::reset() void CGroupSubMenu::reset()
{ {
_Selected = -1;
uint lineCount = (uint)_Lines.size(); uint lineCount = (uint)_Lines.size();
for(sint k = lineCount - 1; k >= 0; --k) for(sint k = lineCount - 1; k >= 0; --k)
{ {
@ -1676,10 +1660,10 @@ namespace NLGUI
} }
} }
CGroupFrame::setActive(state); if(_ScrollBar && _GroupList)
_ScrollBar->setTrackPos(_GroupList->getHReal());
// handle scrolling in next updateCoords() call CGroupFrame::setActive(state);
_ScrollToView = true;
} }
// ------------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------------
@ -2550,10 +2534,6 @@ namespace NLGUI
CGroupFrame::setActive (state); CGroupFrame::setActive (state);
// skip rest if being hidden
if (!state)
return;
// must recompute now the pos of the menu // must recompute now the pos of the menu
uint32 i; uint32 i;
for (i = 0; i < _ChildrenGroups.size(); ++i) for (i = 0; i < _ChildrenGroups.size(); ++i)

@ -1,5 +1,5 @@
// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/> // Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
// Copyright (C) 2010-2018 Winch Gate Property Limited // Copyright (C) 2010-2020 Winch Gate Property Limited
// //
// This source file has been modified by the following contributors: // This source file has been modified by the following contributors:
// Copyright (C) 2013-2014 Laszlo KIS-ADAM (dfighter) <dfighter1985@gmail.com> // Copyright (C) 2013-2014 Laszlo KIS-ADAM (dfighter) <dfighter1985@gmail.com>
@ -438,14 +438,6 @@ namespace NLGUI
parseSizeRef(sizeref.c_str()); parseSizeRef(sizeref.c_str());
} }
// ------------------------------------------------------------------------------------------------
std::string CInterfaceElement::getPosParent() const
{
std::string id;
getPosParent(id);
return id;
}
// ------------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------------
std::string CInterfaceElement::getSizeRefAsString() const std::string CInterfaceElement::getSizeRefAsString() const
{ {
@ -1172,6 +1164,8 @@ namespace NLGUI
{ {
_Active = state; _Active = state;
invalidateCoords(); invalidateCoords();
// force invalidate CViewText/CGroupTable inner elements
invalidateContent();
} }
} }

@ -208,10 +208,9 @@ namespace NLGUI
// *************************************************************************** // ***************************************************************************
bool getCssLength (float &value, std::string &unit, const std::string &str, bool neg) bool getCssLength (float &value, std::string &unit, const std::string &str, bool neg)
{ {
static const std::string knownUnitsArr[] = { static const std::set<std::string> knownUnits = {
"%", "rem", "em", "px", "pt", "vw", "vh", "vi", "vb", "vmin", "vmax" "%", "rem", "em", "px", "pt", "vw", "vh", "vi", "vb", "vmin", "vmax"
}; };
static const std::set<std::string> knownUnits(knownUnitsArr, &knownUnitsArr[sizeof(knownUnitsArr) / sizeof(knownUnitsArr[0])]);
std::string::size_type pos = 0; std::string::size_type pos = 0;
std::string::size_type len = str.size(); std::string::size_type len = str.size();

@ -1123,7 +1123,6 @@ namespace NLGUI
if(!pIE) if(!pIE)
{ {
ls.pushNil(); ls.pushNil();
nlerror("getCurrentWindowUnder(): No UICaller found. return Nil");
} }
else else
{ {
@ -1672,7 +1671,7 @@ namespace NLGUI
ls.registerFunc("runFct", runFct); ls.registerFunc("runFct", runFct);
ls.registerFunc("runCommand", runCommand); ls.registerFunc("runCommand", runCommand);
ls.registerFunc("getPathContent", getPathContent); ls.registerFunc("getPathContent", getPathContent);
// Through LUABind API // Through LUABind API
lua_State *L= ls.getStatePointer(); lua_State *L= ls.getStatePointer();

@ -70,7 +70,17 @@ namespace NLGUI
} }
catch( const ELuaError &e ) catch( const ELuaError &e )
{ {
nlwarning( e.luaWhat().c_str() ); #if !FINAL_VERSION
nlwarning("--- LUA ERROR ---");
nlwarning(e.luaWhat().c_str());
std::vector<std::string> res;
NLMISC::explode(luaScript, std::string("\n"), res);
for(uint k = 0; k < res.size(); ++k)
{
nlwarning("%.05u %s", k, res[k].c_str());
}
nlwarning("--- ********* ---");
#endif
return false; return false;
} }

@ -95,11 +95,11 @@ namespace NLGUI
_FontWidth= 0; _FontWidth= 0;
_FontHeight = 0; _FontHeight = 0;
_FontLegHeight = 0; _FontLegHeight = 0;
_TabWidth= 0;
_TextSelection= false; _TextSelection= false;
_TextSelectionStart= 0; _TextSelectionStart= 0;
_TextSelectionEnd= std::numeric_limits<uint>::max(); _TextSelectionEnd= std::numeric_limits<uint>::max();
m_DisableShadowInSelection = true;
_InvalidTextContext= true; _InvalidTextContext= true;
_FirstLineX = 0; _FirstLineX = 0;
@ -1030,7 +1030,10 @@ namespace NLGUI
if (_MultiLine) if (_MultiLine)
{ {
setTextFormatTaged(CI18N::get(propPtr)); if (NLMISC::startsWith(propPtr, "u:"))
setTextFormatTaged(std::string(propPtr).substr(2));
else
setTextFormatTaged(CI18N::get(propPtr));
} }
else else
{ {
@ -1189,10 +1192,9 @@ namespace NLGUI
{ {
if (_Lines.empty()) return; if (_Lines.empty()) return;
bool drawShadow = !(_TextSelection && m_DisableShadowInSelection);
TextContext->setHotSpot (UTextContext::BottomLeft); TextContext->setHotSpot (UTextContext::BottomLeft);
TextContext->setShaded (_Shadow && drawShadow); TextContext->setShaded (_Shadow);
TextContext->setShadeOutline (_ShadowOutline && drawShadow); TextContext->setShadeOutline (_ShadowOutline);
TextContext->setShadeColor (shcol); TextContext->setShadeColor (shcol);
TextContext->setShadeExtent (_ShadowX*oow, _ShadowY*ooh); TextContext->setShadeExtent (_ShadowX*oow, _ShadowY*ooh);
TextContext->setFontSize (_FontSize*_Scale); TextContext->setFontSize (_FontSize*_Scale);
@ -1283,7 +1285,7 @@ namespace NLGUI
px += firstSpace; px += firstSpace;
// skip tabulation before current word // skip tabulation before current word
if(currWord.Format.TabX) if(currWord.Format.TabX)
px= max(px, (float)(_XReal * _Scale + currWord.Format.TabX*_FontWidth)); px= max(px, (float)(_XReal * _Scale + currWord.Format.TabX*_TabWidth));
// draw. We take floorf px to avoid filtering of letters that are not located on a pixel boundary // draw. We take floorf px to avoid filtering of letters that are not located on a pixel boundary
float fx = px / _Scale; float fx = px / _Scale;
@ -1322,10 +1324,9 @@ namespace NLGUI
{ {
nlassert(_Index != 0xFFFFFFFF); nlassert(_Index != 0xFFFFFFFF);
bool drawShadow = !(_TextSelection && m_DisableShadowInSelection);
TextContext->setHotSpot (UTextContext::BottomLeft); TextContext->setHotSpot (UTextContext::BottomLeft);
TextContext->setShaded (_Shadow && drawShadow); TextContext->setShaded (_Shadow);
TextContext->setShadeOutline (_ShadowOutline && drawShadow); TextContext->setShadeOutline (_ShadowOutline);
TextContext->setShadeColor (shcol); TextContext->setShadeColor (shcol);
TextContext->setShadeExtent (_ShadowX*oow, _ShadowY*ooh); TextContext->setShadeExtent (_ShadowX*oow, _ShadowY*ooh);
TextContext->setFontSize (_FontSize*_Scale); TextContext->setFontSize (_FontSize*_Scale);
@ -1767,7 +1768,7 @@ namespace NLGUI
getFormatTagChange(i, formatTagIndex, wordFormat); getFormatTagChange(i, formatTagIndex, wordFormat);
// Ensure the line witdh count the tab // Ensure the line witdh count the tab
rWidthCurrentLine= max(rWidthCurrentLine, (float)wordFormat.TabX*_FontWidth); rWidthCurrentLine= max(rWidthCurrentLine, (float)wordFormat.TabX*_TabWidth);
} }
NL3D::UTextContext *TextContext = CViewRenderer::getTextContext(_FontName); NL3D::UTextContext *TextContext = CViewRenderer::getTextContext(_FontName);
@ -1951,7 +1952,7 @@ namespace NLGUI
// compute size of spaces/Tab + word // compute size of spaces/Tab + word
newLineWidth = lineWidth + numSpaces * _SpaceWidth; newLineWidth = lineWidth + numSpaces * _SpaceWidth;
newLineWidth = max(newLineWidth, (float)wordFormat.TabX*_FontWidth); newLineWidth = max(newLineWidth, (float)wordFormat.TabX*_TabWidth);
newLineWidth+= si.StringWidth; newLineWidth+= si.StringWidth;
} }
// //
@ -3113,8 +3114,6 @@ namespace NLGUI
TextContext->setEmbolden (_Embolden); TextContext->setEmbolden (_Embolden);
TextContext->setOblique (_Oblique); TextContext->setOblique (_Oblique);
#if 1
UTextContext::CStringInfo si = TextContext->getStringInfo("XO"); UTextContext::CStringInfo si = TextContext->getStringInfo("XO");
float xoHeight = si.StringHeight; float xoHeight = si.StringHeight;
@ -3145,34 +3144,14 @@ namespace NLGUI
si = TextContext->getStringInfo(" "); si = TextContext->getStringInfo(" ");
_SpaceWidth = si.StringWidth; _SpaceWidth = si.StringWidth;
// Font Width (used for <tab>) // Font Width
si = TextContext->getStringInfo("O"); si = TextContext->getStringInfo("O");
_FontWidth = si.StringWidth; _FontWidth = si.StringWidth;
#else // Tab Width (used for {Txx})
// if not set to "_", breaks item help window
// Letter size
UTextContext::CStringInfo si = TextContext->getStringInfo(_FontSizingChars);
// font generator changes unknown glyphs to dot '.'. use fallback if it looks odd
if (_FontSize > (si.StringHeight + si.StringLine))
{
si = TextContext->getStringInfo(_FontSizingFallback);
}
// add a padding of 1 pixel else the top will be truncated
_FontHeight = si.StringHeight + 1;
_FontLegHeight = si.StringLine;
// Space width
si = TextContext->getStringInfo(" ");
_SpaceWidth = si.StringWidth;
// Font Width (used for <tab>)
si = TextContext->getStringInfo("_"); si = TextContext->getStringInfo("_");
_FontWidth = si.StringWidth; _TabWidth = si.StringWidth;
#endif
} }
@ -3641,6 +3620,7 @@ namespace NLGUI
f.serial(_Localized); f.serial(_Localized);
SERIAL_SINT(_FontSize); SERIAL_SINT(_FontSize);
SERIAL_UINT(_FontWidth); SERIAL_UINT(_FontWidth);
SERIAL_UINT(_TabWidth);
SERIAL_UINT(_FontHeight); SERIAL_UINT(_FontHeight);
SERIAL_UINT(_FontLegHeight); SERIAL_UINT(_FontLegHeight);
f.serial(_SpaceWidth); f.serial(_SpaceWidth);

@ -435,22 +435,7 @@ namespace NLGUI
CWidgetManager::SMasterGroup &rMG = _MasterGroups[nMasterGroup]; CWidgetManager::SMasterGroup &rMG = _MasterGroups[nMasterGroup];
CInterfaceElement *pIEL = rMG.Group->getElement (sEltId); CInterfaceElement *pIEL = rMG.Group->getElement (sEltId);
if (pIEL != NULL) if (pIEL != NULL)
{
#if !FINAL_VERSION
if (m_LoggedMissingElement.find(sEltId) != m_LoggedMissingElement.end())
{
m_LoggedMissingElement.erase(sEltId);
nlwarning("Previously missing UI element with Id '%s' was now found!", sEltId.c_str());
}
#endif
return pIEL; return pIEL;
}
}
if (m_LoggedMissingElement.find(sEltId) == m_LoggedMissingElement.end())
{
m_LoggedMissingElement.insert(sEltId);
nlwarning("Could not find UI element from Id '%s'...", sEltId.c_str());
} }
return NULL; return NULL;
} }
@ -1211,7 +1196,7 @@ namespace NLGUI
// Copy all aspects to the view // Copy all aspects to the view
vtDst->setLocalized (vtSrc->isLocalized()); vtDst->setLocalized (vtSrc->isLocalized());
vtDst->setText (vtSrc->getHardText()); vtDst->setText (vtSrc->getText());
vtDst->setFontSize (vtSrc->getFontSize()); vtDst->setFontSize (vtSrc->getFontSize());
vtDst->setColor (vtSrc->getColor()); vtDst->setColor (vtSrc->getColor());
vtDst->setModulateGlobalColor(vtSrc->getModulateGlobalColor()); vtDst->setModulateGlobalColor(vtSrc->getModulateGlobalColor());

@ -543,7 +543,7 @@ void CBitMemStream::serial(std::string &b)
/* /*
* Serial string * Serial string
*/ */
void CBitMemStream::serial(ucstring &b) inline void CBitMemStream::serial(ucstring &b)
{ {
#ifdef LOG_ALL_TRAFFIC #ifdef LOG_ALL_TRAFFIC
sint32 bitpos = getPosInBit(); sint32 bitpos = getPosInBit();

@ -3269,77 +3269,79 @@ CRGBAF CBitmap::getColor (float x, float y) const
uint32 i; uint32 i;
bool isValid = true;
for (i = 0; i < 4; ++i) for (i = 0; i < 4; ++i)
{ {
nlassert (nX[i] >= 0); if (nX[i] < 0 || nY[i] < 0 || nX[i] >= nWidth || nY[i] >= nHeight)
nlassert (nY[i] >= 0 ); isValid = false;
nlassert (nX[i] < nWidth);
nlassert (nY[i] < nHeight);
} }
// Decimal part of (x,y) if (isValid)
x = x - (float)nX[0];
y = y - (float)nY[0];
switch (this->PixelFormat)
{ {
case RGBA: // Decimal part of (x,y)
case DXTC1: x = x - (float)nX[0];
case DXTC1Alpha: y = y - (float)nY[0];
case DXTC3:
case DXTC5:
{
CRGBAF finalVal;
CRGBA val[4];
if (this->PixelFormat == RGBA) switch (this->PixelFormat)
{
case RGBA:
case DXTC1:
case DXTC1Alpha:
case DXTC3:
case DXTC5:
{ {
for (i = 0; i < 4; ++i) CRGBAF finalVal;
CRGBA val[4];
if (this->PixelFormat == RGBA)
{ {
val[i] = CRGBA (rBitmap[(nX[i]+nY[i]*nWidth)*4+0], for (i = 0; i < 4; ++i)
rBitmap[(nX[i]+nY[i]*nWidth)*4+1], {
rBitmap[(nX[i]+nY[i]*nWidth)*4+2], val[i] = CRGBA (rBitmap[(nX[i]+nY[i]*nWidth)*4+0],
rBitmap[(nX[i]+nY[i]*nWidth)*4+3]); rBitmap[(nX[i]+nY[i]*nWidth)*4+1],
rBitmap[(nX[i]+nY[i]*nWidth)*4+2],
rBitmap[(nX[i]+nY[i]*nWidth)*4+3]);
}
} }
} else
else
{
// slower version : get from DXT
for (i = 0; i < 4; ++i)
{ {
val[i] = getPixelColor(nX[i], nY[i]); // slower version : get from DXT
for (i = 0; i < 4; ++i)
{
val[i] = getPixelColor(nX[i], nY[i]);
}
} }
}
finalVal.R = getColorInterp (x, y, val[0].R, val[1].R, val[2].R, val[3].R); finalVal.R = getColorInterp (x, y, val[0].R, val[1].R, val[2].R, val[3].R);
finalVal.G = getColorInterp (x, y, val[0].G, val[1].G, val[2].G, val[3].G); finalVal.G = getColorInterp (x, y, val[0].G, val[1].G, val[2].G, val[3].G);
finalVal.B = getColorInterp (x, y, val[0].B, val[1].B, val[2].B, val[3].B); finalVal.B = getColorInterp (x, y, val[0].B, val[1].B, val[2].B, val[3].B);
finalVal.A = getColorInterp (x, y, val[0].A, val[1].A, val[2].A, val[3].A); finalVal.A = getColorInterp (x, y, val[0].A, val[1].A, val[2].A, val[3].A);
finalVal /= 255.f; finalVal /= 255.f;
return finalVal; return finalVal;
} }
break; break;
case Alpha: case Alpha:
case Luminance: case Luminance:
{ {
float finalVal; float finalVal;
float val[4]; float val[4];
for (i = 0; i < 4; ++i) for (i = 0; i < 4; ++i)
val[i] = rBitmap[(nX[i]+nY[i]*nWidth)]; val[i] = rBitmap[(nX[i]+nY[i]*nWidth)];
finalVal = getColorInterp (x, y, val[0], val[1], val[2], val[3]); finalVal = getColorInterp (x, y, val[0], val[1], val[2], val[3]);
finalVal /= 255.f; finalVal /= 255.f;
if (this->PixelFormat == Alpha) if (this->PixelFormat == Alpha)
return CRGBAF (1.f, 1.f, 1.f, finalVal); return CRGBAF (1.f, 1.f, 1.f, finalVal);
else // Luminance else // Luminance
return CRGBAF (finalVal, finalVal, finalVal, 1.f); return CRGBAF (finalVal, finalVal, finalVal, 1.f);
}
break;
default: break;
} }
break;
default: break;
} }
return CRGBAF (0.0f, 0.0f, 0.0f, 0.0f); return CRGBAF (0.0f, 0.0f, 0.0f, 0.0f);
@ -3626,7 +3628,7 @@ void CBitmap::loadSize(NLMISC::IStream &f, uint32 &retWidth, uint32 &retHeight)
{ {
uint8 imagePrecision = 0; // sample precision uint8 imagePrecision = 0; // sample precision
uint32 imageSize = 0; // width and height uint32 imageSize = 0; // width and height
f.serial(imagePrecision); f.serial(imagePrecision);
f.serial(imageSize); f.serial(imageSize);
NLMISC_BSWAP32(imageSize); NLMISC_BSWAP32(imageSize);

@ -3,7 +3,7 @@
// //
// This source file has been modified by the following contributors: // This source file has been modified by the following contributors:
// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter) <dfighter1985@gmail.com> // Copyright (C) 2013 Laszlo KIS-ADAM (dfighter) <dfighter1985@gmail.com>
// Copyright (C) 2014-2020 Jan BOON (Kaetemi) <jan.boon@kaetemi.be> // Copyright (C) 2016 Jan BOON (Kaetemi) <jan.boon@kaetemi.be>
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as // it under the terms of the GNU Affero General Public License as
@ -99,9 +99,6 @@ void CCDBNodeLeaf::init( xmlNodePtr node, IProgressCallback &/* progressCallBac
// IF it is a TEXT. // IF it is a TEXT.
if(!strcmp(type, "TEXT")) if(!strcmp(type, "TEXT"))
_Type = ICDBNode::TEXT; _Type = ICDBNode::TEXT;
// IF it is a PACKED.
else if (!strcmp(type, "PACKED"))
_Type = ICDBNode::PACKED;
// ELSE type unknown. // ELSE type unknown.
else else
{ {
@ -146,15 +143,6 @@ void CCDBNodeLeaf::write( CTextId& id, FILE * f)
fprintf(f,"%" NL_I64 "d\t%s\n",_Property,id.toString().c_str()); fprintf(f,"%" NL_I64 "d\t%s\n",_Property,id.toString().c_str());
} // write // } // write //
inline uint readPackedBitCount(CBitMemStream & f)
{
uint64 nibbleCount;
f.serial(nibbleCount, 4);
uint bits = (nibbleCount << 2) + 4;
// nlinfo("PACKED: %u bits", (uint32)(bits));
return bits;
}
//----------------------------------------------- //-----------------------------------------------
// readDelta // readDelta
//----------------------------------------------- //-----------------------------------------------
@ -173,18 +161,14 @@ void CCDBNodeLeaf::readDelta(TGameCycle gc, CBitMemStream & f )
} }
uint bits; uint bits;
if (!isNull) if (_Type == TEXT)
{ bits = 32;
if (_Type == TEXT) else if (_Type <= I64)
bits = 32; bits = _Type;
else if (_Type == PACKED) else
bits = readPackedBitCount(f); bits = _Type - 64;
else if (_Type <= I64) f.serial(recvd, bits);
bits = _Type;
else
bits = _Type - 64;
f.serial(recvd, bits);
}
// if the DB update is older than last DB update, abort (but after the read!!) // if the DB update is older than last DB update, abort (but after the read!!)
if(gc<_LastChangeGC) if(gc<_LastChangeGC)
@ -197,24 +181,18 @@ void CCDBNodeLeaf::readDelta(TGameCycle gc, CBitMemStream & f )
_Property = (sint64)recvd; _Property = (sint64)recvd;
// if signed // if signed
if (! ((_Type == TEXT) || (_Type == PACKED) || (_Type <= I64))) if (! ((_Type == TEXT) || (_Type <= I64)))
{ {
if (!isNull) // extend bit sign
sint64 mask = (((sint64)1)<<bits)-(sint64)1;
if( (_Property >> (bits-1))==1 )
{ {
// extend bit sign _Property |= ~mask;
sint64 mask = (((sint64)1)<<bits)-(sint64)1;
if( (_Property >> (bits-1))==1 )
{
_Property |= ~mask;
}
} }
} }
if ( verboseDatabase ) if ( verboseDatabase )
{ {
if (!isNull) nlinfo( "CDB: Read value (%u bits) %" NL_I64 "d", bits, _Property );
nlinfo( "CDB: Read value (%u bits) %" NL_I64 "d", bits, _Property );
else
nlinfo( "CDB: Read null value %" NL_I64 "d", _Property );
} }
// bkup the date of change // bkup the date of change

@ -52,8 +52,9 @@ ICommand::ICommand(const char *categoryName, const char *commandName, const char
if (comm != LocalCommands->end ()) if (comm != LocalCommands->end ())
{ {
nlinfo("command with same name: %s", commandName);
// 2 commands have the same name // 2 commands have the same name
nlstopex (("There are 2 commands that have the same name in the project (command name '%s'), skip the second definition", commandName)); // nlstopex (("There are 2 commands that have the same name in the project (command name '%s'), skip the second definition", commandName));
} }
else else
{ {

@ -288,7 +288,7 @@ void CEntityIdTranslator::registerEntity (const CEntityId &eid, const ucstring &
return; return;
} }
nlinfo ("EIT: Register EId %s EntityName '%s' UId %d UserName '%s'", reid.toString().c_str(), entityName.toString().c_str(), uid, userName.c_str()); //nlinfo ("EIT: Register EId %s EntityName '%s' UId %d UserName '%s'", reid.toString().c_str(), entityName.toString().c_str(), uid, userName.c_str());
RegisteredEntities.insert (make_pair(reid, CEntityIdTranslator::CEntity(entityName, uid, userName, entitySlot, shardId))); RegisteredEntities.insert (make_pair(reid, CEntityIdTranslator::CEntity(entityName, uid, userName, entitySlot, shardId)));
NameIndex.insert(make_pair(toLower(entityName), reid)); NameIndex.insert(make_pair(toLower(entityName), reid));
} }

@ -17,7 +17,6 @@
// You should have received a copy of the GNU Affero General Public License // You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "stdmisc.h"
#include <nel/misc/seven_zip.h> #include <nel/misc/seven_zip.h>
#include <nel/misc/types_nl.h> #include <nel/misc/types_nl.h>

@ -1333,7 +1333,7 @@ uint64 CSystemInfo::getProcessorFrequency(bool quick)
static bool DetectMMX() static bool DetectMMX()
{ {
#if defined(NL_CPU_INTEL) && (defined(HAVE_X86_64) || !defined(NL_COMP_GCC)) #ifdef NL_CPU_INTEL
if (!CSystemInfo::hasCPUID()) return false; // cpuid not supported ... if (!CSystemInfo::hasCPUID()) return false; // cpuid not supported ...
sint32 CPUInfo[4]; sint32 CPUInfo[4];
@ -1348,7 +1348,7 @@ static bool DetectMMX()
static bool DetectSSE() static bool DetectSSE()
{ {
#if defined(NL_CPU_INTEL) && (defined(HAVE_X86_64) || !defined(NL_COMP_GCC)) #ifdef NL_CPU_INTEL
if (!CSystemInfo::hasCPUID()) return false; // cpuid not supported ... if (!CSystemInfo::hasCPUID()) return false; // cpuid not supported ...
sint32 CPUInfo[4]; sint32 CPUInfo[4];

@ -612,7 +612,7 @@ void initAdmin (bool dontUseAES)
{ {
CUnifiedNetwork::getInstance()->setServiceUpCallback ("AES", cbAESConnection, NULL); CUnifiedNetwork::getInstance()->setServiceUpCallback ("AES", cbAESConnection, NULL);
CUnifiedNetwork::getInstance()->setServiceDownCallback ("AES", cbAESDisconnection, NULL); CUnifiedNetwork::getInstance()->setServiceDownCallback ("AES", cbAESDisconnection, NULL);
CUnifiedNetwork::getInstance()->addService ("AES", CInetAddress("localhost:43997")); CUnifiedNetwork::getInstance()->addService ("AES", CInetAddress("localhost:49997"));
} }
CUnifiedNetwork::getInstance()->addCallbackArray (CallbackArray, sizeof(CallbackArray)/sizeof(CallbackArray[0])); CUnifiedNetwork::getInstance()->addCallbackArray (CallbackArray, sizeof(CallbackArray)/sizeof(CallbackArray[0]));
} }

@ -141,7 +141,7 @@ string CLoginClient::authenticateBegin(const string &loginServiceAddr, const ucs
string addr = loginServiceAddr; string addr = loginServiceAddr;
if(addr.find(":") == string::npos) if(addr.find(":") == string::npos)
addr += ":43997"; addr += ":49997";
if(_LSCallbackClient->connected()) if(_LSCallbackClient->connected())
_LSCallbackClient->disconnect(); _LSCallbackClient->disconnect();
_LSCallbackClient->connect (CInetAddress(addr)); _LSCallbackClient->connect (CInetAddress(addr));

@ -266,14 +266,9 @@ void uncbServiceIdentification(CMessage &msgin, TSockId from, CCallbackNetBase &
nlinfo ("HNETL5: + connect ident '%s' %s-%hu pos %hu ext %d", from->asString().c_str(), inSName.c_str(), inSid.get(), (uint16)pos, (uint8)isExternal); nlinfo ("HNETL5: + connect ident '%s' %s-%hu pos %hu ext %d", from->asString().c_str(), inSName.c_str(), inSid.get(), (uint16)pos, (uint8)isExternal);
if (isExternal) if(isExternal)
{ {
nlassert (pos == 0);
#ifdef NL_OS_WINDOWS
pos = 0;
#else
nlassert(pos == 0);
#endif
} }
if (inSid.get() == 0) if (inSid.get() == 0)

@ -2,7 +2,7 @@
// Copyright (C) 2010-2019 Winch Gate Property Limited // Copyright (C) 2010-2019 Winch Gate Property Limited
// //
// This source file has been modified by the following contributors: // This source file has been modified by the following contributors:
// Copyright (C) 2019-2020 Jan BOON (Kaetemi) <jan.boon@kaetemi.be> // Copyright (C) 2020 Jan BOON (Kaetemi) <jan.boon@kaetemi.be>
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as // it under the terms of the GNU Affero General Public License as
@ -418,8 +418,7 @@ void CMoveContainer::updateCells (CMovePrimitive *primitive, uint8 worldImage)
CPrimitiveWorldImage *wI=primitive->getWorldImage (worldImage); CPrimitiveWorldImage *wI=primitive->getWorldImage (worldImage);
#if !FINAL_VERSION #if !FINAL_VERSION
#ifndef RYZOM_FORGE /* // Check BB width not too large
// Check BB width not too large
if (wI->getBBXMax() - wI->getBBXMin() > _CellWidth) if (wI->getBBXMax() - wI->getBBXMin() > _CellWidth)
{ {
nlwarning ("Primitives have moved more than a cell, width: %f.", (float)(wI->getBBXMax() - wI->getBBXMin())); nlwarning ("Primitives have moved more than a cell, width: %f.", (float)(wI->getBBXMax() - wI->getBBXMin()));
@ -430,7 +429,7 @@ void CMoveContainer::updateCells (CMovePrimitive *primitive, uint8 worldImage)
{ {
nlwarning ("Primitives have moved more than a cell, height: %f.", (float)(wI->getBBYMax() - wI->getBBYMin())); nlwarning ("Primitives have moved more than a cell, height: %f.", (float)(wI->getBBYMax() - wI->getBBYMin()));
} }
#endif */
#endif #endif
// Get coordinate in the cell array // Get coordinate in the cell array

@ -113,7 +113,7 @@ INCLUDE_DIRECTORIES(${OGG_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(nelsound ${VORBISFILE_LIBRARY} ${VORBIS_LIBRARY}) TARGET_LINK_LIBRARIES(nelsound ${VORBISFILE_LIBRARY} ${VORBIS_LIBRARY})
IF(WITH_STATIC OR ${VORBISFILE_LIBRARY} MATCHES "\\.a") IF(WITH_STATIC)
# Add libogg dependency only if target is static because to libvorbisfile # Add libogg dependency only if target is static because to libvorbisfile
TARGET_LINK_LIBRARIES(nelsound ${OGG_LIBRARY}) TARGET_LINK_LIBRARIES(nelsound ${OGG_LIBRARY})
ENDIF() ENDIF()

@ -180,17 +180,13 @@ uint32 CAudioDecoderVorbis::getNextBytes(uint8 *buffer, uint32 minimum, uint32 m
nlwarning("ov_read returned OV_HOLE"); nlwarning("ov_read returned OV_HOLE");
break; break;
case OV_EINVAL: case OV_EINVAL:
_IsMusicEnded = true;
nlwarning("ov_read returned OV_EINVAL"); nlwarning("ov_read returned OV_EINVAL");
break; break;
case OV_EBADLINK: case OV_EBADLINK:
_IsMusicEnded = true;
nlwarning("ov_read returned OV_EBADLINK"); nlwarning("ov_read returned OV_EBADLINK");
break; break;
default: default:
_IsMusicEnded = true;
nlwarning("ov_read returned %d", br); nlwarning("ov_read returned %d", br);
break;
} }
} }
} while (bytes_read < minimum); } while (bytes_read < minimum);

@ -131,39 +131,6 @@ CAudioMixerUser::CAudioMixerUser() : _AutoLoadSample(false),
} }
} }
// ******************************************************************
std::vector<UAudioMixer::TDriverInfo> UAudioMixer::getDrivers()
{
std::vector<TDriverInfo> drivers;
std::vector<ISoundDriver::TDriver> drv = ISoundDriver::getAvailableDrivers();
for(uint i = 0; i < drv.size(); ++i)
{
switch(drv[i])
{
case ISoundDriver::DriverAuto:
drivers.push_back(TDriverInfo(DriverAuto, ISoundDriver::getDriverName(drv[i])));
break;
case ISoundDriver::DriverFMod:
drivers.push_back(TDriverInfo(DriverFMod, ISoundDriver::getDriverName(drv[i])));
break;
case ISoundDriver::DriverDSound:
drivers.push_back(TDriverInfo(DriverDSound, ISoundDriver::getDriverName(drv[i])));
break;
case ISoundDriver::DriverOpenAl:
drivers.push_back(TDriverInfo(DriverOpenAl, ISoundDriver::getDriverName(drv[i])));
break;
case ISoundDriver::DriverXAudio2:
drivers.push_back(TDriverInfo(DriverXAudio2, ISoundDriver::getDriverName(drv[i])));
break;
default:
nlwarning("Unknown driver id %d, name '%s'", drv[i], ISoundDriver::getDriverName(drv[i]));
break;
}
}
return drivers;
}
// ****************************************************************** // ******************************************************************
@ -407,42 +374,16 @@ void CAudioMixerUser::initDriver(const std::string &driverName)
std::string dn = NLMISC::toLowerAscii(driverName); std::string dn = NLMISC::toLowerAscii(driverName);
nldebug("AM: Init Driver '%s' ('%s')...", driverName.c_str(), dn.c_str()); nldebug("AM: Init Driver '%s' ('%s')...", driverName.c_str(), dn.c_str());
TDriver driverId = dn == "auto" ? DriverAuto : NumDrivers;
if (driverId == NumDrivers)
{
std::vector<TDriverInfo> drivers = UAudioMixer::getDrivers();
for(uint i = 0; i < drivers.size(); ++i)
{
if (nlstricmp(drivers[i].Name, dn.c_str()) == 0)
{
driverId = drivers[i].ID;
break;
}
}
}
ISoundDriver::TDriver driverType; ISoundDriver::TDriver driverType;
switch(driverId) if (dn == "auto") driverType = ISoundDriver::DriverAuto;
{ else if (dn == "fmod") driverType = ISoundDriver::DriverFMod;
case DriverAuto: else if (dn == "dsound") driverType = ISoundDriver::DriverDSound;
driverType = ISoundDriver::DriverAuto; else if (dn == "openal") driverType = ISoundDriver::DriverOpenAl;
break; else if (dn == "xaudio2") driverType = ISoundDriver::DriverXAudio2;
case DriverFMod: else
driverType = ISoundDriver::DriverFMod; {
break; driverType = ISoundDriver::DriverAuto;
case DriverDSound: nlwarning("AM: driverName value '%s' ('%s') is invalid.", driverName.c_str(), dn.c_str());
driverType = ISoundDriver::DriverDSound;
break;
case DriverOpenAl:
driverType = ISoundDriver::DriverOpenAl;
break;
case DriverXAudio2:
driverType = ISoundDriver::DriverXAudio2;
break;
case NumDrivers:
driverType = ISoundDriver::DriverAuto;
nlwarning("AM: driverName value '%s' ('%s') is not available.", driverName.c_str(), dn.c_str());
break;
} }
try try

@ -57,7 +57,7 @@ namespace NLSOUND
/// Interface version, increase when any part of sound_lowlevel is changed. /// Interface version, increase when any part of sound_lowlevel is changed.
/// Put your name in comment to make sure you don't commit with /// Put your name in comment to make sure you don't commit with
/// the same interface version number as someone else. /// the same interface version number as someone else.
const uint32 ISoundDriver::InterfaceVersion = 0x17; // Nimetu const uint32 ISoundDriver::InterfaceVersion = 0x16; // Kaetemi
#ifdef NL_STATIC #ifdef NL_STATIC
@ -104,138 +104,6 @@ const char *ISoundDriver::getDriverName(TDriver driverType)
} }
} }
/// Return driver filename from type.
std::string ISoundDriver::getDriverFileName(TDriver driverType)
{
switch(driverType)
{
case DriverFMod:
#if defined (NL_COMP_MINGW)
return "libnel_drv_fmod_win";
#elif defined (NL_OS_WINDOWS)
return "nel_drv_fmod_win";
#elif defined (NL_OS_UNIX)
return "nel_drv_fmod";
#else
# error "Driver name not define for this platform"
#endif // NL_OS_UNIX / NL_OS_WINDOWS
break;
case DriverOpenAl:
#if defined (NL_COMP_MINGW)
return "libnel_drv_openal_win";
#elif defined (NL_OS_WINDOWS)
return "nel_drv_openal_win";
#elif defined (NL_OS_UNIX)
return "nel_drv_openal";
#else
# error "Driver name not define for this platform"
#endif
break;
case DriverDSound:
#if defined (NL_COMP_MINGW)
return "libnel_drv_dsound_win";
#elif defined (NL_OS_WINDOWS)
return "nel_drv_dsound_win";
#elif defined (NL_OS_UNIX)
return "";
#else
# error "Driver name not define for this platform"
#endif
break;
case DriverXAudio2:
#if defined (NL_COMP_MINGW)
return "libnel_drv_xaudio2_win";
#elif defined (NL_OS_WINDOWS)
return "nel_drv_xaudio2_win";
#elif defined (NL_OS_UNIX)
return "";
#else
# error "Driver name not define for this platform"
#endif
break;
case DriverAuto:
#if defined (NL_COMP_MINGW)
return "libnel_drv_xaudio2_win";
#elif defined (NL_OS_WINDOWS)
return "nel_drv_xaudio2_win";
#elif defined (NL_OS_UNIX)
return "nel_drv_openal";
#else
# error "Driver name not define for this platform"
#endif
break;
default:
break;
}
return "";
}
///
std::vector<ISoundDriver::TDriver> ISoundDriver::getAvailableDrivers()
{
static std::vector<TDriver> m_AvailableDrivers;
if (!m_AvailableDrivers.empty())
return m_AvailableDrivers;
#ifdef NL_STATIC
# ifdef NL_FMOD_AVAILABLE
m_AvailableDrivers.push_back(DriverFMod);
# endif
# ifdef NL_OPENAL_AVAILABLE
m_AvailableDrivers.push_back(DriverOpenAl);
# endif
# ifdef NL_DSOUND_AVAILABLE
m_AvailableDrivers.push_back(DriverDSound);
# endif
# ifdef NL_XAUDIO2_AVAILABLE
m_AvailableDrivers.push_back(DriverXAudio2);
# endif
#else // NL_STATIC
const std::vector<TDriver> vec = {
DriverFMod,
DriverOpenAl,
DriverDSound,
DriverXAudio2,
};
#if 0
// if platform has dynamic driver name set, consider it as available
for(uint i = 0; i < vec.size(); i++)
{
std::string dllName = getDriverFileName(vec[i]);
if(!dllName.empty())
m_AvailableDrivers.push_back(vec[i]);
}
#else
CLibrary driverLib;
#if defined(NL_OS_UNIX) && defined(NL_DRIVER_PREFIX)
driverLib.addLibPath(NL_DRIVER_PREFIX);
#endif
nlinfo("Detecting available sound drivers");
for(uint i = 0; i < vec.size(); i++)
{
std::string dllName = getDriverFileName(vec[i]);
if(!dllName.empty())
{
// Load it (adding standard nel pre/suffix, looking in library path and taking ownership)
if (driverLib.loadLibrary(dllName, true, true, true))
{
m_AvailableDrivers.push_back(vec[i]);
driverLib.freeLibrary();
}
}
}
#endif
#endif
return m_AvailableDrivers;
}
/* /*
* The static method which builds the sound driver instance * The static method which builds the sound driver instance
*/ */
@ -283,9 +151,67 @@ ISoundDriver *ISoundDriver::createDriver(IStringMapperProvider *stringMapper, TD
ISDRV_VERSION_PROC versionDriver = NULL; ISDRV_VERSION_PROC versionDriver = NULL;
// dll selected // dll selected
std::string dllName = getDriverFileName(driverType); std::string dllName;
if (dllName.empty())
throw ESoundDriverCantCreateDriver(("Driver '%s' not available for this platform", ISoundDriver::getDriverName(driverType))); // Choose the DLL
switch(driverType)
{
case DriverFMod:
#if defined (NL_COMP_MINGW)
dllName = "libnel_drv_fmod_win";
#elif defined (NL_OS_WINDOWS)
dllName = "nel_drv_fmod_win";
#elif defined (NL_OS_UNIX)
dllName = "nel_drv_fmod";
#else
# error "Driver name not define for this platform"
#endif // NL_OS_UNIX / NL_OS_WINDOWS
break;
case DriverOpenAl:
#if defined (NL_COMP_MINGW)
dllName = "libnel_drv_openal_win";
#elif defined (NL_OS_WINDOWS)
dllName = "nel_drv_openal_win";
#elif defined (NL_OS_UNIX)
dllName = "nel_drv_openal";
#else
# error "Driver name not define for this platform"
#endif
break;
case DriverDSound:
#if defined (NL_COMP_MINGW)
dllName = "libnel_drv_dsound_win";
#elif defined (NL_OS_WINDOWS)
dllName = "nel_drv_dsound_win";
#elif defined (NL_OS_UNIX)
nlerror("DriverDSound doesn't exist on Unix because it requires DirectX");
#else
# error "Driver name not define for this platform"
#endif
break;
case DriverXAudio2:
#if defined (NL_COMP_MINGW)
dllName = "libnel_drv_xaudio2_win";
#elif defined (NL_OS_WINDOWS)
dllName = "nel_drv_xaudio2_win";
#elif defined (NL_OS_UNIX)
nlerror("DriverXAudio2 doesn't exist on Unix because it requires DirectX");
#else
# error "Driver name not define for this platform"
#endif
break;
default:
#if defined (NL_COMP_MINGW)
dllName = "libnel_drv_xaudio2_win";
#elif defined (NL_OS_WINDOWS)
dllName = "nel_drv_xaudio2_win";
#elif defined (NL_OS_UNIX)
dllName = "nel_drv_openal";
#else
# error "Driver name not define for this platform"
#endif
break;
}
CLibrary driverLib; CLibrary driverLib;

@ -262,7 +262,7 @@ void CSound::importForm(const std::string& filename, NLGEORGES::UFormElm& roo
_GroupController = CGroupControllerRoot::getInstance()->getGroupController(NLSOUND_SHEET_V1_DEFAULT_SOUND_GROUP_CONTROLLER); _GroupController = CGroupControllerRoot::getInstance()->getGroupController(NLSOUND_SHEET_V1_DEFAULT_SOUND_GROUP_CONTROLLER);
#else #else
std::string groupControllerPath; std::string groupControllerPath;
root.getValueByName(groupControllerPath, ".GroupController"); root.getValueByName(groupControllerPath, ".GroupControllerPath");
_GroupController = CGroupControllerRoot::getInstance()->getGroupController(groupControllerPath); _GroupController = CGroupControllerRoot::getInstance()->getGroupController(groupControllerPath);
#endif #endif

@ -21,3 +21,5 @@
// and not in this file // and not in this file
#include "stdafx.h" #include "stdafx.h"
void nlmax_shared_stdafx_dummy() { }

@ -18,3 +18,6 @@
// along with this program. If not, see <http://www.gnu.org/licenses/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "std_afx.h" #include "std_afx.h"
void nlmax_nel_export_std_afx_dummy() { }

@ -19,3 +19,6 @@
#include "stdafx.h" #include "stdafx.h"
void nlmax_mesh_library_stdafx_dummy() { }

@ -1 +1,3 @@
#include "stdafx.h" #include "stdafx.h"
void nlmax_patch_edit_stdafx_dummy() { }

@ -18,3 +18,5 @@
// along with this program. If not, see <http://www.gnu.org/licenses/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "stdafx.h" #include "stdafx.h"
void nlmax_patch_library_stdafx_dummy() { }

@ -1 +1,3 @@
#include "stdafx.h" #include "stdafx.h"
void nlmax_patch_painter_stdafx_dummy() { }

@ -65,220 +65,158 @@ if not args.noconf:
except NameError: except NameError:
BuildQuality = 1 BuildQuality = 1
try: try:
if args.preset: if not args.preset:
DummyUnknownName ToolDirectories
RemapLocalFrom
except NameError: except NameError:
RemapLocalFrom = 'R:' ToolDirectories = [ 'R:/distribution/nel_tools_win_x64-distribution', 'R:/distribution/ryzom_tools_win_x64-distribution' ]
try:
if args.preset:
DummyUnknownName
RemapLocalTo
except NameError:
RemapLocalTo = os.getenv('RC_ROOT').replace('\\', '/')
if (not RemapLocalTo) or (not ':' in RemapLocalTo):
RemapLocalTo = 'R:'
try:
if args.preset:
DummyUnknownName
ToolDirectories
except NameError:
ToolDirectories = [ 'R:/distribution/nel_tools_win_x64', 'R:/distribution/ryzom_tools_win_x64' ]
try: try:
ToolSuffix ToolSuffix
except NameError: except NameError:
ToolSuffix = ".exe" ToolSuffix = ".exe"
try: try:
if args.preset: if not args.preset:
DummyUnknownName ScriptDirectory
ScriptDirectory
except NameError: except NameError:
ScriptDirectory = "R:/code/nel/tools/build_gamedata" ScriptDirectory = "R:/code/nel/tools/build_gamedata"
try: try:
if args.preset: if not args.preset:
DummyUnknownName WorkspaceDirectory
WorkspaceDirectory
except NameError: except NameError:
WorkspaceDirectory = "R:/leveldesign/workspace" WorkspaceDirectory = "R:/leveldesign/workspace"
try: try:
if args.preset: if not args.preset:
DummyUnknownName DatabaseDirectory
DatabaseDirectory
except NameError: except NameError:
DatabaseDirectory = "R:/graphics" DatabaseDirectory = "R:/graphics"
try: try:
if args.preset: if not args.preset:
DummyUnknownName SoundDirectory
SoundDirectory
except NameError: except NameError:
SoundDirectory = "R:/sound" SoundDirectory = "R:/sound"
try: try:
if args.preset: if not args.preset:
DummyUnknownName SoundDfnDirectory
SoundDfnDirectory
except NameError: except NameError:
SoundDfnDirectory = "R:/sound/DFN" SoundDfnDirectory = "R:/sound/DFN"
try: try:
if args.preset: if not args.preset:
DummyUnknownName ExportBuildDirectory
ExportBuildDirectory
except NameError: except NameError:
ExportBuildDirectory = "R:/pipeline/export" ExportBuildDirectory = "R:/pipeline/export"
try: try:
if args.preset: if not args.preset:
DummyUnknownName InstallDirectory
InstallDirectory
except NameError: except NameError:
InstallDirectory = "R:/pipeline/install" InstallDirectory = "R:/pipeline/install"
try: try:
if args.preset: if not args.preset:
DummyUnknownName ClientDevDirectory
ClientDevDirectory
except NameError: except NameError:
ClientDevDirectory = "R:/pipeline/client_dev" ClientDevDirectory = "R:/pipeline/client_dev"
try: try:
if args.preset: if not args.preset:
DummyUnknownName ClientPatchDirectory
ClientDevLiveDirectory
except NameError:
ClientDevLiveDirectory = "R:/pipeline/client_dev_live"
try:
if args.preset:
DummyUnknownName
ClientPatchDirectory
except NameError: except NameError:
ClientPatchDirectory = "R:/pipeline/client_patch" ClientPatchDirectory = "R:/pipeline/client_patch"
try: try:
if args.preset: if not args.preset:
DummyUnknownName ClientInstallDirectory
ClientInstallDirectory
except NameError: except NameError:
ClientInstallDirectory = "R:/pipeline/client_install" ClientInstallDirectory = "R:/pipeline/client_install"
try: try:
if args.preset: if not args.preset:
DummyUnknownName ShardInstallDirectory
ShardInstallDirectory
except NameError: except NameError:
ShardInstallDirectory = "R:/pipeline/shard" ShardInstallDirectory = "R:/pipeline/shard"
try: try:
if args.preset: if not args.preset:
DummyUnknownName WorldEditInstallDirectory
ShardDevDirectory
except NameError:
ShardDevDirectory = "R:/pipeline/shard_dev"
try:
if args.preset:
DummyUnknownName
WorldEditInstallDirectory
except NameError: except NameError:
WorldEditInstallDirectory = "R:/pipeline/worldedit" WorldEditInstallDirectory = "R:/pipeline/worldedit"
try: try:
if args.preset: if not args.preset:
DummyUnknownName WorldEditorFilesDirectory
WorldEditorFilesDirectory
except NameError: except NameError:
WorldEditorFilesDirectory = "R:/code/ryzom/common/data_leveldesign/leveldesign/world_editor_files" WorldEditorFilesDirectory = "R:/code/ryzom/common/data_leveldesign/leveldesign/world_editor_files"
try: try:
if args.preset: if not args.preset:
DummyUnknownName LeveldesignDirectory
LeveldesignDirectory
except NameError: except NameError:
LeveldesignDirectory = "R:/leveldesign" LeveldesignDirectory = "R:/leveldesign"
try: try:
if args.preset: if not args.preset:
DummyUnknownName LeveldesignDfnDirectory
LeveldesignDfnDirectory
except NameError: except NameError:
LeveldesignDfnDirectory = "R:/leveldesign/DFN" LeveldesignDfnDirectory = "R:/leveldesign/DFN"
try: try:
if args.preset: if not args.preset:
DummyUnknownName LeveldesignWorldDirectory
LeveldesignWorldDirectory
except NameError: except NameError:
LeveldesignWorldDirectory = "R:/leveldesign/world" LeveldesignWorldDirectory = "R:/leveldesign/world"
try: try:
if args.preset: if not args.preset:
DummyUnknownName PrimitivesDirectory
PrimitivesDirectory
except NameError: except NameError:
PrimitivesDirectory = "R:/leveldesign/primitives" PrimitivesDirectory = "R:/leveldesign/primitives"
try: try:
if args.preset: if not args.preset:
DummyUnknownName LeveldesignDataCommonDirectory
LeveldesignDataCommonDirectory
except NameError: except NameError:
LeveldesignDataCommonDirectory = "R:/leveldesign/common" LeveldesignDataCommonDirectory = "R:/leveldesign/common"
try: try:
if args.preset: if not args.preset:
DummyUnknownName LeveldesignDataShardDirectory
LeveldesignDataShardDirectory
except NameError: except NameError:
LeveldesignDataShardDirectory = "R:/leveldesign/shard" LeveldesignDataShardDirectory = "R:/leveldesign/shard"
try: try:
if args.preset: if not args.preset:
DummyUnknownName TranslationDirectory
TranslationDirectory
except NameError: except NameError:
TranslationDirectory = "R:/leveldesign/translation" TranslationDirectory = "R:/leveldesign/translation"
try: try:
if args.preset: if not args.preset:
DummyUnknownName GamedevDirectory
GamedevDirectory
except NameError: except NameError:
GamedevDirectory = "R:/code/ryzom/client/data/gamedev" GamedevDirectory = "R:/code/ryzom/client/data/gamedev"
try: try:
if args.preset: if not args.preset:
DummyUnknownName DataCommonDirectory
DataCommonDirectory
except NameError: except NameError:
DataCommonDirectory = "R:/code/ryzom/common/data_common" DataCommonDirectory = "R:/code/ryzom/common/data_common"
try: try:
if args.preset: if not args.preset:
DummyUnknownName DataShardDirectory
DataShardDirectory
except NameError: except NameError:
DataShardDirectory = "R:/code/ryzom/server/data_shard" DataShardDirectory = "R:/code/ryzom/server/data_shard"
try: try:
if args.preset: if not args.preset:
DummyUnknownName WindowsExeDllCfgDirectories
WindowsExeDllCfgDirectories
except NameError: except NameError:
# TODO: Separate 64bit and 32bit # TODO: Separate 64bit and 32bit
WindowsExeDllCfgDirectories = [ '', 'R:/build/fv_x64/bin/Release', 'R:/distribution/external_x64', 'R:/code/ryzom/client', '', '', '' ] WindowsExeDllCfgDirectories = [ '', 'R:/build/fv_x64/bin/Release', 'R:/distribution/external_x64', 'R:/code/ryzom/client', '', '', '' ]
try: try:
if args.preset: if not args.preset:
DummyUnknownName LinuxServiceExecutableDirectory
LinuxServiceExecutableDirectory
except NameError:
LinuxServiceExecutableDirectory = "R:/build/server_gcc/bin"
try:
if args.preset:
DummyUnknownName
LinuxClientExecutableDirectory
except NameError: except NameError:
LinuxClientExecutableDirectory = "R:/build/client_gcc/bin" LinuxServiceExecutableDirectory = "R:/build/gcc_server/bin"
try: try:
if args.preset: if not args.preset:
DummyUnknownName LinuxClientExecutableDirectory
PatchmanDevDirectory
except NameError: except NameError:
PatchmanDevDirectory = "R:/patchman/terminal_dev" LinuxClientExecutableDirectory = "R:/build/gcc_client/bin"
try: try:
if args.preset: if not args.preset:
DummyUnknownName PatchmanCfgAdminDirectory
PatchmanCfgAdminDirectory
except NameError: except NameError:
PatchmanCfgAdminDirectory = "R:/patchman/admin_install" PatchmanCfgAdminDirectory = "R:/patchman/admin_install"
try: try:
if args.preset: if not args.preset:
DummyUnknownName PatchmanCfgDefaultDirectory
PatchmanCfgDefaultDirectory
except NameError: except NameError:
PatchmanCfgDefaultDirectory = "R:/patchman/default" PatchmanCfgDefaultDirectory = "R:/patchman/default"
try: try:
if args.preset: if not args.preset:
DummyUnknownName PatchmanBridgeServerDirectory
PatchmanBridgeServerDirectory
except NameError: except NameError:
PatchmanBridgeServerDirectory = "R:/pipeline/bridge_server" PatchmanBridgeServerDirectory = "R:/pipeline/bridge_server"
try: try:
@ -338,11 +276,9 @@ if not args.noconf:
ExportBuildDirectory = askVar(log, "[OUT] Export Build Directory", ExportBuildDirectory).replace("\\", "/") ExportBuildDirectory = askVar(log, "[OUT] Export Build Directory", ExportBuildDirectory).replace("\\", "/")
InstallDirectory = askVar(log, "[OUT] Install Directory", InstallDirectory).replace("\\", "/") InstallDirectory = askVar(log, "[OUT] Install Directory", InstallDirectory).replace("\\", "/")
ClientDevDirectory = askVar(log, "[OUT] Client Dev Directory", ClientDevDirectory).replace("\\", "/") ClientDevDirectory = askVar(log, "[OUT] Client Dev Directory", ClientDevDirectory).replace("\\", "/")
ClientDevLiveDirectory = askVar(log, "[OUT] Client Dev Live Directory", ClientDevLiveDirectory).replace("\\", "/")
ClientPatchDirectory = askVar(log, "[OUT] Client Patch Directory", ClientPatchDirectory).replace("\\", "/") ClientPatchDirectory = askVar(log, "[OUT] Client Patch Directory", ClientPatchDirectory).replace("\\", "/")
ClientInstallDirectory = askVar(log, "[OUT] Client Install Directory", ClientInstallDirectory).replace("\\", "/") ClientInstallDirectory = askVar(log, "[OUT] Client Install Directory", ClientInstallDirectory).replace("\\", "/")
ShardInstallDirectory = askVar(log, "[OUT] Shard Data Install Directory", ShardInstallDirectory).replace("\\", "/") ShardInstallDirectory = askVar(log, "[OUT] Shard Data Install Directory", ShardInstallDirectory).replace("\\", "/")
ShardDevDirectory = askVar(log, "[OUT] Shard Dev Directory", ShardDevDirectory).replace("\\", "/")
WorldEditInstallDirectory = askVar(log, "[OUT] World Edit Data Install Directory", WorldEditInstallDirectory).replace("\\", "/") WorldEditInstallDirectory = askVar(log, "[OUT] World Edit Data Install Directory", WorldEditInstallDirectory).replace("\\", "/")
LeveldesignDirectory = askVar(log, "[IN] Leveldesign Directory", LeveldesignDirectory).replace("\\", "/") LeveldesignDirectory = askVar(log, "[IN] Leveldesign Directory", LeveldesignDirectory).replace("\\", "/")
LeveldesignDfnDirectory = askVar(log, "[IN] Leveldesign DFN Directory", LeveldesignDfnDirectory).replace("\\", "/") LeveldesignDfnDirectory = askVar(log, "[IN] Leveldesign DFN Directory", LeveldesignDfnDirectory).replace("\\", "/")
@ -364,7 +300,6 @@ if not args.noconf:
WindowsExeDllCfgDirectories[6] = askVar(log, "[IN] Septenary Windows exe/dll/cfg Directory", WindowsExeDllCfgDirectories[6]).replace("\\", "/") WindowsExeDllCfgDirectories[6] = askVar(log, "[IN] Septenary Windows exe/dll/cfg Directory", WindowsExeDllCfgDirectories[6]).replace("\\", "/")
LinuxServiceExecutableDirectory = askVar(log, "[IN] Linux Service Executable Directory", LinuxServiceExecutableDirectory).replace("\\", "/") LinuxServiceExecutableDirectory = askVar(log, "[IN] Linux Service Executable Directory", LinuxServiceExecutableDirectory).replace("\\", "/")
LinuxClientExecutableDirectory = askVar(log, "[IN] Linux Client Executable Directory", LinuxClientExecutableDirectory).replace("\\", "/") LinuxClientExecutableDirectory = askVar(log, "[IN] Linux Client Executable Directory", LinuxClientExecutableDirectory).replace("\\", "/")
PatchmanDevDirectory = askVar(log, "[IN] Patchman Directory", PatchmanDevDirectory).replace("\\", "/")
PatchmanCfgAdminDirectory = askVar(log, "[IN] Patchman Cfg Admin Directory", PatchmanCfgAdminDirectory).replace("\\", "/") PatchmanCfgAdminDirectory = askVar(log, "[IN] Patchman Cfg Admin Directory", PatchmanCfgAdminDirectory).replace("\\", "/")
PatchmanCfgDefaultDirectory = askVar(log, "[IN] Patchman Cfg Default Directory", PatchmanCfgDefaultDirectory).replace("\\", "/") PatchmanCfgDefaultDirectory = askVar(log, "[IN] Patchman Cfg Default Directory", PatchmanCfgDefaultDirectory).replace("\\", "/")
PatchmanBridgeServerDirectory = askVar(log, "[OUT] Patchman Bridge Server Patch Directory", PatchmanBridgeServerDirectory).replace("\\", "/") PatchmanBridgeServerDirectory = askVar(log, "[OUT] Patchman Bridge Server Patch Directory", PatchmanBridgeServerDirectory).replace("\\", "/")
@ -415,9 +350,6 @@ if not args.noconf:
sf.write("# Quality option for this site (1 for BEST, 0 for DRAFT)\n") sf.write("# Quality option for this site (1 for BEST, 0 for DRAFT)\n")
sf.write("BuildQuality = " + str(BuildQuality) + "\n") sf.write("BuildQuality = " + str(BuildQuality) + "\n")
sf.write("\n") sf.write("\n")
sf.write("RemapLocalFrom = \"" + str(RemapLocalFrom) + "\"\n")
sf.write("RemapLocalTo = \"" + str(RemapLocalTo) + "\"\n")
sf.write("\n")
sf.write("ToolDirectories = " + str(ToolDirectories) + "\n") sf.write("ToolDirectories = " + str(ToolDirectories) + "\n")
sf.write("ToolSuffix = \"" + str(ToolSuffix) + "\"\n") sf.write("ToolSuffix = \"" + str(ToolSuffix) + "\"\n")
sf.write("\n") sf.write("\n")
@ -434,11 +366,9 @@ if not args.noconf:
sf.write("# Install directories\n") sf.write("# Install directories\n")
sf.write("InstallDirectory = \"" + str(InstallDirectory) + "\"\n") sf.write("InstallDirectory = \"" + str(InstallDirectory) + "\"\n")
sf.write("ClientDevDirectory = \"" + str(ClientDevDirectory) + "\"\n") sf.write("ClientDevDirectory = \"" + str(ClientDevDirectory) + "\"\n")
sf.write("ClientDevLiveDirectory = \"" + str(ClientDevLiveDirectory) + "\"\n")
sf.write("ClientPatchDirectory = \"" + str(ClientPatchDirectory) + "\"\n") sf.write("ClientPatchDirectory = \"" + str(ClientPatchDirectory) + "\"\n")
sf.write("ClientInstallDirectory = \"" + str(ClientInstallDirectory) + "\"\n") sf.write("ClientInstallDirectory = \"" + str(ClientInstallDirectory) + "\"\n")
sf.write("ShardInstallDirectory = \"" + str(ShardInstallDirectory) + "\"\n") sf.write("ShardInstallDirectory = \"" + str(ShardInstallDirectory) + "\"\n")
sf.write("ShardDevDirectory = \"" + str(ShardDevDirectory) + "\"\n")
sf.write("WorldEditInstallDirectory = \"" + str(WorldEditInstallDirectory) + "\"\n") sf.write("WorldEditInstallDirectory = \"" + str(WorldEditInstallDirectory) + "\"\n")
sf.write("\n") sf.write("\n")
sf.write("# Utility directories\n") sf.write("# Utility directories\n")
@ -460,7 +390,6 @@ if not args.noconf:
sf.write("WindowsExeDllCfgDirectories = " + str(WindowsExeDllCfgDirectories) + "\n") sf.write("WindowsExeDllCfgDirectories = " + str(WindowsExeDllCfgDirectories) + "\n")
sf.write("LinuxServiceExecutableDirectory = \"" + str(LinuxServiceExecutableDirectory) + "\"\n") sf.write("LinuxServiceExecutableDirectory = \"" + str(LinuxServiceExecutableDirectory) + "\"\n")
sf.write("LinuxClientExecutableDirectory = \"" + str(LinuxClientExecutableDirectory) + "\"\n") sf.write("LinuxClientExecutableDirectory = \"" + str(LinuxClientExecutableDirectory) + "\"\n")
sf.write("PatchmanDevDirectory = \"" + str(PatchmanDevDirectory) + "\"\n")
sf.write("PatchmanCfgAdminDirectory = \"" + str(PatchmanCfgAdminDirectory) + "\"\n") sf.write("PatchmanCfgAdminDirectory = \"" + str(PatchmanCfgAdminDirectory) + "\"\n")
sf.write("PatchmanCfgDefaultDirectory = \"" + str(PatchmanCfgDefaultDirectory) + "\"\n") sf.write("PatchmanCfgDefaultDirectory = \"" + str(PatchmanCfgDefaultDirectory) + "\"\n")
sf.write("PatchmanBridgeServerDirectory = \"" + str(PatchmanBridgeServerDirectory) + "\"\n") sf.write("PatchmanBridgeServerDirectory = \"" + str(PatchmanBridgeServerDirectory) + "\"\n")
@ -478,18 +407,8 @@ if not args.noconf:
sf.write("\n") sf.write("\n")
sf.write("\n") sf.write("\n")
sf.write("# end of file\n") sf.write("# end of file\n")
sf.flush()
sf.close()
sf = open("configuration/buildsite_local.py", "w")
sfr = open("configuration/buildsite.py", "r")
for l in sfr:
sf.write(l.replace(RemapLocalFrom + '/', RemapLocalTo + '/'))
sf.flush()
sfr.close()
sf.close() sf.close()
from buildsite_local import *
sys.path.append(WorkspaceDirectory) sys.path.append(WorkspaceDirectory)
from projects import * from projects import *
@ -529,7 +448,6 @@ printLog(log, "")
# Additional directories # Additional directories
printLog(log, ">>> Setup additional directories <<<") printLog(log, ">>> Setup additional directories <<<")
mkPath(log, ClientDevDirectory) mkPath(log, ClientDevDirectory)
mkPath(log, ClientDevLiveDirectory)
mkPath(log, ClientPatchDirectory) mkPath(log, ClientPatchDirectory)
mkPath(log, ClientInstallDirectory) mkPath(log, ClientInstallDirectory)
@ -585,7 +503,6 @@ if not args.noverify:
findTool(log, ToolDirectories, TranslationToolsTool, ToolSuffix) findTool(log, ToolDirectories, TranslationToolsTool, ToolSuffix)
findTool(log, ToolDirectories, BuildWorldPackedColTool, ToolSuffix) findTool(log, ToolDirectories, BuildWorldPackedColTool, ToolSuffix)
findTool(log, ToolDirectories, R2IslandsTexturesTool, ToolSuffix) findTool(log, ToolDirectories, R2IslandsTexturesTool, ToolSuffix)
findTool(log, ToolDirectories, PatchmanServiceTool, ToolSuffix)
log.close() log.close()
if os.path.isfile("0_setup.log"): if os.path.isfile("0_setup.log"):

@ -1,94 +1,94 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file 1_export.py # \file 1_export.py
# \brief Run all export processes # \brief Run all export processes
# \date 2009-02-18 09:22GMT # \date 2009-02-18 09:22GMT
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Run all export processes # Run all export processes
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util, argparse import time, sys, os, shutil, subprocess, distutils.dir_util, argparse
sys.path.append("configuration") sys.path.append("configuration")
parser = argparse.ArgumentParser(description='Ryzom Core - Build Gamedata - Export') parser = argparse.ArgumentParser(description='Ryzom Core - Build Gamedata - Export')
# parser.add_argument('--haltonerror', '-eh', action='store_true') # parser.add_argument('--haltonerror', '-eh', action='store_true')
parser.add_argument('--includeproject', '-ipj', nargs='+') parser.add_argument('--includeproject', '-ipj', nargs='+')
parser.add_argument('--excludeproject', '-epj', nargs='+') parser.add_argument('--excludeproject', '-epj', nargs='+')
parser.add_argument('--includeprocess', '-ipc', nargs='+') parser.add_argument('--includeprocess', '-ipc', nargs='+')
parser.add_argument('--excludeprocess', '-epc', nargs='+') parser.add_argument('--excludeprocess', '-epc', nargs='+')
args = parser.parse_args() args = parser.parse_args()
if not args.includeproject == None and not args.excludeproject == None: if not args.includeproject == None and not args.excludeproject == None:
print "ERROR --includeproject cannot be combined with --excludeproject, exit." print "ERROR --includeproject cannot be combined with --excludeproject, exit."
exit() exit()
if not args.includeprocess == None and not args.excludeprocess == None: if not args.includeprocess == None and not args.excludeprocess == None:
print "ERROR --includeprocess cannot be combined with --excludeprocess, exit." print "ERROR --includeprocess cannot be combined with --excludeprocess, exit."
exit() exit()
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
log = open("log.log", "w") log = open("log.log", "w")
from scripts import * from scripts import *
from buildsite_local import * from buildsite_local import *
from tools import * from tools import *
sys.path.append(WorkspaceDirectory) sys.path.append(WorkspaceDirectory)
from projects import * from projects import *
# Log error # Log error
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Run the export processes") printLog(log, "--- Run the export processes")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
# For each project # For each project
for projectName in ProjectsToProcess: for projectName in ProjectsToProcess:
if ((args.includeproject == None or projectName in args.includeproject) and (args.excludeproject == None or not projectName in args.excludeproject)): if ((args.includeproject == None or projectName in args.includeproject) and (args.excludeproject == None or not projectName in args.excludeproject)):
printLog(log, "PROJECT " + projectName) printLog(log, "PROJECT " + projectName)
os.putenv("NELBUILDACTIVEPROJECT", os.path.abspath(WorkspaceDirectory + "/" + projectName)) os.putenv("NELBUILDACTIVEPROJECT", os.path.abspath(WorkspaceDirectory + "/" + projectName))
os.chdir("processes") os.chdir("processes")
try: try:
if not args.includeprocess == None: if not args.includeprocess == None:
subprocess.call([ "python", "1_export.py", "--includeprocess" ] + args.includeprocess) subprocess.call([ "python", "1_export.py", "--includeprocess" ] + args.includeprocess)
elif not args.excludeprocess == None: elif not args.excludeprocess == None:
subprocess.call([ "python", "1_export.py", "--excludeprocess" ] + args.excludeprocess) subprocess.call([ "python", "1_export.py", "--excludeprocess" ] + args.excludeprocess)
else: else:
subprocess.call([ "python", "1_export.py" ]) subprocess.call([ "python", "1_export.py" ])
except Exception, e: except Exception, e:
printLog(log, "<" + projectName + "> " + str(e)) printLog(log, "<" + projectName + "> " + str(e))
os.chdir("..") os.chdir("..")
try: try:
projectLog = open("processes/log.log", "r") projectLog = open("processes/log.log", "r")
projectLogData = projectLog.read() projectLogData = projectLog.read()
projectLog.close() projectLog.close()
log.write(projectLogData) log.write(projectLogData)
except Exception, e: except Exception, e:
printLog(log, "<" + projectName + "> " + str(e)) printLog(log, "<" + projectName + "> " + str(e))
else: else:
printLog(log, "IGNORE PROJECT " + projectName) printLog(log, "IGNORE PROJECT " + projectName)
printLog(log, "") printLog(log, "")
log.close() log.close()
if os.path.isfile("1_export.log"): if os.path.isfile("1_export.log"):
os.remove("1_export.log") os.remove("1_export.log")
shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_export.log") shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_export.log")
shutil.move("log.log", "1_export.log") shutil.move("log.log", "1_export.log")

@ -1,94 +1,94 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file 2_build.py # \file 2_build.py
# \brief Run all build processes # \brief Run all build processes
# \date 2009-02-18 09:22GMT # \date 2009-02-18 09:22GMT
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Run all build processes # Run all build processes
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util, argparse import time, sys, os, shutil, subprocess, distutils.dir_util, argparse
sys.path.append("configuration") sys.path.append("configuration")
parser = argparse.ArgumentParser(description='Ryzom Core - Build Gamedata - Build') parser = argparse.ArgumentParser(description='Ryzom Core - Build Gamedata - Build')
# parser.add_argument('--haltonerror', '-eh', action='store_true') # parser.add_argument('--haltonerror', '-eh', action='store_true')
parser.add_argument('--includeproject', '-ipj', nargs='+') parser.add_argument('--includeproject', '-ipj', nargs='+')
parser.add_argument('--excludeproject', '-epj', nargs='+') parser.add_argument('--excludeproject', '-epj', nargs='+')
parser.add_argument('--includeprocess', '-ipc', nargs='+') parser.add_argument('--includeprocess', '-ipc', nargs='+')
parser.add_argument('--excludeprocess', '-epc', nargs='+') parser.add_argument('--excludeprocess', '-epc', nargs='+')
args = parser.parse_args() args = parser.parse_args()
if not args.includeproject == None and not args.excludeproject == None: if not args.includeproject == None and not args.excludeproject == None:
print "ERROR --includeproject cannot be combined with --excludeproject, exit." print "ERROR --includeproject cannot be combined with --excludeproject, exit."
exit() exit()
if not args.includeprocess == None and not args.excludeprocess == None: if not args.includeprocess == None and not args.excludeprocess == None:
print "ERROR --includeprocess cannot be combined with --excludeprocess, exit." print "ERROR --includeprocess cannot be combined with --excludeprocess, exit."
exit() exit()
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
log = open("log.log", "w") log = open("log.log", "w")
from scripts import * from scripts import *
from buildsite_local import * from buildsite_local import *
from tools import * from tools import *
sys.path.append(WorkspaceDirectory) sys.path.append(WorkspaceDirectory)
from projects import * from projects import *
# Log error # Log error
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Run the build processes") printLog(log, "--- Run the build processes")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
# For each project # For each project
for projectName in ProjectsToProcess: for projectName in ProjectsToProcess:
if ((args.includeproject == None or projectName in args.includeproject) and (args.excludeproject == None or not projectName in args.excludeproject)): if ((args.includeproject == None or projectName in args.includeproject) and (args.excludeproject == None or not projectName in args.excludeproject)):
printLog(log, "PROJECT " + projectName) printLog(log, "PROJECT " + projectName)
os.putenv("NELBUILDACTIVEPROJECT", os.path.abspath(WorkspaceDirectory + "/" + projectName)) os.putenv("NELBUILDACTIVEPROJECT", os.path.abspath(WorkspaceDirectory + "/" + projectName))
os.chdir("processes") os.chdir("processes")
try: try:
if not args.includeprocess == None: if not args.includeprocess == None:
subprocess.call([ "python", "2_build.py", "--includeprocess" ] + args.includeprocess) subprocess.call([ "python", "2_build.py", "--includeprocess" ] + args.includeprocess)
elif not args.excludeprocess == None: elif not args.excludeprocess == None:
subprocess.call([ "python", "2_build.py", "--excludeprocess" ] + args.excludeprocess) subprocess.call([ "python", "2_build.py", "--excludeprocess" ] + args.excludeprocess)
else: else:
subprocess.call([ "python", "2_build.py" ]) subprocess.call([ "python", "2_build.py" ])
except Exception, e: except Exception, e:
printLog(log, "<" + projectName + "> " + str(e)) printLog(log, "<" + projectName + "> " + str(e))
os.chdir("..") os.chdir("..")
try: try:
projectLog = open("processes/log.log", "r") projectLog = open("processes/log.log", "r")
projectLogData = projectLog.read() projectLogData = projectLog.read()
projectLog.close() projectLog.close()
log.write(projectLogData) log.write(projectLogData)
except Exception, e: except Exception, e:
printLog(log, "<" + projectName + "> " + str(e)) printLog(log, "<" + projectName + "> " + str(e))
else: else:
printLog(log, "IGNORE PROJECT " + projectName) printLog(log, "IGNORE PROJECT " + projectName)
printLog(log, "") printLog(log, "")
log.close() log.close()
if os.path.isfile("2_build.log"): if os.path.isfile("2_build.log"):
os.remove("2_build.log") os.remove("2_build.log")
shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_build.log") shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_build.log")
shutil.move("log.log", "2_build.log") shutil.move("log.log", "2_build.log")

@ -1,94 +1,94 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file 3_install.py # \file 3_install.py
# \brief Run all install processes # \brief Run all install processes
# \date 2009-02-18 16:19GMT # \date 2009-02-18 16:19GMT
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Python port of game data build pipeline. # Python port of game data build pipeline.
# Run all install processes # Run all install processes
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors # Copyright (C) 2009-2014 by authors
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util, argparse import time, sys, os, shutil, subprocess, distutils.dir_util, argparse
sys.path.append("configuration") sys.path.append("configuration")
parser = argparse.ArgumentParser(description='Ryzom Core - Build Gamedata - Install') parser = argparse.ArgumentParser(description='Ryzom Core - Build Gamedata - Install')
# parser.add_argument('--haltonerror', '-eh', action='store_true') # parser.add_argument('--haltonerror', '-eh', action='store_true')
parser.add_argument('--includeproject', '-ipj', nargs='+') parser.add_argument('--includeproject', '-ipj', nargs='+')
parser.add_argument('--excludeproject', '-epj', nargs='+') parser.add_argument('--excludeproject', '-epj', nargs='+')
parser.add_argument('--includeprocess', '-ipc', nargs='+') parser.add_argument('--includeprocess', '-ipc', nargs='+')
parser.add_argument('--excludeprocess', '-epc', nargs='+') parser.add_argument('--excludeprocess', '-epc', nargs='+')
args = parser.parse_args() args = parser.parse_args()
if not args.includeproject == None and not args.excludeproject == None: if not args.includeproject == None and not args.excludeproject == None:
print "ERROR --includeproject cannot be combined with --excludeproject, exit." print "ERROR --includeproject cannot be combined with --excludeproject, exit."
exit() exit()
if not args.includeprocess == None and not args.excludeprocess == None: if not args.includeprocess == None and not args.excludeprocess == None:
print "ERROR --includeprocess cannot be combined with --excludeprocess, exit." print "ERROR --includeprocess cannot be combined with --excludeprocess, exit."
exit() exit()
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
log = open("log.log", "w") log = open("log.log", "w")
from scripts import * from scripts import *
from buildsite_local import * from buildsite_local import *
from tools import * from tools import *
sys.path.append(WorkspaceDirectory) sys.path.append(WorkspaceDirectory)
from projects import * from projects import *
# Log error # Log error
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Run the install processes") printLog(log, "--- Run the install processes")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
# For each project # For each project
for projectName in ProjectsToProcess: for projectName in ProjectsToProcess:
if ((args.includeproject == None or projectName in args.includeproject) and (args.excludeproject == None or not projectName in args.excludeproject)): if ((args.includeproject == None or projectName in args.includeproject) and (args.excludeproject == None or not projectName in args.excludeproject)):
printLog(log, "PROJECT " + projectName) printLog(log, "PROJECT " + projectName)
os.putenv("NELBUILDACTIVEPROJECT", os.path.abspath(WorkspaceDirectory + "/" + projectName)) os.putenv("NELBUILDACTIVEPROJECT", os.path.abspath(WorkspaceDirectory + "/" + projectName))
os.chdir("processes") os.chdir("processes")
try: try:
if not args.includeprocess == None: if not args.includeprocess == None:
subprocess.call([ "python", "3_install.py", "--includeprocess" ] + args.includeprocess) subprocess.call([ "python", "3_install.py", "--includeprocess" ] + args.includeprocess)
elif not args.excludeprocess == None: elif not args.excludeprocess == None:
subprocess.call([ "python", "3_install.py", "--excludeprocess" ] + args.excludeprocess) subprocess.call([ "python", "3_install.py", "--excludeprocess" ] + args.excludeprocess)
else: else:
subprocess.call([ "python", "3_install.py" ]) subprocess.call([ "python", "3_install.py" ])
except Exception, e: except Exception, e:
printLog(log, "<" + projectName + "> " + str(e)) printLog(log, "<" + projectName + "> " + str(e))
os.chdir("..") os.chdir("..")
try: try:
projectLog = open("processes/log.log", "r") projectLog = open("processes/log.log", "r")
projectLogData = projectLog.read() projectLogData = projectLog.read()
projectLog.close() projectLog.close()
log.write(projectLogData) log.write(projectLogData)
except Exception, e: except Exception, e:
printLog(log, "<" + projectName + "> " + str(e)) printLog(log, "<" + projectName + "> " + str(e))
else: else:
printLog(log, "IGNORE PROJECT " + projectName) printLog(log, "IGNORE PROJECT " + projectName)
printLog(log, "") printLog(log, "")
log.close() log.close()
if os.path.isfile("3_install.log"): if os.path.isfile("3_install.log"):
os.remove("3_install.log") os.remove("3_install.log")
shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_install.log") shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_install.log")
shutil.move("log.log", "3_install.log") shutil.move("log.log", "3_install.log")

@ -1,181 +1,181 @@
#!/usr/bin/python #!/usr/bin/python
# #
# \file 9_upload.py # \file 9_upload.py
# \brief Upload data to servers # \brief Upload data to servers
# \date 2009-02-18 16:19GMT # \date 2009-02-18 16:19GMT
# \author Jan Boon (Kaetemi) # \author Jan Boon (Kaetemi)
# Game data build pipeline. # Game data build pipeline.
# Upload data to servers # Upload data to servers
# #
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> # NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2011 Kaetemi # Copyright (C) 2011 Kaetemi
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the # published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version. # License, or (at your option) any later version.
# #
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details. # GNU Affero General Public License for more details.
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
import time, sys, os, shutil, subprocess, distutils.dir_util import time, sys, os, shutil, subprocess, distutils.dir_util
sys.path.append("configuration") sys.path.append("configuration")
if os.path.isfile("log.log"): if os.path.isfile("log.log"):
os.remove("log.log") os.remove("log.log")
log = open("log.log", "w") log = open("log.log", "w")
from scripts import * from scripts import *
from buildsite_local import * from buildsite_local import *
from tools import * from tools import *
try: try:
from upload import * from upload import *
except ImportError: except ImportError:
# Not documenting this. Because we can. # Not documenting this. Because we can.
printLog(log, "ERROR Upload not configured, bye.") printLog(log, "ERROR Upload not configured, bye.")
exit() exit()
sys.path.append(WorkspaceDirectory) sys.path.append(WorkspaceDirectory)
from projects import * from projects import *
# Log error # Log error
printLog(log, "") printLog(log, "")
printLog(log, "-------") printLog(log, "-------")
printLog(log, "--- Upload data to servers") printLog(log, "--- Upload data to servers")
printLog(log, "-------") printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "") printLog(log, "")
# Find tools # Find tools
# Not documenting this. Because we can. # Not documenting this. Because we can.
Psftp = findFileMultiDir(log, ToolDirectories + WindowsExeDllCfgDirectories, UploadPsftpTool) Psftp = findFileMultiDir(log, ToolDirectories + WindowsExeDllCfgDirectories, UploadPsftpTool)
printLog(log, "PSFTP " + Psftp) printLog(log, "PSFTP " + Psftp)
def downloadVersionTag(server, user, sshkey, dir): def downloadVersionTag(server, user, sshkey, dir):
if os.path.isfile("upload.tag"): if os.path.isfile("upload.tag"):
os.remove("upload.tag") os.remove("upload.tag")
if os.path.isfile("upload.batch"): if os.path.isfile("upload.batch"):
os.remove("upload.batch") os.remove("upload.batch")
ub = open("upload.batch", "w") ub = open("upload.batch", "w")
ub.write("cd " + dir + "\n") ub.write("cd " + dir + "\n")
ub.write("get upload.tag upload.tag\n") ub.write("get upload.tag upload.tag\n")
ub.write("quit\n") ub.write("quit\n")
ub.close() ub.close()
subprocess.call([ Psftp, "-b", "upload.batch", "-i", sshkey, user + "@" + server ]) subprocess.call([ Psftp, "-b", "upload.batch", "-i", sshkey, user + "@" + server ])
os.remove("upload.batch") os.remove("upload.batch")
if os.path.isfile("upload.tag"): if os.path.isfile("upload.tag"):
ft = open("upload.tag") ft = open("upload.tag")
result = float(ft.read()) # float, really result = float(ft.read()) # float, really
ft.close() ft.close()
os.remove("upload.tag") os.remove("upload.tag")
printLog(log, "INFO Upload tag is " + str(result)) printLog(log, "INFO Upload tag is " + str(result))
return result return result
else: else:
printLog(log, "WARNING Upload tag not found, uploading everything") printLog(log, "WARNING Upload tag not found, uploading everything")
return 0 return 0
def isDirectoryNeeded(ft, dir): def isDirectoryNeeded(ft, dir):
files = os.listdir(dir) files = os.listdir(dir)
for fileName in files: for fileName in files:
if isLegalFileName(fileName): if isLegalFileName(fileName):
fileFull = dir + "/" + fileName fileFull = dir + "/" + fileName
if os.path.isfile(fileFull): if os.path.isfile(fileFull):
nftf = os.stat(fileFull).st_mtime nftf = os.stat(fileFull).st_mtime
if nftf > ft: if nftf > ft:
return True return True
elif os.path.isdir(fileFull): elif os.path.isdir(fileFull):
if isDirectoryNeeded(ft, fileFull): if isDirectoryNeeded(ft, fileFull):
return True return True
elif not os.path.isdir(fileFull): elif not os.path.isdir(fileFull):
printLog(log, "isDirectoryNeeded: file not dir or file?!" + fileFull) printLog(log, "isDirectoryNeeded: file not dir or file?!" + fileFull)
return False return False
def listDirectoryUpload(ft, ub, udb, dir): def listDirectoryUpload(ft, ub, udb, dir):
nft = 0 nft = 0
files = os.listdir(dir) files = os.listdir(dir)
for fileName in files: for fileName in files:
if isLegalFileName(fileName): if isLegalFileName(fileName):
fileFull = dir + "/" + fileName fileFull = dir + "/" + fileName
if os.path.isfile(fileFull): if os.path.isfile(fileFull):
nftf = os.stat(fileFull).st_mtime nftf = os.stat(fileFull).st_mtime
if nftf > ft: if nftf > ft:
ub.write("put " + fileFull + " " + fileName + "\n") ub.write("put " + fileFull + " " + fileName + "\n")
if nftf > nft: if nftf > nft:
nft = nftf nft = nftf
elif os.path.isdir(fileFull): elif os.path.isdir(fileFull):
if isDirectoryNeeded(ft, fileFull): if isDirectoryNeeded(ft, fileFull):
udb.write("mkdir " + fileName + "\n") udb.write("mkdir " + fileName + "\n")
ub.write("cd " + fileName + "\n") ub.write("cd " + fileName + "\n")
udb.write("cd " + fileName + "\n") udb.write("cd " + fileName + "\n")
nft2 = listDirectoryUpload(ft, ub, udb, fileFull) nft2 = listDirectoryUpload(ft, ub, udb, fileFull)
if (nft2 > nft): if (nft2 > nft):
nft = nft2 nft = nft2
ub.write("cd ..\n") ub.write("cd ..\n")
udb.write("cd ..\n") udb.write("cd ..\n")
elif not os.path.isdir(fileFull): elif not os.path.isdir(fileFull):
printLog(log, "listDirectoryUpload: file not dir or file?!" + fileFull) printLog(log, "listDirectoryUpload: file not dir or file?!" + fileFull)
return nft return nft
def uploadSftp(server, user, sshkey, dir_to, dir_from, addcmd): def uploadSftp(server, user, sshkey, dir_to, dir_from, addcmd):
ft = downloadVersionTag(server, user, sshkey, dir_to) ft = downloadVersionTag(server, user, sshkey, dir_to)
if isDirectoryNeeded(ft, dir_from): if isDirectoryNeeded(ft, dir_from):
if os.path.isfile("upload_dir.batch"): if os.path.isfile("upload_dir.batch"):
os.remove("upload_dir.batch") os.remove("upload_dir.batch")
if os.path.isfile("upload.batch"): if os.path.isfile("upload.batch"):
os.remove("upload.batch") os.remove("upload.batch")
udb = open("upload_dir.batch", "w") udb = open("upload_dir.batch", "w")
udb.write("cd " + dir_to + "\n") udb.write("cd " + dir_to + "\n")
ub = open("upload.batch", "w") ub = open("upload.batch", "w")
ub.write("cd " + dir_to + "\n") ub.write("cd " + dir_to + "\n")
for ac in addcmd: for ac in addcmd:
ub.write(ac + "\n") ub.write(ac + "\n")
ftn = listDirectoryUpload(ft, ub, udb, dir_from) ftn = listDirectoryUpload(ft, ub, udb, dir_from)
if (ft > ftn): if (ft > ftn):
ftn = ft ftn = ft
nft = open("upload.tag", "w") nft = open("upload.tag", "w")
nft.write(str(ftn)) nft.write(str(ftn))
nft.close() nft.close()
ub.write("put upload.tag upload.tag\n") ub.write("put upload.tag upload.tag\n")
ub.write("quit\n") ub.write("quit\n")
ub.close() ub.close()
udb.write("quit\n") udb.write("quit\n")
udb.close() udb.close()
subprocess.call([ Psftp, "-be", "-b", "upload_dir.batch", "-i", sshkey, user + "@" + server ]) subprocess.call([ Psftp, "-be", "-b", "upload_dir.batch", "-i", sshkey, user + "@" + server ])
subprocess.call([ Psftp, "-b", "upload.batch", "-i", sshkey, user + "@" + server ]) subprocess.call([ Psftp, "-b", "upload.batch", "-i", sshkey, user + "@" + server ])
os.remove("upload_dir.batch") os.remove("upload_dir.batch")
os.remove("upload.batch") os.remove("upload.batch")
os.remove("upload.tag") os.remove("upload.tag")
else: else:
printLog(log, "SKIP " + dir_to) printLog(log, "SKIP " + dir_to)
printLog(log, ">>> Upload patch <<<") printLog(log, ">>> Upload patch <<<")
for target in UploadPatch: for target in UploadPatch:
uploadSftp(target[0], target[1], target[2], target[3], ClientPatchDirectory + "/patch", [ ]) uploadSftp(target[0], target[1], target[2], target[3], ClientPatchDirectory + "/patch", [ ])
printLog(log, ">>> Upload data_shard <<<") printLog(log, ">>> Upload data_shard <<<")
for target in UploadShard: for target in UploadShard:
uploadSftp(target[0], target[1], target[2], target[3], DataShardDirectory, [ "rm *.packed_sheets", "rm primitive_cache/*.binprim" ]) uploadSftp(target[0], target[1], target[2], target[3], DataShardDirectory, [ "rm *.packed_sheets", "rm primitive_cache/*.binprim" ])
printLog(log, ">>> Upload data_common <<<") printLog(log, ">>> Upload data_common <<<")
for target in UploadCommon: for target in UploadCommon:
uploadSftp(target[0], target[1], target[2], target[3], DataCommonDirectory, [ ]) uploadSftp(target[0], target[1], target[2], target[3], DataCommonDirectory, [ ])
printLog(log, ">>> Upload data_leveldesign/leveldesign <<<") printLog(log, ">>> Upload data_leveldesign/leveldesign <<<")
for target in UploadLeveldesign: for target in UploadLeveldesign:
uploadSftp(target[0], target[1], target[2], target[3], LeveldesignDirectory, [ ]) uploadSftp(target[0], target[1], target[2], target[3], LeveldesignDirectory, [ ])
printLog(log, ">>> Upload data_leveldesign/primitives <<<") printLog(log, ">>> Upload data_leveldesign/primitives <<<")
for target in UploadPrimitives: for target in UploadPrimitives:
uploadSftp(target[0], target[1], target[2], target[3], PrimitivesDirectory, [ ]) uploadSftp(target[0], target[1], target[2], target[3], PrimitivesDirectory, [ ])
log.close() log.close()
if os.path.isfile("9_upload.log"): if os.path.isfile("9_upload.log"):
os.remove("9_upload.log") os.remove("9_upload.log")
shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_upload.log") shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_upload.log")
shutil.move("log.log", "9_upload.log") shutil.move("log.log", "9_upload.log")

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save