Compare commits

..

346 Commits

Author SHA1 Message Date
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.
5 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
7 years ago
ulukyn 698c71f137 Fixed: Added a check for https:// npc web pages
--HG--
branch : patches-from-atys
7 years ago
ulukyn dcf959fe3d Added: luaGetElement for CInterface3DScene and getBBoxSize* for CInterface3DShape
--HG--
branch : patches-from-atys
7 years ago
Nimetu 892d11d2be Fixed: trimSeparators function
--HG--
branch : patches-from-atys
7 years ago
kervala 8f61819d43 Changed: Minor changes
--HG--
branch : patches-from-atys
7 years ago
ulukyn 0e7380599e Added: Ctrl DB Sheet tooltip can be overwrited
--HG--
branch : patches-from-atys
7 years ago
kervala cf1df3e4de Fixed: Warning
--HG--
branch : patches-from-atys
7 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
7 years ago
ulukyn 0b970371a3 Fixed: check ClientCfg.CurlCABundle is not empty before check the first char (thx nimetu)
--HG--
branch : patches-from-atys
7 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
7 years ago
ulukyn e9e2590d53 Added: getSheetFamily lua bind
--HG--
branch : patches-from-atys
7 years ago
ulukyn f7f1a6035e Added: getSheetLocalizedName and getSheetLocalizedDesc lua bind
--HG--
branch : patches-from-atys
7 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
7 years ago
ulukyn a50bd10b84 Added: setDbProp64 lua function
--HG--
branch : patches-from-atys
7 years ago
ulukyn 57406f6a8c Added: luaSetModalParentList method for container
--HG--
branch : patches-from-atys
7 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
7 years ago
ulukyn 16ce2e454c Added: add an prefiex "u:" to ask tooltip and hardcode_text to use utf8 strings
--HG--
branch : patches-from-atys
7 years ago
ulukyn c7bdaf513c Changed: use trimSeparators to remove spaces and tabs in html styles args values
--HG--
branch : patches-from-atys
7 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
7 years ago
Nuno Gonçalves ed798cb62a Add new Mektoub type used for new pets companions
--HG--
branch : patches-from-atys
7 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
7 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
7 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
11 years ago
kaetemi a3a347fab4 Add optional null bit to CDB leafs
--HG--
branch : cdb-packed
11 years ago
kaetemi ba42ed3320 Merge with default
--HG--
branch : cdb-packed
11 years ago
kaetemi 1359bbf8c2 (DB_INIT:PLR from 5364 -> 1810 bytes)
--HG--
branch : cdb-packed
11 years ago
kaetemi 5d9f3ce668 Optimize for more common case
--HG--
branch : cdb-packed
11 years ago
kaetemi 9fec239dfb Missed 4 bits
--HG--
branch : cdb-packed
11 years ago
kaetemi 06e9d20850 Add PACKED type to CDB for brick bitfields
--HG--
branch : cdb-packed
11 years ago

9
.gitignore vendored

@ -90,7 +90,6 @@ ylwrap
*.mk *.mk
# Visual Studio garbage # Visual Studio garbage
.vscode/
*.opensdf *.opensdf
UpgradeLog*.XML UpgradeLog*.XML
_UpgradeReport_Files _UpgradeReport_Files
@ -128,9 +127,6 @@ aes_state.txt
# intellij project folder # intellij project folder
.idea/ .idea/
# VSCode project folder
.vscode/
# Python cache # Python cache
*.pyd *.pyd
*.pyc *.pyc
@ -163,9 +159,7 @@ build/*
build-2010/* build-2010/*
build/* build/*
install/* install/*
win-build/
build_* build_*
install_*
nel/tools/build_gamedata/configuration/buildsite.py nel/tools/build_gamedata/configuration/buildsite.py
# Linux nel compile # Linux nel compile
@ -248,9 +242,6 @@ external_stlport
nel_tools* nel_tools*
ryzom_tools* ryzom_tools*
#personal projects
personal/
# Dumps # Dumps
*.dmp *.dmp

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

@ -34,37 +34,11 @@ IF(COMMAND cmake_policy)
ENDIF() ENDIF()
ENDIF() ENDIF()
#-----------------------------------------------------------------------------
# Downloads and install Hunger into HUNTER_ROOT directory.
OPTION(HUNTER_ENABLED "Enable Hunter package manager" OFF)
IF(HUNTER_ENABLED)
INCLUDE("CMakeModules/HunterGate.cmake")
HunterGate(
URL "https://github.com/cpp-pm/hunter/archive/v0.23.321.tar.gz"
SHA1 "5e53cbb0429037ea8e2592bfd92704b8ff3ab492"
FILEPATH "${CMAKE_CURRENT_LIST_DIR}/CMakeModules/HunterConfig.cmake"
)
# default options for hunterized build
SET(WITH_STATIC ON CACHE BOOL "static" FORCE)
SET(WITH_STATIC_DRIVERS ON CACHE BOOL "static drivers" FORCE)
SET(WITH_STATIC_CURL ON CACHE BOOL "static curl" FORCE)
SET(WITH_STATIC_LIBXML2 ON CACHE BOOL "static libxml2" FORCE)
SET(WITH_STATIC_EXTERNAL ON CACHE BOOL "static external" FORCE)
SET(WITH_EXTERNAL OFF CACHE BOOL "external libs" FORCE)
ENDIF()
#-----------------------------------------------------------------------------
INCLUDE(nel) INCLUDE(nel)
INCLUDE(ConfigureChecks) INCLUDE(ConfigureChecks)
INCLUDE(CheckDepends) INCLUDE(CheckDepends)
INCLUDE(${CMAKE_ROOT}/Modules/Documentation.cmake OPTIONAL) INCLUDE(${CMAKE_ROOT}/Modules/Documentation.cmake OPTIONAL)
MESSAGE("EXTERNAL ${WITH_EXTERNAL}")
# Force out of source builds. # Force out of source builds.
CHECK_OUT_OF_SOURCE() CHECK_OUT_OF_SOURCE()
@ -85,10 +59,6 @@ SET(NL_VERSION_PATCH 0 CACHE STRING "Patch version")
SET(YEAR "2001-${CURRENT_YEAR}") SET(YEAR "2001-${CURRENT_YEAR}")
SET(AUTHOR "Winch Gate and The Ryzom Core Community") SET(AUTHOR "Winch Gate and The Ryzom Core Community")
SET(RYZOM_VERSION_MAJOR 3)
SET(RYZOM_VERSION_MINOR 6)
SET(RYZOM_VERSION_PATCH 0)
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
# Redirect output files # Redirect output files
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
@ -128,7 +98,6 @@ SET(RYZOM_CLIENT_CREATE_ACCOUNT_URL "https://open.ryzom.dev/ams/" CACHE STRING
SET(RYZOM_CLIENT_EDIT_ACCOUNT_URL "https://open.ryzom.dev/ams/" CACHE STRING "Ryzom Client Edit Account URL") SET(RYZOM_CLIENT_EDIT_ACCOUNT_URL "https://open.ryzom.dev/ams/" CACHE STRING "Ryzom Client Edit Account URL")
SET(RYZOM_CLIENT_FORGET_PASSWORD_URL "https://open.ryzom.dev/ams/" CACHE STRING "Ryzom Client Forget Password URL") SET(RYZOM_CLIENT_FORGET_PASSWORD_URL "https://open.ryzom.dev/ams/" CACHE STRING "Ryzom Client Forget Password URL")
SET(RYZOM_CLIENT_PATCH_URL "https://cdn.ryzom.dev/open/patch/" CACHE STRING "Ryzom Client Patch URL") SET(RYZOM_CLIENT_PATCH_URL "https://cdn.ryzom.dev/open/patch/" CACHE STRING "Ryzom Client Patch URL")
SET(RYZOM_CLIENT_APP_NAME "default")
SET(RYZOM_WEBIG_MAIN_URL "https://open.ryzom.dev/" CACHE STRING "Ryzom Client WebIG Main URL") 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_WEBIG_TRUSTED_DOMAIN "open.ryzom.dev" CACHE STRING "Ryzom Client WebIG Trusted Domain")
@ -137,11 +106,10 @@ SET(RYZOM_WEBIG_TRUSTED_DOMAIN "open.ryzom.dev" CACHE STRING "Ryzom Client
# urls when compiling ryzom live client # urls when compiling ryzom live client
IF(WITH_RYZOM_LIVE) IF(WITH_RYZOM_LIVE)
MESSAGE("Using RYZOM_LIVE urls") MESSAGE("Using RYZOM_LIVE urls")
SET(RYZOM_CLIENT_CREATE_ACCOUNT_URL "https://me.ryzom.com") SET(RYZOM_CLIENT_CREATE_ACCOUNT_URL "https://account.ryzom.com/signup/from_client.php")
SET(RYZOM_CLIENT_EDIT_ACCOUNT_URL "https://me.ryzom.com") SET(RYZOM_CLIENT_EDIT_ACCOUNT_URL "https://account.ryzom.com/payment_profile/index.php")
SET(RYZOM_CLIENT_FORGET_PASSWORD_URL "https://me.ryzom.com/?forget_password=1") SET(RYZOM_CLIENT_FORGET_PASSWORD_URL "https://account.ryzom.com/payment_profile/lost_secure_password.php")
SET(RYZOM_CLIENT_PATCH_URL "http://dl.ryzom.com/patch_live") SET(RYZOM_CLIENT_PATCH_URL "http://dl.ryzom.com/patch_live")
SET(RYZOM_CLIENT_APP_NAME "ryzom_live")
SET(RYZOM_WEBIG_MAIN_URL "https://app.ryzom.com/") SET(RYZOM_WEBIG_MAIN_URL "https://app.ryzom.com/")
SET(RYZOM_WEBIG_TRUSTED_DOMAIN "app.ryzom.com") SET(RYZOM_WEBIG_TRUSTED_DOMAIN "app.ryzom.com")
@ -160,28 +128,6 @@ IF(WIN32)
ENDIF() ENDIF()
ENDIF() ENDIF()
IF(HUNTER_ENABLED)
## TODO: hack for freetype hunter package
SET(ON 1)
##
HUNTER_ADD_PACKAGE(ZLIB)
FIND_PACKAGE(ZLIB CONFIG REQUIRED)
SET(ZLIB_LIBRARY ZLIB::zlib)
HUNTER_ADD_PACKAGE(libxml2)
FIND_PACKAGE(libxml2 CONFIG REQUIRED)
SET(LIBXML2_LIBRARIES ${LIBXML2_LIBRARIES} libxml2::libxml2)
HUNTER_ADD_PACKAGE(OpenSSL)
FIND_PACKAGE(OpenSSL REQUIRED)
# TODO: is OpenSSL::Crypto only needed for WIN32?
SET(OPENSSL_LIBRARIES OpenSSL::SSL OpenSSL::Crypto)
# for precompiled headers, not needed if using TARGET_PRECOMPILE_HEADERS() from cmake 3.16+
SET(ZLIB_INCLUDE_DIR ZLIB_ROOT/include)
SET(LIBXML2_INCLUDE_DIR ${LIBXML2_ROOT}/include/libxml2)
ELSE()
FIND_PACKAGE(ZLIB REQUIRED) FIND_PACKAGE(ZLIB REQUIRED)
FIND_PACKAGE(LibXml2 REQUIRED) FIND_PACKAGE(LibXml2 REQUIRED)
FIND_PACKAGE(PNG REQUIRED) FIND_PACKAGE(PNG REQUIRED)
@ -192,7 +138,6 @@ FIND_PACKAGE(Jpeg)
IF(WIN32) IF(WIN32)
SET(OPENSSL_LIBRARIES ${OPENSSL_LIBRARIES} Crypt32.lib) SET(OPENSSL_LIBRARIES ${OPENSSL_LIBRARIES} Crypt32.lib)
ENDIF() ENDIF()
ENDIF() #hunter
IF(WITH_LIBOVR) IF(WITH_LIBOVR)
FIND_PACKAGE(LibOVR) FIND_PACKAGE(LibOVR)
@ -286,7 +231,6 @@ ENDIF()
INCLUDE(FindHelpers) INCLUDE(FindHelpers)
#TODO: hunter qt package
IF(WITH_QT5) IF(WITH_QT5)
FIND_QT5() FIND_QT5()
ENDIF() ENDIF()
@ -298,7 +242,6 @@ IF(WITH_QT)
FIND_PACKAGE(Qt4 COMPONENTS QtCore QtGui QtXml QtOpenGL REQUIRED) FIND_PACKAGE(Qt4 COMPONENTS QtCore QtGui QtXml QtOpenGL REQUIRED)
ENDIF() ENDIF()
#TODO: hunter assimp package
IF(WITH_ASSIMP) IF(WITH_ASSIMP)
FIND_PACKAGE(assimp REQUIRED) FIND_PACKAGE(assimp REQUIRED)
ENDIF() ENDIF()
@ -308,20 +251,9 @@ IF(WITH_NEL)
FIND_PACKAGE(CppTest) FIND_PACKAGE(CppTest)
ENDIF() ENDIF()
IF(HUNTER_ENABLED) IF(WITH_GUI)
IF(WITH_GUI) FIND_PACKAGE(Luabind REQUIRED)
HUNTER_ADD_PACKAGE(luabind) ENDIF()
FIND_PACKAGE(Luabind REQUIRED)
ENDIF()
HUNTER_ADD_PACKAGE(CURL)
FIND_PACKAGE(CURL CONFIG REQUIRED)
# TODO: for nelgui
SET(CURL_LIBRARIES CURL::libcurl libxml2::libxml2)
ELSE()
IF(WITH_GUI)
FIND_PACKAGE(Luabind REQUIRED)
ENDIF()
FIND_PACKAGE(CURL REQUIRED) FIND_PACKAGE(CURL REQUIRED)
@ -372,7 +304,6 @@ IF(WITH_NEL)
ENDIF() ENDIF()
ENDIF() ENDIF()
ENDIF() ENDIF()
ENDIF() #hunter
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/nel/include) INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/nel/include)
ADD_SUBDIRECTORY(nel) ADD_SUBDIRECTORY(nel)

@ -69,13 +69,7 @@ MACRO(FIND_CORRECT_LUA_VERSION)
ENDIF() ENDIF()
ELSE() ELSE()
# TODO: find a way to detect Lua version # TODO: find a way to detect Lua version
IF(HUNTER_ENABLED) IF(WITH_LUA53)
HUNTER_ADD_PACKAGE(Lua)
FIND_PACKAGE(Lua CONFIG REQUIRED)
SET(LUA_LIBRARIES Lua::lua_lib)
ELSEIF(WITH_LUA54)
FIND_PACKAGE(Lua54 REQUIRED)
ELSEIF(WITH_LUA53)
FIND_PACKAGE(Lua53 REQUIRED) FIND_PACKAGE(Lua53 REQUIRED)
ELSEIF(WITH_LUA52) ELSEIF(WITH_LUA52)
FIND_PACKAGE(Lua52 REQUIRED) FIND_PACKAGE(Lua52 REQUIRED)
@ -95,21 +89,6 @@ ENDIF()
SET(LIBRARY_NAME_RELEASE) SET(LIBRARY_NAME_RELEASE)
SET(LIBRARY_NAME_DEBUG) SET(LIBRARY_NAME_DEBUG)
IF(WITH_LUA54)
IF(WITH_STLPORT)
LIST(APPEND LIBRARY_NAME_RELEASE luabind_stlport_lua54)
LIST(APPEND LIBRARY_NAME_DEBUG luabind_stlport_lua54d)
ENDIF()
LIST(APPEND LIBRARY_NAME_RELEASE luabind_lua54)
LIST(APPEND LIBRARY_NAME_DEBUG luabind_lua54d)
ENDIF()
IF(HUNTER_ENABLED)
LIST(APPEND LIBRARY_NAME_RELEASE luabind luabind09)
LIST(APPEND LIBRARY_NAME_DEBUG luabindd luabind09-d)
ENDIF()
IF(WITH_LUA53) IF(WITH_LUA53)
IF(WITH_STLPORT) IF(WITH_STLPORT)
LIST(APPEND LIBRARY_NAME_RELEASE luabind_stlport_lua53) LIST(APPEND LIBRARY_NAME_RELEASE luabind_stlport_lua53)

@ -501,17 +501,6 @@ IF(WINSDK_INCLUDE_DIR)
IF(WINSDK_VERSION STREQUAL "7.1" AND (MSVC11 OR MSVC12 OR MSVC14)) IF(WINSDK_VERSION STREQUAL "7.1" AND (MSVC11 OR MSVC12 OR MSVC14))
ADD_DEFINITIONS(-D_USING_V110_SDK71_) ADD_DEFINITIONS(-D_USING_V110_SDK71_)
ENDIF() ENDIF()
IF(NOT DXSDK_DIR)
MESSAGE("Using DirectX from Windows SDK (${WINSDK_LIBRARY_DIRS})")
SET(DXSDK_DIR ${WINSDK_DIR})
FIND_LIBRARY(DXSDK_GUID_LIBRARY dxguid ${WINSDK_LIBRARY_DIRS})
FIND_LIBRARY(DXSDK_DINPUT_LIBRARY dinput8 ${WINSDK_LIBRARY_DIRS})
FIND_LIBRARY(DXSDK_DSOUND_LIBRARY dsound ${WINSDK_LIBRARY_DIRS})
FIND_LIBRARY(DXSDK_XAUDIO_LIBRARY xaudio2 ${WINSDK_LIBRARY_DIRS})
# TODO: FIND_LIBRARY(DXSDK_D3DX9_LIBRARY d3dx9)
FIND_LIBRARY(DXSDK_D3D9_LIBRARY d3d9 ${WINSDK_LIBRARY_DIRS})
ENDIF()
ELSE() ELSE()
IF(NOT WindowsSDK_FIND_QUIETLY) IF(NOT WindowsSDK_FIND_QUIETLY)
MESSAGE(STATUS "Warning: Unable to find Windows SDK!") MESSAGE(STATUS "Warning: Unable to find Windows SDK!")

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

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

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

@ -1,55 +1,59 @@
jobs: jobs:
- job: ubuntu18 - job: ubuntu16
timeoutInMinutes: 120 timeoutInMinutes: 120
pool: pool:
vmImage: 'ubuntu-18.04' vmImage: 'Ubuntu-16.04'
steps: steps:
- script: | - script: |
sudo apt update sudo apt-get update
sudo apt install -y software-properties-common sudo apt-get install -y software-properties-common
# sudo add-apt-repository ppa:ubuntu-toolchain-r/test sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt update sudo apt-get update
sudo apt install cmake build-essential -y sudo apt-get install cmake build-essential -y
sudo apt install gcc-8 g++-8 -y sudo apt-get install gcc-8 g++-8 -y
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 60 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 60
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-8 60 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-8 60
sudo apt install bison autoconf automake -y sudo apt-get install bison autoconf automake -y
sudo apt install libpng-dev -y sudo apt-get install libpng12-dev -y
sudo apt install libjpeg-dev -y sudo apt-get install libjpeg-dev -y
sudo apt install libgif-dev libfreetype6-dev -y sudo apt-get install libgif-dev libfreetype6-dev -y
sudo apt install freeglut3-dev -y sudo apt-get install freeglut3-dev -y
sudo apt install liblua5.2-dev libluabind-dev libcpptest-dev -y sudo apt-get install liblua5.1-dev libluabind-dev libcpptest-dev -y
sudo apt install libogg-dev libvorbis-dev libopenal-dev -y sudo apt-get install libogg-dev libvorbis-dev libopenal-dev -y
sudo apt install libavcodec-dev libavformat-dev libavdevice-dev libswscale-dev libpostproc-dev -y sudo apt-get install libavcodec-dev libavformat-dev libavdevice-dev libswscale-dev libpostproc-dev -y
sudo apt install libmysqlclient-dev -y sudo apt-get install libmysqlclient-dev -y
sudo apt install libxml2-dev -y sudo apt-get install libxml2-dev -y
sudo apt install libcurl4-openssl-dev libssl-dev -y sudo apt-get install libcurl4-openssl-dev libssl-dev -y
sudo apt install libsquish-dev -y sudo apt-get install libsquish-dev -y
sudo apt install liblzma-dev -y sudo apt-get install liblzma-dev -y
sudo apt install libgsf-1-dev -y sudo apt-get install libgsf-1-dev -y
sudo apt install qtbase5-dev qttools5-dev qttools5-dev-tools sudo apt-get install qtbase5-dev qttools5-dev qttools5-dev-tools
displayName: 'Dependencies' displayName: 'Dependencies'
- script: | - script: |
mkdir build mkdir build
cmake --version cmake --version
cd build cd build
cmake -DWITH_STATIC=ON -DWITH_NEL_TESTS=OFF -DWITH_NEL_SAMPLES=ON -DWITH_LUA51=OFF -DWITH_LUA52=ON -DWITH_RYZOM=ON -DWITH_RYZOM_SERVER=ON -DWITH_RYZOM_CLIENT=ON -DWITH_RYZOM_TOOLS=ON -DWITH_NEL_TOOLS=ON -DWITH_NELNS=ON -DWITH_NELNS_LOGIN_SYSTEM=ON -DWITH_NELNS_SERVER=ON -DWITH_QT5=ON -DWITH_LIBGSF=ON .. cmake -DWITH_STATIC=ON -DWITH_NEL_TESTS=OFF -DWITH_NEL_SAMPLES=ON -DWITH_LUA51=ON -DWITH_RYZOM=ON -DWITH_RYZOM_SERVER=ON -DWITH_RYZOM_CLIENT=ON -DWITH_RYZOM_TOOLS=ON -DWITH_NEL_TOOLS=ON -DWITH_NELNS=ON -DWITH_NELNS_LOGIN_SYSTEM=ON -DWITH_NELNS_SERVER=ON -DWITH_QT5=ON -DWITH_LIBGSF=ON ..
cat CMakeCache.txt cat CMakeCache.txt
displayName: 'CMake' displayName: 'CMake'
- script: | - script: |
cd build cd build
make -j`nproc` make -j`nproc`
displayName: 'Make' displayName: 'Make'
- job: ubuntu20 - job: ubuntu18
timeoutInMinutes: 120 timeoutInMinutes: 120
pool: pool:
vmImage: 'ubuntu-20.04' vmImage: 'ubuntu-18.04'
steps: steps:
- script: | - script: |
sudo apt update sudo apt update
sudo apt install -y software-properties-common sudo apt install -y software-properties-common
# sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt update sudo apt update
sudo apt install cmake build-essential -y sudo apt install cmake build-essential -y
sudo apt install gcc-8 g++-8 -y
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 60
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-8 60
sudo apt install bison autoconf automake -y sudo apt install bison autoconf automake -y
sudo apt install libpng-dev -y sudo apt install libpng-dev -y
sudo apt install libjpeg-dev -y sudo apt install libjpeg-dev -y
@ -77,88 +81,3 @@ jobs:
cd build cd build
make -j`nproc` make -j`nproc`
displayName: 'Make' displayName: 'Make'
- job: windows2019
timeoutInMinutes: 120
pool:
vmImage: 'windows-2019'
steps:
- checkout: self
fetchDepth: 1
- task: Cache@2
inputs:
key: 'hunter-win2019-x64-rel'
path: "c:/.hunter/_Base/Cache"
- task: CmdLine@2
inputs:
script: |
aria2c https://download.microsoft.com/download/A/E/7/AE743F1F-632B-4809-87A9-AA1BB3458E31/DXSDK_Jun10.exe
7z x DXSDK_Jun10.exe -oC:\ -r -y
del DXSDK_Jun10.exe
- task: CMake@1
inputs:
workingDirectory: build.release
cmakeArgs: '-DCMAKE_CONFIGURATION_TYPES=Release -DHUNTER_ENABLED=ON -DHUNTER_CONFIGURATION_TYPES=Release -DFINAL_VERSION=OFF -DWITH_NEL_TESTS=OFF -DWITH_NEL_SAMPLES=OFF -DWITH_NEL_TOOLS=OFF -DWITH_RYZOM_TOOLS=OFF -DWITH_RYZOM_SERVER=OFF -DWITH_RYZOM_CLIENT=ON -DWITH_DRIVER_OPENGL=ON -DWITH_DRIVER_OPENAL=ON -DWITH_DRIVER_DIRECT3D=ON -DWITH_DRIVER_XAUDIO2=ON -DDXSDK_DIR=C:/DXSDK ..'
- task: MSBuild@1
inputs:
solution: build.release/ALL_BUILD.vcxproj
maximumCpuCount: true
configuration: release
platform: 'x64'
- job: ubuntu18hunter
timeoutInMinutes: 120
pool:
vmImage: ubuntu-18.04
steps:
- checkout: self
fetchDepth: 0
- script: |
sudo apt-get update
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends libasound2-dev libgl1-mesa-dev libjack-dev libpulse-dev libxrandr-dev libxrender-dev libxxf86vm-dev
displayName: 'Dependencies'
- task: Cache@2
inputs:
key: 'hunter317-ubuntu18-rel"'
path: "$(Pipeline.Workspace)/.hunter/_Base/Cache"
- script: |
mkdir build.release
cmake --version
cd build.release
unset SYSTEM
export MAKEFLAGS=-j`nproc`
cmake -DCMAKE_BUILD_TYPE=Release -DHUNTER_ENABLED=ON -DHUNTER_CONFIGURATION_TYPES=Release -DHUNTER_ROOT="$(Pipeline.Workspace)/.hunter" -DFINAL_VERSION=OFF -DWITH_NEL_TESTS=OFF -DWITH_NEL_SAMPLES=OFF -DWITH_NEL_TOOLS=OFF -DWITH_RYZOM_TOOLS=OFF -DWITH_RYZOM_SERVER=OFF -DWITH_RYZOM_CLIENT=ON -DWITH_DRIVER_OPENGL=ON -DWITH_DRIVER_OPENAL=ON ..
displayName: 'CMake, release'
- script: |
cd build.release
make -j`nproc`
displayName: 'Make, release'
#- task: PublishPipelineArtifact@1
# inputs:
# targetPath: build.release/bin
# artifactName: RyzomUbuntu18Release
- job: macOS11
timeoutInMinutes: 120
pool:
vmImage: 'macOS-11'
steps:
- checkout: self
fetchDepth: 0
- task: Cache@2
inputs:
key: 'hunter317-macOS11-rel"'
path: "$(Pipeline.Workspace)/.hunter/_Base/Cache"
- task: CMake@1
inputs:
workingDirectory: build.release
cmakeArgs: '-GXcode -DCMAKE_CONFIGURATION_TYPES=Release -DHUNTER_ENABLED=ON -DHUNTER_STATUS_DEBUG=ON -DHUNTER_CONFIGURATION_TYPES=Release -DHUNTER_ROOT="$(Pipeline.Workspace)/.hunter" -DWITH_LIBXML2_ICONV=OFF -DFINAL_VERSION=OFF -DWITH_NEL_TESTS=OFF -DWITH_NEL_SAMPLES=OFF -DWITH_NEL_TOOLS=OFF -DWITH_RYZOM_TOOLS=OFF -DWITH_RYZOM_SERVER=OFF -DWITH_RYZOM_CLIENT=ON -DWITH_DRIVER_OPENGL=ON -DWITH_DRIVER_OPENAL=ON -DWITH_DRIVER_DIRECT3D=OFF -DWITH_DRIVER_XAUDIO2=OFF ..'
- task: Xcode@5
inputs:
actions: 'build'
configuration: Release
sdk: macosx12.0
xcWorkspacePath: 'build.release/RyzomCore.xcodeproj'
scheme: 'ALL_BUILD'
packageApp: false
#- task: PublishPipelineArtifact@1
# inputs:
# targetPath: build.release/bin/
# artifactName: RyzomClientMacOS11Release

@ -0,0 +1,2 @@
F:\tools\xsltproc\xsltproc.exe -o R:\code\ryzom\server\src\entities_game_service\database_plr.h --stringparam output header --stringparam filename DATABASE --stringparam side server --stringparam bank PLR R:\code\ryzom\common\src\game_share\generate_client_db.xslt R:\code\ryzom\common\data_common\database.xml
F:\tools\xsltproc\xsltproc.exe -o R:\code\ryzom\server\src\entities_game_service\database_plr.cpp --stringparam output cpp --stringparam filename database_plr --stringparam side server --stringparam bank PLR R:\code\ryzom\common\src\game_share\generate_client_db.xslt R:\code\ryzom\common\data_common\database.xml

@ -37,7 +37,6 @@
#cmakedefine RYZOM_CLIENT_EDIT_ACCOUNT_URL "${RYZOM_CLIENT_EDIT_ACCOUNT_URL}" #cmakedefine RYZOM_CLIENT_EDIT_ACCOUNT_URL "${RYZOM_CLIENT_EDIT_ACCOUNT_URL}"
#cmakedefine RYZOM_CLIENT_FORGET_PASSWORD_URL "${RYZOM_CLIENT_FORGET_PASSWORD_URL}" #cmakedefine RYZOM_CLIENT_FORGET_PASSWORD_URL "${RYZOM_CLIENT_FORGET_PASSWORD_URL}"
#cmakedefine RYZOM_CLIENT_PATCH_URL "${RYZOM_CLIENT_PATCH_URL}" #cmakedefine RYZOM_CLIENT_PATCH_URL "${RYZOM_CLIENT_PATCH_URL}"
#cmakedefine RYZOM_CLIENT_APP_NAME "${RYZOM_CLIENT_APP_NAME}"
#cmakedefine RYZOM_WEBIG_MAIN_URL "${RYZOM_WEBIG_MAIN_URL}" #cmakedefine RYZOM_WEBIG_MAIN_URL "${RYZOM_WEBIG_MAIN_URL}"
#cmakedefine RYZOM_WEBIG_TRUSTED_DOMAIN "${RYZOM_WEBIG_TRUSTED_DOMAIN}" #cmakedefine RYZOM_WEBIG_TRUSTED_DOMAIN "${RYZOM_WEBIG_TRUSTED_DOMAIN}"

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

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

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

@ -10,25 +10,17 @@ IF(WIN32)
ENDIF() ENDIF()
IF(WITH_3D) IF(WITH_3D)
IF(HUNTER_ENABLED) FIND_PACKAGE(FreeType)
HUNTER_ADD_PACKAGE(freetype)
FIND_PACKAGE(freetype CONFIG REQUIRED)
SET(FREETYPE_LIBRARIES freetype::freetype)
ELSE()
FIND_PACKAGE(FreeType)
ENDIF() #hunter
IF(WITH_NEL_CEGUI) IF(WITH_NEL_CEGUI)
FIND_PACKAGE(CEGUI) FIND_PACKAGE(CEGUI)
ENDIF() ENDIF()
ENDIF() ENDIF()
IF(WITH_SOUND AND NOT HUNTER_ENABLED) IF(WITH_SOUND)
FIND_PACKAGE(Ogg) FIND_PACKAGE(Ogg)
FIND_PACKAGE(Vorbis) FIND_PACKAGE(Vorbis)
IF(WITH_FFMPEG) FIND_PACKAGE(FFmpeg COMPONENTS AVCODEC AVFORMAT AVUTIL SWRESAMPLE)
FIND_PACKAGE(FFmpeg REQUIRED COMPONENTS AVCODEC AVFORMAT AVUTIL SWRESAMPLE)
ENDIF()
IF(WITH_DRIVER_OPENAL) IF(WITH_DRIVER_OPENAL)
FIND_PACKAGE(OpenAL) FIND_PACKAGE(OpenAL)

@ -1,9 +1,6 @@
// NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> // NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
// Copyright (C) 2010 Winch Gate Property Limited // Copyright (C) 2010 Winch Gate Property Limited
// //
// This source file has been modified by the following contributors:
// Copyright (C) 2020 Jan BOON (Kaetemi) <jan.boon@kaetemi.be>
//
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as // it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the // published by the Free Software Foundation, either version 3 of the

@ -1,5 +1,5 @@
// NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> // NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
// Copyright (C) 2010-2018 Winch Gate Property Limited // Copyright (C) 2010 Winch Gate Property Limited
// //
// This source file has been modified by the following contributors: // This source file has been modified by the following contributors:
// Copyright (C) 2014-2020 Jan BOON (Kaetemi) <jan.boon@kaetemi.be> // Copyright (C) 2014-2020 Jan BOON (Kaetemi) <jan.boon@kaetemi.be>

@ -1,5 +1,5 @@
// NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> // NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
// Copyright (C) 2010-2018 Winch Gate Property Limited // Copyright (C) 2010 Winch Gate Property Limited
// //
// This source file has been modified by the following contributors: // This source file has been modified by the following contributors:
// Copyright (C) 2020 Jan BOON (Kaetemi) <jan.boon@kaetemi.be> // Copyright (C) 2020 Jan BOON (Kaetemi) <jan.boon@kaetemi.be>

@ -1,5 +1,5 @@
// NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> // NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
// Copyright (C) 2010-2018 Winch Gate Property Limited // Copyright (C) 2010 Winch Gate Property Limited
// //
// This source file has been modified by the following contributors: // This source file has been modified by the following contributors:
// Copyright (C) 2020 Jan BOON (Kaetemi) <jan.boon@kaetemi.be> // Copyright (C) 2020 Jan BOON (Kaetemi) <jan.boon@kaetemi.be>

@ -837,7 +837,7 @@ private:
void restoreOriginalSkinVertices(); void restoreOriginalSkinVertices();
// apply Skin to all vertices from _OriginalSkin* to _VBuffer. // apply Skin to all vertices from _OriginalSkin* to _VBuffer.
void applySkin(void *dstVb, CSkeletonModel *skeleton); void applySkin(CSkeletonModel *skeleton);
void flagSkinVerticesForMatrixBlock(uint8 *skinFlags, CMatrixBlock &mb); void flagSkinVerticesForMatrixBlock(uint8 *skinFlags, CMatrixBlock &mb);

@ -1,5 +1,5 @@
// NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> // NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
// Copyright (C) 2010-2018 Winch Gate Property Limited // Copyright (C) 2010 Winch Gate Property Limited
// //
// This source file has been modified by the following contributors: // This source file has been modified by the following contributors:
// Copyright (C) 2014-2020 Jan BOON (Kaetemi) <jan.boon@kaetemi.be> // Copyright (C) 2014-2020 Jan BOON (Kaetemi) <jan.boon@kaetemi.be>

@ -1,5 +1,5 @@
// NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> // NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
// Copyright (C) 2010-2018 Winch Gate Property Limited // Copyright (C) 2010 Winch Gate Property Limited
// //
// This source file has been modified by the following contributors: // This source file has been modified by the following contributors:
// Copyright (C) 2014-2020 Jan BOON (Kaetemi) <jan.boon@kaetemi.be> // Copyright (C) 2014-2020 Jan BOON (Kaetemi) <jan.boon@kaetemi.be>

@ -1,5 +1,5 @@
// NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> // NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
// Copyright (C) 2010-2021 Winch Gate Property Limited // Copyright (C) 2010 Winch Gate Property Limited
// //
// This source file has been modified by the following contributors: // This source file has been modified by the following contributors:
// Copyright (C) 2020 Jan BOON (Kaetemi) <jan.boon@kaetemi.be> // Copyright (C) 2020 Jan BOON (Kaetemi) <jan.boon@kaetemi.be>
@ -38,43 +38,12 @@ class CTextureFont : public ITexture
public: public:
struct SLetterKey
{
u32char Char;
sint Size;
bool Embolden;
bool Oblique;
CFontGenerator *FontGenerator;
SLetterKey() : Char(0), Size(0), Embolden(false), Oblique(false), FontGenerator(NULL)
{
}
// Does not use FontGenerator in return value
inline uint64 getVal() const
{
return Char // 32 bits
| (uint64(Size & 0xFFFF) << 32) // 16 bits
| (uint64(Embolden) << (32+16)) // 1 bit
| (uint64(Oblique) << (32+16+1)); // 1 bit
}
bool operator<(const SLetterKey &rhs) const
{
uint64 a = getVal();
uint64 b = rhs.getVal();
return (a < b) || ((a == b) && (FontGenerator < rhs.FontGenerator));
}
};
// Holds info for glyphs rendered on atlas // Holds info for glyphs rendered on atlas
struct SGlyphInfo : SLetterKey struct SGlyphInfo
{ {
// font atlas info // font atlas info
uint32 CacheVersion; uint32 CacheVersion;
uint32 GlyphIndex;
// atlas region with padding // atlas region with padding
uint32 X, Y, W, H; uint32 X, Y, W, H;
@ -85,17 +54,30 @@ public:
// UV coords for rendered glyph without padding // UV coords for rendered glyph without padding
float U0, V0, U1, V1; float U0, V0, U1, V1;
uint32 GlyphIndex;
sint Size;
bool Embolden;
bool Oblique;
CFontGenerator *FontGenerator;
SGlyphInfo() SGlyphInfo()
: CacheVersion(0), GlyphIndex(0), : CacheVersion(0),
U0(0.f), V0(0.f), U1(0.f), V1(0.f), U0(0.f), V0(0.f), U1(0.f), V1(0.f),
X(0), Y(0), W(0), H(0), CharWidth(0), CharHeight(0) X(0), Y(0), W(0), H(0), CharWidth(0), CharHeight(0),
GlyphIndex(0), Size(0), Embolden(false), Oblique(false), FontGenerator(NULL)
{ {
} }
}; };
// Holds info for glyphs displayed on screen // Holds info for glyphs displayed on screen
struct SLetterInfo : SLetterKey struct SLetterInfo
{ {
u32char Char;
sint Size;
bool Embolden;
bool Oblique;
CFontGenerator *FontGenerator;
uint32 GlyphIndex; uint32 GlyphIndex;
uint32 CharWidth; // Displayed glyph height uint32 CharWidth; // Displayed glyph height
uint32 CharHeight; // Displayed glyph height uint32 CharHeight; // Displayed glyph height
@ -106,12 +88,29 @@ public:
SGlyphInfo* glyph; SGlyphInfo* glyph;
SLetterInfo() SLetterInfo()
: GlyphIndex(0), CharWidth(0), CharHeight(0), Top(0), Left(0), AdvX(0), : Char(0), Size(0), Embolden(false), Oblique(false), FontGenerator(NULL),
GlyphIndex(0), CharWidth(0), CharHeight(0), Top(0), Left(0), AdvX(0),
glyph(NULL) glyph(NULL)
{ {
} }
}; };
struct SLetterKey
{
u32char Char;
sint Size;
bool Embolden;
bool Oblique;
CFontGenerator *FontGenerator;
// Does not use FontGenerator in return value
uint32 getVal();
SLetterKey():Char(0), FontGenerator(NULL), Size(0), Embolden(false), Oblique(false)
{
}
};
public: public:
/** /**
@ -152,7 +151,7 @@ private:
// Keep track of available space in main texture // Keep track of available space in main texture
std::vector<NLMISC::CRect> _AtlasNodes; std::vector<NLMISC::CRect> _AtlasNodes;
std::map<SLetterKey, SLetterInfo> _Letters; std::vector <SLetterInfo> _Letters;
// lookup letter from letter cache or create new // lookup letter from letter cache or create new
SLetterInfo* findLetter(SLetterKey& k, bool insert); SLetterInfo* findLetter(SLetterKey& k, bool insert);
@ -166,7 +165,7 @@ private:
uint _GlyphSizeStep; uint _GlyphSizeStep;
// rendered glyph cache // rendered glyph cache
std::map<SLetterKey, SGlyphInfo> _GlyphCache; std::list<SGlyphInfo> _GlyphCache;
SGlyphInfo* findLetterGlyph(SLetterInfo *letter, bool insert); SGlyphInfo* findLetterGlyph(SLetterInfo *letter, bool insert);
// render letter glyph into glyph cache // render letter glyph into glyph cache

@ -1,5 +1,5 @@
// NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> // NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
// Copyright (C) 2010-2018 Winch Gate Property Limited // Copyright (C) 2010 Winch Gate Property Limited
// //
// This source file has been modified by the following contributors: // This source file has been modified by the following contributors:
// Copyright (C) 2014-2020 Jan BOON (Kaetemi) <jan.boon@kaetemi.be> // Copyright (C) 2014-2020 Jan BOON (Kaetemi) <jan.boon@kaetemi.be>

@ -2,7 +2,7 @@
// Copyright (C) 2010 Winch Gate Property Limited // Copyright (C) 2010 Winch Gate Property Limited
// //
// This source file has been modified by the following contributors: // This source file has been modified by the following contributors:
// Copyright (C) 2014-2020 Jan BOON (Kaetemi) <jan.boon@kaetemi.be> // Copyright (C) 2014 Jan BOON (Kaetemi) <jan.boon@kaetemi.be>
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as // it under the terms of the GNU Affero General Public License as

@ -2,7 +2,7 @@
// Copyright (C) 2010 Winch Gate Property Limited // Copyright (C) 2010 Winch Gate Property Limited
// //
// This source file has been modified by the following contributors: // This source file has been modified by the following contributors:
// Copyright (C) 2014-2020 Jan BOON (Kaetemi) <jan.boon@kaetemi.be> // Copyright (C) 2014 Jan BOON (Kaetemi) <jan.boon@kaetemi.be>
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as // it under the terms of the GNU Affero General Public License as

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

@ -1,83 +0,0 @@
// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
// Copyright (C) 2010-2019 Winch Gate Property Limited
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
#ifndef CL_CSS_BACKGROUND_H
#define CL_CSS_BACKGROUND_H
#include "nel/misc/types_nl.h"
#include "nel/misc/rgba.h"
#include "nel/gui/css_types.h"
#include "nel/gui/css_length.h"
namespace NLGUI
{
/**
* \brief CSS background info
* \date 2021-07-02 11:36 GMT
* \author Meelis Mägi (Nimetu)
*/
class CSSBackground
{
public:
CSSBackground()
:color(NLMISC::CRGBA::Transparent),
repeatX(CSS_VALUE_REPEAT), repeatY(CSS_VALUE_REPEAT), attachment(CSS_VALUE_SCROLL),
xAnchor(CSS_VALUE_LEFT), yAnchor(CSS_VALUE_TOP),
clip(CSS_VALUE_BORDER_BOX), origin(CSS_VALUE_PADDING_BOX), size(CSS_VALUE_AUTO)
{}
void setImage(const std::string &value);
void setPosition(const std::string &value);
void setSize(const std::string &value);
void setRepeat(const std::string &value);
void setOrigin(const std::string &value);
void setClip(const std::string &value);
void setAttachment(const std::string &value);
void setColor(const std::string &value);
public:
// TODO: only final layer has color
NLMISC::CRGBA color;
std::string image;
CSSValueType repeatX;
CSSValueType repeatY;
CSSValueType attachment;
CSSValueType xAnchor;
CSSValueType yAnchor;
CSSLength xPosition;
CSSLength yPosition;
CSSValueType clip;
CSSValueType origin;
CSSValueType size;
CSSLength width;
CSSLength height;
private:
void positionFromOne(const std::vector<std::string> &parts);
void positionFromTwo(const std::vector<std::string> &parts);
void positionFromThree(const std::vector<std::string> &parts);
void positionFromFour(const std::vector<std::string> &parts);
};
}//namespace
#endif // CL_CSS_BACKGROUND_H

@ -1,193 +0,0 @@
// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
// Copyright (C) 2010-2019 Winch Gate Property Limited
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
#ifndef NL_CSS_BACKGROUND_RENDERER_H
#define NL_CSS_BACKGROUND_RENDERER_H
#include "nel/misc/types_nl.h"
#include "nel/misc/rgba.h"
#include "nel/misc/geom_ext.h"
#include "nel/gui/css_types.h"
#include "nel/gui/css_background.h"
namespace NLGUI
{
class CInterfaceElement;
/**
* \brief Border renderer for GUI classes
* \date 2021-06-29 15:17 GMT
* \author Meelis Mägi (Nimetu)
*/
class CSSBackgroundRenderer
{
public:
// alpha value from parent
uint8 CurrentAlpha;
// TODO: should be moved to CSSBackground
sint32 TextureId;
public:
CSSBackgroundRenderer();
~CSSBackgroundRenderer();
// return true if no background is set
bool isEmpty() const
{
return m_Background.image.empty() && m_Background.color.A == 0;
}
void setModulateGlobalColor(bool m) { m_ModulateGlobalColor = m; }
void updateCoords();
void invalidateCoords() { m_Dirty = true; }
void invalidateContent() { m_Dirty = true; };
void clear();
void setBackground(const CSSBackground &bg);
// helper function to change background image
void setImage(const std::string &bgtex);
void setImageRepeat(bool b);
void setImageCover(bool b);
// helper function to change background color
void setColor(const NLMISC::CRGBA &color)
{
m_Dirty = true;
m_Background.color = color;
}
NLMISC::CRGBA getColor() const
{
return m_Background.color;
}
// override painting area to be at least the size of viewport (ie, <html> background)
void setFillViewport(bool b) {
m_Dirty = true;
m_FillViewport = b;
}
void setViewport(CInterfaceElement *root)
{
m_Dirty = true;
m_Viewport = root;
}
void setBorderArea(sint32 x, sint32 y, sint32 w, sint32 h)
{
m_Dirty = true;
m_BorderX = x;
m_BorderY = y;
m_BorderW = w;
m_BorderH = h;
}
void setPaddingArea(sint32 x, sint32 y, sint32 w, sint32 h)
{
m_Dirty = true;
m_PaddingX = x;
m_PaddingY = y;
m_PaddingW = w;
m_PaddingH = h;
}
void setContentArea(sint32 x, sint32 y, sint32 w, sint32 h)
{
m_Dirty = true;
m_ContentX = x;
m_ContentY = y;
m_ContentW = w;
m_ContentH = h;
}
// sizes for em, rem units
void setFontSize(float rootFontSize, float fontSize)
{
m_Dirty = true;
m_RootFontSize = rootFontSize;
m_FontSize = fontSize;
}
void draw();
private:
sint32 m_BorderX, m_BorderY, m_BorderW, m_BorderH;
sint32 m_PaddingX, m_PaddingY, m_PaddingW, m_PaddingH;
sint32 m_ContentX, m_ContentY, m_ContentW, m_ContentH;
// font size for 'rem'
float m_RootFontSize;
// font size for 'em'
float m_FontSize;
// viewport element for vw,wh,vmin,vmax
CInterfaceElement* m_Viewport;
struct SDrawQueue
{
sint32 TextureId;
NLMISC::CQuadUV Quad;
NLMISC::CRGBA Color;
};
std::vector<SDrawQueue> m_DrawQueue;
const sint8 m_RenderLayer;
bool m_ModulateGlobalColor;
// if true, painting area returns area at least the size of viewport (ie, <html> background)
bool m_FillViewport;
// if true, then updateCoords() is called from draw()
bool m_Dirty;
CSSBackground m_Background;
// get clip area based on background-clip
void getPaintingArea(const CSSBackground &bg, sint32 &areaX, sint32 &areaY, sint32 &areaW, sint32 &areaH) const;
// get positioning area based on background-origin
void getPositioningArea(const CSSBackground &bg, sint32 &areaX, sint32 &areaY, sint32 &areaW, sint32 &areaH) const;
// calculate image size based on background-size
void calculateSize(const CSSBackground &bg, sint32 &texW, sint32 &texH) const;
// calculate image position based on background-position
void calculatePosition(const CSSBackground &bg, sint32 &texX, sint32 &texY, sint32 &texW, sint32 &texH) const;
// calculate image tile position, size, count, and spacing based on background-repeat
void calculateTiles(const CSSBackground &bg, sint32 &texX, sint32 &texY, sint32 &texW, sint32 &texH, sint32 &tilesX, sint32 &tilesY, sint32 &spacingX, sint32 &spacingY) const;
// position, size, and count for first tile to cover an area
void getImageTile(sint32 &tilePos, sint32 &tileSize, sint32 &spacing, sint32 &tiles, sint32 areaPos, sint32 areaSize, CSSValueType repeat) const;
// push background color to draw queue
void buildColorQuads(const CSSBackground &bg);
// push background image to draw quque
void buildImageQuads(const CSSBackground &bg, sint32 textureId);
}; // CSSBackgroundRenderer
}//namespace
#endif // NL_CSS_BACKGROUND_RENDERER_H

@ -1,72 +0,0 @@
// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
// Copyright (C) 2010-2019 Winch Gate Property Limited
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
#ifndef CL_CSS_BORDER_H
#define CL_CSS_BORDER_H
#include "nel/misc/types_nl.h"
#include "nel/misc/rgba.h"
#include "nel/gui/css_types.h"
#include "nel/gui/css_length.h"
namespace NLGUI
{
/**
* \brief CSS border info
* \date 2021-07-23 09:51 GMT
* \author Meelis Mägi (Nimetu)
*/
class CSSBorder
{
public:
CSSBorder()
{
reset();
}
CSSBorder(uint width, CSSLineStyle style, NLMISC::CRGBA color)
{
set(width, style, color);
}
void reset()
{
set(CSS_LINE_WIDTH_MEDIUM, CSS_LINE_STYLE_NONE, NLMISC::CRGBA::Transparent);
}
void set(uint width, CSSLineStyle style, NLMISC::CRGBA color)
{
Width.setFloatValue(width, "px");
Style = style;
Color = color;
}
bool empty() const
{
return Style == CSS_LINE_STYLE_NONE || Style == CSS_LINE_STYLE_HIDDEN
|| Width.getFloat() == 0;
}
CSSLength Width;
CSSLineStyle Style;
NLMISC::CRGBA Color;
};
}//namespace
#endif // CL_CSS_BORDER_H

@ -1,5 +1,5 @@
// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/> // Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
// Copyright (C) 2010-2019 Winch Gate Property Limited // Copyright (C) 2010 Winch Gate Property Limited
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as // it under the terms of the GNU Affero General Public License as
@ -23,12 +23,9 @@
#include "nel/misc/rgba.h" #include "nel/misc/rgba.h"
#include "nel/misc/geom_ext.h" #include "nel/misc/geom_ext.h"
#include "nel/gui/css_types.h" #include "nel/gui/css_types.h"
#include "nel/gui/css_border.h"
namespace NLGUI namespace NLGUI
{ {
class CInterfaceElement;
/** /**
* \brief Border renderer for GUI classes * \brief Border renderer for GUI classes
* \date 2019-09-03 10:50 GMT * \date 2019-09-03 10:50 GMT
@ -37,76 +34,29 @@ namespace NLGUI
class CSSBorderRenderer class CSSBorderRenderer
{ {
private: private:
enum EBorderSide
{
BORDER_TOP_LEFT = 0,
BORDER_TOP_RIGHT,
BORDER_BOTTOM_LEFT,
BORDER_BOTTOM_RIGHT,
BORDER_LEFT_TOP,
BORDER_RIGHT_TOP,
BORDER_LEFT_BOTTOM,
BORDER_RIGHT_BOTTOM,
BORDER_TOP,
BORDER_RIGHT,
BORDER_BOTTOM,
BORDER_LEFT,
BORDER_INVALID
};
// parent element screen coordinates // parent element screen coordinates
sint32 m_XReal, m_YReal; sint32 _XReal, _YReal;
sint32 m_WReal, m_HReal; sint32 _WReal, _HReal;
struct SDrawBorder NLMISC::CQuadUV _QuadT;
{ NLMISC::CQuadUV _QuadR;
NLMISC::CQuadUV Quad; NLMISC::CQuadUV _QuadB;
NLMISC::CRGBA Color; NLMISC::CQuadUV _QuadL;
};
std::vector<SDrawBorder> m_DrawBorders;
sint8 m_RenderLayer; uint8 _RenderLayer;
bool m_ModulateGlobalColor; bool _ModulateGlobalColor;
// if true, then updateCoords() is called from draw() // if true, then updateCoords() is called from draw()
bool m_Dirty; bool _Dirty;
// UI scale, used to calculate number of segments to draw for circle // if true, then at least one border is set
float m_Scale; bool _Border;
bool _BorderTop, _BorderRight, _BorderBottom, _BorderLeft;
CSSRect<CSSBorder> m_Border;
CSSRect<sint32> m_Computed;
// font size for 'rem'
float m_RootFontSize;
// font size for 'em'
float m_FontSize;
// if true, then CSSLength values are recomputed
bool m_MustComputeValues;
// viewport element for vw,wh,vmin,vmax
CInterfaceElement* m_Viewport;
// update CSSLength values
void computeValues();
void getAdjacentBorders(EBorderSide side, EBorderSide &adjBorderL, EBorderSide &adjBorderR) const;
void getAdjacentBorderWidth(EBorderSide side, sint32 &adjWidthL, sint32 &adjWidthR) const;
// dot
void buildDotCornerStart(EBorderSide side, SDrawBorder shape, float x1, float y1, float radius);
void buildDotCornerEnd(EBorderSide side, SDrawBorder shape, float x1, float y1, float radius);
void buildDotCorner(SDrawBorder shape, float x, float y, float r, const NLMISC::CLine &line);
// draw circle, angle is CCW between 0..1 (3'o'clock being 0deg).
void buildDotSegments(SDrawBorder shape, float x, float y, float radius, float fromAngle=0.f, float toAngle=1.f);
// dash
void makeBorderQuad(EBorderSide side, SDrawBorder &shape, float x, float y, float width, float thickness) const;
void makeCornerQuad(EBorderSide side, SDrawBorder &shape) const;
void buildDashedBorder(EBorderSide side);
void buildSolidBorder(EBorderSide side);
bool hasInnerShape(CSSLineStyle style) const;
public: public:
uint32 TopWidth, RightWidth, BottomWidth, LeftWidth;
NLMISC::CRGBA TopColor, RightColor, BottomColor, LeftColor;
CSSLineStyle TopStyle, RightStyle, BottomStyle, LeftStyle;
// alpha value from parent // alpha value from parent
uint8 CurrentAlpha; uint8 CurrentAlpha;
@ -118,67 +68,21 @@ namespace NLGUI
void setRect(sint32 x, sint32 y, sint32 w, sint32 h); void setRect(sint32 x, sint32 y, sint32 w, sint32 h);
void setBorder(const CSSRect<CSSBorder> &b) { m_Dirty = true; m_Border = b; } void setWidth(uint32 top, uint32 right, uint32 bottom, uint32 left);
void setStyle(CSSLineStyle top, CSSLineStyle right, CSSLineStyle bottom, CSSLineStyle left);
void setColor(const NLMISC::CRGBA &top, const NLMISC::CRGBA &right, const NLMISC::CRGBA &bottom, const NLMISC::CRGBA &left);
void updateCoords(); void updateCoords();
void invalidateCoords() { m_Dirty = true; } void invalidateCoords() { _Dirty = _Border = true; }
void invalidateContent() { m_Dirty = true; } void invalidateContent() { _Dirty = _Border = true; };
bool isEmpty() const { uint32 getTopWidth() const;
return (m_Border.Top.Width.getFloat() + uint32 getRightWidth() const;
m_Border.Right.Width.getFloat() + uint32 getBottomWidth() const;
m_Border.Bottom.Width.getFloat() + uint32 getLeftWidth() const;
m_Border.Left.Width.getFloat()) == 0;
} uint32 getLeftRightWidth() const;
uint32 getTopBottomWidth() const;
uint32 getTopWidth() { if (m_MustComputeValues) computeValues(); return m_Computed.Top; }
uint32 getRightWidth() { if (m_MustComputeValues) computeValues(); return m_Computed.Right; }
uint32 getBottomWidth() { if (m_MustComputeValues) computeValues(); return m_Computed.Bottom; }
uint32 getLeftWidth() { if (m_MustComputeValues) computeValues(); return m_Computed.Left; }
uint32 getLeftRightWidth() { if (m_MustComputeValues) computeValues(); return m_Computed.Left + m_Computed.Right; }
uint32 getTopBottomWidth() { if (m_MustComputeValues) computeValues(); return m_Computed.Top + m_Computed.Bottom; }
NLMISC::CRGBA getTopColor() const { return m_Border.Top.Color; }
NLMISC::CRGBA getRightColor() const { return m_Border.Right.Color; }
NLMISC::CRGBA getBottomColor() const { return m_Border.Bottom.Color; }
NLMISC::CRGBA getLeftColor() const { return m_Border.Left.Color; }
void setWidth(uint width)
{
m_Dirty = true;
m_MustComputeValues = true;
m_Border.Top.Width.setFloatValue(width, "px");
m_Border.Right.Width.setFloatValue(width, "px");
m_Border.Bottom.Width.setFloatValue(width, "px");
m_Border.Left.Width.setFloatValue(width, "px");
}
void setColor(const NLMISC::CRGBA &color)
{
m_Dirty = true;
m_Border.Top.Color = color;
m_Border.Right.Color = color;
m_Border.Bottom.Color = color;
m_Border.Left.Color = color;
}
// sizes for em, rem units
void setFontSize(float rootFontSize, float fontSize)
{
m_Dirty = true;
m_MustComputeValues = true;
m_RootFontSize = rootFontSize;
m_FontSize = fontSize;
}
void setViewport(CInterfaceElement *root)
{
m_Dirty = true;
m_MustComputeValues = true;
m_Viewport = root;
}
void draw(); void draw();
}; // CSSBorderRenderer }; // CSSBorderRenderer

@ -1,76 +0,0 @@
// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
// Copyright (C) 2010-2021 Winch Gate Property Limited
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
#ifndef CL_CSS_LENGTH_H
#define CL_CSS_LENGTH_H
#include "nel/misc/types_nl.h"
#include "nel/gui/css_types.h"
namespace NLGUI
{
/**
* \brief CSS types used in GUI classes
* \date 2021-07-02 11:36 GMT
* \author Meelis Mägi (Nimetu)
*/
class CSSLength
{
public:
enum Kind {
Auto, Relative, Fixed
};
CSSLength(float value = 0, CSSUnitType unit = CSS_UNIT_NONE, Kind kind = Auto)
: m_Value(value), m_Unit(unit), m_Kind(Auto)
{}
void setAuto() { m_Kind = Auto; }
bool parseValue(const std::string &value, bool allowPercent = true, bool allowNegative = false);
void setFloatValue(float f, const std::string &unit);
float getValue() const;
float getFloat() const { return m_Value; }
bool isPercent() const { return m_Unit == CSS_UNIT_PERCENT; }
bool isAuto() const { return m_Kind == Auto; }
bool isRelative() const { return m_Kind == Relative; }
// % uses relValue
// em uses emSize
// rem uses remSize
// vw,vh,vi,vb,vmin,vmax uses vwSize/vhSize
float calculate(uint32 relValue, uint32 emSize, uint32 remSize, uint32 vwSize, uint32 whSize) const;
CSSUnitType getUnit() const { return m_Unit; }
std::string toString() const;
private:
void setUnit(const std::string &unit);
float m_Value;
CSSUnitType m_Unit;
Kind m_Kind;
};
}//namespace
#endif // CL_CSS_LENGTH_H

@ -1,5 +1,5 @@
// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/> // Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
// Copyright (C) 2010-2021 Winch Gate Property Limited // Copyright (C) 2010 Winch Gate Property Limited
// //
// This source file has been modified by the following contributors: // This source file has been modified by the following contributors:
// Copyright (C) 2020 Jan BOON (Kaetemi) <jan.boon@kaetemi.be> // Copyright (C) 2020 Jan BOON (Kaetemi) <jan.boon@kaetemi.be>
@ -73,7 +73,7 @@ namespace NLGUI
void preprocess(); void preprocess();
// parse selectors + combinators // parse selectors + combinators
std::vector<CCssSelector> parse_selector(const std::string &sel, std::string &pseudoElement, std::string::size_type &pos) const; std::vector<CCssSelector> parse_selector(const std::string &sel, std::string &pseudoElement) const;
// parse selector and style // parse selector and style
void parseRule(const std::string &selectorString, const std::string &styleString); void parseRule(const std::string &selectorString, const std::string &styleString);

@ -1,5 +1,5 @@
// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/> // Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
// Copyright (C) 2010-2021 Winch Gate Property Limited // Copyright (C) 2010 Winch Gate Property Limited
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as // it under the terms of the GNU Affero General Public License as
@ -96,8 +96,6 @@ namespace NLGUI
// match An+B rule to child index (1 based) // match An+B rule to child index (1 based)
bool matchNth(sint childNr, sint a, sint b) const; bool matchNth(sint childNr, sint a, sint b) const;
// match :lang(xx)
bool matchLang(const CHtmlElement &elm, const std::string &pseudo) const;
// parse nth-child string to 'a' and 'b' components // parse nth-child string to 'a' and 'b' components
// :nth-child(odd) // :nth-child(odd)

@ -1,5 +1,5 @@
// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/> // Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
// Copyright (C) 2010-2021 Winch Gate Property Limited // Copyright (C) 2010 Winch Gate Property Limited
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as // it under the terms of the GNU Affero General Public License as
@ -21,9 +21,6 @@
#include "nel/misc/rgba.h" #include "nel/misc/rgba.h"
#include "nel/gui/css_selector.h" #include "nel/gui/css_selector.h"
#include "nel/gui/css_types.h" #include "nel/gui/css_types.h"
#include "nel/gui/css_length.h"
#include "nel/gui/css_background.h"
#include "nel/gui/css_border.h"
namespace NLGUI namespace NLGUI
{ {
@ -63,15 +60,18 @@ namespace NLGUI
Underlined=false; Underlined=false;
StrikeThrough=false; StrikeThrough=false;
GlobalColor=false; GlobalColor=false;
GlobalColorText=false;
DisplayBlock=false; DisplayBlock=false;
Width=-1; Width=-1;
Height=-1; Height=-1;
MaxWidth=-1; MaxWidth=-1;
MaxHeight=-1; MaxHeight=-1;
// border style
BorderTopWidth = BorderRightWidth = BorderBottomWidth = BorderLeftWidth = CSS_LINE_WIDTH_MEDIUM;
BorderTopStyle = BorderRightStyle = BorderBottomStyle = BorderLeftStyle = CSS_LINE_STYLE_NONE;
BorderTopColor = BorderRightColor = BorderBottomColor = BorderLeftColor = NLMISC::CRGBA::Transparent;
// background // background
BackgroundColor=NLMISC::CRGBA::Black;
BackgroundColorOver=NLMISC::CRGBA::Black; BackgroundColorOver=NLMISC::CRGBA::Black;
MarginTop = MarginRight = MarginBottom = MarginLeft = 0;
PaddingTop = PaddingRight = PaddingBottom = PaddingLeft = 0; PaddingTop = PaddingRight = PaddingBottom = PaddingLeft = 0;
} }
@ -94,7 +94,6 @@ namespace NLGUI
NLMISC::CRGBA TextColor; NLMISC::CRGBA TextColor;
STextShadow TextShadow; STextShadow TextShadow;
bool GlobalColor; bool GlobalColor;
bool GlobalColorText;
bool Underlined; bool Underlined;
bool StrikeThrough; bool StrikeThrough;
bool DisplayBlock; bool DisplayBlock;
@ -102,10 +101,11 @@ namespace NLGUI
sint32 Height; sint32 Height;
sint32 MaxWidth; sint32 MaxWidth;
sint32 MaxHeight; sint32 MaxHeight;
CSSRect<CSSBorder> Border; uint32 BorderTopWidth, BorderRightWidth, BorderBottomWidth, BorderLeftWidth;
CSSBackground Background; CSSLineStyle BorderTopStyle, BorderRightStyle, BorderBottomStyle, BorderLeftStyle;
NLMISC::CRGBA BorderTopColor, BorderRightColor, BorderBottomColor, BorderLeftColor;
NLMISC::CRGBA BackgroundColor;
NLMISC::CRGBA BackgroundColorOver; NLMISC::CRGBA BackgroundColorOver;
uint32 MarginTop, MarginRight, MarginBottom, MarginLeft;
uint32 PaddingTop, PaddingRight, PaddingBottom, PaddingLeft; uint32 PaddingTop, PaddingRight, PaddingBottom, PaddingLeft;
std::string WhiteSpace; std::string WhiteSpace;
@ -177,24 +177,16 @@ namespace NLGUI
// parse 'padding' into 'padding-top', 'padding-left', etc // parse 'padding' into 'padding-top', 'padding-left', etc
void expandPaddingShorthand(const std::string &value, TStyle &style) const; void expandPaddingShorthand(const std::string &value, TStyle &style) const;
void expandMarginShorthand(const std::string &value, TStyle &style) const;
// expand shorthand rule, ie "border", into longhand names, ie "border-top-width" // expand shorthand rule, ie "border", into longhand names, ie "border-top-width"
// if shorthand is present in style, then its removed // if shorthand is present in style, then its removed
void expandShorthand(const std::string &prop, const std::string &value, TStyle &style) const; void expandShorthand(const std::string &prop, const std::string &value, TStyle &style) const;
// parse string value into corresponding value // parse string value into corresponding value
void applyBorderWidth(const std::string &value, CSSLength *dest, const CSSLength &currentWidth) const; void applyBorderWidth(const std::string &value, uint32 *dest, const uint32 currentWidth, const uint32 fontSize) const;
void applyBorderColor(const std::string &value, NLMISC::CRGBA *dest, const NLMISC::CRGBA &currentColor, const NLMISC::CRGBA &textColor) const; void applyBorderColor(const std::string &value, NLMISC::CRGBA *dest, const NLMISC::CRGBA &currentColor, const NLMISC::CRGBA &textColor) const;
void applyLineStyle(const std::string &value, CSSLineStyle *dest, const CSSLineStyle &currentStyle) const; void applyLineStyle(const std::string &value, CSSLineStyle *dest, const CSSLineStyle &currentStyle) const;
void applyPaddingWidth(const std::string &value, uint32 *dest, const uint32 currentPadding, uint32 fontSize) const; void applyPaddingWidth(const std::string &value, uint32 *dest, const uint32 currentPadding, uint32 fontSize) const;
void applyMarginWidth(const std::string &value, uint32 *dest, const uint32 current, uint32 fontSize) const;
// parse and replace var(--name, fallback) function
// return false if property should be ignored
bool cssFuncVar(std::string &func, const TStyle &styleRules, const std::set<std::string> &seenProperties) const;
// return false if property was not defined
bool lookupPropertyValue(const std::string &name, std::string &value, const TStyle &styleRules) const;
public: public:
void reset(); void reset();
@ -217,22 +209,15 @@ namespace NLGUI
_StyleStack.push_back(Current); _StyleStack.push_back(Current);
Current.GlobalColor = false; Current.GlobalColor = false;
// inherit GlobalColorText
Current.DisplayBlock = false; Current.DisplayBlock = false;
Current.Width=-1; Current.Width=-1;
Current.Height=-1; Current.Height=-1;
Current.MaxWidth=-1; Current.MaxWidth=-1;
Current.MaxHeight=-1; Current.MaxHeight=-1;
Current.Border.Top.reset(); Current.BorderTopWidth = Current.BorderRightWidth = Current.BorderBottomWidth = Current.BorderLeftWidth = CSS_LINE_WIDTH_MEDIUM;
Current.Border.Right.reset(); Current.BorderTopStyle = Current.BorderRightStyle = Current.BorderBottomStyle = Current.BorderLeftStyle = CSS_LINE_STYLE_NONE;
Current.Border.Bottom.reset(); Current.BorderTopColor = Current.BorderRightColor = Current.BorderBottomColor = Current.BorderLeftColor = Current.TextColor;
Current.Border.Left.reset();
Current.Background = CSSBackground();
Current.BackgroundColorOver = NLMISC::CRGBA::Transparent;
Current.MarginTop = Current.MarginRight = Current.MarginBottom = Current.MarginLeft = 0;
Current.PaddingTop = Current.PaddingRight = Current.PaddingBottom = Current.PaddingLeft = 0; Current.PaddingTop = Current.PaddingRight = Current.PaddingBottom = Current.PaddingLeft = 0;
Current.StyleRules.clear(); Current.StyleRules.clear();

@ -1,5 +1,5 @@
// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/> // Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
// Copyright (C) 2010-2019 Winch Gate Property Limited // Copyright (C) 2010 Winch Gate Property Limited
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as // it under the terms of the GNU Affero General Public License as
@ -30,12 +30,7 @@ namespace NLGUI
enum CSSLineStyle { enum CSSLineStyle {
CSS_LINE_STYLE_NONE = 0, CSS_LINE_STYLE_NONE = 0,
CSS_LINE_STYLE_HIDDEN, CSS_LINE_STYLE_HIDDEN,
CSS_LINE_STYLE_DOTTED,
CSS_LINE_STYLE_DASHED,
CSS_LINE_STYLE_SOLID, CSS_LINE_STYLE_SOLID,
CSS_LINE_STYLE_DOUBLE,
CSS_LINE_STYLE_GROOVE,
CSS_LINE_STYLE_RIDGE,
CSS_LINE_STYLE_INSET, CSS_LINE_STYLE_INSET,
CSS_LINE_STYLE_OUTSET CSS_LINE_STYLE_OUTSET
}; };
@ -47,53 +42,6 @@ namespace NLGUI
CSS_LINE_WIDTH_THICK = 5 CSS_LINE_WIDTH_THICK = 5
}; };
enum CSSUnitType {
CSS_UNIT_NONE = 0,
CSS_UNIT_EM,
CSS_UNIT_REM,
CSS_UNIT_PERCENT,
CSS_UNIT_PX,
CSS_UNIT_PT,
CSS_UNIT_VW,
CSS_UNIT_VH,
CSS_UNIT_VI,
CSS_UNIT_VB,
CSS_UNIT_VMIN,
CSS_UNIT_VMAX
};
enum CSSValueType {
CSS_VALUE_NONE = 0,
CSS_VALUE_REPEAT,
CSS_VALUE_SPACE,
CSS_VALUE_ROUND,
CSS_VALUE_NOREPEAT,
CSS_VALUE_FIXED,
CSS_VALUE_LOCAL,
CSS_VALUE_SCROLL,
CSS_VALUE_LEFT,
CSS_VALUE_CENTER,
CSS_VALUE_RIGHT,
CSS_VALUE_TOP,
CSS_VALUE_BOTTOM,
CSS_VALUE_BORDER_BOX,
CSS_VALUE_PADDING_BOX,
CSS_VALUE_CONTENT_BOX,
CSS_VALUE_LENGTH,
CSS_VALUE_AUTO,
CSS_VALUE_COVER,
CSS_VALUE_CONTAIN
};
template<typename T>
struct CSSRect
{
T Top;
T Right;
T Bottom;
T Left;
};
}//namespace }//namespace
#endif // CL_CSS_TYPES_H #endif // CL_CSS_TYPES_H

@ -1,5 +1,5 @@
// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/> // Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
// Copyright (C) 2010-2015 Winch Gate Property Limited // Copyright (C) 2010 Winch Gate Property Limited
// //
// This source file has been modified by the following contributors: // This source file has been modified by the following contributors:
// Copyright (C) 2013-2014 Laszlo KIS-ADAM (dfighter) <dfighter1985@gmail.com> // Copyright (C) 2013-2014 Laszlo KIS-ADAM (dfighter) <dfighter1985@gmail.com>

@ -1,9 +1,8 @@
// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/> // Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
// Copyright (C) 2010-2019 Winch Gate Property Limited // Copyright (C) 2010 Winch Gate Property Limited
// //
// This source file has been modified by the following contributors: // This source file has been modified by the following contributors:
// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter) <dfighter1985@gmail.com> // Copyright (C) 2013 Laszlo KIS-ADAM (dfighter) <dfighter1985@gmail.com>
// Copyright (C) 2020 Jan BOON (Kaetemi) <jan.boon@kaetemi.be>
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as // it under the terms of the GNU Affero General Public License as

@ -1,5 +1,5 @@
// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/> // Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
// Copyright (C) 2010-2019 Winch Gate Property Limited // Copyright (C) 2010 Winch Gate Property Limited
// //
// This source file has been modified by the following contributors: // This source file has been modified by the following contributors:
// Copyright (C) 2013-2014 Laszlo KIS-ADAM (dfighter) <dfighter1985@gmail.com> // Copyright (C) 2013-2014 Laszlo KIS-ADAM (dfighter) <dfighter1985@gmail.com>
@ -134,16 +134,6 @@ namespace NLGUI
void setTexturePushed(const std::string &l, const std::string &m, const std::string &r); void setTexturePushed(const std::string &l, const std::string &m, const std::string &r);
void setTextureOver(const std::string &l, const std::string &m, const std::string &r); void setTextureOver(const std::string &l, const std::string &m, const std::string &r);
// lua
void setTextureLua (const std::string &name);
void setTexturePushedLua (const std::string &name);
void setTextureOverLua (const std::string &name);
// return texture _l.tga
std::string getTexture () const;
std::string getTexturePushed () const;
std::string getTextureOver() const;
int luaGetViewText(CLuaState &ls); int luaGetViewText(CLuaState &ls);
REFLECT_EXPORT_START(CCtrlTextButton, CCtrlBaseButton) REFLECT_EXPORT_START(CCtrlTextButton, CCtrlBaseButton)
@ -158,9 +148,6 @@ namespace NLGUI
REFLECT_SINT32("wmin", getWMin, setWMin) REFLECT_SINT32("wmin", getWMin, setWMin)
REFLECT_SINT32("hmin", getHMin, setHMin) REFLECT_SINT32("hmin", getHMin, setHMin)
REFLECT_LUA_METHOD("getViewText", luaGetViewText) REFLECT_LUA_METHOD("getViewText", luaGetViewText)
REFLECT_STRING("texture", getTexture, setTextureLua);
REFLECT_STRING("texture_pushed", getTexturePushed, setTexturePushedLua);
REFLECT_STRING("texture_over", getTextureOver, setTextureOverLua);
REFLECT_EXPORT_END REFLECT_EXPORT_END
void onRemoved(); void onRemoved();

@ -1,5 +1,5 @@
// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/> // Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
// Copyright (C) 2010-2019 Winch Gate Property Limited // Copyright (C) 2010 Winch Gate Property Limited
// //
// This source file has been modified by the following contributors: // This source file has been modified by the following contributors:
// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter) <dfighter1985@gmail.com> // Copyright (C) 2013 Laszlo KIS-ADAM (dfighter) <dfighter1985@gmail.com>

@ -1,5 +1,5 @@
// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/> // Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
// Copyright (C) 2010-2020 Winch Gate Property Limited // Copyright (C) 2010 Winch Gate Property Limited
// //
// This source file has been modified by the following contributors: // This source file has been modified by the following contributors:
// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter) <dfighter1985@gmail.com> // Copyright (C) 2013 Laszlo KIS-ADAM (dfighter) <dfighter1985@gmail.com>

@ -1,5 +1,5 @@
// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/> // Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
// Copyright (C) 2010-2014 Winch Gate Property Limited // Copyright (C) 2010 Winch Gate Property Limited
// //
// This source file has been modified by the following contributors: // This source file has been modified by the following contributors:
// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter) <dfighter1985@gmail.com> // Copyright (C) 2013 Laszlo KIS-ADAM (dfighter) <dfighter1985@gmail.com>

@ -1,5 +1,5 @@
// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/> // Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
// Copyright (C) 2010-2017 Winch Gate Property Limited // Copyright (C) 2010 Winch Gate Property Limited
// //
// This source file has been modified by the following contributors: // This source file has been modified by the following contributors:
// Copyright (C) 2013-2014 Laszlo KIS-ADAM (dfighter) <dfighter1985@gmail.com> // Copyright (C) 2013-2014 Laszlo KIS-ADAM (dfighter) <dfighter1985@gmail.com>

@ -1,5 +1,5 @@
// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/> // Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
// Copyright (C) 2010-2021 Winch Gate Property Limited // Copyright (C) 2010-2019 Winch Gate Property Limited
// //
// This source file has been modified by the following contributors: // This source file has been modified by the following contributors:
// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter) <dfighter1985@gmail.com> // Copyright (C) 2013 Laszlo KIS-ADAM (dfighter) <dfighter1985@gmail.com>
@ -28,16 +28,13 @@
#include "nel/gui/ctrl_button.h" #include "nel/gui/ctrl_button.h"
#include "nel/gui/group_table.h" #include "nel/gui/group_table.h"
#include "nel/gui/html_element.h" #include "nel/gui/html_element.h"
#include "nel/gui/html_parser.h"
#include "nel/gui/css_style.h" #include "nel/gui/css_style.h"
#include "nel/gui/css_background_renderer.h"
// forward declaration // forward declaration
typedef void CURLM; typedef void CURLM;
namespace NLGUI namespace NLGUI
{ {
class CViewLink;
class CCtrlButton; class CCtrlButton;
class CCtrlTextButton; class CCtrlTextButton;
class CCtrlScroll; class CCtrlScroll;
@ -48,20 +45,6 @@ namespace NLGUI
extern std::string CurrentCookie; extern std::string CurrentCookie;
class ICurlDownloadCB
{
public:
ICurlDownloadCB(const std::string &url)
: url(url)
{}
virtual ~ICurlDownloadCB() {};
virtual void finish() = 0;
std::string url;
};
// HTML group // HTML group
/** /**
* Widget to have a resizable scrolltext and its scrollbar * Widget to have a resizable scrolltext and its scrollbar
@ -133,9 +116,6 @@ namespace NLGUI
// Browse error // Browse error
void browseError (const char *msg); void browseError (const char *msg);
// Error message with html content
void browseErrorHtml(const std::string &html);
bool isBrowsing(); bool isBrowsing();
// Update coords // Update coords
@ -148,9 +128,9 @@ namespace NLGUI
void endParagraph(); void endParagraph();
// add image download (used by view_bitmap.cpp to load web images) // add image download (used by view_bitmap.cpp to load web images)
ICurlDownloadCB *addImageDownload(const std::string &url, CViewBase *img, const CStyleParams &style = CStyleParams(), const TImageType type = NormalImage, const std::string &placeholder = "web_del.tga"); void addImageDownload(const std::string &url, CViewBase *img, const CStyleParams &style = CStyleParams(), const TImageType type = NormalImage, const std::string &placeholder = "web_del.tga");
ICurlDownloadCB *addTextureDownload(const std::string &url, sint32 &texId, CViewBase *view); // remove image from download list if present
void removeImageDownload(ICurlDownloadCB *handle, CViewBase *img); void removeImageDownload(CViewBase *img);
std::string localImageName(const std::string &url); std::string localImageName(const std::string &url);
// Timeout // Timeout
@ -158,15 +138,37 @@ namespace NLGUI
float getTimeout() const {return (float)_TimeoutValue;} float getTimeout() const {return (float)_TimeoutValue;}
// Some constants // Some constants
NLMISC::CRGBA BgColor;
NLMISC::CRGBA ErrorColor; NLMISC::CRGBA ErrorColor;
NLMISC::CRGBA LinkColor; NLMISC::CRGBA LinkColor;
NLMISC::CRGBA TextColor;
NLMISC::CRGBA H1Color;
NLMISC::CRGBA H2Color;
NLMISC::CRGBA H3Color;
NLMISC::CRGBA H4Color;
NLMISC::CRGBA H5Color;
NLMISC::CRGBA H6Color;
bool ErrorColorGlobalColor; bool ErrorColorGlobalColor;
bool LinkColorGlobalColor; bool LinkColorGlobalColor;
bool TextColorGlobalColor; bool TextColorGlobalColor;
bool H1ColorGlobalColor;
bool H2ColorGlobalColor;
bool H3ColorGlobalColor;
bool H4ColorGlobalColor;
bool H5ColorGlobalColor;
bool H6ColorGlobalColor;
uint TextFontSize;
uint H1FontSize;
uint H2FontSize;
uint H3FontSize;
uint H4FontSize;
uint H5FontSize;
uint H6FontSize;
uint TDBeginSpace; uint TDBeginSpace;
uint PBeginSpace; uint PBeginSpace;
uint LIBeginSpace; uint LIBeginSpace;
uint ULBeginSpace; uint ULBeginSpace;
uint LIIndent;
uint ULIndent; uint ULIndent;
float LineSpaceFontFactor; float LineSpaceFontFactor;
std::string DefaultButtonGroup; std::string DefaultButtonGroup;
@ -180,8 +182,8 @@ namespace NLGUI
std::string DefaultRadioButtonBitmapNormal; std::string DefaultRadioButtonBitmapNormal;
std::string DefaultRadioButtonBitmapPushed; std::string DefaultRadioButtonBitmapPushed;
std::string DefaultRadioButtonBitmapOver; std::string DefaultRadioButtonBitmapOver;
// TODO: remove from interface xml and code
std::string DefaultBackgroundBitmapView; std::string DefaultBackgroundBitmapView;
std::string CurrentLinkTitle;
struct TFormField { struct TFormField {
public: public:
@ -321,12 +323,6 @@ namespace NLGUI
// Translate a char // Translate a char
bool translateChar(u32char &output, u32char input, u32char lastChar) const; bool translateChar(u32char &output, u32char input, u32char lastChar) const;
// return true if text has same style
bool isSameStyle(CViewLink *text, const CStyleParams &style) const;
// add text link using template
void newTextButton(const std::string &text, const std::string &tpl);
void newTextLink(const std::string &text);
// Add a string in the current paragraph // Add a string in the current paragraph
void addString(const std::string &str); void addString(const std::string &str);
@ -345,9 +341,6 @@ namespace NLGUI
const std::string &overBitmap, const char *actionHandler, const char *actionHandlerParams, const std::string &tooltip, const std::string &overBitmap, const char *actionHandler, const char *actionHandlerParams, const std::string &tooltip,
const CStyleParams &style = CStyleParams()); const CStyleParams &style = CStyleParams());
// Set the background color
void setupBackground(CSSBackgroundRenderer *bg);
// Set the background color // Set the background color
void setBackgroundColor (const NLMISC::CRGBA &bgcolor); void setBackgroundColor (const NLMISC::CRGBA &bgcolor);
@ -383,16 +376,7 @@ namespace NLGUI
// true if renderer is waiting for css files to finish downloading (link rel=stylesheet) // true if renderer is waiting for css files to finish downloading (link rel=stylesheet)
bool _WaitingForStylesheet; bool _WaitingForStylesheet;
// list of css file urls that are queued up for download // list of css file urls that are queued up for download
std::vector<CHtmlParser::StyleLink> _StylesheetQueue; std::vector<std::string> _StylesheetQueue;
// <style> and downloaded <link rel=stylesheet> elements
std::vector<std::string> _HtmlStyles;
// background from <html> or <body> element
CSSBackgroundRenderer m_HtmlBackground;
CSSBackgroundRenderer m_BodyBackground;
// active table.tr background color from css or from bgcolor attribute
std::vector<NLMISC::CRGBA> m_TableRowBackgroundColor;
// Valid base href was found // Valid base href was found
bool _IgnoreBaseUrlTag; bool _IgnoreBaseUrlTag;
@ -762,7 +746,9 @@ namespace NLGUI
bool _Localize; bool _Localize;
// Current node is a text area // Current node is a text area
bool _TextArea;
std::string _TextAreaTemplate; std::string _TextAreaTemplate;
std::string _TextAreaContent;
std::string _TextAreaName; std::string _TextAreaName;
uint _TextAreaRow; uint _TextAreaRow;
uint _TextAreaCols; uint _TextAreaCols;
@ -843,108 +829,47 @@ namespace NLGUI
// decode all HTML entities // decode all HTML entities
static std::string decodeHTMLEntities(const std::string &str); static std::string decodeHTMLEntities(const std::string &str);
class CDataDownload : public ICurlDownloadCB struct CDataImageDownload
{
public:
CDataDownload(const std::string &u, const std::string &d)
: ICurlDownloadCB(u), data(NULL), fp(NULL), dest(d), redirects(0), ConnectionTimeout(60)
{}
virtual ~CDataDownload();
public:
CCurlWWWData *data;
std::string dest;
std::string tmpdest;
uint32 redirects;
FILE *fp;
uint32 ConnectionTimeout;
};
class StylesheetDownloadCB : public CDataDownload
{ {
public: public:
StylesheetDownloadCB(const std::string &url, const std::string &dest, CGroupHTML *parent) CDataImageDownload(CViewBase *img, CStyleParams style, TImageType type): Image(img), Style(style), Type(type)
: CDataDownload(url, dest), Parent(parent)
{}
virtual void finish() NL_OVERRIDE;
private:
CGroupHTML *Parent;
};
class ImageDownloadCB : public CDataDownload
{
public:
struct SImageInfo
{
SImageInfo(CViewBase *img, const CStyleParams &style, TImageType type)
: Image(img), Style(style), Type(type)
{}
CViewBase *Image;
CStyleParams Style;
TImageType Type;
};
ImageDownloadCB(const std::string &url, const std::string &dest, CViewBase *img, const CStyleParams &style, TImageType type, CGroupHTML *parent)
: CDataDownload(url, dest), Parent(parent)
{ {
addImage(img, style, type);
} }
public:
virtual void finish() NL_OVERRIDE; CViewBase * Image;
void addImage(CViewBase *img, const CStyleParams &style, TImageType type);
void removeImage(CViewBase *img);
private:
std::vector<SImageInfo> Images;
CGroupHTML *Parent;
CStyleParams Style; CStyleParams Style;
TImageType Type; TImageType Type;
}; };
class TextureDownloadCB : public CDataDownload struct CDataDownload
{ {
public: public:
TextureDownloadCB(const std::string &url, const std::string &dest, sint32 texId, CViewBase *view) CDataDownload(const std::string &u, const std::string &d, TDataType t, CViewBase *i, const std::string &s, const std::string &m, const CStyleParams &style = CStyleParams(), const TImageType imagetype = NormalImage)
: CDataDownload(url, dest) : data(NULL), fp(NULL), url(u), dest(d), type(t), luaScript(s), md5sum(m), redirects(0), ConnectionTimeout(60)
{ {
addTexture(texId, view); if (t == ImgType) imgs.push_back(CDataImageDownload(i, style, imagetype));
} }
~CDataDownload();
virtual void finish() NL_OVERRIDE;
void addTexture(sint32 texId, CViewBase *view) {
TextureIds.push_back(std::make_pair(texId, view));
}
private:
std::vector<std::pair<sint32, CViewBase *> > TextureIds;
};
class BnpDownloadCB : public CDataDownload
{
public: public:
BnpDownloadCB(const std::string &url, const std::string &dest, const std::string md5sum, const std::string lua, CGroupHTML *parent) CCurlWWWData *data;
: CDataDownload(url, dest), Parent(parent), m_md5sum(md5sum), m_lua(lua) std::string url;
{} std::string dest;
std::string luaScript;
virtual void finish() NL_OVERRIDE; std::string md5sum;
TDataType type;
private: uint32 redirects;
CGroupHTML *Parent; FILE *fp;
std::string m_md5sum; std::vector<CDataImageDownload> imgs;
std::string m_lua; uint32 ConnectionTimeout;
}; };
std::list<CDataDownload*> Curls; std::list<CDataDownload> Curls;
CURLM *MultiCurl; CURLM *MultiCurl;
int RunningCurls; int RunningCurls;
bool startCurlDownload(CDataDownload *download); bool startCurlDownload(CDataDownload &download);
void finishCurlDownload(CDataDownload *download); void finishCurlDownload(const CDataDownload &download);
void pumpCurlQueue(); void pumpCurlQueue();
void initImageDownload(); void initImageDownload();
@ -965,17 +890,16 @@ namespace NLGUI
std::string localBnpName(const std::string &url); std::string localBnpName(const std::string &url);
// add css file from <link href=".." rel="stylesheet"> to download queue // add css file from <link href=".." rel="stylesheet"> to download queue
void addStylesheetDownload(std::vector<CHtmlParser::StyleLink> links); void addStylesheetDownload(std::vector<std::string> links);
// stop all curl downalods (html and data) // stop all curl downalods (html and data)
void releaseDownloads(); void releaseDownloads();
void releaseDataDownloads();
void checkDownloads(); void checkDownloads();
// _CurlWWW download finished // _CurlWWW download finished
void htmlDownloadFinished(bool success, const std::string &error); void htmlDownloadFinished(bool success, const std::string &error);
// images, stylesheets, etc finished downloading // images, stylesheets, etc finished downloading
void dataDownloadFinished(bool success, const std::string &error, CDataDownload *data); void dataDownloadFinished(bool success, const std::string &error, CDataDownload &data);
// HtmlType download finished // HtmlType download finished
void htmlDownloadFinished(const std::string &content, const std::string &type, long code); void htmlDownloadFinished(const std::string &content, const std::string &type, long code);
@ -992,6 +916,9 @@ namespace NLGUI
// :before, :after rendering // :before, :after rendering
void renderPseudoElement(const std::string &pseudo, const CHtmlElement &elm); void renderPseudoElement(const std::string &pseudo, const CHtmlElement &elm);
// apply background from current style (for html, body)
void applyBackground(const CHtmlElement &elm);
void insertFormImageButton(const std::string &name, void insertFormImageButton(const std::string &name,
const std::string &tooltip, const std::string &tooltip,
const std::string &src, const std::string &src,
@ -1071,9 +998,11 @@ namespace NLGUI
void htmlTD(const CHtmlElement &elm); void htmlTD(const CHtmlElement &elm);
void htmlTDend(const CHtmlElement &elm); void htmlTDend(const CHtmlElement &elm);
void htmlTEXTAREA(const CHtmlElement &elm); void htmlTEXTAREA(const CHtmlElement &elm);
void htmlTEXTAREAend(const CHtmlElement &elm);
void htmlTH(const CHtmlElement &elm); void htmlTH(const CHtmlElement &elm);
void htmlTHend(const CHtmlElement &elm); void htmlTHend(const CHtmlElement &elm);
void htmlTITLE(const CHtmlElement &elm); void htmlTITLE(const CHtmlElement &elm);
void htmlTITLEend(const CHtmlElement &elm);
void htmlTR(const CHtmlElement &elm); void htmlTR(const CHtmlElement &elm);
void htmlTRend(const CHtmlElement &elm); void htmlTRend(const CHtmlElement &elm);
//void htmlU(const CHtmlElement &elm); //void htmlU(const CHtmlElement &elm);

@ -1,5 +1,5 @@
// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/> // Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
// Copyright (C) 2010-2021 Winch Gate Property Limited // Copyright (C) 2010 Winch Gate Property Limited
// //
// This source file has been modified by the following contributors: // This source file has been modified by the following contributors:
// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter) <dfighter1985@gmail.com> // Copyright (C) 2013 Laszlo KIS-ADAM (dfighter) <dfighter1985@gmail.com>
@ -55,8 +55,6 @@ namespace NLGUI
Right Right
}; };
enum TTextAlign { AlignLeft = 0, AlignCenter, AlignRight, AlignJustify };
///constructor ///constructor
CGroupParagraph(const TCtorParam &param); CGroupParagraph(const TCtorParam &param);
@ -100,8 +98,6 @@ namespace NLGUI
// the same, but with id taken from the database // the same, but with id taken from the database
void addTextChildID (const std::string &dbPath, bool multiLine = true); void addTextChildID (const std::string &dbPath, bool multiLine = true);
void setTextAlign(const TTextAlign align) { _TextAlign = align; }
protected: protected:
void delChild (CViewBase* child); void delChild (CViewBase* child);
@ -275,9 +271,6 @@ namespace NLGUI
// (the element drawn are stored in _views, _contrlos or _childrengroups of cinterfacegroup // (the element drawn are stored in _views, _contrlos or _childrengroups of cinterfacegroup
std::vector<CElementInfo> _Elements; std::vector<CElementInfo> _Elements;
// Horizontal align for elements
TTextAlign _TextAlign;
// Last parent width // Last parent width
sint32 _LastW; sint32 _LastW;

@ -1,5 +1,5 @@
// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/> // Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
// Copyright (C) 2010-2015 Winch Gate Property Limited // Copyright (C) 2010 Winch Gate Property Limited
// //
// This source file has been modified by the following contributors: // This source file has been modified by the following contributors:
// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter) <dfighter1985@gmail.com> // Copyright (C) 2013 Laszlo KIS-ADAM (dfighter) <dfighter1985@gmail.com>

@ -1,5 +1,5 @@
// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/> // Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
// Copyright (C) 2010-2019 Winch Gate Property Limited // Copyright (C) 2010 Winch Gate Property Limited
// //
// This source file has been modified by the following contributors: // This source file has been modified by the following contributors:
// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter) <dfighter1985@gmail.com> // Copyright (C) 2013 Laszlo KIS-ADAM (dfighter) <dfighter1985@gmail.com>
@ -31,7 +31,6 @@
namespace NLGUI namespace NLGUI
{ {
class CSSBorderRenderer; class CSSBorderRenderer;
class CSSBackgroundRenderer;
/** /**
* This group is used to simulate HTML cells. * This group is used to simulate HTML cells.
@ -95,10 +94,22 @@ namespace NLGUI
// Memorize max width // Memorize max width
sint32 WidthMax; sint32 WidthMax;
// The cell color
NLMISC::CRGBA BgColor;
CSSBorderRenderer* Border; CSSBorderRenderer* Border;
CSSBackgroundRenderer *Background;
uint32 PaddingTop, PaddingRight, PaddingBottom, PaddingLeft; uint32 PaddingTop, PaddingRight, PaddingBottom, PaddingLeft;
// Texture
CViewRenderer::CTextureId _TextureId;
bool _TextureTiled;
bool _TextureScaled;
// cached absolute coords for background texture
sint32 _TextureXReal;
sint32 _TextureYReal;
sint32 _TextureWReal;
sint32 _TextureHReal;
// Alignment // Alignment
TAlign Align; TAlign Align;
TVAlign VAlign; TVAlign VAlign;
@ -110,7 +121,6 @@ namespace NLGUI
// The cell is nowrap // The cell is nowrap
bool NoWrap; bool NoWrap;
// deprecated background image
void setTexture(const std::string & TxName); void setTexture(const std::string & TxName);
void setTextureTile(bool tiled); void setTextureTile(bool tiled);
void setTextureScale(bool scaled); void setTextureScale(bool scaled);
@ -124,6 +134,8 @@ namespace NLGUI
static bool getDebugUICell(){ return DebugUICell; } static bool getDebugUICell(){ return DebugUICell; }
private: private:
void updateTextureCoords();
void setEnclosedGroupDefaultParams(); void setEnclosedGroupDefaultParams();
static bool DebugUICell; static bool DebugUICell;
}; };
@ -152,18 +164,18 @@ namespace NLGUI
sint32 ForceWidthMin; sint32 ForceWidthMin;
CSSBorderRenderer* Border; CSSBorderRenderer* Border;
CSSBackgroundRenderer *Background;
// Cell has 1px solid border when <table> has 'border' attribute with width > 0 // Cell has 1px solid border when <table> has 'border' attribute with width > 0
bool CellBorder; bool CellBorder;
sint32 CellPadding; sint32 CellPadding;
sint32 CellSpacing; sint32 CellSpacing;
// The table color
NLMISC::CRGBA BgColor;
uint8 CurrentAlpha; uint8 CurrentAlpha;
bool ContinuousUpdate; bool ContinuousUpdate;
// deprecated background image
void setTexture(const std::string & TxName); void setTexture(const std::string & TxName);
void setTextureTile(bool tiled); void setTextureTile(bool tiled);
void setTextureScale(bool scaled); void setTextureScale(bool scaled);
@ -189,6 +201,18 @@ namespace NLGUI
virtual bool parse (xmlNodePtr cur, CInterfaceGroup * parentGroup); virtual bool parse (xmlNodePtr cur, CInterfaceGroup * parentGroup);
// Texture
CViewRenderer::CTextureId _TextureId;
bool _TextureTiled;
bool _TextureScaled;
// cached absolute coords for background texture
sint32 _TextureXReal;
sint32 _TextureYReal;
sint32 _TextureWReal;
sint32 _TextureHReal;
void updateTextureCoords();
// Content validated // Content validated
bool _ContentValidated; bool _ContentValidated;

@ -1,5 +1,5 @@
// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/> // Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
// Copyright (C) 2010-2017 Winch Gate Property Limited // Copyright (C) 2010 Winch Gate Property Limited
// //
// This source file has been modified by the following contributors: // This source file has been modified by the following contributors:
// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter) <dfighter1985@gmail.com> // Copyright (C) 2013 Laszlo KIS-ADAM (dfighter) <dfighter1985@gmail.com>

@ -1,5 +1,5 @@
// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/> // Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
// Copyright (C) 2010-2021 Winch Gate Property Limited // Copyright (C) 2010 Winch Gate Property Limited
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as // it under the terms of the GNU Affero General Public License as
@ -75,18 +75,6 @@ namespace NLGUI
// update Children index/parent/next/prevSibling pointers // update Children index/parent/next/prevSibling pointers
void reindexChilds(); void reindexChilds();
// escape text tag or attribute value
std::string htmlEscape(const std::string &val) const;
// serialize element attributes as string
std::string serializeAttributes(bool escape = true) const;
// serialize child elements as html string
std::string serializeChilds(bool escape = true) const;
// serialize itself and children as html string
std::string serialize(bool escape = true) const;
// debug // debug
std::string toString(bool tree = false, uint depth = 0) const; std::string toString(bool tree = false, uint depth = 0) const;
@ -96,9 +84,6 @@ namespace NLGUI
TStyle getPseudo(const std::string &key) const; TStyle getPseudo(const std::string &key) const;
void setPseudo(const std::string &key, const TStyle &style); void setPseudo(const std::string &key, const TStyle &style);
// return lang property for css :lang() pseudo class
std::string getInheritedLanguage() const;
private: private:
// pseudo elements like ":before" and ":after" // pseudo elements like ":before" and ":after"
std::map<std::string, TStyle> _Pseudo; std::map<std::string, TStyle> _Pseudo;

@ -1,5 +1,5 @@
// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/> // Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
// Copyright (C) 2010-2021 Winch Gate Property Limited // Copyright (C) 2010 Winch Gate Property Limited
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as // it under the terms of the GNU Affero General Public License as
@ -19,9 +19,6 @@
#include "nel/misc/types_nl.h" #include "nel/misc/types_nl.h"
// Forward declarations for libxml2
typedef struct _xmlNode xmlNode;
namespace NLGUI namespace NLGUI
{ {
class CHtmlElement; class CHtmlElement;
@ -34,23 +31,14 @@ namespace NLGUI
class CHtmlParser class CHtmlParser
{ {
public: public:
// <link rel=stylesheet>
struct StyleLink
{
uint Index;
std::string Url;
StyleLink(uint i, const std::string &url) : Index(i), Url(url)
{ }
};
bool parseHtml(std::string htmlString) const; bool parseHtml(std::string htmlString) const;
// parse html string into DOM, extract <style> and <link stylesheet> urls // parse html string into DOM, extract <style> tags into styleString, <link stylesheet> urls into links
void getDOM(std::string htmlString, CHtmlElement &parent, std::vector<std::string> &styles, std::vector<StyleLink> &links) const; void getDOM(std::string htmlString, CHtmlElement &parent, std::string &styleString, std::vector<std::string> &links) const;
private: private:
// iterate over libxml html tree, build DOM // iterate over libxml html tree, build DOM, and join all <style> tags together
void parseNode(xmlNode *a_node, CHtmlElement &parent, std::vector<std::string> &styles, std::vector<StyleLink> &links) const; void parseNode(xmlNode *a_node, CHtmlElement &parent, std::string &styleString, std::vector<std::string> &links) const;
// read <style> tag and add its content to styleString // read <style> tag and add its content to styleString
void parseStyle(xmlNode *a_node, std::string &styleString) const; void parseStyle(xmlNode *a_node, std::string &styleString) const;

@ -1,5 +1,5 @@
// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/> // Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
// Copyright (C) 2010-2017 Winch Gate Property Limited // Copyright (C) 2010 Winch Gate Property Limited
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as // it under the terms of the GNU Affero General Public License as

@ -1,5 +1,5 @@
// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/> // Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
// Copyright (C) 2010-2017 Winch Gate Property Limited // Copyright (C) 2010 Winch Gate Property Limited
// //
// This source file has been modified by the following contributors: // This source file has been modified by the following contributors:
// Copyright (C) 2018 Jan BOON (Kaetemi) <jan.boon@kaetemi.be> // Copyright (C) 2018 Jan BOON (Kaetemi) <jan.boon@kaetemi.be>

@ -1,5 +1,5 @@
// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/> // Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
// Copyright (C) 2010-2018 Winch Gate Property Limited // Copyright (C) 2010 Winch Gate Property Limited
// //
// This source file has been modified by the following contributors: // This source file has been modified by the following contributors:
// Copyright (C) 2013-2014 Laszlo KIS-ADAM (dfighter) <dfighter1985@gmail.com> // Copyright (C) 2013-2014 Laszlo KIS-ADAM (dfighter) <dfighter1985@gmail.com>
@ -383,7 +383,6 @@ namespace NLGUI
void dummySet(const std::string &value); void dummySet(const std::string &value);
public: public:
// export some properties // export some properties
REFLECT_EXPORT_START(CInterfaceElement, CReflectable) REFLECT_EXPORT_START(CInterfaceElement, CReflectable)
REFLECT_BOOL ("active", getActive, setActive); REFLECT_BOOL ("active", getActive, setActive);
@ -398,6 +397,7 @@ namespace NLGUI
REFLECT_SINT32 ("h_real", getHReal, dummySet); REFLECT_SINT32 ("h_real", getHReal, dummySet);
REFLECT_STRING ("id", getIdByValue, dummySet); REFLECT_STRING ("id", getIdByValue, dummySet);
REFLECT_STRING ("sizeref", getSizeRefAsString, setSizeRef); REFLECT_STRING ("sizeref", getSizeRefAsString, setSizeRef);
REFLECT_STRING ("posparent", getPosParent, setPosParent);
REFLECT_LUA_METHOD("updateCoords", luaUpdateCoords); REFLECT_LUA_METHOD("updateCoords", luaUpdateCoords);
REFLECT_LUA_METHOD("invalidateCoords", luaInvalidateCoords); REFLECT_LUA_METHOD("invalidateCoords", luaInvalidateCoords);
REFLECT_LUA_METHOD("invalidateContent", luaInvalidateContent); REFLECT_LUA_METHOD("invalidateContent", luaInvalidateContent);
@ -524,6 +524,8 @@ namespace NLGUI
void parseSizeParent( const std::string &id ); void parseSizeParent( const std::string &id );
void setSizeParent( const std::string &id ); void setSizeParent( const std::string &id );
void getSizeParent( std::string &id ) const; void getSizeParent( std::string &id ) const;
std::string getPosParent() const;
void setSerializable( bool b ){ serializable = b; } void setSerializable( bool b ){ serializable = b; }
bool IsSerializable() const{ return serializable; } bool IsSerializable() const{ return serializable; }

@ -1,5 +1,5 @@
// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/> // Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
// Copyright (C) 2010-2019 Winch Gate Property Limited // Copyright (C) 2010 Winch Gate Property Limited
// //
// This source file has been modified by the following contributors: // This source file has been modified by the following contributors:
// Copyright (C) 2013-2015 Laszlo KIS-ADAM (dfighter) <dfighter1985@gmail.com> // Copyright (C) 2013-2015 Laszlo KIS-ADAM (dfighter) <dfighter1985@gmail.com>
@ -184,7 +184,7 @@ namespace NLGUI
// *************************************************************************** // ***************************************************************************
// Read a CSS length value, return true if one of supported units '%, rem, em, px, pt' // Read a CSS length value, return true if one of supported units '%, rem, em, px, pt'
// On failure: 'value' and 'unit' values are undefined // On failure: 'value' and 'unit' values are undefined
bool getCssLength (float &value, std::string &unit, const std::string &str, bool neg = false); bool getCssLength (float &value, std::string &unit, const std::string &str);
// Read a width HTML parameter. "100" or "100%". Returns true if percent (0 ~ 1) else false // Read a width HTML parameter. "100" or "100%". Returns true if percent (0 ~ 1) else false
bool getPercentage (sint32 &width, float &percent, const char *str); bool getPercentage (sint32 &width, float &percent, const char *str);

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

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

@ -1,5 +1,5 @@
// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/> // Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
// Copyright (C) 2010-2016 Winch Gate Property Limited // Copyright (C) 2010 Winch Gate Property Limited
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as // it under the terms of the GNU Affero General Public License as

@ -1,5 +1,5 @@
// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/> // Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
// Copyright (C) 2010-2019 Winch Gate Property Limited // Copyright (C) 2010 Winch Gate Property Limited
// //
// This source file has been modified by the following contributors: // This source file has been modified by the following contributors:
// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter) <dfighter1985@gmail.com> // Copyright (C) 2013 Laszlo KIS-ADAM (dfighter) <dfighter1985@gmail.com>
@ -28,7 +28,6 @@
namespace NLGUI namespace NLGUI
{ {
class ICurlDownloadCB;
/** /**
* class implementing a bitmap view * class implementing a bitmap view
@ -62,7 +61,7 @@ namespace NLGUI
_TxtHeight = -1; _TxtHeight = -1;
// Support for https://.. textures // Support for https://.. textures
_HtmlDownload = NULL; _HtmlDownload = false;
} }
/// Destructor /// Destructor
@ -142,9 +141,7 @@ namespace NLGUI
bool _Flip : 1; bool _Flip : 1;
bool _Tile : 1; bool _Tile : 1;
bool _InheritGCAlpha : 1; bool _InheritGCAlpha : 1;
bool _HtmlDownload : 1;
// pointer to active curl download object
ICurlDownloadCB *_HtmlDownload;
// For single texture // For single texture

@ -1,5 +1,5 @@
// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/> // Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
// Copyright (C) 2010-2017 Winch Gate Property Limited // Copyright (C) 2010 Winch Gate Property Limited
// //
// This source file has been modified by the following contributors: // This source file has been modified by the following contributors:
// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter) <dfighter1985@gmail.com> // Copyright (C) 2013 Laszlo KIS-ADAM (dfighter) <dfighter1985@gmail.com>

@ -1,5 +1,5 @@
// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/> // Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
// Copyright (C) 2010-2020 Winch Gate Property Limited // Copyright (C) 2010 Winch Gate Property Limited
// //
// This source file has been modified by the following contributors: // This source file has been modified by the following contributors:
// Copyright (C) 2013-2014 Laszlo KIS-ADAM (dfighter) <dfighter1985@gmail.com> // Copyright (C) 2013-2014 Laszlo KIS-ADAM (dfighter) <dfighter1985@gmail.com>
@ -252,19 +252,6 @@ namespace NLGUI
*/ */
bool loadTextures (const std::string &textureFileName, const std::string &uvFileName, bool uploadDXTC); bool loadTextures (const std::string &textureFileName, const std::string &uvFileName, bool uploadDXTC);
/*
* newTextureId : Return new placeholder texture id.
* You should call deleteTexture when the texture is not used anymore.
*/
sint32 newTextureId (const std::string &name);
/*
* reloadTexture : Replace existing global texture with new.
* If previous was texture atlas and still used by 2+ textures,
* then create new global texture.
*/
void reloadTexture (sint32 texId, const std::string &name, bool uploadDXTC=true, bool bReleasable=true);
/* /*
* createTexture : create a texture for the interface, possibly from an externally created texture * createTexture : create a texture for the interface, possibly from an externally created texture
* If no external texture is given, then 'sGlobalTextureName' is the filename of the big texture * If no external texture is given, then 'sGlobalTextureName' is the filename of the big texture
@ -325,9 +312,6 @@ namespace NLGUI
/** /**
* get a texture file pointer from a string name. O(logN) * get a texture file pointer from a string name. O(logN)
*
* FIXME: only works with textures in atlas loaded with loadTextures()
*
* \param id : the id of the texture * \param id : the id of the texture
* \return a texture file pointer. -1 if not found or if sName is empty() * \return a texture file pointer. -1 if not found or if sName is empty()
*/ */
@ -460,13 +444,9 @@ namespace NLGUI
SGlobalTexture () SGlobalTexture ()
{ {
FromGlobaleTexture = true; FromGlobaleTexture = true;
Scale = 1.f;
} }
uint32 Width, Height; uint32 Width, Height;
uint32 DefaultWidth, DefaultHeight; uint32 DefaultWidth, DefaultHeight;
// used by texture atlas to unscale individual texture
// getTextureSizeFromId() calls to return 1x size for GUI.
float Scale;
NL3D::UTexture *Texture; NL3D::UTexture *Texture;
std::string Name; std::string Name;
bool FromGlobaleTexture; bool FromGlobaleTexture;
@ -495,9 +475,6 @@ namespace NLGUI
// \name Texture management // \name Texture management
// *************************************************************************** // ***************************************************************************
bool loadTextureFromString(SGlobalTexture *gt, const std::string &data);
bool loadTextureFromFile(SGlobalTexture *gt, const std::string &filename);
// SImage accessors // SImage accessors
SImage *getSImage(sint32 textureId) SImage *getSImage(sint32 textureId)
{ {

@ -1,5 +1,5 @@
// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/> // Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
// Copyright (C) 2010-2019 Winch Gate Property Limited // Copyright (C) 2010 Winch Gate Property Limited
// //
// This source file has been modified by the following contributors: // This source file has been modified by the following contributors:
// Copyright (C) 2013-2014 Laszlo KIS-ADAM (dfighter) <dfighter1985@gmail.com> // Copyright (C) 2013-2014 Laszlo KIS-ADAM (dfighter) <dfighter1985@gmail.com>
@ -119,8 +119,8 @@ namespace NLGUI
void enableStringSelection(uint start, uint end); void enableStringSelection(uint start, uint end);
void disableStringSelection(); void disableStringSelection();
/// Get displayed text /// Get
std::string getText() const { return _Text; } std::string getText() const { return _HardText.empty() ? _Text : _HardText; }
#ifdef RYZOM_LUA_UCSTRING #ifdef RYZOM_LUA_UCSTRING
ucstring getTextAsUtf16() const; // Compatibility ucstring getTextAsUtf16() const; // Compatibility
ucstring getHardTextAsUtf16() const; // Compatibility ucstring getHardTextAsUtf16() const; // Compatibility
@ -188,7 +188,6 @@ namespace NLGUI
/// From a line number, get the character at which it ends (not including any '\n' ), or -1 if invalid /// From a line number, get the character at which it ends (not including any '\n' ), or -1 if invalid
void getLineEndIndex(uint line, sint &index, bool &endOfPreviousLine) const; void getLineEndIndex(uint line, sint &index, bool &endOfPreviousLine) const;
/// If localized, return localization key (ie "uiLanguage"), else return displayed text.
std::string getHardText() const { return _HardText.empty() ? _Text : _HardText; } std::string getHardText() const { return _HardText.empty() ? _Text : _HardText; }
void setHardText (const std::string &ht); //< Localizes strings starting with "ui" void setHardText (const std::string &ht); //< Localizes strings starting with "ui"
#ifdef RYZOM_LUA_UCSTRING #ifdef RYZOM_LUA_UCSTRING
@ -283,10 +282,8 @@ namespace NLGUI
bool _FontSizeCoef; bool _FontSizeCoef;
bool _Embolden; bool _Embolden;
bool _Oblique; bool _Oblique;
// width of the font in pixel. // width of the font in pixel. Just a Hint for tabing format (computed with '_')
float _FontWidth; float _FontWidth;
// width of tabs
float _TabWidth;
// strings to use when computing font size // strings to use when computing font size
std::string _FontSizingChars; std::string _FontSizingChars;
std::string _FontSizingFallback; std::string _FontSizingFallback;

@ -1,5 +1,5 @@
// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/> // Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
// Copyright (C) 2010-2020 Winch Gate Property Limited // Copyright (C) 2010 Winch Gate Property Limited
// //
// This source file has been modified by the following contributors: // This source file has been modified by the following contributors:
// Copyright (C) 2013-2014 Laszlo KIS-ADAM (dfighter) <dfighter1985@gmail.com> // Copyright (C) 2013-2014 Laszlo KIS-ADAM (dfighter) <dfighter1985@gmail.com>
@ -654,6 +654,8 @@ namespace NLGUI
bool _GroupSelection; bool _GroupSelection;
bool multiSelection; bool multiSelection;
uint32 _WidgetCount; uint32 _WidgetCount;
std::set<std::string> m_LoggedMissingElement;
}; };
} }

@ -1,5 +1,5 @@
// NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> // NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
// Copyright (C) 2010-2020 Winch Gate Property Limited // Copyright (C) 2010 Winch Gate Property Limited
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as // it under the terms of the GNU Affero General Public License as

@ -1,5 +1,5 @@
// NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> // NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
// Copyright (C) 2010-2015 Winch Gate Property Limited // Copyright (C) 2010 Winch Gate Property Limited
// //
// This source file has been modified by the following contributors: // This source file has been modified by the following contributors:
// Copyright (C) 2016 Jan BOON (Kaetemi) <jan.boon@kaetemi.be> // Copyright (C) 2016 Jan BOON (Kaetemi) <jan.boon@kaetemi.be>

@ -67,7 +67,7 @@ public:
S17, S18, S19, S20, S21, S22, S23, S24, S25, S26, S27, S28, S29, S30, S31, S32, S17, S18, S19, S20, S21, S22, S23, S24, S25, S26, S27, S28, S29, S30, S31, S32,
S33, S34, S35, S36, S37, S38, S39, S40, S41, S42, S43, S44, S45, S46, S47, S48, S33, S34, S35, S36, S37, S38, S39, S40, S41, S42, S43, S44, S45, S46, S47, S48,
S49, S50, S51, S52, S53, S54, S55, S56, S57, S58, S59, S60, S61, S62, S63, S64, S49, S50, S51, S52, S53, S54, S55, S56, S57, S58, S59, S60, S61, S62, S63, S64,
TEXT, Nb_Prop_Type TEXT, PACKED, Nb_Prop_Type
}; };

@ -96,7 +96,7 @@ public:
_Property = 0; _Property = 0;
_oldProperty = 0; _oldProperty = 0;
_Type = UNKNOWN; _Type = UNKNOWN;
m_Nullable = false; _Nullable = false;
_Changed = false; _Changed = false;
_LastChangeGC = 0; _LastChangeGC = 0;
} }
@ -237,7 +237,7 @@ private:
EPropType _Type; EPropType _Type;
/// nullable /// nullable
bool m_Nullable; bool _Nullable;
/// true if this value has changed /// true if this value has changed
bool _Changed; bool _Changed;

@ -1,5 +1,5 @@
// NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> // NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
// Copyright (C) 2010-2020 Winch Gate Property Limited // Copyright (C) 2010-2018 Winch Gate Property Limited
// //
// This source file has been modified by the following contributors: // This source file has been modified by the following contributors:
// Copyright (C) 2010 Matt RAYKOWSKI (sfb) <matt.raykowski@gmail.com> // Copyright (C) 2010 Matt RAYKOWSKI (sfb) <matt.raykowski@gmail.com>

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

@ -1,9 +1,6 @@
// NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> // NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
// Copyright (C) 2010-2019 Winch Gate Property Limited // 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>
//
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as // it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the // published by the Free Software Foundation, either version 3 of the
@ -71,11 +68,8 @@ public:
*/ */
void registerClass(const KeyType &key, IFactoryRegister<BaseClass> *factoryRegister) 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());
//nlassert(_FactoryRegisters.find(key) == _FactoryRegisters.end()); _FactoryRegisters.insert(std::make_pair(key, factoryRegister));
//_FactoryRegisters.insert(std::make_pair(key, factoryRegister));
if (_FactoryRegisters.find(key) == _FactoryRegisters.end())
_FactoryRegisters.insert(std::make_pair(key, factoryRegister));
} }
/** Create a new instance of a factorable object. /** Create a new instance of a factorable object.

@ -1,5 +1,5 @@
// NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> // NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
// Copyright (C) 2010-2019 Winch Gate Property Limited // Copyright (C) 2010 Winch Gate Property Limited
// //
// This source file has been modified by the following contributors: // This source file has been modified by the following contributors:
// Copyright (C) 2020 Jan BOON (Kaetemi) <jan.boon@kaetemi.be> // Copyright (C) 2020 Jan BOON (Kaetemi) <jan.boon@kaetemi.be>

@ -2,7 +2,7 @@
// Copyright (C) 2010 Winch Gate Property Limited // Copyright (C) 2010 Winch Gate Property Limited
// //
// This source file has been modified by the following contributors: // This source file has been modified by the following contributors:
// Copyright (C) 2014-2020 Jan BOON (Kaetemi) <jan.boon@kaetemi.be> // Copyright (C) 2014 Jan BOON (Kaetemi) <jan.boon@kaetemi.be>
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as // it under the terms of the GNU Affero General Public License as

@ -1,5 +1,5 @@
// NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> // NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
// Copyright (C) 2010-2020 Winch Gate Property Limited // Copyright (C) 2010 Winch Gate Property Limited
// //
// This source file has been modified by the following contributors: // This source file has been modified by the following contributors:
// Copyright (C) 2014-2015 Laszlo KIS-ADAM (dfighter) <dfighter1985@gmail.com> // Copyright (C) 2014-2015 Laszlo KIS-ADAM (dfighter) <dfighter1985@gmail.com>
@ -731,18 +731,11 @@ struct CFile
static bool createDirectoryTree(const std::string &dirname); static bool createDirectoryTree(const std::string &dirname);
/** Try to set the file access to read/write if not already set. /** Try to set the file access to read/write if not already set.
* On linux/macOS also set +x on directory.
* return true if the file doesn't exist or if the file already have RW access. * return true if the file doesn't exist or if the file already have RW access.
* \return true if RW access is granted * \return true if RW access is granted
*/ */
static bool setRWAccess(const std::string &filename); static bool setRWAccess(const std::string &filename);
/** Try to set +x bit on linux/macOS to make file executable. no-op on Windows
* On Windows, always returns true, even if file does not exist.
* \return true if file exists and +x was set, false if operation failed.
*/
static bool setExecutable(const std::string &filename);
/** Delete a file if possible (change the write access if possible) /** Delete a file if possible (change the write access if possible)
* \return true if the delete occurs. * \return true if the delete occurs.
*/ */

@ -1,5 +1,5 @@
// NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> // NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
// Copyright (C) 2010-2019 Winch Gate Property Limited // Copyright (C) 2010 Winch Gate Property Limited
// //
// This source file has been modified by the following contributors: // This source file has been modified by the following contributors:
// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter) <dfighter1985@gmail.com> // Copyright (C) 2013 Laszlo KIS-ADAM (dfighter) <dfighter1985@gmail.com>

@ -1,9 +1,6 @@
// NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> // NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
// Copyright (C) 2014-2019 Jan BOON (Kaetemi) <jan.boon@kaetemi.be> // Copyright (C) 2014-2019 Jan BOON (Kaetemi) <jan.boon@kaetemi.be>
// //
// This source file has been modified by the following contributors:
// Copyright (C) 2021 Winch Gate Property Limited
//
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as // it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the // published by the Free Software Foundation, either version 3 of the
@ -35,7 +32,7 @@ public:
uint32 Size; uint32 Size;
uint32 LastModified; uint32 LastModified;
void serial(NLMISC::IStream &f); void serial(NLMISC::IStream &f) throw(NLMISC::EStream);
}; };
@ -43,7 +40,7 @@ public:
CStreamedPackage(); CStreamedPackage();
~CStreamedPackage(); ~CStreamedPackage();
void serial(NLMISC::IStream &f); void serial(NLMISC::IStream &f) throw(NLMISC::EStream);
/// result: [out] ex. /00/00/000000000.. /// result: [out] ex. /00/00/000000000..
/// hash: [in] /// hash: [in]

@ -174,6 +174,10 @@
# define NL_COMP_GCC # define NL_COMP_GCC
#endif #endif
#if defined(_HAS_CPP0X) || defined(__GXX_EXPERIMENTAL_CXX0X__) || (defined(NL_COMP_VC_VERSION) && NL_COMP_VC_VERSION >= 110)
# define NL_ISO_CPP0X_AVAILABLE
#endif
#if defined(NL_COMP_GCC) && (__cplusplus >= 201103L) #if defined(NL_COMP_GCC) && (__cplusplus >= 201103L)
# define NL_NO_EXCEPTION_SPECS # define NL_NO_EXCEPTION_SPECS
#endif #endif
@ -229,10 +233,6 @@
# endif # endif
#endif #endif
#if defined(_HAS_CPP0X) || defined(__GXX_EXPERIMENTAL_CXX0X__) || (defined(NL_COMP_VC_VERSION) && NL_COMP_VC_VERSION >= 110) || (defined(NL_COMP_GCC) && (GCC_VERSION >= 40400) && (__cplusplus >= 201103L))
# define NL_ISO_CPP0X_AVAILABLE
#endif
// Remove stupid Visual C++ warnings // Remove stupid Visual C++ warnings
#ifdef NL_OS_WINDOWS #ifdef NL_OS_WINDOWS
# pragma warning (disable : 4503) // STL: Decorated name length exceeded, name was truncated # pragma warning (disable : 4503) // STL: Decorated name length exceeded, name was truncated
@ -274,7 +274,7 @@
//#define NL_NO_DEBUG //#define NL_NO_DEBUG
#undef NL_NO_DEBUG #undef NL_NO_DEBUG
#define NL_NO_ASSERT
// Standard types // Standard types

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

@ -3,7 +3,6 @@
// //
// This source file has been modified by the following contributors: // This source file has been modified by the following contributors:
// Copyright (C) 2010 Robert TIMM (rti) <mail@rtti.de> // Copyright (C) 2010 Robert TIMM (rti) <mail@rtti.de>
// Copyright (C) 2020 Jan BOON (Kaetemi) <jan.boon@kaetemi.be>
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as // it under the terms of the GNU Affero General Public License as

@ -1,75 +0,0 @@
// NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
// Copyright (C) 2010-2021 Winch Gate Property Limited
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
#ifndef XML_MACROS_H
#define XML_MACROS_H
//
// xmlNodePtr cur;
// CXMLAutoPtr prop;
//
// sint i;
// XML_READ_SINT(cur, "prop_name", i, -1);
//
#define XML_READ_UINT(node, name, var, def) { \
uint tmp; \
prop = (char *) xmlGetProp(node, (xmlChar*)name); \
if (prop && fromString((const char*)prop, tmp)) \
var = tmp; \
else \
var = def; \
}
#define XML_READ_SINT(node, name, var, def) { \
sint tmp; \
prop = (char *) xmlGetProp(node, (xmlChar*)name); \
if (prop && fromString((const char*)prop, tmp)) \
var = tmp; \
else \
var = def; \
}
#define XML_READ_BOOL(node, name, var, def) { \
prop = (char *) xmlGetProp(node, (xmlChar*)name); \
if (prop) \
var = NLMISC::toBool((const char*)prop); \
else \
var = def; \
}
#define XML_READ_COLOR(node, name, var, def) { \
NLMISC::CRGBA tmp; \
prop = (char *) xmlGetProp(node, (xmlChar*)name); \
if (prop && fromString((const char*)prop, tmp)) \
var = tmp; \
else \
var = def; \
}
#define XML_READ_STRING(node, name, var, def) { \
prop = (char *) xmlGetProp(node, (xmlChar*)name); \
if (prop) \
var = (const char*)prop; \
else \
var = def; \
}
#endif // XML_MACROS_H

@ -56,10 +56,6 @@ extern uint32 NbNetworkTask;
enum TPipeWay { PipeRead, PipeWrite }; enum TPipeWay { PipeRead, PipeWrite };
#endif #endif
#ifdef NL_OS_WINDOWS
typedef void *HANDLE;
#endif
/** /**
* Layer 1 * Layer 1
@ -82,7 +78,7 @@ public:
/// Destructor /// Destructor
virtual ~CBufNetBase(); virtual ~CBufNetBase();
#if defined(NL_OS_UNIX) #ifdef NL_OS_UNIX
/** Init the pipe for data available with an external pipe. /** Init the pipe for data available with an external pipe.
* Call it only if you set initPipeForDataAvailable to false in the constructor. * Call it only if you set initPipeForDataAvailable to false in the constructor.
* Then don't call sleepUntilDataAvailable() but use select() on the pipe. * Then don't call sleepUntilDataAvailable() but use select() on the pipe.
@ -93,11 +89,6 @@ public:
_DataAvailablePipeHandle[PipeRead] = twoPipeHandles[PipeRead]; _DataAvailablePipeHandle[PipeRead] = twoPipeHandles[PipeRead];
_DataAvailablePipeHandle[PipeWrite] = twoPipeHandles[PipeWrite]; _DataAvailablePipeHandle[PipeWrite] = twoPipeHandles[PipeWrite];
} }
#elif defined(NL_OS_WINDOWS)
void setExternalPipeForDataAvailable(HANDLE eventHandle)
{
_DataAvailableHandle = eventHandle;
}
#endif #endif
/// Sets callback for detecting a disconnection (or NULL to disable callback) /// Sets callback for detecting a disconnection (or NULL to disable callback)
@ -210,11 +201,9 @@ protected:
/// Return _DataAvailable /// Return _DataAvailable
bool dataAvailableFlag() const { return _DataAvailable; } bool dataAvailableFlag() const { return _DataAvailable; }
#if defined(NL_OS_UNIX) #ifdef NL_OS_UNIX
/// Pipe to select() on data available /// Pipe to select() on data available
int _DataAvailablePipeHandle [2]; int _DataAvailablePipeHandle [2];
#elif defined(NL_OS_WINDOWS)
HANDLE _DataAvailableHandle;
#endif #endif
private: private:

@ -638,7 +638,7 @@ protected:
/// Auto-reconnect /// Auto-reconnect
void autoReconnect( CUnifiedConnection &uc, uint connectionIndex ); void autoReconnect( CUnifiedConnection &uc, uint connectionIndex );
#if defined(NL_OS_UNIX) || defined(NL_OS_WINDOWS) #ifdef NL_OS_UNIX
/// Sleep (implemented by select()) /// Sleep (implemented by select())
void sleepUntilDataAvailable( NLMISC::TTime msecMax ); void sleepUntilDataAvailable( NLMISC::TTime msecMax );
#endif #endif
@ -700,11 +700,9 @@ private:
/// for each services, which network to take /// for each services, which network to take
std::vector<std::string> _DefaultNetwork; std::vector<std::string> _DefaultNetwork;
#if defined(NL_OS_UNIX) #ifdef NL_OS_UNIX
/// Pipe to select() on data available (shared among all connections) /// Pipe to select() on data available (shared among all connections)
int _MainDataAvailablePipe [2]; int _MainDataAvailablePipe [2];
#elif defined(NL_OS_WINDOWS)
HANDLE _MainDataAvailableHandle;
#endif #endif
/// Service id of the running service /// Service id of the running service

@ -9,9 +9,6 @@
// NeL - MMORPG Framework <https://wiki.ryzom.dev/> // NeL - MMORPG Framework <https://wiki.ryzom.dev/>
// Copyright (C) 2008-2012 Jan BOON (Kaetemi) <jan.boon@kaetemi.be> // Copyright (C) 2008-2012 Jan BOON (Kaetemi) <jan.boon@kaetemi.be>
// //
// This source file has been modified by the following contributors:
// Copyright (C) 2016 Winch Gate Property Limited
//
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as // it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the // published by the Free Software Foundation, either version 3 of the

@ -1,5 +1,5 @@
// NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> // NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
// Copyright (C) 2018-2019 Winch Gate Property Limited // Copyright (C) 2018 Winch Gate Property Limited
// //
// This source file has been modified by the following contributors: // This source file has been modified by the following contributors:
// Copyright (C) 2019 Jan BOON (Kaetemi) <jan.boon@kaetemi.be> // Copyright (C) 2019 Jan BOON (Kaetemi) <jan.boon@kaetemi.be>

@ -10,9 +10,6 @@
// NeL - MMORPG Framework <https://wiki.ryzom.dev/> // NeL - MMORPG Framework <https://wiki.ryzom.dev/>
// Copyright (C) 2008-2012 Jan BOON (Kaetemi) <jan.boon@kaetemi.be> // Copyright (C) 2008-2012 Jan BOON (Kaetemi) <jan.boon@kaetemi.be>
// //
// This source file has been modified by the following contributors:
// Copyright (C) 2016 Winch Gate Property Limited
//
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as // it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the // published by the Free Software Foundation, either version 3 of the

@ -1,5 +1,5 @@
// NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> // NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
// Copyright (C) 2010-2016 Winch Gate Property Limited // Copyright (C) 2010 Winch Gate Property Limited
// //
// This source file has been modified by the following contributors: // This source file has been modified by the following contributors:
// Copyright (C) 2010 Matt RAYKOWSKI (sfb) <matt.raykowski@gmail.com> // Copyright (C) 2010 Matt RAYKOWSKI (sfb) <matt.raykowski@gmail.com>

@ -1,5 +1,5 @@
// NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> // NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
// Copyright (C) 2010-2020 Winch Gate Property Limited // Copyright (C) 2010 Winch Gate Property Limited
// //
// This source file has been modified by the following contributors: // This source file has been modified by the following contributors:
// Copyright (C) 2012 Jan BOON (Kaetemi) <jan.boon@kaetemi.be> // Copyright (C) 2012 Jan BOON (Kaetemi) <jan.boon@kaetemi.be>

@ -9,9 +9,6 @@
// NeL - MMORPG Framework <https://wiki.ryzom.dev/> // NeL - MMORPG Framework <https://wiki.ryzom.dev/>
// Copyright (C) 2012-2020 Jan BOON (Kaetemi) <jan.boon@kaetemi.be> // Copyright (C) 2012-2020 Jan BOON (Kaetemi) <jan.boon@kaetemi.be>
// //
// This source file has been modified by the following contributors:
// Copyright (C) 2018 Winch Gate Property Limited
//
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as // it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the // published by the Free Software Foundation, either version 3 of the

@ -1,5 +1,5 @@
// NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> // NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
// Copyright (C) 2010-2016 Winch Gate Property Limited // Copyright (C) 2010 Winch Gate Property Limited
// //
// This source file has been modified by the following contributors: // This source file has been modified by the following contributors:
// Copyright (C) 2010 Matt RAYKOWSKI (sfb) <matt.raykowski@gmail.com> // Copyright (C) 2010 Matt RAYKOWSKI (sfb) <matt.raykowski@gmail.com>

@ -1,5 +1,5 @@
// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/> // Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
// Copyright (C) 2010-2017 Winch Gate Property Limited // Copyright (C) 2010 Winch Gate Property Limited
// //
// This source file has been modified by the following contributors: // This source file has been modified by the following contributors:
// Copyright (C) 2019 Jan BOON (Kaetemi) <jan.boon@kaetemi.be> // Copyright (C) 2019 Jan BOON (Kaetemi) <jan.boon@kaetemi.be>

@ -34,7 +34,7 @@ class CCurlHttpClient
public: public:
/// Constructor /// Constructor
CCurlHttpClient() : _CurlStruct(NULL), m_Verify(true) {} CCurlHttpClient() : _CurlStruct(NULL) {}
/// Connect to an http server (string by val is intended). If you specify a whole URL, an attempt will be made to determine the server. /// Connect to an http server (string by val is intended). If you specify a whole URL, an attempt will be made to determine the server.
bool connect(const std::string &server); bool connect(const std::string &server);
@ -63,8 +63,6 @@ public:
/// Disconnect if connected (otherwise does nothing) /// Disconnect if connected (otherwise does nothing)
void disconnect(); void disconnect();
const char *lastError() { return &m_ErrorBuf[0]; }
protected: protected:
/// Helper /// Helper
@ -80,10 +78,6 @@ private:
std::vector<uint8> _ReceiveBuffer; std::vector<uint8> _ReceiveBuffer;
std::string _Auth; // must be kept here because curl only stores the char pointer std::string _Auth; // must be kept here because curl only stores the char pointer
std::vector<char> m_ErrorBuf;
bool m_Verify;
}; };
extern CCurlHttpClient CurlHttpClient; extern CCurlHttpClient CurlHttpClient;

@ -1,5 +1,4 @@
ADD_SUBDIRECTORY(font) ADD_SUBDIRECTORY(font)
ADD_SUBDIRECTORY(font_perf)
ADD_SUBDIRECTORY(cluster_viewer) ADD_SUBDIRECTORY(cluster_viewer)
ADD_SUBDIRECTORY(shape_viewer) ADD_SUBDIRECTORY(shape_viewer)

@ -4,7 +4,6 @@ ADD_EXECUTABLE(nl_sample_font WIN32 ${SRC})
ADD_DEFINITIONS(-DFONT_DIR="\\"${NL_SHARE_ABSOLUTE_PREFIX}/nl_sample_font/\\"") ADD_DEFINITIONS(-DFONT_DIR="\\"${NL_SHARE_ABSOLUTE_PREFIX}/nl_sample_font/\\"")
# TODO: hunter TARGET_LINK_LIBRARIES(nl_sample_font PRIVATE nelmisc nel3d)
TARGET_LINK_LIBRARIES(nl_sample_font nelmisc nel3d) TARGET_LINK_LIBRARIES(nl_sample_font nelmisc nel3d)
NL_DEFAULT_PROPS(nl_sample_font "NeL, Samples, 3D: Font") NL_DEFAULT_PROPS(nl_sample_font "NeL, Samples, 3D: Font")
NL_ADD_RUNTIME_FLAGS(nl_sample_font) NL_ADD_RUNTIME_FLAGS(nl_sample_font)

@ -1,5 +1,5 @@
// NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> // NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
// Copyright (C) 2010-2021 Winch Gate Property Limited // Copyright (C) 2010 Winch Gate Property Limited
// //
// This source file has been modified by the following contributors: // This source file has been modified by the following contributors:
// Copyright (C) 2014 Jan BOON (Kaetemi) <jan.boon@kaetemi.be> // Copyright (C) 2014 Jan BOON (Kaetemi) <jan.boon@kaetemi.be>
@ -22,7 +22,6 @@
#include "nel/misc/event_emitter.h" #include "nel/misc/event_emitter.h"
#include "nel/misc/event_listener.h" #include "nel/misc/event_listener.h"
#include "nel/misc/path.h" #include "nel/misc/path.h"
#include "nel/misc/random.h"
// look at 3dinit example // look at 3dinit example
#include "nel/3d/nelu.h" #include "nel/3d/nelu.h"
@ -98,12 +97,10 @@ int main(int argc, char **argv)
CNELU::EventServer.addEmitter(CNELU::Driver->getEventEmitter()); CNELU::EventServer.addEmitter(CNELU::Driver->getEventEmitter());
CNELU::AsyncListener.addToServer(CNELU::EventServer); CNELU::AsyncListener.addToServer(CNELU::EventServer);
NLMISC::CValueSmoother smoothFPS;
NLMISC::CRandom rnd;
do do
{ {
// look at 3dinit example // look at 3dinit example
CNELU::clearBuffers(CRGBA(120,120,0)); CNELU::clearBuffers(CRGBA(0,0,0));
// now, every frame, we have to render the computer string. // now, every frame, we have to render the computer string.
@ -171,39 +168,12 @@ int main(int argc, char **argv)
tc.setHotSpot (CComputedString::BottomRight); tc.setHotSpot (CComputedString::BottomRight);
tc.printAt (0.99f, 0.01f, string("Press <ESC> to quit")); tc.printAt (0.99f, 0.01f, string("Press <ESC> to quit"));
/*for(uint i = 0; i < 1000; ++i)
{
uint fontSize = rnd.rand(40) + 10;
tc.setColor(CRGBA(rnd.rand(255), rnd.rand(255), rnd.rand(255)));
tc.setFontSize(fontSize);
tc.setHotSpot(CComputedString::MiddleMiddle);
tc.printAt(rnd.frand(1.f), rnd.frand(1.f), toString("%d", fontSize));
}*/
{
static TTicks oldTick = CTime::getPerformanceTime();
TTicks newTick = CTime::getPerformanceTime();
double deltaTime = CTime::ticksToSecond (newTick-oldTick);
oldTick = newTick;
smoothFPS.addValue((float)deltaTime);
deltaTime = smoothFPS.getSmoothValue ();
if (deltaTime > 0.0)
{
//printf("FPS: %.5f\n", 1.f/deltaTime);
tc.setFontSize(16);
tc.setColor(CRGBA::Yellow);
tc.setHotSpot(CComputedString::TopLeft);
tc.printAt(0.01f, 0.99f, toString("FPS:%.f", 1.0f/deltaTime));
}
}
// look 3dinit example // look 3dinit example
CNELU::swapBuffers(); CNELU::swapBuffers();
CNELU::screenshot(); CNELU::screenshot();
// look at event example // look at event example
CNELU::EventServer.pump(true); CNELU::EventServer.pump(true);
} }
while(!CNELU::AsyncListener.isKeyPushed(KeyESCAPE)); while(!CNELU::AsyncListener.isKeyPushed(KeyESCAPE));

@ -1,14 +0,0 @@
FILE(GLOB SRC *.cpp)
ADD_EXECUTABLE(nl_sample_font_perf ${SRC})
ADD_DEFINITIONS(-DFONT_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")
NL_ADD_RUNTIME_FLAGS(nl_sample_font_perf)
INSTALL(TARGETS nl_sample_font_perf RUNTIME DESTINATION ${NL_BIN_PREFIX} COMPONENT samples3d)
INSTALL(FILES beteckna.ttf DESTINATION ${NL_SHARE_PREFIX}/nl_sample_font_perf COMPONENT samples3d)

@ -1,99 +0,0 @@
// NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
// Copyright (C) 2020-2021 Winch Gate Property Limited
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "nel/misc/types_nl.h"
#include "nel/misc/event_emitter.h"
#include "nel/misc/event_listener.h"
#include "nel/misc/path.h"
#include "nel/misc/random.h"
// look at 3dinit example
#include "nel/3d/nelu.h"
// used for font management
#include "nel/3d/font_manager.h"
#include "nel/3d/computed_string.h"
#include "nel/3d/text_context.h"
#include "nel/3d/driver_user.h"
#ifdef NL_OS_WINDOWS
#ifndef NL_COMP_MINGW
#define NOMINMAX
#endif
#include <windows.h>
#endif // NL_OS_WINDOWS
#ifndef FONT_DIR
# define FONT_DIR "."
#endif
using namespace std;
using namespace NL3D;
using namespace NLMISC;
int main(int argc, char **argv)
{
// look at 3dinit example
CNELU::init (800, 600, CViewport(), 32, true, 0, false, false);
NLMISC::CPath::addSearchPath(FONT_DIR);
// create a font manager
CFontManager fontManager;
// set the font cache to 2 megabytes (default is 1mb)
fontManager.setMaxMemory(2000000);
CTextContext tc;
tc.init (CNELU::Driver, &fontManager);
// The first param is the font name (could be ttf, pfb, fon, etc...). The
// second one is optional, it's the font kerning file
tc.setFontGenerator (NLMISC::CPath::lookup("beteckna.ttf"));
NLMISC::CRandom rnd;
uint nbCount = 100000;
TTicks startTick = CTime::getPerformanceTime();
std::string txt;
for(uint i = 0; i < nbCount; ++i)
{
uint fontSize = rnd.rand(200);
bool embolden = rnd.rand(1) == 1;
bool oblique = rnd.rand(1) == 1;
txt = toString("Lorem ipsum %03d", fontSize);
CComputedString cs;
fontManager.computeString(txt, tc.getFontGenerator(), CRGBA::White, fontSize, embolden, oblique, CNELU::Driver, cs);
}
TTicks endTick = CTime::getPerformanceTime();
double deltaTime = CTime::ticksToSecond(endTick-startTick);
std::string msg = toString("Generated %d strings in %.2fs\n", nbCount, deltaTime);
nlinfo("%s", msg.c_str());
printf("%s", msg.c_str());
fontManager.dumpCache ("font_pref_cache_dump.tga");
// look at 3dinit example
CNELU::release();
return EXIT_SUCCESS;
}

@ -1,9 +1,6 @@
// NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> // NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
// Copyright (C) 2010 Winch Gate Property Limited // Copyright (C) 2010 Winch Gate Property Limited
// //
// This source file has been modified by the following contributors:
// Copyright (C) 2020 Jan BOON (Kaetemi) <jan.boon@kaetemi.be>
//
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as // it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the // published by the Free Software Foundation, either version 3 of the

@ -1,9 +1,6 @@
// NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> // NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
// Copyright (C) 2010 Winch Gate Property Limited // Copyright (C) 2010 Winch Gate Property Limited
// //
// This source file has been modified by the following contributors:
// Copyright (C) 2020 Jan BOON (Kaetemi) <jan.boon@kaetemi.be>
//
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as // it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the // published by the Free Software Foundation, either version 3 of the

@ -1,9 +1,6 @@
// NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> // NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
// Copyright (C) 2010 Winch Gate Property Limited // Copyright (C) 2010 Winch Gate Property Limited
// //
// This source file has been modified by the following contributors:
// Copyright (C) 2020 Jan BOON (Kaetemi) <jan.boon@kaetemi.be>
//
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as // it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the // published by the Free Software Foundation, either version 3 of the

@ -2,7 +2,7 @@
// Copyright (C) 2010 Winch Gate Property Limited // Copyright (C) 2010 Winch Gate Property Limited
// //
// This source file has been modified by the following contributors: // This source file has been modified by the following contributors:
// Copyright (C) 2013-2020 Jan BOON (Kaetemi) <jan.boon@kaetemi.be> // Copyright (C) 2013-2014 Jan BOON (Kaetemi) <jan.boon@kaetemi.be>
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as // it under the terms of the GNU Affero General Public License as

@ -1,5 +1,5 @@
// NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/> // NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
// Copyright (C) 2010-2020 Winch Gate Property Limited // Copyright (C) 2010 Winch Gate Property Limited
// //
// This source file has been modified by the following contributors: // This source file has been modified by the following contributors:
// Copyright (C) 2010 Robert TIMM (rti) <mail@rtti.de> // Copyright (C) 2010 Robert TIMM (rti) <mail@rtti.de>

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

Loading…
Cancel
Save