Compare commits

...

1433 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 d8deff3f23 Linux multi-monitor fullscreen support 3 years ago
Nimetu 2efc16ce52 Use configured resolution for login/outgame/ingame 3 years ago
Nimetu 5064f0417b Fix UI restore when window is resized while in loading screen 3 years ago
Nimetu d893d15daf Remove loading certs from native Windows cert store. 3 years ago
kaetemi 82ef7e5e81 Fix for MySQL 8 client lib support 3 years ago
kaetemi 8f839dc9c7 Properly follow StartupVerify setting 3 years ago
kaetemi 5fcaafbc60 Show more useful error on login failure 3 years ago
kaetemi 6d60cfee71 Stop sound when patching sound bnp 3 years ago
kaetemi 3076b62063 Fix build when using ValyriaTear/luabind (on Ubuntu) 3 years ago
kaetemi 3d208e024d Improve c++0x check 3 years ago
kaetemi af16f09d52 Ubuntu 16.04 is EOL 3 years ago
kaetemi b9d4aa2abd Add Ubuntu 20.04 target to Azure Pipelines configuration 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
Nimetu ce0d1234cc Add missing WITH_FFMPEG option 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 ea6e4d91c3 Html special chars for title/textarea tags should remain decoded 3 years ago
Nimetu d388ff78ec Merge branch 'develop' into develop-atys 3 years ago
Nimetu 0b503e352b Fix htmlEscape function from deadlocking 3 years ago
Nimetu df4833bf0f Update gitignore 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
Nimetu 591ea6869e Remove shortcut to moveToAction().
sendExecuteToServer() will be called before clientExecute() and that
will cause "stuck stanza" client side when server rejects the action.
Reproducible with forage stanza with material specialization.
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 0de1580520 Fix background overflow on items limited with maxw/maxh 3 years ago
Nimetu d9dd9863b7 Merge branch 'develop' into develop-atys 3 years ago
Ulukyn 7bed39665e Updated visual_slot.tab 3 years ago
Nimetu 9ecda65791 Fix table td background color inheriting from row 3 years ago
Nimetu fc6ecc7dbd Fix html,body background not using container opacity 3 years ago
Nimetu 5c53148907 Fix downloaded background images not showing 3 years ago
Nimetu 028f6cdd3e Add -ryzom-modulate-text-color to separate text from background, ryzom/ryzomcore#644 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
Nimetu 3f3991816b Fix missing css length type 3 years ago
Nimetu e0d54f7897 Draw table background/border using css renderers 3 years ago
Nimetu 37eec8cd7f Dotted/dashed border styles 3 years ago
Nimetu 2046c4bf6e Draw browser background with CSSBackgroundRenderer 3 years ago
Nimetu 12c515c264 Parse background style into own class 3 years ago
Nimetu 285cfb163f Fix possible deadlock in css content attribute 3 years ago
Nimetu a40ddf7955 Methods to preallocate texture id and swap texture for existing id 3 years ago
Nimetu dff191a7c2 Move loading texture from file/memory into own functions 3 years ago
Nimetu f26dc534c8 Split CDataDownload into subclasses 3 years ago
Nimetu dfe45029ab Add CSSLength, CSSBackground, CSSBackgroundRenderer classes 3 years ago
Nimetu 65edd9f95d Draw double/groove/ridge border styles 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
Nimetu 487f9f060e Fix css rule declaration splitting 3 years ago
Nimetu 2e816ddf6e Add "transparent" to html color list 3 years ago
Nimetu 5d4a04169b Update getCssLength for new types, enable reading negative values. 3 years ago
Nimetu b2ec03d1a1 Fix background shorthand for -position and -clip 3 years ago
Nimetu 234465387b Fix getCssLength returning false for '0' 3 years ago
Nimetu 2133f6d2b7 Fixed bad type for _RenderLayer 3 years ago
Nimetu 63f1fb73dd Fix table background color and image draw order 3 years ago
Nimetu a040f7a2a8 CSS background color should not inherit its value 3 years ago
Nimetu 565932c18d Expand css margin shorthand 3 years ago
Nimetu cade609a3a Fix textarea not preserving linebreaks, keep tab char 3 years ago
Nimetu 093702a704 Fix web link in item customtext being visible 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
Nimetu 95716b65ca Fix comparing x twice in Direct3d setupScissor 3 years ago
Nimetu 75f490d394 Fix comparing same variable twice in CRingAccess 3 years ago
Nuno 64bff20e03 Merge branch 'silan_refactoring' into yubo 4 years ago
Nuno 1eb651a946 Merge branch 'master' into silan_refactoring 4 years ago
Nuno 7da7d8cbbe Merge branch 'interface_textures' into yubo 4 years ago
Nuno 0ee26a6488 Merge branch 'master' into interface_textures 4 years ago
Nuno 9e404a5965 Merge branch 'deco_objects' into yubo 4 years ago
Nuno 97099768dc Merge branch 'master' into deco_objects 4 years ago
kaetemi 7d1661df42
Merge branch 'develop' into feature/develop-atys 4 years ago
kaetemi 19a0d929bb
Exclude commits from attribution 4 years ago
Nuno a443848924 Merge branch 'rewards' into yubo 4 years ago
Nuno ca0dc24aa0 Merge branch 'rewards' 4 years ago
Nuno 6d68e96dd4 Merge branch 'master' into rewards 4 years ago
kaetemi 0c5f4cdc1a
Implement NLNET sleepUntilDataAvailable for Win32 build 4 years ago
kaetemi 8a7e96f7a6
Fix crash with bad `parts[next]` index 4 years ago
kaetemi a227dccbb8
Fix PHP setup script 4 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
kaetemi 9d303b2a9a
Preload data in dev client as well, ref kaetemi/ryzomclassic#168 4 years ago
Nuno 58b5941bbe
Flag to use preset folders 4 years ago
Nuno 431b1ea339 Merge branch 'atys' into atys-live 4 years ago
kaetemi c70ca1f8ab
Update GPL headers 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
kaetemi bb03f80d84
Remove dead code, ref kaetemi/ryzomclassic#93 4 years ago
kaetemi c6f8baa058
Use streaming vertex buffer for animating regular skinned meshes, writing to a read locked and shared vertex buffer is illegal, fix kaetemi/ryzomclassic#93 4 years ago
kaetemi 2c167fb360
Don't apply skin color to weapons in info preview, caused by conflicting naming of lead weapon textures, fix ryzomclassic/issues#201 4 years ago
kaetemi b9bdabd1f0
Add missing path to georges config 4 years ago
kaetemi d4a3a5bc06
Weld vertices 4 years ago
kaetemi cdc2cacfc0
Fixup shape2obj 4 years ago
kaetemi c5ed59638e
Add missing lookup entries to object viewer config 4 years ago
kaetemi 85ec6e618e
Fix build on vs2008 4 years ago
kaetemi 1aba4c13cb
Reduce audio log when switching between looping and streaming source 4 years ago
kaetemi 56d747fa02
Merge remote-tracking branch 'ryzomcore/develop' into develop 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
Nimetu 96a03d1cf5 Changed: Preserve icon text case as is 4 years ago
Nimetu 52e0e71c4a Simple html/css test tool 4 years ago
Nimetu 3b91146d23 Changed: Allow to use 2x/4x hi-res texture atlas for GUI elements 4 years ago
Nimetu 474802810b Fixed throw(type) deprecated in C++11 warning 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 1e465b6cff Show reload link when curl fails to open connection to website 4 years ago
Nimetu 5abdccfd63 Inherit -ryzom-modulate-bgcolor in table/td 4 years ago
Nimetu a7bc98b0b4 Fix mission give item window sometimes not appearing. 4 years ago
Nimetu 825d70a80e Minor refactor 4 years ago
Nimetu acd12c7c37 Add initial support for centered multiline text in table 4 years ago
Nimetu aaa699014e Ignore any tags inside title, textarea elements. 4 years ago
Nimetu 624d78fe1a Methods to serialize CHtmlElement back to string 4 years ago
Nimetu f8d498e4b2 Minor refactor 4 years ago
Nimetu cd4914ab94 Cleanup CGroupHTML old properties 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
Nimetu 8f1db24504 Fix detecting jpg image 4 years ago
Nuno 85e788da81 Merge branch 'master' into new_interface_features 4 years ago
Nimetu 04b4ae5333 Ignore last linebreak in pre tag 4 years ago
Nimetu cc44eaf935 Ignore first linebreak after pre, textarea open tag 4 years ago
Nimetu e1e7bd837c Fix temp file collision and image update on http/304 response 4 years ago
Nimetu e5c0c63e3e Draw tab char as space 4 years ago
Nimetu dbc77c7fc0 Update gitignore 4 years ago
Nimetu db7afb07bd Fix parsing css selectors with commas 4 years ago
Nimetu 95cacf75a6 Add css :lang selector 4 years ago
Nimetu 92eb1dcdc7 Forward declare xmlNode 4 years ago
Nimetu 89a921e140 Function to get html element lang value 4 years ago
Nimetu 87e88cee6f Initial support for css var() function 4 years ago
Nimetu 36d482e6d1 Fixed parsing of css unversal (*) selector 4 years ago
Nimetu 4505ecf8a2 Revert "Add missing PowerRoot effect families to sheetid conversions table."
This reverts commit ff9aa6c608.
4 years ago
Nimetu 2f5b4d7c5b Add custom formatter for regen text 4 years ago
Nimetu 27826eb448 Show bonus/malus timer text if available 4 years ago
Nimetu d210c23b26 Add xml options for icon regen text 4 years ago
Nimetu 9262302baa Add macros to read properties from xmlNode 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 65415dfc55 Fixed infinite loop crash from string comparison 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
kaetemi 00037b3644 Apply elevation to ig_static_other 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
kaetemi ea1b3dbc28 Without extending coords, expect an additional 1px to align 4 years ago
kaetemi 93ad5e469c Ignore broken zone 4 years ago
kaetemi b6b05b595a Make heightmap bitmap coordinates stable between map extensions 4 years ago
kaetemi 46410206ad Weld borders again after elevation, for bindings 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
Nimetu f39038f98d Change glyph cache to map lookup, ryzom/ryzomcore#626 4 years ago
Nimetu 990c38ca81 Change letter cache to map lookup, ryzom/ryzomcore#626 4 years ago
Nimetu 661a2bdaf7 Added small program to measure font atlas performance, ryzom/ryzomcore#626 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
kaetemi 87b5a77d4f Add elevation snippets to weld bound vertices 4 years ago
Nuno 269526e87f Fixed bad check of args 4 years ago
kaetemi 30ece314c5 Add tool to unbuild heightmaps 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
kaetemi 3164e5fe3e Parallel ig light 4 years ago
kaetemi 06be2d003c Parallel wmap sizes 4 years ago
kaetemi 06006cffd3 Parallel processing of rbank, zone heightmap, and zone lighter 4 years ago
kaetemi 8fff5b8754 Disable CPU mask in zone lighter 4 years ago
kaetemi 00520d6c11 Process rbank in parallel 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
Nimetu 76d29b2eda Fixed: Only call curl cleanup when needed. 4 years ago
kaetemi a1f1bd888c Fix rbank water mapping 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
Nimetu d9d9c6e1e6 Fix css style order when using external css files 4 years ago
Nimetu 779f87d6e7 Change CFile::setRWAccess to only set rw-rw-r-- (+x for directories) on linux/macOS. 4 years ago
Nimetu 53437989d4 Add --list-verbose, --extract options to bnp_make 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
Nimetu 6bed86797b Add --url, --app options for client patcher 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 abf2715fa3 Create more consistent R2 maps 4 years ago
kaetemi 147cb75a80 Temporary cache implementation for lightmapping during export 4 years ago
kaetemi 3df1fd3857 Notes 4 years ago
kaetemi 257f6a6e23 Build fix 4 years ago
kaetemi aa7d667b10 Show angle 4 years ago
kaetemi 813b4d72d1 Notes 4 years ago
kaetemi b3bed095f8 Write XML file, ryzom/ryzomcore#621 4 years ago
kaetemi 210515addd Merge remote-tracking branch 'ryzomcore/develop' into develop 4 years ago
kaetemi 57fbaf1feb Erase things from reference that aren't plants, ryzom/ryzomcore#621 4 years ago
kaetemi d6fe42f6a0 Load and map instances to plants, ryzom/ryzomcore#621 4 years ago
kaetemi 47d6e09099 Tool for reverse building flora primitive, load plants, ryzom/ryzomcore#621 4 years ago
kaetemi 23110247de Script for rebuilding ring landscapes 4 years ago
Nimetu f3f67af69e Added: form,formaction attributes to submit button 4 years ago
kaetemi b1ef06d900 These asserts don't make sense 4 years ago
kaetemi 470b48ea0d Fix Max version 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
kaetemi f9cc9a1abe Fix build 4 years ago
kaetemi 2e0b00d93c Keep a spare memory block in fixed size allocator to avoid large allocation overhead on the chunk boundary 4 years ago
kaetemi 14da4d1e61 Stricter UTF-8, so ascii characters can't get encoded as multi-bytes and pass validations 4 years ago
kaetemi 66ef424af0 Add template for pointer with deep copy and move semantics 4 years ago
kaetemi b884360c0e Add template for pointer with deep copy and move semantics 4 years ago
kaetemi 5fed277adf Cleanup 4 years ago
kaetemi cb949ae13a Correct ascii behaviour in tool 4 years ago
kaetemi c770191bef Explicitly use toLowerAscii for filenames and identifiers 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
kaetemi 8809d39835 Rebuild string case tables 4 years ago
kaetemi 773f27dfcb Just pass utf-8 4 years ago
kaetemi 99df03dad0 Don't allow unmatched surrogates in input 4 years ago
kaetemi e20af7828a Additional size check to avoid stuck empty string cache files, caused by exception handling 4 years ago
kaetemi bb564a6302 Trim unsupported unicode for now, since they mess with input 4 years ago
kaetemi 3b6e27e800 Find offset by index 4 years ago
kaetemi 297de1d19a Fix memory release 4 years ago
kaetemi 2444d94f4f Don't expose ucstring to Lua, unless compatibility flag is set 4 years ago
kaetemi 0d2633b697 Cleanup string 4 years ago
kaetemi c9f967b52b Fix memory release 4 years ago
kaetemi e9fdac30a2 Fix memory release 4 years ago
kaetemi 64b978b77a Fix memory release 4 years ago
kaetemi 0ba45054d0 Fix memory release 4 years ago
kaetemi f50b59702e Fix memory release 4 years ago
kaetemi b220dac7b3 Fix memory release 4 years ago
Nimetu 465a36b250 fix build 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 91bceae902 Fix UTF-16 character input pair events 4 years ago
kaetemi be60cf8978 Localizable font families, start font name with ui to get a \n-separated font list from uxt, close ryzom/ryzomcore#623 4 years ago
kaetemi 5bb21d7aa0 Don't expose ucstring to Lua, unless compatibility flag is set 4 years ago
kaetemi 745db95184 Add compatibility switch 4 years ago
kaetemi 3dfc6d5807 Fix 4 years ago
kaetemi f8de4aff59 Fix 4 years ago
kaetemi 36c676e2b2 Use the simplified toUpper for identifiers and filenames 4 years ago
kaetemi 281630c280 Use the simplified toLower for identifiers and filenames 4 years ago
kaetemi ffa6179b82 Alternative 7-bit upper- and lowercase 4 years ago
kaetemi 73b8ba9e4e UTF-8 various, ryzom/ryzomcore#335 4 years ago
kaetemi 11b453baaa Safe 7-bit upper- and lowercase 4 years ago
kaetemi 0dfff69c6f UTF-8 various, ryzom/ryzomcore#335 4 years ago
kaetemi c27547c3a3 UTF-8 various, ryzom/ryzomcore#335 4 years ago
kaetemi 52e3ca024f UTF-8 various, ryzom/ryzomcore#335 4 years ago
kaetemi 298e912949 UTF-8 login patcher, ryzom/ryzomcore#335 4 years ago
kaetemi c069b70ce8 UTF-8 various, ryzom/ryzomcore#335 4 years ago
Jan Boon f859a39da4
Update action_handler_item.cpp 4 years ago
Jan Boon 9d3891f1aa
Update action_handler_item.cpp 4 years ago
Jan Boon 2bb13937e8
Update string_manager_client.cpp 4 years ago
Jan Boon afa22ee22b
Update string_manager_client.cpp 4 years ago
Jan Boon 6c247256d2
Update string_manager_client.cpp 4 years ago
Jan Boon da9254e748
Update release.cpp 4 years ago
Jan Boon a1337dbda9
Update string_manager_client.cpp 4 years ago
kaetemi 04805ec38c Fix build 4 years ago
Jan Boon cd8ed8ab57
Update entity_cl.cpp 4 years ago
kaetemi 1a6e5e6e2b Merge branch 'develop' into feature/develop-atys 4 years ago
kaetemi 7249546db6 Merge some things from atys branch 4 years ago
kaetemi 7adbb84514 Merge branch 'develop' into feature/develop-atys 4 years ago
kaetemi eac2aed175 Fix serial 4 years ago
Jan Boon 3a2922021e
Update cursor_functions.cpp 4 years ago
kaetemi 32ce3667a3 Fix FV 4 years ago
kaetemi e2afa4db5b Sanitize downloaded HTML encoding 4 years ago
kaetemi d201b8a392 UTF-8 various, ryzom/ryzomcore#335 4 years ago
kaetemi 72d9f8ea4f UTF-8 various, ryzom/ryzomcore#335 4 years ago
kaetemi ad0e970785 UTF-8 chat, ryzom/ryzomcore#335 4 years ago
kaetemi 5fe2fae8b0 UTF-8 string manager, ryzom/ryzomcore#335 4 years ago
kaetemi 2d9f10bee3 UTF-8 various, ryzom/ryzomcore#335 4 years ago
kaetemi ecabc00ec5 UTF-8 various, ryzom/ryzomcore#335 4 years ago
kaetemi 5a470a7b16 UTF-8 string manager, ryzom/ryzomcore#335 4 years ago
kaetemi 9d534882e8 UTF-8 string manager, ryzom/ryzomcore#335 4 years ago
kaetemi 246ea2f603 UTF-8 entity name, ryzom/ryzomcore#335 4 years ago
kaetemi 7e8f84462f Add manifest to enable segment heap 4 years ago
kaetemi 22fd1132ed Improve setCase behaviour 4 years ago
kaetemi 0629951ba6 Fix useless cursor reloads 4 years ago
kaetemi 1c09d2ea4b Avoid useless string operations 4 years ago
kaetemi 13f99b393f Reimplement setCase in purely UTF-8, kaetemi/ryzomclassic#172 4 years ago
kaetemi c061f3df3a Don't need this behaviour after all 4 years ago
kaetemi d238d2122b Cleanup localization behaviour 4 years ago
kaetemi 2a7bf997b9 Cleanup localization behaviour 4 years ago
kaetemi 39fc4895d2 Fix to work with saner new behaviour 4 years ago
kaetemi 7812ccafc1 Fix infinite loop 4 years ago
kaetemi ff49b89b73 Fix identity title, kaetemi/ryzomclassic#170 4 years ago
kaetemi 47c0c8cc07 Fix utf iterator ptr 4 years ago
kaetemi 0bd43913e1 Stricter UTF-8 4 years ago
kaetemi 182a917338 Make control characters printable 4 years ago
kaetemi 38e5dfe007 Stricter UTF-8 4 years ago
Ryzom Pipeline 19e00522d9 Update copyright attribution for GPL compliance 4 years ago
kaetemi 4fba8cc18d Improved vertical font centering 4 years ago
kaetemi 7ea4b2b989 Adjust font sizing 4 years ago
kaetemi 592ec2aaf1 Cleanup group container title localization behaviour, ryzom/ryzomcore#335 4 years ago
kaetemi 8dc777495a UTF-8 clipboard, ryzom/ryzomcore#335 4 years ago
Jan Boon 7c028d7a83
Update group_map.cpp 4 years ago
Jan Boon e5fce11618
Update group_map.cpp 4 years ago
Jan Boon ce9c7aae84
Update action_handler_item.cpp 4 years ago
Jan Boon 396f0d808e
Update unix_event_emitter.cpp 4 years ago
Jan Boon 850b8e0158
Update css_parser.cpp 4 years ago
Jan Boon bc66f3a464
Update css_parser.cpp 4 years ago
kaetemi 9ff5eee1e8 Fix 4 years ago
kaetemi 560a19e6f7 Fix build 4 years ago
kaetemi 2450f95c03 Fix XP build 4 years ago
Jan Boon 856f7e88f2
Update general_settings_widget.cpp 4 years ago
kaetemi 632f8133a2 Fix merge 4 years ago
kaetemi 376dd2aff1 More UTF-8, ryzom/ryzomcore#335 4 years ago
kaetemi ac799e444d More UTF-8, ryzom/ryzomcore#335 4 years ago
kaetemi 0b191bc6db More UTF-8, ryzom/ryzomcore#335 4 years ago
kaetemi 079f9dff25 Fix 4 years ago
kaetemi 051c46b95a UTF-8 CI18N, ryzom/ryzomcore#335 4 years ago
kaetemi 1963bdedcc UTF-8 context help, ryzom/ryzomcore#335 4 years ago
kaetemi 6cd52d7871 Note 4 years ago
kaetemi f8ef5743e3 Fix bad value in toUpper table 4 years ago
kaetemi 2eb088ef1c Cleanup, ryzom/ryzomcore#335 4 years ago
kaetemi 2de4907b83 Reimplement toLower and toUpper as UTF-8, ryzom/ryzomcore#335 4 years ago
kaetemi 54337b757b Fix merge 4 years ago
kaetemi e1195fe34e Change CDBGroupComboBox to UTF-8, ryzom/ryzomcore#335 4 years ago
kaetemi 506f9f26bd Change CViewText to UTF-8, ryzom/ryzomcore#335 4 years ago
kaetemi c3ef0fc91c Change CViewText to UTF-8, ryzom/ryzomcore#335 4 years ago
kaetemi c129ce87df Change CViewText to UTF-8, ryzom/ryzomcore#335 4 years ago
kaetemi 9021ce465f Change CViewText to UTF-8, ryzom/ryzomcore#335 4 years ago
kaetemi 698bfff501 Prefer UTF-8, cleanup, ryzom/ryzomcore#335 4 years ago
kaetemi 6ff5ddd790 Explicit function for obtaining 7-bit ascii, ryzom/ryzomcore#335 4 years ago
kaetemi 1ec9f16de4 Get rid of useless raw copy in ucstring, default to UTF-8, ryzom/ryzomcore#335 4 years ago
kaetemi 993c37f56d Prefer UTF-8, cleanup, ryzom/ryzomcore#335 4 years ago
kaetemi 55d83c9486 Fix comment 4 years ago
kaetemi 1d696b8921 Revert special handling for wchar 4 years ago
kaetemi 932a612f53 Support UTF-32 in edit box, ryzom/ryzomcore#335 4 years ago
kaetemi 1a045e437e Accept any UTF string in NL3D text rendering, support UTF-32 characters, ryzom/ryzomcore#335 4 years ago
kaetemi dca59073aa Use platform wide string interface for platform api, not ucstring 4 years ago
kaetemi 25049eaead Complete some missing implementation for wide strings 4 years ago
kaetemi 8fc6ec3b35 Show box character instead of dot 4 years ago
kaetemi 81143cdf43 Proper UTF encoding, ryzom/ryzomcore#335 4 years ago
kaetemi 973531f461 UTF string view base, ryzom/ryzomcore#335 4 years ago
kaetemi a3780e307e Fix missing ghost components in animation loading mode, kaetemi/ryzomclassic#155 4 years ago
kaetemi c252b56c93 Fix crash on save file corruption 4 years ago
kaetemi 2568b6f321 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 06b430349c Disconnect if UDP Login fails, ryzom/ryzomcore#622 4 years ago
kaetemi 78917354d9 Disable tmp debug feature 4 years ago
kaetemi 8c6609943b Dump scenario, kaetemi/ryzomclassic#155 4 years ago
kaetemi 639b432817 Match GL behaviour in D3D for screensaver 4 years ago
kaetemi 8d94baaf14 More consistent unicode behaviour for text 4 years ago
kaetemi c068d757eb Build fix 4 years ago
kaetemi c68c3746dd Build fix 4 years ago
kaetemi 9896eae64d Fix build warnings 4 years ago
kaetemi 0367e4f7c3 Fix build warnings 4 years ago
kaetemi 8be138931d Fix pCB NULL 4 years ago
kaetemi 771248fcf4 Use platform implementation in ucstring for UTF-8 conversion on Windows to get valid UTF-16 4 years ago
kaetemi dd28130617 Format ucstring source 4 years ago
kaetemi 1300d5d4d4 Move ucstring utf8 implementation to header 4 years ago
kaetemi 3dddc5ab40 Move ucstring utf8 implementation to header 4 years ago
kaetemi bbf4a0ac8a Fix editor not returning to initial act, kaetemi/ryzomclassic#80 4 years ago
kaetemi 6531fb0a2e Lua debugger requires properly standardized paths 4 years ago
kaetemi c4b142f770 Load the Lua socket library dynamically if it's available, necessary for MobDebug 4 years ago
kaetemi 8bf18d2e1d Improve error message, kaetemi/ryzomclassic#120 4 years ago
kaetemi b1056ee5ca Merge a GL thing from Atys branch 4 years ago
kaetemi 2bd4c24a5e Merge branch 'develop' of github.com:ryzom/ryzomcore into develop 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 b4901bf267 Fixed: Ingame map search and search result tooltips for UTF8 strings 4 years ago
Nimetu 720f6da8b9 Fixed: Remove unused include (fixes #618) 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 5 years ago
Riasan 8cd685d1f4 Merge remote-tracking branch 'remotes/origin/ui-improvements' into yubo 5 years ago
Riasan f31eeff8fc Changed: add display current online guildmembers 5 years ago
Sit Melai 7e10c697eb Merge Atys 5 years ago
Nimetu f7be62eb3d Fixed: Player/guild room buy dialog price 5 years ago
Nimetu 2a4b16ab1b Changed: Allow to use 2x/4x hi-res texture atlas for GUI elements 5 years ago
Ulukyn f7e8e3f516 Merge branch 'fix_opengl_on_mac' into atys 5 years ago
Ulukyn 107dbc1987 Changed: Fixed non-Mac compilation 5 years ago
Ulukyn 97dc744759 Merge branch 'translations' into yubo 5 years ago
Ulukyn 012339dcf1 Merge branch 'translations' 5 years ago
Ulukyn 884c65fc26 Merge branch 'master' into translations 5 years ago
Ulukyn 07f9a55e48 Merge branch 'fixes' into atys 5 years ago
Ulukyn a87b0f4c97 Changed: When ryzom patch fails try to download lzma file (this last may never fail) 5 years ago
Nimetu d367e32a40 Fixed: set_desktop handler only worked with keypress event 5 years ago
Ulukyn 4138a99fb7 Merge remote-tracking branch 'origin/translation-german-fixes' into yubo 5 years ago
Nimetu 5e3cd0321a Fixed: Delay CDecal init as it depends on Scene object 5 years ago
Nimetu 4fd3f59b9a Fixed: Releasing curl handle when not connected. 5 years ago
Ulukyn 7be52a10fe Merge branch 'atys' into fixes 5 years ago
Ulukyn f4a104bf3f Merge branch 'ryzom/ui/improvements' into atys 5 years ago
Ulukyn 80a6bf72a9 Changed: renamed creatures are now name in ucfirst 5 years ago
Ulukyn 17e539132b Added: very basic anti-spam system (prevent duplication of same message) 5 years ago
Ulukyn 27bd2cec01 Merge branch 'atys' into ryzom/ui/improvements 5 years ago
Ulukyn 6597f32fc1 Merge branch 'ryzom/deepl' into atys 5 years ago
Ulukyn 9e2872d15e Added: Add a language icon when client receive a translated message 5 years ago
Ulukyn 901f33d9a7 Merge branch 'storyline/s2e0' into atys 5 years ago
Ulukyn 421de3fa91 Changed: fixed issue with rumors 5 years ago
Ulukyn 08fb509d99 Merge branch 'atys' into storyline/s2e0 5 years ago
Sit Melai 6c8aeb6ae3 Missed a whitespace 5 years ago
Sit Melai 59c794f716 Wrongly removed previous change 5 years ago
Heernis 3c052d5fcc Merge branch 'master' into translation-german-fixes 5 years ago
Sit Melai c2e7807f99 Adapt action handler for editing phrases to handle second action bar 5 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
Nimetu c09736a08a Fixed: Calling stop on music player should not affect background music. 5 years ago
Nimetu e9f63f2556 Merge "Fixed: Restore playlist after charselect" 5 years ago
Nimetu 334d1d2af1 Changed: SHow no-files text if there is no songs in playlist 5 years ago
Nimetu 3aa0493570 Fixed: Clear song info when all songs are done playing. 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
karu da890311bb Added: Show disabled until timer on icon 5 years ago
Nimetu 4ebca98559 Fixed: Audio decoder getMusicInfo/getSongTitle needs to be thread safe 5 years ago
Nimetu 98709e55db Fixed: Crash on switching chars, logout 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
kaetemi 3cbfa82a6e Fix georges editor 5 years ago
kaetemi ec61fa02b6 Fix hand slots for fauna, ref kaetemi/ryzomclassic#125 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
kaetemi d0068265fb Compare tag for creating bnp, since bnp get older timestamp reset if they match 5 years ago
kaetemi 8b8308c354 Allow setting patch version 5 years ago
kaetemi c00701eee1 More useful warnings 5 years ago
kaetemi db92cbc6bb Disable warning 5 years ago
kaetemi 1ab8fe06de Just copy actors without MRM setup 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 5c0c6d2417 Generate 7z server patch, ref ryzom/ryzomcore#586 5 years ago
kaetemi 9b0852a91d Protect from duplicate UP and DOWN callbacks, fix ryzom/ryzomcore#601 5 years ago
kaetemi 05d6b16b9c Fix loading music fadeout on far TP between ring and mainland 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
kaetemi d293b3ef02 Fix value 5 years ago
kaetemi a4aafa410a Fix initial value 5 years ago
kaetemi 56ee772548 Reset active builtin shader when using user shader in D3D driver, fix ryzom/ryzomcore#603 5 years ago
kaetemi 1a037ad3eb Finer control over menu music 5 years ago
kaetemi a82df91bba CPath::lookup is not thread-safe 5 years ago
kaetemi 900ec1a69a Play theme music during login. Fix music when returning to character selection. Fix teleport screen and music selection. 5 years ago
kaetemi 491d39ff08 Merge remote-tracking branch 'ryzomcore/develop' into develop 5 years ago
Ulukyn 422a8bb744 Merge remote-tracking branch 'origin/merge-into-atys' into yubo 5 years ago
Nimetu 0f5dbc318c Fixed: Clear scene background if sky filter is used 5 years ago
Nimetu 2a2431b1d3 Changed: Automatically build playlist on play if needed 5 years ago
Nimetu 505283a17c Changed: Use worker thread to gather song title/duration. 5 years ago
Nimetu 1ab44cf123 Fixed: mp3 player keeps playing after clearing files from playlist 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
kaetemi 87cd9f19a4 Remove duplicate assert 5 years ago
kaetemi 83210ce17b Fix stuck loading screen when quitting scenario, fix kaetemi/ryzomclassic#83 5 years ago
kaetemi bcac1e7955 Fix silently lost nlassert, ryzom/ryzomcore#596 5 years ago
kaetemi 75777b3497 Fix R2 input handling. Probably broken by GUI refactoring. Fix kaetemi/ryzomclassic#81 5 years ago
kaetemi e020c9f0d0 Avoid bad memory access in LOD texture failure case, ref ryzom/ryzomcore_graphics#22 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 67b74ad2b7 Added: Ingame config options for window snap. 5 years ago
Nimetu ddd16d4851 Fixed: Animal marker invalidates map on each frame 5 years ago
Nimetu 110f1715ea Fixed: Hide 'sound disabled' warning on startup 5 years ago
Nimetu 598be95efd Added: Ingame config options for window snap. 5 years ago
kaetemi 4f0bbbad69 String fixes 5 years ago
kaetemi 50be041116 Fix plugin build for 3ds Max 9 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
kaetemi b713dccdc9 Retarget to R:\leveldesign and R:\graphics 5 years ago
Jan Boon c9163412ad Simplified default folder structure 5 years ago
Jan Boon d2d89ac44f Simplified default folder structure 5 years ago
Jan Boon d036b616b5
Update azure-pipelines.yml 5 years ago
Jan Boon 7b8f1b9a61
Update azure-pipelines.yml 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
Jan Boon 34ba374d8b Move code to root 5 years ago
kaetemi 075a34f7cc Add command to keep translation 5 years ago
kaetemi e41339fa2d Remove leveldesign duplicate files 5 years ago
kaetemi 6961c10556 Add command to keep translation 5 years ago
kaetemi 2c1be97a50 Add r2 string translation command 5 years ago
kaetemi e4883acceb Formatting style 5 years ago
kaetemi aeb127e011 Fix cast warnings 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
Nimetu 2c92649a72 Fixed: Default value for WITH_RYZOM_LIVE not used. 5 years ago
kaetemi 6b9a1f39cd Fix scenario loading 5 years ago
kaetemi 0244c348ee Fix exit crash when CTextureBump is destroyed after _NameToNF 5 years ago
kaetemi f0687a8157 Fix ring scenario edition mode initialization 5 years ago
kaetemi f41126f4b2 The order of processing directories really is important, don't randomize it!!! 5 years ago
Jan Boon abb6af4f3b Merge remote-tracking branch 'ryzomcore/develop' into develop 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
Nimetu 14076b899d Fixed: compiling ryzom installer 5 years ago
Ulukyn ce8b05b284 Merge branch 'master' into stline/s2e1 5 years ago
Nimetu f78decc6ad Fixed: typo 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
Nimetu e1dff3b4b8 Fixed: typo 5 years ago
Nimetu 6afd9ea1f2 Fixed: invalid assignment 5 years ago
Nimetu f449bb7c51 Changed: Display mp3 music path on sysinfo window. 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
kaetemi 7256109dcb Add a verbose variant of assert that's disabled in final build 5 years ago
kaetemi 86b809e581 Fix typo 5 years ago
kaetemi f8bee17d3c Fix build 5 years ago
kaetemi c056cd7d24 Fixes 5 years ago
kaetemi 0a1e8186b3 Batch of fixes for client 5 years ago
kaetemi 71e3ed5868 Fix NULL _Parent and uninitialized parentId 5 years ago
kaetemi 9d5af13c5e Assert parent exists 5 years ago
kaetemi e65d1587e7 Set fallback value on uninitialized variable 5 years ago
kaetemi 168c770716 Assert return value 5 years ago
kaetemi 71c7d3161e Disable unscoped enum warning 5 years ago
kaetemi cd555f640b This should probably clear 5 years ago
kaetemi 2ebe1c2a3d Clean up analysis warnings 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
Nimetu 9c46a9d8f7 Changed: Windows focus events on macOS 5 years ago
Nimetu dccbb376a0 Changed: Windows focus events in Direct3d 5 years ago
Nimetu 0bec2ee2ff Changed: Ignore setMousePos if window does not have input focus. 5 years ago
Nimetu 1337908369 Changed: systemMessageBox on linux/macOS to non-blocking, log only 5 years ago
Nimetu 0078df9593 Fixed: Scroll bar losing position when group window is minimized 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
Nimetu 90dcb7257f Added: Window snap 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
Nimetu af221b7118 Changed: More control to extend_over_text layout from xml 5 years ago
Nimetu e3df74eaee Fixed: Form select option text as value if value attribute is not set. 5 years ago
Nimetu ff9aa6c608 Add missing PowerRoot effect families to sheetid conversions table. 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
Nimetu c5d8f7b2de 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
Nimetu b13d51242c Fixed: ah:html_submit_form without caller object 5 years ago
Nimetu 2191d21bce Fixed: html button with empty formid attribute 5 years ago
Nimetu 8be553401d 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
Nimetu f46ec8f6ff Added: dataURL image support in html 5 years ago
Nimetu b208c0b805 Added: Creating texture from data:image/type 5 years ago
Nimetu d2ccc09b7d Added: encodeURIComponent, decodeURIComponent 5 years ago
Nimetu 58cc988fbc Added: base64 encode/decode 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
kaetemi ae68ce722e Various fixes or adjustments 5 years ago
kaetemi 2cdfc0ce29 CObjectNumber for Lua interop needs to deal with both double and sint64 types, cannot have separate CObjectInteger type 5 years ago
kaetemi bddbed9da2 Sanity check for Lua integer size 5 years ago
kaetemi d56eab0420 CObjectNumber for Lua interop needs to deal with both double and sint64 types, cannot have separate CObjectInteger type 5 years ago
kaetemi 02270e7113 Functions returning a string reference must not be cast to functions returning a string object 5 years ago
kaetemi 695ebeb0ef Fix incorrect mutex usage 5 years ago
kaetemi e2610a025c Fix dbg login parameter issue 5 years ago
kaetemi 45a43384da Allow mapping CSheetId from string literals, avoiding std::string allocation 5 years ago
kaetemi 4645d1837d Fix tool build 5 years ago
kaetemi e1c48be4ba Allow mapping TStringId from string literals, avoiding std::string allocation 5 years ago
kaetemi 761770d4eb Fix divide by zero crash in zone lighter 5 years ago
kaetemi 8d48c8ee74 Add option to include Z coordinate for zone test 5 years ago
Riasan d5ceb97fa0 Merge branch 'master' into event_atysmas 5 years ago
kaetemi 3ed3841c3a Fix crash in zone_lighter, index buffer was assumed 32 bit 5 years ago
kaetemi 1069a5acf9 New tool to reverse a ligo land build, for data restoration 5 years ago
kaetemi 35bfb16ff9 Add super handy endsWith string utility function 5 years ago
Ulukyn cdc33730ad Merge branch 'rewards' 5 years ago
Ulukyn 305a27f0db Merge branch 'master' into rewards 5 years ago
kaetemi 281a599036 Patch more dangerous strcat buffers 5 years ago
kaetemi ef6f2ea34b Why is this duplicate?! 5 years ago
kaetemi 174aff62d7 Fix buffer overflow 5 years ago
kaetemi d934f5769a Fix initialization 5 years ago
kaetemi 1b35b7812b Fix crash in georges edit due to string change 5 years ago
kaetemi c2d0b6206c Correct tool name to zone_elevation 5 years ago
kaetemi 83316e6e2c Filter commit 5 years ago
kaetemi dc734ed662 Use standard header format where applicable 5 years ago
kaetemi c2f01edab0 Filter commit 5 years ago
kaetemi c8e562f377 AGPLv3: The work must carry prominent notices stating that you modified it, and giving a relevant date 5 years ago
kaetemi 22f487876c Filter commit 5 years ago
kaetemi 8e21fed1e6 AGPLv3: The work must carry prominent notices stating that you modified it, and giving a relevant date 5 years ago
kaetemi 38d3344972 Add script to update headers 5 years ago
kaetemi 43452ea27c Fix some headers 5 years ago
kaetemi ff4a521b07 Clean up some headers 5 years ago
kaetemi 76c252b23c Build fix 5 years ago
kaetemi b28c9ef8c4 Merge in https fix 5 years ago
kaetemi f66a8b8fdc Document parameters 5 years ago
kaetemi ef058b10ff Add some documentation what this http provider is for 5 years ago
kaetemi 76e0e9c105 Move HTTP related code into new NLWEB library 5 years ago
kaetemi 1cf2a792ae Reverse unneeded change from merge 5 years ago
kaetemi dbef81c3c2 Merge branch 'feature/streamed-package' into develop 5 years ago
kaetemi 09e31cf75a Fix 5 years ago
kaetemi b32b1becec Decouple downloader from streamed package manager 5 years ago
kaetemi cfaae39b83 Merge branch 'develop' into feature/streamed-package 5 years ago
Jan Boon 03340ee875 Tag cleanup
--HG--
branch : develop
5 years ago
Nimetu 02e7393c14 Changed: Move hardcoded urls to cmake.
--HG--
branch : develop
5 years ago
Nimetu df21e21085 Fixed: nelmisc linker error
--HG--
branch : develop
5 years ago
NO-BREAK SPACE OÜ 8cbadfbbcc Merge from Git repository
--HG--
branch : develop
5 years ago
Jan Boon 671035c9b1 Add source of old Qt based BNP make gui from sfb 5 years ago
NO-BREAK SPACE OÜ 46043f088a Merge from Git repository
--HG--
branch : develop
5 years ago
kaetemi a0869f11cd Fix ig elevation paths 5 years ago
kaetemi a34541fe95 Apply zone heightmap after weld to fix rbank build failure, ryzomclassic/#58 5 years ago
kaetemi 20c339891d Continent sheet is name by default 5 years ago
kaetemi 0f59a02662 Adjust continent sheet name 5 years ago
NO-BREAK SPACE OÜ c51e17cf0c Merge from Git repository
--HG--
branch : develop
5 years ago
Jan Boon 5487d77cf8 Merge remote-tracking branch 'ryzomcore/hg/develop' into develop 5 years ago
kaetemi edb3ba6002 Patch over https 5 years ago
kaetemi 111562822d Add handy startsWith string utility function 5 years ago
NO-BREAK SPACE OÜ 94f0899f99 Merge from Git repository
--HG--
branch : develop
5 years ago
kaetemi 057b3ab11b Enable callstack logging 5 years ago
kaetemi 830803cfe9 Debug logs should not be disabled in DEV client... 5 years ago
kaetemi c330067f19 Set patch urls 5 years ago
NO-BREAK SPACE OÜ 80076ae97a Merge from Git repository
--HG--
branch : develop
5 years ago
kaetemi bbee8579c7 Login using https 5 years ago
kaetemi 3475b3046a Fix dependency 5 years ago
kaetemi 68d8e21629 Add signtool support 5 years ago
kaetemi 22e9c17a72 Add sound copy process 5 years ago
NO-BREAK SPACE OÜ 5c872ad06e Merge from Git repository
--HG--
branch : develop
5 years ago
kaetemi c15e75ecc8 Build rest of sound sheets 5 years ago
kaetemi 255c6956c7 Skip git directory 5 years ago
NO-BREAK SPACE OÜ 1f6b79202c Merge from Git repository
--HG--
branch : develop
5 years ago
kaetemi 02305cdb33 Fix sound sheet build code that caused random and missing values 5 years ago
kaetemi ed8a5c14a7 Add sound sheet build process 5 years ago
NO-BREAK SPACE OÜ f239faeb63 Merge from Git repository
--HG--
branch : develop
5 years ago
Jan Boon af31769a63
Add LICENSE copy to the repository root 5 years ago
kaetemi e9c175d3f3 Add ignored files 5 years ago
kaetemi dedb0cbc08 Revert unused changes 5 years ago
kaetemi cf2d5e939f Fix build 5 years ago
kaetemi 3fe0ad30a3 Merge streamed package feature with latest 7z 5 years ago
kaetemi ce9fac5233 Cleanup streamed package merge 5 years ago
kaetemi 49a4d00522 Merge branch 'feature/streamed-package' into feature/streamed-package-update 5 years ago
kaetemi 8e4edcb954 Merge branch 'develop' into feature/streamed-package 5 years ago
NO-BREAK SPACE OÜ 8100f15ce7 Merge from Git repository
--HG--
branch : develop
5 years ago
kaetemi 9307cac83c Add samplebank build process 5 years ago
kaetemi 2faa1d7ab8 Only add DFN to search path if not a subdir of the other path 5 years ago
kaetemi dd1043eaae Revert inappropriate changes from 29b38937a5 5 years ago
kaetemi c635a27722 Remove unused sheet init 5 years ago
kaetemi 67bba962d7 Revert unused change from TStringId to CSheetId for sounds 5 years ago
kaetemi a24c758d95 Fix path definitions 5 years ago
kaetemi 943a3c239a Revert sound sheet id workaround 5 years ago
kaetemi f81f348d64 Remove sound sheet workaround 5 years ago
kaetemi 41c4cdbc7b Bump NeL version 5 years ago
kaetemi 41a803dd40 Run pipeline setup in batch file 5 years ago
Nimetu 84ff3391c3 Fixed: Compiler warnings, issue #339
--HG--
branch : develop
5 years ago
NO-BREAK SPACE OÜ bd29ed2808 Merge from Git repository
--HG--
branch : develop
5 years ago
kaetemi 4c74d13931 Fix bitbucket/ryzomcore/#340, #341,#342 5 years ago
NO-BREAK SPACE OÜ dc1bd19f61 Merge from Git repository
--HG--
branch : develop
5 years ago
kaetemi a138c727b7 Fix build with MariaDB connector 5 years ago
NO-BREAK SPACE OÜ a53051c316 Merge from Git repository
--HG--
branch : develop
5 years ago
kaetemi 3d370f5f65 Merge branch 'develop' of github.com:ryzom/ryzomcore into develop 5 years ago
kaetemi 344b41439b Add tool icons 5 years ago
NO-BREAK SPACE OÜ 442983e1a8 Merge from Git repository
--HG--
branch : develop
5 years ago
kaetemi 1e1a4419e6 Revert. FMod is no longer supported 5 years ago
NO-BREAK SPACE OÜ 8b17f84a6b Merge from Git repository
--HG--
branch : develop
5 years ago
kaetemi a9250a74f1 Revert inappropriate changes from 29b38937a5 5 years ago
Nimetu 4c1daee42c Merge with develop
--HG--
branch : yubo
5 years ago
Nimetu fec9975f58 Fixed: Downloaded css file was not used
--HG--
branch : develop
5 years ago
Nimetu fc9d423c94 Fixed: Possible deadlock when css url not removed from stylehseet queue
--HG--
branch : develop
5 years ago
Nimetu 1d5580a2d6 Fixed: Force stop css downloads when starting to browse new url.
--HG--
branch : develop
5 years ago
Ulu Kyn b5b8de283b Merge with ark
--HG--
branch : atys
5 years ago
kervala 71b65b9564 Fixed: Use nlUtf8ToWide macro instead of utf8ToWide function
--HG--
branch : develop
5 years ago
kervala 9d9819f1c0 Changed: Updated NeL module
--HG--
branch : develop
5 years ago
kervala 0914828ee2 Fixed: Tools compilation (sheets_packer_shard requires server code)
--HG--
branch : develop
5 years ago
kervala fb93157afd Changed: Use FIND_PACKAGE_HELPER
--HG--
branch : develop
5 years ago
kervala 61a137797a Changed: Updated toolchains
--HG--
branch : develop
5 years ago
kervala f190869d59 Fixed: Support for VC++ 2019 (don't use registry anymore but CMAKE_CXX_COMPILER instead)
--HG--
branch : develop
5 years ago
kervala a8097f47d4 Changed: Replace spaces by tabs
--HG--
branch : develop
5 years ago
kervala ca75cc4dea Fixed: Variable "fx" uninitialized if _Lines is empty
--HG--
branch : develop
5 years ago
kervala 390d987557 Fixed: Variable "success" uninitialized if HTML content is empty
--HG--
branch : develop
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
Nimetu 076d4b73c1 Changed: Config option to disable /tar for changing compass target.
--HG--
branch : develop
5 years ago
Nimetu 25d04f65bd Fixed: Inventory and npc trade items list did not show crafted item names.
--HG--
branch : develop
5 years ago
Nuno Gonçalves 19789a2544 Merge with develop
--HG--
branch : atys
5 years ago
Nuno Gonçalves 2220c41a46 Merge with feature-closest-landmarks-menu
--HG--
branch : develop
5 years ago
Nuno Gonçalves 9a2e820495 Merge with html-improvements
--HG--
branch : develop
5 years ago
Nuno Gonçalves 230639bf0e Fusion
--HG--
branch : develop
5 years ago
Nuno Gonçalves c950019044 Merge from feature-item-icon-buffs
--HG--
branch : atys
5 years ago
Nimetu e4cce24f80 Merge with html-improvements
--HG--
branch : yubo
5 years ago
Nimetu 5dc8b4ef86 Changed: remove old code
--HG--
branch : html-improvements
5 years ago
Nimetu 8060c05be5 Changed: remove old code
--HG--
branch : atys
5 years ago
Nimetu 07ba1aa3d0 Backed out changeset: 05b36f55a905
--HG--
branch : atys
5 years ago
Nimetu 6a81640199 Backed out changeset: c811dbaba800
--HG--
branch : atys
5 years ago
Nimetu 07a83ba15a Fixed: Make sure border pointer is not null.
--HG--
branch : html-improvements
5 years ago
Nimetu 48b5f159b7 Fixed: Table cell padding applied twice
--HG--
branch : html-improvements
5 years ago
Nuno Gonçalves 56ce661b5b Fixed: Compilation error when a static property are initialized at same time than this definition
--HG--
branch : atys
5 years ago
Nuno Gonçalves a8c4ba0493 Fixed: Compilation error when a static property are initialized at same time than this definition
--HG--
branch : atys
5 years ago
Nuno Gonçalves 0c01011cd4 Merge from Ark
--HG--
branch : atys
5 years ago
Nimetu 2e3fa918d4 Merge with html-improvements
--HG--
branch : yubo
5 years ago
Nimetu 5843ebede0 Fixed: Correctly split css shorthand with rgb(), rgba() with spaces
--HG--
branch : html-improvements
5 years ago
Nimetu d7c754039e Fixed: shorthand/longhand properties handled in wrong order
--HG--
branch : html-improvements
5 years ago
Nimetu 963a9814da Changed: refactor css shorthand expansion to own method
--HG--
branch : html-improvements
5 years ago
Nimetu 79fd4cf8d7 Changed: refactor
--HG--
branch : html-improvements
5 years ago
Nimetu 0ef7419fd6 Fixed: Wrong border size when border hidden/none
--HG--
branch : html-improvements
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
Nuno Gonçalves a4d2f80579 Added: A way to run lua per ZONE wiht ZONE_ID.lua files (usefull to spawn shapes)
--HG--
branch : ark
5 years ago
Nimetu c6dc92e0ec Fixed: Cleanup of table/cell border
--HG--
branch : html-improvements
5 years ago
Nimetu da5b7212f8 Merge with html-improvements
--HG--
branch : yubo
5 years ago
Nimetu d3c6098207 Fixed: Browser css file could not be loaded from bnp
--HG--
branch : html-improvements
5 years ago
Nimetu 14b1c1232a Merge with html-improvements
--HG--
branch : yubo
5 years ago
Nimetu 5940e276fb Fixed: Strip whitespace between table elements
--HG--
branch : html-improvements
5 years ago
Nimetu 4ec9024077 Changed: Treat input 'size' attribute as chars (old was pixels). Add '-ryzom-input-size-px: true;' css property for old behaviour.
--HG--
branch : html-improvements
5 years ago
Nimetu f25771118d Fixed: Table layout calculation with border/padding
--HG--
branch : html-improvements
5 years ago
Nimetu 25ee8029e3 Fixed: Table/cell width using css units
--HG--
branch : html-improvements
5 years ago
Nimetu 0f23f3a59b Fixed: Table cell should inherit height attribute from row
--HG--
branch : html-improvements
5 years ago
Nimetu 0fb06e0ff3 Added: Table cell independent padding.
--HG--
branch : html-improvements
5 years ago
Nimetu 1a98c83080 Changed: Use transparency from global content on table/cell border instead background
--HG--
branch : html-improvements
5 years ago
Nimetu 24d03e9c26 Added: Table/cell borders with independent size and color
--HG--
branch : html-improvements
5 years ago
Nimetu 19b5dd96d1 Fixed: Missing include
--HG--
branch : html-improvements
5 years ago
Nimetu f952202c09 Added: Parsing css border shorthand
--HG--
branch : html-improvements
5 years ago
Nimetu 036410af62 Fixed: Drawing table and cell background image and modulating color from global.
--HG--
branch : html-improvements
5 years ago
Nimetu 30e0018d0a Fixed: Use empty placeholder for background images.
--HG--
branch : html-improvements
5 years ago
Nimetu 26e356723e Added: CRGBA::Transparent color preset
--HG--
branch : html-improvements
5 years ago
Nimetu 13bdecc3aa Changed: Helper functions (clear, empty) for CTextureId
--HG--
branch : html-improvements
5 years ago
Nimetu 2dee4e41ea Added: background-image for tables
--HG--
branch : html-improvements
5 years ago
Nimetu ecc658703c Fixed: Table cell background should be on top-left with no overflow.
--HG--
branch : html-improvements
5 years ago
Nimetu 72b6d1e4c5 Fixed: Move tr elements directly under table into tbody
--HG--
branch : html-improvements
5 years ago
Nimetu 379a7f0e98 Changed: Ignore UI fontsize coef setting for html content.
--HG--
branch : html-improvements
5 years ago
Nimetu cc437ef7a9 Changed: Use external browser css file.
--HG--
branch : html-improvements
5 years ago
Nuno Gonçalves de69dfc285 Merge from new_interface_features 5 years ago
Inky d0b3d0596c Fixed: undesired code introduced from merging lua branch
--HG--
branch : atys
5 years ago
Inky cc3a609b01 Merge with lua
--HG--
branch : atys
5 years ago
Nuno Gonçalves f5776610f1 Merge from new_interface_features 5 years ago
Inky 11f2044c7d Fusion 5 years ago
Riasan 8aea3d661a Changed: set Fullscreen to 0 to prevent crashes on last OSX Version
--HG--
branch : atys
5 years ago
Nimetu b53d797745 Merge with feature-closest-landmarks-menu
--HG--
branch : yubo
6 years ago
Nimetu 3c1d6a2401 Added: Show closest landmarks on map right-click menu
--HG--
branch : feature-closest-landmarks-menu
6 years ago
Nimetu 4a15779094 Added: Right click action handler for menu item
--HG--
branch : feature-closest-landmarks-menu
6 years ago
Nimetu 8b4c179a15 Merge with develop
--HG--
branch : yubo
6 years ago
Nimetu 39e0f4b4f2 Fixed: Invalid css width/height when using percent value
--HG--
branch : develop
6 years ago
ulukyn e3fbe18162 Fusion avec fix-bitmap-crash
--HG--
branch : atys
6 years ago
ulukyn 959d52fd80 Fusion avec fix-bitmap-crash
--HG--
branch : yubo
6 years ago
ulukyn 6fad7343e8 Added: new branch fix-bitmap-crash
--HG--
branch : fix-bitmap-crash
6 years ago
Nimetu b423c0f057 Merge with feature-item-icon-buffs
--HG--
branch : yubo
6 years ago
Nimetu 131f05387a Added: Option to turn icon buff markers on/off
--HG--
branch : feature-item-icon-buffs
6 years ago
Nimetu 7a2608e38c Fixed: Buff markers visible for icons that does not support them.
--HG--
branch : feature-item-icon-buffs
6 years ago
Nimetu 7148d476ad Merge with develop
--HG--
branch : yubo
6 years ago
Nimetu bbfc20c81d Fixed: Crash when CViewBitmap was using texture from web.
--HG--
branch : develop
6 years ago
Nimetu fe3c0167ba Changed: Disable r2_islands_textures, ai_build_wmap, build_world_packed_col because no server code in yubo/atys branch.
--HG--
branch : atys
6 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
6 years ago
Nimetu b822f1388e Fixed: Make sure required rrd directory exists.
--HG--
branch : develop
6 years ago
Nimetu e3b0cdeadf Changed: Remove duplicate js/css files from ams page template
--HG--
branch : develop
6 years ago
Nimetu 7af4e78d6d Changed: Fixes for php7
--HG--
branch : develop
6 years ago
Nimetu 7d688f1a64 Fixed: IOS crash on startup when phrase language file is missing.
--HG--
branch : develop
6 years ago
Inky bfbb8e1292 Merge with menu_navi
--HG--
branch : yubo
6 years ago
Inky 045a80b59e Changed: removed tabulation event since not used
--HG--
branch : menu_navi
6 years ago
Inky 1ad5cf7a8e Merge with menu_navi
--HG--
branch : yubo
6 years ago
Inky c752619f13 Fixed: missing stream.h and import select var
--HG--
branch : menu_navi
6 years ago
Inky 26aef169b1 Merge with menu_navi
--HG--
branch : yubo
6 years ago
Inky 8006dbeabe Changed: export reflect texture(pushed, over) on CCtrlTextButton element
--HG--
branch : menu_navi
6 years ago
Inky 6fdbdc9ed1 Fixed: record only key next/prior event on CCtrlScroll element
--HG--
branch : menu_navi
6 years ago
Inky f75e413994 Changed: new key pushed event: left-right-tabulation
--HG--
branch : menu_navi
6 years ago
Inky 3acbf83058 Merge with menu_navi
--HG--
branch : yubo
6 years ago
Inky 77496daef4 Changed: new key pushed event to export
--HG--
branch : menu_navi
6 years ago
Inky c545629a10 Changed: import modal auto select first occurence
--HG--
branch : menu_navi
6 years ago
Inky 1910f7bc86 Merge with menu_navi
--HG--
branch : yubo
6 years ago
Inky c1e76fcbb2 Changed: add character exportation handler
--HG--
branch : menu_navi
6 years ago
Inky 20fe11c53f Changed: add character importation handler
--HG--
branch : menu_navi
6 years ago
Inky 3da8dcbdac Changed: copy of changeset #ba5a7ec85045 (dead branch)
--HG--
branch : develop
6 years ago
Inky 6fcb6f0669 Merge with menu_navi
--HG--
branch : yubo
6 years ago
Inky a7cdf29463 Merge with lua
--HG--
branch : yubo
6 years ago
Inky b2b16e3cce Changed: fusion selection and creation handler
--HG--
branch : menu_navi
6 years ago
Inky 0f3f64cdc2 Changed: character creation handler
Todo: fusion both handler

--HG--
branch : menu_navi
6 years ago
Inky c8927c9c4b Changed: update button selection handler keyset_select
--HG--
branch : menu_navi
6 years ago
Inky 5d1233e805 Changed: update button selection handler mainland_select
--HG--
branch : menu_navi
6 years ago
Inky f5e9b7703c Changed: added keyboard events to CCtrlScroll elements
--HG--
branch : menu_navi
6 years ago
Inky a1492e70e0 Changed: bind to interact with vertical/horizontal scroll elements
--HG--
branch : lua
6 years ago
Inky 098df688b9 Merge with menu_navi
--HG--
branch : yubo
6 years ago
Inky 6d16b46890 Merge with lua
--HG--
branch : yubo
6 years ago
Inky 331b0d8718 Fixed: bad condition to verify parent id
--HG--
branch : menu_navi
6 years ago
Inky 9dec7f9dbe Changed: get the lua script executed at checkCoords time
--HG--
branch : lua
6 years ago
Inky d9cb317667 Merge with menu_navi
--HG--
branch : yubo
6 years ago
Inky 90e508032c Changed: character selection handler
--HG--
branch : menu_navi
6 years ago
Inky 4a5de4cb13 An attempt to support keyboard interaction out game
Create, select and delete character

--HG--
branch : menu_navi
6 years ago
Inky 9d294ef242 Merge with develop
--HG--
branch : yubo
6 years ago
Inky f17aeff6f2 Changed: cli character selection
--HG--
branch : develop
6 years ago
Inky 860d6e2abb Merge with compatibility-develop
--HG--
branch : yubo
6 years ago
Inky 64e26124f8 Fusion 6 years ago
Inky ac4d9efd8b Merge with lua
--HG--
branch : yubo
6 years ago
Nimetu a4b3e57fd0 Merge with develop
--HG--
branch : yubo
6 years ago
Nimetu 527d4bf00c Changed: Show server returned error message for http/404,500 errors
--HG--
branch : develop
6 years ago
Nimetu 8b2aef9317 Merge with develop
--HG--
branch : yubo
6 years ago
Nimetu abad5aa84e Changed: Workaround for intermittent ssl certificate issue under windows.
--HG--
branch : develop
6 years ago
Nimetu c439a10cfe Fixed: WebIG notif thread did not have curl certificates loaded.
--HG--
branch : develop
6 years ago
Nimetu c123f63afd Merge with feature-item-icon-buffs
--HG--
branch : yubo
6 years ago
Nimetu ba42b50cf0 Changed: Send item info request for updated tooltips (ie durability changes)
--HG--
branch : feature-item-icon-buffs
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
ulukyn 9fc1987631 Changed: remove server src and cfg for Atys live branch (useless since we use another repo)
--HG--
branch : atys
6 years ago
Jan Boon 1163d11ede Cleanup tags
--HG--
branch : develop
6 years ago
Jan Boon 4d45de3e7d Added tag ryzomcore/v1.0.0 for changeset 3e92c7104c20
--HG--
branch : develop
6 years ago
Jan Boon ba6ab62626 Added tag ryzomcore/v1.0.1 for changeset 8eb94c3549be
--HG--
branch : develop
6 years ago
Riasan 4f08aa3082 Merge: update with default 6 years ago
ulukyn 72d636ded1 Fusion 6 years ago
Nimetu 2f883ddb1d Changed: Display stat buff and enchant info on item icon
--HG--
branch : feature-item-icon-buffs
6 years ago
Nimetu e0a1cd3c4a Changed: Cache extra item info responses from server
--HG--
branch : feature-item-icon-buffs
6 years ago
Nimetu 4636e32885 Fixed: Add missing properties to trade/mission item db
--HG--
branch : feature-item-icon-buffs
6 years ago
Nimetu efaadfe121 Added: Missing properties to item CItemImage
--HG--
branch : feature-item-icon-buffs
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 7 years ago
Riasan 56f450782f Merge: test fix_city_guards on Yubo 7 years ago
Riasan dda9dff6ba Merge: update with ark 7 years ago
Riasan e0266dedcb Merge: update with marauder 7 years ago
Riasan 28fd5a7265 Merge: update with purple_gubani 7 years ago
ulukyn 085770a098 Merge from purple_gubani 7 years ago
ulukyn a5f98add80 Merge from ark 7 years ago
ulukyn bb667c736c Changed: Increse MAX_INVENTORY_ANIMAL to 7, add AnimalTicket sitem type 7 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
Nimetu 923084a818 Added: Command to search and target closest user landmark.
--HG--
branch : develop
7 years ago
Nimetu 11150e6b79 Changed: Switch compass to target mode after successful /tar command.
--HG--
branch : develop
6 years ago
Nimetu a5aa8e48a5 Fixed: Initial image download did not become visible
--HG--
branch : develop
6 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
kaetemi 5db42f1eb6 Changed path cfg
--HG--
branch : feature-streamed-package
10 years ago
kaetemi a33799d210 Merge with develop
--HG--
branch : feature-streamed-package
10 years ago
kaetemi e277fedfb8 Don't write empty buffer
--HG--
branch : feature-streamed-package
10 years ago
kaetemi 0f59cb4343 Validate downloaded files
--HG--
branch : feature-streamed-package
10 years ago
kaetemi a7af274ae0 Don't decompress empty file in stream package
--HG--
branch : feature-streamed-package
10 years ago
kaetemi b19c685ace Fix link
--HG--
branch : feature-streamed-package
10 years ago
kaetemi 153ea8169d Fix link
--HG--
branch : feature-streamed-package
10 years ago
kaetemi 6b5d7b66a4 Fix compile
--HG--
branch : feature-streamed-package
10 years ago
kaetemi b7208c9513 Merge with develop
--HG--
branch : feature-streamed-package
10 years ago
kaetemi 242476e1f6 Fix library linking
--HG--
branch : feature-streamed-package
10 years ago
kaetemi 8d93e9308f Remove some debugging
--HG--
branch : feature-streamed-package
10 years ago
kaetemi 9a1510caf0 Fix patching
--HG--
branch : feature-streamed-package
10 years ago
kaetemi 40f4eb4ad2 Fix package description generation
--HG--
branch : feature-streamed-package
10 years ago
kaetemi 85615992d7 Remove some debugging
--HG--
branch : feature-streamed-package
10 years ago
kaetemi fb7955103b Implement streamed data download, ref #179
--HG--
branch : feature-streamed-package
10 years ago
kaetemi dccfc87975 Remove some debugging, ref #179
--HG--
branch : feature-streamed-package
10 years ago
kaetemi e6a327fb1a Implementation fixes, ref #179
--HG--
branch : feature-streamed-package
10 years ago
kaetemi 105ecbff90 Add pipeline script for creating streamed packages
--HG--
branch : feature-streamed-package
10 years ago
kaetemi 7d09a6cb15 Add streamed package manager
--HG--
branch : feature-streamed-package
10 years ago
kaetemi 4ba6b6c4bf Workaround '0' unpack directory bug, and don't choke on 0 size files when unpacking bnp files
--HG--
branch : feature-streamed-package
10 years ago
kaetemi 20b4fc8a87 Move 7zip library
--HG--
branch : feature-streamed-package
10 years ago
kaetemi 9c3e8674ae Add tool to build streamed package, ref #179
--HG--
branch : feature-streamed-package
10 years ago

@ -6,7 +6,7 @@ BraceWrapping:
AfterControlStatement: true
AfterEnum: true
AfterFunction: true
AfterNamespace: true
AfterNamespace: false
AfterObjCDeclaration: true
AfterStruct: true
AfterUnion: true

@ -17,3 +17,7 @@ indent_size = 4
[*.py]
indent_style = tab
indent_size = 4
[*.cfg]
indent_style = tab
indent_size = 4

186
.gitignore vendored

@ -90,6 +90,7 @@ ylwrap
*.mk
# Visual Studio garbage
.vscode/
*.opensdf
UpgradeLog*.XML
_UpgradeReport_Files
@ -127,6 +128,9 @@ aes_state.txt
# intellij project folder
.idea/
# VSCode project folder
.vscode/
# Python cache
*.pyd
*.pyc
@ -142,7 +146,6 @@ moc_*.cpp
*.cache
*.patch
*.7z
3rdParty
.svn
thumbs.db
Thumbs.db
@ -152,88 +155,90 @@ Thumbs.db
.SyncArchive
# build
code/nel/build/*
code/nelns/build/*
code/snowballs/build/*
code/ryzom/build/*
code/build/*
code/build-2010/*
nel/build/*
nelns/build/*
snowballs/build/*
ryzom/build/*
build/*
build-2010/*
build/*
install/*
win-build/
build_*
code/nel/tools/build_gamedata/configuration/buildsite.py
install_*
nel/tools/build_gamedata/configuration/buildsite.py
# Linux nel compile
code/nel/build/nel-config
code/nel/config.status
code/nel/include/nelconfig.h
code/nel/include/stamp-h1
code/nel/libtool
code/nel/nel-config
code/nel/samples/3d/cluster_viewer/cluster_viewer
code/nel/samples/3d/font/font
code/nel/samples/georges/georges
code/nel/samples/misc/command/command
code/nel/samples/misc/configfile/configfile
code/nel/samples/misc/debug/debug
code/nel/samples/misc/i18n/i18n
code/nel/samples/misc/log/log
code/nel/samples/misc/strings/strings
code/nel/samples/net/chat/chatclient
code/nel/samples/net/chat/chatserver
code/nel/samples/net/login_system/nls_frontend_service
code/nel/samples/net/login_system/nls_login_client
code/nel/samples/net/udp/udp_bench_client
code/nel/samples/net/udp/udp_bench_service
code/nel/samples/pacs/pacs_sample
code/nel/tools/3d/build_coarse_mesh/build_coarse_mesh
code/nel/tools/3d/build_far_bank/build_far_bank
code/nel/tools/3d/build_smallbank/build_smallbank
code/nel/tools/3d/ig_lighter/ig_lighter
code/nel/tools/3d/zone_dependencies/zone_dependencies
code/nel/tools/3d/zone_ig_lighter/zone_ig_lighter
code/nel/tools/3d/zone_lighter/zone_lighter
code/nel/tools/3d/zone_welder/zone_welder
code/nel/tools/misc/bnp_make/bnp_make
code/nel/tools/misc/disp_sheet_id/disp_sheet_id
code/nel/tools/misc/make_sheet_id/make_sheet_id
code/nel/tools/misc/xml_packer/xml_packer
code/nel/tools/pacs/build_ig_boxes/build_ig_boxes
code/nel/tools/pacs/build_indoor_rbank/build_indoor_rbank
code/nel/tools/pacs/build_rbank/build_rbank
code/ryzom/common/data_leveldesign/leveldesign/game_element/xp_table/skills.skill_tree
code/ryzom/common/data_leveldesign/leveldesign/game_element/xp_table/xptable.xp_table
code/ryzom/tools/server/sql/ryzom_admin_default_data.sql
nel/build/nel-config
nel/config.status
nel/include/nelconfig.h
nel/include/stamp-h1
nel/libtool
nel/nel-config
nel/samples/3d/cluster_viewer/cluster_viewer
nel/samples/3d/font/font
nel/samples/georges/georges
nel/samples/misc/command/command
nel/samples/misc/configfile/configfile
nel/samples/misc/debug/debug
nel/samples/misc/i18n/i18n
nel/samples/misc/log/log
nel/samples/misc/strings/strings
nel/samples/net/chat/chatclient
nel/samples/net/chat/chatserver
nel/samples/net/login_system/nls_frontend_service
nel/samples/net/login_system/nls_login_client
nel/samples/net/udp/udp_bench_client
nel/samples/net/udp/udp_bench_service
nel/samples/pacs/pacs_sample
nel/tools/3d/build_coarse_mesh/build_coarse_mesh
nel/tools/3d/build_far_bank/build_far_bank
nel/tools/3d/build_smallbank/build_smallbank
nel/tools/3d/ig_lighter/ig_lighter
nel/tools/3d/zone_dependencies/zone_dependencies
nel/tools/3d/zone_ig_lighter/zone_ig_lighter
nel/tools/3d/zone_lighter/zone_lighter
nel/tools/3d/zone_welder/zone_welder
nel/tools/misc/bnp_make/bnp_make
nel/tools/misc/disp_sheet_id/disp_sheet_id
nel/tools/misc/make_sheet_id/make_sheet_id
nel/tools/misc/xml_packer/xml_packer
nel/tools/pacs/build_ig_boxes/build_ig_boxes
nel/tools/pacs/build_indoor_rbank/build_indoor_rbank
nel/tools/pacs/build_rbank/build_rbank
ryzom/common/data_leveldesign/leveldesign/game_element/xp_table/skills.skill_tree
ryzom/common/data_leveldesign/leveldesign/game_element/xp_table/xptable.xp_table
ryzom/tools/server/sql/ryzom_admin_default_data.sql
# Linux server compile
code/ryzom/server/src/entities_game_service/entities_game_service
code/ryzom/server/src/frontend_service/frontend_service
code/ryzom/server/src/gpm_service/gpm_service
code/ryzom/server/src/input_output_service/input_output_service
code/ryzom/server/src/mirror_service/mirror_service
code/ryzom/server/src/ryzom_admin_service/ryzom_admin_service
code/ryzom/server/src/ryzom_naming_service/ryzom_naming_service
code/ryzom/server/src/ryzom_welcome_service/ryzom_welcome_service
code/ryzom/server/src/tick_service/tick_service
ryzom/server/src/entities_game_service/entities_game_service
ryzom/server/src/frontend_service/frontend_service
ryzom/server/src/gpm_service/gpm_service
ryzom/server/src/input_output_service/input_output_service
ryzom/server/src/mirror_service/mirror_service
ryzom/server/src/ryzom_admin_service/ryzom_admin_service
ryzom/server/src/ryzom_naming_service/ryzom_naming_service
ryzom/server/src/ryzom_welcome_service/ryzom_welcome_service
ryzom/server/src/tick_service/tick_service
# WebTT temp dir
code/ryzom/tools/server/www/webtt/app/tmp
ryzom/tools/server/www/webtt/app/tmp
# AMS ignore
code/web/public_php/ams/is_installed
code/web/docs/ams/html
code/web/public_php/ams/templates_c
code/ryzom/tools/server/ryzom_ams/drupal
code/ryzom/tools/server/ryzom_ams/drupal_module/ryzommanage/ams_lib/autoload
code/ryzom/tools/server/ryzom_ams/drupal_module/ryzommanage/ams_lib/configs
code/ryzom/tools/server/ryzom_ams/drupal_module/ryzommanage/ams_lib/cron
code/ryzom/tools/server/ryzom_ams/drupal_module/ryzommanage/ams_lib/img
code/ryzom/tools/server/ryzom_ams/drupal_module/ryzommanage/ams_lib/plugins
code/ryzom/tools/server/ryzom_ams/drupal_module/ryzommanage/ams_lib/smarty
code/ryzom/tools/server/ryzom_ams/drupal_module/ryzommanage/ams_lib/translations
code/ryzom/tools/server/ryzom_ams/drupal_module/ryzommanage/ams_lib/libinclude.php
code/ryzom/tools/server/ryzom_ams/old
web/public_php/ams/is_installed
web/docs/ams/html
web/public_php/ams/templates_c
ryzom/tools/server/ryzom_ams/drupal
ryzom/tools/server/ryzom_ams/drupal_module/ryzommanage/ams_lib/autoload
ryzom/tools/server/ryzom_ams/drupal_module/ryzommanage/ams_lib/configs
ryzom/tools/server/ryzom_ams/drupal_module/ryzommanage/ams_lib/cron
ryzom/tools/server/ryzom_ams/drupal_module/ryzommanage/ams_lib/img
ryzom/tools/server/ryzom_ams/drupal_module/ryzommanage/ams_lib/plugins
ryzom/tools/server/ryzom_ams/drupal_module/ryzommanage/ams_lib/smarty
ryzom/tools/server/ryzom_ams/drupal_module/ryzommanage/ams_lib/translations
ryzom/tools/server/ryzom_ams/drupal_module/ryzommanage/ams_lib/libinclude.php
ryzom/tools/server/ryzom_ams/old
@ -243,24 +248,27 @@ external_stlport
nel_tools*
ryzom_tools*
#personal projects
personal/
# Dumps
*.dmp
code/nel/tools/build_gamedata/processes/ai_wmap/ai_build_wmap.cfg
code/nel/tools/build_gamedata/processes/sheets/sheets_packer.cfg
code/nel/tools/build_gamedata/processes/rbank/build_rbank.cfg
code/nel/tools/build_gamedata/processes/zone/debug_zone_dependencies.cfg
code/web/public_php/config.php
code/web/public_php/is_installed
code/web/public_php/ams/files
code/web/public_php/db_version_lib
code/web/public_php/db_version_shard
code/web/public_php/db_version_tool
code/web/public_php/db_version_web
code/web/public_php/role_service
code/web/public_php/role_support
code/web/public_php/role_domain
code/web/public_php/db_version_ring
code/web/public_php/config_user.php
code/nel/tools/build_gamedata/processes/pz/build_world_packed_col.cfg
code/nel/tools/build_gamedata/processes/cartographer/island_screenshots.cfg
nel/tools/build_gamedata/processes/ai_wmap/ai_build_wmap.cfg
nel/tools/build_gamedata/processes/sheets/sheets_packer.cfg
nel/tools/build_gamedata/processes/rbank/build_rbank.cfg
nel/tools/build_gamedata/processes/zone/debug_zone_dependencies.cfg
web/public_php/config.php
web/public_php/is_installed
web/public_php/ams/files
web/public_php/db_version_lib
web/public_php/db_version_shard
web/public_php/db_version_tool
web/public_php/db_version_web
web/public_php/role_service
web/public_php/role_support
web/public_php/role_domain
web/public_php/db_version_ring
web/public_php/config_user.php
nel/tools/build_gamedata/processes/pz/build_world_packed_col.cfg
nel/tools/build_gamedata/processes/cartographer/island_screenshots.cfg

@ -152,87 +152,87 @@ Thumbs.db
.SyncArchive
# build
code/nel/build/*
code/nelns/build/*
code/snowballs/build/*
code/ryzom/build/*
code/build/*
code/build-2010/*
nel/build/*
nelns/build/*
snowballs/build/*
ryzom/build/*
build/*
build-2010/*
build/*
install/*
build_vc*
code/nel/tools/build_gamedata/configuration/buildsite.py
nel/tools/build_gamedata/configuration/buildsite.py
# Linux nel compile
code/nel/build/nel-config
code/nel/config.status
code/nel/include/nelconfig.h
code/nel/include/stamp-h1
code/nel/libtool
code/nel/nel-config
code/nel/samples/3d/cluster_viewer/cluster_viewer
code/nel/samples/3d/font/font
code/nel/samples/georges/georges
code/nel/samples/misc/command/command
code/nel/samples/misc/configfile/configfile
code/nel/samples/misc/debug/debug
code/nel/samples/misc/i18n/i18n
code/nel/samples/misc/log/log
code/nel/samples/misc/strings/strings
code/nel/samples/net/chat/chatclient
code/nel/samples/net/chat/chatserver
code/nel/samples/net/login_system/nls_frontend_service
code/nel/samples/net/login_system/nls_login_client
code/nel/samples/net/udp/udp_bench_client
code/nel/samples/net/udp/udp_bench_service
code/nel/samples/pacs/pacs_sample
code/nel/tools/3d/build_coarse_mesh/build_coarse_mesh
code/nel/tools/3d/build_far_bank/build_far_bank
code/nel/tools/3d/build_smallbank/build_smallbank
code/nel/tools/3d/ig_lighter/ig_lighter
code/nel/tools/3d/zone_dependencies/zone_dependencies
code/nel/tools/3d/zone_ig_lighter/zone_ig_lighter
code/nel/tools/3d/zone_lighter/zone_lighter
code/nel/tools/3d/zone_welder/zone_welder
code/nel/tools/misc/bnp_make/bnp_make
code/nel/tools/misc/disp_sheet_id/disp_sheet_id
code/nel/tools/misc/make_sheet_id/make_sheet_id
code/nel/tools/misc/xml_packer/xml_packer
code/nel/tools/pacs/build_ig_boxes/build_ig_boxes
code/nel/tools/pacs/build_indoor_rbank/build_indoor_rbank
code/nel/tools/pacs/build_rbank/build_rbank
code/ryzom/common/data_leveldesign/leveldesign/game_element/xp_table/skills.skill_tree
code/ryzom/common/data_leveldesign/leveldesign/game_element/xp_table/xptable.xp_table
code/ryzom/tools/server/sql/ryzom_admin_default_data.sql
nel/build/nel-config
nel/config.status
nel/include/nelconfig.h
nel/include/stamp-h1
nel/libtool
nel/nel-config
nel/samples/3d/cluster_viewer/cluster_viewer
nel/samples/3d/font/font
nel/samples/georges/georges
nel/samples/misc/command/command
nel/samples/misc/configfile/configfile
nel/samples/misc/debug/debug
nel/samples/misc/i18n/i18n
nel/samples/misc/log/log
nel/samples/misc/strings/strings
nel/samples/net/chat/chatclient
nel/samples/net/chat/chatserver
nel/samples/net/login_system/nls_frontend_service
nel/samples/net/login_system/nls_login_client
nel/samples/net/udp/udp_bench_client
nel/samples/net/udp/udp_bench_service
nel/samples/pacs/pacs_sample
nel/tools/3d/build_coarse_mesh/build_coarse_mesh
nel/tools/3d/build_far_bank/build_far_bank
nel/tools/3d/build_smallbank/build_smallbank
nel/tools/3d/ig_lighter/ig_lighter
nel/tools/3d/zone_dependencies/zone_dependencies
nel/tools/3d/zone_ig_lighter/zone_ig_lighter
nel/tools/3d/zone_lighter/zone_lighter
nel/tools/3d/zone_welder/zone_welder
nel/tools/misc/bnp_make/bnp_make
nel/tools/misc/disp_sheet_id/disp_sheet_id
nel/tools/misc/make_sheet_id/make_sheet_id
nel/tools/misc/xml_packer/xml_packer
nel/tools/pacs/build_ig_boxes/build_ig_boxes
nel/tools/pacs/build_indoor_rbank/build_indoor_rbank
nel/tools/pacs/build_rbank/build_rbank
ryzom/common/data_leveldesign/leveldesign/game_element/xp_table/skills.skill_tree
ryzom/common/data_leveldesign/leveldesign/game_element/xp_table/xptable.xp_table
ryzom/tools/server/sql/ryzom_admin_default_data.sql
# Linux server compile
code/ryzom/server/src/entities_game_service/entities_game_service
code/ryzom/server/src/frontend_service/frontend_service
code/ryzom/server/src/gpm_service/gpm_service
code/ryzom/server/src/input_output_service/input_output_service
code/ryzom/server/src/mirror_service/mirror_service
code/ryzom/server/src/ryzom_admin_service/ryzom_admin_service
code/ryzom/server/src/ryzom_naming_service/ryzom_naming_service
code/ryzom/server/src/ryzom_welcome_service/ryzom_welcome_service
code/ryzom/server/src/tick_service/tick_service
ryzom/server/src/entities_game_service/entities_game_service
ryzom/server/src/frontend_service/frontend_service
ryzom/server/src/gpm_service/gpm_service
ryzom/server/src/input_output_service/input_output_service
ryzom/server/src/mirror_service/mirror_service
ryzom/server/src/ryzom_admin_service/ryzom_admin_service
ryzom/server/src/ryzom_naming_service/ryzom_naming_service
ryzom/server/src/ryzom_welcome_service/ryzom_welcome_service
ryzom/server/src/tick_service/tick_service
# WebTT temp dir
code/ryzom/tools/server/www/webtt/app/tmp
ryzom/tools/server/www/webtt/app/tmp
# AMS ignore
code/web/public_php/ams/is_installed
code/web/docs/ams/html
code/web/public_php/ams/templates_c
code/ryzom/tools/server/ryzom_ams/drupal
code/ryzom/tools/server/ryzom_ams/drupal_module/ryzommanage/ams_lib/autoload
code/ryzom/tools/server/ryzom_ams/drupal_module/ryzommanage/ams_lib/configs
code/ryzom/tools/server/ryzom_ams/drupal_module/ryzommanage/ams_lib/cron
code/ryzom/tools/server/ryzom_ams/drupal_module/ryzommanage/ams_lib/img
code/ryzom/tools/server/ryzom_ams/drupal_module/ryzommanage/ams_lib/plugins
code/ryzom/tools/server/ryzom_ams/drupal_module/ryzommanage/ams_lib/smarty
code/ryzom/tools/server/ryzom_ams/drupal_module/ryzommanage/ams_lib/translations
code/ryzom/tools/server/ryzom_ams/drupal_module/ryzommanage/ams_lib/libinclude.php
code/ryzom/tools/server/ryzom_ams/old
web/public_php/ams/is_installed
web/docs/ams/html
web/public_php/ams/templates_c
ryzom/tools/server/ryzom_ams/drupal
ryzom/tools/server/ryzom_ams/drupal_module/ryzommanage/ams_lib/autoload
ryzom/tools/server/ryzom_ams/drupal_module/ryzommanage/ams_lib/configs
ryzom/tools/server/ryzom_ams/drupal_module/ryzommanage/ams_lib/cron
ryzom/tools/server/ryzom_ams/drupal_module/ryzommanage/ams_lib/img
ryzom/tools/server/ryzom_ams/drupal_module/ryzommanage/ams_lib/plugins
ryzom/tools/server/ryzom_ams/drupal_module/ryzommanage/ams_lib/smarty
ryzom/tools/server/ryzom_ams/drupal_module/ryzommanage/ams_lib/translations
ryzom/tools/server/ryzom_ams/drupal_module/ryzommanage/ams_lib/libinclude.php
ryzom/tools/server/ryzom_ams/old
@ -248,21 +248,21 @@ personal/
#Dumps
*.dmp
code/nel/tools/build_gamedata/processes/ai_wmap/ai_build_wmap.cfg
code/nel/tools/build_gamedata/processes/sheets/sheets_packer.cfg
code/nel/tools/build_gamedata/processes/rbank/build_rbank.cfg
code/nel/tools/build_gamedata/processes/zone/debug_zone_dependencies.cfg
code/web/public_php/config.php
code/web/public_php/is_installed
code/web/public_php/ams/files
code/web/public_php/db_version_lib
code/web/public_php/db_version_shard
code/web/public_php/db_version_tool
code/web/public_php/db_version_web
code/web/public_php/role_service
code/web/public_php/role_support
code/web/public_php/role_domain
code/web/public_php/db_version_ring
code/web/public_php/config_user.php
code/nel/tools/build_gamedata/processes/pz/build_world_packed_col.cfg
code/nel/tools/build_gamedata/processes/cartographer/island_screenshots.cfg
nel/tools/build_gamedata/processes/ai_wmap/ai_build_wmap.cfg
nel/tools/build_gamedata/processes/sheets/sheets_packer.cfg
nel/tools/build_gamedata/processes/rbank/build_rbank.cfg
nel/tools/build_gamedata/processes/zone/debug_zone_dependencies.cfg
web/public_php/config.php
web/public_php/is_installed
web/public_php/ams/files
web/public_php/db_version_lib
web/public_php/db_version_shard
web/public_php/db_version_tool
web/public_php/db_version_web
web/public_php/role_service
web/public_php/role_support
web/public_php/role_domain
web/public_php/db_version_ring
web/public_php/config_user.php
nel/tools/build_gamedata/processes/pz/build_world_packed_col.cfg
nel/tools/build_gamedata/processes/cartographer/island_screenshots.cfg

@ -1,4 +1,3 @@
950d650ca92e6041611258d7e5131ccf661e4ec2 compatibility-merge
4eddbaff0c5e5d685db96ee3e8427aa0fd96ac83 ryzomcore/v0.8.0
00d9b6e29e95f56785fbf85abe60afd34674f402 ryzomcore/v0.9.0
79776c337176dd5b02e1a74fe5dfb703b91747aa ryzomcore/v0.9.1
@ -17,10 +16,13 @@ d4060f217f4f834cc62a33f2f1ccdf3c28298066 ryzom-patch-3.1.0-hotfix
4036ecf59e83960f03acebc2089eb2ff5eeaed0a ryzom-patch-3.2.0
18403bb9485da3d9742c6f007a16d5619ebfb196 ryzom-patch-3.2.1
822ff8f8917ad66e09e2c21c983282f6f693b9f6 ryzom-patch-3.3.0
00dde390a394fce9da06c2f3264140282158d39f 3.3.0
0000000000000000000000000000000000000000 3.3.0
00dde390a394fce9da06c2f3264140282158d39f ryzom-patch-3.3.0
dcd4c4d161ef775136e18c7e8f5072b75dede27e ryzom-patch-3.3.1
fc4be8ebec5ca754ef4453bc6a9faef90837c674 ryzom-patch-3.4.0
70eba02e8eab6920586dbabf74e9e8180c729980 ryzom-patch-3.4.0 Steam Fix
3941482843f9cd130cfc16634efc08d34a98ed35 ryzom-patch-3.4.0 Atysmas
ecae9feb4cceb78103e5d7236caccaf450796cdb ryzom-patch-3.5.0
95783afa226f241062134eb62f4323295d29ac84 ryzom-patch-3.5.0.9637
2102fb276eb69d49ed4923042215312a63c47c08 Live-746
8eb94c3549be898fdc4a7c6d791d2477bdc11a18 ryzomcore/v1.0.1
3e92c7104c20d6bc6c2147b4b5fc289e8621d322 ryzomcore/v1.0.0

@ -30,7 +30,7 @@ addons:
before_script:
- mkdir build
- cmake --version
- cmake -Hcode -Bbuild $CMAKE_CONFIGURE_OPTIONS
- cmake -H. -Bbuild $CMAKE_CONFIGURE_OPTIONS
- cat build/CMakeCache.txt
script:

@ -0,0 +1,532 @@
#-----------------------------------------------------------------------------
#
# Ryzom Core
# Authors: Nevrax and the Ryzom Core Community
# Version: 0.12.0
#
# Notes:
# * Changing install location: add -DCMAKE_INSTALL_PREFIX:PATH=/my/new/path
# * Changing specific install location variables:
# * NL_ETC_PREFIX (default: $CMAKE_INSTALL_PREFIX/etc)
# * NL_SHARE_PREFIX (default: $CMAKE_INSTALL_PREFIX/share)
# * NL_BIN_PREFIX (default: $CMAKE_INSTALL_PREFIX/bin)
# * NL_SBIN_PREFIX (default: $CMAKE_INSTALL_PREFIX/sbin)
# * NL_LIB_PREFIX (default: $CMAKE_INSTALL_PREFIX/lib)
# * NL_DRIVER_PREFIX (default: $CMAKE_INSTALL_PREFIX/lib (windows) or $CMAKE_INSTALL_PREFIX/lib/nel)
# * Enable building of documentation: add -DBUILD_DOCUMENTATION:BOOL=ON - new make target: DoxygenDoc
# * Updating version: update header (above) but also update NL_VERSION below.
# * To build binary archive, use the 'package' target.
# To build source archive, use the 'package_source' target.
#-----------------------------------------------------------------------------
# Load some macros.
SET(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules;${CMAKE_MODULE_PATH}")
#-----------------------------------------------------------------------------
# Set CMake 2.6 Policies.
IF(COMMAND cmake_policy)
# Works around warnings libraries linked against that don't
# have absolute paths (e.g. -lpthread)
cmake_policy(SET CMP0003 NEW)
# allow to link to qtmain automatically under Windows
IF(POLICY CMP0020)
CMAKE_POLICY(SET CMP0020 NEW)
ENDIF()
ENDIF()
#-----------------------------------------------------------------------------
# Downloads and install Hunger into HUNTER_ROOT directory.
OPTION(HUNTER_ENABLED "Enable Hunter package manager" OFF)
IF(HUNTER_ENABLED)
INCLUDE("CMakeModules/HunterGate.cmake")
HunterGate(
URL "https://github.com/cpp-pm/hunter/archive/v0.23.321.tar.gz"
SHA1 "5e53cbb0429037ea8e2592bfd92704b8ff3ab492"
FILEPATH "${CMAKE_CURRENT_LIST_DIR}/CMakeModules/HunterConfig.cmake"
)
# default options for hunterized build
SET(WITH_STATIC ON CACHE BOOL "static" FORCE)
SET(WITH_STATIC_DRIVERS ON CACHE BOOL "static drivers" FORCE)
SET(WITH_STATIC_CURL ON CACHE BOOL "static curl" FORCE)
SET(WITH_STATIC_LIBXML2 ON CACHE BOOL "static libxml2" FORCE)
SET(WITH_STATIC_EXTERNAL ON CACHE BOOL "static external" FORCE)
SET(WITH_EXTERNAL OFF CACHE BOOL "external libs" FORCE)
ENDIF()
#-----------------------------------------------------------------------------
INCLUDE(nel)
INCLUDE(ConfigureChecks)
INCLUDE(CheckDepends)
INCLUDE(${CMAKE_ROOT}/Modules/Documentation.cmake OPTIONAL)
MESSAGE("EXTERNAL ${WITH_EXTERNAL}")
# Force out of source builds.
CHECK_OUT_OF_SOURCE()
# To be able to specify a different deployment target on Mac OS X :
# export MACOSX_DEPLOYMENT_TARGET=10.6
IF(CMAKE_VERSION VERSION_GREATER "2.8.10")
STRING(TIMESTAMP CURRENT_YEAR "%Y")
ELSE()
SET(CURRENT_YEAR "2019")
ENDIF()
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
PROJECT(RyzomCore CXX C)
SET(NL_VERSION_MAJOR 1)
SET(NL_VERSION_MINOR 1)
SET(NL_VERSION_PATCH 0 CACHE STRING "Patch version")
SET(YEAR "2001-${CURRENT_YEAR}")
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
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
# DLL should be in the same directory as EXE under Windows
IF(WIN32)
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
ELSE()
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
ENDIF()
IF(WIN32)
IF(WITH_MFC)
FIND_PACKAGE(MFC QUIET)
ENDIF()
ENDIF()
#-----------------------------------------------------------------------------
# Set default config options
#
NL_SETUP_DEFAULT_OPTIONS()
NL_SETUP_NEL_DEFAULT_OPTIONS()
NL_SETUP_NELNS_DEFAULT_OPTIONS()
NL_SETUP_RYZOM_DEFAULT_OPTIONS()
NL_SETUP_SNOWBALLS_DEFAULT_OPTIONS()
NL_SETUP_BUILD()
NL_SETUP_BUILD_FLAGS()
NL_SETUP_PREFIX_PATHS()
RYZOM_SETUP_PREFIX_PATHS()
#-----------------------------------------------------------------------------
# Default values for URL's
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://open.ryzom.dev/ams/" CACHE STRING "Ryzom Client Edit Account 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/open/patch/" CACHE STRING "Ryzom Client Patch URL")
SET(RYZOM_CLIENT_APP_NAME "default")
SET(RYZOM_WEBIG_MAIN_URL "https://open.ryzom.dev/" CACHE STRING "Ryzom Client WebIG Main URL")
SET(RYZOM_WEBIG_TRUSTED_DOMAIN "open.ryzom.dev" CACHE STRING "Ryzom Client WebIG Trusted Domain")
#-----------------------------------------------------------------------------
# urls when compiling ryzom live client
IF(WITH_RYZOM_LIVE)
MESSAGE("Using RYZOM_LIVE urls")
SET(RYZOM_CLIENT_CREATE_ACCOUNT_URL "https://me.ryzom.com")
SET(RYZOM_CLIENT_EDIT_ACCOUNT_URL "https://me.ryzom.com")
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_APP_NAME "ryzom_live")
SET(RYZOM_WEBIG_MAIN_URL "https://app.ryzom.com/")
SET(RYZOM_WEBIG_TRUSTED_DOMAIN "app.ryzom.com")
ENDIF()
#-----------------------------------------------------------------------------
#Platform specifics
SETUP_EXTERNAL()
IF(WIN32)
SET(WINSOCK2_LIB ws2_32.lib)
IF(WITH_MFC)
FIND_PACKAGE(CustomMFC REQUIRED)
ENDIF()
ENDIF()
IF(HUNTER_ENABLED)
## TODO: hack for freetype hunter package
SET(ON 1)
##
HUNTER_ADD_PACKAGE(ZLIB)
FIND_PACKAGE(ZLIB CONFIG REQUIRED)
SET(ZLIB_LIBRARY ZLIB::zlib)
HUNTER_ADD_PACKAGE(libxml2)
FIND_PACKAGE(libxml2 CONFIG REQUIRED)
SET(LIBXML2_LIBRARIES ${LIBXML2_LIBRARIES} libxml2::libxml2)
HUNTER_ADD_PACKAGE(OpenSSL)
FIND_PACKAGE(OpenSSL REQUIRED)
# TODO: is OpenSSL::Crypto only needed for WIN32?
SET(OPENSSL_LIBRARIES OpenSSL::SSL OpenSSL::Crypto)
# for precompiled headers, not needed if using TARGET_PRECOMPILE_HEADERS() from cmake 3.16+
SET(ZLIB_INCLUDE_DIR ZLIB_ROOT/include)
SET(LIBXML2_INCLUDE_DIR ${LIBXML2_ROOT}/include/libxml2)
ELSE()
FIND_PACKAGE(ZLIB REQUIRED)
FIND_PACKAGE(LibXml2 REQUIRED)
FIND_PACKAGE(PNG REQUIRED)
FIND_PACKAGE(OpenSSL REQUIRED)
FIND_PACKAGE(GIF)
FIND_PACKAGE(Jpeg)
IF(WIN32)
SET(OPENSSL_LIBRARIES ${OPENSSL_LIBRARIES} Crypt32.lib)
ENDIF()
ENDIF() #hunter
IF(WITH_LIBOVR)
FIND_PACKAGE(LibOVR)
ENDIF()
IF(WITH_LIBVR)
FIND_PACKAGE(LibVR)
ENDIF()
NL_CONFIGURE_CHECKS()
IF(WITH_STATIC_LIBXML2)
SET(LIBXML2_DEFINITIONS ${LIBXML2_DEFINITIONS} -DLIBXML_STATIC)
ENDIF()
IF(WITH_LIBXML2_ICONV)
FIND_PACKAGE(Iconv REQUIRED)
INCLUDE_DIRECTORIES(${ICONV_INCLUDE_DIR})
SET(LIBXML2_LIBRARIES ${LIBXML2_LIBRARIES} ${ICONV_LIBRARIES})
ENDIF()
IF(WITH_STATIC)
# libxml2 could need winsock2 library
IF(WINSOCK2_LIB)
SET(LIBXML2_LIBRARIES ${LIBXML2_LIBRARIES} ${WINSOCK2_LIB})
ENDIF()
IF(UNIX)
# under Linux and OS X, recent libxml2 versions are linked against liblzma
FIND_PACKAGE(LibLZMA)
IF(LIBLZMA_LIBRARIES)
SET(LIBXML2_LIBRARIES ${LIBXML2_LIBRARIES} ${LIBLZMA_LIBRARIES})
ENDIF()
# under Linux and OS X, recent libxml2 versions are linked against libicu
# FIND_PACKAGE(Icu)
FIND_LIBRARY(ICU_LIBRARY icuuc)
IF(ICU_LIBRARY)
FIND_LIBRARY(ICU_DATA_LIBRARY icudata)
IF(ICU_LIBRARY)
MESSAGE(STATUS "ICU UC was found: ${ICU_LIBRARY}")
ELSE()
MESSAGE(STATUS "ICU UC was NOT found")
ENDIF()
SET(LIBXML2_LIBRARIES ${LIBXML2_LIBRARIES} ${ICU_DATA_LIBRARY} ${ICU_LIBRARY})
ENDIF()
ENDIF()
ENDIF()
INCLUDE(${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules/PCHSupport.cmake)
IF(FINAL_VERSION)
ADD_DEFINITIONS(-DFINAL_VERSION=1)
ENDIF()
IF(WITH_SSE2)
ADD_DEFINITIONS(-DNL_HAS_SSE2)
IF(WITH_SSE3)
ADD_DEFINITIONS(-DNL_HAS_SSE3)
ENDIF()
ENDIF()
IF(APPLE)
FIND_LIBRARY(CARBON_FRAMEWORK Carbon)
FIND_LIBRARY(FOUNDATION_FRAMEWORK Foundation)
FIND_LIBRARY(SECURITY_FRAMEWORK Security)
IF(APPLE_CERTIFICATE)
# Find codesign_allocate
# Xcode 7.0 and later versions
SET(CODESIGN_ALLOCATE ${OSX_DEVELOPER_ROOT}/Toolchains/XcodeDefault.xctoolchain/usr/bin/codesign_allocate)
IF(NOT EXISTS "${CODESIGN_ALLOCATE}")
# Xcode 6.4 and previous versions
SET(CODESIGN_ALLOCATE ${CMAKE_OSX_SYSROOT}/usr/bin/codesign_allocate)
ENDIF()
IF(NOT EXISTS "${CODESIGN_ALLOCATE}")
# System path
SET(CODESIGN_ALLOCATE /usr/bin/codesign_allocate)
ENDIF()
IF(NOT EXISTS "${CODESIGN_ALLOCATE}")
MESSAGE(WARNING "Unable to find codesign_allocate in standard directories")
SET(CODESIGN_ALLOCATE)
ENDIF()
ENDIF()
ENDIF()
INCLUDE(FindHelpers)
#TODO: hunter qt package
IF(WITH_QT5)
FIND_QT5()
ENDIF()
IF(WITH_QT)
SET(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} ${QTDIR} $ENV{QTDIR})
# Use Qt 4
FIND_PACKAGE(Qt4 COMPONENTS QtCore QtGui QtXml QtOpenGL REQUIRED)
ENDIF()
#TODO: hunter assimp package
IF(WITH_ASSIMP)
FIND_PACKAGE(assimp REQUIRED)
ENDIF()
IF(WITH_NEL)
IF(WITH_NEL_TESTS)
FIND_PACKAGE(CppTest)
ENDIF()
IF(HUNTER_ENABLED)
IF(WITH_GUI)
HUNTER_ADD_PACKAGE(luabind)
FIND_PACKAGE(Luabind REQUIRED)
ENDIF()
HUNTER_ADD_PACKAGE(CURL)
FIND_PACKAGE(CURL CONFIG REQUIRED)
# TODO: for nelgui
SET(CURL_LIBRARIES CURL::libcurl libxml2::libxml2)
ELSE()
IF(WITH_GUI)
FIND_PACKAGE(Luabind REQUIRED)
ENDIF()
FIND_PACKAGE(CURL REQUIRED)
IF((WIN32 OR CURL_LIBRARIES MATCHES "\\.a") AND WITH_STATIC_CURL)
SET(CURL_STATIC ON)
ELSE()
SET(CURL_STATIC OFF)
ENDIF()
IF(CURL_STATIC)
SET(CURL_DEFINITIONS -DCURL_STATICLIB)
LIST(APPEND CURL_INCLUDE_DIRS ${OPENSSL_INCLUDE_DIR})
LIST(APPEND CURL_LIBRARIES ${OPENSSL_LIBRARIES})
IF(WIN32)
LIST(APPEND CURL_LIBRARIES Crypt32 Cryptui)
ELSE()
# CURL depends on libidn
FIND_LIBRARY(IDN_LIBRARY idn)
IF(IDN_LIBRARY)
LIST(APPEND CURL_LIBRARIES ${IDN_LIBRARY})
ENDIF()
# CURL Macports version can depend on libidn, libidn2, libintl, libpsl and libiconv too
IF(APPLE)
FIND_LIBRARY(INTL_LIBRARY intl)
IF(INTL_LIBRARY)
LIST(APPEND CURL_LIBRARIES ${INTL_LIBRARY})
ENDIF()
FIND_LIBRARY(IDN2_LIBRARY idn2)
IF(IDN2_LIBRARY)
LIST(APPEND CURL_LIBRARIES ${IDN2_LIBRARY})
ENDIF()
FIND_LIBRARY(PSL_LIBRARY psl)
IF(PSL_LIBRARY)
LIST(APPEND CURL_LIBRARIES ${PSL_LIBRARY})
ENDIF()
FIND_LIBRARY(UNISTRING_LIBRARY unistring)
IF(UNISTRING_LIBRARY)
LIST(APPEND CURL_LIBRARIES ${UNISTRING_LIBRARY})
ENDIF()
LIST(APPEND CURL_LIBRARIES ${SECURITY_FRAMEWORK})
ENDIF()
ENDIF()
ENDIF()
ENDIF() #hunter
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/nel/include)
ADD_SUBDIRECTORY(nel)
# Aliases for targets
SET(NELMISC_LIBRARIES nelmisc)
SET(NELNET_LIBRARIES nelnet)
SET(NELLIGO_LIBRARIES nelligo)
SET(NELGEORGES_LIBRARIES nelgeorges)
SET(NEL3D_LIBRARIES nel3d)
SET(NELGUI_LIBRARIES nelgui)
SET(NELSOUND_LIBRARIES nelsound)
ELSE()
# FIND_PACKAGE(NeL COMPONENTS 3d misc pacs sound nimp REQUIRED)
FIND_PACKAGE(NeL REQUIRED)
INCLUDE_DIRECTORIES(${NEL_INCLUDE_DIRS})
ENDIF()
IF(WITH_RYZOM)
ADD_SUBDIRECTORY(ryzom)
ENDIF()
IF(WITH_NELNS)
ADD_SUBDIRECTORY(nelns)
ENDIF()
IF(WITH_SNOWBALLS)
ADD_SUBDIRECTORY(snowballs2)
ENDIF()
IF(WITH_TOOLS)
ADD_SUBDIRECTORY(tool)
ENDIF()
IF(WITH_STUDIO)
ADD_SUBDIRECTORY(studio)
ENDIF()
IF(WITH_PERSONAL)
ADD_SUBDIRECTORY(personal)
ENDIF()
# To build the documention, you will have to enable it
# and then do the equivalent of "make DoxygenDoc".
IF(BUILD_DOCUMENTATION)
IF(DOT)
SET(HAVE_DOT YES)
ELSE()
SET(HAVE_DOT NO)
ENDIF()
# This processes our Doxyfile.in and substitutes paths to generate
# a final Doxyfile
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/doc/Doxyfile.cmake.in ${CMAKE_BINARY_DIR}/doc/Doxyfile)
ADD_CUSTOM_TARGET(DoxygenDoc ${DOXYGEN} ${CMAKE_BINARY_DIR}/doc/Doxyfile)
ENDIF()
IF(WITH_NEL_TESTS)
ENABLE_TESTING()
ADD_TEST(nel_unit_test ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/nel_unit_test --html)
IF(BUILD_DASHBOARD)
INCLUDE(Dart)
SET(SVNCOMMAND svn)
SET(SVNSOURCEDIR http://dev.ryzom.com/svn/trunk/nel)
SET(GENERATELOGS svn2cl)
ENDIF()
ENDIF()
# packaging information
SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Ryzom Core MMORPG Framework")
SET(CPACK_PACKAGE_VENDOR "Ryzom Core")
SET(CPACK_PACKAGE_DESCRIPTION_FILE ${CMAKE_SOURCE_DIR}/README)
SET(CPACK_RESOURCE_FILE_LICENSE ${CMAKE_SOURCE_DIR}/COPYING)
SET(CPACK_PACKAGE_VERSION_MAJOR "${NL_VERSION_MAJOR}")
SET(CPACK_PACKAGE_VERSION_MINOR "${NL_VERSION_MINOR}")
SET(CPACK_PACKAGE_VERSION_PATCH "${NL_VERSION_PATCH}")
SET(CPACK_INSTALL_CMAKE_PROJECTS "${CMAKE_BINARY_DIR};NeL;ALL;/")
SET(CPACK_PACKAGE_EXECUTABLES "ryzomcore${NL_VERSION}" "ryzomcore")
SET(CPACK_SET_DESTDIR TRUE)
# NSIS Specific Packing Setup
SET(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "RyzomCore")
SET(CPACK_NSIS_MODIFY_PATH "ON")
SET(CPACK_NSIS_MUI_ICON ${CMAKE_SOURCE_DIR}/resources/nevraxpill.ico)
SET(CPACK_NSIS_MUI_UNIICON ${CMAKE_SOURCE_DIR}/resources/nevraxpill.ico)
SET(CPACK_PACKAGE_ICON ${CMAKE_SOURCE_DIR}/resources\\\\nel.bmp)
SET(CPACK_NSIS_DISPLAY_NAME "${CPACK_PACKAGE_INSTALL_DIRECTORY} RyzomCore")
SET(CPACK_NSIS_HELP_LINK "http:\\\\\\\\dev.ryzom.com")
SET(CPACK_NSIS_URL_INFO_ABOUT "http:\\\\\\\\dev.ryzom.com\\\\projects\\\\nel\\\\wiki")
SET(CPACK_NSIS_CONTACT "matt.raykowski@gmail.com")
## Source Packages
SET(CPACK_PACKAGE_FILE_NAME "ryzomcore-${NL_VERSION}")
SET(CPACK_SOURCE_PACKAGE_FILE_NAME "ryzomcore-${NL_VERSION}")
IF(WIN32)
#SET(CPACK_GENERATOR "NSIS")
SET(CPACK_GENERATOR "NSIS;ZIP")
SET(CPACK_SOURCE_GENERATOR "ZIP")
ELSE()
SET(CPACK_GENERATOR "TGZ")
SET(CPACK_SOURCE_GENERATOR "TGZ")
ENDIF()
set(CPACK_SOURCE_IGNORE_FILES
"~$"
"\\\\.cvsignore$"
"^${CMAKE_SOURCE_DIR}.*/CVS/"
"^${CMAKE_SOURCE_DIR}.*/\\\\.svn/"
"^${CMAKE_SOURCE_DIR}/debian/"
"^${CMAKE_SOURCE_DIR}/old/")
IF(WIN32)
IF(NOT CMAKE_BUILD_TYPE STREQUAL "Release")
SET(CMAKE_INSTALL_DEBUG_LIBRARIES TRUE)
IF(WITH_QT)
INCLUDE(${QT_USE_FILE})
INSTALL(FILES
"${QT_LIBRARY_DIR}/../bin/QtGuid4.dll"
"${QT_LIBRARY_DIR}/../bin/QtXmld4.dll"
"${QT_LIBRARY_DIR}/../bin/QtCored4.dll"
DESTINATION ${NL_BIN_PREFIX})
ENDIF()
ELSE()
IF(WITH_QT)
INCLUDE(${QT_USE_FILE})
INSTALL(FILES
"${QT_LIBRARY_DIR}/../bin/QtGui4.dll"
"${QT_LIBRARY_DIR}/../bin/QtXml4.dll"
"${QT_LIBRARY_DIR}/../bin/QtCore4.dll"
DESTINATION ${NL_BIN_PREFIX})
ENDIF()
ENDIF()
# Install CEGUI and its dependencies.
IF(WITH_NEL_CEGUI)
INSTALL(FILES "${CEGUI_LIB_DIR}/CEGUIBase.dll" DESTINATION ${NL_BIN_PREFIX})
INSTALL(FILES "${CEGUI_LIB_DIR}/CEGUIDevilImageCodec.dll" DESTINATION ${NL_BIN_PREFIX})
INSTALL(FILES "${CEGUI_LIB_DIR}/CEGUIExpatParser.dll" DESTINATION ${NL_BIN_PREFIX})
INSTALL(FILES "${CEGUI_LIB_DIR}/CEGUIFalagardWRBase.dll" DESTINATION ${NL_BIN_PREFIX})
INSTALL(FILES "${CEGUI_LIB_DIR}/Devil.dll" DESTINATION ${NL_BIN_PREFIX})
INSTALL(FILES "${CEGUI_LIB_DIR}/ILU.dll" DESTINATION ${NL_BIN_PREFIX})
ENDIF()
# Only the tools require MFC.
IF(WITH_TOOLS)
SET(CMAKE_INSTALL_MFC_LIBRARIES TRUE)
ENDIF()
#INCLUDE(InstallRequiredSystemLibraries)
ENDIF()
INCLUDE(CPack)
INCLUDE(CMakePackaging.txt)
## Debian Packages
#INCLUDE(UseDebian)
#IF(DEBIAN_FOUND)
# ADD_DEBIAN_TARGETS(nel)
#ENDIF()

@ -0,0 +1,9 @@
INCLUDE(FindHelpers)
IF(TARGET_X64)
SET(FMOD_BASE fmod64)
ELSE()
SET(FMOD_BASE fmodvc)
ENDIF()
FIND_PACKAGE_HELPER(FMOD fmod.h RELEASE ${FMOD_BASE} DEBUG ${FMOD_BASE}d SUFFIXES fmod3)

@ -3,6 +3,7 @@
# LUABIND_LIBRARIES, the libraries to link against
# LUABIND_FOUND, if false, do not try to link to LUABIND
# LUABIND_INCLUDE_DIR, where to find headers.
INCLUDE(FindHelpers)
MACRO(FIND_CORRECT_LUA_VERSION)
# Check Lua version linked to Luabind under Linux
@ -68,7 +69,13 @@ MACRO(FIND_CORRECT_LUA_VERSION)
ENDIF()
ELSE()
# TODO: find a way to detect Lua version
IF(WITH_LUA53)
IF(HUNTER_ENABLED)
HUNTER_ADD_PACKAGE(Lua)
FIND_PACKAGE(Lua CONFIG REQUIRED)
SET(LUA_LIBRARIES Lua::lua_lib)
ELSEIF(WITH_LUA54)
FIND_PACKAGE(Lua54 REQUIRED)
ELSEIF(WITH_LUA53)
FIND_PACKAGE(Lua53 REQUIRED)
ELSEIF(WITH_LUA52)
FIND_PACKAGE(Lua52 REQUIRED)
@ -85,21 +92,24 @@ IF(LUABIND_LIBRARIES AND LUABIND_INCLUDE_DIR)
SET(Luabind_FIND_QUIETLY TRUE)
ENDIF()
FIND_PATH(LUABIND_INCLUDE_DIR
luabind/luabind.hpp
PATHS
$ENV{LUABIND_DIR}/include
/usr/local/include
/usr/include
/sw/include
/opt/local/include
/opt/csw/include
/opt/include
)
SET(LIBRARY_NAME_RELEASE)
SET(LIBRARY_NAME_DEBUG)
IF(WITH_LUA54)
IF(WITH_STLPORT)
LIST(APPEND LIBRARY_NAME_RELEASE luabind_stlport_lua54)
LIST(APPEND LIBRARY_NAME_DEBUG luabind_stlport_lua54d)
ENDIF()
LIST(APPEND LIBRARY_NAME_RELEASE luabind_lua54)
LIST(APPEND LIBRARY_NAME_DEBUG luabind_lua54d)
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_STLPORT)
LIST(APPEND LIBRARY_NAME_RELEASE luabind_stlport_lua53)
@ -149,35 +159,7 @@ ENDIF()
LIST(APPEND LIBRARY_NAME_RELEASE luabind libluabind)
LIST(APPEND LIBRARY_NAME_DEBUG luabind_d luabindd libluabind_d libluabindd)
FIND_LIBRARY(LUABIND_LIBRARY_RELEASE
NAMES ${LIBRARY_NAME_RELEASE}
PATHS
$ENV{LUABIND_DIR}/lib
/usr/local/lib
/usr/lib
/usr/local/X11R6/lib
/usr/X11R6/lib
/sw/lib
/opt/local/lib
/opt/csw/lib
/opt/lib
/usr/freeware/lib64
)
FIND_LIBRARY(LUABIND_LIBRARY_DEBUG
NAMES ${LIBRARY_NAME_DEBUG}
PATHS
$ENV{LUABIND_DIR}/lib
/usr/local/lib
/usr/lib
/usr/local/X11R6/lib
/usr/X11R6/lib
/sw/lib
/opt/local/lib
/opt/csw/lib
/opt/lib
/usr/freeware/lib64
)
FIND_PACKAGE_HELPER(Luabind luabind/luabind.hpp RELEASE ${LIBRARY_NAME_RELEASE} DEBUG ${LIBRARY_NAME_DEBUG})
FIND_PACKAGE(Boost REQUIRED)

@ -0,0 +1,119 @@
# - Find MS Visual C++
#
# VC_DIR - where to find Visual C++
# VC_INCLUDE_DIR - where to find headers
# VC_INCLUDE_DIRS - where to find headers
# VC_LIBRARY_DIR - where to find libraries
# VC_FOUND - True if MSVC found
IF(CMAKE_CXX_COMPILER)
SET(_COMPILER ${CMAKE_CXX_COMPILER})
SET(_VERSION ${CMAKE_CXX_COMPILER_VERSION})
ELSEIF(CMAKE_C_COMPILER)
SET(_COMPILER ${CMAKE_C_COMPILER})
SET(_VERSION ${CMAKE_C_COMPILER_VERSION})
ELSE()
MESSAGE(FATAL_ERROR "No way to determine Visual C++ location")
ENDIF()
IF(MSVC_VERSION LESS 1910)
IF(MSVC_VERSION LESS 1500)
MESSAGE(FATAL_ERROR "Unsupported version of Visual C++ (minimum version is 2008)")
ELSEIF(MSVC_VERSION LESS 1600)
SET(MSVC_TOOLSET "90")
SET(_NAME "2008")
ELSEIF(MSVC_VERSION LESS 1700)
SET(MSVC_TOOLSET "100")
SET(_NAME "2010")
ELSEIF(MSVC_VERSION LESS 1800)
SET(MSVC_TOOLSET "110")
SET(_NAME "2012")
ELSEIF(MSVC_VERSION LESS 1900)
SET(MSVC_TOOLSET "120")
SET(_NAME "2013")
ELSE()
SET(MSVC_TOOLSET "140")
SET(_NAME "2015")
ENDIF()
STRING(REGEX REPLACE "/bin/.+" "" VC_DIR ${_COMPILER})
MESSAGE(STATUS "Found Visual C++ ${_NAME} (${_VERSION}) in ${VC_DIR}")
ELSE()
# Toolset = version of runtime DLLs
SET(MSVC_TOOLSET "140")
IF(MSVC_VERSION LESS 1920)
SET(_NAME "2017")
ELSE()
SET(_NAME "2019")
ENDIF()
STRING(REGEX REPLACE "/MSVC/.+" "/MSVC" VC_DIR ${_COMPILER})
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)
SET(VC_DIR "${VC_DIR}/${MSVC_TOOLCHAIN_VERSION}")
MESSAGE(STATUS "Found Visual C++ ${_NAME} (${_VERSION} with toolchain ${MSVC_TOOLCHAIN_VERSION}) in ${VC_DIR}")
ELSE()
MESSAGE(FATAL_ERROR "Unable to find Visual C++ in ${VC_DIR}")
ENDIF()
ENDIF()
IF(NOT VC_INCLUDE_DIR AND VC_DIR AND EXISTS "${VC_DIR}")
SET(VC_INCLUDE_DIR "${VC_DIR}/include")
IF(EXISTS "${VC_INCLUDE_DIR}")
SET(VC_FOUND ON)
ENDIF()
ENDIF()
SET(MSVC_REDIST_DIR "${EXTERNAL_PATH}/redist")
IF(NOT EXISTS "${MSVC_REDIST_DIR}")
SET(MSVC_REDIST_DIR "${VC_DIR}/redist")
IF(NOT EXISTS "${MSVC_REDIST_DIR}")
SET(MSVC_REDIST_DIR)
ENDIF()
ENDIF()
IF(MSVC_REDIST_DIR)
IF(MSVC_VERSION GREATER 1909)
# If you have VC++ 2017 Express, put x64/Microsoft.VC141.CRT/*.dll in ${EXTERNAL_PATH}/redist
# original files whould be in ${VC_DIR}/Redist/MSVC/14.11.25325/x64/Microsoft.VC141.CRT
SET(MSVC14_REDIST_DIR "${MSVC_REDIST_DIR}")
ELSEIF(MSVC14)
SET(MSVC14_REDIST_DIR "${MSVC_REDIST_DIR}")
ELSEIF(MSVC12)
# If you have VC++ 2013 Express, put x64/Microsoft.VC120.CRT/*.dll in ${EXTERNAL_PATH}/redist
SET(MSVC12_REDIST_DIR "${MSVC_REDIST_DIR}")
ELSEIF(MSVC11)
# If you have VC++ 2012 Express, put x64/Microsoft.VC110.CRT/*.dll in ${EXTERNAL_PATH}/redist
SET(MSVC11_REDIST_DIR "${MSVC_REDIST_DIR}")
ELSEIF(MSVC10)
# If you have VC++ 2010 Express, put x64/Microsoft.VC100.CRT/*.dll in ${EXTERNAL_PATH}/redist
SET(MSVC10_REDIST_DIR "${MSVC_REDIST_DIR}")
ELSEIF(MSVC90)
SET(MSVC90_REDIST_DIR "${MSVC_REDIST_DIR}")
ELSEIF(MSVC80)
SET(MSVC80_REDIST_DIR "${MSVC_REDIST_DIR}")
ENDIF()
ENDIF()
IF(VC_INCLUDE_DIR)
MESSAGE(STATUS "Using VC++ headers from ${VC_INCLUDE_DIR}")
ELSE()
MESSAGE(FATAL_ERROR "Unable to find VC++ headers")
ENDIF()
SET(VC_INCLUDE_DIRS ${VC_INCLUDE_DIR})
INCLUDE_DIRECTORIES(${VC_INCLUDE_DIR})

@ -13,7 +13,6 @@
# NELXXX_FOUND
# NELXXX_LIBRARIES
INCLUDE(FindHelpers)
# Init all variables we'll set
@ -209,6 +208,20 @@ IF(NELMISC_FOUND)
LIST(APPEND NELMISC_LIBRARIES ${LIBXML2_LIBRARIES})
ENDIF()
IF(CMAKE_DL_LIBS)
LIST(APPEND NELMISC_LIBRARIES ${CMAKE_DL_LIBS})
ENDIF()
FIND_PACKAGE(Threads)
IF(Threads_FOUND)
LIST(APPEND NELMISC_LIBRARIES ${CMAKE_THREAD_LIBS_INIT})
ENDIF()
IF(UNIX AND NOT APPLE)
LIST(APPEND NELMISC_LIBRARIES rt)
ENDIF()
LIST(REMOVE_ITEM NeL_FIND_COMPONENTS misc)
LIST(APPEND NEL_MODULES_FOUND misc)
@ -262,11 +275,17 @@ FOREACH(COMPONENT ${NeL_FIND_COMPONENTS})
FIND_PACKAGE_HELPER(${_NAME} nel/${COMPONENT}/${HEADER_FILE}
RELEASE nel${COMPONENT}_r nel${COMPONENT}
DEBUG nel${COMPONENT}_d
DIR ${NEL_DIR}
QUIET)
IF(${_UPNAME}_FOUND)
LIST(APPEND NEL_MODULES_FOUND ${COMPONENT})
# all NeL libraries depend on nelmisc in static
IF(NEL_STATIC)
LIST(APPEND ${_UPNAME}_LIBRARIES ${NELMISC_LIBRARIES})
ENDIF()
IF(COMPONENT STREQUAL "3d")
IF(NEL_STATIC)
# 3rd party dependencies
@ -301,7 +320,9 @@ FOREACH(COMPONENT ${NeL_FIND_COMPONENTS})
ELSEIF(COMPONENT STREQUAL "gui")
FIND_PACKAGE(Luabind REQUIRED)
IF(LUABIND_FOUND)
LIST(APPEND ${_UPNAME}_LIBRARIES ${LUABIND_LIBRARIES})
ENDIF()
FIND_LIBCURL()
@ -323,7 +344,6 @@ FOREACH(COMPONENT ${NeL_FIND_COMPONENTS})
LIST(APPEND CURL_INCLUDE_DIRS ${OPENSSL_INCLUDE_DIR})
LIST(APPEND CURL_LIBRARIES ${OPENSSL_LIBRARIES})
LIST(APPEND ${_UPNAME}_LIBRARIES ${LUABIND_LIBRARIES} ${CURL_LIBRARIES})
LIST(APPEND NEL_DEFINITIONS ${${_UPNAME}_DEFINITIONS})
ELSEIF(COMPONENT STREQUAL "sound")
FIND_PACKAGE(Ogg REQUIRED)

@ -0,0 +1,3 @@
INCLUDE(FindHelpers)
FIND_PACKAGE_HELPER(Ogg ogg/ogg.h)

@ -0,0 +1,5 @@
INCLUDE(FindHelpers)
FIND_PACKAGE_HELPER(STLport iostream
RELEASE stlport_cygwin stlport_gcc stlport_x stlport_x.5.2 stlport_statix stlport_static
DEBUG stlport_cygwin_debug stlport_cygwin_stldebug stlport_gcc_debug stlport_gcc_stldebug stlportstld_x stlportstld_x.5.2 stlportd_statix stlportd_static)

@ -0,0 +1,14 @@
INCLUDE(FindHelpers)
FIND_PACKAGE_HELPER(Squish squish.h)
IF(SQUISH_FOUND)
IF(NOT SQUISH_FIND_QUIETLY)
MESSAGE(STATUS "Found Squish: ${SQUISH_LIBRARIES}")
ENDIF()
FILE(STRINGS ${SQUISH_INCLUDE_DIR}/squish.h METRIC REGEX "metric = 0")
IF(METRIC)
SET(SQUISH_COMPRESS_HAS_METRIC ON)
SET(SQUISH_DEFINITIONS -DSQUISH_COMPRESS_HAS_METRIC)
ENDIF()
ENDIF()

@ -0,0 +1,8 @@
INCLUDE(FindHelpers)
FIND_PACKAGE_HELPER(Vorbis vorbisenc.h)
FIND_PACKAGE_HELPER(VorbisFile vorbisfile.h SUFFIXES vorbis)
IF(VORBISFILE_FOUND)
SET(VORBIS_LIBRARIES ${VORBIS_LIBRARIES} ${VORBISFILE_LIBRARIES})
ENDIF()

@ -20,6 +20,7 @@ MACRO(DETECT_WINSDK_VERSION_HELPER _ROOT _VERSION)
IF(WINSDK${_VERSION}_DIR AND NOT WINSDK${_VERSION}_DIR STREQUAL "/registry" AND EXISTS "${WINSDK${_VERSION}_DIR}/Include")
SET(WINSDK${_VERSION}_FOUND ON)
GET_FILENAME_COMPONENT(WINSDK${_VERSION}_VERSION_FULL "[${_ROOT}\\SOFTWARE\\Microsoft\\Microsoft SDKs\\Windows\\v${_VERSION};ProductVersion]" NAME)
IF(NOT WindowsSDK_FIND_QUIETLY)
MESSAGE(STATUS "Found Windows SDK ${_VERSION} in ${WINSDK${_VERSION}_DIR}")
ENDIF()
@ -28,14 +29,14 @@ MACRO(DETECT_WINSDK_VERSION_HELPER _ROOT _VERSION)
ENDIF()
ENDMACRO()
MACRO(DETECT_WINKIT_VERSION _VERSION _SUFFIX)
GET_FILENAME_COMPONENT(WINSDK${_VERSION}_DIR "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows Kits\\Installed Roots;KitsRoot${_SUFFIX}]" ABSOLUTE)
MACRO(DETECT_WINKIT_VERSION_HELPER _VERSION _SUFFIX _PREFIX _ARCH)
GET_FILENAME_COMPONENT(WINSDK${_VERSION}_DIR "[HKEY_LOCAL_MACHINE\\SOFTWARE\\${_PREFIX}Microsoft\\Windows Kits\\Installed Roots;KitsRoot${_SUFFIX}]" ABSOLUTE)
IF(WINSDK${_VERSION}_DIR AND NOT WINSDK${_VERSION}_DIR STREQUAL "/registry")
IF(WINSDK${_VERSION}_DIR AND NOT WINSDK${_VERSION}_DIR STREQUAL "/registry" AND EXISTS "${WINSDK${_VERSION}_DIR}/Include")
SET(WINSDK${_VERSION}_FOUND ON)
SET(WINSDK${_VERSION}_VERSION_FULL "${_VERSION}")
IF(NOT WindowsSDK_FIND_QUIETLY)
MESSAGE(STATUS "Found Windows Kit ${_VERSION} in ${WINSDK${_VERSION}_DIR}")
MESSAGE(STATUS "Found Windows Kit ${_VERSION} in ${WINSDK${_VERSION}_DIR} (registry ${_ARCH} bits)")
ENDIF()
LIST(APPEND WINSDK_DETECTED_VERSIONS ${_VERSION})
ELSE()
@ -52,6 +53,14 @@ MACRO(DETECT_WINSDK_VERSION _VERSION)
ENDIF()
ENDMACRO()
MACRO(DETECT_WINKIT_VERSION _VERSION _SUFFIX)
DETECT_WINKIT_VERSION_HELPER("${_VERSION}" "${_SUFFIX}" "WOW6432Node\\\\" "32")
IF(NOT WINSDK${_VERSION}_FOUND)
DETECT_WINKIT_VERSION_HELPER("${_VERSION}" "${_SUFFIX}" "" "64")
ENDIF()
ENDMACRO()
SET(WINSDK_DETECTED_VERSIONS)
# Fixed versions for Windows Kits (VC++ from 2012)
@ -378,7 +387,11 @@ FIND_PATH(WINSDK_INCLUDE_DIR Windows.h
NO_DEFAULT_PATH
)
MESSAGE(STATUS "Found Windows.h in ${WINSDK_INCLUDE_DIR}")
IF(WINSDK_INCLUDE_DIR)
MESSAGE(STATUS "Found Windows.h in ${WINSDK_INCLUDE_DIR}")
ELSE()
MESSAGE(FATAL_ERROR "Unable to find Windows.h")
ENDIF()
# directory where WinRT headers are found
FIND_PATH(WINSDK_WINRT_INCLUDE_DIR winstring.h
@ -488,6 +501,17 @@ IF(WINSDK_INCLUDE_DIR)
IF(WINSDK_VERSION STREQUAL "7.1" AND (MSVC11 OR MSVC12 OR MSVC14))
ADD_DEFINITIONS(-D_USING_V110_SDK71_)
ENDIF()
IF(NOT DXSDK_DIR)
MESSAGE("Using DirectX from Windows SDK (${WINSDK_LIBRARY_DIRS})")
SET(DXSDK_DIR ${WINSDK_DIR})
FIND_LIBRARY(DXSDK_GUID_LIBRARY dxguid ${WINSDK_LIBRARY_DIRS})
FIND_LIBRARY(DXSDK_DINPUT_LIBRARY dinput8 ${WINSDK_LIBRARY_DIRS})
FIND_LIBRARY(DXSDK_DSOUND_LIBRARY dsound ${WINSDK_LIBRARY_DIRS})
FIND_LIBRARY(DXSDK_XAUDIO_LIBRARY xaudio2 ${WINSDK_LIBRARY_DIRS})
# TODO: FIND_LIBRARY(DXSDK_D3DX9_LIBRARY d3dx9)
FIND_LIBRARY(DXSDK_D3D9_LIBRARY d3d9 ${WINSDK_LIBRARY_DIRS})
ENDIF()
ELSE()
IF(NOT WindowsSDK_FIND_QUIETLY)
MESSAGE(STATUS "Warning: Unable to find Windows SDK!")

@ -0,0 +1,8 @@
# This file is parsed by HunterGate command
hunter_config(luabind
VERSION 0.9.1
URL "https://github.com/nimetu/luabind/tarball/2fa4606"
SHA1 "3b4646bab9f0b2362d7b8d71d78e40deaf3cc747"
)

@ -0,0 +1,537 @@
# Copyright (c) 2013-2019, Ruslan Baratov
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice, this
# list of conditions and the following disclaimer.
#
# * Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# This is a gate file to Hunter package manager.
# Include this file using `include` command and add package you need, example:
#
# cmake_minimum_required(VERSION 3.2)
#
# include("cmake/HunterGate.cmake")
# HunterGate(
# URL "https://github.com/path/to/hunter/archive.tar.gz"
# SHA1 "798501e983f14b28b10cda16afa4de69eee1da1d"
# )
#
# project(MyProject)
#
# hunter_add_package(Foo)
# hunter_add_package(Boo COMPONENTS Bar Baz)
#
# Projects:
# * https://github.com/hunter-packages/gate/
# * https://github.com/ruslo/hunter
option(HUNTER_ENABLED "Enable Hunter package manager support" ON)
if(HUNTER_ENABLED)
if(CMAKE_VERSION VERSION_LESS "3.2")
message(
FATAL_ERROR
"At least CMake version 3.2 required for Hunter dependency management."
" Update CMake or set HUNTER_ENABLED to OFF."
)
endif()
endif()
include(CMakeParseArguments) # cmake_parse_arguments
option(HUNTER_STATUS_PRINT "Print working status" ON)
option(HUNTER_STATUS_DEBUG "Print a lot info" OFF)
option(HUNTER_TLS_VERIFY "Enable/disable TLS certificate checking on downloads" ON)
set(HUNTER_ROOT "" CACHE FILEPATH "Override the HUNTER_ROOT.")
set(HUNTER_ERROR_PAGE "https://hunter.readthedocs.io/en/latest/reference/errors")
function(hunter_gate_status_print)
if(HUNTER_STATUS_PRINT OR HUNTER_STATUS_DEBUG)
foreach(print_message ${ARGV})
message(STATUS "[hunter] ${print_message}")
endforeach()
endif()
endfunction()
function(hunter_gate_status_debug)
if(HUNTER_STATUS_DEBUG)
foreach(print_message ${ARGV})
string(TIMESTAMP timestamp)
message(STATUS "[hunter *** DEBUG *** ${timestamp}] ${print_message}")
endforeach()
endif()
endfunction()
function(hunter_gate_error_page error_page)
message("------------------------------ ERROR ------------------------------")
message(" ${HUNTER_ERROR_PAGE}/${error_page}.html")
message("-------------------------------------------------------------------")
message("")
message(FATAL_ERROR "")
endfunction()
function(hunter_gate_internal_error)
message("")
foreach(print_message ${ARGV})
message("[hunter ** INTERNAL **] ${print_message}")
endforeach()
message("[hunter ** INTERNAL **] [Directory:${CMAKE_CURRENT_LIST_DIR}]")
message("")
hunter_gate_error_page("error.internal")
endfunction()
function(hunter_gate_fatal_error)
cmake_parse_arguments(hunter "" "ERROR_PAGE" "" "${ARGV}")
if("${hunter_ERROR_PAGE}" STREQUAL "")
hunter_gate_internal_error("Expected ERROR_PAGE")
endif()
message("")
foreach(x ${hunter_UNPARSED_ARGUMENTS})
message("[hunter ** FATAL ERROR **] ${x}")
endforeach()
message("[hunter ** FATAL ERROR **] [Directory:${CMAKE_CURRENT_LIST_DIR}]")
message("")
hunter_gate_error_page("${hunter_ERROR_PAGE}")
endfunction()
function(hunter_gate_user_error)
hunter_gate_fatal_error(${ARGV} ERROR_PAGE "error.incorrect.input.data")
endfunction()
function(hunter_gate_self root version sha1 result)
string(COMPARE EQUAL "${root}" "" is_bad)
if(is_bad)
hunter_gate_internal_error("root is empty")
endif()
string(COMPARE EQUAL "${version}" "" is_bad)
if(is_bad)
hunter_gate_internal_error("version is empty")
endif()
string(COMPARE EQUAL "${sha1}" "" is_bad)
if(is_bad)
hunter_gate_internal_error("sha1 is empty")
endif()
string(SUBSTRING "${sha1}" 0 7 archive_id)
if(EXISTS "${root}/cmake/Hunter")
set(hunter_self "${root}")
else()
set(
hunter_self
"${root}/_Base/Download/Hunter/${version}/${archive_id}/Unpacked"
)
endif()
set("${result}" "${hunter_self}" PARENT_SCOPE)
endfunction()
# Set HUNTER_GATE_ROOT cmake variable to suitable value.
function(hunter_gate_detect_root)
# Check CMake variable
if(HUNTER_ROOT)
set(HUNTER_GATE_ROOT "${HUNTER_ROOT}" PARENT_SCOPE)
hunter_gate_status_debug("HUNTER_ROOT detected by cmake variable")
return()
endif()
# Check environment variable
if(DEFINED ENV{HUNTER_ROOT})
set(HUNTER_GATE_ROOT "$ENV{HUNTER_ROOT}" PARENT_SCOPE)
hunter_gate_status_debug("HUNTER_ROOT detected by environment variable")
return()
endif()
# Check HOME environment variable
if(DEFINED ENV{HOME})
set(HUNTER_GATE_ROOT "$ENV{HOME}/.hunter" PARENT_SCOPE)
hunter_gate_status_debug("HUNTER_ROOT set using HOME environment variable")
return()
endif()
# Check SYSTEMDRIVE and USERPROFILE environment variable (windows only)
if(WIN32)
if(DEFINED ENV{SYSTEMDRIVE})
set(HUNTER_GATE_ROOT "$ENV{SYSTEMDRIVE}/.hunter" PARENT_SCOPE)
hunter_gate_status_debug(
"HUNTER_ROOT set using SYSTEMDRIVE environment variable"
)
return()
endif()
if(DEFINED ENV{USERPROFILE})
set(HUNTER_GATE_ROOT "$ENV{USERPROFILE}/.hunter" PARENT_SCOPE)
hunter_gate_status_debug(
"HUNTER_ROOT set using USERPROFILE environment variable"
)
return()
endif()
endif()
hunter_gate_fatal_error(
"Can't detect HUNTER_ROOT"
ERROR_PAGE "error.detect.hunter.root"
)
endfunction()
function(hunter_gate_download dir)
string(
COMPARE
NOTEQUAL
"$ENV{HUNTER_DISABLE_AUTOINSTALL}"
""
disable_autoinstall
)
if(disable_autoinstall AND NOT HUNTER_RUN_INSTALL)
hunter_gate_fatal_error(
"Hunter not found in '${dir}'"
"Set HUNTER_RUN_INSTALL=ON to auto-install it from '${HUNTER_GATE_URL}'"
"Settings:"
" HUNTER_ROOT: ${HUNTER_GATE_ROOT}"
" HUNTER_SHA1: ${HUNTER_GATE_SHA1}"
ERROR_PAGE "error.run.install"
)
endif()
string(COMPARE EQUAL "${dir}" "" is_bad)
if(is_bad)
hunter_gate_internal_error("Empty 'dir' argument")
endif()
string(COMPARE EQUAL "${HUNTER_GATE_SHA1}" "" is_bad)
if(is_bad)
hunter_gate_internal_error("HUNTER_GATE_SHA1 empty")
endif()
string(COMPARE EQUAL "${HUNTER_GATE_URL}" "" is_bad)
if(is_bad)
hunter_gate_internal_error("HUNTER_GATE_URL empty")
endif()
set(done_location "${dir}/DONE")
set(sha1_location "${dir}/SHA1")
set(build_dir "${dir}/Build")
set(cmakelists "${dir}/CMakeLists.txt")
hunter_gate_status_debug("Locking directory: ${dir}")
file(LOCK "${dir}" DIRECTORY GUARD FUNCTION)
hunter_gate_status_debug("Lock done")
if(EXISTS "${done_location}")
# while waiting for lock other instance can do all the job
hunter_gate_status_debug("File '${done_location}' found, skip install")
return()
endif()
file(REMOVE_RECURSE "${build_dir}")
file(REMOVE_RECURSE "${cmakelists}")
file(MAKE_DIRECTORY "${build_dir}") # check directory permissions
# Disabling languages speeds up a little bit, reduces noise in the output
# and avoids path too long windows error
file(
WRITE
"${cmakelists}"
"cmake_minimum_required(VERSION 3.2)\n"
"project(HunterDownload LANGUAGES NONE)\n"
"include(ExternalProject)\n"
"ExternalProject_Add(\n"
" Hunter\n"
" URL\n"
" \"${HUNTER_GATE_URL}\"\n"
" URL_HASH\n"
" SHA1=${HUNTER_GATE_SHA1}\n"
" DOWNLOAD_DIR\n"
" \"${dir}\"\n"
" TLS_VERIFY\n"
" ${HUNTER_TLS_VERIFY}\n"
" SOURCE_DIR\n"
" \"${dir}/Unpacked\"\n"
" CONFIGURE_COMMAND\n"
" \"\"\n"
" BUILD_COMMAND\n"
" \"\"\n"
" INSTALL_COMMAND\n"
" \"\"\n"
")\n"
)
if(HUNTER_STATUS_DEBUG)
set(logging_params "")
else()
set(logging_params OUTPUT_QUIET)
endif()
hunter_gate_status_debug("Run generate")
# Need to add toolchain file too.
# Otherwise on Visual Studio + MDD this will fail with error:
# "Could not find an appropriate version of the Windows 10 SDK installed on this machine"
if(EXISTS "${CMAKE_TOOLCHAIN_FILE}")
get_filename_component(absolute_CMAKE_TOOLCHAIN_FILE "${CMAKE_TOOLCHAIN_FILE}" ABSOLUTE)
set(toolchain_arg "-DCMAKE_TOOLCHAIN_FILE=${absolute_CMAKE_TOOLCHAIN_FILE}")
else()
# 'toolchain_arg' can't be empty
set(toolchain_arg "-DCMAKE_TOOLCHAIN_FILE=")
endif()
string(COMPARE EQUAL "${CMAKE_MAKE_PROGRAM}" "" no_make)
if(no_make)
set(make_arg "")
else()
# Test case: remove Ninja from PATH but set it via CMAKE_MAKE_PROGRAM
set(make_arg "-DCMAKE_MAKE_PROGRAM=${CMAKE_MAKE_PROGRAM}")
endif()
execute_process(
COMMAND
"${CMAKE_COMMAND}"
"-H${dir}"
"-B${build_dir}"
"-G${CMAKE_GENERATOR}"
"${toolchain_arg}"
${make_arg}
WORKING_DIRECTORY "${dir}"
RESULT_VARIABLE download_result
${logging_params}
)
if(NOT download_result EQUAL 0)
hunter_gate_internal_error(
"Configure project failed."
"To reproduce the error run: ${CMAKE_COMMAND} -H${dir} -B${build_dir} -G${CMAKE_GENERATOR} ${toolchain_arg} ${make_arg}"
"In directory ${dir}"
)
endif()
hunter_gate_status_print(
"Initializing Hunter workspace (${HUNTER_GATE_SHA1})"
" ${HUNTER_GATE_URL}"
" -> ${dir}"
)
execute_process(
COMMAND "${CMAKE_COMMAND}" --build "${build_dir}"
WORKING_DIRECTORY "${dir}"
RESULT_VARIABLE download_result
${logging_params}
)
if(NOT download_result EQUAL 0)
hunter_gate_internal_error("Build project failed")
endif()
file(REMOVE_RECURSE "${build_dir}")
file(REMOVE_RECURSE "${cmakelists}")
file(WRITE "${sha1_location}" "${HUNTER_GATE_SHA1}")
file(WRITE "${done_location}" "DONE")
hunter_gate_status_debug("Finished")
endfunction()
# Must be a macro so master file 'cmake/Hunter' can
# apply all variables easily just by 'include' command
# (otherwise PARENT_SCOPE magic needed)
macro(HunterGate)
if(HUNTER_GATE_DONE)
# variable HUNTER_GATE_DONE set explicitly for external project
# (see `hunter_download`)
set_property(GLOBAL PROPERTY HUNTER_GATE_DONE YES)
endif()
# First HunterGate command will init Hunter, others will be ignored
get_property(_hunter_gate_done GLOBAL PROPERTY HUNTER_GATE_DONE SET)
if(NOT HUNTER_ENABLED)
# Empty function to avoid error "unknown function"
function(hunter_add_package)
endfunction()
set(
_hunter_gate_disabled_mode_dir
"${CMAKE_CURRENT_LIST_DIR}/cmake/Hunter/disabled-mode"
)
if(EXISTS "${_hunter_gate_disabled_mode_dir}")
hunter_gate_status_debug(
"Adding \"disabled-mode\" modules: ${_hunter_gate_disabled_mode_dir}"
)
list(APPEND CMAKE_PREFIX_PATH "${_hunter_gate_disabled_mode_dir}")
endif()
elseif(_hunter_gate_done)
hunter_gate_status_debug("Secondary HunterGate (use old settings)")
hunter_gate_self(
"${HUNTER_CACHED_ROOT}"
"${HUNTER_VERSION}"
"${HUNTER_SHA1}"
_hunter_self
)
include("${_hunter_self}/cmake/Hunter")
else()
set(HUNTER_GATE_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}")
string(COMPARE NOTEQUAL "${PROJECT_NAME}" "" _have_project_name)
if(_have_project_name)
hunter_gate_fatal_error(
"Please set HunterGate *before* 'project' command. "
"Detected project: ${PROJECT_NAME}"
ERROR_PAGE "error.huntergate.before.project"
)
endif()
cmake_parse_arguments(
HUNTER_GATE "LOCAL" "URL;SHA1;GLOBAL;FILEPATH" "" ${ARGV}
)
string(COMPARE EQUAL "${HUNTER_GATE_SHA1}" "" _empty_sha1)
string(COMPARE EQUAL "${HUNTER_GATE_URL}" "" _empty_url)
string(
COMPARE
NOTEQUAL
"${HUNTER_GATE_UNPARSED_ARGUMENTS}"
""
_have_unparsed
)
string(COMPARE NOTEQUAL "${HUNTER_GATE_GLOBAL}" "" _have_global)
string(COMPARE NOTEQUAL "${HUNTER_GATE_FILEPATH}" "" _have_filepath)
if(_have_unparsed)
hunter_gate_user_error(
"HunterGate unparsed arguments: ${HUNTER_GATE_UNPARSED_ARGUMENTS}"
)
endif()
if(_empty_sha1)
hunter_gate_user_error("SHA1 suboption of HunterGate is mandatory")
endif()
if(_empty_url)
hunter_gate_user_error("URL suboption of HunterGate is mandatory")
endif()
if(_have_global)
if(HUNTER_GATE_LOCAL)
hunter_gate_user_error("Unexpected LOCAL (already has GLOBAL)")
endif()
if(_have_filepath)
hunter_gate_user_error("Unexpected FILEPATH (already has GLOBAL)")
endif()
endif()
if(HUNTER_GATE_LOCAL)
if(_have_global)
hunter_gate_user_error("Unexpected GLOBAL (already has LOCAL)")
endif()
if(_have_filepath)
hunter_gate_user_error("Unexpected FILEPATH (already has LOCAL)")
endif()
endif()
if(_have_filepath)
if(_have_global)
hunter_gate_user_error("Unexpected GLOBAL (already has FILEPATH)")
endif()
if(HUNTER_GATE_LOCAL)
hunter_gate_user_error("Unexpected LOCAL (already has FILEPATH)")
endif()
endif()
hunter_gate_detect_root() # set HUNTER_GATE_ROOT
# Beautify path, fix probable problems with windows path slashes
get_filename_component(
HUNTER_GATE_ROOT "${HUNTER_GATE_ROOT}" ABSOLUTE
)
hunter_gate_status_debug("HUNTER_ROOT: ${HUNTER_GATE_ROOT}")
if(NOT HUNTER_ALLOW_SPACES_IN_PATH)
string(FIND "${HUNTER_GATE_ROOT}" " " _contain_spaces)
if(NOT _contain_spaces EQUAL -1)
hunter_gate_fatal_error(
"HUNTER_ROOT (${HUNTER_GATE_ROOT}) contains spaces."
"Set HUNTER_ALLOW_SPACES_IN_PATH=ON to skip this error"
"(Use at your own risk!)"
ERROR_PAGE "error.spaces.in.hunter.root"
)
endif()
endif()
string(
REGEX
MATCH
"[0-9]+\\.[0-9]+\\.[0-9]+[-_a-z0-9]*"
HUNTER_GATE_VERSION
"${HUNTER_GATE_URL}"
)
string(COMPARE EQUAL "${HUNTER_GATE_VERSION}" "" _is_empty)
if(_is_empty)
set(HUNTER_GATE_VERSION "unknown")
endif()
hunter_gate_self(
"${HUNTER_GATE_ROOT}"
"${HUNTER_GATE_VERSION}"
"${HUNTER_GATE_SHA1}"
_hunter_self
)
set(_master_location "${_hunter_self}/cmake/Hunter")
if(EXISTS "${HUNTER_GATE_ROOT}/cmake/Hunter")
# Hunter downloaded manually (e.g. by 'git clone')
set(_unused "xxxxxxxxxx")
set(HUNTER_GATE_SHA1 "${_unused}")
set(HUNTER_GATE_VERSION "${_unused}")
else()
get_filename_component(_archive_id_location "${_hunter_self}/.." ABSOLUTE)
set(_done_location "${_archive_id_location}/DONE")
set(_sha1_location "${_archive_id_location}/SHA1")
# Check Hunter already downloaded by HunterGate
if(NOT EXISTS "${_done_location}")
hunter_gate_download("${_archive_id_location}")
endif()
if(NOT EXISTS "${_done_location}")
hunter_gate_internal_error("hunter_gate_download failed")
endif()
if(NOT EXISTS "${_sha1_location}")
hunter_gate_internal_error("${_sha1_location} not found")
endif()
file(READ "${_sha1_location}" _sha1_value)
string(TOLOWER "${_sha1_value}" _sha1_value_lower)
string(TOLOWER "${HUNTER_GATE_SHA1}" _HUNTER_GATE_SHA1_lower)
string(COMPARE EQUAL "${_sha1_value_lower}" "${_HUNTER_GATE_SHA1_lower}" _is_equal)
if(NOT _is_equal)
hunter_gate_internal_error(
"Short SHA1 collision:"
" ${_sha1_value} (from ${_sha1_location})"
" ${HUNTER_GATE_SHA1} (HunterGate)"
)
endif()
if(NOT EXISTS "${_master_location}")
hunter_gate_user_error(
"Master file not found:"
" ${_master_location}"
"try to update Hunter/HunterGate"
)
endif()
endif()
include("${_master_location}")
set_property(GLOBAL PROPERTY HUNTER_GATE_DONE YES)
endif()
endmacro()

@ -1,11 +1,11 @@
# Define OSX_SDK to force a specific version such as : -DOSX_SDK=10.11
#
# Example:
# cmake ../code -DCMAKE_TOOLCHAIN_FILE=../code/CMakeModules/OSXToolChain.cmake -DWITH_NEL_TESTS=OFF -DWITH_RYZOM_SERVER=OFF -DWITH_NEL_TOOLS=OFF -DWITH_RYZOM_TOOLS=OFF -DWITH_LUA51=OFF -DWITH_LUA53=ON -DCMAKE_BUILD_TYPE=Release -DWITH_RYZOM_INSTALLER=OFF -DWITH_RYZOM_PATCH=ON -DWITH_NEL_TESTS=OFF -DWITH_NEL_TOOLS=OFF -DWITH_TOOLS=OFF -DWITH_NEL_SAMPLES=OFF -DWITH_WARNINGS=OFF -DWITH_QT5=OFF -DWITH_STATIC=ON -DWITH_STATIC_DRIVERS=ON -DWITH_STATIC_EXTERNAL=ON -DWITH_UNIX_STRUCTURE=OFF -DWITH_INSTALL_LIBRARIES=OFF -DWITH_RYZOM_SANDBOX=OFF -DOSX_SDK=10.11
# cmake .. -DCMAKE_TOOLCHAIN_FILE=$CMAKE_MODULE_PATH/OSXToolChain.cmake -DOSX_SDK=10.14 <other flags>
# Don't forget to define environment variables:
#
# export MACOSX_DEPLOYMENT_TARGET=10.7
# export MACOSX_DEPLOYMENT_TARGET=10.8
# export OSXCROSS_GCC_NO_STATIC_RUNTIME=1
# export PATH=$PATH:/home/src/osxcross/target/bin
#
@ -15,18 +15,22 @@
# ./osxcross-macports install libxml2 jpeg curl libogg libvorbis freetype boost openssl zlib lua-5.3 giflib
# to compile Luabind
# export CMAKE_MODULE_PATH=$HOME/shard/tools/external/cmake/modules
# cmake .. -DCMAKE_TOOLCHAIN_FILE=$HOME/ryzomcore/code/CMakeModules/OSXToolChain.cmake -DWITH_SHARED=OFF -DWITH_STATIC=ON -DWITH_LUA51=OFF -DWITH_LUA53=ON -DCMAKE_INSTALL_PREFIX=$HOME/osxcross/target/external
# cmake .. -DCMAKE_TOOLCHAIN_FILE=$CMAKE_MODULE_PATH/OSXToolChain.cmake -DWITH_SHARED=OFF -DWITH_STATIC=ON -DWITH_LUA51=OFF -DWITH_LUA53=ON -DCMAKE_INSTALL_PREFIX=$HOME/osxcross/target/external
IF(DEFINED CMAKE_CROSSCOMPILING)
# subsequent toolchain loading is not really needed
RETURN()
ENDIF()
# OSXCROSS_TARGET
# OSXCROSS_SDK
# Force the compilers to Clang for OS X
SET(OSXCROSS_HOST "x86_64-apple-darwin18")
# C
SET(CMAKE_C_COMPILER x86_64-apple-darwin15-clang)
SET(CMAKE_C_COMPILER ${OSXCROSS_HOST}-clang)
SET(CMAKE_C_STANDARD_COMPUTED_DEFAULT "11")
SET(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert")
SET(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes")
@ -34,7 +38,7 @@ SET(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros")
SET(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert")
# C++
SET(CMAKE_CXX_COMPILER x86_64-apple-darwin15-clang++)
SET(CMAKE_CXX_COMPILER ${OSXCROSS_HOST}-clang++)
SET(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17")
SET(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters")
SET(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates")
@ -102,8 +106,8 @@ SET(CMAKE_OSX_SYSROOT ${CMAKE_OSX_SYSROOT}/MacOSX${OSX_SDK}.sdk)
# Standard settings
SET(CMAKE_SYSTEM_NAME Darwin)
SET(CMAKE_SYSTEM "Darwin-15.0.0")
SET(CMAKE_SYSTEM_VERSION "15.0.0")
SET(CMAKE_SYSTEM "Darwin-18.0.0")
SET(CMAKE_SYSTEM_VERSION "18.0.0")
SET(CMAKE_SYSTEM_PROCESSOR "x86_64")
SET(UNIX ON)
@ -123,9 +127,17 @@ SET(CMAKE_SYSTEM_FRAMEWORK_PATH
)
# only search the OS X sdks, not the remainder of the host filesystem
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
# determinate location for bin utils based on CMAKE_FIND_ROOT_PATH
INCLUDE(CMakeFindBinUtils)
set(CMAKE_AR "${OSXCROSS_HOST}-ar" CACHE FILEPATH "ar")
set(CMAKE_RANLIB "${OSXCROSS_HOST}-ranlib" CACHE FILEPATH "ranlib")
set(CMAKE_INSTALL_NAME_TOOL "${OSXCROSS_HOST}-install_name_tool" CACHE FILEPATH "install_name_tool")
set(ENV{PKG_CONFIG_LIBDIR} "${MACPORTS_ROOT_DIR}/lib/pkgconfig")
set(ENV{PKG_CONFIG_SYSROOT_DIR} "${CMAKE_OSX_TOOLCHAIN_ROOT}/macports/pkgs")

@ -137,23 +137,23 @@ SET(CMAKE_IOS_SIMULATOR_SYSROOT ${CMAKE_IOS_SIMULATOR_SDK_ROOT} CACHE PATH "Sysr
IF(CMAKE_GENERATOR MATCHES Xcode)
IF(${IOS_PLATFORM} STREQUAL "OS")
SET(CMAKE_SYSTEM_PROCESSOR "armv7")
SET(CMAKE_SYSTEM_PROCESSOR "arm64")
ELSEIF(${IOS_PLATFORM} STREQUAL "SIMULATOR")
SET(CMAKE_SYSTEM_PROCESSOR "x86")
SET(CMAKE_SYSTEM_PROCESSOR "x86_64")
ELSEIF(${IOS_PLATFORM} STREQUAL "ALL")
SET(CMAKE_SYSTEM_PROCESSOR "armv7")
SET(CMAKE_SYSTEM_PROCESSOR "arm64")
ENDIF()
ELSE()
IF(${IOS_PLATFORM} STREQUAL "OS")
SET(ARCHS armv7 arm64)
SET(CMAKE_SYSTEM_PROCESSOR "armv7")
SET(CMAKE_SYSTEM_PROCESSOR "arm64")
ELSEIF(${IOS_PLATFORM} STREQUAL "SIMULATOR")
# iPhone simulator targets i386
SET(ARCHS "i386")
# iPhone simulator targets x86_64
SET(ARCHS "x86_64")
SET(CMAKE_SYSTEM_PROCESSOR "x86")
ELSEIF(${IOS_PLATFORM} STREQUAL "ALL")
SET(ARCHS armv7 arm64 i386 x86_64)
SET(CMAKE_SYSTEM_PROCESSOR "armv7")
SET(ARCHS armv7 arm64 x86_64)
SET(CMAKE_SYSTEM_PROCESSOR "arm64")
ENDIF()
ENDIF()

@ -121,6 +121,22 @@ MACRO(NL_ADD_RUNTIME_FLAGS name)
ENDMACRO(NL_ADD_RUNTIME_FLAGS)
MACRO(NL_ADD_STATIC_VID_DRIVERS name)
IF(HUNTER_ENABLED)
IF(WIN32)
SET(drv_suffix "_win")
ELSE()
SET(drv_suffix "")
ENDIF()
IF(WIN32 AND WITH_DRIVER_DIRECT3D)
TARGET_LINK_LIBRARIES(${name} nel_drv_direct3d${drv_suffix})
ENDIF()
IF(WITH_DRIVER_OPENGL)
TARGET_LINK_LIBRARIES(${name} nel_drv_opengl${drv_suffix})
ENDIF()
IF(WITH_DRIVER_OPENGLES)
TARGET_LINK_LIBRARIES(${name} nel_drv_opengles${drv_suffix})
ENDIF()
ELSE()
IF(WITH_STATIC_DRIVERS)
IF(WIN32)
IF(WITH_DRIVER_DIRECT3D)
@ -144,9 +160,29 @@ MACRO(NL_ADD_STATIC_VID_DRIVERS name)
ENDIF()
ENDIF()
ENDIF()
ENDIF()#hunter
ENDMACRO(NL_ADD_STATIC_VID_DRIVERS)
MACRO(NL_ADD_STATIC_SND_DRIVERS name)
IF(HUNTER_ENABLED)
IF(WIN32)
SET(drv_suffix "_win")
ELSE()
SET(drv_suffix "")
ENDIF()
IF(WIN32 AND WITH_DRIVER_DSOUND)
TARGET_LINK_LIBRARIES(${name} nel_drv_dsound${drv_suffix})
ENDIF()
IF(WIN32 AND WITH_DRIVER_XAUDIO2)
TARGET_LINK_LIBRARIES(${name} nel_drv_xaudio2${drv_suffix})
ENDIF()
IF(WITH_DRIVER_FMOD)
TARGET_LINK_LIBRARIES(${name} nel_drv_fmod${drv_suffix})
ENDIF()
IF(WITH_DRIVER_OPENAL)
TARGET_LINK_LIBRARIES(${name} nel_drv_openal${drv_suffix})
ENDIF()
ELSE()
IF(WITH_STATIC_DRIVERS)
IF(WIN32)
IF(WITH_DRIVER_DSOUND)
@ -175,6 +211,7 @@ MACRO(NL_ADD_STATIC_SND_DRIVERS name)
ENDIF()
ENDIF()
ENDIF() #hunter
ENDMACRO(NL_ADD_STATIC_SND_DRIVERS)
###
@ -249,6 +286,8 @@ MACRO(NL_SETUP_DEFAULT_OPTIONS)
OPTION(WITH_ASSIMP "Use assimp exporter" OFF)
OPTION(WITH_LIBGSF "Use libgsf for max file library" OFF)
OPTION(WITH_FFMPEG "Use ffmpeg for audio decoder" OFF)
###
# GUI toolkits
###
@ -281,6 +320,8 @@ MACRO(NL_SETUP_DEFAULT_OPTIONS)
OPTION(WITH_RYZOM "Build Ryzom Core." ON )
OPTION(WITH_SNOWBALLS "Build Snowballs." OFF)
OPTION(WITH_TOOLS "Build Tools" OFF)
OPTION(WITH_RYZOM_LIVE "Use ryzom.com urls" ON)
ENDMACRO(NL_SETUP_DEFAULT_OPTIONS)
MACRO(NL_SETUP_NEL_DEFAULT_OPTIONS)
@ -289,6 +330,7 @@ MACRO(NL_SETUP_NEL_DEFAULT_OPTIONS)
###
OPTION(WITH_NET "Build NLNET" ON )
OPTION(WITH_3D "Build NL3D" ON )
OPTION(WITH_WEB "Build WEB" ON )
OPTION(WITH_GUI "Build GUI" ON )
OPTION(WITH_PACS "Build NLPACS" ON )
OPTION(WITH_GEORGES "Build NLGEORGES" ON )
@ -1190,7 +1232,11 @@ MACRO(SETUP_EXTERNAL)
ENDIF()
IF(WIN32)
IF (HUNTER_ENABLED)
FIND_PACKAGE(External QUIET)
ELSE()
FIND_PACKAGE(External REQUIRED)
ENDIF()
# If using custom boost, we need to define the right variables used by official boost CMake module
IF(DEFINED BOOST_DIR)
@ -1233,7 +1279,7 @@ MACRO(SETUP_EXTERNAL)
IF(WIN32)
# Must include DXSDK before WINSDK
FIND_PACKAGE(DirectXSDK REQUIRED)
FIND_PACKAGE(DirectXSDK)
# IF(DXSDK_INCLUDE_DIR)
# INCLUDE_DIRECTORIES(${DXSDK_INCLUDE_DIR})
# ENDIF()
@ -1242,5 +1288,8 @@ MACRO(SETUP_EXTERNAL)
IF(MSVC)
FIND_PACKAGE(MSVC REQUIRED)
FIND_PACKAGE(WindowsSDK REQUIRED)
IF(NOT DXSDK_DIR)
MESSAGE(FATAL_ERROR "DirectX SDK or DirectX files from Windows SDK not found.")
ENDIF()
ENDIF()
ENDMACRO()

@ -0,0 +1,661 @@
GNU AFFERO GENERAL PUBLIC LICENSE
Version 3, 19 November 2007
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The GNU Affero General Public License is a free, copyleft license for
software and other kinds of works, specifically designed to ensure
cooperation with the community in the case of network server software.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
our General Public Licenses are intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
Developers that use our General Public Licenses protect your rights
with two steps: (1) assert copyright on the software, and (2) offer
you this License which gives you legal permission to copy, distribute
and/or modify the software.
A secondary benefit of defending all users' freedom is that
improvements made in alternate versions of the program, if they
receive widespread use, become available for other developers to
incorporate. Many developers of free software are heartened and
encouraged by the resulting cooperation. However, in the case of
software used on network servers, this result may fail to come about.
The GNU General Public License permits making a modified version and
letting the public access it on a server without ever releasing its
source code to the public.
The GNU Affero General Public License is designed specifically to
ensure that, in such cases, the modified source code becomes available
to the community. It requires the operator of a network server to
provide the source code of the modified version running there to the
users of that server. Therefore, public use of a modified version, on
a publicly accessible server, gives the public access to the source
code of the modified version.
An older license, called the Affero General Public License and
published by Affero, was designed to accomplish similar goals. This is
a different license, not a version of the Affero GPL, but Affero has
released a new version of the Affero GPL which permits relicensing under
this license.
The precise terms and conditions for copying, distribution and
modification follow.
TERMS AND CONDITIONS
0. Definitions.
"This License" refers to version 3 of the GNU Affero General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"recipients" may be individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy. The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based
on the Program.
To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.
An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
1. Source Code.
The "source code" for a work means the preferred form of the work
for making modifications to it. "Object code" means any non-source
form of a work.
A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.
The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.
The Corresponding Source for a work in source code form is that
same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force. You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright. Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under
the conditions stated below. Sublicensing is not allowed; section 10
makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified
it, and giving a relevant date.
b) The work must carry prominent notices stating that it is
released under this License and any conditions added under section
7. This requirement modifies the requirement in section 4 to
"keep intact all notices".
c) You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy. This
License will therefore apply, along with any applicable section 7
additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no
permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.
A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit. Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:
a) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the
Corresponding Source fixed on a durable physical medium
customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a
written offer, valid for at least three years and valid for as
long as you offer spare parts or customer support for that product
model, to give anyone who possesses the object code either (1) a
copy of the Corresponding Source for all the software in the
product that is covered by this License, on a durable physical
medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this
conveying of source, or (2) access to copy the
Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the
written offer to provide the Corresponding Source. This
alternative is allowed only occasionally and noncommercially, and
only if you received the object code with such an offer, in accord
with subsection 6b.
d) Convey the object code by offering access from a designated
place (gratis or for a charge), and offer equivalent access to the
Corresponding Source in the same way through the same place at no
further charge. You need not require recipients to copy the
Corresponding Source along with the object code. If the place to
copy the object code is a network server, the Corresponding Source
may be on a different server (operated by you or a third party)
that supports equivalent copying facilities, provided you maintain
clear directions next to the object code saying where to find the
Corresponding Source. Regardless of what server hosts the
Corresponding Source, you remain obligated to ensure that it is
available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided
you inform other peers where the object code and Corresponding
Source of the work are being offered to the general public at no
charge under subsection 6d.
A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling. In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage. For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product. A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.
"Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source. The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.
If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information. But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed. Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law. If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the
terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or
author attributions in that material or in the Appropriate Legal
Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
e) Declining to grant rights under trademark law for use of some
trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that
material by anyone who conveys the material (or modified versions of
it) with contractual assumptions of liability to the recipient, for
any liability that these contractual assumptions directly impose on
those licensors and authors.
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term. If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).
However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or
run a copy of the Program. Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance. However,
nothing other than this License grants you permission to propagate or
modify any covered work. These actions infringe copyright if you do
not accept this License. Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License. You are not responsible
for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations. If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License. For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based. The
work thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version. For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement). To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.
If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients. "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.
A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License. You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all. For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.
13. Remote Network Interaction; Use with the GNU General Public License.
Notwithstanding any other provision of this License, if you modify the
Program, your modified version must prominently offer all users
interacting with it remotely through a computer network (if your version
supports such interaction) an opportunity to receive the Corresponding
Source of your version by providing access to the Corresponding Source
from a network server at no charge, through some standard or customary
means of facilitating copying of software. This Corresponding Source
shall include the Corresponding Source for any work covered by version 3
of the GNU General Public License that is incorporated pursuant to the
following paragraph.
Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU General Public License into a single
combined work, and to convey the resulting work. The terms of this
License will continue to apply to the part which is the covered work,
but the work with which it is combined will remain governed by version
3 of the GNU General Public License.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of
the GNU Affero General Public License from time to time. Such new versions
will be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the
Program specifies that a certain numbered version of the GNU Affero General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of the
GNU Affero General Public License, you may choose any version ever published
by the Free Software Foundation.
If the Program specifies that a proxy can decide which future
versions of the GNU Affero General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
If your software can interact with users remotely through a computer
network, you should also make sure that it provides a way for users to
get its source. For example, if your program is a web application, its
interface could display a "Source" link that leads users to an archive
of the code. There are many ways you could offer source, and different
solutions will be better for different programs; see section 13 for the
specific requirements.
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU AGPL, see
<https://www.gnu.org/licenses/>.

@ -1,42 +1,164 @@
jobs:
- job: ubuntu16
- job: ubuntu18
timeoutInMinutes: 120
pool:
vmImage: 'Ubuntu-16.04'
vmImage: 'ubuntu-18.04'
steps:
- script: |
sudo apt-get update
sudo apt-get install -y software-properties-common
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install cmake build-essential -y
sudo apt-get install gcc-8 g++-8 -y
sudo apt update
sudo apt install -y software-properties-common
# sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt update
sudo apt install cmake build-essential -y
sudo apt install gcc-8 g++-8 -y
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 60
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-8 60
sudo apt-get install bison autoconf automake -y
sudo apt-get install libpng12-dev -y
sudo apt-get install libjpeg-dev -y
sudo apt-get install libgif-dev libfreetype6-dev -y
sudo apt-get install freeglut3-dev -y
sudo apt-get install liblua5.1-dev libluabind-dev libcpptest-dev -y
sudo apt-get install libogg-dev libvorbis-dev libopenal-dev -y
sudo apt-get install libavcodec-dev libavformat-dev libavdevice-dev libswscale-dev libpostproc-dev -y
sudo apt-get install libmysqlclient-dev -y
sudo apt-get install libxml2-dev -y
sudo apt-get install libcurl4-openssl-dev libssl-dev -y
sudo apt-get install libsquish-dev -y
sudo apt-get install liblzma-dev -y
sudo apt-get install libgsf-1-dev -y
sudo apt-get install qtbase5-dev qttools5-dev qttools5-dev-tools
sudo apt install bison autoconf automake -y
sudo apt install libpng-dev -y
sudo apt install libjpeg-dev -y
sudo apt install libgif-dev libfreetype6-dev -y
sudo apt install freeglut3-dev -y
sudo apt install liblua5.2-dev libluabind-dev libcpptest-dev -y
sudo apt install libogg-dev libvorbis-dev libopenal-dev -y
sudo apt install libavcodec-dev libavformat-dev libavdevice-dev libswscale-dev libpostproc-dev -y
sudo apt install libmysqlclient-dev -y
sudo apt install libxml2-dev -y
sudo apt install libcurl4-openssl-dev libssl-dev -y
sudo apt install libsquish-dev -y
sudo apt install liblzma-dev -y
sudo apt install libgsf-1-dev -y
sudo apt install qtbase5-dev qttools5-dev qttools5-dev-tools
displayName: 'Dependencies'
- script: |
mkdir build
cmake --version
cd build
cmake -DWITH_STATIC=ON -DWITH_NEL_TESTS=OFF -DWITH_NEL_SAMPLES=ON -DWITH_LUA51=OFF -DWITH_LUA52=ON -DWITH_RYZOM=ON -DWITH_RYZOM_SERVER=ON -DWITH_RYZOM_CLIENT=ON -DWITH_RYZOM_TOOLS=ON -DWITH_NEL_TOOLS=ON -DWITH_NELNS=ON -DWITH_NELNS_LOGIN_SYSTEM=ON -DWITH_NELNS_SERVER=ON -DWITH_QT5=ON -DWITH_LIBGSF=ON ..
cat CMakeCache.txt
displayName: 'CMake'
- script: |
cd build
make -j`nproc`
displayName: 'Make'
- job: ubuntu20
timeoutInMinutes: 120
pool:
vmImage: 'ubuntu-20.04'
steps:
- script: |
sudo apt update
sudo apt install -y software-properties-common
sudo apt update
sudo apt install cmake build-essential -y
sudo apt install bison autoconf automake -y
sudo apt install libpng-dev -y
sudo apt install libjpeg-dev -y
sudo apt install libgif-dev libfreetype6-dev -y
sudo apt install freeglut3-dev -y
sudo apt install liblua5.2-dev libluabind-dev libcpptest-dev -y
sudo apt install libogg-dev libvorbis-dev libopenal-dev -y
sudo apt install libavcodec-dev libavformat-dev libavdevice-dev libswscale-dev libpostproc-dev -y
sudo apt install libmysqlclient-dev -y
sudo apt install libxml2-dev -y
sudo apt install libcurl4-openssl-dev libssl-dev -y
sudo apt install libsquish-dev -y
sudo apt install liblzma-dev -y
sudo apt install libgsf-1-dev -y
sudo apt install qtbase5-dev qttools5-dev qttools5-dev-tools
displayName: 'Dependencies'
- script: |
mkdir build
cmake --version
cd build
cmake -DWITH_STATIC=ON -DWITH_NEL_TESTS=OFF -DWITH_NEL_SAMPLES=ON -DWITH_LUA51=ON -DWITH_RYZOM=ON -DWITH_RYZOM_SERVER=ON -DWITH_RYZOM_CLIENT=ON -DWITH_RYZOM_TOOLS=ON -DWITH_NEL_TOOLS=ON -DWITH_NELNS=ON -DWITH_NELNS_LOGIN_SYSTEM=ON -DWITH_NELNS_SERVER=ON -DWITH_QT5=ON -DWITH_LIBGSF=ON ../code
cmake -DWITH_STATIC=ON -DWITH_NEL_TESTS=OFF -DWITH_NEL_SAMPLES=ON -DWITH_LUA51=OFF -DWITH_LUA52=ON -DWITH_RYZOM=ON -DWITH_RYZOM_SERVER=ON -DWITH_RYZOM_CLIENT=ON -DWITH_RYZOM_TOOLS=ON -DWITH_NEL_TOOLS=ON -DWITH_NELNS=ON -DWITH_NELNS_LOGIN_SYSTEM=ON -DWITH_NELNS_SERVER=ON -DWITH_QT5=ON -DWITH_LIBGSF=ON ..
cat CMakeCache.txt
displayName: 'CMake'
- script: |
cd build
make -j`nproc`
displayName: 'Make'
- job: windows2019
timeoutInMinutes: 120
pool:
vmImage: 'windows-2019'
steps:
- checkout: self
fetchDepth: 1
- task: Cache@2
inputs:
key: 'hunter-win2019-x64-rel'
path: "c:/.hunter/_Base/Cache"
- task: CmdLine@2
inputs:
script: |
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
del DXSDK_Jun10.exe
- task: CMake@1
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
inputs:
key: 'hunter317-ubuntu18-rel"'
path: "$(Pipeline.Workspace)/.hunter/_Base/Cache"
- script: |
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:
key: 'hunter317-macOS11-rel"'
path: "$(Pipeline.Workspace)/.hunter/_Base/Cache"
- task: CMake@1
inputs:
workingDirectory: build.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: Xcode@5
inputs:
actions: 'build'
configuration: Release
sdk: macosx12.0
xcWorkspacePath: 'build.release/RyzomCore.xcodeproj'
scheme: 'ALL_BUILD'
packageApp: false
#- task: PublishPipelineArtifact@1
# inputs:
# targetPath: build.release/bin/
# artifactName: RyzomClientMacOS11Release

@ -1,23 +0,0 @@
; Top-most EditorConfig file
root = true
; 4-column tab indentation
[*.cpp]
indent_style = tab
indent_size = 4
[*.c]
indent_style = tab
indent_size = 4
[*.h]
indent_style = tab
indent_size = 4
[*.py]
indent_style = tab
indent_size = 4
[*.config]
indent_style = space
indent_size = 2

@ -1,429 +0,0 @@
#-----------------------------------------------------------------------------
#
# Ryzom Core
# Authors: Nevrax and the Ryzom Core Community
# Version: 0.12.0
#
# Notes:
# * Changing install location: add -DCMAKE_INSTALL_PREFIX:PATH=/my/new/path
# * Changing specific install location variables:
# * NL_ETC_PREFIX (default: $CMAKE_INSTALL_PREFIX/etc)
# * NL_SHARE_PREFIX (default: $CMAKE_INSTALL_PREFIX/share)
# * NL_BIN_PREFIX (default: $CMAKE_INSTALL_PREFIX/bin)
# * NL_SBIN_PREFIX (default: $CMAKE_INSTALL_PREFIX/sbin)
# * NL_LIB_PREFIX (default: $CMAKE_INSTALL_PREFIX/lib)
# * NL_DRIVER_PREFIX (default: $CMAKE_INSTALL_PREFIX/lib (windows) or $CMAKE_INSTALL_PREFIX/lib/nel)
# * Enable building of documentation: add -DBUILD_DOCUMENTATION:BOOL=ON - new make target: DoxygenDoc
# * Updating version: update header (above) but also update NL_VERSION below.
# * To build binary archive, use the 'package' target.
# To build source archive, use the 'package_source' target.
#-----------------------------------------------------------------------------
# Load some macros.
SET(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules;${CMAKE_MODULE_PATH}")
#-----------------------------------------------------------------------------
# Set CMake 2.6 Policies.
IF(COMMAND cmake_policy)
# Works around warnings libraries linked against that don't
# have absolute paths (e.g. -lpthread)
cmake_policy(SET CMP0003 NEW)
# allow to link to qtmain automatically under Windows
IF(POLICY CMP0020)
CMAKE_POLICY(SET CMP0020 NEW)
ENDIF()
ENDIF()
INCLUDE(nel)
INCLUDE(ConfigureChecks)
INCLUDE(CheckDepends)
INCLUDE(${CMAKE_ROOT}/Modules/Documentation.cmake OPTIONAL)
# Force out of source builds.
CHECK_OUT_OF_SOURCE()
# To be able to specify a different deployment target on Mac OS X :
# export MACOSX_DEPLOYMENT_TARGET=10.6
IF(CMAKE_VERSION VERSION_GREATER "2.8.10")
STRING(TIMESTAMP CURRENT_YEAR "%Y")
ELSE()
SET(CURRENT_YEAR "2016")
ENDIF()
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
PROJECT(RyzomCore CXX C)
SET(NL_VERSION_MAJOR 1)
SET(NL_VERSION_MINOR 0)
SET(NL_VERSION_PATCH 1)
SET(YEAR "2004-${CURRENT_YEAR}")
SET(AUTHOR "Winch Gate and The Ryzom Core Community")
SET(RYZOM_VERSION_MAJOR 3)
SET(RYZOM_VERSION_MINOR 5)
SET(RYZOM_VERSION_PATCH 0)
#-----------------------------------------------------------------------------
# Redirect output files
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
# DLL should be in the same directory as EXE under Windows
IF(WIN32)
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
ELSE()
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
ENDIF()
IF(WIN32)
IF(WITH_MFC)
FIND_PACKAGE(MFC QUIET)
ENDIF()
ENDIF()
#-----------------------------------------------------------------------------
# Set default config options
#
NL_SETUP_DEFAULT_OPTIONS()
NL_SETUP_NEL_DEFAULT_OPTIONS()
NL_SETUP_NELNS_DEFAULT_OPTIONS()
NL_SETUP_RYZOM_DEFAULT_OPTIONS()
NL_SETUP_SNOWBALLS_DEFAULT_OPTIONS()
NL_SETUP_BUILD()
NL_SETUP_BUILD_FLAGS()
NL_SETUP_PREFIX_PATHS()
RYZOM_SETUP_PREFIX_PATHS()
#-----------------------------------------------------------------------------
#Platform specifics
SETUP_EXTERNAL()
IF(WIN32)
SET(WINSOCK2_LIB ws2_32.lib)
IF(WITH_MFC)
FIND_PACKAGE(CustomMFC REQUIRED)
ENDIF()
ENDIF()
FIND_PACKAGE(ZLIB REQUIRED)
FIND_PACKAGE(LibXml2 REQUIRED)
FIND_PACKAGE(PNG REQUIRED)
FIND_PACKAGE(OpenSSL REQUIRED)
FIND_PACKAGE(GIF)
FIND_PACKAGE(Jpeg)
IF(WIN32)
SET(OPENSSL_LIBRARIES ${OPENSSL_LIBRARIES} Crypt32.lib)
ENDIF()
IF(WITH_LIBOVR)
FIND_PACKAGE(LibOVR)
ENDIF()
IF(WITH_LIBVR)
FIND_PACKAGE(LibVR)
ENDIF()
NL_CONFIGURE_CHECKS()
IF(WITH_STATIC_LIBXML2)
SET(LIBXML2_DEFINITIONS ${LIBXML2_DEFINITIONS} -DLIBXML_STATIC)
ENDIF()
IF(WITH_LIBXML2_ICONV)
FIND_PACKAGE(Iconv REQUIRED)
INCLUDE_DIRECTORIES(${ICONV_INCLUDE_DIR})
SET(LIBXML2_LIBRARIES ${LIBXML2_LIBRARIES} ${ICONV_LIBRARIES})
ENDIF()
IF(WITH_STATIC)
# libxml2 could need winsock2 library
IF(WINSOCK2_LIB)
SET(LIBXML2_LIBRARIES ${LIBXML2_LIBRARIES} ${WINSOCK2_LIB})
ENDIF()
IF(UNIX)
# under Linux and OS X, recent libxml2 versions are linked against liblzma
FIND_PACKAGE(LibLZMA)
IF(LIBLZMA_LIBRARIES)
SET(LIBXML2_LIBRARIES ${LIBXML2_LIBRARIES} ${LIBLZMA_LIBRARIES})
ENDIF()
ENDIF()
ENDIF()
INCLUDE(${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules/PCHSupport.cmake)
IF(FINAL_VERSION)
ADD_DEFINITIONS(-DFINAL_VERSION=1)
ENDIF()
IF(WITH_SSE2)
ADD_DEFINITIONS(-DNL_HAS_SSE2)
IF(WITH_SSE3)
ADD_DEFINITIONS(-DNL_HAS_SSE3)
ENDIF()
ENDIF()
IF(APPLE)
FIND_LIBRARY(CARBON_FRAMEWORK Carbon)
FIND_LIBRARY(FOUNDATION_FRAMEWORK Foundation)
FIND_LIBRARY(SECURITY_FRAMEWORK Security)
IF(APPLE_CERTIFICATE)
# Find codesign_allocate
# Xcode 7.0 and later versions
SET(CODESIGN_ALLOCATE ${OSX_DEVELOPER_ROOT}/Toolchains/XcodeDefault.xctoolchain/usr/bin/codesign_allocate)
IF(NOT EXISTS "${CODESIGN_ALLOCATE}")
# Xcode 6.4 and previous versions
SET(CODESIGN_ALLOCATE ${CMAKE_OSX_SYSROOT}/usr/bin/codesign_allocate)
ENDIF()
IF(NOT EXISTS "${CODESIGN_ALLOCATE}")
# System path
SET(CODESIGN_ALLOCATE /usr/bin/codesign_allocate)
ENDIF()
IF(NOT EXISTS "${CODESIGN_ALLOCATE}")
MESSAGE(WARNING "Unable to find codesign_allocate in standard directories")
SET(CODESIGN_ALLOCATE)
ENDIF()
ENDIF()
ENDIF()
INCLUDE(FindHelpers)
IF(WITH_QT5)
FIND_QT5()
ENDIF()
IF(WITH_QT)
SET(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} ${QTDIR} $ENV{QTDIR})
# Use Qt 4
FIND_PACKAGE(Qt4 COMPONENTS QtCore QtGui QtXml QtOpenGL REQUIRED)
ENDIF()
IF(WITH_ASSIMP)
FIND_PACKAGE(assimp REQUIRED)
ENDIF()
IF(WITH_NEL)
IF(WITH_NEL_TESTS)
FIND_PACKAGE(CppTest)
ENDIF()
IF(WITH_GUI)
FIND_PACKAGE(Luabind REQUIRED)
FIND_PACKAGE(CURL REQUIRED)
IF((WIN32 OR CURL_LIBRARIES MATCHES "\\.a") AND WITH_STATIC_CURL)
SET(CURL_STATIC ON)
ELSE()
SET(CURL_STATIC OFF)
ENDIF()
IF(CURL_STATIC)
SET(CURL_DEFINITIONS -DCURL_STATICLIB)
LIST(APPEND CURL_INCLUDE_DIRS ${OPENSSL_INCLUDE_DIR})
LIST(APPEND CURL_LIBRARIES ${OPENSSL_LIBRARIES})
IF(WIN32)
LIST(APPEND CURL_LIBRARIES Crypt32 Cryptui)
ELSE()
# CURL depends on libidn
FIND_LIBRARY(IDN_LIBRARY idn)
IF(IDN_LIBRARY)
LIST(APPEND CURL_LIBRARIES ${IDN_LIBRARY})
ENDIF()
# CURL Macports version can depend on libidn, libidn2, libintl, libpsl and libiconv too
IF(APPLE)
FIND_LIBRARY(INTL_LIBRARY intl)
IF(INTL_LIBRARY)
LIST(APPEND CURL_LIBRARIES ${INTL_LIBRARY})
ENDIF()
FIND_LIBRARY(IDN2_LIBRARY idn2)
IF(IDN2_LIBRARY)
LIST(APPEND CURL_LIBRARIES ${IDN2_LIBRARY})
ENDIF()
FIND_LIBRARY(PSL_LIBRARY psl)
IF(PSL_LIBRARY)
LIST(APPEND CURL_LIBRARIES ${PSL_LIBRARY})
ENDIF()
FIND_LIBRARY(UNISTRING_LIBRARY unistring)
IF(UNISTRING_LIBRARY)
LIST(APPEND CURL_LIBRARIES ${UNISTRING_LIBRARY})
ENDIF()
LIST(APPEND CURL_LIBRARIES ${SECURITY_FRAMEWORK})
ENDIF()
ENDIF()
ENDIF()
ENDIF()
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/nel/include)
ADD_SUBDIRECTORY(nel)
# Aliases for targets
SET(NELMISC_LIBRARIES nelmisc)
SET(NELNET_LIBRARIES nelnet)
SET(NELLIGO_LIBRARIES nelligo)
SET(NELGEORGES_LIBRARIES nelgeorges)
SET(NEL3D_LIBRARIES nel3d)
SET(NELGUI_LIBRARIES nelgui)
SET(NELSOUND_LIBRARIES nelsound)
ELSE()
# FIND_PACKAGE(NeL COMPONENTS 3d misc pacs sound nimp REQUIRED)
FIND_PACKAGE(NeL REQUIRED)
INCLUDE_DIRECTORIES(${NEL_INCLUDE_DIRS})
ENDIF()
IF(WITH_RYZOM)
ADD_SUBDIRECTORY(ryzom)
ENDIF()
IF(WITH_NELNS)
ADD_SUBDIRECTORY(nelns)
ENDIF()
IF(WITH_SNOWBALLS)
ADD_SUBDIRECTORY(snowballs2)
ENDIF()
IF(WITH_TOOLS)
ADD_SUBDIRECTORY(tool)
ENDIF()
IF(WITH_STUDIO)
ADD_SUBDIRECTORY(studio)
ENDIF()
IF(WITH_PERSONAL)
ADD_SUBDIRECTORY(personal)
ENDIF()
# To build the documention, you will have to enable it
# and then do the equivalent of "make DoxygenDoc".
IF(BUILD_DOCUMENTATION)
IF(DOT)
SET(HAVE_DOT YES)
ELSE()
SET(HAVE_DOT NO)
ENDIF()
# This processes our Doxyfile.in and substitutes paths to generate
# a final Doxyfile
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/doc/Doxyfile.cmake.in ${CMAKE_BINARY_DIR}/doc/Doxyfile)
ADD_CUSTOM_TARGET(DoxygenDoc ${DOXYGEN} ${CMAKE_BINARY_DIR}/doc/Doxyfile)
ENDIF()
IF(WITH_NEL_TESTS)
ENABLE_TESTING()
ADD_TEST(nel_unit_test ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/nel_unit_test --html)
IF(BUILD_DASHBOARD)
INCLUDE(Dart)
SET(SVNCOMMAND svn)
SET(SVNSOURCEDIR http://dev.ryzom.com/svn/trunk/nel)
SET(GENERATELOGS svn2cl)
ENDIF()
ENDIF()
# packaging information
SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Ryzom Core MMORPG Framework")
SET(CPACK_PACKAGE_VENDOR "Ryzom Core")
SET(CPACK_PACKAGE_DESCRIPTION_FILE ${CMAKE_SOURCE_DIR}/README)
SET(CPACK_RESOURCE_FILE_LICENSE ${CMAKE_SOURCE_DIR}/COPYING)
SET(CPACK_PACKAGE_VERSION_MAJOR "${NL_VERSION_MAJOR}")
SET(CPACK_PACKAGE_VERSION_MINOR "${NL_VERSION_MINOR}")
SET(CPACK_PACKAGE_VERSION_PATCH "${NL_VERSION_PATCH}")
SET(CPACK_INSTALL_CMAKE_PROJECTS "${CMAKE_BINARY_DIR};NeL;ALL;/")
SET(CPACK_PACKAGE_EXECUTABLES "ryzomcore${NL_VERSION}" "ryzomcore")
SET(CPACK_SET_DESTDIR TRUE)
# NSIS Specific Packing Setup
SET(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "RyzomCore")
SET(CPACK_NSIS_MODIFY_PATH "ON")
SET(CPACK_NSIS_MUI_ICON ${CMAKE_SOURCE_DIR}/resources/nevraxpill.ico)
SET(CPACK_NSIS_MUI_UNIICON ${CMAKE_SOURCE_DIR}/resources/nevraxpill.ico)
SET(CPACK_PACKAGE_ICON ${CMAKE_SOURCE_DIR}/resources\\\\nel.bmp)
SET(CPACK_NSIS_DISPLAY_NAME "${CPACK_PACKAGE_INSTALL_DIRECTORY} RyzomCore")
SET(CPACK_NSIS_HELP_LINK "http:\\\\\\\\dev.ryzom.com")
SET(CPACK_NSIS_URL_INFO_ABOUT "http:\\\\\\\\dev.ryzom.com\\\\projects\\\\nel\\\\wiki")
SET(CPACK_NSIS_CONTACT "matt.raykowski@gmail.com")
## Source Packages
SET(CPACK_PACKAGE_FILE_NAME "ryzomcore-${NL_VERSION}")
SET(CPACK_SOURCE_PACKAGE_FILE_NAME "ryzomcore-${NL_VERSION}")
IF(WIN32)
#SET(CPACK_GENERATOR "NSIS")
SET(CPACK_GENERATOR "NSIS;ZIP")
SET(CPACK_SOURCE_GENERATOR "ZIP")
ELSE()
SET(CPACK_GENERATOR "TGZ")
SET(CPACK_SOURCE_GENERATOR "TGZ")
ENDIF()
set(CPACK_SOURCE_IGNORE_FILES
"~$"
"\\\\.cvsignore$"
"^${CMAKE_SOURCE_DIR}.*/CVS/"
"^${CMAKE_SOURCE_DIR}.*/\\\\.svn/"
"^${CMAKE_SOURCE_DIR}/debian/"
"^${CMAKE_SOURCE_DIR}/old/")
IF(WIN32)
IF(NOT CMAKE_BUILD_TYPE STREQUAL "Release")
SET(CMAKE_INSTALL_DEBUG_LIBRARIES TRUE)
IF(WITH_QT)
INCLUDE(${QT_USE_FILE})
INSTALL(FILES
"${QT_LIBRARY_DIR}/../bin/QtGuid4.dll"
"${QT_LIBRARY_DIR}/../bin/QtXmld4.dll"
"${QT_LIBRARY_DIR}/../bin/QtCored4.dll"
DESTINATION ${NL_BIN_PREFIX})
ENDIF()
ELSE()
IF(WITH_QT)
INCLUDE(${QT_USE_FILE})
INSTALL(FILES
"${QT_LIBRARY_DIR}/../bin/QtGui4.dll"
"${QT_LIBRARY_DIR}/../bin/QtXml4.dll"
"${QT_LIBRARY_DIR}/../bin/QtCore4.dll"
DESTINATION ${NL_BIN_PREFIX})
ENDIF()
ENDIF()
# Install CEGUI and its dependencies.
IF(WITH_NEL_CEGUI)
INSTALL(FILES "${CEGUI_LIB_DIR}/CEGUIBase.dll" DESTINATION ${NL_BIN_PREFIX})
INSTALL(FILES "${CEGUI_LIB_DIR}/CEGUIDevilImageCodec.dll" DESTINATION ${NL_BIN_PREFIX})
INSTALL(FILES "${CEGUI_LIB_DIR}/CEGUIExpatParser.dll" DESTINATION ${NL_BIN_PREFIX})
INSTALL(FILES "${CEGUI_LIB_DIR}/CEGUIFalagardWRBase.dll" DESTINATION ${NL_BIN_PREFIX})
INSTALL(FILES "${CEGUI_LIB_DIR}/Devil.dll" DESTINATION ${NL_BIN_PREFIX})
INSTALL(FILES "${CEGUI_LIB_DIR}/ILU.dll" DESTINATION ${NL_BIN_PREFIX})
ENDIF()
# Only the tools require MFC.
IF(WITH_TOOLS)
SET(CMAKE_INSTALL_MFC_LIBRARIES TRUE)
ENDIF()
#INCLUDE(InstallRequiredSystemLibraries)
ENDIF()
INCLUDE(CPack)
INCLUDE(CMakePackaging.txt)
## Debian Packages
#INCLUDE(UseDebian)
#IF(DEBIAN_FOUND)
# ADD_DEBIAN_TARGETS(nel)
#ENDIF()

@ -1,57 +0,0 @@
# - Locate FMOD library
# This module defines
# FMOD_LIBRARY, the library to link against
# FMOD_FOUND, if false, do not try to link to FMOD
# FMOD_INCLUDE_DIR, where to find headers.
IF(FMOD_LIBRARY AND FMOD_INCLUDE_DIR)
# in cache already
SET(FMOD_FIND_QUIETLY TRUE)
ENDIF()
FIND_PATH(FMOD_INCLUDE_DIR
fmod.h
PATHS
$ENV{FMOD_DIR}/include
/usr/local/include
/usr/include
/sw/include
/opt/local/include
/opt/csw/include
/opt/include
PATH_SUFFIXES fmod fmod3
)
IF(TARGET_X64)
SET(FMOD_LIBRARY_NAMES fmod64 fmod)
ELSE()
SET(FMOD_LIBRARY_NAMES fmodvc fmod)
ENDIF()
FIND_LIBRARY(FMOD_LIBRARY
NAMES
${FMOD_LIBRARY_NAMES}
PATHS
$ENV{FMOD_DIR}/lib
/usr/local/lib
/usr/lib
/usr/local/X11R6/lib
/usr/X11R6/lib
/sw/lib
/opt/local/lib
/opt/csw/lib
/opt/lib
/usr/freeware/lib64
)
IF(FMOD_LIBRARY AND FMOD_INCLUDE_DIR)
SET(FMOD_FOUND "YES")
IF(NOT FMOD_FIND_QUIETLY)
MESSAGE(STATUS "Found FMOD: ${FMOD_LIBRARY}")
ENDIF()
ELSE()
IF(NOT FMOD_FIND_QUIETLY)
MESSAGE(STATUS "Warning: Unable to find FMOD!")
ENDIF()
ENDIF()

@ -1,182 +0,0 @@
# - Find MS Visual C++
#
# VC_INCLUDE_DIR - where to find headers
# VC_INCLUDE_DIRS - where to find headers
# VC_LIBRARY_DIR - where to find libraries
# VC_FOUND - True if MSVC found.
MACRO(ADD_TRAILING_SLASH _FILENAME_VAR)
# put content in a new variable
SET(_FILENAME ${${_FILENAME_VAR}})
# get length of the string
STRING(LENGTH ${_FILENAME} _LEN)
# convert length to last pos
MATH(EXPR _POS "${_LEN}-1")
# get last character of the string
STRING(SUBSTRING ${_FILENAME} ${_POS} 1 _FILENAME_END)
# compare it with a slash
IF(NOT _FILENAME_END STREQUAL "/")
# not a slash, append it
SET(${_FILENAME_VAR} "${_FILENAME}/")
ELSE()
# already a slash
ENDIF()
ENDMACRO()
MACRO(DETECT_VC_VERSION_HELPER _ROOT _VERSION)
# Software/Wow6432Node/...
GET_FILENAME_COMPONENT(VC${_VERSION}_DIR "[${_ROOT}\\SOFTWARE\\Microsoft\\VisualStudio\\SxS\\VC7;${_VERSION}]" ABSOLUTE)
IF(VC${_VERSION}_DIR AND VC${_VERSION}_DIR STREQUAL "/registry")
SET(VC${_VERSION}_DIR)
GET_FILENAME_COMPONENT(VC${_VERSION}_DIR "[${_ROOT}\\SOFTWARE\\Microsoft\\VisualStudio\\SxS\\VS7;${_VERSION}]" ABSOLUTE)
IF(VC${_VERSION}_DIR AND NOT VC${_VERSION}_DIR STREQUAL "/registry")
# be sure it's finishing by a /
ADD_TRAILING_SLASH(VC${_VERSION}_DIR)
SET(VC${_VERSION}_DIR "${VC${_VERSION}_DIR}VC/")
ENDIF()
ENDIF()
IF(VC${_VERSION}_DIR AND NOT VC${_VERSION}_DIR STREQUAL "/registry")
SET(VC${_VERSION}_FOUND ON)
DETECT_EXPRESS_VERSION(${_VERSION})
IF(NOT MSVC_FIND_QUIETLY)
SET(_VERSION_STR ${_VERSION})
IF(MSVC_EXPRESS)
SET(_VERSION_STR "${_VERSION_STR} Express")
ENDIF()
MESSAGE(STATUS "Found Visual C++ ${_VERSION_STR} in ${VC${_VERSION}_DIR}")
ENDIF()
ELSEIF(VC${_VERSION}_DIR AND NOT VC${_VERSION}_DIR STREQUAL "/registry")
SET(VC${_VERSION}_FOUND OFF)
SET(VC${_VERSION}_DIR "")
ENDIF()
ENDMACRO()
MACRO(DETECT_VC_VERSION _VERSION)
IF(NOT VC_FOUND)
SET(VC${_VERSION}_FOUND OFF)
DETECT_VC_VERSION_HELPER("HKEY_CURRENT_USER" ${_VERSION})
IF(NOT VC${_VERSION}_FOUND)
DETECT_VC_VERSION_HELPER("HKEY_LOCAL_MACHINE" ${_VERSION})
ENDIF()
IF(VC${_VERSION}_FOUND)
SET(VC_FOUND ON)
SET(VC_DIR "${VC${_VERSION}_DIR}")
ENDIF()
ENDIF()
ENDMACRO()
MACRO(DETECT_EXPRESS_VERSION _VERSION)
GET_FILENAME_COMPONENT(MSVC_EXPRESS "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VCExpress\\${_VERSION}\\Setup\\VC;ProductDir]" ABSOLUTE)
IF(MSVC_EXPRESS AND NOT MSVC_EXPRESS STREQUAL "/registry")
SET(MSVC_EXPRESS ON)
ENDIF()
ENDMACRO()
IF(MSVC_VERSION GREATER 1909)
DETECT_VC_VERSION("15.0")
SET(MSVC_TOOLSET "140")
SET(VC_DIR "${VC_DIR}Tools/MSVC")
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(NOT MSVC_TOOLCHAIN_VERSIONS)
MESSAGE(FATAL_ERROR "No MSVC version found in default search path ${VC_DIR}")
ENDIF()
LIST(GET MSVC_TOOLCHAIN_VERSIONS 0 MSVC_TOOLCHAIN_VERSION)
SET(VC_DIR "${VC_DIR}/${MSVC_TOOLCHAIN_VERSION}")
SET(VC_INCLUDE_DIR "${VC_DIR}/include")
ELSEIF(MSVC14)
DETECT_VC_VERSION("14.0")
SET(MSVC_TOOLSET "140")
ELSEIF(MSVC12)
DETECT_VC_VERSION("12.0")
SET(MSVC_TOOLSET "120")
ELSEIF(MSVC11)
DETECT_VC_VERSION("11.0")
SET(MSVC_TOOLSET "110")
ELSEIF(MSVC10)
DETECT_VC_VERSION("10.0")
SET(MSVC_TOOLSET "100")
ELSEIF(MSVC90)
DETECT_VC_VERSION("9.0")
SET(MSVC_TOOLSET "90")
ELSEIF(MSVC80)
DETECT_VC_VERSION("8.0")
SET(MSVC_TOOLSET "80")
ENDIF()
# If you plan to use VC++ compilers with WINE, set VC_DIR environment variable
IF(NOT VC_DIR)
SET(VC_DIR $ENV{VC_DIR})
# Fix path
FILE(TO_CMAKE_PATH ${VC_DIR} VC_DIR)
ENDIF()
IF(NOT VC_DIR)
IF(CMAKE_CXX_COMPILER)
SET(_COMPILER ${CMAKE_CXX_COMPILER})
ELSE()
SET(_COMPILER ${CMAKE_C_COMPILER})
ENDIF()
STRING(REGEX REPLACE "/(bin|BIN|Bin)/.+" "" VC_DIR ${_COMPILER})
ENDIF()
IF(NOT VC_INCLUDE_DIR AND VC_DIR AND EXISTS "${VC_DIR}")
SET(VC_INCLUDE_DIR "${VC_DIR}/include")
IF(EXISTS "${VC_INCLUDE_DIR}")
SET(VC_FOUND ON)
ENDIF()
ENDIF()
SET(MSVC_REDIST_DIR "${EXTERNAL_PATH}/redist")
IF(NOT EXISTS "${MSVC_REDIST_DIR}")
SET(MSVC_REDIST_DIR "${VC_DIR}/redist")
IF(NOT EXISTS "${MSVC_REDIST_DIR}")
SET(MSVC_REDIST_DIR)
ENDIF()
ENDIF()
IF(MSVC_REDIST_DIR)
IF(MSVC1411 OR MSVC1410)
# If you have VC++ 2017 Express, put x64/Microsoft.VC141.CRT/*.dll in ${EXTERNAL_PATH}/redist
# original files whould be in ${VC_DIR}/Redist/MSVC/14.11.25325/x64/Microsoft.VC141.CRT
SET(MSVC14_REDIST_DIR "${MSVC_REDIST_DIR}")
ELSEIF(MSVC14)
SET(MSVC14_REDIST_DIR "${MSVC_REDIST_DIR}")
ELSEIF(MSVC12)
# If you have VC++ 2013 Express, put x64/Microsoft.VC120.CRT/*.dll in ${EXTERNAL_PATH}/redist
SET(MSVC12_REDIST_DIR "${MSVC_REDIST_DIR}")
ELSEIF(MSVC11)
# If you have VC++ 2012 Express, put x64/Microsoft.VC110.CRT/*.dll in ${EXTERNAL_PATH}/redist
SET(MSVC11_REDIST_DIR "${MSVC_REDIST_DIR}")
ELSEIF(MSVC10)
# If you have VC++ 2010 Express, put x64/Microsoft.VC100.CRT/*.dll in ${EXTERNAL_PATH}/redist
SET(MSVC10_REDIST_DIR "${MSVC_REDIST_DIR}")
ELSEIF(MSVC90)
SET(MSVC90_REDIST_DIR "${MSVC_REDIST_DIR}")
ELSEIF(MSVC80)
SET(MSVC80_REDIST_DIR "${MSVC_REDIST_DIR}")
ENDIF()
ENDIF()
MESSAGE(STATUS "Using headers from ${VC_INCLUDE_DIR}")
SET(VC_INCLUDE_DIRS ${VC_INCLUDE_DIR})
INCLUDE_DIRECTORIES(${VC_INCLUDE_DIR})

@ -1,49 +0,0 @@
# - Locate Ogg library
# This module defines
# OGG_LIBRARY, the library to link against
# OGG_FOUND, if false, do not try to link to OGG
# OGG_INCLUDE_DIR, where to find headers.
IF(OGG_LIBRARY AND OGG_INCLUDE_DIR)
# in cache already
SET(OGG_FIND_QUIETLY TRUE)
ENDIF()
FIND_PATH(OGG_INCLUDE_DIR
ogg/ogg.h
PATHS
$ENV{OGG_DIR}/include
/usr/local/include
/usr/include
/sw/include
/opt/local/include
/opt/csw/include
/opt/include
)
FIND_LIBRARY(OGG_LIBRARY
NAMES ogg libogg
PATHS
$ENV{OGG_DIR}/lib
/usr/local/lib
/usr/lib
/usr/local/X11R6/lib
/usr/X11R6/lib
/sw/lib
/opt/local/lib
/opt/csw/lib
/opt/lib
/usr/freeware/lib64
)
IF(OGG_LIBRARY AND OGG_INCLUDE_DIR)
SET(OGG_FOUND "YES")
IF(NOT OGG_FIND_QUIETLY)
MESSAGE(STATUS "Found Ogg: ${OGG_LIBRARY}")
ENDIF()
ELSE()
IF(NOT OGG_FIND_QUIETLY)
MESSAGE(STATUS "Warning: Unable to find Ogg!")
ENDIF()
ENDIF()

@ -1,91 +0,0 @@
# Look for a directory containing STLport.
#
# The following values are defined
# STLPORT_INCLUDE_DIR - where to find vector, etc.
# STLPORT_LIBRARIES - link against these to use STLport
# STLPORT_FOUND - True if the STLport is available.
# also defined, but not for general use are
IF(STLPORT_LIBRARIES AND STLPORT_INCLUDE_DIR)
# in cache already
SET(STLPORT_FIND_QUIETLY TRUE)
ENDIF()
FIND_PATH(STLPORT_INCLUDE_DIR
iostream
PATHS
/usr/local/include
/usr/include
/sw/include
/opt/local/include
/opt/csw/include
/opt/include
PATH_SUFFIXES stlport
)
FIND_LIBRARY(STLPORT_LIBRARY_DEBUG
NAMES
stlport_cygwin_debug
stlport_cygwin_stldebug
stlport_gcc_debug
stlport_gcc_stldebug
stlportstld_x
stlportstld_x.5.2
stlportd
stlportd_statix
stlportd_static
PATHS
/usr/local/lib
/usr/lib
/usr/local/X11R6/lib
/usr/X11R6/lib
/sw/lib
/opt/local/lib
/opt/csw/lib
/opt/lib
/usr/freeware/lib64
)
FIND_LIBRARY(STLPORT_LIBRARY_RELEASE
NAMES
stlport_cygwin
stlport_gcc
stlport
stlport_x
stlport_x.5.2
stlport_statix
stlport_static
PATHS
/usr/local/lib
/usr/lib
/usr/local/X11R6/lib
/usr/X11R6/lib
/sw/lib
/opt/local/lib
/opt/csw/lib
/opt/lib
/usr/freeware/lib64
)
IF(STLPORT_INCLUDE_DIR)
IF(STLPORT_LIBRARY_RELEASE)
SET(STLPORT_FOUND TRUE)
SET(STLPORT_LIBRARIES ${STLPORT_LIBRARY_RELEASE})
IF(STLPORT_LIBRARY_DEBUG)
SET(STLPORT_LIBRARIES optimized ${STLPORT_LIBRARIES} debug ${STLPORT_LIBRARY_DEBUG})
ENDIF()
ENDIF()
ENDIF()
IF(STLPORT_FOUND)
IF(NOT STLPORT_FIND_QUIETLY)
MESSAGE(STATUS "Found STLport: ${STLPORT_LIBRARIES}")
ENDIF()
ELSE()
IF(NOT STLPORT_FIND_QUIETLY)
MESSAGE(STATUS "Warning: Unable to find STLport!")
ENDIF()
ENDIF()
MARK_AS_ADVANCED(STLPORT_LIBRARY_RELEASE STLPORT_LIBRARY_DEBUG)

@ -1,83 +0,0 @@
#
# Find the LibSquish includes and library
#
# This module defines
# SQUISH_INCLUDE_DIR, where to find squish.h
# SQUISH_LIBRARIES, where to find the Squish libraries.
# SQUISH_FOUND, If false, do not try to use Squish.
# also defined, but not for general use are
IF(SQUISH_LIBRARIES AND SQUISH_INCLUDE_DIR)
# in cache already
SET(SQUISH_FIND_QUIETLY TRUE)
ENDIF()
FIND_PATH(SQUISH_INCLUDE_DIR
squish.h
PATHS
/usr/local/include
/usr/include
/sw/include
/opt/local/include
/opt/csw/include
/opt/include
PATH_SUFFIXES cppunit
)
FIND_LIBRARY(SQUISH_LIBRARY_RELEASE
squish
PATHS
/usr/local/lib
/usr/lib
/usr/local/X11R6/lib
/usr/X11R6/lib
/sw/lib
/opt/local/lib
/opt/csw/lib
/opt/lib
/usr/freeware/lib64
)
FIND_LIBRARY(SQUISH_LIBRARY_DEBUG
squishd
PATHS
/usr/local/lib
/usr/lib
/usr/local/X11R6/lib
/usr/X11R6/lib
/sw/lib
/opt/local/lib
/opt/csw/lib
/opt/lib
/usr/freeware/lib64
)
IF(SQUISH_INCLUDE_DIR)
IF(SQUISH_LIBRARY_RELEASE)
SET(SQUISH_FOUND "YES")
SET(SQUISH_LIBRARIES "optimized;${SQUISH_LIBRARY_RELEASE}")
IF(SQUISH_LIBRARY_DEBUG)
SET(SQUISH_LIBRARIES "${SQUISH_LIBRARIES};debug;${SQUISH_LIBRARY_DEBUG}")
ELSE()
SET(SQUISH_LIBRARIES "${SQUISH_LIBRARIES};debug;${SQUISH_LIBRARY_RELEASE}")
MESSAGE("Debug Squish NOT found, using the release version!")
ENDIF()
ENDIF()
ENDIF()
IF(SQUISH_FOUND)
IF(NOT SQUISH_FIND_QUIETLY)
MESSAGE(STATUS "Found Squish: ${SQUISH_LIBRARIES}")
ENDIF()
FILE(STRINGS ${SQUISH_INCLUDE_DIR}/squish.h METRIC REGEX "metric = 0")
IF(METRIC)
SET(SQUISH_COMPRESS_HAS_METRIC ON)
SET(SQUISH_DEFINITIONS -DSQUISH_COMPRESS_HAS_METRIC)
ENDIF()
ELSE()
IF(NOT SQUISH_FIND_QUIETLY)
MESSAGE(STATUS "Warning: Unable to find Squish!")
ENDIF()
ENDIF()
MARK_AS_ADVANCED(SQUISH_LIBRARY_RELEASE SQUISH_LIBRARY_DEBUG)

@ -1,65 +0,0 @@
# - Locate Vorbis library
# This module defines
# VORBIS_LIBRARY, the library to link against
# VORBIS_FOUND, if false, do not try to link to VORBIS
# VORBIS_INCLUDE_DIR, where to find headers.
IF(VORBIS_LIBRARY AND VORBIS_INCLUDE_DIR)
# in cache already
SET(VORBIS_FIND_QUIETLY TRUE)
ENDIF()
FIND_PATH(VORBIS_INCLUDE_DIR
vorbis/vorbisfile.h
PATHS
$ENV{VORBIS_DIR}/include
/usr/local/include
/usr/include
/sw/include
/opt/local/include
/opt/csw/include
/opt/include
)
FIND_LIBRARY(VORBIS_LIBRARY
NAMES vorbis libvorbis
PATHS
$ENV{VORBIS_DIR}/lib
/usr/local/lib
/usr/lib
/usr/local/X11R6/lib
/usr/X11R6/lib
/sw/lib
/opt/local/lib
/opt/csw/lib
/opt/lib
/usr/freeware/lib64
)
FIND_LIBRARY(VORBISFILE_LIBRARY
NAMES vorbisfile libvorbisfile
PATHS
$ENV{VORBIS_DIR}/lib
/usr/local/lib
/usr/lib
/usr/local/X11R6/lib
/usr/X11R6/lib
/sw/lib
/opt/local/lib
/opt/csw/lib
/opt/lib
/usr/freeware/lib64
)
IF(VORBIS_LIBRARY AND VORBISFILE_LIBRARY AND VORBIS_INCLUDE_DIR)
SET(VORBIS_FOUND "YES")
SET(VORBIS_LIBRARIES ${VORBIS_LIBRARY} ${VORBISFILE_LIBRARY})
IF(NOT VORBIS_FIND_QUIETLY)
MESSAGE(STATUS "Found Vorbis: ${VORBIS_LIBRARY}")
ENDIF()
ELSE()
IF(NOT VORBIS_FIND_QUIETLY)
MESSAGE(STATUS "Warning: Unable to find Vorbis!")
ENDIF()
ENDIF()

@ -1,65 +0,0 @@
IF(WITH_STATIC_DRIVERS)
ADD_DEFINITIONS(-DNL_STATIC)
ENDIF()
IF(WIN32)
# On Win32 we can also build the MAX plugins.
IF(WITH_NEL_MAXPLUGIN)
FIND_PACKAGE(3dsMaxSDK)
ENDIF()
ENDIF()
IF(WITH_3D)
FIND_PACKAGE(FreeType)
IF(WITH_NEL_CEGUI)
FIND_PACKAGE(CEGUI)
ENDIF()
ENDIF()
IF(WITH_SOUND)
FIND_PACKAGE(Ogg)
FIND_PACKAGE(Vorbis)
FIND_PACKAGE(FFmpeg COMPONENTS AVCODEC AVFORMAT AVUTIL SWRESAMPLE)
IF(WITH_DRIVER_OPENAL)
FIND_PACKAGE(OpenAL)
ENDIF()
IF(WITH_DRIVER_FMOD)
FIND_PACKAGE(FMOD)
ENDIF()
ENDIF()
IF(WITH_GTK)
FIND_PACKAGE(GTK2)
ENDIF()
IF(WITH_INSTALL_LIBRARIES)
IF(UNIX)
SET(prefix ${CMAKE_INSTALL_PREFIX})
SET(exec_prefix ${NL_BIN_ABSOLUTE_PREFIX})
SET(libdir ${NL_LIB_ABSOLUTE_PREFIX})
SET(includedir ${CMAKE_INSTALL_PREFIX}/include)
SET(enable_ligo ${WITH_LIGO})
SET(enable_logic ${WITH_LOGIC})
SET(enable_georges ${WITH_GEORGES})
SET(enable_net ${WITH_NET})
SET(enable_3d ${WITH_3D})
SET(enable_pacs ${WITH_PACS})
SET(enable_sound ${WITH_SOUND})
CONFIGURE_FILE(nel-config.in ${CMAKE_CURRENT_BINARY_DIR}/nel-config)
INSTALL(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/nel-config DESTINATION ${NL_BIN_PREFIX})
ENDIF()
ADD_SUBDIRECTORY(include)
ENDIF()
ADD_SUBDIRECTORY(src)
IF(WITH_NEL_SAMPLES)
ADD_SUBDIRECTORY(samples)
ENDIF()
ADD_SUBDIRECTORY(tools)

@ -1,84 +0,0 @@
/**
* \file fxaa.h
* \brief CFXAA
* \date 2014-08-03 21:41GMT
* \author Jan Boon (Kaetemi)
* CFXAA
*/
/*
* Copyright (C) 2014 by authors
*
* This file is part of NL3D.
* NL3D is free software: you can redistribute it and/or modify it
* under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* NL3D is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General
* Public License for more details.
*
* You should have received a copy of the GNU Affero General Public
* License along with NL3D. If not, see
* <http://www.gnu.org/licenses/>.
*/
#ifndef NL3D_FXAA_H
#define NL3D_FXAA_H
#include <nel/misc/types_nl.h>
// STL includes
// NeL includes
#include <nel/misc/smart_ptr.h>
#include <nel/misc/geom_ext.h>
// Project includes
#include <nel/3d/u_material.h>
#include <nel/3d/vertex_buffer.h>
#define NL_STEREO_MAX_USER_CAMERAS 8
namespace NL3D {
class ITexture;
class CTextureUser;
class CPixelProgram;
class CVertexProgram;
/**
* \brief CFXAA
* \date 2014-08-03 21:41GMT
* \author Jan Boon (Kaetemi)
* CFXAA
*/
class CFXAA
{
public:
CFXAA(NL3D::UDriver *driver);
virtual ~CFXAA();
/// Apply effect to current render target. Render target must be managed by render target manager
virtual void applyEffect();
private:
UDriver *m_Driver;
NL3D::UMaterial m_Mat;
// NL3D::CVertexBuffer m_VB;
NLMISC::CQuadUV m_QuadUV;
CVertexProgram *m_VP;
CPixelProgram *m_PP;
uint m_Width;
uint m_Height;
}; /* class CFXAA */
} /* namespace NL3D */
#endif /* #ifndef NL3D_FXAA_H */
/* end of file */

@ -1,49 +0,0 @@
/** \file geometry_program.h
* Geometry program definition
*/
/* Copyright, 2000, 2001 Nevrax Ltd.
*
* This file is part of NEVRAX NEL.
* NEVRAX NEL is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
* NEVRAX NEL is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with NEVRAX NEL; see the file COPYING. If not, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
* MA 02111-1307, USA.
*/
#ifndef NL_GEOMETRY_PROGRAM_H
#define NL_GEOMETRY_PROGRAM_H
#include <nel/misc/types_nl.h>
#include <nel/misc/smart_ptr.h>
#include <nel/3d/program.h>
#include <list>
namespace NL3D {
class CGeometryProgram : public IProgram
{
public:
/// Constructor
CGeometryProgram();
/// Destructor
virtual ~CGeometryProgram ();
};
} // NL3D
#endif // NL_GEOMETRY_PROGRAM_H
/* End of vertex_program.h */

@ -1,49 +0,0 @@
/** \file pixel_program.h
* Pixel program definition
*/
/* Copyright, 2000, 2001 Nevrax Ltd.
*
* This file is part of NEVRAX NEL.
* NEVRAX NEL is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
* NEVRAX NEL is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with NEVRAX NEL; see the file COPYING. If not, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
* MA 02111-1307, USA.
*/
#ifndef NL_PIXEL_PROGRAM_H
#define NL_PIXEL_PROGRAM_H
#include <nel/misc/types_nl.h>
#include <nel/misc/smart_ptr.h>
#include <nel/3d/program.h>
#include <list>
namespace NL3D {
class CPixelProgram : public IProgram
{
public:
/// Constructor
CPixelProgram();
/// Destructor
virtual ~CPixelProgram ();
};
} // NL3D
#endif // NL_PIXEL_PROGRAM_H
/* End of vertex_program.h */

@ -1,83 +0,0 @@
/**
* \file render_target_manager.h
* \brief CRenderTargetManager
* \date 2014-07-30 21:30GMT
* \author Jan Boon (Kaetemi)
* CRenderTargetManager
*/
/*
* Copyright (C) 2013 by authors
*
* This file is part of NL3D.
* NL3D is free software: you can redistribute it and/or modify it
* under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* NL3D is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General
* Public License for more details.
*
* You should have received a copy of the GNU Affero General Public
* License along with NL3D. If not, see
* <http://www.gnu.org/licenses/>.
*/
#ifndef NL3D_RENDER_TARGET_MANAGER_H
#define NL3D_RENDER_TARGET_MANAGER_H
#include <nel/misc/types_nl.h>
// STL includes
// NeL includes
#include <nel/misc/smart_ptr.h>
#include <nel/misc/geom_ext.h>
// Project includes
#include <nel/3d/u_texture.h>
namespace NL3D {
class UDriver;
class ITexture;
class CTextureUser;
class CDriverUser;
struct CRenderTargetDescInt;
/**
* \brief CRenderTargetManager
* \date 2013-07-03 20:17GMT
* \author Jan Boon (Kaetemi)
* CRenderTargetManager
* Usage: Call 'getRenderTarget' when you start using a render target,
* call 'recycledRenderTarget' when the render target can be recycled.
* At end of frame call cleanup.
* Assumes semi-constant render target quantity between frames,
* except on changes of resolution or feature settings.
*/
class CRenderTargetManager
{
public:
CRenderTargetManager();
~CRenderTargetManager();
NL3D::CTextureUser *getRenderTarget(uint width, uint height, bool mode2D = false, UTexture::TUploadFormat format = UTexture::Auto);
void recycleRenderTarget(NL3D::CTextureUser *renderTarget);
void cleanup();
private:
friend class CDriverUser;
NL3D::UDriver *m_Driver;
std::vector<CRenderTargetDescInt *> m_RenderTargets;
}; /* class CRenderTargetManager */
} /* namespace NL3D */
#endif /* #ifndef NL3D_RENDER_TARGET_MANAGER_H */
/* end of file */

@ -1,185 +0,0 @@
/**
* \file stereo_ovr.h
* \brief CStereoOVR
* \date 2013-06-25 22:22GMT
* \author Jan Boon (Kaetemi)
* CStereoOVR
*/
/*
* Copyright (C) 2013 by authors
*
* This file is part of NL3D.
* NL3D is free software: you can redistribute it and/or modify it
* under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* NL3D is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General
* Public License for more details.
*
* You should have received a copy of the GNU Affero General Public
* License along with NL3D. If not, see
* <http://www.gnu.org/licenses/>.
*
* Linking this library statically or dynamically with other modules
* is making a combined work based on this library. Thus, the terms
* and conditions of the GNU General Public License cover the whole
* combination.
*
* As a special exception, the copyright holders of this library give
* you permission to link this library with the Oculus SDK to produce
* an executable, regardless of the license terms of the Oculus SDK,
* and distribute linked combinations including the two, provided that
* you also meet the terms and conditions of the license of the Oculus
* SDK. You must obey the GNU General Public License in all respects
* for all of the code used other than the Oculus SDK. If you modify
* this file, you may extend this exception to your version of the
* file, but you are not obligated to do so. If you do not wish to do
* so, delete this exception statement from your version.
*/
#ifndef NL3D_STEREO_OVR_H
#define NL3D_STEREO_OVR_H
#ifdef HAVE_LIBOVR_02
#include <nel/misc/types_nl.h>
// STL includes
// NeL includes
#include <nel/misc/smart_ptr.h>
#include <nel/misc/geom_ext.h>
// Project includes
#include <nel/3d/stereo_hmd.h>
#include <nel/3d/frustum.h>
#include <nel/3d/viewport.h>
#include <nel/3d/u_material.h>
namespace NL3D {
class ITexture;
class CTextureUser;
class CStereoOVRDevicePtr;
class CStereoOVRDeviceHandle;
class CPixelProgramOVR;
#define NL_STEREO_MAX_USER_CAMERAS 8
/**
* \brief CStereoOVR
* \date 2013-06-25 22:22GMT
* \author Jan Boon (Kaetemi)
* CStereoOVR
*/
class CStereoOVR : public IStereoHMD
{
public:
CStereoOVR(const CStereoOVRDeviceHandle *handle);
virtual ~CStereoOVR();
/// Sets driver and generates necessary render targets
virtual void setDriver(NL3D::UDriver *driver);
/// Gets the required screen resolution for this device
virtual bool getScreenResolution(uint &width, uint &height);
/// Set latest camera position etcetera
virtual void updateCamera(uint cid, const NL3D::UCamera *camera);
/// Get the frustum to use for clipping
virtual void getClippingFrustum(uint cid, NL3D::UCamera *camera) const;
/// Get the original frustum of the camera
virtual void getOriginalFrustum(uint cid, NL3D::UCamera *camera) const;
/// Is there a next pass
virtual bool nextPass();
/// Gets the current viewport
virtual const NL3D::CViewport &getCurrentViewport() const;
/// Gets the current camera frustum
virtual const NL3D::CFrustum &getCurrentFrustum(uint cid) const;
/// Gets the current camera frustum
virtual void getCurrentFrustum(uint cid, NL3D::UCamera *camera) const;
/// Gets the current camera matrix
virtual void getCurrentMatrix(uint cid, NL3D::UCamera *camera) const;
/// At the start of a new render target
virtual bool wantClear();
/// The 3D scene
virtual bool wantScene();
/// Interface within the 3D scene
virtual bool wantInterface3D();
/// 2D Interface
virtual bool wantInterface2D();
/// Returns true if a new render target was set, always fase if not using render targets
virtual bool beginRenderTarget();
/// Returns true if a render target was fully drawn, always false if not using render targets
virtual bool endRenderTarget();
/// Get the HMD orientation
virtual NLMISC::CQuat getOrientation() const;
/// Set the GUI reference
virtual void setInterfaceMatrix(const NL3D::CMatrix &matrix);
/// Get GUI center (1 = width, 1 = height, 0 = center)
virtual void getInterface2DShift(uint cid, float &x, float &y, float distance) const;
/// Set the head model, eye position relative to orientation point
virtual void setEyePosition(const NLMISC::CVector &v);
/// Get the head model, eye position relative to orientation point
virtual const NLMISC::CVector &getEyePosition() const;
/// Set the scale of the game in units per meter
virtual void setScale(float s);
/// Calculates internal camera information based on the reference camera
void initCamera(uint cid, const NL3D::UCamera *camera);
/// Render GUI
void renderGUI();
/// Checks if the device used by this class was actually created
bool isDeviceCreated();
static void listDevices(std::vector<CStereoDeviceInfo> &devicesOut);
static bool isLibraryInUse();
static void releaseLibrary();
private:
CStereoOVRDevicePtr *m_DevicePtr;
int m_Stage;
int m_SubStage;
CViewport m_RegularViewport;
CViewport m_LeftViewport;
CViewport m_RightViewport;
CFrustum m_ClippingFrustum[NL_STEREO_MAX_USER_CAMERAS];
CFrustum m_LeftFrustum[NL_STEREO_MAX_USER_CAMERAS];
CFrustum m_RightFrustum[NL_STEREO_MAX_USER_CAMERAS];
CFrustum m_OriginalFrustum[NL_STEREO_MAX_USER_CAMERAS];
CMatrix m_CameraMatrix[NL_STEREO_MAX_USER_CAMERAS];
CMatrix m_InterfaceCameraMatrix;
mutable bool m_OrientationCached;
mutable NLMISC::CQuat m_OrientationCache;
UDriver *m_Driver;
NL3D::CTextureUser *m_SceneTexture;
NL3D::UMaterial m_BarrelMat;
NL3D::CTextureUser *m_GUITexture;
NLMISC::CQuadUV m_BarrelQuadLeft;
NLMISC::CQuadUV m_BarrelQuadRight;
NLMISC::CRefPtr<CPixelProgramOVR> m_PixelProgram;
NLMISC::CVector m_EyePosition;
float m_Scale;
}; /* class CStereoOVR */
} /* namespace NL3D */
#endif /* HAVE_LIBOVR */
#endif /* #ifndef NL3D_STEREO_OVR_H */
/* end of file */

@ -1,37 +0,0 @@
SUBDIRS(misc)
IF(WITH_3D)
SUBDIRS(3d)
ENDIF()
IF(WITH_GUI)
ADD_SUBDIRECTORY(gui)
ENDIF()
IF(WITH_GEORGES)
SUBDIRS(georges)
ENDIF()
IF(WITH_LIGO)
SUBDIRS(ligo)
ENDIF()
IF(WITH_LOGIC)
SUBDIRS(logic)
ENDIF()
IF(WITH_NET)
SUBDIRS(net)
ENDIF()
IF(WITH_SOUND)
SUBDIRS(sound)
ENDIF()
IF(WITH_PACS)
SUBDIRS(pacs)
ENDIF()
IF(WITH_NEL_CEGUI)
SUBDIRS(cegui)
ENDIF()

@ -1,150 +0,0 @@
// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
// Copyright (C) 2010 Winch Gate Property Limited
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// 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/>.
#ifndef CL_CSS_PARSER_H
#define CL_CSS_PARSER_H
#include "nel/misc/types_nl.h"
#include "nel/gui/css_style.h"
#include "nel/gui/css_selector.h"
namespace NLGUI
{
/**
* \brief CSS style parsing
* \date 2019-03-15 10:50 GMT
* \author Meelis Mägi (Nimetu)
*/
class CCssParser {
public:
// parse style declaration, eg "color: red; font-size: 10px;"
static TStyle parseDecls(const std::string &styleString);
// parse css stylesheet
void parseStylesheet(const std::string &cssString, std::vector<CCssStyle::SStyleRule> &rules);
private:
// stylesheet currently parsed
ucstring _Style;
// keep track of current position in _Style
size_t _Position;
std::vector<CCssStyle::SStyleRule> _Rules;
private:
// @media ( .. ) { .. }
void readAtRule();
// a#id.class[attr=val] { .. }
void readRule();
// move past whitespace
void skipWhitespace();
// skip valid IDENT
bool skipIdentifier();
// skip over {}, (), or [] block
void skipBlock();
// skip over string quoted with ' or "
void skipString();
// backslash escape
void escape();
// normalize newline chars and remove comments
void preprocess();
// parse selectors + combinators
std::vector<CCssSelector> parse_selector(const ucstring &sel, std::string &pseudoElement) const;
// parse selector and style
void parseRule(const ucstring &selectorString, const ucstring &styleString);
inline bool is_eof() const
{
return _Position >= _Style.size();
}
inline bool is_whitespace(ucchar ch) const
{
return (ch == (ucchar)' ' || ch == (ucchar)'\t' || ch == (ucchar)'\n');
}
inline bool is_hex(ucchar ch) const
{
return ((ch >= (ucchar)'0' && ch <= (ucchar)'9') ||
(ch >= (ucchar)'a' && ch <= (ucchar)'f') ||
(ch >= (ucchar)'A' && ch <= (ucchar)'F'));
}
inline bool maybe_escape() const
{
// escaping newline (\n) only allowed inside strings
return (_Style.size() - _Position) >= 1 && _Style[_Position] == (ucchar)'\\' && _Style[_Position+1] != '\n';
}
inline bool is_quote(ucchar ch) const
{
return ch== (ucchar)'"' || ch == (ucchar)'\'';
}
inline bool is_block_open(ucchar ch) const
{
return ch == (ucchar)'{' || ch == (ucchar)'[' || ch == (ucchar)'(';
}
inline bool is_block_close(ucchar ch, ucchar open) const
{
return ((open == '{' && ch == (ucchar)'}') ||
(open == '[' && ch == (ucchar)']') ||
(open == '(' && ch == (ucchar)')'));
}
inline bool is_comment_open() const
{
if (_Position+1 > _Style.size())
return false;
return _Style[_Position] == (ucchar)'/' && _Style[_Position+1] == (ucchar)'*';
}
inline bool is_nonascii(ucchar ch) const
{
return ch >= 0x80 /*&& ch <= 255*/;
}
inline bool is_alpha(ucchar ch) const
{
return (ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z');
}
inline bool is_digit(ucchar ch) const
{
return ch >= '0' && ch <= '9';
}
inline bool is_nmchar(ucchar ch) const
{
// checking escape here does not check if next char is '\n' or not
return ch == '_' || ch == '-' || is_alpha(ch) || is_digit(ch) || is_nonascii(ch) || ch == '\\'/*is_escape(ch)*/;
}
};
}//namespace
#endif // CL_CSS_PARSER_H

@ -1,230 +0,0 @@
// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
// Copyright (C) 2010 Winch Gate Property Limited
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// 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/>.
#ifndef CL_CSS_STYLE_H
#define CL_CSS_STYLE_H
#include "nel/misc/types_nl.h"
#include "nel/misc/rgba.h"
#include "nel/gui/css_selector.h"
namespace NLGUI
{
class CHtmlElement;
typedef std::map<std::string, std::string> TStyle;
/**
* \brief CSS style rules
* \date 2019-03-15 10:50 GMT
* \author Meelis Mägi (Nimetu)
*/
class CStyleParams
{
public:
struct STextShadow
{
public:
STextShadow(bool enabled = false, bool outline = false, sint32 x=1, sint32 y=1, NLMISC::CRGBA color=NLMISC::CRGBA::Black)
: Enabled(enabled), Outline(outline), X(x), Y(y), Color(color)
{ }
bool Enabled;
bool Outline;
sint32 X;
sint32 Y;
NLMISC::CRGBA Color;
};
public:
CStyleParams () : FontFamily(""), TextColor(255,255,255,255), TextShadow()
{
FontSize=10;
FontWeight=400;
FontOblique=false;
Underlined=false;
StrikeThrough=false;
GlobalColor=false;
DisplayBlock=false;
Width=-1;
Height=-1;
MaxWidth=-1;
MaxHeight=-1;
BorderWidth=-1;
BackgroundColor=NLMISC::CRGBA::Black;
BackgroundColorOver=NLMISC::CRGBA::Black;
}
bool hasStyle(const std::string &key) const
{
return StyleRules.find(key) != StyleRules.end();
}
std::string getStyle(const std::string &key) const
{
TStyle::const_iterator it = StyleRules.find(key);
return (it != StyleRules.end() ? it->second : "");
}
public:
uint FontSize;
uint FontWeight;
bool FontOblique;
std::string FontFamily;
NLMISC::CRGBA TextColor;
STextShadow TextShadow;
bool GlobalColor;
bool Underlined;
bool StrikeThrough;
bool DisplayBlock;
sint32 Width;
sint32 Height;
sint32 MaxWidth;
sint32 MaxHeight;
sint32 BorderWidth;
NLMISC::CRGBA BackgroundColor;
NLMISC::CRGBA BackgroundColorOver;
std::string WhiteSpace;
std::string TextAlign;
std::string VerticalAlign;
TStyle StyleRules;
};
class CCssStyle {
public:
struct SStyleRule {
std::vector<CCssSelector> Selector;
TStyle Properties;
// pseudo element like ':before'
std::string PseudoElement;
// returns selector specificity
uint specificity() const;
};
// 'browser' style, overwriten with '<html>'
CStyleParams Root;
// current element style
CStyleParams Current;
// known style rules sorted by specificity
std::vector<SStyleRule> _StyleRules;
private:
std::vector<CStyleParams> _StyleStack;
// test if str is one of "thin/medium/thick" and return its pixel value
bool scanCssLength(const std::string& str, uint32 &px) const;
// read style attribute
void getStyleParams(const std::string &styleString, CStyleParams &style, const CStyleParams &current) const;
void getStyleParams(const TStyle &styleRules, CStyleParams &style, const CStyleParams &current) const;
// extract from styleRules into style.StyleRules (expand shorthand, normalize, calculate current font-size)
void normalize(const TStyle &styleRules, CStyleParams &style, const CStyleParams &current) const;
// apply style.StyleRyles
void apply(CStyleParams &style, const CStyleParams &current) const;
// merge src into dest by overwriting key in dest
void merge(TStyle &dst, const TStyle &src) const;
// match selector to dom path
bool match(const std::vector<CCssSelector> &selector, const CHtmlElement &elm) const;
// parse 'background' into 'background-color', 'background-image', etc
void parseBackgroundShorthand(const std::string &value, CStyleParams &style) const;
public:
void reset();
// parse <style>..</style> tag or css file content
void parseStylesheet(const std::string &styleString);
// set element style from matching css rules
void getStyleFor(CHtmlElement &elm) const;
inline uint getFontSizeSmaller() const
{
if (Current.FontSize < 5)
return 3;
return Current.FontSize-2;
}
sint styleStackIndex = 0;
inline void pushStyle()
{
styleStackIndex++;
_StyleStack.push_back(Current);
Current.DisplayBlock = false;
Current.Width=-1;
Current.Height=-1;
Current.MaxWidth=-1;
Current.MaxHeight=-1;
Current.BorderWidth=-1;
Current.StyleRules.clear();
}
inline void popStyle()
{
styleStackIndex--;
if (_StyleStack.empty())
{
Current = Root;
}
else
{
Current = _StyleStack.back();
_StyleStack.pop_back();
}
}
// apply style to this.Root
void applyRootStyle(const std::string &styleString);
void applyRootStyle(const TStyle &styleRules);
// apply style to this.Current
void applyStyle(const std::string &styleString);
void applyStyle(const TStyle &styleRules);
void applyCssMinMax(sint32 &width, sint32 &height, sint32 minw=0, sint32 minh=0, sint32 maxw=0, sint32 maxh=0) const;
// check if current style property matches value
bool checkStyle(const std::string &key, const std::string &val) const
{
return Current.hasStyle(key) && Current.getStyle(key) == val;
}
bool hasStyle(const std::string &key) const
{
return Current.hasStyle(key);
}
std::string getStyle(const std::string &key) const
{
return Current.getStyle(key);
}
};
}//namespace
#endif // CL_CSS_STYLE_H

@ -1,71 +0,0 @@
// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
// Copyright (C) 2010 Winch Gate Property Limited
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// 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/>.
#ifndef DBMANAGER_H
#define DBMANAGER_H
#include "nel/misc/cdb_manager.h"
namespace NLGUI
{
/**
Database Manager
Provides access to a simple CDB based tree hierarchical data store
*/
class CDBManager : public NLMISC::CCDBManager
{
public:
static CDBManager* getInstance();
static void release();
/**
Retrieves a leaf node from the database.
@param name - name of the data leaf node we are querying.
@param create - when true if a node cannot be found it is created.
*/
NLMISC::CCDBNodeLeaf* getDbProp( const std::string &name, bool create = true );
/**
Deletes a node from the database.
@param name - name of the node.
*/
void delDbProp( const std::string &name );
/**
Returns a leaf node's content as an sint32
@param name - name of the leaf node.
*/
sint32 getDbValue32( const std::string &name );
/**
Returns the root branch of the database.
*/
NLMISC::CCDBNodeBranch* getDB() const;
private:
CDBManager();
~CDBManager();
static CDBManager *instance;
};
}
#endif

@ -1,31 +0,0 @@
// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
// Copyright (C) 2010 Winch Gate Property Limited
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// 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/>.
#include <string>
#include <vector>
namespace NLGUI
{
/// Watches the currently selected GUI widget
class IEditorSelectionWatcher
{
public:
/// Notifies the watcher about the change
virtual void selectionChanged() = 0;
};
}

@ -1,52 +0,0 @@
// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
// Copyright (C) 2010 Winch Gate Property Limited
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// 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/>.
#ifndef CL_HTML_PARSER_H
#define CL_HTML_PARSER_H
#include "nel/misc/types_nl.h"
namespace NLGUI
{
class CHtmlElement;
/**
* \brief HTML parsing
* \date 2019-03-15 10:50 GMT
* \author Meelis Mägi (Nimetu)
*/
class CHtmlParser
{
public:
bool parseHtml(std::string htmlString) const;
// parse html string into DOM, extract <style> tags into styleString, <link stylesheet> urls into links
void getDOM(std::string htmlString, CHtmlElement &parent, std::string &styleString, std::vector<std::string> &links) const;
private:
// iterate over libxml html tree, build DOM, and join all <style> tags together
void parseNode(xmlNode *a_node, CHtmlElement &parent, std::string &styleString, std::vector<std::string> &links) const;
// read <style> tag and add its content to styleString
void parseStyle(xmlNode *a_node, std::string &styleString) const;
// update parent/sibling in elm.Children
void reindexChilds(CHtmlElement &elm) const;
};
}
#endif

@ -1,29 +0,0 @@
#ifndef STRING_CASE_H
#define STRING_CASE_H
#include "nel/misc/types_nl.h"
#include "nel/misc/ucstring.h"
namespace NLGUI
{
enum TCaseMode
{
CaseNormal = 0, // Nothing done
CaseLower, // All letters in lowercase
CaseUpper, // All letters in uppercase
CaseFirstStringLetterUp, // The first letter of the string is uppercase, the others are lowercase
CaseFirstSentenceLetterUp, // The first letter of the string and each sentences are uppercase, the others are lowercase. Sentences are seprated with '.'.
CaseFirstWordLetterUp, // The first letter of each word is uppercase, the others are lowercase
CaseCount
};
void setCase( ucstring &str, TCaseMode mode );
}
#endif

@ -1,369 +0,0 @@
// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
// Copyright (C) 2010 Winch Gate Property Limited
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// 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/>.
#ifndef CDB_H
#define CDB_H
// misc
#include "types_nl.h"
#include "smart_ptr.h"
#include "string_mapper.h"
#include "sstring.h"
// Forward declarations for libxml2
typedef struct _xmlNode xmlNode;
typedef xmlNode *xmlNodePtr;
namespace NLMISC
{
class IProgressCallback;
class CBitMemStream;
class CCDBNodeLeaf;
class CCDBNodeBranch;
class CCDBBankHandler;
/**
* Interface to manage a database node, can contain a unique property or a set of property
* \author Stephane Coutelas
* \author Nevrax France
* \date 2002
*/
class ICDBNode : public CRefCount
{
//-----------------------------------------------------------------------
// end of IDBNode interface
// start of CDB sub-class definitions
public:
enum EPropType
{
UNKNOWN = 0,
// Unsigned
I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12, I13, I14, I15, I16,
I17, I18, I19, I20, I21, I22, I23, I24, I25, I26, I27, I28, I29, I30, I31, I32,
I33, I34, I35, I36, I37, I38, I39, I40, I41, I42, I43, I44, I45, I46, I47, I48,
I49, I50, I51, I52, I53, I54, I55, I56, I57, I58, I59, I60, I61, I62, I63, I64,
// Signed
S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12, S13, S14, S15, S16,
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,
S49, S50, S51, S52, S53, S54, S55, S56, S57, S58, S59, S60, S61, S62, S63, S64,
TEXT, Nb_Prop_Type
};
/**
* observer interface to a database property
* \author Nicolas Brigand
* \author Nevrax France
* \date 2002
*/
class IPropertyObserver : public CRefCount
{
public :
virtual ~IPropertyObserver() {}
virtual void update(ICDBNode* node ) = 0;
};
/**
* Text id
* \author Stephane Coutelas
* \author Nevrax France
* \date 2002
*/
class CTextId
{
public:
/**
* Default constructor
*/
CTextId(): _Idx(0) {}
/**
* Init this text id from a string
*/
explicit CTextId( const std::string& str ): _Idx(0)
{
const std::string &s = str;
uint32 i, j;
for (i=0,j=0; i+j<s.size(); j++)
if (s[i+j]==':')
{
_Ids.push_back(s.substr(i,j));
i+=j+1; // +1 to skip the ':'
j=0;
}
// deal with the last id in the string (terminated by a '\x0' and not a ':')
_Ids.push_back(s.substr(i,j));
}
/**
* Build a string from this text id
*/
std::string toString() const
{
if (_Ids.empty()) return std::string("");
std::string str=_Ids[0];
for (uint i=1; i<_Ids.size(); i++)
str +=std::string(":")+ _Ids[i];
return str;
}
/**
* Push back a sub name id to this id
*/
void push( const std::string &str ) { _Ids.push_back( str ); }
/**
* Remove the last sub name id to this id
*/
void pop() { _Ids.pop_back(); }
/**
* Return the next sub id
*/
const std::string &readNext() const
{
nlassert( _Idx < _Ids.size() );
return _Ids[_Idx++];
}
/** return true if a call to readNext can be performed
*/
bool hasElements() const { return _Idx < _Ids.size(); }
/**
* Get the current index in Id
*/
uint getCurrentIndex() const { return _Idx; }
/**
* Return the count of strings composing this id
*/
uint size() const { return (uint)_Ids.size(); }
/** Return an element. empty if bad index
*/
const std::string &getElement(uint idx)
{
static std::string empty;
if(idx>=size())
return empty;
else
return _Ids[idx];
}
private:
std::vector<std::string> _Ids;
mutable uint _Idx;
};
//-----------------------------------------------------------------------
// end of CDB sub-class definitions
//-----------------------------------------------------------------------
// IDBNode interface definition
public :
/**
* destructor
*/
virtual ~ICDBNode() {}
/**
* Build the structure of the database from a file
* \param f is the stream
*/
virtual void init( xmlNodePtr node, IProgressCallback &progressCallBack, bool mapBanks=false, CCDBBankHandler *bankHandler = NULL ) = 0;
/**
* Save a backup of the database
* \param id is the text id of the property/grp
* \param f is the stream
*/
virtual void write( CTextId& id, FILE * f) = 0;
/**
* Update the database from a stream coming from the FE
* \param gc the server gameCycle of this update. Any outdated update are aborted
* \param f : the stream.
*/
virtual void readDelta( TGameCycle gc, CBitMemStream & f ) = 0;
/**
* Get a node . Create it if it does not exist yet
* \param id : the CTextId identifying the node
*/
virtual ICDBNode * getNode( const CTextId& id, bool bCreate = true )=0 ;
/**
* Get a node
* \param idx is the node index
*/
virtual ICDBNode * getNode( uint16 idx ) = 0;
/**
* Get a node index
* \param node is a pointer to the node
* \param index is a reference that receive the result
* \return true if the node was found
*/
virtual bool getNodeIndex( ICDBNode* node , uint & index) = 0;
/**
* Return the value of a property (the update flag is set to false)
* \param id is the text id of the property/grp
* \param name is the name of the property
* \return the value of the property
*/
virtual sint64 getProp( CTextId& id ) = 0;
/**
* Set the value of a property (the update flag is set to true)
* \param id is the text id of the property/grp
* \param name is the name of the property
* \param value is the value of the property
* \return bool : 'true' if property found.
*/
virtual bool setProp( CTextId& id, sint64 value ) = 0;
/// Reset all leaf data from this point
virtual void resetData(TGameCycle gc, bool forceReset=false) = 0;
/**
* Clear the node and his children
*/
virtual void clear() = 0;
/**
* add an observer to a property
* \param observer : pointer to an observer
* \param id text id identifying the property
* \return false if the node doesn't exist
*/
virtual bool addObserver(IPropertyObserver* observer, CTextId& id) = 0;
/** remove an obsever
* \param observer : pointer to an observer
* \param id text id identifying the property
* \return false if the node or observer doesn t exist
*/
virtual bool removeObserver(IPropertyObserver* observer, CTextId& id) = 0;
/**
* Inform a node of its parenthood
*/
virtual void setParent(CCDBNodeBranch * /* parent */) { nlassertex(0,("setParent() not overloaded for given node type!")); }
/**
* get the parent of a node
*/
virtual CCDBNodeBranch* getParent() { nlassertex(0,("getParent() not overloaded for given node type!")); return NULL; }
/**
* get the name of this node
*/
const std::string * getName() const { return &_DBSM->localUnmap(_Name); }
/**
* get the full name of this node separator is ':' (ie UI:INTERFACE:REDSTUFF)
* This will not return the fullname with the ROOT !
*/
std::string getFullName();
/// Count the leaves
virtual uint countLeaves() const = 0;
/// Find the leaf which count is specified (if found, the returned value is non-null and count is 0)
virtual CCDBNodeLeaf *findLeafAtCount( uint& count ) = 0;
/// Set the atomic branch flag (when all the modified nodes of a branch should be tranmitted at the same time)
void setAtomic( bool atomicBranch ) { _AtomicFlag = atomicBranch; }
/// Return true if the branch has the atomic flag
bool isAtomic() const { return _AtomicFlag; }
// test if the node is a leaf
virtual bool isLeaf() const = 0;
/// Debug purpose
virtual void display (const std::string &/* prefix */){}
/// Return the string id corresponding to the argument
static TStringId getStringId(const std::string& nodeName)
{
if (_DBSM == NULL) _DBSM = CStringMapper::createLocalMapper();
return _DBSM->localMap(nodeName);
}
/// Return a pointer to the string corresponding to the argument
static const std::string *getStringFromId(TStringId nodeStringId)
{
if (_DBSM == NULL) _DBSM = CStringMapper::createLocalMapper();
return &_DBSM->localUnmap(nodeStringId);
}
/// release string mapper
static void releaseStringMapper();
static bool isDatabaseVerbose(){ return verboseDatabase; }
static void setVerboseDatabase( bool b ){ verboseDatabase = b; }
protected:
/// Constructor
ICDBNode() : _AtomicFlag(false)
{
if (_DBSM == NULL) _DBSM = CStringMapper::createLocalMapper();
_Name = CStringMapper::emptyId();
}
/// Constructor
ICDBNode (const std::string &name) : _AtomicFlag(false)
{
if (_DBSM == NULL) _DBSM = CStringMapper::createLocalMapper();
_Name = _DBSM->localMap(name);
//_NameDbg = name;
}
// utility to build full name efficiently (without reallocating the string at each parent level)
void _buildFullName(CSString &fullName);
/// Atomic flag: is the branch an atomic group, or is the leaf a member of an atomic group
bool _AtomicFlag : 1;
/// Name of the node
TStringId _Name;
//std::string _NameDbg;
static CStringMapper *_DBSM;
static bool verboseDatabase;
};
}
#endif // CDB_H

@ -1,266 +0,0 @@
// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
// Copyright (C) 2010 Winch Gate Property Limited
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// 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/>.
#ifndef CDB_BRANCH_H
#define CDB_BRANCH_H
#include "cdb.h"
#define NL_CDB_OPTIMIZE_PREDICT 1
namespace NLMISC{
/**
* Database Node which contains a set of properties
* \author Stephane Coutelas
* \author Nevrax France
* \date 2002
*/
class CCDBNodeBranch : public ICDBNode
{
public:
class ICDBDBBranchObserverHandle
{
public:
virtual ~ICDBDBBranchObserverHandle(){}
virtual ICDBNode* owner() = 0;
virtual IPropertyObserver* observer() = 0;
virtual bool observesLeaf( const std::string &leafName ) = 0;
virtual bool inList( uint list ) = 0;
virtual void addToFlushableList() = 0;
virtual void removeFromFlushableList( uint list ) = 0;
virtual void removeFromFlushableList() = 0;
};
// default constructor
CCDBNodeBranch(const std::string &name) : ICDBNode(name)
{
_Parent = NULL;
_IdBits = 0;
_Sorted = false;
}
/**
* Build the structure of the database from a file
* \param f is the stream
*/
void init( xmlNodePtr node, class IProgressCallback &progressCallBack, bool mapBanks=false, CCDBBankHandler *bankHandler = NULL );
/**
* Add a new sub node
* \param node is the new subnode
* \param nodeName is the name of the node
*/
void attachChild( ICDBNode * node, std::string nodeName );
/**
* Get a node . Create it if it does not exist yet
* \param id : the CTextId identifying the node
*/
ICDBNode * getNode (const CTextId& id, bool bCreate=true);
/**
* Get a node. Return NULL if out of bounds (no warning)
* \param idx is the node index
*/
ICDBNode * getNode( uint16 idx );
/**
* Get a node index
* \param node is a pointer to the node
*/
virtual bool getNodeIndex( ICDBNode* node , uint& index)
{
index=0;
for ( std::vector<ICDBNode*>::const_iterator it = _Nodes.begin(); it != _Nodes.end(); it++)
{
if (*it == node)
return true;
index++;
}
return false;
}
// return the child with the given node id, creating it if requested
CCDBNodeLeaf *getLeaf( const char *id, bool bCreate );
CCDBNodeLeaf *getLeaf( const std::string &id, bool bCreate ) { return getLeaf(id.c_str(), bCreate); }
/**
* Save a backup of the database
* \param id is the text id of the property/grp
* \param f is the stream
*/
void write( CTextId& id, FILE * f);
/// Update the database from the delta, but map the first level with the bank mapping (see _CDBBankToUnifiedIndexMapping)
void readAndMapDelta( TGameCycle gc, CBitMemStream& s, uint bank, CCDBBankHandler *bankHandler );
/// Update the database from a stream coming from the FE
void readDelta( TGameCycle gc, CBitMemStream & f );
/**
* Return the value of a property (the update flag is set to false)
* \param id is the text id of the property/grp
* \param name is the name of the property
* \return the value of the property
*/
sint64 getProp( CTextId& id );
/**
* Set the value of a property (the update flag is set to true)
* \param id is the text id of the property/grp
* \param name is the name of the property
* \param value is the value of the property
* \return bool : 'true' if property found.
*/
bool setProp( CTextId& id, sint64 value );
/// Clear the node and his children
void clear();
void resetNode( TGameCycle gc, uint node )
{
if( node > _Nodes.size() )
return;
_Nodes[ node ]->resetData( gc );
}
/// Reset all leaf data from this point
void resetData(TGameCycle gc, bool forceReset=false)
{
for ( uint i=0; i!=_Nodes.size(); ++i )
{
_Nodes[i]->resetData(gc, forceReset);
}
}
/**
* Destructor
*/
virtual ~CCDBNodeBranch() { clear(); }
// the parent node for a branch (NULL by default)
virtual void setParent(CCDBNodeBranch *parent) { _Parent=parent; }
virtual CCDBNodeBranch* getParent()
{
return _Parent;
}
//get the number of nodes
uint16 getNbNodes()
{
return (uint16)_Nodes.size();
}
/// Count the leaves
virtual uint countLeaves() const;
/// Find the leaf which count is specified (if found, the returned value is non-null and count is 0)
virtual CCDBNodeLeaf *findLeafAtCount( uint& count );
virtual void display (const std::string &prefix);
void removeNode (const CTextId& id);
/**
* add an observer to a property
* \param observer : pointer to an observer
* \param id text id identifying the property
* \return false if the node doen t exist
*/
virtual bool addObserver(IPropertyObserver* observer, CTextId& id);
/** remove an obsever
* \param observer : pointer to an observer
* \return false if the node or observer doesn t exist
*/
virtual bool removeObserver(IPropertyObserver* observer, CTextId& id);
// Add an observer to this branch. It will be notified of any change in the sub-leaves
/**
* Add observer to all sub-leaves, except if a positive filter is set:
* If positiveLeafNameFilter is non-empty, only changes to leaves having names found in it
* will be notified (this is equivalent to creating a sub-branch containing only the specified leaves
* and setting a branch observer on it, except you don't need to change your database paths
* and update large amounts of code!).
*/
void addBranchObserver( ICDBDBBranchObserverHandle* handle, const std::vector<std::string>& positiveLeafNameFilter=std::vector<std::string>());
/**
* Easy version of addBranchObserver() (see above).
* Examples of dbPathFromThisNode:
* "" -> this node
* "FOO:BAR" -> sub-branch "BAR" of "FOO" which is a sub-branch of this node
*/
void addBranchObserver( ICDBDBBranchObserverHandle *handle, const char *dbPathFromThisNode, const char **positiveLeafNameFilter=NULL, uint positiveLeafNameFilterSize=0);
// Remove observer from all sub-leaves
bool removeBranchObserver(IPropertyObserver* observer);
/// Easy version of removeBranchObserver() (see above and see easy version of addBranchObserver())
void removeBranchObserver(const char *dbPathFromThisNode, ICDBNode::IPropertyObserver& observer);
virtual bool isLeaf() const { return false; }
// mark this branch and parent branch as 'modified'. This is usually called by sub-leaves
void onLeafChanged( TStringId leafName );
/// Find a subnode at this level
ICDBNode * find (const std::string &nodeName);
protected:
typedef std::list< ICDBDBBranchObserverHandle* > TObserverHandleList;
CCDBNodeBranch *_Parent;
/// database subnodes not sorted
std::vector<ICDBNode*> _Nodes;
/// subnodes sorted by name
std::vector<ICDBNode*> _NodesByName;
// number of bits required to stock my children's ids
uint8 _IdBits : 7;
bool _Sorted : 1;
// observers for this node or branch
TObserverHandleList observerHandles;
/// called by clear
void removeAllBranchObserver();
#if NL_CDB_OPTIMIZE_PREDICT
CRefPtr<ICDBNode> _PredictNode;
#endif
};
}
#endif // CDB_BRANCH_H

@ -1,91 +0,0 @@
// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
// Copyright (C) 2010 Winch Gate Property Limited
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// 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/>.
#ifndef NL_CDB_CHECK_SUM_H
#define NL_CDB_CHECK_SUM_H
#include "types_nl.h"
#include <vector>
namespace NLMISC{
/**
* class implementing check sum for the client database
* these check sum can be used to ensure that linked properties have all been modified
* \author Nicolas Brigand
* \author Nevrax France
* \date 2002
*/
class CCDBCheckSum
{
public:
///constructor
CCDBCheckSum();
//clear the sum
void clear()
{
_Sum = 0;
};
///add an uint8 to the sum
void add(uint8 el);
///add a value to the check sum
template <class T>
void add(const T & el)
{
T value = el;
for (uint8 i=0; i< sizeof(T); i++)
{
uint8 tmp = (uint8)(value & 0xFF);
add(tmp);
value >>=8;
}
}
///add a vector to the sum
template <class T>
void addVector(const std::vector<T> & vect)
{
for (typename std::vector<T>::const_iterator it = vect.begin(); it != vect.end(); it++)
add(*it);
}
uint32 getSum()
{
return _Sum;
}
private:
///the checsum result
uint32 _Sum;
///the following values are used in the check algorithm
uint32 _Factor;
uint32 _Const1;
uint32 _Const2;
};
}
#endif // NL_CDB_CHECK_SUM_H
/* End of cdb_check_sum.h */

@ -1,264 +0,0 @@
// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
// Copyright (C) 2010 Winch Gate Property Limited
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// 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/>.
#ifndef CDB_LEAF_H
#define CDB_LEAF_H
#include "cdb.h"
#include "cdb_branch.h"
#include "time_nl.h"
#include "rgba.h"
namespace NLMISC{
/**
* Database node which contains a unique property
* \author Stephane Coutelas
* \author Nevrax France
* \date 2002
*/
class CCDBNodeLeaf : public ICDBNode
{
public:
// flush all observers calls for modified nodes
static void flushObserversCalls();
/// Return the value of the property.
inline sint64 getValue64() const { return _Property; }
/// Set the value of the property (set '_Changed' flag with 'true').
void setValue64 (sint64 prop);
inline sint32 getValue32() const { return (sint32)(_Property & 0xffffffff); }
void setValue32 (sint32 prop);
inline sint16 getValue16() const { return (sint16)(_Property & 0xffff); }
void setValue16 (sint16 prop);
inline sint8 getValue8() const { return (sint8)(_Property & 0xff); }
void setValue8 (sint8 prop);
inline bool getValueBool() const { return (_Property!=(sint64)0 ); }
void setValueBool (bool prop);
inline CRGBA getValueRGBA() const
{
CRGBA col;
col.R = (uint8)(_Property&0xff);
col.G = (uint8)((_Property>>8)&0xff);
col.B = (uint8)((_Property>>16)&0xff);
col.A = (uint8)((_Property>>24)&0xff);
return col;
}
void setValueRGBA (const CRGBA &color);
/// Return the value of the property before the database change
inline sint64 getOldValue64() const { return _oldProperty; }
inline sint32 getOldValue32() const { return (sint32)(_oldProperty & 0xffffffff); }
inline sint16 getOldValue16() const { return (sint16)(_oldProperty & 0xffff); }
inline sint8 getOldValue8() const { return (sint8)(_oldProperty & 0xff); }
inline bool getOldValueBool() const { return (_oldProperty!=(sint64)0 ); }
/// Return the type of the property.
inline const EPropType &type() const {return _Type;}
/// Set the property Type.
inline void type(const EPropType &t) {_Type = t;}
/// Return 'true' if the property changed since last call.
inline const bool &changed() const {return _Changed;}
/// Set the property flag to known if the property changed since last call.
inline void changed(const bool &c) {_Changed = c;}
/**
* Default constructor
*/
CCDBNodeLeaf(const std::string &name) : ICDBNode(name)
{
_Parent=0;
_Property = 0;
_oldProperty = 0;
_Type = UNKNOWN;
_Changed = false;
_LastChangeGC = 0;
}
/**
* Build the structure of the database from a file
* \param f is the stream
*/
void init( xmlNodePtr node, IProgressCallback &progressCallBack, bool mapBanks=false, CCDBBankHandler *bankHandler = NULL );
/**
* Get a node
* \param idx is the node index
*/
ICDBNode * getNode( uint16 idx );
/**
* Get a node . Create it if it does not exist yet
* \param id : the CTextId identifying the node
*/
ICDBNode * getNode (const CTextId& id, bool bCreate);
/**
* Get a node index
* \param node is a pointer to the node
*/
virtual bool getNodeIndex( ICDBNode* /* node */, uint& /* index */)
{
return false;
}
/**
* Save a backup of the database
* \param id is the text id of the property/grp
* \param f is the stream
*/
void write( CTextId& id, FILE * f);
/**
* Update the database from a stream coming from the FE
* \param f : the stream.
*/
void readDelta(TGameCycle gc, CBitMemStream & f );
/**
* Return the value of a property (the update flag is set to false)
* \param id is the text id of the property/grp
* \param name is the name of the property
* \return the structure of the property
*/
sint64 getProp( CTextId& id );
/**
* Set the value of a property (the update flag is set to true)
* \param id is the text id of the property/grp
* \param name is the name of the property
* \param value is the value of the property
* \return bool : 'false' if id is too long.
*/
bool setProp( CTextId& id, sint64 value );
/**
* Set the value of a property, only if gc>=_LastChangeGC
*/
bool setPropCheckGC(TGameCycle gc, sint64 value);
/// Reset all leaf data from this point
void resetData(TGameCycle gc, bool forceReset=false);
/**
* Clear the node and his children
*/
void clear();
// the parent node for a branch (NULL by default)
virtual void setParent(CCDBNodeBranch* parent) { _Parent=parent; }
//get the node parent
virtual CCDBNodeBranch *getParent()
{
return _Parent;
}
/// Count the leaves
virtual uint countLeaves() const
{
return 1;
}
/// Find the leaf which count is specified (if found, the returned value is non-null and count is 0)
virtual CCDBNodeLeaf *findLeafAtCount( uint& count )
{
if ( count == 0 )
return this;
else
{
--count;
return NULL;
}
}
/// Debug purpose
virtual void display(const std::string &prefix);
virtual bool isLeaf() const { return true; }
/**
* add an observer to a property
* \param observer : pointer to an observer
* \param id text id identifying the property
* \return false if the node doen t exist
*/
virtual bool addObserver(IPropertyObserver* observer, CTextId& id);
/** remove an obsever
* \param observer : pointer to an observer
* \param id text id identifying the property
* \return false if the node or observer doesn t exist
*/
virtual bool removeObserver(IPropertyObserver* observer, CTextId& id);
/// get the last change GameCycle (server tick) for this value
TGameCycle getLastChangeGC() const {return _LastChangeGC;}
private:
CCDBNodeBranch * _Parent;
/// property value
sint64 _Property;
sint64 _oldProperty;
/// property type
EPropType _Type;
/// true if this value has changed
bool _Changed;
/// gamecycle (servertick) of the last change for this value.
/// change are made in readDelta only for change >= _LastChangeGC
TGameCycle _LastChangeGC;
/// observers to call when the value really change
std::vector<IPropertyObserver*> _Observers;
private:
void notifyObservers();
};
////////////////////
// INLINE MEMBERS //
////////////////////
}
#endif // CDB_LEAF_H

@ -1,112 +0,0 @@
// NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
// Copyright (C) 2010 Winch Gate Property Limited
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// 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/>.
#ifndef NL_SHA1_H
#define NL_SHA1_H
#include "types_nl.h"
#include "common.h"
#include "stream.h"
#include <string>
struct CHashKey
{
CHashKey () { HashKeyString.resize(20); }
CHashKey (const unsigned char Message_Digest[20])
{
HashKeyString.clear();
for(sint i = 0; i < 20 ; ++i)
{
HashKeyString += Message_Digest[i];
}
}
// Init the hash key with a binary key format or a text key format
CHashKey (const std::string &str)
{
if (str.size() == 20)
{
HashKeyString = str;
}
else if (str.size() == 40)
{
HashKeyString.clear();
for(uint i = 0; i < str.size(); i+=2)
{
uint8 val;
if (isdigit((unsigned char)str[i+0]))
val = str[i+0]-'0';
else
val = 10+tolower(str[i+0])-'a';
val *= 16;
if (isdigit((unsigned char)str[i+1]))
val += str[i+1]-'0';
else
val += 10+tolower(str[i+1])-'a';
HashKeyString += val;
}
}
else
{
nlwarning ("SHA: Bad hash key format");
}
}
// return the hash key in text format
std::string toString() const
{
std::string str;
for (uint i = 0; i < HashKeyString.size(); i++)
{
str += NLMISC::toString("%02X", (uint8)(HashKeyString[i]));
}
return str;
}
// serial the hash key in binary format
void serial (NLMISC::IStream &stream)
{
stream.serial (HashKeyString);
}
bool operator==(const CHashKey &v) const
{
return HashKeyString == v.HashKeyString;
}
// this string is always 20 bytes long and is the code in binary format (can't print it directly)
std::string HashKeyString;
};
inline bool operator <(const struct CHashKey &a,const struct CHashKey &b)
{
return a.HashKeyString<b.HashKeyString;
}
// This function get a filename (it works with big files) and returns his SHA hash key
// when forcePath is true, it doesn't use NLMISC::lookup
CHashKey getSHA1(const std::string &filename, bool forcePath = false);
// This function get a buffer with size and returns his SHA hash key
CHashKey getSHA1(const uint8 *buffer, uint32 size);
// This function get a buffer and key with size and returns his HMAC-SHA1 hash key
CHashKey getHMacSHA1(const uint8 *text, uint32 text_len, const uint8 *key, uint32 key_len);
#endif // NL_SHA1_H

@ -1,362 +0,0 @@
// NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
// Copyright (C) 2010 Winch Gate Property Limited
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// 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/>.
#ifndef NL_STRING_COMMON_H
#define NL_STRING_COMMON_H
#include "types_nl.h"
#include <cstdio>
#include <cstring>
#include <cstdarg>
#include <errno.h>
namespace NLMISC
{
// get a string and add \r before \n if necessary
std::string addSlashR (const std::string &str);
std::string removeSlashR (const std::string &str);
/**
* \def MaxCStringSize
*
* The maximum size allowed for C string (zero terminated string) buffer.
* This value is used when we have to create a standard C string buffer and we don't know exactly the final size of the string.
*/
const int MaxCStringSize = 2048;
/**
* \def NLMISC_CONVERT_VARGS(dest,format)
*
* This macro converts variable arguments into C string (zero terminated string).
* This function takes care to avoid buffer overflow.
*
* Example:
*\code
void MyFunction(const char *format, ...)
{
string str;
NLMISC_CONVERT_VARGS (str, format, NLMISC::MaxCStringSize);
// str contains the result of the conversion
}
*\endcode
*
* \param _dest \c string or \c char* that contains the result of the convertion
* \param _format format of the string, it must be the last argument before the \c '...'
* \param _size size of the buffer that will contain the C string
*/
#define NLMISC_CONVERT_VARGS(_dest,_format,_size) \
char _cstring[_size]; \
va_list _args; \
va_start (_args, _format); \
int _res = vsnprintf (_cstring, _size-1, _format, _args); \
if (_res == -1 || _res == _size-1) \
{ \
_cstring[_size-1] = '\0'; \
} \
va_end (_args); \
_dest = _cstring
/** sMart sprintf function. This function do a sprintf and add a zero at the end of the buffer
* if there no enough room in the buffer.
*
* \param buffer a C string
* \param count Size of the buffer
* \param format of the string, it must be the last argument before the \c '...'
*/
sint smprintf( char *buffer, size_t count, const char *format, ... );
#ifdef NL_OS_WINDOWS
//
// These functions are needed by template system to failed the compilation if you pass bad type on nlinfo...
//
inline void _check(int /* a */) { }
inline void _check(unsigned int /* a */) { }
inline void _check(char /* a */) { }
inline void _check(unsigned char /* a */) { }
inline void _check(long /* a */) { }
inline void _check(unsigned long /* a */) { }
#ifdef NL_COMP_VC6
inline void _check(uint8 /* a */) { }
#endif // NL_COMP_VC6
inline void _check(sint8 /* a */) { }
inline void _check(uint16 /* a */) { }
inline void _check(sint16 /* a */) { }
#ifdef NL_COMP_VC6
inline void _check(uint32 /* a */) { }
inline void _check(sint32 /* a */) { }
#endif // NL_COMP_VC6
inline void _check(uint64 /* a */) { }
inline void _check(sint64 /* a */) { }
inline void _check(float /* a */) { }
inline void _check(double /* a */) { }
inline void _check(const char * /* a */) { }
inline void _check(const void * /* a */) { }
#define CHECK_TYPES(__a,__b) \
inline __a(const char *fmt) { __b(fmt); } \
template<class A> __a(const char *fmt, A a) { _check(a); __b(fmt, a); } \
template<class A, class B> __a(const char *fmt, A a, B b) { _check(a); _check(b); __b(fmt, a, b); } \
template<class A, class B, class C> __a(const char *fmt, A a, B b, C c) { _check(a); _check(b); _check(c); __b(fmt, a, b, c); } \
template<class A, class B, class C, class D> __a(const char *fmt, A a, B b, C c, D d) { _check(a); _check(b); _check(c); _check(d); __b(fmt, a, b, c, d); } \
template<class A, class B, class C, class D, class E> __a(const char *fmt, A a, B b, C c, D d, E e) { _check(a); _check(b); _check(c); _check(d); _check(e); __b(fmt, a, b, c, d, e); } \
template<class A, class B, class C, class D, class E, class F> __a(const char *fmt, A a, B b, C c, D d, E e, F f) { _check(a); _check(b); _check(c); _check(d); _check(e); _check(f); __b(fmt, a, b, c, d, e, f); } \
template<class A, class B, class C, class D, class E, class F, class G> __a(const char *fmt, A a, B b, C c, D d, E e, F f, G g) { _check(a); _check(b); _check(c); _check(d); _check(e); _check(f); _check(g); __b(fmt, a, b, c, d, e, f, g); } \
template<class A, class B, class C, class D, class E, class F, class G, class H> __a(const char *fmt, A a, B b, C c, D d, E e, F f, G g, H h) { _check(a); _check(b); _check(c); _check(d); _check(e); _check(f); _check(g); _check(h); __b(fmt, a, b, c, d, e, f, g, h); } \
template<class A, class B, class C, class D, class E, class F, class G, class H, class I> __a(const char *fmt, A a, B b, C c, D d, E e, F f, G g, H h, I i) { _check(a); _check(b); _check(c); _check(d); _check(e); _check(f); _check(g); _check(h); _check(i); __b(fmt, a, b, c, d, e, f, g, h, i); } \
template<class A, class B, class C, class D, class E, class F, class G, class H, class I, class J> __a(const char *fmt, A a, B b, C c, D d, E e, F f, G g, H h, I i, J j) { _check(a); _check(b); _check(c); _check(d); _check(e); _check(f); _check(g); _check(h); _check(i); _check(j); __b(fmt, a, b, c, d, e, f, g, h, i, j); } \
template<class A, class B, class C, class D, class E, class F, class G, class H, class I, class J, class K> __a(const char *fmt, A a, B b, C c, D d, E e, F f, G g, H h, I i, J j, K k) { _check(a); _check(b); _check(c); _check(d); _check(e); _check(f); _check(g); _check(h); _check(i); _check(j); _check(k); __b(fmt, a, b, c, d, e, f, g, h, i, j, k); } \
template<class A, class B, class C, class D, class E, class F, class G, class H, class I, class J, class K, class L> __a(const char *fmt, A a, B b, C c, D d, E e, F f, G g, H h, I i, J j, K k, L l) { _check(a); _check(b); _check(c); _check(d); _check(e); _check(f); _check(g); _check(h); _check(i); _check(j); _check(k); _check(l); __b(fmt, a, b, c, d, e, f, g, h, i, j, k, l); } \
template<class A, class B, class C, class D, class E, class F, class G, class H, class I, class J, class K, class L, class M> __a(const char *fmt, A a, B b, C c, D d, E e, F f, G g, H h, I i, J j, K k, L l, M m) { _check(a); _check(b); _check(c); _check(d); _check(e); _check(f); _check(g); _check(h); _check(i); _check(j); _check(k); _check(l); _check(m); __b(fmt, a, b, c, d, e, f, g, h, i, j, k, l, m); } \
template<class A, class B, class C, class D, class E, class F, class G, class H, class I, class J, class K, class L, class M, class N> __a(const char *fmt, A a, B b, C c, D d, E e, F f, G g, H h, I i, J j, K k, L l, M m, N n) { _check(a); _check(b); _check(c); _check(d); _check(e); _check(f); _check(g); _check(h); _check(i); _check(j); _check(k); _check(l); _check(m); _check(n); __b(fmt, a, b, c, d, e, f, g, h, i, j, k, l, m, n); } \
template<class A, class B, class C, class D, class E, class F, class G, class H, class I, class J, class K, class L, class M, class N, class O> __a(const char *fmt, A a, B b, C c, D d, E e, F f, G g, H h, I i, J j, K k, L l, M m, N n, O o) { _check(a); _check(b); _check(c); _check(d); _check(e); _check(f); _check(g); _check(h); _check(i); _check(j); _check(k); _check(l); _check(m); _check(n); _check(o); __b(fmt, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o); } \
template<class A, class B, class C, class D, class E, class F, class G, class H, class I, class J, class K, class L, class M, class N, class O, class P> __a(const char *fmt, A a, B b, C c, D d, E e, F f, G g, H h, I i, J j, K k, L l, M m, N n, O o, P p) { _check(a); _check(b); _check(c); _check(d); _check(e); _check(f); _check(g); _check(h); _check(i); _check(j); _check(k); _check(l); _check(m); _check(n); _check(o); _check(p); __b(fmt, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p); } \
template<class A, class B, class C, class D, class E, class F, class G, class H, class I, class J, class K, class L, class M, class N, class O, class P, class Q> __a(const char *fmt, A a, B b, C c, D d, E e, F f, G g, H h, I i, J j, K k, L l, M m, N n, O o, P p, Q q) { _check(a); _check(b); _check(c); _check(d); _check(e); _check(f); _check(g); _check(h); _check(i); _check(j); _check(k); _check(l); _check(m); _check(n); _check(o); _check(p); _check(q); __b(fmt, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q); } \
template<class A, class B, class C, class D, class E, class F, class G, class H, class I, class J, class K, class L, class M, class N, class O, class P, class Q, class R> __a(const char *fmt, A a, B b, C c, D d, E e, F f, G g, H h, I i, J j, K k, L l, M m, N n, O o, P p, Q q, R r) { _check(a); _check(b); _check(c); _check(d); _check(e); _check(f); _check(g); _check(h); _check(i); _check(j); _check(k); _check(l); _check(m); _check(n); _check(o); _check(p); _check(q); _check(r); __b(fmt, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r); } \
template<class A, class B, class C, class D, class E, class F, class G, class H, class I, class J, class K, class L, class M, class N, class O, class P, class Q, class R, class S> __a(const char *fmt, A a, B b, C c, D d, E e, F f, G g, H h, I i, J j, K k, L l, M m, N n, O o, P p, Q q, R r, S s) { _check(a); _check(b); _check(c); _check(d); _check(e); _check(f); _check(g); _check(h); _check(i); _check(j); _check(k); _check(l); _check(m); _check(n); _check(o); _check(p); _check(q); _check(r); _check(s); __b(fmt, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s); } \
template<class A, class B, class C, class D, class E, class F, class G, class H, class I, class J, class K, class L, class M, class N, class O, class P, class Q, class R, class S, class T> __a(const char *fmt, A a, B b, C c, D d, E e, F f, G g, H h, I i, J j, K k, L l, M m, N n, O o, P p, Q q, R r, S s, T t) { _check(a); _check(b); _check(c); _check(d); _check(e); _check(f); _check(g); _check(h); _check(i); _check(j); _check(k); _check(l); _check(m); _check(n); _check(o); _check(p); _check(q); _check(r); _check(s); _check(t); __b(fmt, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t); } \
template<class A, class B, class C, class D, class E, class F, class G, class H, class I, class J, class K, class L, class M, class N, class O, class P, class Q, class R, class S, class T, class U> __a(const char *fmt, A a, B b, C c, D d, E e, F f, G g, H h, I i, J j, K k, L l, M m, N n, O o, P p, Q q, R r, S s, T t, U u) { _check(a); _check(b); _check(c); _check(d); _check(e); _check(f); _check(g); _check(h); _check(i); _check(j); _check(k); _check(l); _check(m); _check(n); _check(o); _check(p); _check(q); _check(r); _check(s); _check(t); _check(u); __b(fmt, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u); } \
template<class A, class B, class C, class D, class E, class F, class G, class H, class I, class J, class K, class L, class M, class N, class O, class P, class Q, class R, class S, class T, class U, class V> __a(const char *fmt, A a, B b, C c, D d, E e, F f, G g, H h, I i, J j, K k, L l, M m, N n, O o, P p, Q q, R r, S s, T t, U u, V v) { _check(a); _check(b); _check(c); _check(d); _check(e); _check(f); _check(g); _check(h); _check(i); _check(j); _check(k); _check(l); _check(m); _check(n); _check(o); _check(p); _check(q); _check(r); _check(s); _check(t); _check(u); _check(v); __b(fmt, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v); } \
template<class A, class B, class C, class D, class E, class F, class G, class H, class I, class J, class K, class L, class M, class N, class O, class P, class Q, class R, class S, class T, class U, class V, class W> __a(const char *fmt, A a, B b, C c, D d, E e, F f, G g, H h, I i, J j, K k, L l, M m, N n, O o, P p, Q q, R r, S s, T t, U u, V v, W w) { _check(a); _check(b); _check(c); _check(d); _check(e); _check(f); _check(g); _check(h); _check(i); _check(j); _check(k); _check(l); _check(m); _check(n); _check(o); _check(p); _check(q); _check(r); _check(s); _check(t); _check(u); _check(v); _check(w); __b(fmt, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w); } \
template<class A, class B, class C, class D, class E, class F, class G, class H, class I, class J, class K, class L, class M, class N, class O, class P, class Q, class R, class S, class T, class U, class V, class W, class X> __a(const char *fmt, A a, B b, C c, D d, E e, F f, G g, H h, I i, J j, K k, L l, M m, N n, O o, P p, Q q, R r, S s, T t, U u, V v, W w, X x) { _check(a); _check(b); _check(c); _check(d); _check(e); _check(f); _check(g); _check(h); _check(i); _check(j); _check(k); _check(l); _check(m); _check(n); _check(o); _check(p); _check(q); _check(r); _check(s); _check(t); _check(u); _check(v); _check(w); _check(x); __b(fmt, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x); } \
template<class A, class B, class C, class D, class E, class F, class G, class H, class I, class J, class K, class L, class M, class N, class O, class P, class Q, class R, class S, class T, class U, class V, class W, class X, class Y> __a(const char *fmt, A a, B b, C c, D d, E e, F f, G g, H h, I i, J j, K k, L l, M m, N n, O o, P p, Q q, R r, S s, T t, U u, V v, W w, X x, Y y) { _check(a); _check(b); _check(c); _check(d); _check(e); _check(f); _check(g); _check(h); _check(i); _check(j); _check(k); _check(l); _check(m); _check(n); _check(o); _check(p); _check(q); _check(r); _check(s); _check(t); _check(u); _check(v); _check(w); _check(x); _check(y); __b(fmt, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y); } \
template<class A, class B, class C, class D, class E, class F, class G, class H, class I, class J, class K, class L, class M, class N, class O, class P, class Q, class R, class S, class T, class U, class V, class W, class X, class Y, class Z> __a(const char *fmt, A a, B b, C c, D d, E e, F f, G g, H h, I i, J j, K k, L l, M m, N n, O o, P p, Q q, R r, S s, T t, U u, V v, W w, X x, Y y, Z z) { _check(a); _check(b); _check(c); _check(d); _check(e); _check(f); _check(g); _check(h); _check(i); _check(j); _check(k); _check(l); _check(m); _check(n); _check(o); _check(p); _check(q); _check(r); _check(s); _check(t); _check(u); _check(v); _check(w); _check(x); _check(y); _check(z); __b(fmt, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z); }
#endif
#ifdef NL_OS_WINDOWS
inline std::string _toString(const char *format, ...)
#else
inline std::string toString(const char *format, ...)
#endif
{
std::string Result;
NLMISC_CONVERT_VARGS(Result, format, NLMISC::MaxCStringSize);
return Result;
}
#ifdef NL_OS_WINDOWS
CHECK_TYPES(std::string toString, return _toString)
#endif // NL_OS_WINDOWS
template<class T> std::string toStringPtr(const T *val) { return toString("%p", val); }
template<class T> std::string toStringEnum(const T &val) { return toString("%u", (uint32)val); }
/**
* Template Object toString.
* \param obj any object providing a "std::string toString()" method. The object doesn't have to derive from anything.
*
* the VC++ error "error C2228: left of '.toString' must have class/struct/union type" means you don't provide
* a toString() method to your object.
*/
template<class T> std::string toString(const T &obj)
{
return obj.toString();
}
//inline std::string toString(const char *val) { return toString("%s", val); }
inline std::string toString(const uint8 &val) { return toString("%hu", (uint16)val); }
inline std::string toString(const sint8 &val) { return toString("%hd", (sint16)val); }
inline std::string toString(const uint16 &val) { return toString("%hu", val); }
inline std::string toString(const sint16 &val) { return toString("%hd", val); }
inline std::string toString(const uint32 &val) { return toString("%u", val); }
inline std::string toString(const sint32 &val) { return toString("%d", val); }
inline std::string toString(const uint64 &val) { return toString("%" NL_I64 "u", val); }
inline std::string toString(const sint64 &val) { return toString("%" NL_I64 "d", val); }
#ifdef NL_COMP_GCC
# if GCC_VERSION == 40102
// error fix for size_t? gcc 4.1.2 requested this type instead of size_t ...
inline std::string toString(const long unsigned int &val)
{
#ifdef _LP64
return toString((uint64)val);
#else
return toString((uint32)val);
#endif
}
# endif
#endif
#if (SIZEOF_SIZE_T) == 8
inline std::string toString(const size_t &val) { return toString("%" NL_I64 "u", val); }
#else
#ifdef NL_OS_MAC
inline std::string toString(const size_t &val) { return toString("%u", val); }
#endif
#endif
inline std::string toString(const float &val) { return toString("%f", val); }
inline std::string toString(const double &val) { return toString("%lf", val); }
inline std::string toString(const bool &val) { return val ? "1":"0"; }
inline std::string toString(const std::string &val) { return val; }
// stl vectors of bool use bit reference and not real bools, so define the operator for bit reference
#ifdef NL_COMP_VC6
inline std::string toString(const uint &val) { return toString("%u", val); }
inline std::string toString(const sint &val) { return toString("%d", val); }
#endif // NL_COMP_VC6
template<class T>
bool fromString(const std::string &str, T &obj)
{
return obj.fromString(str);
}
inline bool fromString(const std::string &str, uint32 &val) { if (str.find('-') != std::string::npos) { val = 0; return false; } char *end; unsigned long v; errno = 0; v = strtoul(str.c_str(), &end, 10); if (errno || v > UINT_MAX || end == str.c_str()) { val = 0; return false; } else { val = (uint32)v; return true; } }
inline bool fromString(const std::string &str, sint32 &val) { char *end; long v; errno = 0; v = strtol(str.c_str(), &end, 10); if (errno || v > INT_MAX || v < INT_MIN || end == str.c_str()) { val = 0; return false; } else { val = (sint32)v; return true; } }
inline bool fromString(const std::string &str, uint8 &val) { char *end; long v; errno = 0; v = strtol(str.c_str(), &end, 10); if (errno || v > UCHAR_MAX || v < 0 || end == str.c_str()) { val = 0; return false; } else { val = (uint8)v; return true; } }
inline bool fromString(const std::string &str, sint8 &val) { char *end; long v; errno = 0; v = strtol(str.c_str(), &end, 10); if (errno || v > SCHAR_MAX || v < SCHAR_MIN || end == str.c_str()) { val = 0; return false; } else { val = (sint8)v; return true; } }
inline bool fromString(const std::string &str, uint16 &val) { char *end; long v; errno = 0; v = strtol(str.c_str(), &end, 10); if (errno || v > USHRT_MAX || v < 0 || end == str.c_str()) { val = 0; return false; } else { val = (uint16)v; return true; } }
inline bool fromString(const std::string &str, sint16 &val) { char *end; long v; errno = 0; v = strtol(str.c_str(), &end, 10); if (errno || v > SHRT_MAX || v < SHRT_MIN || end == str.c_str()) { val = 0; return false; } else { val = (sint16)v; return true; } }
inline bool fromString(const std::string &str, uint64 &val) { bool ret = sscanf(str.c_str(), "%" NL_I64 "u", &val) == 1; if (!ret) val = 0; return ret; }
inline bool fromString(const std::string &str, sint64 &val) { bool ret = sscanf(str.c_str(), "%" NL_I64 "d", &val) == 1; if (!ret) val = 0; return ret; }
inline bool fromString(const std::string &str, float &val) { bool ret = sscanf(str.c_str(), "%f", &val) == 1; if (!ret) val = 0.0f; return ret; }
inline bool fromString(const std::string &str, double &val) { bool ret = sscanf(str.c_str(), "%lf", &val) == 1; if (!ret) val = 0.0; return ret; }
// Fast string to bool, reliably defined for strings starting with 0, 1, t, T, f, F, y, Y, n, N, anything else is undefined.
// (str[0] == '1' || (str[0] & 0xD2) == 0x50)
// - Kaetemi
bool fromString(const std::string &str, bool &val);
inline bool fromString(const std::string &str, std::string &val) { val = str; return true; }
// stl vectors of bool use bit reference and not real bools, so define the operator for bit reference
#ifdef NL_COMP_VC6
inline bool fromString(const std::string &str, uint &val) { return sscanf(str.c_str(), "%u", &val) == 1; }
inline bool fromString(const std::string &str, sint &val) { return sscanf(str.c_str(), "%d", &val) == 1; }
#endif // NL_COMP_VC6
// Convert local codepage to UTF-8
// On Windows, the local codepage is undetermined
// On Linux, the local codepage is always UTF-8 (no-op)
std::string mbcsToUtf8(const char *str, size_t len = 0);
std::string mbcsToUtf8(const std::string &str);
// Convert wide codepage to UTF-8
// On Windows, the wide codepage is UTF-16
// On Linux, the wide codepage is UTF-32
std::string wideToUtf8(const wchar_t *str, size_t len = 0);
std::string wideToUtf8(const std::wstring &str);
// Convert UTF-8 to wide character set
std::wstring utf8ToWide(const char *str, size_t len = 0);
std::wstring utf8ToWide(const std::string &str);
// Convert UTF-8 to local multibyte character set
std::string utf8ToMbcs(const char *str, size_t len = 0);
std::string utf8ToMbcs(const std::string &str);
// Convert wide to local multibyte character set
std::string wideToMbcs(const wchar_t *str, size_t len = 0);
std::string wideToMbcs(const std::wstring &str);
// Convert local multibyte to wide character set
std::wstring mbcsToWide(const char *str, size_t len = 0);
std::wstring mbcsToWide(const std::string &str);
inline const char *asCStr(const char *str) { return str; }
inline const char *asCStr(const std::string &str) { return str.c_str(); }
inline const wchar_t *asCStr(const wchar_t *str) { return str; }
inline const wchar_t *asCStr(const std::wstring &str) { return str.c_str(); }
#if defined(NL_OS_WINDOWS)
#define nlUtf8ToMbcs(str) (NLMISC::utf8ToMbcs(str).c_str())
#define nlMbcsToUtf8(str) (NLMISC::mbcsToUtf8(str).c_str())
#else
#define nlUtf8ToMbcs(str) (NLMISC::asCStr(str))
#define nlMbcsToUtf8(str) (NLMISC::asCStr(str))
#endif
#define nlWideToUtf8(str) (NLMISC::wideToUtf8(str).c_str())
#define nlUtf8ToWide(str) (NLMISC::utf8ToWide(str).c_str())
#define nlWideToMbcs(str) (NLMISC::wideToMbcs(str).c_str())
#define nlMbcsToWide(str) (NLMISC::mbcsToWide(str).c_str())
// On Windows, tstring is either local multibyte or utf-16 wide
// On Linux, tstring is always utf-8
#if defined(NL_OS_WINDOWS) && (defined(UNICODE) || defined(_UNICODE))
typedef std::wstring tstring;
typedef wchar_t tchar;
inline std::string tStrToUtf8(const tchar *str) { return wideToUtf8((const wchar_t *)str); }
inline std::string tStrToUtf8(const tstring &str) { return wideToUtf8((const std::wstring &)str); }
inline std::wstring tStrToWide(const tchar *str) { return (const wchar_t *)str; }
inline std::wstring tStrToWide(const tstring &str) { return (const std::wstring &)str; }
inline std::string tStrToMbcs(const tchar *str) { return wideToMbcs((const wchar_t *)str); }
inline std::string tStrToMbcs(const tstring &str) { return wideToMbcs((const std::wstring &)str); }
#define nlTStrToUtf8(str) (NLMISC::tStrToUtf8(str).c_str())
#define nlTStrToWide(str) ((const wchar_t *)NLMISC::asCStr(str))
#define nlTStrToMbcs(str) (NLMISC::tStrToMbcs(str).c_str())
inline tstring utf8ToTStr(const char *str) {return (const tstring &)utf8ToWide(str); }
inline tstring utf8ToTStr(const std::string &str) { return (const tstring &)utf8ToWide(str); }
inline tstring wideToTStr(const wchar_t *str) { return (const tchar *)str; }
inline tstring wideToTStr(const std::wstring &str) { return (const tstring &)str; }
inline tstring mbcsToTStr(const char *str) { return (const tstring &)mbcsToWide(str); }
inline tstring mbcsToTStr(const std::string &str) { return (const tstring &)mbcsToWide(str); }
#define nlUtf8ToTStr(str) (NLMISC::utf8ToTStr(str).c_str())
#define nlWideToTStr(str) ((const tchar *)NLMISC::asCStr(str))
#define nlMbcsToTStr(str) (NLMISC::mbcsToTStr(str).c_str())
#else
typedef std::string tstring;
typedef char tchar;
inline std::string tStrToUtf8(const tchar *str) { return mbcsToUtf8((const char *)str); }
inline std::string tStrToUtf8(const tstring &str) { return mbcsToUtf8((const std::string &)str); }
inline std::wstring tStrToWide(const tchar *str) { return mbcsToWide((const char *)str); }
inline std::wstring tStrToWide(const tstring &str) { return mbcsToWide((const std::string &)str); }
inline std::string tStrToMbcs(const tchar *str) { return (const char *)str; }
inline std::string tStrToMbcs(const tstring &str) { return (const std::string &)str; }
#if defined(NL_OS_WINDOWS)
#define nlTStrToUtf8(str) (NLMISC::tStrToUtf8(str).c_str())
#else
#define nlTStrToUtf8(str) ((const char *)NLMISC::asCStr(str))
#endif
#define nlTStrToWide(str) (NLMISC::tStrToWide(str).c_str())
#define nlTStrToMbcs(str) ((const char *)NLMISC::asCStr(str))
inline tstring utf8ToTStr(const char *str) { return (const tstring &)utf8ToMbcs(str); }
inline tstring utf8ToTStr(const std::string &str) { return (const tstring &)utf8ToMbcs(str); }
inline tstring wideToTStr(const wchar_t *str) { return (const tstring &)wideToMbcs(str); }
inline tstring wideToTStr(const std::wstring &str) { return (const tstring &)wideToMbcs(str); }
inline tstring mbcsToTStr(const char *str) { return (const tchar *)str; }
inline tstring mbcsToTStr(const std::string &str) { return (const tstring &)str; }
#if defined(NL_OS_WINDOWS)
#define nlUtf8ToTStr(str) (NLMISC::utf8ToTStr(str).c_str())
#else
#define nlUtf8ToTStr(str) ((const tchar *)NLMISC::asCStr(str))
#endif
#define nlWideToTStr(str) (NLMISC::wideToTStr(str).c_str())
#define nlMbcsToTStr(str) ((const tchar *)NLMISC::asCStr(str))
#endif
} // NLMISC
#endif // NL_STRING_COMMON_H

@ -1,190 +0,0 @@
// NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
// Copyright (C) 2010 Winch Gate Property Limited
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// 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/>.
#ifndef STRING_MAPPER_H
#define STRING_MAPPER_H
#include "types_nl.h"
#include "stream.h"
#include "mutex.h"
#include <vector>
#include <set>
namespace NLMISC
{
// const string * as uint (the TStringId returned by CStringMapper is a pointer to a string object)
//#ifdef HAVE_X86_64
//typedef uint64 TStringId;
//#else
//typedef uint TStringId;
//#endif
typedef const std::string *TStringId;
// Traits for hash_map using CStringId
struct CStringIdHashMapTraits
{
enum { bucket_size = 4, min_buckets = 8 };
CStringIdHashMapTraits() { }
size_t operator() (const NLMISC::TStringId &stringId) const
{
return (size_t)stringId;
}
bool operator() (const NLMISC::TStringId &strId1, const NLMISC::TStringId &strId2) const
{
return (size_t)strId1 < (size_t)strId2;
}
};
/** A static class that map string to integer and vice-versa
* Each different string is tranformed into an unique integer identifier.
* If the same string is submited twice, the same id is returned.
* The class can also return the string associated with an id.
*
* \author Boris Boucher
* \author Nevrax France
* \date 2003
*/
class CStringMapper
{
class CCharComp
{
public:
bool operator()(std::string *x, std::string *y) const
{
return (*x) < (*y);
}
};
class CAutoFastMutex
{
CFastMutex *_Mutex;
public:
CAutoFastMutex(CFastMutex *mtx) : _Mutex(mtx) {_Mutex->enter();}
~CAutoFastMutex() {_Mutex->leave();}
};
// Local Data
std::set<std::string*,CCharComp> _StringTable;
std::string* _EmptyId;
CFastMutex _Mutex; // Must be thread-safe (Called by CPortal/CCluster, each of them called by CInstanceGroup)
// The 'singleton' for static methods
static CStringMapper _GlobalMapper;
// private constructor.
CStringMapper();
public:
~CStringMapper()
{
localClear();
}
/// Globaly map a string into a unique Id. ** This method IS Thread-Safe **
static TStringId map(const std::string &str) { return _GlobalMapper.localMap(str); }
/// Globaly unmap a string. ** This method IS Thread-Safe **
static const std::string &unmap(const TStringId &stringId) { return _GlobalMapper.localUnmap(stringId); }
/// Globaly helper to serial a string id. ** This method IS Thread-Safe **
static void serialString(NLMISC::IStream &f, TStringId &id) {_GlobalMapper.localSerialString(f, id);}
/// Return the global id for the empty string (helper function). NB: Works with every instance of CStringMapper
static TStringId emptyId() { return 0; }
// ** This method IS Thread-Safe **
static void clear() { _GlobalMapper.localClear(); }
/// Create a local mapper. You can dispose of it by deleting it.
static CStringMapper * createLocalMapper();
/// Localy map a string into a unique Id
TStringId localMap(const std::string &str);
/// Localy unmap a string
const std::string &localUnmap(const TStringId &stringId) { return (stringId==0)?*_EmptyId:*((std::string*)stringId); }
/// Localy helper to serial a string id
void localSerialString(NLMISC::IStream &f, TStringId &id);
void localClear();
};
// linear from 0 (0 is empty string) (The TSStringId returned by CStaticStringMapper
// is an index in the vector and begin at 0)
typedef uint TSStringId;
/**
* After endAdd you cannot add strings anymore or it will assert
* \author Matthieu Besson
* \author Nevrax France
* \date November 2003
*/
class CStaticStringMapper
{
std::map<std::string, TSStringId> _TempStringTable;
std::map<TSStringId, std::string> _TempIdTable;
uint32 _IdCounter;
char *_AllStrings;
std::vector<char*> _IdToStr;
bool _MemoryCompressed; // If false use the 2 maps
public:
CStaticStringMapper()
{
_IdCounter = 0;
_AllStrings = NULL;
_MemoryCompressed = false;
add("");
}
~CStaticStringMapper()
{
clear();
}
/// Globaly map a string into a unique Id
TSStringId add(const std::string &str);
// see if a string is already present in the map
bool isAdded(const std::string &str) const;
void memoryCompress();
// Uncompress the map.
void memoryUncompress();
/// Globaly unmap a string
const char * get(TSStringId stringId);
/// Return the global id for the empty string (helper function)
static TSStringId emptyId() { return 0; }
void clear();
uint32 getCount() { return _IdCounter; }
// helper serialize a string id as a string
void serial(NLMISC::IStream &f, TSStringId &strId);
// helper serialize a string id vector
void serial(NLMISC::IStream &f, std::vector<TSStringId> &strIdVect);
};
} //namespace NLMISC
#endif // STRING_MAPPER_H

@ -1,390 +0,0 @@
// NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
// Copyright (C) 2010 Winch Gate Property Limited
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// 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/>.
#ifndef NL_UCSTRING_H
#define NL_UCSTRING_H
#include "types_nl.h"
#include "debug.h"
#include <string>
/**
* \typedef ucstring
* An unicode string class (16 bits per character).
* Add features to convert and assign \c ucstring to \c string and \c string to \c ucstring.
*/
typedef std::basic_string<ucchar> ucstringbase;
class ucstring : public ucstringbase
{
public:
ucstring () {}
ucstring (const ucstringbase &str) : ucstringbase (str) {}
ucstring (const std::string &str) : ucstringbase ()
{
rawCopy(str);
}
~ucstring () {}
ucstring &operator= (ucchar c)
{
resize (1);
operator[](0) = c;
return *this;
}
ucstring &operator= (const char *str)
{
resize (strlen (str));
for (uint i = 0; i < strlen (str); i++)
{
operator[](i) = uint8(str[i]);
}
return *this;
}
ucstring &operator= (const std::string &str)
{
resize (str.size ());
for (uint i = 0; i < str.size (); i++)
{
operator[](i) = uint8(str[i]);
}
return *this;
}
ucstring &operator= (const ucstringbase &str)
{
ucstringbase::operator =(str);
return *this;
}
ucstring& operator= (const ucchar *str)
{
ucstringbase::operator =(str);
return *this;
}
ucstring &operator+= (ucchar c)
{
resize (size() + 1);
operator[](size()-1) = c;
return *this;
}
ucstring &operator+= (const char *str)
{
size_t s = size();
resize (s + strlen(str));
for (uint i = 0; i < strlen(str); i++)
{
operator[](s+i) = uint8(str[i]);
}
return *this;
}
ucstring &operator+= (const std::string &str)
{
size_t s = size();
resize (s + str.size());
for (uint i = 0; i < str.size(); i++)
{
operator[](s+i) = uint8(str[i]);
}
return *this;
}
ucstring &operator+= (const ucstringbase &str)
{
ucstringbase::operator +=(str);
return *this;
}
const ucchar *c_str() const
{
const ucchar *tmp = ucstringbase::c_str();
const_cast<ucchar*>(tmp)[size()] = 0;
return tmp;
}
/// Converts the controlled ucstring to a string str
void toString (std::string &str) const
{
str.resize (size ());
for (uint i = 0; i < str.size (); i++)
{
if (operator[](i) > 255)
str[i] = '?';
else
str[i] = (char) operator[](i);
}
}
/// Converts the controlled ucstring and returns the resulting string
std::string toString () const
{
std::string str;
toString(str);
return str;
}
/// Convert this ucstring (16bits char) into a utf8 string
std::string toUtf8() const
{
std::string res;
ucstring::const_iterator first(begin()), last(end());
for (; first != last; ++first)
{
//ucchar c = *first;
uint nbLoop = 0;
if (*first < 0x80)
res += char(*first);
else if (*first < 0x800)
{
ucchar c = *first;
c = c >> 6;
c = c & 0x1F;
res += char(c) | 0xC0;
nbLoop = 1;
}
else /*if (*first < 0x10000)*/
{
ucchar c = *first;
c = c >> 12;
c = c & 0x0F;
res += char(c) | 0xE0;
nbLoop = 2;
}
for (uint i=0; i<nbLoop; ++i)
{
ucchar c = *first;
c = c >> ((nbLoop - i - 1) * 6);
c = c & 0x3F;
res += char(c) | 0x80;
}
}
return res;
}
ucstring substr(size_type pos = 0, size_type n = npos) const
{
return ucstringbase::substr(pos, n);
}
// for luabind (can't bind to 'substr' else ...)
ucstring luabind_substr(size_type pos = 0, size_type n = npos) const
{
return ucstringbase::substr(pos, n);
}
/// Convert the utf8 string into this ucstring (16 bits char)
void fromUtf8(const std::string &stringUtf8)
{
// clear the string
erase();
uint8 c;
ucchar code;
sint iterations = 0;
std::string::const_iterator first(stringUtf8.begin()), last(stringUtf8.end());
for (; first != last; )
{
c = *first++;
code = c;
if ((code & 0xFE) == 0xFC)
{
code &= 0x01;
iterations = 5;
}
else if ((code & 0xFC) == 0xF8)
{
code &= 0x03;
iterations = 4;
}
else if ((code & 0xF8) == 0xF0)
{
code &= 0x07;
iterations = 3;
}
else if ((code & 0xF0) == 0xE0)
{
code &= 0x0F;
iterations = 2;
}
else if ((code & 0xE0) == 0xC0)
{
code &= 0x1F;
iterations = 1;
}
else if ((code & 0x80) == 0x80)
{
// If it's not a valid UTF8 string, just copy the line without utf8 conversion
rawCopy(stringUtf8);
return;
}
else
{
push_back(code);
iterations = 0;
}
if (iterations)
{
for (sint i = 0; i < iterations; i++)
{
if (first == last)
{
// If it's not a valid UTF8 string, just copy the line without utf8 conversion
rawCopy(stringUtf8);
return;
}
uint8 ch;
ch = *first ++;
if ((ch & 0xC0) != 0x80)
{
// If it's not a valid UTF8 string, just copy the line without utf8 conversion
rawCopy(stringUtf8);
return;
}
code <<= 6;
code |= (ucchar)(ch & 0x3F);
}
push_back(code);
}
}
}
static ucstring makeFromUtf8(const std::string &stringUtf8)
{
ucstring ret;
ret.fromUtf8(stringUtf8);
return ret;
}
private:
void rawCopy(const std::string &str)
{
// We need to convert the char into 8bits unsigned int before promotion to 16 bits
// otherwise, as char are signed on some compiler (MSCV for ex), the sign bit is extended to 16 bits.
resize(str.size());
std::string::const_iterator first(str.begin()), last(str.end());
iterator dest(begin());
for (;first != last; ++first, ++dest)
{
*dest = uint8(*first);
}
}
};
inline ucstring operator+(const ucstringbase &ucstr, ucchar c)
{
ucstring ret;
ret= ucstr;
ret+= c;
return ret;
}
inline ucstring operator+(const ucstringbase &ucstr, const char *c)
{
ucstring ret;
ret= ucstr;
ret+= c;
return ret;
}
inline ucstring operator+(const ucstringbase &ucstr, const std::string &c)
{
ucstring ret;
ret= ucstr;
ret+= c;
return ret;
}
inline ucstring operator+(ucchar c, const ucstringbase &ucstr)
{
ucstring ret;
ret= c;
ret += ucstr;
return ret;
}
inline ucstring operator+(const char *c, const ucstringbase &ucstr)
{
ucstring ret;
ret= c;
ret += ucstr;
return ret;
}
inline ucstring operator+(const std::string &c, const ucstringbase &ucstr)
{
ucstring ret;
ret= c;
ret += ucstr;
return ret;
}
namespace NLMISC
{
// Traits for hash_map using CEntityId
struct CUCStringHashMapTraits
{
enum { bucket_size = 4, min_buckets = 8 };
CUCStringHashMapTraits() { }
size_t operator() (const ucstring &id ) const
{
return id.size();
}
bool operator() (const ucstring &id1, const ucstring &id2) const
{
return id1 < id2;
}
};
/** Convert an unicode string in lower case.
* Characters with accent are converted in a lowercase character with accent
* \param a string or a char to transform to lower case
*/
ucstring toLower (const ucstring &str);
void toLower (ucchar *str);
ucchar toLower (ucchar c);
/** Convert an unicode string in upper case.
* Characters with accent are converted in a uppercase character without accent
* \param a string or a char to transform to upper case
*/
ucstring toUpper (const ucstring &str);
void toUpper (ucchar *str);
ucchar toUpper (ucchar c);
};
#endif // NL_UCSTRING_H

@ -1,596 +0,0 @@
// NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
// Copyright (C) 2010 Winch Gate Property Limited
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// 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/>.
#ifndef NL_SERVICE_H
#define NL_SERVICE_H
//
// Includes
//
#include "nel/misc/types_nl.h"
#include "nel/misc/config_file.h"
#include "nel/misc/entity_id.h"
#include "nel/misc/variable.h"
#include "nel/misc/command.h"
#include "nel/misc/entity_id.h"
#include "nel/misc/cpu_time_stat.h"
#include "nel/misc/sstring.h"
#include "unified_network.h"
#include <string>
#include <vector>
namespace NLMISC
{
class CWindowDisplayer;
}
#if defined(NL_OS_WINDOWS) && defined(_WINDOWS)
#ifndef WINAPI
#define WINAPI __stdcall
#endif
#ifndef APIENTRY
#define APIENTRY WINAPI
#endif
struct HINSTANCE__;
typedef struct HINSTANCE__ *HINSTANCE;
typedef char CHAR;
typedef wchar_t WCHAR;
typedef CHAR *LPSTR;
typedef WCHAR *LPWSTR;
#if defined(UNICODE) || defined(_UNICODE)
typedef LPWSTR LPTSTR;
#else
typedef LPSTR LPTSTR;
#endif
#endif
namespace NLNET
{
class CCallbackServer;
class IServiceUpdatable;
//
// Macros
//
/**
* The goal of this macro is to simplify the service creation, it creates the main body function.
*
* If you don't want to give a callback array, just put EmptyCallbackArray in the last argument
*
* Example:
*\code
// Create the Test Service class
class CTestService : public IService
{
public:
void init () { nlinfo("init()"); }
bool update () { nlinfo ("update();"); return true; }
void release () { nlinfo("release()"); }
};
// Create the main() function that create a test service instance and execute it.
// "TS" is the short service name and "test_service" is the long one.
// The name of the config file is based on the long name!
// EmptyCallbackArray means that you don't provide right now the callback
// the last 2 path are where is the config file is (directory) and where to log info (directory)
NLNET_SERVICE_MAIN(CTestService, "TS", "test_service", 0, EmptyCallbackArray, "", "");
*\endcode
*
* If you want the port to not be auto-assigned by the naming service, set the port to a number different than 0.
*
* Args used by service are always in lower case:
*
* -A followed by the path where to execute the service (it uses chdir())
* -B followed by the IP address where the naming service is
* -C followed by the path where we can find the config file
* -D followed by the client listening address of the frontend for the login system (FS only)
* -I to start the service iconified
* -L followed by the directory where we have to log
* -N followed by the alias name (used by the admin system)
* -P followed by the listen port (ListenAddress)
* -Q to make the service quit immediately after the first update
* -S followed by the shard Id (sint32) (WS only)
* -T followed by the IP address where the login service is (WS only)
* -W followed by the path where to save all shard data (SaveFilesDirectory)
* -Z[u] to just init the config file then return (used for test), use Zu to not release the service
*
*
*/
#if defined(NL_OS_WINDOWS) && defined(_WINDOWS)
#define NLNET_SERVICE_MAIN(__ServiceClassName, __ServiceShortName, __ServiceLongName, __ServicePort, __ServiceCallbackArray, __ConfigDir, __LogDir) \
\
int APIENTRY nltWinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow) \
{ \
NLMISC::CApplicationContext serviceContext; \
__ServiceClassName *scn = new __ServiceClassName; \
scn->setArgs (nlTStrToUtf8(lpCmdLine)); \
createDebug(NULL,!scn->haveLongArg("nolog"));\
scn->setCallbackArray (__ServiceCallbackArray, sizeof(__ServiceCallbackArray)/sizeof(__ServiceCallbackArray[0])); \
sint retval = scn->main (__ServiceShortName, __ServiceLongName, __ServicePort, __ConfigDir, __LogDir, __DATE__ " " __TIME__); \
delete scn; \
return retval; \
}
#else
#define NLNET_SERVICE_MAIN(__ServiceClassName, __ServiceShortName, __ServiceLongName, __ServicePort, __ServiceCallbackArray, __ConfigDir, __LogDir) \
\
int nltmain(int argc, const NLMISC::tchar **argv) \
{ \
NLMISC::CApplicationContext serviceContext; \
__ServiceClassName *scn = new __ServiceClassName; \
scn->setArgs (argc, argv); \
createDebug(NULL,!scn->haveLongArg("nolog"));\
scn->setCallbackArray (__ServiceCallbackArray, sizeof(__ServiceCallbackArray)/sizeof(__ServiceCallbackArray[0])); \
sint retval = scn->main (__ServiceShortName, __ServiceLongName, __ServicePort, __ConfigDir, __LogDir, __DATE__ " " __TIME__); \
delete scn; \
return retval; \
}
#endif
#define DEFAULT_SHARD_ID 666
//
// Typedefs
//
//typedef uint16 TServiceId;
/// Callback where you can return true for direct clearance, or false for later clearance.
typedef bool (*TRequestClosureClearanceCallback) ();
//
// Variables provided to application and unused in the NeL library itself.
//
extern TUnifiedCallbackItem EmptyCallbackArray[1];
//
// Classes
//
/**
* Base class for all network services.
* You must inherite from this class to create your own service. You must not
* create ctor and dtor but implement init() and release() methods.
* You have to create a global callback array called CallbackArray.
*
* \ref service_howto
*
* Temporary command line arguments :
* \li -n<AliasName>
*
* \author Vianney Lecroart
* \author Olivier Cado
* \author Nevrax France
* \date 2000
*/
class IService
{
public:
/// \name User overload methods. These methods can be overload by the user do handle init, update and release operation.
// @{
/** Called before the displayer is created, no displayer or network connection are built.
Use this callback to check some args and perform some command line based stuff */
virtual void commandStart () {}
/// Initializes the service (must be called before the first call to update())
virtual void init () {}
/// This function is called every "frame" (you must call init() before). It returns false if the service is stopped.
virtual bool update () { return true; }
/// Finalization. Release the service. For example, this function frees all allocations made in the init() function.
virtual void release () {}
//@}
/// \name get methods. These methods provide a way to read internal service variables.
// @{
/// Returns the instance of the service to access to methods/variables class
static IService *getInstance ();
/// Returns true if the service singleton has been initialized
static bool isServiceInitialized() { return _Instance != NULL; }
/// Returns the current service short name (ie: TS)
const std::string &getServiceShortName () const { return _ShortName; }
/// Returns the current service long name (ie: test_serivce)
const std::string &getServiceLongName () const { return _LongName; }
/// Returns the current service alias name setted by AES
const std::string &getServiceAliasName () const { return _AliasName; }
/// Returns the current service unified name that is alias/short-id or short-id if alias is empty
std::string getServiceUnifiedName () const;
/// Returns the service identifier
TServiceId getServiceId () const { return _SId; }
/// Return the host name of the host machine
const std::string &getHostName() const { return _HostName; }
/// Returns the status
sint getExitStatus () const { return _ExitStatus; }
/// Returns the date of launch of the service. Unit: see CTime::getSecondsSince1970()
uint32 getLaunchingDate () const;
/// Return true if this service don't use the NS (naming service)
bool getDontUseNS() const { return _DontUseNS; }
/// Return true if this service don't use the AES (admin executor service)
bool getDontUseAES() const { return _DontUseAES; }
/// Returns arguments of the program pass from the user to the program using parameters (ie: "myprog param1 param2")
const NLMISC::CVectorSString &getArgs () const { return _Args; }
/// Returns true if the argument if present in the command line (ie: haveArg('p') will return true if -p is in the command line)
bool haveArg (char argName) const;
/** Returns the parameter linked to an option
* getArg('p') will return toto if -ptoto is in the command line
* getArg('p') will return C:\Documents and Settings\toto.tmp if -p"C:\Documents and Settings\toto.tmp" is in the command line
* It'll thrown an Exception if the argName is not found
*/
std::string getArg (char argName) const;
/// return true if named long arg is present on the commandline
/// eg haveLongArg("toto") returns true if "--toto" or "--toto=xxx" can be found on commandline
bool haveLongArg (const char* argName) const;
/// returns the value associated with the given named argument
/// both "--toto=xxx" and "--toto xxx" are acceptable
/// quotes round arguments are stripped
std::string getLongArg (const char* argName) const;
/// Returns an uniq id for an entities on this service.
/*uint64 getEntityId (uint8 type)
{
return NLMISC::CEntityId::getNewEntityId( type ).getRawId();
}*/
/// Returns the recording state (don't needed if you use layer5)
CCallbackNetBase::TRecordingState getRecordingState() const { return _RecordingState; }
//@}
/// \name set methods. These methods provide a way to modify internal service variables.
// @{
/** Sets the status of the service, this status is return to the application. EXIT_SUCCESS is the default status
* You can set it to EXIT_FAILURE or any value you want. It's useful when you use the service in a script and you
* want to know the return value of the application to do the appropriate things.
*/
void setExitStatus (sint exitStatus) { _ExitStatus = exitStatus; }
/** Call this function if you want the service quits next loop. The code will be returned outside of the application.
* \warning If you set the code to 0, it ll NOT exit the service */
void exit (sint code = 0x10);
/** Selects timeout value in seconds for each update. You are absolutely certain that your update()
* function will not be called before this amount of time you set.
* If you set the update timeout value higher than 0, all messages in queues will be process until the time greater than the timeout user update().
* If you set the update timeout value to 0, all messages in queues will be process one time before calling the user update().
*
* The default value is 100 (100ms) or the value found in the config file (UpdateTimeout)
*/
void setUpdateTimeout (NLMISC::TTime timeout) { /*if (timeout>1.0) nlerror ("IServer::setUpdateTimeout is now a double in SECOND and not ms");*/ _UpdateTimeout = timeout; }
//@}
//@{
//@name Service status management methods
/// Push a new status on the status stack.
void setCurrentStatus(const std::string &status);
/// Remove a status from the status stack. If this status is at top of stack, the next status become the current status
void clearCurrentStatus(const std::string &status);
/// Add a tag in the status string
void addStatusTag(const std::string &statusTag);
/// Remove a tag from the status string
void removeStatusTag(const std::string &statusTag);
/// Get the current status with attached tags
std::string getFullStatus() const;
//@}
/// \name variables. These variables can be read/modified by the user.
// @{
NLMISC::CConfigFile ConfigFile;
// use to display result of command (on file and windows displayer) **without** filter
NLMISC::CLog CommandLog;
//@}
/// \name private methods. These methods are used by internal system but can't be put in private, don't use them.
// @{
/// This main is called by the macro (service5 says if we have to use layer5 or not)
sint main (const char *serviceShortName, const char *serviceLongName, uint16 servicePort, const char *configDir, const char *logDir, const char *compilationDate);
/// Sets the command line and init _Args variable. You must call this before calling main()
void setArgs (int argc, const char **argv);
/// Sets the command line and init _Args variable. You must call this before calling main()
void setArgs (int argc, const wchar_t **argv);
/// Sets the command line and init _Args variable. You must call this before calling main()
void setArgs (const char *args);
/// Sets the default callback array given from the macro
void setCallbackArray (TUnifiedCallbackItem *array, uint nbelem) { _CallbackArray = array; _CallbackArraySize = nbelem; }
/// Require to reset the hierarchical timer
void requireResetMeasures();
/// Ctor. You must not inherit ctor but overload init() function
IService ();
/// Dtor. You must not inherit dtor but overload release() function
virtual ~IService ();
//@}
//@{
/// \name Updatable are object that require an update at each service loop
/// Register an updatable interface
void registerUpdatable(IServiceUpdatable *updatable);
/// Unregister an updatable interface
void unregisterUpdatable(IServiceUpdatable *updatable);
//@}
/// The window displayer instance
NLMISC::CWindowDisplayer *WindowDisplayer;
/// Directory where to store files that the services will write but are the same for all shard instance (for example: packet_sheets)
/// Use .toString() to access to the value
NLMISC::CVariable<std::string> WriteFilesDirectory;
/// Directory where to store files that the services will write during the exploitation of the game (for example: player backup, string cache)
/// Use .toString() to access to the value
NLMISC::CVariable<std::string> SaveFilesDirectory;
/// If true (default), the provided SaveFilesDirectory will be converted to a full path (ex: "saves" -> "/home/dir/saves")
NLMISC::CVariable<bool> ConvertSavesFilesDirectoryToFullPath;
/** You can provide a callback interface (only one) that will be called if any of the directory variables
* (WriteFilesDirectory, SaveFilesDirectory, ConfigDirectory, LogDirectory, RunningDirectory) is changed
* (also called for the first setting read from the .cfg file). Default is NULL.
*/
void setDirectoryChangeCallback( NLMISC::IVariableChangedCallback *cbi ) { _DirectoryChangedCBI = cbi; }
void setVersion (const std::string &version) { Version = version; }
uint16 getPort() { return ListeningPort; }
// Warning: can take a moment to be received from the WS. The default value (when not received yet) is DEFAULT_SHARD_ID.
uint32 getShardId() const { return _ShardId; }
const NLMISC::CCPUTimeStat& getCPUUsageStats() const { return _CPUUsageStats; }
/// Allow the service to return a status string with important value
virtual std::string getServiceStatusString() const;
/**
* If your service needs a delay when it is asked to quit, provide a callback here (optional).
* Then, when the service will be asked to quit, this callback will be called. Then you can
* either return true to allow immediate closure, or false to delay the closure. The closure
* will then happen after you call clearForClosure().
*
* If you don't provide a callback here, or if you call with NULL, the service will exit
* immediately when asked to quit.
*/
void setClosureClearanceCallback( TRequestClosureClearanceCallback cb ) { _RequestClosureClearanceCallback = cb; }
/**
* If using clearance for closure (see setClosureClearanceCallback()), you can call this method
* to allow the service to quit. If calling it while your callback has not be called yet, the
* callback will be bypassed and the service will quit immediately when asked to quit. If calling it
* after you callback was called (and you returned false), the service will quit shortly.
*/
void clearForClosure() { _ClosureClearanceStatus = CCClearedForClosure; }
/** Set the shard id (by the user code), when known before IService receives it by the WS).
* If a non-default value is already set and different than shardId => nlerror.
* If later IService receives a different value from the WS => nlerror.
*/
void anticipateShardId( uint32 shardId );
private:
/// \name methods. These methods are used by internal system.
// @{
/// Changes the recording state (use if you know what you are doing)
void setRecordingState( CCallbackNetBase::TRecordingState rec ) { _RecordingState = rec; }
/** Set the shard id (received from the WS). See also anticipateShardId().
*/
void setShardId( uint32 shardId );
//@}
/// \name variables. These variables are used by the internal system.
// @{
/// Array of arguments pass from the command line
NLMISC::CVectorSString _Args;
/// Host name of the host machine that run the service
std::string _HostName;
/// Listening port of this service
NLMISC::CVariable<uint16> ListeningPort;
/// Recording state
CCallbackNetBase::TRecordingState _RecordingState;
/// Current service name sets by the actual service when declaring NLNET_SERVICE_MAIN
std::string _ShortName; // ie: "NS"
std::string _LongName; // ie: "naming_service"
std::string _AliasName; // this name is initialized by the admin executor service via the args
/// Instance of this service (singleton)
static IService *_Instance;
/// Select timeout value in milliseconds between to call of user update()
NLMISC::TTime _UpdateTimeout;
/// the service id of this sevice
TServiceId _SId;
/// the exit status of this service (the status is returned by the service at the release time)
sint _ExitStatus;
/// true if the service initialisation is passed
bool _Initialized;
/// The directory where the configfile is
NLMISC::CVariable<std::string> ConfigDirectory;
/// The directory where the logfiles are
NLMISC::CVariable<std::string> LogDirectory;
/// The directory where the service is running
NLMISC::CVariable<std::string> RunningDirectory;
NLMISC::CVariable<std::string> Version;
TUnifiedCallbackItem *_CallbackArray;
uint _CallbackArraySize;
/// true if the service don't use the naming service
bool _DontUseNS;
/// true if the service don't use the admin executor service
bool _DontUseAES;
/// Require to reset the hierarchical timer
bool _ResetMeasures;
/// Shard Id
uint32 _ShardId;
/// CPU usage stats
NLMISC::CCPUTimeStat _CPUUsageStats;
/// Registered updatable interface
std::set<IServiceUpdatable*> _Updatables;
//@{
//@name Service running status management
/// The status stack is used to display the most recent set status.
std::vector<std::string> _ServiceStatusStack;
/// The status tags. All added tags are displayed.
std::set<std::string> _ServiveStatusTags;
//@}
enum TClosureClearanceStatus { CCMustRequestClearance, CCWaitingForClearance, CCClearedForClosure, CCCallbackThenClose=256 };
/// Closure clearance state (either CCMustRequestClearance, CCWaitingForClearance, CCClearedForClosure or CCCallbackThenClose + any other as a backup value)
uint _ClosureClearanceStatus;
/// Closure clearance callback (NULL if no closure clearance required)
TRequestClosureClearanceCallback _RequestClosureClearanceCallback;
/// Directory changed callback
NLMISC::IVariableChangedCallback* _DirectoryChangedCBI;
friend void serviceGetView (uint32 rid, const std::string &rawvarpath, std::vector<std::string> &vara, std::vector<std::string> &vala);
friend void cbAESConnection (const std::string &serviceName, TServiceId sid, void *arg);
friend struct nel_serviceInfoClass;
friend struct nel_getWinDisplayerInfoClass;
friend void cbDirectoryChanged (NLMISC::IVariable &var);
friend void cbReceiveShardId (NLNET::CMessage& msgin, const std::string &serviceName, TServiceId serviceId);
NLMISC_CATEGORISED_DYNVARIABLE_FRIEND(nel, State);
};
/** Interface class for object that need an update call during each service loop.
*/
class IServiceUpdatable
{
public:
IServiceUpdatable()
{
if (IService::isServiceInitialized())
{
IService::getInstance()->registerUpdatable(this);
}
else
{
nlwarning("IServiceUpdatable : IService is not initialized, IUpdatable will not be called");
}
}
virtual ~IServiceUpdatable()
{
if (IService::isServiceInitialized())
{
IService *service = IService::getInstance();
service->unregisterUpdatable(this);
}
}
/// implemente this virtual in you derived class
virtual void serviceLoopUpdate() =0;
};
inline IService *IService::getInstance()
{
if (_Instance == NULL)
{
/* the nel context MUST be initialised */
nlassertex(NLMISC::INelContext::isContextInitialised(), ("You are trying to access a safe singleton without having initialized a NeL context. The simplest correction is to add 'NLMISC::CApplicationContext myApplicationContext;' at the very beginning of your application."));
// try to retrieve the safe singleton pointer
_Instance = reinterpret_cast<IService*>(NLMISC::INelContext::getInstance().getSingletonPointer("IService"));
}
return _Instance;
}
}; // NLNET
#endif // NL_SERVICE_H
/* End of service.h */

@ -1,111 +0,0 @@
/**
* \file audio_decoder_vorbis.h
* \brief CAudioDecoderVorbis
* \date 2012-04-11 09:35GMT
* \author Jan Boon (Kaetemi)
* CAudioDecoderVorbis
*/
/*
* Copyright (C) 2008-2012 by authors
*
* This file is part of RYZOM CORE.
* RYZOM CORE is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* RYZOM CORE is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public
* License along with RYZOM CORE. If not, see
* <http://www.gnu.org/licenses/>.
*/
#ifndef NLSOUND_AUDIO_DECODER_VORBIS_H
#define NLSOUND_AUDIO_DECODER_VORBIS_H
#include <nel/misc/types_nl.h>
// STL includes
// 3rd Party includes
#ifdef NL_OS_WINDOWS
# pragma warning( push )
# pragma warning( disable : 4244 )
#endif
#include <vorbis/vorbisfile.h>
#ifdef NL_OS_WINDOWS
# pragma warning( pop )
#endif
// NeL includes
#include <nel/sound/audio_decoder.h>
// Project includes
namespace NLSOUND {
/**
* \brief CAudioDecoderVorbis
* \date 2008-08-30 11:38GMT
* \author Jan Boon (Kaetemi)
* CAudioDecoderVorbis
* Create trough IAudioDecoder, type "ogg"
*/
class CAudioDecoderVorbis : public IAudioDecoder
{
protected:
// outside pointers
NLMISC::IStream *_Stream;
// pointers
// instances
OggVorbis_File _OggVorbisFile;
bool _Loop;
bool _IsMusicEnded;
sint32 _StreamOffset;
sint32 _StreamSize;
public:
CAudioDecoderVorbis(NLMISC::IStream *stream, bool loop);
virtual ~CAudioDecoderVorbis();
inline NLMISC::IStream *getStream() { return _Stream; }
inline sint32 getStreamSize() { return _StreamSize; }
inline sint32 getStreamOffset() { return _StreamOffset; }
/// Get information on a music file (only artist and title at the moment).
static bool getInfo(NLMISC::IStream *stream, std::string &artist, std::string &title, float &length);
/// Get how many bytes the music buffer requires for output minimum.
virtual uint32 getRequiredBytes();
/// Get an amount of bytes between minimum and maximum (can be lower than minimum if at end).
virtual uint32 getNextBytes(uint8 *buffer, uint32 minimum, uint32 maximum);
/// Get the amount of channels (2 is stereo) in output.
virtual uint8 getChannels();
/// Get the samples per second (often 44100) in output.
virtual uint getSamplesPerSec();
/// Get the bits per sample (often 16) in output.
virtual uint8 getBitsPerSample();
/// Get if the music has ended playing (never true if loop).
virtual bool isMusicEnded();
/// Get the total time in seconds.
virtual float getLength();
/// Set looping
virtual void setLooping(bool loop);
}; /* class CAudioDecoderVorbis */
} /* namespace NLSOUND */
#endif /* #ifndef NLSOUND_AUDIO_DECODER_VORBIS_H */
/* end of file */

@ -1,66 +0,0 @@
/**
* \file containers.h
* \brief CContainers
* \date 2012-04-10 13:57GMT
* \author Unknown (Unknown)
* CContainers
*/
/*
* Copyright (C) 2012 by authors
*
* This file is part of RYZOM CORE.
* RYZOM CORE is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* RYZOM CORE is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public
* License along with RYZOM CORE. If not, see
* <http://www.gnu.org/licenses/>.
*/
#ifndef NLSOUND_CONTAINERS_H
#define NLSOUND_CONTAINERS_H
#include <nel/misc/types_nl.h>
// STL includes
// NeL includes
// Project includes
namespace NLSOUND {
class CSourceCommon;
/// Hasher functor for hashed container with pointer key.
template <class Pointer>
struct THashPtr : public std::unary_function<const Pointer &, size_t>
{
enum { bucket_size = 4, min_buckets = 8, };
size_t operator () (const Pointer &ptr) const
{
//CHashSet<uint>::hasher h;
// transtype the pointer into int then hash it
//return h.operator()(uint(uintptr_t(ptr)));
return (size_t)(uintptr_t)ptr;
}
inline bool operator() (const Pointer &ptr1, const Pointer &ptr2) const
{
// delegate the work to someone else as well?
return (uintptr_t)ptr1 < (uintptr_t)ptr2;
}
};
typedef CHashSet<CSourceCommon*, THashPtr<CSourceCommon*> > TSourceContainer;
} /* namespace NLSOUND */
#endif /* #ifndef NLSOUND_CONTAINERS_H */
/* end of file */

@ -1,102 +0,0 @@
/**
* \file group_controller.h
* \brief CGroupController
* \date 2012-04-10 09:29GMT
* \author Jan Boon (Kaetemi)
* CGroupController
*/
/*
* Copyright (C) 2012 by authors
*
* This file is part of RYZOM CORE.
* RYZOM CORE is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* RYZOM CORE is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public
* License along with RYZOM CORE. If not, see
* <http://www.gnu.org/licenses/>.
*/
#ifndef NLSOUND_GROUP_CONTROLLER_H
#define NLSOUND_GROUP_CONTROLLER_H
#include <nel/misc/types_nl.h>
// STL includes
#include <string>
#include <map>
// NeL includes
#include <nel/misc/common.h>
#include <nel/sound/u_group_controller.h>
#include <nel/sound/containers.h>
// Project includes
namespace NLSOUND {
class CGroupControllerRoot;
/**
* \brief CGroupController
* \date 2012-04-10 09:29GMT
* \author Jan Boon (Kaetemi)
* CGroupController
*/
class CGroupController : public UGroupController
{
public:
friend class CGroupControllerRoot;
private:
CGroupController *m_Parent;
std::map<std::string, CGroupController *> m_Children;
/// Gain as set by the interface
float m_Gain;
/// Gain including parent gain
float m_FinalGain;
int m_NbSourcesInclChild;
TSourceContainer m_Sources;
public:
CGroupController(CGroupController *parent);
/// \name UGroupController
//@{
virtual void setGain(float gain) { NLMISC::clamp(gain, 0.0f, 1.0f); if (m_Gain != gain) { m_Gain = gain; updateSourceGain(); } }
virtual float getGain() { return m_Gain; }
//@}
inline float getFinalGain() const { return m_FinalGain; }
void addSource(CSourceCommon *source);
void removeSource(CSourceCommon *source);
virtual std::string getPath();
protected:
virtual ~CGroupController(); // subnodes can only be deleted by the root
private:
inline float calculateTotalGain() { return m_Gain; }
virtual void calculateFinalGain();
virtual void increaseSources();
virtual void decreaseSources();
void updateSourceGain();
}; /* class CGroupController */
} /* namespace NLSOUND */
#endif /* #ifndef NLSOUND_GROUP_CONTROLLER_H */
/* end of file */

@ -1,70 +0,0 @@
/**
* \file group_controller_root.h
* \brief CGroupControllerRoot
* \date 2012-04-10 09:44GMT
* \author Jan Boon (Kaetemi)
* CGroupControllerRoot
*/
/*
* Copyright (C) 2012 by authors
*
* This file is part of RYZOM CORE.
* RYZOM CORE is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* RYZOM CORE is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public
* License along with RYZOM CORE. If not, see
* <http://www.gnu.org/licenses/>.
*/
#ifndef NLSOUND_GROUP_CONTROLLER_ROOT_H
#define NLSOUND_GROUP_CONTROLLER_ROOT_H
#include <nel/misc/types_nl.h>
// STL includes
// NeL includes
#include <nel/misc/singleton.h>
// Project includes
#include <nel/sound/group_controller.h>
namespace NLSOUND {
/**
* \brief CGroupControllerRoot
* \date 2012-04-10 09:44GMT
* \author Jan Boon (Kaetemi)
* CGroupControllerRoot
*/
class CGroupControllerRoot : public CGroupController, public NLMISC::CManualSingleton<CGroupControllerRoot>
{
public:
CGroupControllerRoot();
virtual ~CGroupControllerRoot();
/// Gets the group controller in a certain path with separator '/', if it doesn't exist yet it will be created.
CGroupController *getGroupController(const std::string &path);
protected:
virtual std::string getPath();
virtual void calculateFinalGain();
virtual void increaseSources();
virtual void decreaseSources();
static bool isReservedName(const std::string &nodeName);
}; /* class CGroupControllerRoot */
} /* namespace NLSOUND */
#endif /* #ifndef NLSOUND_GROUP_CONTROLLER_ROOT_H */
/* end of file */

@ -1,174 +0,0 @@
// NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
// Copyright (C) 2010 Winch Gate Property Limited
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// 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/>.
#ifndef NL_SOUND_H
#define NL_SOUND_H
#include "nel/misc/types_nl.h"
#include "nel/misc/stream.h"
#include "nel/misc/string_mapper.h"
#include "nel/sound/u_source.h"
#include "nel/georges/u_form_elm.h"
#include "nel/misc/sheet_id.h"
#include <string>
namespace NLSOUND {
class ISoundDriver;
class IBuffer;
class CSound;
class CGroupController;
/// Sound names hash map
//typedef std::hash_map<std::string, CSound*> TSoundMap;
typedef CHashMap<NLMISC::CSheetId, CSound*, NLMISC::CStringIdHashMapTraits> TSoundMap;
/// Sound names set (for ambiant sounds)
typedef std::set<CSound*> TSoundSet;
const double Sqrt12_2 = 1.0594630943592952645618252949463; // 2^1/12
/**
* A sound base class and its static properties
* \author Olivier Cado
* \author Nevrax France
* \date 2001
*/
class CSound
{
friend class CAudioMixerUser;
public:
/// Factory for specialized sound.
static CSound *createSound(const std::string &name, NLGEORGES::UFormElm& formRoot);
enum TSOUND_TYPE
{
SOUND_SIMPLE,
SOUND_COMPLEX,
SOUND_BACKGROUND,
SOUND_CONTEXT,
SOUND_MUSIC, // soon to be deprecated hopefully
SOUND_STREAM,
SOUND_STREAM_FILE
};
/// Constructor
CSound();
/// Destructor
virtual ~CSound();
/// Get the type of the sound.
virtual TSOUND_TYPE getSoundType() =0;
/// Load the sound parameters from georges' form
virtual void importForm(const std::string& filename, NLGEORGES::UFormElm& formRoot);
/// Return the looping state
bool getLooping() const { return _Looping; }
/// Return the gain
float getGain() const { return _Gain; }
/// Return the pitch
float getPitch() const { return _Pitch; }
/// Return the initial priority
TSoundPriority getPriority() const { return _Priority; }
/// Return true if cone is meaningful
// virtual bool isDetailed() const = 0; // not used?
/// Return the inner angle of the cone
float getConeInnerAngle() const { return _ConeInnerAngle; }
/// Return the outer angle of the cone
float getConeOuterAngle() const { return _ConeOuterAngle; }
/// Return the outer gain of the cone
float getConeOuterGain() const { return _ConeOuterGain; }
/// Return the direction vector.
const NLMISC::CVector &getDirectionVector()const { return _Direction;}
/// Return the length of the sound in ms
virtual uint32 getDuration() = 0;
/// Return the name (must be unique)
const NLMISC::CSheetId& getName() const { return _Name; }
/// Return the min distance (if detailed()) (default 1.0f if not implemented by sound type)
virtual float getMinDistance() const { return _MinDist; }
/// Return the max distance (if detailed())
virtual float getMaxDistance() const { return _MaxDist; }
inline CGroupController *getGroupController() const { return _GroupController; }
/// Set looping
void setLooping( bool looping ) { _Looping = looping; }
/// Used by the george sound plugin to check sound recursion (ie sound 'toto' use sound 'titi' witch also use sound 'toto' ...).
virtual void getSubSoundList(std::vector<std::pair<std::string, CSound*> > &subsounds) const =0;
virtual void serial(NLMISC::IStream &s);
NLMISC::TStringId getUserVarControler() { return _UserVarControler; }
bool operator<( const CSound& otherSound ) const
{
//return NLMISC::CStringMapper::unmap(_Name) < NLMISC::CStringMapper::unmap(otherSound._Name);
return _Name.toString() < otherSound._Name.toString();
}
protected:
// Static properties
float _Gain; // [0,1]
float _Pitch; // ]0,1]
TSoundPriority _Priority;
float _ConeInnerAngle, _ConeOuterAngle, _ConeOuterGain;
NLMISC::CVector _Direction;
bool _Looping;
/// Distance to where the source is played at maximum volume. Used for stealing physical sources.
/// Note: for compatibility reasons, _MinDist is not serial()'ized here in CSound. _MaxDist is.
float _MinDist;
/// Clipping distance for complex or backgound sound.
float _MaxDist;
// Sound name.
NLMISC::CSheetId _Name;
/// An optional user var controler.
NLMISC::TStringId _UserVarControler;
/// The group controller, always exists, owned by the audio mixer
CGroupController *_GroupController;
};
/**
* ESoundFileNotFound
*/
class ESoundFileNotFound : public NLMISC::Exception
{
public:
ESoundFileNotFound( const std::string filename ) :
NLMISC::Exception( (std::string("Sound file not found, or invalid file format: ")+filename).c_str() ) {}
};
} // NLSOUND
#endif // NL_SOUND_H
/* End of sound.h */

@ -1,100 +0,0 @@
/**
* \file source_music_channel.h
* \brief CSourceMusicChannel
* \date 2012-04-11 16:08GMT
* \author Jan Boon (Kaetemi)
* CSourceMusicChannel
*/
/*
* Copyright (C) 2012 by authors
*
* This file is part of RYZOM CORE.
* RYZOM CORE is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* RYZOM CORE is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public
* License along with RYZOM CORE. If not, see
* <http://www.gnu.org/licenses/>.
*/
#ifndef NLSOUND_SOURCE_MUSIC_CHANNEL_H
#define NLSOUND_SOURCE_MUSIC_CHANNEL_H
#include <nel/misc/types_nl.h>
// STL includes
// NeL includes
#include <nel/sound/driver/music_channel.h>
#include <nel/sound/stream_file_sound.h>
// Project includes
namespace NLSOUND {
class CStreamFileSource;
/**
* \brief CSourceMusicChannel
* \date 2012-04-11 16:08GMT
* \author Jan Boon (Kaetemi)
* CSourceMusicChannel
*/
class CSourceMusicChannel : public IMusicChannel
{
public:
CSourceMusicChannel();
virtual ~CSourceMusicChannel();
/** Play some music (.ogg etc...)
* NB: if an old music was played, it is first stop with stopMusic()
* \param filepath file path, CPath::lookup is done here
* \param async stream music from hard disk, preload in memory if false
* \param loop must be true to play the music in loop.
*/
virtual bool play(const std::string &filepath, bool async, bool loop);
/// Stop the music previously loaded and played (the Memory is also freed)
virtual void stop();
/// Makes sure any resources are freed, but keeps available for next play call
virtual void reset();
/// Pause the music previously loaded and played (the Memory is not freed)
virtual void pause();
/// Resume the music previously paused
virtual void resume();
/// Return true if a song is finished.
virtual bool isEnded();
/// Return true if the song is still loading asynchronously and hasn't started playing yet (false if not async), used to delay fading
virtual bool isLoadingAsync();
/// Return the total length (in second) of the music currently played
virtual float getLength();
/** Set the music volume (if any music played). (volume value inside [0 , 1]) (default: 1)
* NB: the volume of music is NOT affected by IListener::setGain()
*/
virtual void setVolume(float gain);
private:
CStreamFileSound m_Sound;
CStreamFileSource *m_Source;
float m_Gain;
}; /* class CSourceMusicChannel */
} /* namespace NLSOUND */
#endif /* #ifndef NLSOUND_SOURCE_MUSIC_CHANNEL_H */
/* end of file */

@ -1,94 +0,0 @@
/**
* \file stream_file_sound.h
* \brief CStreamFileSound
* \date 2012-04-11 09:57GMT
* \author Jan Boon (Kaetemi)
* CStreamFileSound
*/
/*
* Copyright (C) 2012 by authors
*
* This file is part of RYZOM CORE.
* RYZOM CORE is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* RYZOM CORE is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public
* License along with RYZOM CORE. If not, see
* <http://www.gnu.org/licenses/>.
*/
#ifndef NLSOUND_STREAM_FILE_SOUND_H
#define NLSOUND_STREAM_FILE_SOUND_H
#include <nel/misc/types_nl.h>
// STL includes
// NeL includes
// Project includes
#include <nel/sound/stream_sound.h>
namespace NLSOUND {
class CSourceMusicChannel;
/**
* \brief CStreamFileSound
* \date 2012-04-11 09:57GMT
* \author Jan Boon (Kaetemi)
* CStreamFileSound
*/
class CStreamFileSound : public CStreamSound
{
public:
friend class CSourceMusicChannel;
public:
CStreamFileSound();
virtual ~CStreamFileSound();
/// Get the type of the sound.
virtual TSOUND_TYPE getSoundType() { return SOUND_STREAM_FILE; }
/// Load the sound parameters from georges' form
virtual void importForm(const std::string& filename, NLGEORGES::UFormElm& formRoot);
/// Used by the george sound plugin to check sound recursion (ie sound 'toto' use sound 'titi' witch also use sound 'toto' ...).
virtual void getSubSoundList(std::vector<std::pair<std::string, CSound*> > &/* subsounds */) const { }
/// Serialize the sound data.
virtual void serial(NLMISC::IStream &s);
/// Return the length of the sound in ms
virtual uint32 getDuration() { return 0; }
inline bool getAsync() { return m_Async; }
inline const std::string &getFilePath() { return m_FilePath; }
private:
/// Used by CSourceMusicChannel to set the filePath and default settings on other parameters.
void setMusicFilePath(const std::string &filePath, bool async = true, bool loop = false);
private:
CStreamFileSound(const CStreamFileSound &);
CStreamFileSound &operator=(const CStreamFileSound &);
private:
bool m_Async;
std::string m_FilePath;
}; /* class CStreamFileSound */
} /* namespace NLSOUND */
#endif /* #ifndef NLSOUND_STREAM_FILE_SOUND_H */
/* end of file */

@ -1,111 +0,0 @@
/**
* \file stream_file_source.h
* \brief CStreamFileSource
* \date 2012-04-11 09:57GMT
* \author Jan Boon (Kaetemi)
* CStreamFileSource
*/
/*
* Copyright (C) 2012 by authors
*
* This file is part of RYZOM CORE.
* RYZOM CORE is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* RYZOM CORE is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public
* License along with RYZOM CORE. If not, see
* <http://www.gnu.org/licenses/>.
*/
#ifndef NLSOUND_STREAM_FILE_SOURCE_H
#define NLSOUND_STREAM_FILE_SOURCE_H
#include <nel/misc/types_nl.h>
// STL includes
// NeL includes
#include <nel/misc/thread.h>
// Project includes
#include <nel/sound/stream_source.h>
#include <nel/sound/stream_file_sound.h>
namespace NLSOUND {
class IAudioDecoder;
/**
* \brief CStreamFileSource
* \date 2012-04-11 09:57GMT
* \author Jan Boon (Kaetemi)
* CStreamFileSource
*/
class CStreamFileSource : public CStreamSource, private NLMISC::IRunnable
{
public:
CStreamFileSource(CStreamFileSound *streamFileSound = NULL, bool spawn = false, TSpawnEndCallback cb = 0, void *cbUserParam = 0, NL3D::CCluster *cluster = 0, CGroupController *groupController = NULL);
virtual ~CStreamFileSource();
/// Return the source type
TSOURCE_TYPE getType() const { return SOURCE_STREAM_FILE; }
/// \name Playback control
//@{
/// Play
virtual void play();
/// Stop playing
virtual void stop();
/// Get playing state. Return false even if the source has stopped on its own.
virtual bool isPlaying();
/// Pause (following legacy music channel implementation)
void pause();
/// Resume (following legacy music channel implementation)
void resume();
/// check if song ended (following legacy music channel implementation)
bool isEnded();
/// (following legacy music channel implementation)
float getLength();
/// check if still loading (following legacy music channel implementation)
bool isLoadingAsync();
//@}
/// \name Decoding thread
//@{
virtual void getName (std::string &result) const { result = "CStreamFileSource"; }
virtual void run();
//@}
// TODO: getTime
private:
bool prepareDecoder();
inline bool bufferMore(uint bytes);
private:
CStreamFileSource(const CStreamFileSource &);
CStreamFileSource &operator=(const CStreamFileSource &);
private:
inline CStreamFileSound *getStreamFileSound() { return static_cast<CStreamFileSound *>(m_StreamSound); }
NLMISC::IThread *m_Thread;
IAudioDecoder *m_AudioDecoder;
bool m_Paused;
bool m_DecodingEnded;
}; /* class CStreamFileSource */
} /* namespace NLSOUND */
#endif /* #ifndef NLSOUND_STREAM_FILE_SOURCE_H */
/* end of file */

@ -1,65 +0,0 @@
/**
* \file u_group_controller.h
* \brief UGroupController
* \date 2012-04-10 12:49GMT
* \author Jan Boon (Kaetemi)
* UGroupController
*/
/*
* Copyright (C) 2012 by authors
*
* This file is part of RYZOM CORE.
* RYZOM CORE is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* RYZOM CORE is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public
* License along with RYZOM CORE. If not, see
* <http://www.gnu.org/licenses/>.
*/
#ifndef NLSOUND_U_GROUP_CONTROLLER_H
#define NLSOUND_U_GROUP_CONTROLLER_H
#include <nel/misc/types_nl.h>
// STL includes
// NeL includes
// Project includes
#define NLSOUND_SHEET_V1_DEFAULT_SOUND_GROUP_CONTROLLER "sound:effects:game"
#define NLSOUND_SHEET_V1_DEFAULT_SOUND_MUSIC_GROUP_CONTROLLER "sound:music:game"
#define NLSOUND_SHEET_V1_DEFAULT_SOUND_STREAM_GROUP_CONTROLLER "sound:dialog:game"
namespace NLSOUND {
/**
* \brief UGroupController
* \date 2012-04-10 12:49GMT
* \author Jan Boon (Kaetemi)
* UGroupController
*/
class UGroupController
{
public:
virtual void setGain(float gain) = 0;
virtual float getGain() = 0;
protected:
virtual ~UGroupController() { }
}; /* class UGroupController */
} /* namespace NLSOUND */
#endif /* #ifndef NLSOUND_U_GROUP_CONTROLLER_H */
/* end of file */

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

Loading…
Cancel
Save