Compare commits

...

599 Commits

Author SHA1 Message Date
Nimetu fd4d3e0c34 Allow to change sound driver from ingame (ryzom/ryzomcore#63) 3 years ago
Nimetu f36450d815 Sound driver selection ui 3 years ago
Nimetu db526ef68b Runtime discovery of available sound drivers 3 years ago
Nimetu e1139b7e8d Fix moving fullscreen window between monitors 3 years ago
Nimetu 6727dc00ec Fix initial fullscreen window on OpenGL/Windows 3 years ago
Nimetu de1dba32a2 Fix opengl offscreen mode 3 years ago
Nimetu f13c49219e Disable text shadow on selection text (closes ryzom/ryzomcore#214 3 years ago
Nimetu ba003ee45d Use TARGET_COMPILE_DEFINITIONS to avoid double quotes 3 years ago
Nimetu d46de81fc6 Linking nel udp client sample without nel3d (fixes ryzom/ryzomcore#316) 3 years ago
Nimetu c0a3338029 Fixed cleanup of html downloads 3 years ago
Nimetu a087eacc22 Fix macOS build, cmake 3 years ago
Nimetu 5731ad6b3e Fix macOS build, utf8 fixes 3 years ago
Nimetu f4726d6964 Fix macOS build, missing include 3 years ago
Nimetu a356abdd7c Fix macOS build, _Nullable is reserved keyword 3 years ago
Nimetu ee219b7e5e
Fix utf8 encoding on sphrase info window 3 years ago
kaetemi 5c074ccc8e
Git diff doesn't seem to like the imported $Id$ keyword contents to be on the repo 3 years ago
Nuno e3c5606baf Better fix 3 years ago
Nuno 0063396369 Missing serialization (client can't load the icfg) 3 years ago
kaetemi 415fe11606
Also apply u16 idx fix to msg.xml 3 years ago
Nuno ccef75cdf3
Merge branch 'fixes' 3 years ago
Nuno 92186cf142
Merge branch 'fixes' 3 years ago
Nuno Gonçalves (Ulukyn) 05555015ea
Fixed: set uint16 in resell slotID 3 years ago
Nuno Gonçalves (Ulukyn) a8a0d9162e
Fix resell issue (use uint16 instead of uint8 for Index) 3 years ago
Nimetu 31a454b21d
Add ScreenShotDirectory entry to client.cfg 3 years ago
Meubli 4924b3563e
pets inventory transactions
- Enable Zig <-> Flat inventory transactions (move between)
- Enable Zig <-> Guild inventory transactions (move between)
3 years ago
Nuno 03b66c18d4
Remove CPath::memoryCompress() because break CPath::lockup() 3 years ago
kaetemi 8775656c3c
Find iconv debug library 3 years ago
kaetemi a9654bd0b4
Fix typo 3 years ago
kaetemi 3ec625265e
Merge remote-tracking branch 'origin/develop' into core4 3 years ago
kaetemi a001eac5ad
Find debug lua library 3 years ago
kaetemi 56008be890
Include cacert.pem with the dev game data in the repo 3 years ago
kaetemi 7127f9f5f4
Properly follow StartupVerify setting 3 years ago
kaetemi ca9729b2a0
Native windows CA certs are causing issues in libcurl with Letsencrypt certificates, so disable them for now 3 years ago
kaetemi 671d8bb286
Show more useful error on login failure 3 years ago
kaetemi 939836b5bb
Show more useful error on login failure 3 years ago
kaetemi 088171a589
Proper defaults for public Ryzom Core 4 shard 3 years ago
kaetemi a81fcd105a
Stop sound when patching sound bnp 3 years ago
kaetemi 6a7bcf771d
Stop sound when patching sound bnp 3 years ago
kaetemi bdbd12c625
Improve c++0x check 3 years ago
kaetemi 549b2b0f22
Fix build when using ValyriaTear/luabind (on Ubuntu 20.04 LTS) 3 years ago
kaetemi de7b301af9
Improve c++0x check 3 years ago
kaetemi 9466258fa8
Fix for MySQL 8 client lib support 3 years ago
kaetemi 996f6c218e
Fix build when using ValyriaTear/luabind (on Ubuntu) 3 years ago
kaetemi 70aecc79c1
Ubuntu 16.04 is EOL 3 years ago
kaetemi 1e923d03ee
Fix for MySQL 8 client lib support 3 years ago
kaetemi 41b4ec6bf3
Add Ubuntu 20.04 target to Azure Pipelines configuration 3 years ago
kaetemi cee0f53c1d
Merge remote-tracking branch 'ryzomcore/develop' into core4 3 years ago
kaetemi 1b162fb3ae
Merge remote-tracking branch 'ryzomcore/develop' into core4 3 years ago
Nimetu 959f7cfbe8
Fix css background for html/body element 3 years ago
kaetemi 1c035401c6
Merge remote-tracking branch 'ryzomcore/develop' into core4 3 years ago
Jan Boon 60cabbe8ee
Merge pull request #642 from planetmaker/_lua54
Add: Support for Lua 5.4 bindings (Linux)
3 years ago
kaetemi 1eec1fe31e
Fix vs2008 build 3 years ago
planetmaker 1f856ecd8e Add: Support for Lua 5.4 bindings 3 years ago
kaetemi ac9e8f4f5e
Merge remote-tracking branch 'origin/develop' into core4
# Conflicts:
#	ryzom/client/src/interface_v3/action_handler_help.cpp
3 years ago
kaetemi 33a8128cfc
Add option to EGS to enable ring loot and xp 3 years ago
kaetemi d465191e96
Move sheet generator scripts to leveldesign 3 years ago
kaetemi fdc0af158c
Fix generated gender for 3dset 3 years ago
kaetemi 5a34b3dc59
Tweak xp level 3 years ago
kaetemi 03270f330f
Generate required NPCs for Ring 3 years ago
kaetemi 3fbb3242ee
Remove unused value 3 years ago
kaetemi 1dd98445ca
Generate generic action lists 3 years ago
kaetemi d607dec79e
Adjust folders, prepare a new success table 3 years ago
kaetemi df69ff8507
Generate generic magic dot ai actions 3 years ago
kaetemi efd2dea7e4
No need to specify melee type, since it's inherited from the equipped weapon 3 years ago
kaetemi bc5d0fae17
Add option to disable using the dodge resist table average in calculating mob damage 3 years ago
kaetemi 9bd90c47c4
Print out average dodge factor 3 years ago
kaetemi 010c2c84eb
Generate genereric aeo and curse actions 3 years ago
kaetemi 838a362fad
Generate generic actions for melee and range 3 years ago
kaetemi 48548c99b8
Rebalance generated stats 3 years ago
kaetemi 34e079c020
Generate appropriate values for EGS 3 years ago
kaetemi 144ebe7f72
Comment out unused variables 3 years ago
kaetemi 5ef4a97c8a
Fix missing log context 3 years ago
kaetemi 62ed0d6de9
Generate generic ai actions for magic damage 3 years ago
kaetemi 7ecc87e3ed
Extract required creature parents 3 years ago
kaetemi 1df9e53dd5
Extract required npc creatures from palette 3 years ago
kaetemi a8f147231d
Generate melee weapons 3 years ago
kaetemi f73be89553
Generate armors into proper folders 3 years ago
kaetemi 5a090b2943
Remove redundant caster parts from palette 3 years ago
kaetemi 190057b11b
Generate shield items 3 years ago
kaetemi 03b9e1f44f
Remove known missing from list 3 years ago
kaetemi 93dc106d95
List remaining missing items 3 years ago
kaetemi 5fc80fca13
Improve naming convention 3 years ago
kaetemi 3aeef70db8
Wipe packed shard sheets if visual slot table has changed 3 years ago
kaetemi c71980df2e
Fix missing piece of boss armor 3 years ago
kaetemi 34bb64cea7
Generate craftable refugee armor sheets 3 years ago
kaetemi fe9d945265
Generate craftable underwear sheets 3 years ago
kaetemi 725206c678
Add boss armor to generated sheets 3 years ago
kaetemi 43716f30fb
Add separate item list for manual additions 3 years ago
kaetemi 5117fd742b
Script to update references to renamed bricks and phrases 3 years ago
kaetemi d79f103525
Generate random mp count 3 years ago
kaetemi 151f5270bc
Test button for toggling armor (disabled) 3 years ago
kaetemi be7ee784ec
Always put the current brick name in the first column 3 years ago
kaetemi 3d174a1294
Track missing and duplicate sbricks 3 years ago
kaetemi 7a6227efcc
Extend parsing for additional armors 3 years ago
kaetemi fd14ad6c94
Generate craft brick and phrase for sitem 3 years ago
kaetemi c4025de222
Preserve previously extracted brick family indices 3 years ago
kaetemi 5346d2b15e
Tag brick family and skill trees 3 years ago
kaetemi 3cf8ca0959
Parse previous brick family indices to retain compatibility 3 years ago
kaetemi 68eb9149df
Generate armor sitem sheets 3 years ago
kaetemi 0115e0b745
Generate sitem parent sheets 3 years ago
kaetemi e0e85d0100
Parse parent sheet names as well 3 years ago
kaetemi e3ac824104
Simplify crafted rule for sitem name parser 3 years ago
kaetemi 56c3248198
Improve weapon matching tags 3 years ago
kaetemi 6cabc38192
Add script to match shape to sitem 3 years ago
kaetemi 3a2c47ac5a
Add script to parse shape names 3 years ago
kaetemi d9ac7b70a8
Write sitem name tags to output 3 years ago
kaetemi c41cdd76ff
Add script for extracting list of sheets required for R2 pallete. Add script for parsing and generating sitem names 3 years ago
kaetemi ec63cdc818
Fix world editor paths 3 years ago
kaetemi d235885d70
Fix truncated string conversion 3 years ago
kaetemi ef4fb03143
Update executable paths in tools 3 years ago
kaetemi cf2bf5629f
Move item rename to be an admin command, not for player use 3 years ago
kaetemi ec6b13a88b
Fix duplicate include 3 years ago
kaetemi 2889e81d63
Typo 3 years ago
kaetemi 678d888b5c
Merge stuff from atys branch 3 years ago
kaetemi 6a79a5bf0f
Include fixes from atys branch 3 years ago
kaetemi b4638c7969
Include fixes from atys branch 3 years ago
kaetemi 4028534f2a
Exclude sync and generated source from attribution 3 years ago
kaetemi a3dea88eb1
Use better contrast 3 years ago
kaetemi b1733439d0
Splash screen for core 3 years ago
kaetemi c919b1891b
Ensure python from the path is used 3 years ago
kaetemi 5df65ae36e
Add shard dev step to convenience scripts 3 years ago
kaetemi 56beb7e214
Add some additional utility scripts for the pipeline 3 years ago
kaetemi dea792a3f7
Option to automatically configure the dev shard in the web database 3 years ago
kaetemi c5ccd66749
Simplify web setup. Use service dashboard tool. Create phpmyadmin database automatically 3 years ago
kaetemi ff971efc42
Put hostname as default domain. This is convenient since we have one VM per domain for admin and web services 3 years ago
kaetemi 85d1180719
Automatically put the proper folder for dev shard 3 years ago
kaetemi 4d65d5c459
Fix sql default value 3 years ago
kaetemi 6f2cd1fa1b
Generate the correct path in the sql config 3 years ago
kaetemi 23b188cadc
Support launch ctrl on dev shard 3 years ago
kaetemi 4fb55a86d3
Add launch priority to dev shard configuration 3 years ago
kaetemi 3be4999816
Fix sql config template 3 years ago
kaetemi d08547121f
Fix webig 3 years ago
kaetemi 0483474ea0
Fix php warning 3 years ago
kaetemi 7f8d286bc5
Fix high res graph output error on windows 3 years ago
kaetemi 2ecaf3ecd9
Fix web warning 3 years ago
kaetemi 7a95ff23f3
Make admin tool graphs work on windows 3 years ago
kaetemi cb47713119
Update jpgraph 3 years ago
kaetemi 8adf8e228a
Fix web warnings 3 years ago
kaetemi 7e7494f897
Set dev shard rrdtool path 3 years ago
kaetemi 9cf4677005
Generate AES configuration for dev shard 3 years ago
kaetemi 8f40fdb7b4
Ignore duplicate file spam on dev shard, it's normal 3 years ago
kaetemi 7709977b48
Put the proper version number in service titles 3 years ago
kaetemi 25b403556f
Fix SQL string in admin tool with custom port 3 years ago
kaetemi 77e69856d4
Adjust SU port 3 years ago
kaetemi b6e79ee3e1
More useful defaults for generated batch 3 years ago
kaetemi 0a1689ae10
Adjust default ports from 49xxx range to 43xxx range 3 years ago
kaetemi cda6770adb
Use the service dashboard instead of wt and conemu 3 years ago
kaetemi d9b59c1fdc
Include Python with the quick start package 3 years ago
kaetemi 5a8fa2052b
Generate shard configuration for service dashboard 3 years ago
kaetemi 31f31e6d69
Fix python path in web config script 3 years ago
kaetemi 187ef3af19
Add scripts for preparing the package 3 years ago
kaetemi 880f850be7
Add tool availability checks to build script 3 years ago
kaetemi 0fe48635f5
Proper EOL for sh checkout 3 years ago
kaetemi 59b5d1228f
Don't override unchanged 3 years ago
kaetemi b594606862
Fix initial shard dev 3 years ago
kaetemi 10fc562e07
Add trick for reusable dev config 3 years ago
kaetemi 7175e7f9ed
Launch scripts for dev client 3 years ago
kaetemi a5d0f904a4
Install scripts may use real paths 3 years ago
kaetemi 45668dcbfe
Generate dev client folder without binaries to match dev shard behaviour 3 years ago
kaetemi 614da137ac
Remove a lost file 3 years ago
kaetemi 1d06892f16
Remove duplicate web folder 3 years ago
kaetemi 08c094e957
Remove exe 3 years ago
kaetemi 681f133400
Remove redundant cfg files 3 years ago
kaetemi cac99dc9ab
Add missing browser css. Restore login window layout 3 years ago
kaetemi d30a80acea
Include service folders in dev shard paths 3 years ago
kaetemi 486af5ec85
Fix working directory for created shortcuts 3 years ago
kaetemi 9230eb1621
Preconfigure web 3 years ago
kaetemi 08a28193b4
Can also run dev unifier in release mode 3 years ago
kaetemi 8ad0536eed
Fix initial configuration build 3 years ago
kaetemi 211d4d276d
Add initial template for quick start package 3 years ago
kaetemi 378bef8db3
Include build output in dev shard at lower prio 3 years ago
kaetemi e9080405fc
Update title 3 years ago
kaetemi 090ff7d509
Add script to help repairing translation hashes 3 years ago
kaetemi 39190cde60
Merge remote-tracking branch 'ryzomcore/develop' into ryzomclassic-develop 3 years ago
kaetemi db211ffff7
Put good defaults for development 3 years ago
kaetemi c3dcdd25de
Adjust path style in config 3 years ago
kaetemi 3b993c6cda
Update defaults 3 years ago
kaetemi bc9d15a149
Generate dev shard configuration using patchman 3 years ago
kaetemi e067e0eeeb
Add script to setup dev shard folder 3 years ago
kaetemi 7873a839ef
Change to GroupController 3 years ago
kaetemi 3352401f24
Version bump 3 years ago
kaetemi 549a015847
Ring database missing default fix 3 years ago
kaetemi fb1557c08e
Version bump 3 years ago
kaetemi a3626de8bb
Generate separate dev client for local and remote dev 3 years ago
kaetemi 0045696546
Simplify tool paths 3 years ago
kaetemi a5dd6aa857
Prefer local path configuration where relevant 3 years ago
kaetemi 5da1678357
Generate secondary buildsite config with real local path 3 years ago
kaetemi 694338302e
Cleanup 3 years ago
kaetemi 5b22e0950a
Disable adjustment warning since it's not very useful. Speed limit needs to be able to reference a more accurate timing 3 years ago
kaetemi 20ed0a4412
Only send position if client game tick advanced as well 3 years ago
kaetemi c8ecf0a756
Enable full frequency connection 3 years ago
kaetemi d07e219439
Cleanup unused FS tick value 3 years ago
kaetemi 92bfb0aafb
Re-add lag compensation time from client to tick value in mirror 3 years ago
kaetemi 4407fc2970
Position speed checks should be based on the client tick. This fixes excessive rubber banding 3 years ago
kaetemi 3f63f27143
Disable slow system metrics function because it really is slow and chokes the update loop 3 years ago
kaetemi cb9094f091
Merge branch 'develop' into ryzomclassic-develop 3 years ago
kaetemi 30117e92be
More hashing of sequential indices 3 years ago
kaetemi b9de2e99a3
Actually hashing entries for a hash map makes it immensely faster 3 years ago
kaetemi 77f92c72a9
Fix race conditions in frontend service send task 3 years ago
kaetemi b33ff3cb93
Remove useless CPU hog 3 years ago
kaetemi da9c5173a6
Improve debug message 3 years ago
kaetemi 3ec5a87d40
Generate script to launch tabbed 3 years ago
kaetemi 2cd2b9502f
Sender doesn't guarantee anything about pos, this doesn't seem to work on Win32 host 3 years ago
kaetemi 88e2ebd31c
Todo note 3 years ago
kaetemi 492865deed
Skip AES placeholder 3 years ago
kaetemi a1023f923f
Fix dev batch file generation to work with the current naming scheme 3 years ago
kaetemi ce8acd4ca2
Specify SQL server port 3 years ago
kaetemi 9d722bb70f
Show correct label for Editor mode in quit dialog, fix kaetemi/ryzomclassic#113 3 years ago
kaetemi 59c1c340b8
Restore some more ui xml formatting 3 years ago
kaetemi 43af8e6695
Restore some more ui xml formatting 3 years ago
kaetemi f128e0807c
Restore some more ui xml formatting 3 years ago
kaetemi 8cecbb4a7d
Restore mailbox and forums 3 years ago
kaetemi feb7e7a812
Merge branch 'develop' into ryzomclassic-develop 3 years ago
kaetemi 8b6c3276e4
Defer browsing while web server not set 3 years ago
kaetemi deb1c7c131
Remove hardcoded URLs in favour of the web URL provided by the shard 3 years ago
kaetemi fc3f0355a5
Remove web notification polling (remote code execution path) 3 years ago
kaetemi 578cef6c85
Update ring database charsets 3 years ago
kaetemi 413ca990d0
Upgrade nel database charsets 3 years ago
kaetemi 37d52231ef
Fixes for webig, ref kaetemi/ryzomclassic#4 4 years ago
kaetemi f8cb53bfd8
Update ams smarty 4 years ago
kaetemi 90225d0011
Remove unsupported PHP 4 years ago
kaetemi e08079fe5f
Fix typo 4 years ago
kaetemi a188c6b38a
Update admin tool smarty lib 4 years ago
kaetemi 3f0bacd374
Allow alternate SQL port 4 years ago
kaetemi f9b7dbd4cb
Dummy to ensure folder exists 4 years ago
kaetemi 449c90a4b0
Reorganize web configuration, allow custom SQL port 4 years ago
kaetemi dba5d1a1ca
Exclude commit from annotation 4 years ago
kaetemi bce886595e
Include webig config in setup, ref kaetemi/ryzomclassic#4 4 years ago
kaetemi e97cf09e04
Restore legacy webig, ref kaetemi/ryzomclassic#4 4 years ago
kaetemi dbe34b0c8f
Merge branch 'develop' into ryzomclassic-develop 4 years ago
kaetemi 7a647ab76d
Update GPL headers 4 years ago
kaetemi 113f3f97d7
Merge branch 'develop' into ryzomclassic-develop 4 years ago
kaetemi 28fd4d9011
Merge branch 'develop' into ryzomclassic-develop 4 years ago
kaetemi fdbe73937a Merge branch 'develop' into ryzomclassic-develop 4 years ago
kaetemi d58854ab33 Merge branch 'develop' into ryzomclassic-develop 4 years ago
kaetemi b4b701f90e Merge remote-tracking branch 'ryzomcore/develop' into ryzomclassic-develop 4 years ago
Xtarsia 35f30e566b Update widgets.xml
closes #181
4 years ago
kaetemi c341631dbf Merge branch 'develop' into ryzomclassic-develop 4 years ago
kaetemi 59ee36332c Send characteristic buff flags, kaetemi/ryzomclassic#210 4 years ago
kaetemi 45bc21e5c9 Show characteristic buffs of item in icon, fix forge enhancement, kaetemi/ryzomclassic#203 4 years ago
kaetemi cf16ec5c44 Disable unused item cache, ref kaetemi/ryzomclassic#203 4 years ago
kaetemi 817ca5bf2b Restore right click info to classic behaviour, kaetemi/ryzomclassic#86 4 years ago
kaetemi 7eeb845768 Restore splash screen 4 years ago
kaetemi 6d975e9879 Fix Max version 4 years ago
kaetemi 305ed94561 Fix 4 years ago
kaetemi ebc220fedb Merge remote-tracking branch 'origin/temp/more-patches-53' into ryzomclassic-develop 4 years ago
kaetemi a7e880e724 Move operator 4 years ago
Xtarsia 607b708465 main chat box pixel tweeks 4 years ago
kaetemi 144088af13 Fix missing duplicated code change 4 years ago
kaetemi 6dfff83589 Need to start PACKED at 4 bits to get the full 64 bits value range encoded, use nullable for better 0 compression 4 years ago
kaetemi b5f320af33 Fix build 4 years ago
kaetemi d1769c586f Merge branch 'feature/cdb-packed-ryzomclassic' into temp/more-patches-53 4 years ago
kaetemi 68b0fbeae8 Where did this come from 4 years ago
kaetemi 879b792c6a Merge branch 'ryzomclassic-develop' into feature/cdb-packed-ryzomclassic 4 years ago
kaetemi 431b1140e9 Merge commit '505e13cd1eb576209ac7e088c91e0ba1a3e2da62' into feature/cdb-packed-ryzomclassic 4 years ago
kaetemi 6f2e45d352 Merge commit '05fdc723f1519009c05f0963846b41b3ca7c3858' into feature/cdb-packed-ryzomclassic 4 years ago
kaetemi 4169349166 Merge remote-tracking branch 'origin/temp/more-patches-14' into feature/cdb-packed-ryzomclassic 4 years ago
kaetemi c624984da1 Merge commit '6f545aedd5638e093f35f1e156d3ed4f9a91cb18' into feature/cdb-packed 4 years ago
kaetemi b96d96f004 Merge branch 'develop' into ryzomclassic-develop 4 years ago
kaetemi 3609d6369a Restore classic PvP Challenge context menu 4 years ago
kaetemi 46541a700c Test item renames 4 years ago
kaetemi 8d4c0d0ef1 Fix build 4 years ago
kaetemi be11ae1fb6 Add network messages for locking and renaming items 4 years ago
kaetemi f203559ecb Update client inventory when item name is changed 4 years ago
kaetemi be28e102ec Add buff flags to item summary 4 years ago
kaetemi d512d10f18 Add guild access grade bits to inventory summary 4 years ago
kaetemi 24ceb5df04 Add ACCESS, remove SERIAL and CREATETIME to inventory sync 4 years ago
kaetemi bd0c694970 Fix insane XML formatting 4 years ago
kaetemi 5769a3599e Add editor config 4 years ago
kaetemi 176e0975f6 Fix build 4 years ago
kaetemi 7c4a2f857d Restore PvP challenge message callbacks 4 years ago
kaetemi bc3a602ebc Phrase literal flag for item name, replaces separate string, kaetemi/ryzomclassic#194 4 years ago
kaetemi 9eb7481c06 Cleanup CGameItemPtr, add reference count to avoid glitches, kaetemi/ryzomclassic#194 4 years ago
kaetemi 66debd7ebe Dumb. Clean up, kaetemi/ryzomclassic#194 4 years ago
kaetemi f0430ec8ad Note 4 years ago
kaetemi caa4eea391 Disable debug 4 years ago
kaetemi 3604088713 Keep a spare memory block in fixed size allocator to avoid large allocation overhead on the chunk boundary 4 years ago
kaetemi cd4b746bfa Clean up mess 4 years ago
kaetemi 60f61caa2c Disable game item ptr debug code when item ptr debug is disabled... 4 years ago
kaetemi a5e9542f2f Disable game item debug code since it's not maintained 4 years ago
kaetemi 7b1136ff0b Use pointers for the strings in game item, since they're not common 4 years ago
kaetemi abd5c38a80 Merge branch 'develop' into ryzomclassic-develop 4 years ago
kaetemi 2a37a76cb5 Remove old ClientInventoryPosition property 4 years ago
kaetemi 4c701386f4 Comment 4 years ago
kaetemi e9feca648a Fix wrong time type 4 years ago
kaetemi 4ae411968e Prepare a little surprise for naughty string scanners, ryzom/ryzomcore#604 4 years ago
kaetemi aa2574e10a Remove unused custom name, item name is specified already by _PhraseId 4 years ago
kaetemi a2c7c4dc25 Remove unused faction string from item 4 years ago
kaetemi 29f313853d Explicitly use toLowerAscii for filenames and identifiers 4 years ago
kaetemi 625d269c11 Merge branch 'develop' into ryzomclassic-develop 4 years ago
kaetemi dc12e2dea3 Explicitly use toLowerAscii for filenames and identifiers 4 years ago
kaetemi ae1f4d2df3 Merge branch 'develop' into ryzomclassic-develop 4 years ago
Xtarsia dac3cc2292 inventory alignment adjustments
closes #182
4 years ago
kaetemi 9883454926 Disable item groups, not tested in our build 4 years ago
kaetemi b89441d673 Merge branch 'develop' into ryzomclassic-develop 4 years ago
kaetemi 35e18597ee Merge branch 'develop' into ryzomclassic-develop 4 years ago
kaetemi 6787bbf378 Use localized font 4 years ago
kaetemi a3e762f401 Merge branch 'develop' into ryzomclassic-develop 4 years ago
kaetemi 380722e2e6 Remove ucstring from lua and UI 4 years ago
kaetemi d11936a035 Remove compatibility switch 4 years ago
kaetemi c791fe5742 Merge branch 'develop' into ryzomclassic-develop 4 years ago
Xtarsia 5de288a2e7 Update out_v2_select.xml
disable downloader UI
4 years ago
kaetemi c08163dcb6 Merge branch 'develop' into ryzomclassic-develop 4 years ago
kaetemi ea6ba2ec97 Merge branch 'develop' into ryzomclassic-develop 4 years ago
kaetemi 9c6918d448 Merge branch 'develop' into ryzomclassic-develop 4 years ago
kaetemi 9cc899a3a6 Merge branch 'develop' into ryzomclassic-develop 4 years ago
kaetemi e773027c6d Merge branch 'develop' into ryzomclassic-develop 4 years ago
kaetemi 3e675b1422 Merge branch 'develop' into ryzomclassic-develop 4 years ago
kaetemi 5934147d9e Fix identity title, kaetemi/ryzomclassic#170 4 years ago
Xtarsia 4ca95e1188 Update out_v2_select.xml
closes #117
4 years ago
kaetemi 0499fce27d Fix login alignment 4 years ago
kaetemi 2295769ad5 Merge branch 'develop' into ryzomclassic-develop 4 years ago
kaetemi 1cfe858588 Merge branch 'develop' into ryzomclassic-develop 4 years ago
kaetemi 374601e8d1 Merge branch 'develop' into ryzomclassic-develop 4 years ago
kaetemi d86c000de2 Merge branch 'develop' into ryzomclassic-develop 4 years ago
kaetemi fa086ea4b9 Merge branch 'develop' into ryzomclassic-develop 4 years ago
kaetemi dcf242c3b1 Merge branch 'develop' into ryzomclassic-develop 4 years ago
kaetemi d31eb606eb Fix merge 4 years ago
kaetemi 46020d345c Merge branch 'develop' into ryzomclassic-develop 4 years ago
kaetemi 2b2b0a7d48 Merge branch 'develop' into ryzomclassic-develop 4 years ago
Xtarsia 277a854f8d Update widgets.xml
Closes #157
4 years ago
kaetemi 52c7c16f69 Merge branch 'develop' into ryzomclassic-develop 4 years ago
kaetemi 92ee96a783 Log the recorded history, kaetemi/ryzomclassic#152 4 years ago
kaetemi b61ad76ac2 Fix R2 feature info checkbox, kaetemi/ryzomclassic#158 4 years ago
Xtarsia 7a9accde11 Update info_player.xml
closes #160
4 years ago
kaetemi d0f9685ee8 Merge branch 'develop' into ryzomclassic-develop 4 years ago
Xtarsia a2b68113ec Remove Patcher UI elements
Remove Patcher UI elements
4 years ago
kaetemi ec4e2e188e Merge branch 'develop' into ryzomclassic-develop 4 years ago
kaetemi 9580bd5ec0 Failed to detect ecosystem of selected island, fix missing plants in palette, kaetemi/ryzomclassic#132 4 years ago
kaetemi d2900df0f6 Add debug break hook for Lua 4 years ago
kaetemi ae876e481a Merge branch 'develop' into ryzomclassic-develop 4 years ago
kaetemi 8594b479e2 Fix bad escaping of < and >, fix kaetemi/ryzomclassic#150 4 years ago
Jan Boon fbab39451f
Merge pull request #146 from Xtarsia/ryzomclassic-develop
Update inventory.xml
4 years ago
kaetemi 05501cf30b Merge branch 'develop' into ryzomclassic-develop 4 years ago
kaetemi 357bb28ef2 Recycling an ucstring from i18n.get is not allowed, it's const, fix kaetemi/ryzomclassic#134 4 years ago
kaetemi 5056d3a72a Disable CustomNpc Level prop for now, kaetemi/ryzomclassic#154 4 years ago
kaetemi 91a44fd5b5 Disable TypeNPC for now, kaetemi/ryzomclassic#154 4 years ago
kaetemi a51597cf0b Typo, kaetemi/ryzomclassic#87 4 years ago
kaetemi f5553dfb59 Better handling of TypeNPC initialization, kaetemi/ryzomclassic#87 4 years ago
kaetemi b4dc60f163 Fix double undo stack actions, kaetemi/ryzomclassic#87 4 years ago
kaetemi 2859693c1e Remove OtherCharAccess toggle from Scenario window when MD5 checks are disabled, close kaetemi/ryzomclassic#151 4 years ago
kaetemi 6853098df9 Additional debugging, kaetemi/ryzomclassic#152 4 years ago
kaetemi c71f516ed2 Avoid more useless `fullName` calls, kaetemi/ryzomclassic#152 4 years ago
kaetemi ccb141672f Avoid some unnecessary string operations when not recording history, cleanup, debug crash in `fullName` kaetemi/ryzomclassic#152 4 years ago
kaetemi 4a7a153a3e Disable check for OtherCharAccess if CheckR2ScenarioMD5 is false, kaetemi/ryzomclassic#151 4 years ago
kaetemi e3ec67a698 Disable R2 MD5 check, it's useless now, fix kaetemi/ryzomclassic#147 4 years ago
kaetemi 505e13cd1e Merge branch 'develop' into ryzomclassic-develop 4 years ago
Xtarsia 14a0c5d471 Update inventory.xml
Remove Special items from inventory.
4 years ago
kaetemi 7a035466da Merge branch 'develop' into ryzomclassic-develop 5 years ago
kaetemi 64fd9f0b78 Merge remote-tracking branch 'ryzomcore/develop' into temp/more-patches-26 5 years ago
kaetemi a7933bc818 Fix admin commands for items to use .sitem by default 5 years ago
kaetemi 669237dbae Merge branch 'develop' into ryzomclassic-develop 5 years ago
kaetemi a606684e34 Use nel type 5 years ago
kaetemi 4b4c14dabf Merge branch 'develop' into ryzomclassic-develop 5 years ago
kaetemi 7e232462d0 Invalid table insertion, fix kaetemi/ryzomclassic#124 5 years ago
kaetemi 09cb0ea5d0 Can't reinterpret float pointer as size_t pointer as the sizes mismatch, fix ryzom/ryzomcore#605 switch case on 64bit, ref kaetemi/ryzomclassic#124 5 years ago
kaetemi f5eae12b80 Enhance logging message 5 years ago
kaetemi 1452a6ba6d Fix saveScenarioRtData for large scenarios 5 years ago
kaetemi a6713b14a6 Compare tag for creating bnp, since bnp get older timestamp reset if they match 5 years ago
kaetemi b505ff9e13 Merge branch 'develop' into ryzomclassic-develop 5 years ago
kaetemi 154ae55165 Fix string format 5 years ago
kaetemi ada4e5bfbf Use better fonts 5 years ago
kaetemi fb3e97db1d Request for 7z instead of tgz, ref ryzom/ryzomcore#586 5 years ago
kaetemi 61974ec15c Add 7z support to server patch, ref ryzom/ryzomcore#586 5 years ago
kaetemi af6c6b64c3 Revert workaround, fix ryzom/ryzomcore#601 5 years ago
kaetemi 0528df7f0b Merge branch 'develop' into ryzomclassic-develop 5 years ago
kaetemi 18d2e393cf Merge branch 'develop' into ryzomclassic-develop 5 years ago
kaetemi 3da77ce061 Play specific music during character selection 5 years ago
kaetemi 90e1297c1d Merge branch 'develop' into ryzomclassic-develop 5 years ago
kaetemi 90931485ba Track online services in WS based on TServiceId instead of a counter, fix ryzom/ryzomcore#601 5 years ago
kaetemi 195e9b1439 Merge branch 'develop' into ryzomclassic-develop 5 years ago
kaetemi 0f50806927 Merge branch 'develop' into ryzomclassic-develop 5 years ago
kaetemi 7d01d8411d Replace deprecated table.getn 5 years ago
kaetemi c1a3008ca0 Removed ecosystem points 5 years ago
kaetemi 3f39669c9a Remove unused project 5 years ago
kaetemi 51ec683eea Merge branch 'feature/code-to-root' into ryzomclassic-develop 5 years ago
kaetemi ddc9cdabc4 Retarget to R:\leveldesign and R:\graphics 5 years ago
kaetemi 324c69c8cc Merge branch 'feature/code-to-root' into ryzomclassic-develop 5 years ago
kaetemi 05fdc723f1 Move code to root 5 years ago
Jan Boon 4a55facb0c Merge branch 'feature/code-to-root' into ryzomclassic-develop 5 years ago
kaetemi def3d25249 Set proper dependencies for packed collision build 5 years ago
kaetemi f32a5d95d4 Export zones as part of the R2 islands xml 5 years ago
kaetemi 5f3675446c Build R2 islands xml separately per continent, and build it properly 5 years ago
kaetemi f39a7fe349 Temporarily set Direct3D as default on Windows, ref ryzom/ryzomcore#592 5 years ago
kaetemi 3117c55424 Remove leveldesign duplicate files 5 years ago
Jan Boon 185d71365e Merge branch 'develop' into ryzomclassic-develop 5 years ago
kaetemi 02c40934ef Remove references to things which don't exist 5 years ago
kaetemi f892608865 Fix ring scenario edition mode initialization 5 years ago
Jan Boon 9d1545bbe2 Merge branch 'develop' into ryzomclassic-develop 5 years ago
kaetemi 71a22b43db Fixes 5 years ago
kaetemi 5a543239bb Batch of fixes for server 5 years ago
Jan Boon 6cdee90e4e Merge branch 'develop' into ryzomclassic-develop 5 years ago
kaetemi 17d91ad243 Add configuration for open admin privileges 5 years ago
kaetemi 33bf80a3c7 Merge remote-tracking branch 'ryzomcore/develop' into ryzomclassic-develop 5 years ago
Jan Boon 1f7fca7df3 Merge branch 'develop' into ryzomclassic-develop 5 years ago
Jan Boon a964da41f7 Various fixes or adjustments 5 years ago
kaetemi a900a45153 More useful logging 5 years ago
kaetemi 0cfe43aa26 Fix editor far tp in character select 5 years ago
kaetemi 3e7035c6dd Force invalid enum values to defaults 5 years ago
kaetemi ea021e1d96 Fix module bitsets and default session values 5 years ago
kaetemi 55c3939789 Use shard ID as part of shared memory key in MS to allow multiple shards on one server 5 years ago
kaetemi 7a71caca6e Fix filename collision of string cache between shards on the same host 5 years ago
kaetemi 9dc0020b61 Fix CSheetId from CVariable 5 years ago
kaetemi c7b27c8d70 Fix filename collision of string cache between shards on the same host 5 years ago
kaetemi 6c6a83bc5d Categorize mirror service commands 5 years ago
Jan Boon 93f6770fe4 Merge branch 'develop' into ryzomclassic-develop 5 years ago
Jan Boon a94094f865 Merge branch 'develop' into ryzomclassic-develop 5 years ago
Jan Boon 746f033b5c Merge remote-tracking branch 'ryzomcore/develop' into ryzomclassic-develop 5 years ago
Jan Boon 5d7e4a921f Merge remote-tracking branch 'ryzomcore/develop' into ryzomclassic-develop 5 years ago
Jan Boon f48f4d4555 Merge remote-tracking branch 'ryzomcore/develop' into ryzomclassic-develop 5 years ago
Jan Boon 31e1cd6feb Merge remote-tracking branch 'ryzomcore/develop' into ryzomclassic-develop 5 years ago
Jan Boon 107728c944 Merge branch 'develop' into ryzomclassic-develop 5 years ago
kaetemi 4053220060 Continent sheet is name by default 5 years ago
kaetemi 525db6976a Disable forage tool restriction 5 years ago
kaetemi f344c0568c Adjust continent sheet name 5 years ago
kaetemi 2d32bc2371 Disable craft tool restriction, ryzomclassic/#49 5 years ago
kaetemi 9d89d3dfca Finer text alignment, ryzomclassic/#36 5 years ago
kaetemi 024447d9fb Cleanup enchant context, ryzomclassic/#37 5 years ago
kaetemi d496d54ac4 Add item log context for creating sap recharge 5 years ago
kaetemi aec03f6234 Add item logging context for enchanting items 5 years ago
kaetemi 1dce83d279 Remove ring knowledge and faction pvp points from profile info 5 years ago
kaetemi 774b91df9c Classy login screen 5 years ago
kaetemi d5b959db7e Remove useless command 5 years ago
kaetemi b547fd62cb Revert icon 5 years ago
kaetemi eecd6f1f2c Don't log since it's already logged from offline command, ryzomclassic/#44 5 years ago
kaetemi 3f982c2214 Shopping list delete doesn't need log, but it should be checked why it's containing items, ryzomclassic/#44, ryzomclassic/#26 5 years ago
kaetemi b232d0026a Reduce logging 5 years ago
kaetemi be32f02a76 Set font 5 years ago
Jan Boon 48bc27c1e3 Merge branch 'develop' into ryzomclassic-develop 5 years ago
kaetemi 38a7b763d0 Classic backgrounds 5 years ago
kaetemi f18f4196b4 Further adjust handling of ryzomclassic/#31 temp bag take all 5 years ago
kaetemi 35a9e747f7 Experimental alternate fix for ryzomclassic/#31 5 years ago
kaetemi 8f1d0ebf23 Fix recursing endHarvest call, ryzomclassic/#31 5 years ago
kaetemi dabf75dbcf Add log context for bot chat end, ryzomclassic/#26 5 years ago
kaetemi a722988987 Remove unused salt from admin 5 years ago
kaetemi c914e6fdf6 Patch over https 5 years ago
kaetemi ad4290f2c9 Move fonts to assets 5 years ago
kaetemi 739730127d Revert profile interface 5 years ago
kaetemi 2cb353438b Add log context for sale store check 5 years ago
kaetemi 46786a1185 Fix comment 5 years ago
kaetemi 8daffed6c2 Cleanup odd patch, fix dyn chat choice progress 5 years ago
kaetemi 2a917ede27 Register crystallize log context for ryzomclassic/#14 5 years ago
Jan Boon 31a819f254 Merge branch 'develop' into ryzomclassic-develop 5 years ago
kaetemi ad15ada3ef Ring ring 5 years ago
kaetemi 2927b3dfb9 Bulk disable webig changes 5 years ago
kaetemi e0a14d79ac Disable more of the pet name code 5 years ago
kaetemi ba3c008767 Add handy startsWith string utility function 5 years ago
kaetemi 8c6677dba6 Disable pet name since it's only accessible through admin and web 5 years ago
kaetemi b6dbb65918 These upgrades don't apply to us 5 years ago
Jan Boon 4d742741d1 Merge branch 'develop' into ryzomclassic-develop 5 years ago
kaetemi 8dd7c52f8a Code style 5 years ago
kaetemi fcfc86c83e Disable teleport fx, since we will not have allegiance. May be better to have it depend on the teleport ticket type 5 years ago
kaetemi f36c979c2e Remove altar restriction, fix ryzomclassic/#16 5 years ago
kaetemi 8bcccefd11 Re-enable warnings 5 years ago
kaetemi 71c7e31806 We don't have light_sap_recharge.sitem, so remove it 5 years ago
kaetemi 6d5eb14d4f Revert to old sap recharge 5 years ago
kaetemi 52d8304659 Remove string based and webig feature 5 years ago
kaetemi 3cfedfcf9a Remove hardcoded name based item rule 5 years ago
kaetemi 0b47322d6c Remove hardcoded item rule 5 years ago
kaetemi bfed12711d Enable callstack logging 5 years ago
kaetemi 84e924b496 Fix ryzomclassic/#14 crash on spell crystalize. Add TLogContext_Item_EnchantPhrase log context 5 years ago
kaetemi 613bb7ccd0 Fix snp download over https 5 years ago
kaetemi 623ffc6be7 Debug logs should not be disabled in DEV client... 5 years ago
kaetemi 319ad4b0bf Set patch urls 5 years ago
kaetemi de6eae7e0f Fix again. This needs to be fixed properly 5 years ago
kaetemi b159620fcc This needs to be generated in utf8 5 years ago
kaetemi 0e08489315 Fix adjustment for classic newbieland 5 years ago
kaetemi 2ad9e1c78a Todo. Fix this properly 5 years ago
kaetemi 8d7ce91b56 Cleanup 5 years ago
kaetemi 2d1d9c1b0b Regenerate server cdb 5 years ago
kaetemi 85e7b594c6 Add a note 5 years ago
kaetemi f980988ae4 Switch to old newbieland 5 years ago
kaetemi ee8ccf13b7 Useless empty file 5 years ago
kaetemi 8895eb88d6 Revert "Added: New PvpClan "Marauder" based on fame "black_kami"" 5 years ago
kaetemi 679c7d7ac3 Don't need this 5 years ago
kaetemi ba6378e07c Remove useless feature 5 years ago
kaetemi b06b0fb08c Merge fixes 5 years ago
kaetemi 81176f102f Revert to fixed version 5 years ago
Jan Boon 2ad1b76886 Adjust default config 5 years ago
Jan Boon b0fdfaeca9 Merge branch 'develop' into ryzomclassic-develop 5 years ago
kaetemi 4c7c240775 Merge branch 'develop' into ryzomclassic-develop 5 years ago
kaetemi ff87af8423 Merge branch 'develop' into ryzomclassic-develop 5 years ago
kaetemi afee5db9e2 Merge branch 'develop' into ryzomclassic-develop 5 years ago
kaetemi 0bae206bb2 Fix merges 5 years ago
kaetemi c57c9a1cf6 Build fix 5 years ago
Jan Boon 0c8e9f7640 Merge branch 'feature/streamed-package' into ryzomclassic-develop 5 years ago
kaetemi 2b80ec75a9 Merge remote-tracking branch 'ryzomcore/hg/hotfix/patches-from-atys' into ryzomclassic-develop 5 years ago
kaetemi 0a2ce3c522 Null merge 5 years ago
kaetemi 4ca10eb38c Remove problematic texture defaults 5 years ago
kaetemi 636d8dae55 Merge branch 'develop' into ryzomclassic-develop 5 years ago
kaetemi ecc2085b70 Bump NeL version 5 years ago
kaetemi 9b9829a6ab Run pipeline setup in batch file 5 years ago
kaetemi 916be9833c Merge remote-tracking branch 'ryzomcore/hg/develop' into ryzomclassic-develop 5 years ago
kaetemi bb3f4052a7 Merge branch 'develop' into ryzomclassic-develop 5 years ago
kaetemi 439cae285d Merge branch 'develop' of github.com:ryzom/ryzomcore into ryzomclassic-develop 5 years ago
Nimetu ddd0a7507e Fixed: Invalid array access. Crash in gcc with aggressive loop optimizations enabled.
--HG--
branch : patches-from-atys
5 years ago
kaetemi c54897bd4f Fix build with MariaDB connector 5 years ago
kaetemi 94ad75bb72 Add some missing unit test tools 5 years ago
kaetemi 6ed45fef0b Add some missing tools 5 years ago
kaetemi 85c9d4e4b6 Add classic ingame web 5 years ago
kaetemi 7ac4eb3097 Add missing R2 files 5 years ago
kaetemi 2f29d03d86 Junk 5 years ago
kaetemi f64ba76bfc Undo insane XML reformat, and use tabs as originally 5 years ago
kaetemi aa2386151f Undo insane XML reformat 5 years ago
kaetemi 7505fae6d1 Add missing scripts 5 years ago
kaetemi f7bdd7ecd7 Junk 5 years ago
kaetemi d70c4a215d Junk 5 years ago
kaetemi 71a412c698 Merge remote-tracking branch 'ryzomcore/hg/develop' into ryzomclassic-develop 5 years ago
kaetemi 98a41b75bd Junk 5 years ago
kaetemi a86fb4e195 Merge remote-tracking branch 'origin/develop' into ryzomclassic-develop 5 years ago
kaetemi 3ff031b5ff Merge commit '230639bf0ead1a3736aca3af8866aa00f0608074' 5 years ago
Nimetu 249ce945f1 Fixed: Calling member function on null object is undefined behavior.
--HG--
branch : patches-from-atys
5 years ago
Nimetu a6a8cb99f5 Fixed: Truncated pointer on 64bit system
--HG--
branch : patches-from-atys
5 years ago
ulukyn f11bc06541 Changed: updated database_plr.h
--HG--
branch : patches-from-atys
6 years ago
Nimetu 460eb92969 Changed: database_plr.h sync for number of animal
--HG--
branch : patches-from-atys
5 years ago
Nimetu ae68b543b8 Merge with develop
--HG--
branch : patches-from-atys
5 years ago
Inky a5a6c321af Changed: added language text label translation
--HG--
branch : patches-from-atys
6 years ago
Inky 89fa8ca0ac Changed: added language support per profiles
--HG--
branch : patches-from-atys
6 years ago
Inky 9c82a0436f Changed: added QComboBox widget to change profile language
--HG--
branch : patches-from-atys
6 years ago
Inky fb60e00acc Changed: allow tab to select all widgets before been captured by editBox
--HG--
branch : patches-from-atys
6 years ago
Inky 0a48c4a6e3 Fixed: prevent bad index and duplicata after profile deletion
--HG--
branch : patches-from-atys
6 years ago
Nimetu 1eb1b118f3 Fixed: Shield, tools buffs not displayed in tooltip
--HG--
branch : patches-from-atys
6 years ago
Nimetu 3b0324ad08 Fixed: Range/melee weapon buffs not displayed in tooltip
--HG--
branch : patches-from-atys
6 years ago
Inky 4baed9c664 Changed: unsupported language code default fallback
--HG--
branch : patches-from-atys
6 years ago
Inky 41c3d0cbe0 Changed: check locale is supported under linux
--HG--
branch : patches-from-atys
6 years ago
Inky ccfffe0a8c Added: macro context help
--HG--
branch : patches-from-atys
6 years ago
Inky 17b96e4819 Fixed: tooltip item buff update
--HG--
branch : patches-from-atys
6 years ago
Inky 00d31f09c6 Changed: use one lua bind to retrieve itemInfo
--HG--
branch : patches-from-atys
6 years ago
ulukyn 89c22b04a2 Changed: remove nlinfo of Register EId (made lof of useless logs...)
--HG--
branch : patches-from-atys
6 years ago
ulukyn cf4cb55f3e Fixed: remove Zig enter/leave bag menu option when not a pet
--HG--
branch : patches-from-atys
6 years ago
ulukyn 1b19cb4809 Changed: Ctrl tooltips can now display utf8 text
--HG--
branch : patches-from-atys
6 years ago
Inky fe4c58df42 Fixed: other_hand_slot error when macro window is opened
--HG--
branch : patches-from-atys
6 years ago
ulukyn 498c02fa4d Fixed: remove Zig enter/leave bag menu option when not a pet
--HG--
branch : patches-from-atys
6 years ago
ulukyn a7e75b1c6c Added: setTargetAsInterlocutor and unsetTargetAsInterlocutor lua functions
--HG--
branch : patches-from-atys
6 years ago
Inky d73ea16682 Fixed: register lua bind
--HG--
branch : patches-from-atys
6 years ago
Inky 64987e8ed6 Changed: increment packed_sheets version
sitem, item

--HG--
branch : patches-from-atys
6 years ago
Inky 7230a84031 Changed: introduce new proprieties menu and action handler
--HG--
branch : patches-from-atys
6 years ago
Inky 36918ac919 Added: CGroup menu set action handler
--HG--
branch : patches-from-atys
6 years ago
Inky 0683604ada Added: item sheets scroll properties
--HG--
branch : patches-from-atys
6 years ago
Inky 038a3bca96 Added: load xml tp_interface
--HG--
branch : patches-from-atys
6 years ago
Nimetu a3bdd3dda5 Changed: Remove call to old GroupHTML function
--HG--
branch : patches-from-atys
6 years ago
Inky 4121a61c85 Added: display local chat message
--HG--
branch : patches-from-atys
6 years ago
Inky 2f2329c67f Added: get and set rgba database entry
--HG--
branch : patches-from-atys
6 years ago
ulukyn 9780decca0 Added: Player can now ask a pet (zig) to enter/leave from his bag (an icon is displayed when pet is on the bag)
--HG--
branch : patches-from-atys
6 years ago
Inky cad47321a3 Added: set auto-pacts lua bind
--HG--
branch : patches-from-atys
6 years ago
Inky 417865bb3a Added: Store user created channels in xml file
--HG--
branch : patches-from-atys
6 years ago
Ulukyn 36036faffd Added: home propertie of html group (so lua scripts can setup the home)
Fixed: adding new landmarks with lua don't remove respawn points if player is not in an island

--HG--
branch : patches-from-atys
6 years ago
ulukyn c0037fc55a Fixed: removed nlstop when 2 same commands runs (in services)
removed nlassert when factory not found (who crash the fes)

--HG--
branch : patches-from-atys
6 years ago
Inky f96289dfbe Fixed: LevelDesign AI script documentation and few incode typos
--HG--
branch : patches-from-atys
6 years ago
Riasan e794b5dd01 Added: Team Invite button by Guild Member List and Friend List
--HG--
branch : patches-from-atys
6 years ago
ulukyn 11132f08e6 Changed: Players when Outpost is in active war (OutpostInFire) can't be Neutrals
--HG--
branch : patches-from-atys
6 years ago
Riasan 2d83507b55 Changed: active teleport option via map on r2 for privs
--HG--
branch : patches-from-atys
6 years ago
ulukyn 0debc7e6d6 Removed: cacert.pem file from client datas
--HG--
branch : patches-from-atys
6 years ago
ulukyn 698c71f137 Fixed: Added a check for https:// npc web pages
--HG--
branch : patches-from-atys
6 years ago
ulukyn dcf959fe3d Added: luaGetElement for CInterface3DScene and getBBoxSize* for CInterface3DShape
--HG--
branch : patches-from-atys
6 years ago
Nimetu 892d11d2be Fixed: trimSeparators function
--HG--
branch : patches-from-atys
6 years ago
kervala 8f61819d43 Changed: Minor changes
--HG--
branch : patches-from-atys
6 years ago
ulukyn 0e7380599e Added: Ctrl DB Sheet tooltip can be overwrited
--HG--
branch : patches-from-atys
6 years ago
kervala cf1df3e4de Fixed: Warning
--HG--
branch : patches-from-atys
6 years ago
ulukyn 4beecdc81b Eapply: CTypeVersion incremented for sitem and item (because the client don't crash again and i found why )
--HG--
branch : patches-from-atys
6 years ago
ulukyn 0b970371a3 Fixed: check ClientCfg.CurlCABundle is not empty before check the first char (thx nimetu)
--HG--
branch : patches-from-atys
6 years ago
ulukyn 48f3d3b244 Added: add a way to prefix CurlCABundle file with defaultConfigFileName using "%"
Use added cacert.pem from mozilla like default CA file

--HG--
branch : patches-from-atys
6 years ago
ulukyn e9e2590d53 Added: getSheetFamily lua bind
--HG--
branch : patches-from-atys
6 years ago
ulukyn f7f1a6035e Added: getSheetLocalizedName and getSheetLocalizedDesc lua bind
--HG--
branch : patches-from-atys
6 years ago
ulukyn 4f75f92610 Added: Add "@LUA " prefix to url set on shapes with text. When player click on shape, run the lua code
getDbProp64 return a variable instead of node->getValue64() return value.

--HG--
branch : patches-from-atys
6 years ago
ulukyn a50bd10b84 Added: setDbProp64 lua function
--HG--
branch : patches-from-atys
6 years ago
ulukyn 57406f6a8c Added: luaSetModalParentList method for container
--HG--
branch : patches-from-atys
6 years ago
ulukyn 65acd3bf9d Added: Fix a bug with web textures on view_bitmap. The texture must keep the case, only texture from bnp can be convert to lower case
--HG--
branch : patches-from-atys
6 years ago
ulukyn 16ce2e454c Added: add an prefiex "u:" to ask tooltip and hardcode_text to use utf8 strings
--HG--
branch : patches-from-atys
6 years ago
ulukyn c7bdaf513c Changed: use trimSeparators to remove spaces and tabs in html styles args values
--HG--
branch : patches-from-atys
6 years ago
ulukyn 724158c74c Added: trimSeparators function to prevent trim of utf8 special chars. Currently trimSeparators only trim spaces and tabs.
--HG--
branch : patches-from-atys
6 years ago
Nuno Gonçalves ed798cb62a Add new Mektoub type used for new pets companions
--HG--
branch : patches-from-atys
6 years ago
ulukyn 971287ae78 Changed: Added new fame for marauder (generated from database.xml)
--HG--
branch : patches-from-atys
7 years ago
ulukyn c56d2e136d Changed: Increse MAX_INVENTORY_ANIMAL to 7 to add 3 pets companions (ingame named ZIGs)
--HG--
branch : patches-from-atys
6 years ago
ulukyn 3652b23bbb Added: Race shape properties of sitems (!!! sitems.packed_sheets must be regenerated with freshly complilated sheets_packer tool !!!)
--HG--
branch : patches-from-atys
6 years ago
ulukyn 8b1ead9e77 Fixed: getGroundZ uses now float instead of int
--HG--
branch : patches-from-atys
7 years ago
ulukyn 5d7c8777a1 Added: Ability to add icons on the map and setup the handler by left and right click with lua
--HG--
branch : patches-from-atys
7 years ago
ulukyn 1a52cc3cb1 Changed: move /url command to FINAL_VERSION section
--HG--
branch : patches-from-atys
7 years ago
ulukyn 0093170ee9 Added: onclick_r and onover Lua reflect properties. Setup id to buttonGroup to access it
--HG--
branch : patches-from-atys
7 years ago
ulukyn 50d6ae91ae Changed: Increase max number of virtual desktops to use with special apps (like powo creator)
--HG--
branch : patches-from-atys
7 years ago
ulukyn af6975ae11 Added: onclick_r and onover Lua reflect properties. Setup id to buttonGroup to access it
--HG--
branch : patches-from-atys
7 years ago
ulukyn 0b0b980510 Changed: Fix @WEB customtext items
--HG--
branch : patches-from-atys
7 years ago
ulukyn f917d22b71 Changed: Fix @WEB customtext items
--HG--
branch : patches-from-atys
7 years ago
ulukyn 61cee990fc Changed: Fix @WEB customtext items
--HG--
branch : patches-from-atys
7 years ago
ulukyn fd458d5751 Added: setBackground lua method for group_html
--HG--
branch : patches-from-atys
7 years ago
ulukyn@gmail.com 5c41e79ce0 Added: Add new html properties of group_html
--HG--
branch : patches-from-atys
7 years ago
Riasan 0b27a27a4c Fixed: Old Custom Text what used @WEB have no space after command "@WEBxxx"
--HG--
branch : patches-from-atys
7 years ago
ulukyn@gmail.com 4f33715b06 Added: We can now set Item Custom Text with "@LUA xxx" to run lua code when players click on "OPEN" menu
--HG--
branch : patches-from-atys
7 years ago
ulukyn@gmail.com b623bb11f5 Fixed: Adding translation to bots names (with tags) when displaying "xxx says: ..."
--HG--
branch : patches-from-atys
7 years ago
ulukyn@gmail.com 3baf7fdb12 Fixed: First try to add translation tags into Bot names and Titles: translating target name and sys infos
--HG--
branch : patches-from-atys
7 years ago
ulukyn@gmail.com 4c91c418d4 Fixed: First try to add translation tags into Bot names and Titles (will help rename of player to be translated and events npcs)
--HG--
branch : patches-from-atys
7 years ago
ulukyn@gmail.com 99a949b889 Changed: First try to add translation tags into Bot names and Titles (will help rename of player to be translated and events npcs)
--HG--
branch : patches-from-atys
7 years ago
kaetemi 998daa5c56 Add additional nullable
--HG--
branch : cdb-packed
10 years ago
kaetemi a3a347fab4 Add optional null bit to CDB leafs
--HG--
branch : cdb-packed
10 years ago
kaetemi ba42ed3320 Merge with default
--HG--
branch : cdb-packed
10 years ago
kaetemi 1359bbf8c2 (DB_INIT:PLR from 5364 -> 1810 bytes)
--HG--
branch : cdb-packed
10 years ago
kaetemi 5d9f3ce668 Optimize for more common case
--HG--
branch : cdb-packed
10 years ago
kaetemi 9fec239dfb Missed 4 bits
--HG--
branch : cdb-packed
10 years ago
kaetemi 06e9d20850 Add PACKED type to CDB for brick bitfields
--HG--
branch : cdb-packed
10 years ago

18
.gitattributes vendored

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

1
.gitignore vendored

@ -265,6 +265,7 @@ 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_admin
web/public_php/role_domain
web/public_php/db_version_ring
web/public_php/config_user.php

@ -53,16 +53,12 @@ ENDIF()
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
PROJECT(RyzomCore CXX C)
SET(NL_VERSION_MAJOR 1)
SET(NL_VERSION_MINOR 1)
SET(NL_VERSION_MAJOR 4)
SET(NL_VERSION_MINOR 0)
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)
@ -98,14 +94,14 @@ 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_CLIENT_CREATE_ACCOUNT_URL "https://core.ryzom.dev/ams/" CACHE STRING "Ryzom Client Create Account URL")
SET(RYZOM_CLIENT_EDIT_ACCOUNT_URL "https://core.ryzom.dev/ams/" CACHE STRING "Ryzom Client Edit Account URL")
SET(RYZOM_CLIENT_FORGET_PASSWORD_URL "https://core.ryzom.dev/ams/" CACHE STRING "Ryzom Client Forget Password URL")
SET(RYZOM_CLIENT_PATCH_URL "https://cdn.ryzom.dev/core4/patch/" CACHE STRING "Ryzom Client Patch URL")
SET(RYZOM_CLIENT_APP_NAME "core4")
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")
SET(RYZOM_CLIENT_RELEASENOTES_URL "https://core4.ryzom.dev/releasenotes/index.php" CACHE STRING "Ryzom Client Release Notes URL")
SET(RYZOM_CLIENT_RELEASENOTES_RING_URL "https://core4.ryzom.dev/releasenotes_ring/index.php" CACHE STRING "Ryzom Client Release Notes URL")
#-----------------------------------------------------------------------------
# urls when compiling ryzom live client
@ -117,8 +113,8 @@ IF(WITH_RYZOM_LIVE)
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")
SET(RYZOM_CLIENT_RELEASENOTES_URL "https://app.ryzom.com/releasenotes/index.php")
SET(RYZOM_CLIENT_RELEASENOTES_RING_URL "https://app.ryzom.com/releasenotes_ring/index.php")
ENDIF()
#-----------------------------------------------------------------------------

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

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

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

@ -10,6 +10,19 @@ MACRO(FIND_CORRECT_LUA_VERSION)
IF(LUABIND_LIBRARY_RELEASE MATCHES "\\.so")
INCLUDE(CheckDepends)
# check for Lua 5.4
SET(LUA54_LIBRARIES liblua5.4 liblua-5.4 liblua.so.5.4)
FOREACH(_LIB ${LUA54_LIBRARIES})
CHECK_LINKED_LIBRARY(LUABIND_LIBRARY_RELEASE _LIB LUALIB_FOUND)
IF(LUALIB_FOUND)
MESSAGE(STATUS "Luabind is using Lua 5.4")
FIND_PACKAGE(Lua54 REQUIRED)
BREAK()
ENDIF()
ENDFOREACH()
IF(NOT LUALIB_FOUND)
# check for Lua 5.3
SET(LUA53_LIBRARIES liblua5.3 liblua-5.3 liblua.so.5.3)
@ -21,6 +34,7 @@ MACRO(FIND_CORRECT_LUA_VERSION)
BREAK()
ENDIF()
ENDFOREACH()
ENDIF()
IF(NOT LUALIB_FOUND)
# check for Lua 5.2
@ -69,7 +83,9 @@ MACRO(FIND_CORRECT_LUA_VERSION)
ENDIF()
ELSE()
# TODO: find a way to detect Lua version
IF(WITH_LUA53)
IF(WITH_LUA54)
FIND_PACKAGE(Lua54 REQUIRED)
ELSEIF(WITH_LUA53)
FIND_PACKAGE(Lua53 REQUIRED)
ELSEIF(WITH_LUA52)
FIND_PACKAGE(Lua52 REQUIRED)
@ -89,6 +105,16 @@ ENDIF()
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(WITH_LUA53)
IF(WITH_STLPORT)
LIST(APPEND LIBRARY_NAME_RELEASE luabind_stlport_lua53)

@ -356,6 +356,7 @@ MACRO(NL_SETUP_RYZOM_DEFAULT_OPTIONS)
OPTION(WITH_LUA51 "Build Ryzom Core using Lua 5.1" ON )
OPTION(WITH_LUA52 "Build Ryzom Core using Lua 5.2" OFF)
OPTION(WITH_LUA53 "Build Ryzom Core using Lua 5.3" OFF)
OPTION(WITH_LUA54 "Build Ryzom Core using Lua 5.4" OFF)
OPTION(WITH_RYZOM_CLIENT_UAC "Ask to run as Administrator" OFF)
OPTION(WITH_RYZOM_PATCH "Enable Ryzom in-game patch support" OFF)
OPTION(WITH_RYZOM_CUSTOM_PATCH_SERVER "Only use patch server from CFG file" OFF)

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

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

@ -86,6 +86,9 @@ namespace NLGUI
std::string languageCode;
/// List of domains the widget can consider secure.
std::vector<std::string> trustedDomains;
/// Web server
std::string webServer;
std::string webServerDomain;
/// Maximum concurrent MultiCurl connections per CGroupHTML instance
sint32 curlMaxConnections;
@ -969,6 +972,7 @@ namespace NLGUI
// stop all curl downalods (html and data)
void releaseDownloads();
void releaseDataDownloads();
void checkDownloads();
// _CurlWWW download finished

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

@ -118,6 +118,8 @@ namespace NLGUI
// Force only a subset of letter to be displayed. Default is 0/0xFFFFFFFF
void enableStringSelection(uint start, uint end);
void disableStringSelection();
void setShadowInSelection(bool s) { m_DisableShadowInSelection = !s; }
bool getShadowInSelection() const { return !m_DisableShadowInSelection; }
/// Get
std::string getText() const { return _HardText.empty() ? _Text : _HardText; }
@ -448,6 +450,7 @@ namespace NLGUI
bool _StrikeThrough : 1;
bool _ContinuousUpdate : 1;
bool _Setuped : 1;
bool m_DisableShadowInSelection : 1;
uint _TextSelectionStart;
uint _TextSelectionEnd;

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

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

@ -3,6 +3,7 @@
//
// This source file has been modified by the following contributors:
// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter) <dfighter1985@gmail.com>
// Copyright (C) 2014 Jan BOON (Kaetemi) <jan.boon@kaetemi.be>
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
@ -96,6 +97,7 @@ public:
_Property = 0;
_oldProperty = 0;
_Type = UNKNOWN;
m_Nullable = false;
_Changed = false;
_LastChangeGC = 0;
}
@ -235,6 +237,9 @@ private:
/// property type
EPropType _Type;
/// nullable
bool m_Nullable;
/// true if this value has changed
bool _Changed;

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

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

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

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

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

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

@ -90,6 +90,13 @@ public:
NumDrivers
};
struct TDriverInfo
{
TDriver ID;
const char *Name;
TDriverInfo(TDriver id, const char *name) : ID(id), Name(name)
{}
};
/** Structure that contain the background flags.*/
struct TBackgroundFlags
@ -163,6 +170,9 @@ public:
bool AutoLoadSample;
};
/// Return list of available sound drivers
static std::vector<TDriverInfo> getDrivers();
//@{
//@name Init methods
/// Create the audio mixer singleton and return a pointer to its instance

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@ -668,8 +668,9 @@ bool CDriverGL::setDisplay(nlWindow wnd, const GfxMode &mode, bool show, bool re
// Retrieve the WGL extensions before init the driver.
// Offscreen mode ?
if (_CurrentMode.OffScreen)
if (mode.Offscreen)
{
_CurrentMode.OffScreen = true;
if (!createWindow(mode)) return false;
HWND tmpHWND = _win;
@ -2064,6 +2065,8 @@ bool CDriverGL::setMode(const GfxMode& amode)
// if window is visible, then also restore mouse relative position.
if (!mode.DisplayDevice.empty() && mode.DisplayDevice != current.DisplayDevice)
{
setWindowStyle(EWSWindowed);
int screen = DefaultScreen(_dpy);
Window root = RootWindow(_dpy, screen);
uint mouseX = mode.Width / 2;
@ -2090,6 +2093,7 @@ bool CDriverGL::setMode(const GfxMode& amode)
XMoveWindow(_dpy, _win, newX, newY);
_WindowX = newX;
_WindowY = newY;
setWindowStyle(EWSFullscreen);
}
}
#endif
@ -3105,6 +3109,9 @@ void CDriverGL::setWindowSize(uint32 width, uint32 height)
SetWindowPos(_win, NULL, 0, 0, rc.right - rc.left, rc.bottom - rc.top, flags);
// init window width and height
if (_CurrentMode.Windowed)
{
// TODO: this gives wrong info for initial fullscreen window so limit for windowed only for now
RECT clientRect;
GetClientRect(_win, &clientRect);
_CurrentMode.Width = uint16(clientRect.right-clientRect.left);
@ -3112,6 +3119,14 @@ void CDriverGL::setWindowSize(uint32 width, uint32 height)
GetWindowRect(_win, &clientRect);
_WindowX = clientRect.left;
_WindowY = clientRect.top;
}
else
{
_CurrentMode.Width = width;
_CurrentMode.Height = height;
_WindowX = 0;
_WindowY = 0;
}
#elif defined(NL_OS_MAC)

@ -152,7 +152,7 @@ static NLMISC::TKey virtualKeycodeToNelKey(unsigned short keycode)
return NLMISC::KeyNOKEY;
}
bool CCocoaEventEmitter::pasteTextFromClipboard(ucstring &text)
bool CCocoaEventEmitter::pasteTextFromClipboard(std::string &text)
{
NSPasteboard *pasteboard = [NSPasteboard generalPasteboard];
NSArray *classArray = [NSArray arrayWithObject:[NSString class]];
@ -163,17 +163,17 @@ bool CCocoaEventEmitter::pasteTextFromClipboard(ucstring &text)
{
NSArray *objectsToPaste = [pasteboard readObjectsForClasses:classArray options:options];
NSString *nstext = [objectsToPaste objectAtIndex:0];
text.fromUtf8([nstext UTF8String]);
text = [nstext UTF8String];
return true;
}
return false;
}
bool CCocoaEventEmitter::copyTextToClipboard(const ucstring &text)
bool CCocoaEventEmitter::copyTextToClipboard(const std::string &text)
{
NSPasteboard *pasteboard = [NSPasteboard generalPasteboard];
[pasteboard clearContents];
NSArray *copiedObjects = [NSArray arrayWithObject:[NSString stringWithUTF8String:text.toUtf8().c_str()]];
NSArray *copiedObjects = [NSArray arrayWithObject:[NSString stringWithUTF8String:text.c_str()]];
[pasteboard writeObjects:copiedObjects];
return true;
}

@ -21,6 +21,7 @@
#ifndef NL_COCOA_EVENT_EMITTER_H
#define NL_COCOA_EVENT_EMITTER_H
#include <string.h>
#include "nel/misc/event_emitter.h"
#include "nel/misc/event_server.h"
#include "nel/misc/events.h"
@ -53,8 +54,8 @@ public:
virtual void submitEvents(CEventServer& server, bool allWindows);
bool handleQuitRequest();
virtual bool copyTextToClipboard(const ucstring &text);
virtual bool pasteTextFromClipboard(ucstring &text);
virtual bool copyTextToClipboard(const std::string &text);
virtual bool pasteTextFromClipboard(std::string &text);
};
}

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

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

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

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

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

@ -299,6 +299,11 @@ namespace NLGUI
void CGroupHTML::ImageDownloadCB::finish()
{
// Image setTexture will remove itself from Images while iterating over it.
// Do the swap to keep iterator safe.
std::vector<SImageInfo> vec;
vec.swap(Images);
// tmpdest file does not exist if download skipped (ie cache was used)
if (CFile::fileExists(tmpdest) || CFile::getFileSize(tmpdest) == 0)
{
@ -322,7 +327,7 @@ namespace NLGUI
// to temp file temporarily. that forces driver to reload texture from disk
// ITexture::touch() seem not to do this.
// cache was updated, first set texture as temp file
for(std::vector<SImageInfo>::iterator it = Images.begin(); it != Images.end(); ++it)
for(std::vector<SImageInfo>::iterator it = vec.begin(); it != vec.end(); ++it)
{
SImageInfo &img = *it;
Parent->setImage(img.Image, tmpdest, img.Type);
@ -339,7 +344,7 @@ namespace NLGUI
}
// even if image was cached, incase there was 'http://' image set to CViewBitmap
for(std::vector<SImageInfo>::iterator it = Images.begin(); it != Images.end(); ++it)
for(std::vector<SImageInfo>::iterator it = vec.begin(); it != vec.end(); ++it)
{
SImageInfo &img = *it;
Parent->setImage(img.Image, dest, img.Type);
@ -403,6 +408,9 @@ namespace NLGUI
// Check if domain is on TrustedDomain
bool CGroupHTML::isTrustedDomain(const string &domain)
{
if (domain == options.webServerDomain)
return true;
vector<string>::iterator it;
it = find(options.trustedDomains.begin(), options.trustedDomains.end(), domain);
return it != options.trustedDomains.end();
@ -1053,6 +1061,13 @@ namespace NLGUI
_CurlWWW = NULL;
}
releaseDataDownloads();
}
void CGroupHTML::releaseDataDownloads()
{
LOG_DL("Clear pointers to %d curls", Curls.size());
// remove all queued and already started downloads
for(std::list<CDataDownload*>::iterator it = Curls.begin(); it != Curls.end(); ++it)
{
@ -3080,14 +3095,7 @@ namespace NLGUI
paragraphChange ();
// clear the pointer to the current image download since all the button are deleted
LOG_DL("Clear pointers to %d curls", Curls.size());
// remove image refs from downloads
/*for(std::list<CDataDownload>::iterator it = Curls.begin(); it != Curls.end(); ++it)
{
it->imgs.clear();
}*/
releaseDataDownloads();
}
// ***************************************************************************
@ -3416,6 +3424,16 @@ namespace NLGUI
string finalUrl;
bool isLocal = lookupLocalFile (finalUrl, _URL.c_str(), true);
if (!isLocal && _URL.c_str()[0] == '/')
{
if (options.webServer.empty())
{
// Try again later
return;
}
finalUrl = options.webServer + finalUrl;
}
_URL = finalUrl;
CUrlParser uri (_URL);

@ -438,6 +438,14 @@ namespace NLGUI
parseSizeRef(sizeref.c_str());
}
// ------------------------------------------------------------------------------------------------
std::string CInterfaceElement::getPosParent() const
{
std::string id;
getPosParent(id);
return id;
}
// ------------------------------------------------------------------------------------------------
std::string CInterfaceElement::getSizeRefAsString() const
{

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

@ -481,7 +481,13 @@ namespace NLGUI
}
else
{
if (_HtmlDownload)
{
CGroupHTML *groupHtml = dynamic_cast<CGroupHTML*>(CWidgetManager::getInstance()->getElementFromId("ui:interface:webig:content:html"));
if (groupHtml)
groupHtml->removeImageDownload(_HtmlDownload, dynamic_cast<CViewBase*>(this));
_HtmlDownload = NULL;
}
_TextureId.setTexture (TxName.c_str (), _TxtOffsetX, _TxtOffsetY, _TxtWidth, _TxtHeight, false);
}
}

@ -99,6 +99,7 @@ namespace NLGUI
_TextSelection= false;
_TextSelectionStart= 0;
_TextSelectionEnd= std::numeric_limits<uint>::max();
m_DisableShadowInSelection = true;
_InvalidTextContext= true;
_FirstLineX = 0;
@ -1029,9 +1030,6 @@ namespace NLGUI
if (_MultiLine)
{
if (NLMISC::startsWith(propPtr, "u:"))
setTextFormatTaged(std::string(propPtr).substr(2));
else
setTextFormatTaged(CI18N::get(propPtr));
}
else
@ -1191,9 +1189,10 @@ namespace NLGUI
{
if (_Lines.empty()) return;
bool drawShadow = !(_TextSelection && m_DisableShadowInSelection);
TextContext->setHotSpot (UTextContext::BottomLeft);
TextContext->setShaded (_Shadow);
TextContext->setShadeOutline (_ShadowOutline);
TextContext->setShaded (_Shadow && drawShadow);
TextContext->setShadeOutline (_ShadowOutline && drawShadow);
TextContext->setShadeColor (shcol);
TextContext->setShadeExtent (_ShadowX*oow, _ShadowY*ooh);
TextContext->setFontSize (_FontSize*_Scale);
@ -1323,9 +1322,10 @@ namespace NLGUI
{
nlassert(_Index != 0xFFFFFFFF);
bool drawShadow = !(_TextSelection && m_DisableShadowInSelection);
TextContext->setHotSpot (UTextContext::BottomLeft);
TextContext->setShaded (_Shadow);
TextContext->setShadeOutline (_ShadowOutline);
TextContext->setShaded (_Shadow && drawShadow);
TextContext->setShadeOutline (_ShadowOutline && drawShadow);
TextContext->setShadeColor (shcol);
TextContext->setShadeExtent (_ShadowX*oow, _ShadowY*ooh);
TextContext->setFontSize (_FontSize*_Scale);

@ -435,8 +435,23 @@ namespace NLGUI
CWidgetManager::SMasterGroup &rMG = _MasterGroups[nMasterGroup];
CInterfaceElement *pIEL = rMG.Group->getElement (sEltId);
if (pIEL != NULL)
{
#if !FINAL_VERSION
if (m_LoggedMissingElement.find(sEltId) != m_LoggedMissingElement.end())
{
m_LoggedMissingElement.erase(sEltId);
nlwarning("Previously missing UI element with Id '%s' was now found!", sEltId.c_str());
}
#endif
return pIEL;
}
}
if (m_LoggedMissingElement.find(sEltId) == m_LoggedMissingElement.end())
{
m_LoggedMissingElement.insert(sEltId);
nlwarning("Could not find UI element from Id '%s'...", sEltId.c_str());
}
return NULL;
}

@ -3,7 +3,7 @@
//
// This source file has been modified by the following contributors:
// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter) <dfighter1985@gmail.com>
// Copyright (C) 2016 Jan BOON (Kaetemi) <jan.boon@kaetemi.be>
// Copyright (C) 2014-2020 Jan BOON (Kaetemi) <jan.boon@kaetemi.be>
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
@ -51,6 +51,18 @@ namespace NLMISC{
//-----------------------------------------------
void CCDBNodeLeaf::init( xmlNodePtr node, IProgressCallback &/* progressCallBack */, bool /* mapBanks */, CCDBBankHandler * /* bankHandler */ )
{
// Read nullable
CXMLAutoPtr nullable((const char*)xmlGetProp (node, (xmlChar*)"nullable"));
if ((const char *) nullable != NULL)
{
m_Nullable = (nullable.getDatas()[0] == '1');
}
else
{
m_Nullable = false;
}
// Read type
CXMLAutoPtr type((const char*)xmlGetProp (node, (xmlChar*)"type"));
nlassert((const char *) type != NULL);
@ -87,6 +99,9 @@ void CCDBNodeLeaf::init( xmlNodePtr node, IProgressCallback &/* progressCallBac
// IF it is a TEXT.
if(!strcmp(type, "TEXT"))
_Type = ICDBNode::TEXT;
// IF it is a PACKED.
else if (!strcmp(type, "PACKED"))
_Type = ICDBNode::PACKED;
// ELSE type unknown.
else
{
@ -131,6 +146,15 @@ void CCDBNodeLeaf::write( CTextId& id, FILE * f)
fprintf(f,"%" NL_I64 "d\t%s\n",_Property,id.toString().c_str());
} // write //
inline uint readPackedBitCount(CBitMemStream & f)
{
uint64 nibbleCount;
f.serial(nibbleCount, 4);
uint bits = (nibbleCount << 2) + 4;
// nlinfo("PACKED: %u bits", (uint32)(bits));
return bits;
}
//-----------------------------------------------
// readDelta
//-----------------------------------------------
@ -141,15 +165,26 @@ void CCDBNodeLeaf::readDelta(TGameCycle gc, CBitMemStream & f )
{
// Read the Property Value according to the Property Type.
uint64 recvd = 0;
uint64 isNull = 0;
if (m_Nullable)
{
f.serial(isNull, 1);
}
uint bits;
if (!isNull)
{
if (_Type == TEXT)
bits = 32;
else if (_Type == PACKED)
bits = readPackedBitCount(f);
else if (_Type <= I64)
bits = _Type;
else
bits = _Type - 64;
f.serial(recvd, bits);
}
// if the DB update is older than last DB update, abort (but after the read!!)
if(gc<_LastChangeGC)
@ -162,7 +197,9 @@ void CCDBNodeLeaf::readDelta(TGameCycle gc, CBitMemStream & f )
_Property = (sint64)recvd;
// if signed
if (! ((_Type == TEXT) || (_Type <= I64)))
if (! ((_Type == TEXT) || (_Type == PACKED) || (_Type <= I64)))
{
if (!isNull)
{
// extend bit sign
sint64 mask = (((sint64)1)<<bits)-(sint64)1;
@ -171,9 +208,13 @@ void CCDBNodeLeaf::readDelta(TGameCycle gc, CBitMemStream & f )
_Property |= ~mask;
}
}
}
if ( verboseDatabase )
{
if (!isNull)
nlinfo( "CDB: Read value (%u bits) %" NL_I64 "d", bits, _Property );
else
nlinfo( "CDB: Read null value %" NL_I64 "d", _Property );
}
// bkup the date of change

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

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

@ -17,6 +17,7 @@
// 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 "stdmisc.h"
#include <nel/misc/seven_zip.h>
#include <nel/misc/types_nl.h>

@ -188,6 +188,7 @@
# endif // NL_CPU_INTEL
# ifdef NL_OS_MAC
# include <sys/mount.h>
# include <sys/sysctl.h>
# else
# include <sys/vfs.h>
# endif

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

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

@ -268,7 +268,12 @@ void uncbServiceIdentification(CMessage &msgin, TSockId from, CCallbackNetBase &
if (isExternal)
{
#ifdef NL_OS_WINDOWS
pos = 0;
#else
nlassert(pos == 0);
#endif
}
if (inSid.get() == 0)

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

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

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

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

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

@ -47,7 +47,7 @@ if os.path.isfile("log.log"):
os.remove("log.log")
log = open("log.log", "w")
from scripts import *
from buildsite import *
from buildsite_local import *
from tools import *
sys.path.append(WorkspaceDirectory)

@ -47,7 +47,7 @@ if os.path.isfile("log.log"):
os.remove("log.log")
log = open("log.log", "w")
from scripts import *
from buildsite import *
from buildsite_local import *
from tools import *
sys.path.append(WorkspaceDirectory)

@ -47,7 +47,7 @@ if os.path.isfile("log.log"):
os.remove("log.log")
log = open("log.log", "w")
from scripts import *
from buildsite import *
from buildsite_local import *
from tools import *
sys.path.append(WorkspaceDirectory)

@ -31,7 +31,7 @@ if os.path.isfile("log.log"):
os.remove("log.log")
log = open("log.log", "w")
from scripts import *
from buildsite import *
from buildsite_local import *
from tools import *
try:

@ -31,7 +31,7 @@ if os.path.isfile("log.log"):
os.remove("log.log")
log = open("log.log", "w")
from scripts import *
from buildsite import *
from buildsite_local import *
from tools import *
sys.path.append(WorkspaceDirectory)

@ -1,15 +1,17 @@
title Ryzom Core: 0_setup.py --noconf
0_setup.py --noconf
python 0_setup.py --noconf
title Ryzom Core: 1_export.py
1_export.py
python 1_export.py
title Ryzom Core: 2_build.py
2_build.py
python 2_build.py
title Ryzom Core: 3_install.py
3_install.py
python 3_install.py
title Ryzom Core: a1_worldedit_data.py
a1_worldedit_data.py
python a1_worldedit_data.py
title Ryzom Core: b1_client_dev.py
b1_client_dev.py
python b1_client_dev.py
title Ryzom Core: b2_shard_data.py
b2_shard_data.py
python b2_shard_data.py
title Ryzom Core: b3_shard_dev.py
python b3_shard_dev.py
title Ryzom Core: Ready

@ -1,9 +1,11 @@
title Ryzom Core: 3_install.py
3_install.py
python 3_install.py
title Ryzom Core: a1_worldedit_data.py
a1_worldedit_data.py
python a1_worldedit_data.py
title Ryzom Core: b1_client_dev.py
b1_client_dev.py
python b1_client_dev.py
title Ryzom Core: b2_shard_data.py
b2_shard_data.py
python b2_shard_data.py
title Ryzom Core: b3_shard_dev.py
python b3_shard_dev.py
title Ryzom Core: Ready

@ -24,14 +24,14 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
import time, sys, os, shutil, subprocess, distutils.dir_util
import time, sys, os, shutil, subprocess, distutils.dir_util, socket
sys.path.append("configuration")
if os.path.isfile("log.log"):
os.remove("log.log")
log = open("log.log", "w")
from scripts import *
from buildsite import *
from buildsite_local import *
from tools import *
sys.path.append(WorkspaceDirectory)
@ -45,9 +45,10 @@ printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "")
if not os.path.isfile(ClientDevDirectory + "/client.cfg"):
printLog(log, ">>> Generate client.cfg <<<")
cfg = open(ClientDevDirectory + "/client.cfg", "w")
mkPath(log, ClientDevLiveDirectory)
if not os.path.isfile(ClientDevLiveDirectory + "/client.cfg"):
printLog(log, ">>> Generate live dev client.cfg <<<")
cfg = open(ClientDevLiveDirectory + "/client.cfg", "w")
cfg.write("RootConfigFilename = \"client_default.cfg\";\n")
cfg.write("PreDataPath = {\n")
cfg.write("\t\"user\", \"patch\", \"" + DataCommonDirectory + "\", \"" + GamedevDirectory + "\", \"" + LeveldesignDirectory + "/translation/translated\", \"" + InstallDirectory + "\", \"data\", \"examples\" \n")
@ -57,6 +58,24 @@ if not os.path.isfile(ClientDevDirectory + "/client.cfg"):
cfg.write("DisplayLuaDebugInfo = 1;\n")
cfg.write("AllowDebugLua = 1;\n")
cfg.write("FullScreen = 0;\n")
cfg.flush()
cfg.close()
printLog(log, "")
mkPath(log, ClientDevDirectory)
if not os.path.isfile(ClientDevDirectory + "/client.cfg"):
printLog(log, ">>> Generate local dev client.cfg <<<")
cfg = open(ClientDevDirectory + "/client.cfg", "w")
cfgr = open(ClientDevLiveDirectory + "/client.cfg", "r")
for l in cfgr:
cfg.write(l)
cfgr.close()
cfg.write("StartupHost = \"http://" + socket.gethostname() + ":9042\";\n")
cfg.write("Application = {\n")
cfg.write(" \"dev\", \"./client_ryzom_r.exe\", \"./\" \n")
cfg.write("};\n")
cfg.flush()
cfg.close()
printLog(log, "")
printLog(log, ">>> Install data <<<")
@ -64,13 +83,22 @@ for category in InstallClientData:
if (category["UnpackTo"] != None):
printLog(log, "CATEGORY " + category["Name"])
targetPath = ClientDevDirectory
targetPathLive = ClientDevLiveDirectory
if (category["UnpackTo"] != ""):
targetPath += "/" + category["UnpackTo"]
targetPathLive += "/" + category["UnpackTo"]
mkPath(log, targetPath)
mkPath(log, targetPathLive)
for package in category["Packages"]:
printLog(log, "PACKAGE " + package[0])
mkPath(log, InstallDirectory + "/" + package[0])
if "exedll" in package[0]:
if package[0] == "exedll": # or package[0] == platformExeDll # TODO: 64-bit and Linux separation of exedll, only include one
copyFileIfNeeded(log, InstallDirectory + "/" + package[0] + "/client_default.cfg", targetPath)
copyFileIfNeeded(log, InstallDirectory + "/" + package[0] + "/client_default.cfg", targetPathLive)
else:
copyFilesNoTreeIfNeeded(log, InstallDirectory + "/" + package[0], targetPath)
copyFilesNoTreeIfNeeded(log, InstallDirectory + "/" + package[0], targetPathLive)
printLog(log, "")
log.close()

@ -31,7 +31,7 @@ if os.path.isfile("log.log"):
os.remove("log.log")
log = open("log.log", "w")
from scripts import *
from buildsite import *
from buildsite_local import *
from tools import *
sys.path.append(WorkspaceDirectory)

@ -0,0 +1,152 @@
#!/usr/bin/python
#
# \file b2_shard_data.py
# \brief Install shard data
# \date 2009-02-18 16:19GMT
# \author Jan Boon (Kaetemi)
# Python port of game data build pipeline.
# Install shard data
#
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
# Copyright (C) 2009-2014 by authors
#
# 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/>.
#
import time, sys, os, shutil, subprocess, distutils.dir_util
sys.path.append("configuration")
if os.path.isfile("log.log"):
os.remove("log.log")
log = open("log.log", "w")
from scripts import *
from buildsite_local import *
from tools import *
sys.path.append(WorkspaceDirectory)
from projects import *
# Log error
printLog(log, "")
printLog(log, "-------")
printLog(log, "--- Install to shard dev")
printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "")
# Find tools
PatchmanService = findTool(log, ToolDirectories, PatchmanServiceTool, ToolSuffix)
printLog(log, "")
mkPath(log, ShardDevDirectory)
mkPath(log, ShardDevDirectory + "/local")
printLog(log, ">>> Generate shard dev local.cfg <<<")
cfg = open(ShardDevDirectory + "/local.cfg", "w")
cfg.write("WindowStyle = \"WIN\";\n")
cfg.write("Paths += {\n")
cfg.write(" \"" + ShardDevDirectory + "/local\",\n")
cfg.write(" \"" + DataCommonDirectory + "\",\n")
cfg.write(" \"" + DataShardDirectory + "\",\n")
cfg.write(" \"" + LeveldesignDirectory + "\",\n")
cfg.write(" \"" + WorldEditorFilesDirectory + "\",\n")
for dir in InstallShardDataDirectories:
mkPath(log, ShardInstallDirectory + "/" + dir)
cfg.write(" \"" + ShardInstallDirectory + "/" + dir + "\",\n")
for multiDir in InstallShardDataMultiDirectories:
dstDir = multiDir[0]
mkPath(log, ShardInstallDirectory + "/" + dstDir)
cfg.write(" \"" + ShardInstallDirectory + "/" + dstDir + "\",\n")
cfg.write("};\n")
cfg.write("RRDToolPath = \"..\\..\\..\\external\\rrdtool\\rrdtool.exe\";\n")
cfg.write("StartCommands += {\n")
cfg.write(" // \"gw_aes.transportRemove aes_l3c\",\n")
cfg.write("};\n")
cfg.write("NegFiltersWarning += {\n")
cfg.write(" \"already inserted from\",\n")
cfg.write("};\n")
cfg.write("// Allow player to stay connected to FS when services go down\n")
cfg.write("DontNeedBackend = 1;\n")
cfg.flush()
cfg.close()
printLog(log, "")
if not os.path.exists(ShardDevDirectory + "/aes_state.txt"):
printLog(log, ">>> Generate shard dev aes_state.txt <<<")
f = open(ShardDevDirectory + "/aes_state.txt", "w")
f.write("ShardOrders unifier so_autostart_off\n")
f.write("ShardOrders mainland so_autostart_off\n")
f.write("ShardOrders ring so_autostart_off\n")
f.flush()
f.close()
printLog(log, "")
mkPath(log, ShardDevDirectory + "/ras")
if not os.path.exists(ShardDevDirectory + "/ras/as_state.txt"):
printLog(log, ">>> Generate shard dev as_state.txt <<<")
f = open(ShardDevDirectory + "/ras/as_state.txt", "w")
f.write("ShardOrders unifier so_autostart_off\n")
f.write("ShardOrders mainland so_autostart_off\n")
f.write("ShardOrders ring so_autostart_off\n")
f.flush()
f.close()
printLog(log, "")
for execDir in InstallShardDataExecutables:
dstDir = execDir[0]
mkPath(log, PatchmanCfgDefaultDirectory)
mkPath(log, InstallDirectory)
mkPath(log, ShardDevDirectory + "/live/" + dstDir)
printLog(log, "SHARD PACKAGE " + dstDir)
copyFileListNoTreeIfNeeded(log, PatchmanCfgDefaultDirectory, ShardDevDirectory + "/live/" + dstDir, execDir[2])
copyFileListNoTreeIfNeeded(log, InstallDirectory, ShardDevDirectory + "/live/" + dstDir, execDir[3])
for cfgName in execDir[2]:
cfgPath = ShardDevDirectory + "/live/" + dstDir + "/" + cfgName
found = False
with open(cfgPath, "r") as f:
for l in f:
if "Paths += {" in l:
found = True
if not found:
with open(cfgPath, "a") as cfg:
cfg.write("\n")
cfg.write("Paths += {\n")
cfg.write(" \"" + ShardDevDirectory + "/live/" + dstDir + "\",\n")
cfg.write("};\n")
cfg.write("\n")
cfg.flush()
printLog(log, "")
if PatchmanService == "":
toolLogFail(log, PatchmanServiceTool, ToolSuffix)
else:
mkPath(log, PatchmanDevDirectory)
cwDir = os.getcwd().replace("\\", "/")
os.chdir(PatchmanDevDirectory)
if os.path.isfile("log.log"):
os.remove("log.log")
subprocess.call([ PatchmanService, "-C.", "-L." ])
if os.path.isfile("log.log"):
f = open("log.log", "r")
for l in f:
printLog(log, l.rstrip())
f.close()
os.chdir(cwDir)
printLog(log, "")
log.close()
if os.path.isfile("b3_shard_dev.log"):
os.remove("b3_shard_dev.log")
shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_shard_dev.log")
shutil.move("log.log", "b3_shard_dev.log")

@ -35,7 +35,7 @@ if os.path.isfile("log.log"):
os.remove("log.log")
log = open("log.log", "w")
from scripts import *
from buildsite import *
from buildsite_local import *
from tools import *
sys.path.append(WorkspaceDirectory)

@ -1,11 +1,11 @@
title Ryzom Core: 1_export.py (CHARACTERS)
1_export.py -ipj common/characters common/characters_maps_hr
python 1_export.py -ipj common/characters common/characters_maps_hr
title Ryzom Core: 2_build.py (CHARACTERS)
2_build.py -ipj common/characters common/characters_maps_hr
python 2_build.py -ipj common/characters common/characters_maps_hr
title Ryzom Core: 3_install.py (CHARACTERS)
3_install.py -ipj common/characters common/characters_maps_hr
python 3_install.py -ipj common/characters common/characters_maps_hr
title Ryzom Core: b1_client_dev.py (CHARACTERS)
b1_client_dev.py
python b1_client_dev.py
title Ryzom Core: b2_shard_data.py (CHARACTERS)
b2_shard_data.py
python b2_shard_data.py
title Ryzom Core: Ready (CHARACTERS)

@ -96,6 +96,20 @@ def needUpdateLogRemoveDest(log, source, dest):
printLog(log, "SKIP " + dest)
return 0
def needUpdateLogRemoveDestSilentSkip(log, source, dest):
if (os.path.isfile(source)):
if (os.path.isfile(dest)):
if (os.stat(source).st_mtime > os.stat(dest).st_mtime):
os.remove(dest)
printLog(log, source + " -> " + dest)
return 1
else:
return 0
printLog(log, source + " -> " + dest)
return 1
printLog(log, "MISSING " + source)
return 0
def copyFileList(log, dir_source, dir_target, files):
for fileName in files:
if fileName != ".svn" and fileName != ".." and fileName != "." and fileName != "*.*":

@ -98,4 +98,5 @@ PatchGenTool = "patch_gen"
TranslationToolsTool = "translation_tools"
BuildWorldPackedColTool = "build_world_packed_col"
R2IslandsTexturesTool = "r2_islands_textures"
PatchmanServiceTool = "ryzom_patchman_service"
SevenZipTool = "7za"

@ -35,7 +35,7 @@ if os.path.isfile("log.log"):
os.remove("log.log")
log = open("log.log", "w")
from scripts import *
from buildsite import *
from buildsite_local import *
from tools import *
sys.path.append(WorkspaceDirectory)

@ -31,7 +31,7 @@ if os.path.isfile("log.log"):
os.remove("log.log")
log = open("log.log", "w")
from scripts import *
from buildsite import *
from buildsite_local import *
from tools import *
sys.path.append(WorkspaceDirectory)

@ -1,13 +1,15 @@
title Ryzom Core: 0_setup.py (EXECUTABLES)
0_setup.py --noconf -ipj common/gamedev common/exedll common/cfg common/data_common
python 0_setup.py --noconf -ipj common/gamedev common/exedll common/cfg common/data_common
title Ryzom Core: 1_export.py (EXECUTABLES)
1_export.py -ipj common/gamedev common/exedll common/cfg common/data_common
python 1_export.py -ipj common/gamedev common/exedll common/cfg common/data_common
title Ryzom Core: 2_build.py (EXECUTABLES)
2_build.py -ipj common/gamedev common/exedll common/cfg common/data_common
python 2_build.py -ipj common/gamedev common/exedll common/cfg common/data_common
title Ryzom Core: 3_install.py (EXECUTABLES)
3_install.py -ipj common/gamedev common/exedll common/cfg common/data_common
python 3_install.py -ipj common/gamedev common/exedll common/cfg common/data_common
title Ryzom Core: b1_client_dev.py
b1_client_dev.py
python b1_client_dev.py
title Ryzom Core: b2_shard_data.py
b2_shard_data.py
python b2_shard_data.py
title Ryzom Core: b3_shard_dev.py
python b3_shard_dev.py
title Ryzom Core: Ready

@ -0,0 +1,11 @@
title Ryzom Core: 1_export.py (FAUNA)
python 1_export.py -ipj common/fauna
title Ryzom Core: 2_build.py (FAUNA)
python 2_build.py -ipj common/fauna
title Ryzom Core: 3_install.py (FAUNA)
python 3_install.py -ipj common/fauna
title Ryzom Core: b1_client_dev.py (FAUNA)
python b1_client_dev.py
title Ryzom Core: b2_shard_data.py (FAUNA)
python b2_shard_data.py
title Ryzom Core: Ready (FAUNA)

@ -1,9 +1,9 @@
title Ryzom Core: 1_export.py (INTERFACE)
1_export.py -ipj common/gamedev common/data_common common/exedll common/cfg common/interface common/sfx common/fonts common/outgame
python 1_export.py -ipj common/gamedev common/data_common common/exedll common/cfg common/interface common/sfx common/fonts common/outgame
title Ryzom Core: 2_build.py (INTERFACE)
2_build.py -ipj common/gamedev common/data_common common/exedll common/cfg common/interface common/sfx common/fonts common/outgame
python 2_build.py -ipj common/gamedev common/data_common common/exedll common/cfg common/interface common/sfx common/fonts common/outgame
title Ryzom Core: 3_install.py (INTERFACE)
3_install.py -ipj common/gamedev common/data_common common/exedll common/cfg common/interface common/sfx common/fonts common/outgame
python 3_install.py -ipj common/gamedev common/data_common common/exedll common/cfg common/interface common/sfx common/fonts common/outgame
title Ryzom Core: b1_client_dev.py
b1_client_dev.py
python b1_client_dev.py
title Ryzom Core: Ready

@ -1,11 +1,13 @@
title Ryzom Core: 1_export.py (LEVELDESIGN)
1_export.py -ipj common/gamedev common/data_common common/data_shard common/leveldesign common/exedll common/cfg shard/data_shard shard/data_language shard/data_leveldesign shard/data_game_share
python 1_export.py -ipj common/gamedev common/data_common common/data_shard common/leveldesign common/exedll common/cfg shard/data_shard shard/data_language shard/data_leveldesign shard/data_game_share
title Ryzom Core: 2_build.py (LEVELDESIGN)
2_build.py -ipj common/gamedev common/data_common common/data_shard common/leveldesign common/exedll common/cfg shard/data_shard shard/data_language shard/data_leveldesign shard/data_game_share
python 2_build.py -ipj common/gamedev common/data_common common/data_shard common/leveldesign common/exedll common/cfg shard/data_shard shard/data_language shard/data_leveldesign shard/data_game_share
title Ryzom Core: 3_install.py (LEVELDESIGN)
3_install.py -ipj common/gamedev common/data_common common/data_shard common/leveldesign common/exedll common/cfg shard/data_shard shard/data_language shard/data_leveldesign shard/data_game_share
python 3_install.py -ipj common/gamedev common/data_common common/data_shard common/leveldesign common/exedll common/cfg shard/data_shard shard/data_language shard/data_leveldesign shard/data_game_share
title Ryzom Core: b1_client_dev.py (LEVELDESIGN)
b1_client_dev.py
python b1_client_dev.py
title Ryzom Core: b2_shard_data.py (LEVELDESIGN)
b2_shard_data.py
python b2_shard_data.py
title Ryzom Core: b3_shard_dev.py
python b3_shard_dev.py
title Ryzom Core: Ready

@ -0,0 +1,11 @@
title Ryzom Core: 1_export.py (OBJECTS)
python 1_export.py -ipj common/objects
title Ryzom Core: 2_build.py (OBJECTS)
python 2_build.py -ipj common/objects
title Ryzom Core: 3_install.py (OBJECTS)
python 3_install.py -ipj common/objects
title Ryzom Core: b1_client_dev.py (OBJECTS)
python b1_client_dev.py
title Ryzom Core: b2_shard_data.py (OBJECTS)
python b2_shard_data.py
title Ryzom Core: Ready (OBJECTS)

@ -1,11 +1,11 @@
title Ryzom Core: 1_export.py (PANOPLY)
1_export.py -ipj common/characters_maps_hr
python 1_export.py -ipj common/characters_maps_hr
title Ryzom Core: 2_build.py (PANOPLY)
2_build.py -ipj common/characters_maps_hr
python 2_build.py -ipj common/characters_maps_hr
title Ryzom Core: 3_install.py (PANOPLY)
3_install.py -ipj common/characters_maps_hr
python 3_install.py -ipj common/characters_maps_hr
title Ryzom Core: b1_client_dev.py (PANOPLY)
b1_client_dev.py
python b1_client_dev.py
title Ryzom Core: b2_shard_data.py (PANOPLY)
b2_shard_data.py
python b2_shard_data.py
title Ryzom Core: Ready (PANOPLY)

@ -31,7 +31,7 @@ if os.path.isfile("log.log"):
os.remove("log.log")
log = open("log.log", "w")
from scripts import *
from buildsite import *
from buildsite_local import *
from process import *
from tools import *
from directories import *

@ -31,7 +31,7 @@ if os.path.isfile("log.log"):
os.remove("log.log")
log = open("log.log", "w")
from scripts import *
from buildsite import *
from buildsite_local import *
from process import *
from tools import *
from directories import *

@ -31,7 +31,7 @@ if os.path.isfile("log.log"):
os.remove("log.log")
log = open("log.log", "w")
from scripts import *
from buildsite import *
from buildsite_local import *
from process import *
from tools import *
from directories import *

@ -46,6 +46,7 @@ printLog(log, "")
# Setup build directories
printLog(log, ">>> Setup build directories <<<")
mkPath(log, ExportBuildDirectory + "/" + CartographerBuildDirectory)
mkPath(log, ExportBuildDirectory + "/" + CartographerMapBuildDirectory)
# Setup lookup directories
printLog(log, ">>> Setup lookup directories <<<")
@ -65,6 +66,7 @@ for dir in PropertiesExportBuildSearchPaths:
# Setup client directories
printLog(log, ">>> Setup install directories <<<")
mkPath(log, InstallDirectory + "/" + CartographerInstallDirectory)
mkPath(log, InstallDirectory + "/" + IslandsInstallDirectory)
# Setup client directories
printLog(log, ">>> Setup configuration <<<")
@ -107,7 +109,7 @@ cfg.write("InverseZTest = true;\n")
cfg.write("Vegetation = true;\n")
cfg.write("MeterPixelSize = 2;\n")
cfg.write("\n")
cfg.write("CompleteIslandsFile = \"r2_islands.xml\";\n")
cfg.write("CompleteIslandsFile = \"" + ExportBuildDirectory + "/" + CartographerBuildDirectory + "/" + IslandsXmlFile + "\";\n")
cfg.write("EntryPointsFile = \"r2_entry_points.txt\";\n")
cfg.write("\n")
cfg.close()

@ -45,6 +45,7 @@ printLog(log, "")
# Find tools
R2IslandsTextures = findTool(log, ToolDirectories, R2IslandsTexturesTool, ToolSuffix)
TgaToDds = findTool(log, ToolDirectories, TgaToDdsTool, ToolSuffix)
if R2IslandsTextures == "":
toolLogFail(log, R2IslandsTexturesTool, ToolSuffix)
@ -53,9 +54,33 @@ else:
cfgPath = ActiveProjectDirectory + "/generated/island_screenshots.cfg"
shutil.copy(cfgPath, "island_screenshots.cfg")
printLog(log, ">>> Build cartographer <<<")
mkPath(log, ExportBuildDirectory + "/" + CartographerBuildDirectory)
subprocess.call([ R2IslandsTextures ])
printLog(log, "")
printLog(log, ">>> Compress cartographer maps to DDS <<<")
if TgaToDds == "":
toolLogFail(log, TgaToDdsTool, ToolSuffix)
else:
destPath = ExportBuildDirectory + "/" + CartographerMapBuildDirectory
mkPath(log, destPath)
sourcePath = ExportBuildDirectory + "/" + CartographerBuildDirectory
mkPath(log, sourcePath)
files = os.listdir(sourcePath)
len_tga_png = len(".tga")
len_dds = len(".dds")
for fileName in files:
if isLegalFileName(fileName):
sourceFile = sourcePath + "/" + fileName
if os.path.isfile(sourceFile):
if (fileName[-len_tga_png:].lower() == ".tga") or (fileName[-len_tga_png:].lower() == ".png"):
destFile = destPath + "/" + os.path.basename(fileName)[0:-len_tga_png] + ".dds"
if needUpdateLogRemoveDest(log, sourceFile, destFile):
subprocess.call([ TgaToDds, sourceFile, "-o", destFile, "-m" ])
elif not os.path.isdir(sourceFile):
printLog(log, "FAIL ?! file not dir or file ?! " + sourceFile)
printLog(log, "")
log.close()

@ -31,7 +31,7 @@ if os.path.isfile("log.log"):
os.remove("log.log")
log = open("log.log", "w")
from scripts import *
from buildsite import *
from buildsite_local import *
from process import *
from tools import *
from directories import *
@ -43,12 +43,21 @@ printLog(log, "-------")
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
printLog(log, "")
installPath = InstallDirectory + "/" + CartographerInstallDirectory
mkPath(log, installPath)
islandsInstallPath = InstallDirectory + "/" + IslandsInstallDirectory
printLog(log, ">>> Install cartographer <<<")
mkPath(log, ExportBuildDirectory + "/" + CartographerMapBuildDirectory)
mkPath(log, installPath)
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + CartographerMapBuildDirectory, installPath, ".dds")
mkPath(log, ExportBuildDirectory + "/" + CartographerBuildDirectory)
copyFilesNoTreeIfNeeded(log, ExportBuildDirectory + "/" + CartographerBuildDirectory, installPath)
mkPath(log, islandsInstallPath)
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + CartographerBuildDirectory, islandsInstallPath, ".xml")
printLog(log, "")
log.close()

@ -30,7 +30,7 @@ if os.path.isfile("log.log"):
os.remove("log.log")
log = open("log.log", "w")
from scripts import *
from buildsite import *
from buildsite_local import *
from process import *
from tools import *
from directories import *

@ -31,7 +31,7 @@ if os.path.isfile("log.log"):
os.remove("log.log")
log = open("log.log", "w")
from scripts import *
from buildsite import *
from buildsite_local import *
from process import *
from tools import *
from directories import *

@ -31,7 +31,7 @@ if os.path.isfile("log.log"):
os.remove("log.log")
log = open("log.log", "w")
from scripts import *
from buildsite import *
from buildsite_local import *
from process import *
from tools import *
from directories import *

@ -31,7 +31,7 @@ if os.path.isfile("log.log"):
os.remove("log.log")
log = open("log.log", "w")
from scripts import *
from buildsite import *
from buildsite_local import *
from process import *
from tools import *
from directories import *

@ -31,7 +31,7 @@ if os.path.isfile("log.log"):
os.remove("log.log")
log = open("log.log", "w")
from scripts import *
from buildsite import *
from buildsite_local import *
from process import *
from tools import *
from directories import *

@ -31,7 +31,7 @@ if os.path.isfile("log.log"):
os.remove("log.log")
log = open("log.log", "w")
from scripts import *
from buildsite import *
from buildsite_local import *
from process import *
from tools import *
from directories import *

@ -31,7 +31,7 @@ if os.path.isfile("log.log"):
os.remove("log.log")
log = open("log.log", "w")
from scripts import *
from buildsite import *
from buildsite_local import *
from process import *
from tools import *
from directories import *

@ -31,7 +31,7 @@ if os.path.isfile("log.log"):
os.remove("log.log")
log = open("log.log", "w")
from scripts import *
from buildsite import *
from buildsite_local import *
from process import *
from tools import *
from directories import *

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

Loading…
Cancel
Save