diff --git a/.gitignore b/.gitignore
index 1f3f7abba..22089c19f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -142,7 +142,6 @@ moc_*.cpp
*.cache
*.patch
*.7z
-3rdParty
.svn
thumbs.db
Thumbs.db
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 000000000..0ad25db4b
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,661 @@
+ GNU AFFERO GENERAL PUBLIC LICENSE
+ Version 3, 19 November 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc.
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU Affero General Public License is a free, copyleft license for
+software and other kinds of works, specifically designed to ensure
+cooperation with the community in the case of network server software.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+our General Public Licenses are intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ Developers that use our General Public Licenses protect your rights
+with two steps: (1) assert copyright on the software, and (2) offer
+you this License which gives you legal permission to copy, distribute
+and/or modify the software.
+
+ A secondary benefit of defending all users' freedom is that
+improvements made in alternate versions of the program, if they
+receive widespread use, become available for other developers to
+incorporate. Many developers of free software are heartened and
+encouraged by the resulting cooperation. However, in the case of
+software used on network servers, this result may fail to come about.
+The GNU General Public License permits making a modified version and
+letting the public access it on a server without ever releasing its
+source code to the public.
+
+ The GNU Affero General Public License is designed specifically to
+ensure that, in such cases, the modified source code becomes available
+to the community. It requires the operator of a network server to
+provide the source code of the modified version running there to the
+users of that server. Therefore, public use of a modified version, on
+a publicly accessible server, gives the public access to the source
+code of the modified version.
+
+ An older license, called the Affero General Public License and
+published by Affero, was designed to accomplish similar goals. This is
+a different license, not a version of the Affero GPL, but Affero has
+released a new version of the Affero GPL which permits relicensing under
+this license.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU Affero General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Remote Network Interaction; Use with the GNU General Public License.
+
+ Notwithstanding any other provision of this License, if you modify the
+Program, your modified version must prominently offer all users
+interacting with it remotely through a computer network (if your version
+supports such interaction) an opportunity to receive the Corresponding
+Source of your version by providing access to the Corresponding Source
+from a network server at no charge, through some standard or customary
+means of facilitating copying of software. This Corresponding Source
+shall include the Corresponding Source for any work covered by version 3
+of the GNU General Public License that is incorporated pursuant to the
+following paragraph.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the work with which it is combined will remain governed by version
+3 of the GNU General Public License.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU Affero General Public License from time to time. Such new versions
+will be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU Affero General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU Affero General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU Affero General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+
+ Copyright (C)
+
+ 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 .
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If your software can interact with users remotely through a computer
+network, you should also make sure that it provides a way for users to
+get its source. For example, if your program is a web application, its
+interface could display a "Source" link that leads users to an archive
+of the code. There are many ways you could offer source, and different
+solutions will be better for different programs; see section 13 for the
+specific requirements.
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU AGPL, see
+.
diff --git a/code/CMakeLists.txt b/code/CMakeLists.txt
index aceb82ce3..83c58a924 100644
--- a/code/CMakeLists.txt
+++ b/code/CMakeLists.txt
@@ -48,21 +48,40 @@ CHECK_OUT_OF_SOURCE()
IF(CMAKE_VERSION VERSION_GREATER "2.8.10")
STRING(TIMESTAMP CURRENT_YEAR "%Y")
ELSE()
- SET(CURRENT_YEAR "2016")
+ SET(CURRENT_YEAR "2019")
ENDIF()
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
PROJECT(RyzomCore CXX C)
SET(NL_VERSION_MAJOR 1)
SET(NL_VERSION_MINOR 0)
-SET(NL_VERSION_PATCH 1)
-SET(YEAR "2004-${CURRENT_YEAR}")
+SET(NL_VERSION_PATCH 2)
+SET(YEAR "2001-${CURRENT_YEAR}")
SET(AUTHOR "Winch Gate and The Ryzom Core Community")
SET(RYZOM_VERSION_MAJOR 3)
SET(RYZOM_VERSION_MINOR 6)
SET(RYZOM_VERSION_PATCH 0)
+SET(RYZOM_CLIENT_CREATE_ACCOUNT_URL "https://open.ryzom.dev/ams/" CACHE STRING "Ryzom Client Create Account URL")
+SET(RYZOM_CLIENT_EDIT_ACCOUNT_URL "https://open.ryzom.dev/ams/" CACHE STRING "Ryzom Client Edit Account URL")
+SET(RYZOM_CLIENT_FORGET_PASSWORD_URL "https://open.ryzom.dev/ams/" CACHE STRING "Ryzom Client Forget Password URL")
+SET(RYZOM_CLIENT_PATCH_URL "https://cdn.ryzom.dev/open/patch/" CACHE STRING "Ryzom Client Patch URL")
+
+SET(RYZOM_WEBIG_MAIN_URL "https://open.ryzom.dev/" CACHE STRING "Ryzom Client WebIG Main URL")
+SET(RYZOM_WEBIG_TRUSTED_DOMAIN "open.ryzom.dev" CACHE STRING "Ryzom Client WebIG Trusted Domain")
+
+# urls when compiling ryzom live client
+IF(WITH_RYZOM_LIVE)
+ SET(RYZOM_CLIENT_CREATE_ACCOUNT_URL "https://account.ryzom.com/signup/from_client.php")
+ SET(RYZOM_CLIENT_EDIT_ACCOUNT_URL "https://account.ryzom.com/payment_profile/index.php")
+ 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_WEBIG_MAIN_URL "https://app.ryzom.com/")
+ SET(RYZOM_WEBIG_TRUSTED_DOMAIN "app.ryzom.com")
+ENDIF()
+
#-----------------------------------------------------------------------------
# Redirect output files
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
@@ -220,6 +239,8 @@ IF(WITH_NEL)
IF(WITH_GUI)
FIND_PACKAGE(Luabind REQUIRED)
+ ENDIF()
+
FIND_PACKAGE(CURL REQUIRED)
IF((WIN32 OR CURL_LIBRARIES MATCHES "\\.a") AND WITH_STATIC_CURL)
@@ -269,7 +290,6 @@ IF(WITH_NEL)
ENDIF()
ENDIF()
ENDIF()
- ENDIF()
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/nel/include)
ADD_SUBDIRECTORY(nel)
diff --git a/code/CMakeModules/nel.cmake b/code/CMakeModules/nel.cmake
index bd70dd2ff..483e65ed3 100644
--- a/code/CMakeModules/nel.cmake
+++ b/code/CMakeModules/nel.cmake
@@ -281,6 +281,8 @@ MACRO(NL_SETUP_DEFAULT_OPTIONS)
OPTION(WITH_RYZOM "Build Ryzom Core." ON )
OPTION(WITH_SNOWBALLS "Build Snowballs." OFF)
OPTION(WITH_TOOLS "Build Tools" OFF)
+
+ OPTION(WITH_RYZOM_LIVE "Use ryzom.com urls" ON)
ENDMACRO(NL_SETUP_DEFAULT_OPTIONS)
MACRO(NL_SETUP_NEL_DEFAULT_OPTIONS)
@@ -289,6 +291,7 @@ MACRO(NL_SETUP_NEL_DEFAULT_OPTIONS)
###
OPTION(WITH_NET "Build NLNET" ON )
OPTION(WITH_3D "Build NL3D" ON )
+ OPTION(WITH_WEB "Build WEB" ON )
OPTION(WITH_GUI "Build GUI" ON )
OPTION(WITH_PACS "Build NLPACS" ON )
OPTION(WITH_GEORGES "Build NLGEORGES" ON )
diff --git a/code/config.h.cmake b/code/config.h.cmake
index 9d698ac08..fa4749cb2 100644
--- a/code/config.h.cmake
+++ b/code/config.h.cmake
@@ -33,6 +33,14 @@
#cmakedefine RYZOM_VERSION_RC ${RYZOM_VERSION_RC}
#cmakedefine RYZOM_PRODUCT_VERSION "${RYZOM_PRODUCT_VERSION}"
+#cmakedefine RYZOM_CLIENT_CREATE_ACCOUNT_URL "${RYZOM_CLIENT_CREATE_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_PATCH_URL "${RYZOM_CLIENT_PATCH_URL}"
+
+#cmakedefine RYZOM_WEBIG_MAIN_URL "${RYZOM_WEBIG_MAIN_URL}"
+#cmakedefine RYZOM_WEBIG_TRUSTED_DOMAIN "${RYZOM_WEBIG_TRUSTED_DOMAIN}"
+
#cmakedefine AUTHOR "${AUTHOR}"
#cmakedefine YEAR "${YEAR}"
#cmakedefine COPYRIGHT "${COPYRIGHT}"
diff --git a/code/nel/3rdparty/CMakeLists.txt b/code/nel/3rdparty/CMakeLists.txt
new file mode 100644
index 000000000..bdd3e5fcd
--- /dev/null
+++ b/code/nel/3rdparty/CMakeLists.txt
@@ -0,0 +1,2 @@
+SET(SEVENZIP_LIBRARY "nel_sevenzip")
+ADD_SUBDIRECTORY(seven_zip)
diff --git a/code/ryzom/client/src/seven_zip/7z.h b/code/nel/3rdparty/seven_zip/7z.h
similarity index 100%
rename from code/ryzom/client/src/seven_zip/7z.h
rename to code/nel/3rdparty/seven_zip/7z.h
diff --git a/code/ryzom/client/src/seven_zip/7zAlloc.cpp b/code/nel/3rdparty/seven_zip/7zAlloc.c
similarity index 100%
rename from code/ryzom/client/src/seven_zip/7zAlloc.cpp
rename to code/nel/3rdparty/seven_zip/7zAlloc.c
diff --git a/code/ryzom/client/src/seven_zip/7zAlloc.h b/code/nel/3rdparty/seven_zip/7zAlloc.h
similarity index 100%
rename from code/ryzom/client/src/seven_zip/7zAlloc.h
rename to code/nel/3rdparty/seven_zip/7zAlloc.h
diff --git a/code/ryzom/client/src/seven_zip/7zArcIn.cpp b/code/nel/3rdparty/seven_zip/7zArcIn.c
similarity index 100%
rename from code/ryzom/client/src/seven_zip/7zArcIn.cpp
rename to code/nel/3rdparty/seven_zip/7zArcIn.c
diff --git a/code/ryzom/client/src/seven_zip/7zBuf.cpp b/code/nel/3rdparty/seven_zip/7zBuf.c
similarity index 100%
rename from code/ryzom/client/src/seven_zip/7zBuf.cpp
rename to code/nel/3rdparty/seven_zip/7zBuf.c
diff --git a/code/ryzom/client/src/seven_zip/7zBuf.h b/code/nel/3rdparty/seven_zip/7zBuf.h
similarity index 100%
rename from code/ryzom/client/src/seven_zip/7zBuf.h
rename to code/nel/3rdparty/seven_zip/7zBuf.h
diff --git a/code/ryzom/client/src/seven_zip/7zBuf2.cpp b/code/nel/3rdparty/seven_zip/7zBuf2.c
similarity index 100%
rename from code/ryzom/client/src/seven_zip/7zBuf2.cpp
rename to code/nel/3rdparty/seven_zip/7zBuf2.c
diff --git a/code/ryzom/client/src/seven_zip/7zCrc.cpp b/code/nel/3rdparty/seven_zip/7zCrc.c
similarity index 100%
rename from code/ryzom/client/src/seven_zip/7zCrc.cpp
rename to code/nel/3rdparty/seven_zip/7zCrc.c
diff --git a/code/ryzom/client/src/seven_zip/7zCrc.h b/code/nel/3rdparty/seven_zip/7zCrc.h
similarity index 100%
rename from code/ryzom/client/src/seven_zip/7zCrc.h
rename to code/nel/3rdparty/seven_zip/7zCrc.h
diff --git a/code/ryzom/client/src/seven_zip/7zCrcOpt.cpp b/code/nel/3rdparty/seven_zip/7zCrcOpt.c
similarity index 100%
rename from code/ryzom/client/src/seven_zip/7zCrcOpt.cpp
rename to code/nel/3rdparty/seven_zip/7zCrcOpt.c
diff --git a/code/ryzom/client/src/seven_zip/7zDec.cpp b/code/nel/3rdparty/seven_zip/7zDec.c
similarity index 100%
rename from code/ryzom/client/src/seven_zip/7zDec.cpp
rename to code/nel/3rdparty/seven_zip/7zDec.c
diff --git a/code/ryzom/client/src/seven_zip/7zFile.cpp b/code/nel/3rdparty/seven_zip/7zFile.c
similarity index 100%
rename from code/ryzom/client/src/seven_zip/7zFile.cpp
rename to code/nel/3rdparty/seven_zip/7zFile.c
diff --git a/code/ryzom/client/src/seven_zip/7zFile.h b/code/nel/3rdparty/seven_zip/7zFile.h
similarity index 100%
rename from code/ryzom/client/src/seven_zip/7zFile.h
rename to code/nel/3rdparty/seven_zip/7zFile.h
diff --git a/code/ryzom/client/src/seven_zip/7zStream.cpp b/code/nel/3rdparty/seven_zip/7zStream.c
similarity index 100%
rename from code/ryzom/client/src/seven_zip/7zStream.cpp
rename to code/nel/3rdparty/seven_zip/7zStream.c
diff --git a/code/ryzom/client/src/seven_zip/7zTypes.h b/code/nel/3rdparty/seven_zip/7zTypes.h
similarity index 100%
rename from code/ryzom/client/src/seven_zip/7zTypes.h
rename to code/nel/3rdparty/seven_zip/7zTypes.h
diff --git a/code/ryzom/client/src/seven_zip/7zVersion.h b/code/nel/3rdparty/seven_zip/7zVersion.h
similarity index 100%
rename from code/ryzom/client/src/seven_zip/7zVersion.h
rename to code/nel/3rdparty/seven_zip/7zVersion.h
diff --git a/code/ryzom/client/src/seven_zip/7zVersion.rc b/code/nel/3rdparty/seven_zip/7zVersion.rc
similarity index 96%
rename from code/ryzom/client/src/seven_zip/7zVersion.rc
rename to code/nel/3rdparty/seven_zip/7zVersion.rc
index 6ed26de74..e520995dd 100644
--- a/code/ryzom/client/src/seven_zip/7zVersion.rc
+++ b/code/nel/3rdparty/seven_zip/7zVersion.rc
@@ -1,55 +1,55 @@
-#define MY_VS_FFI_FILEFLAGSMASK 0x0000003FL
-#define MY_VOS_NT_WINDOWS32 0x00040004L
-#define MY_VOS_CE_WINDOWS32 0x00050004L
-
-#define MY_VFT_APP 0x00000001L
-#define MY_VFT_DLL 0x00000002L
-
-// #include
-
-#ifndef MY_VERSION
-#include "7zVersion.h"
-#endif
-
-#define MY_VER MY_VER_MAJOR,MY_VER_MINOR,MY_VER_BUILD,0
-
-#ifdef DEBUG
-#define DBG_FL VS_FF_DEBUG
-#else
-#define DBG_FL 0
-#endif
-
-#define MY_VERSION_INFO(fileType, descr, intName, origName) \
-LANGUAGE 9, 1 \
-1 VERSIONINFO \
- FILEVERSION MY_VER \
- PRODUCTVERSION MY_VER \
- FILEFLAGSMASK MY_VS_FFI_FILEFLAGSMASK \
- FILEFLAGS DBG_FL \
- FILEOS MY_VOS_NT_WINDOWS32 \
- FILETYPE fileType \
- FILESUBTYPE 0x0L \
-BEGIN \
- BLOCK "StringFileInfo" \
- BEGIN \
- BLOCK "040904b0" \
- BEGIN \
- VALUE "CompanyName", "Igor Pavlov" \
- VALUE "FileDescription", descr \
- VALUE "FileVersion", MY_VERSION \
- VALUE "InternalName", intName \
- VALUE "LegalCopyright", MY_COPYRIGHT \
- VALUE "OriginalFilename", origName \
- VALUE "ProductName", "7-Zip" \
- VALUE "ProductVersion", MY_VERSION \
- END \
- END \
- BLOCK "VarFileInfo" \
- BEGIN \
- VALUE "Translation", 0x409, 1200 \
- END \
-END
-
-#define MY_VERSION_INFO_APP(descr, intName) MY_VERSION_INFO(MY_VFT_APP, descr, intName, intName ".exe")
-
-#define MY_VERSION_INFO_DLL(descr, intName) MY_VERSION_INFO(MY_VFT_DLL, descr, intName, intName ".dll")
+#define MY_VS_FFI_FILEFLAGSMASK 0x0000003FL
+#define MY_VOS_NT_WINDOWS32 0x00040004L
+#define MY_VOS_CE_WINDOWS32 0x00050004L
+
+#define MY_VFT_APP 0x00000001L
+#define MY_VFT_DLL 0x00000002L
+
+// #include
+
+#ifndef MY_VERSION
+#include "7zVersion.h"
+#endif
+
+#define MY_VER MY_VER_MAJOR,MY_VER_MINOR,MY_VER_BUILD,0
+
+#ifdef DEBUG
+#define DBG_FL VS_FF_DEBUG
+#else
+#define DBG_FL 0
+#endif
+
+#define MY_VERSION_INFO(fileType, descr, intName, origName) \
+LANGUAGE 9, 1 \
+1 VERSIONINFO \
+ FILEVERSION MY_VER \
+ PRODUCTVERSION MY_VER \
+ FILEFLAGSMASK MY_VS_FFI_FILEFLAGSMASK \
+ FILEFLAGS DBG_FL \
+ FILEOS MY_VOS_NT_WINDOWS32 \
+ FILETYPE fileType \
+ FILESUBTYPE 0x0L \
+BEGIN \
+ BLOCK "StringFileInfo" \
+ BEGIN \
+ BLOCK "040904b0" \
+ BEGIN \
+ VALUE "CompanyName", "Igor Pavlov" \
+ VALUE "FileDescription", descr \
+ VALUE "FileVersion", MY_VERSION \
+ VALUE "InternalName", intName \
+ VALUE "LegalCopyright", MY_COPYRIGHT \
+ VALUE "OriginalFilename", origName \
+ VALUE "ProductName", "7-Zip" \
+ VALUE "ProductVersion", MY_VERSION \
+ END \
+ END \
+ BLOCK "VarFileInfo" \
+ BEGIN \
+ VALUE "Translation", 0x409, 1200 \
+ END \
+END
+
+#define MY_VERSION_INFO_APP(descr, intName) MY_VERSION_INFO(MY_VFT_APP, descr, intName, intName ".exe")
+
+#define MY_VERSION_INFO_DLL(descr, intName) MY_VERSION_INFO(MY_VFT_DLL, descr, intName, intName ".dll")
diff --git a/code/ryzom/client/src/seven_zip/Aes.cpp b/code/nel/3rdparty/seven_zip/Aes.c
similarity index 100%
rename from code/ryzom/client/src/seven_zip/Aes.cpp
rename to code/nel/3rdparty/seven_zip/Aes.c
diff --git a/code/ryzom/client/src/seven_zip/Aes.h b/code/nel/3rdparty/seven_zip/Aes.h
similarity index 100%
rename from code/ryzom/client/src/seven_zip/Aes.h
rename to code/nel/3rdparty/seven_zip/Aes.h
diff --git a/code/ryzom/client/src/seven_zip/AesOpt.cpp b/code/nel/3rdparty/seven_zip/AesOpt.c
similarity index 100%
rename from code/ryzom/client/src/seven_zip/AesOpt.cpp
rename to code/nel/3rdparty/seven_zip/AesOpt.c
diff --git a/code/ryzom/client/src/seven_zip/Alloc.cpp b/code/nel/3rdparty/seven_zip/Alloc.c
similarity index 100%
rename from code/ryzom/client/src/seven_zip/Alloc.cpp
rename to code/nel/3rdparty/seven_zip/Alloc.c
diff --git a/code/ryzom/client/src/seven_zip/Alloc.h b/code/nel/3rdparty/seven_zip/Alloc.h
similarity index 100%
rename from code/ryzom/client/src/seven_zip/Alloc.h
rename to code/nel/3rdparty/seven_zip/Alloc.h
diff --git a/code/ryzom/client/src/seven_zip/Bcj2.cpp b/code/nel/3rdparty/seven_zip/Bcj2.c
similarity index 100%
rename from code/ryzom/client/src/seven_zip/Bcj2.cpp
rename to code/nel/3rdparty/seven_zip/Bcj2.c
diff --git a/code/ryzom/client/src/seven_zip/Bcj2.h b/code/nel/3rdparty/seven_zip/Bcj2.h
similarity index 100%
rename from code/ryzom/client/src/seven_zip/Bcj2.h
rename to code/nel/3rdparty/seven_zip/Bcj2.h
diff --git a/code/ryzom/client/src/seven_zip/Bcj2Enc.cpp b/code/nel/3rdparty/seven_zip/Bcj2Enc.c
similarity index 100%
rename from code/ryzom/client/src/seven_zip/Bcj2Enc.cpp
rename to code/nel/3rdparty/seven_zip/Bcj2Enc.c
diff --git a/code/ryzom/client/src/seven_zip/Bra.cpp b/code/nel/3rdparty/seven_zip/Bra.c
similarity index 100%
rename from code/ryzom/client/src/seven_zip/Bra.cpp
rename to code/nel/3rdparty/seven_zip/Bra.c
diff --git a/code/ryzom/client/src/seven_zip/Bra.h b/code/nel/3rdparty/seven_zip/Bra.h
similarity index 100%
rename from code/ryzom/client/src/seven_zip/Bra.h
rename to code/nel/3rdparty/seven_zip/Bra.h
diff --git a/code/ryzom/client/src/seven_zip/Bra86.cpp b/code/nel/3rdparty/seven_zip/Bra86.c
similarity index 100%
rename from code/ryzom/client/src/seven_zip/Bra86.cpp
rename to code/nel/3rdparty/seven_zip/Bra86.c
diff --git a/code/ryzom/client/src/seven_zip/BraIA64.cpp b/code/nel/3rdparty/seven_zip/BraIA64.c
similarity index 100%
rename from code/ryzom/client/src/seven_zip/BraIA64.cpp
rename to code/nel/3rdparty/seven_zip/BraIA64.c
diff --git a/code/nel/3rdparty/seven_zip/CMakeLists.txt b/code/nel/3rdparty/seven_zip/CMakeLists.txt
new file mode 100644
index 000000000..dfbf00aa2
--- /dev/null
+++ b/code/nel/3rdparty/seven_zip/CMakeLists.txt
@@ -0,0 +1,27 @@
+INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR})
+
+FILE(GLOB LIB_SRC *.cpp *.c *.h)
+
+LIST(REMOVE_ITEM LIB_SRC ${CMAKE_CURRENT_SOURCE_DIR}/LzmaUtil.c)
+
+NL_TARGET_LIB(nel_sevenzip ${LIB_SRC})
+# TARGET_LINK_LIBRARIES(nel_sevenzip ${PLATFORM_LINKFLAGS})
+NL_DEFAULT_PROPS(nel_sevenzip "NeL, 3rd Party: Seven Zip")
+NL_ADD_RUNTIME_FLAGS(nel_sevenzip)
+NL_ADD_LIB_SUFFIX(nel_sevenzip)
+
+ADD_DEFINITIONS(-D_7ZIP_ST)
+
+IF((WITH_INSTALL_LIBRARIES AND WITH_STATIC) OR NOT WITH_STATIC)
+ INSTALL(TARGETS nel_sevenzip LIBRARY DESTINATION ${NL_LIB_PREFIX} ARCHIVE DESTINATION ${NL_LIB_PREFIX} COMPONENT libraries)
+ENDIF()
+
+IF(WITH_NEL_TOOLS)
+ ADD_EXECUTABLE(lzma ${CMAKE_CURRENT_SOURCE_DIR}/LzmaUtil.c)
+
+ TARGET_LINK_LIBRARIES(lzma nel_sevenzip)
+ NL_DEFAULT_PROPS(lzma "NeL, 3rd Party: LZMA")
+ NL_ADD_RUNTIME_FLAGS(lzma)
+
+ INSTALL(TARGETS lzma RUNTIME DESTINATION ${NL_BIN_PREFIX} COMPONENT tools)
+ENDIF()
diff --git a/code/ryzom/client/src/seven_zip/Compiler.h b/code/nel/3rdparty/seven_zip/Compiler.h
similarity index 100%
rename from code/ryzom/client/src/seven_zip/Compiler.h
rename to code/nel/3rdparty/seven_zip/Compiler.h
diff --git a/code/ryzom/client/src/seven_zip/CpuArch.cpp b/code/nel/3rdparty/seven_zip/CpuArch.c
similarity index 100%
rename from code/ryzom/client/src/seven_zip/CpuArch.cpp
rename to code/nel/3rdparty/seven_zip/CpuArch.c
diff --git a/code/ryzom/client/src/seven_zip/CpuArch.h b/code/nel/3rdparty/seven_zip/CpuArch.h
similarity index 100%
rename from code/ryzom/client/src/seven_zip/CpuArch.h
rename to code/nel/3rdparty/seven_zip/CpuArch.h
diff --git a/code/ryzom/client/src/seven_zip/Delta.cpp b/code/nel/3rdparty/seven_zip/Delta.c
similarity index 100%
rename from code/ryzom/client/src/seven_zip/Delta.cpp
rename to code/nel/3rdparty/seven_zip/Delta.c
diff --git a/code/ryzom/client/src/seven_zip/Delta.h b/code/nel/3rdparty/seven_zip/Delta.h
similarity index 100%
rename from code/ryzom/client/src/seven_zip/Delta.h
rename to code/nel/3rdparty/seven_zip/Delta.h
diff --git a/code/nel/3rdparty/seven_zip/DllSecur.c b/code/nel/3rdparty/seven_zip/DllSecur.c
new file mode 100644
index 000000000..5ea108ab8
--- /dev/null
+++ b/code/nel/3rdparty/seven_zip/DllSecur.c
@@ -0,0 +1,108 @@
+/* DllSecur.c -- DLL loading security
+2018-02-21 : Igor Pavlov : Public domain */
+
+#include "Precomp.h"
+
+#ifdef _WIN32
+
+#include
+
+#include "DllSecur.h"
+
+#ifndef UNDER_CE
+
+typedef BOOL (WINAPI *Func_SetDefaultDllDirectories)(DWORD DirectoryFlags);
+
+#define MY_LOAD_LIBRARY_SEARCH_USER_DIRS 0x400
+#define MY_LOAD_LIBRARY_SEARCH_SYSTEM32 0x800
+
+static const char * const g_Dlls =
+ #ifndef _CONSOLE
+ "UXTHEME\0"
+ #endif
+ "USERENV\0"
+ "SETUPAPI\0"
+ "APPHELP\0"
+ "PROPSYS\0"
+ "DWMAPI\0"
+ "CRYPTBASE\0"
+ "OLEACC\0"
+ "CLBCATQ\0"
+ "VERSION\0"
+ ;
+
+#endif
+
+void My_SetDefaultDllDirectories()
+{
+ #ifndef UNDER_CE
+
+ OSVERSIONINFO vi;
+ vi.dwOSVersionInfoSize = sizeof(vi);
+ GetVersionEx(&vi);
+ if (!GetVersionEx(&vi) || vi.dwMajorVersion != 6 || vi.dwMinorVersion != 0)
+ {
+ Func_SetDefaultDllDirectories setDllDirs = (Func_SetDefaultDllDirectories)
+ GetProcAddress(GetModuleHandle(TEXT("kernel32.dll")), "SetDefaultDllDirectories");
+ if (setDllDirs)
+ if (setDllDirs(MY_LOAD_LIBRARY_SEARCH_SYSTEM32 | MY_LOAD_LIBRARY_SEARCH_USER_DIRS))
+ return;
+ }
+
+ #endif
+}
+
+
+void LoadSecurityDlls()
+{
+ #ifndef UNDER_CE
+
+ wchar_t buf[MAX_PATH + 100];
+
+ {
+ // at Vista (ver 6.0) : CoCreateInstance(CLSID_ShellLink, ...) doesn't work after SetDefaultDllDirectories() : Check it ???
+ OSVERSIONINFO vi;
+ vi.dwOSVersionInfoSize = sizeof(vi);
+ if (!GetVersionEx(&vi) || vi.dwMajorVersion != 6 || vi.dwMinorVersion != 0)
+ {
+ Func_SetDefaultDllDirectories setDllDirs = (Func_SetDefaultDllDirectories)
+ GetProcAddress(GetModuleHandle(TEXT("kernel32.dll")), "SetDefaultDllDirectories");
+ if (setDllDirs)
+ if (setDllDirs(MY_LOAD_LIBRARY_SEARCH_SYSTEM32 | MY_LOAD_LIBRARY_SEARCH_USER_DIRS))
+ return;
+ }
+ }
+
+ {
+ unsigned len = GetSystemDirectoryW(buf, MAX_PATH + 2);
+ if (len == 0 || len > MAX_PATH)
+ return;
+ }
+ {
+ const char *dll;
+ unsigned pos = (unsigned)lstrlenW(buf);
+
+ if (buf[pos - 1] != '\\')
+ buf[pos++] = '\\';
+
+ for (dll = g_Dlls; dll[0] != 0;)
+ {
+ unsigned k = 0;
+ for (;;)
+ {
+ char c = *dll++;
+ buf[pos + k] = (Byte)c;
+ k++;
+ if (c == 0)
+ break;
+ }
+
+ lstrcatW(buf, L".dll");
+ LoadLibraryExW(buf, NULL, LOAD_WITH_ALTERED_SEARCH_PATH);
+ }
+ }
+
+ #endif
+}
+
+#endif
diff --git a/code/nel/3rdparty/seven_zip/DllSecur.h b/code/nel/3rdparty/seven_zip/DllSecur.h
new file mode 100644
index 000000000..e2a049ad2
--- /dev/null
+++ b/code/nel/3rdparty/seven_zip/DllSecur.h
@@ -0,0 +1,20 @@
+/* DllSecur.h -- DLL loading for security
+2018-02-19 : Igor Pavlov : Public domain */
+
+#ifndef __DLL_SECUR_H
+#define __DLL_SECUR_H
+
+#include "7zTypes.h"
+
+EXTERN_C_BEGIN
+
+#ifdef _WIN32
+
+void My_SetDefaultDllDirectories();
+void LoadSecurityDlls();
+
+#endif
+
+EXTERN_C_END
+
+#endif
diff --git a/code/ryzom/client/src/seven_zip/LzFind.cpp b/code/nel/3rdparty/seven_zip/LzFind.c
similarity index 100%
rename from code/ryzom/client/src/seven_zip/LzFind.cpp
rename to code/nel/3rdparty/seven_zip/LzFind.c
diff --git a/code/ryzom/client/src/seven_zip/LzFind.h b/code/nel/3rdparty/seven_zip/LzFind.h
similarity index 100%
rename from code/ryzom/client/src/seven_zip/LzFind.h
rename to code/nel/3rdparty/seven_zip/LzFind.h
diff --git a/code/ryzom/client/src/seven_zip/LzHash.h b/code/nel/3rdparty/seven_zip/LzHash.h
similarity index 100%
rename from code/ryzom/client/src/seven_zip/LzHash.h
rename to code/nel/3rdparty/seven_zip/LzHash.h
diff --git a/code/ryzom/client/src/seven_zip/Lzma2Dec.cpp b/code/nel/3rdparty/seven_zip/Lzma2Dec.c
similarity index 100%
rename from code/ryzom/client/src/seven_zip/Lzma2Dec.cpp
rename to code/nel/3rdparty/seven_zip/Lzma2Dec.c
diff --git a/code/ryzom/client/src/seven_zip/Lzma2Dec.h b/code/nel/3rdparty/seven_zip/Lzma2Dec.h
similarity index 100%
rename from code/ryzom/client/src/seven_zip/Lzma2Dec.h
rename to code/nel/3rdparty/seven_zip/Lzma2Dec.h
diff --git a/code/nel/3rdparty/seven_zip/Lzma2DecMt.c b/code/nel/3rdparty/seven_zip/Lzma2DecMt.c
new file mode 100644
index 000000000..988643d95
--- /dev/null
+++ b/code/nel/3rdparty/seven_zip/Lzma2DecMt.c
@@ -0,0 +1,1082 @@
+/* Lzma2DecMt.c -- LZMA2 Decoder Multi-thread
+2019-02-02 : Igor Pavlov : Public domain */
+
+#include "Precomp.h"
+
+// #define SHOW_DEBUG_INFO
+
+#ifdef SHOW_DEBUG_INFO
+#include
+#endif
+
+#ifdef SHOW_DEBUG_INFO
+#define PRF(x) x
+#else
+#define PRF(x)
+#endif
+
+#define PRF_STR(s) PRF(printf("\n" s "\n"))
+#define PRF_STR_INT(s, d) PRF(printf("\n" s " %d\n", (unsigned)d))
+#define PRF_STR_INT_2(s, d1, d2) PRF(printf("\n" s " %d %d\n", (unsigned)d1, (unsigned)d2))
+
+// #define _7ZIP_ST
+
+#include "Alloc.h"
+
+#include "Lzma2Dec.h"
+#include "Lzma2DecMt.h"
+
+#ifndef _7ZIP_ST
+#include "MtDec.h"
+#endif
+
+
+#define LZMA2DECMT_OUT_BLOCK_MAX_DEFAULT (1 << 28)
+
+void Lzma2DecMtProps_Init(CLzma2DecMtProps *p)
+{
+ p->inBufSize_ST = 1 << 20;
+ p->outStep_ST = 1 << 20;
+
+ #ifndef _7ZIP_ST
+ p->numThreads = 1;
+ p->inBufSize_MT = 1 << 18;
+ p->outBlockMax = LZMA2DECMT_OUT_BLOCK_MAX_DEFAULT;
+ p->inBlockMax = p->outBlockMax + p->outBlockMax / 16;
+ #endif
+}
+
+
+
+#ifndef _7ZIP_ST
+
+/* ---------- CLzma2DecMtThread ---------- */
+
+typedef struct
+{
+ CLzma2Dec dec;
+ Byte dec_created;
+ Byte needInit;
+
+ Byte *outBuf;
+ size_t outBufSize;
+
+ EMtDecParseState state;
+ ELzma2ParseStatus parseStatus;
+
+ size_t inPreSize;
+ size_t outPreSize;
+
+ size_t inCodeSize;
+ size_t outCodeSize;
+ SRes codeRes;
+
+ CAlignOffsetAlloc alloc;
+
+ Byte mtPad[1 << 7];
+} CLzma2DecMtThread;
+
+#endif
+
+
+/* ---------- CLzma2DecMt ---------- */
+
+typedef struct
+{
+ // ISzAllocPtr alloc;
+ ISzAllocPtr allocMid;
+
+ CAlignOffsetAlloc alignOffsetAlloc;
+ CLzma2DecMtProps props;
+ Byte prop;
+
+ ISeqInStream *inStream;
+ ISeqOutStream *outStream;
+ ICompressProgress *progress;
+
+ BoolInt finishMode;
+ BoolInt outSize_Defined;
+ UInt64 outSize;
+
+ UInt64 outProcessed;
+ UInt64 inProcessed;
+ BoolInt readWasFinished;
+ SRes readRes;
+
+ Byte *inBuf;
+ size_t inBufSize;
+ Byte dec_created;
+ CLzma2Dec dec;
+
+ size_t inPos;
+ size_t inLim;
+
+ #ifndef _7ZIP_ST
+ UInt64 outProcessed_Parse;
+ BoolInt mtc_WasConstructed;
+ CMtDec mtc;
+ CLzma2DecMtThread coders[MTDEC__THREADS_MAX];
+ #endif
+
+} CLzma2DecMt;
+
+
+
+CLzma2DecMtHandle Lzma2DecMt_Create(ISzAllocPtr alloc, ISzAllocPtr allocMid)
+{
+ CLzma2DecMt *p = (CLzma2DecMt *)ISzAlloc_Alloc(alloc, sizeof(CLzma2DecMt));
+ if (!p)
+ return NULL;
+
+ // p->alloc = alloc;
+ p->allocMid = allocMid;
+
+ AlignOffsetAlloc_CreateVTable(&p->alignOffsetAlloc);
+ p->alignOffsetAlloc.numAlignBits = 7;
+ p->alignOffsetAlloc.offset = 0;
+ p->alignOffsetAlloc.baseAlloc = alloc;
+
+ p->inBuf = NULL;
+ p->inBufSize = 0;
+ p->dec_created = False;
+
+ // Lzma2DecMtProps_Init(&p->props);
+
+ #ifndef _7ZIP_ST
+ p->mtc_WasConstructed = False;
+ {
+ unsigned i;
+ for (i = 0; i < MTDEC__THREADS_MAX; i++)
+ {
+ CLzma2DecMtThread *t = &p->coders[i];
+ t->dec_created = False;
+ t->outBuf = NULL;
+ t->outBufSize = 0;
+ }
+ }
+ #endif
+
+ return p;
+}
+
+
+#ifndef _7ZIP_ST
+
+static void Lzma2DecMt_FreeOutBufs(CLzma2DecMt *p)
+{
+ unsigned i;
+ for (i = 0; i < MTDEC__THREADS_MAX; i++)
+ {
+ CLzma2DecMtThread *t = &p->coders[i];
+ if (t->outBuf)
+ {
+ ISzAlloc_Free(p->allocMid, t->outBuf);
+ t->outBuf = NULL;
+ t->outBufSize = 0;
+ }
+ }
+}
+
+#endif
+
+
+static void Lzma2DecMt_FreeSt(CLzma2DecMt *p)
+{
+ if (p->dec_created)
+ {
+ Lzma2Dec_Free(&p->dec, &p->alignOffsetAlloc.vt);
+ p->dec_created = False;
+ }
+ if (p->inBuf)
+ {
+ ISzAlloc_Free(p->allocMid, p->inBuf);
+ p->inBuf = NULL;
+ }
+ p->inBufSize = 0;
+}
+
+
+void Lzma2DecMt_Destroy(CLzma2DecMtHandle pp)
+{
+ CLzma2DecMt *p = (CLzma2DecMt *)pp;
+
+ Lzma2DecMt_FreeSt(p);
+
+ #ifndef _7ZIP_ST
+
+ if (p->mtc_WasConstructed)
+ {
+ MtDec_Destruct(&p->mtc);
+ p->mtc_WasConstructed = False;
+ }
+ {
+ unsigned i;
+ for (i = 0; i < MTDEC__THREADS_MAX; i++)
+ {
+ CLzma2DecMtThread *t = &p->coders[i];
+ if (t->dec_created)
+ {
+ // we don't need to free dict here
+ Lzma2Dec_FreeProbs(&t->dec, &t->alloc.vt); // p->alloc !!!
+ t->dec_created = False;
+ }
+ }
+ }
+ Lzma2DecMt_FreeOutBufs(p);
+
+ #endif
+
+ ISzAlloc_Free(p->alignOffsetAlloc.baseAlloc, pp);
+}
+
+
+
+#ifndef _7ZIP_ST
+
+static void Lzma2DecMt_MtCallback_Parse(void *obj, unsigned coderIndex, CMtDecCallbackInfo *cc)
+{
+ CLzma2DecMt *me = (CLzma2DecMt *)obj;
+ CLzma2DecMtThread *t = &me->coders[coderIndex];
+
+ PRF_STR_INT_2("Parse", coderIndex, cc->srcSize);
+
+ cc->state = MTDEC_PARSE_CONTINUE;
+
+ if (cc->startCall)
+ {
+ if (!t->dec_created)
+ {
+ Lzma2Dec_Construct(&t->dec);
+ t->dec_created = True;
+ AlignOffsetAlloc_CreateVTable(&t->alloc);
+ {
+ /* (1 << 12) is expected size of one way in data cache.
+ We optimize alignment for cache line size of 128 bytes and smaller */
+ const unsigned kNumAlignBits = 12;
+ const unsigned kNumCacheLineBits = 7; /* <= kNumAlignBits */
+ t->alloc.numAlignBits = kNumAlignBits;
+ t->alloc.offset = ((UInt32)coderIndex * ((1 << 11) + (1 << 8) + (1 << 6))) & ((1 << kNumAlignBits) - (1 << kNumCacheLineBits));
+ t->alloc.baseAlloc = me->alignOffsetAlloc.baseAlloc;
+ }
+ }
+ Lzma2Dec_Init(&t->dec);
+
+ t->inPreSize = 0;
+ t->outPreSize = 0;
+ // t->blockWasFinished = False;
+ // t->finishedWithMark = False;
+ t->parseStatus = (ELzma2ParseStatus)LZMA_STATUS_NOT_SPECIFIED;
+ t->state = MTDEC_PARSE_CONTINUE;
+
+ t->inCodeSize = 0;
+ t->outCodeSize = 0;
+ t->codeRes = SZ_OK;
+
+ // (cc->srcSize == 0) is allowed
+ }
+
+ {
+ ELzma2ParseStatus status;
+ BoolInt overflow;
+ UInt32 unpackRem = 0;
+
+ int checkFinishBlock = True;
+ size_t limit = me->props.outBlockMax;
+ if (me->outSize_Defined)
+ {
+ UInt64 rem = me->outSize - me->outProcessed_Parse;
+ if (limit >= rem)
+ {
+ limit = (size_t)rem;
+ if (!me->finishMode)
+ checkFinishBlock = False;
+ }
+ }
+
+ // checkFinishBlock = False, if we want to decode partial data
+ // that must be finished at position <= outBlockMax.
+
+ {
+ const SizeT srcOrig = cc->srcSize;
+ SizeT srcSize_Point = 0;
+ SizeT dicPos_Point = 0;
+
+ cc->srcSize = 0;
+ overflow = False;
+
+ for (;;)
+ {
+ SizeT srcCur = srcOrig - cc->srcSize;
+
+ status = Lzma2Dec_Parse(&t->dec,
+ limit - t->dec.decoder.dicPos,
+ cc->src + cc->srcSize, &srcCur,
+ checkFinishBlock);
+
+ cc->srcSize += srcCur;
+
+ if (status == LZMA2_PARSE_STATUS_NEW_CHUNK)
+ {
+ if (t->dec.unpackSize > me->props.outBlockMax - t->dec.decoder.dicPos)
+ {
+ overflow = True;
+ break;
+ }
+ continue;
+ }
+
+ if (status == LZMA2_PARSE_STATUS_NEW_BLOCK)
+ {
+ if (t->dec.decoder.dicPos == 0)
+ continue;
+ // we decode small blocks in one thread
+ if (t->dec.decoder.dicPos >= (1 << 14))
+ break;
+ dicPos_Point = t->dec.decoder.dicPos;
+ srcSize_Point = cc->srcSize;
+ continue;
+ }
+
+ if ((int)status == LZMA_STATUS_NOT_FINISHED && checkFinishBlock
+ // && limit == t->dec.decoder.dicPos
+ // && limit == me->props.outBlockMax
+ )
+ {
+ overflow = True;
+ break;
+ }
+
+ unpackRem = Lzma2Dec_GetUnpackExtra(&t->dec);
+ break;
+ }
+
+ if (dicPos_Point != 0
+ && (int)status != LZMA2_PARSE_STATUS_NEW_BLOCK
+ && (int)status != LZMA_STATUS_FINISHED_WITH_MARK
+ && (int)status != LZMA_STATUS_NOT_SPECIFIED)
+ {
+ // we revert to latest newBlock state
+ status = LZMA2_PARSE_STATUS_NEW_BLOCK;
+ unpackRem = 0;
+ t->dec.decoder.dicPos = dicPos_Point;
+ cc->srcSize = srcSize_Point;
+ overflow = False;
+ }
+ }
+
+ t->inPreSize += cc->srcSize;
+ t->parseStatus = status;
+
+ if (overflow)
+ cc->state = MTDEC_PARSE_OVERFLOW;
+ else
+ {
+ size_t dicPos = t->dec.decoder.dicPos;
+
+ if ((int)status != LZMA_STATUS_NEEDS_MORE_INPUT)
+ {
+ if (status == LZMA2_PARSE_STATUS_NEW_BLOCK)
+ {
+ cc->state = MTDEC_PARSE_NEW;
+ cc->srcSize--; // we don't need control byte of next block
+ t->inPreSize--;
+ }
+ else
+ {
+ cc->state = MTDEC_PARSE_END;
+ if ((int)status != LZMA_STATUS_FINISHED_WITH_MARK)
+ {
+ // (status == LZMA_STATUS_NOT_SPECIFIED)
+ // (status == LZMA_STATUS_NOT_FINISHED)
+ if (unpackRem != 0)
+ {
+ /* we also reserve space for max possible number of output bytes of current LZMA chunk */
+ SizeT rem = limit - dicPos;
+ if (rem > unpackRem)
+ rem = unpackRem;
+ dicPos += rem;
+ }
+ }
+ }
+
+ me->outProcessed_Parse += dicPos;
+ }
+
+ cc->outPos = dicPos;
+ t->outPreSize = (size_t)dicPos;
+ }
+
+ t->state = cc->state;
+ return;
+ }
+}
+
+
+static SRes Lzma2DecMt_MtCallback_PreCode(void *pp, unsigned coderIndex)
+{
+ CLzma2DecMt *me = (CLzma2DecMt *)pp;
+ CLzma2DecMtThread *t = &me->coders[coderIndex];
+ Byte *dest = t->outBuf;
+
+ if (t->inPreSize == 0)
+ {
+ t->codeRes = SZ_ERROR_DATA;
+ return t->codeRes;
+ }
+
+ if (!dest || t->outBufSize < t->outPreSize)
+ {
+ if (dest)
+ {
+ ISzAlloc_Free(me->allocMid, dest);
+ t->outBuf = NULL;
+ t->outBufSize = 0;
+ }
+
+ dest = (Byte *)ISzAlloc_Alloc(me->allocMid, t->outPreSize
+ // + (1 << 28)
+ );
+ // Sleep(200);
+ if (!dest)
+ return SZ_ERROR_MEM;
+ t->outBuf = dest;
+ t->outBufSize = t->outPreSize;
+ }
+
+ t->dec.decoder.dic = dest;
+ t->dec.decoder.dicBufSize = t->outPreSize;
+
+ t->needInit = True;
+
+ return Lzma2Dec_AllocateProbs(&t->dec, me->prop, &t->alloc.vt); // alloc.vt
+}
+
+
+static SRes Lzma2DecMt_MtCallback_Code(void *pp, unsigned coderIndex,
+ const Byte *src, size_t srcSize, int srcFinished,
+ // int finished, int blockFinished,
+ UInt64 *inCodePos, UInt64 *outCodePos, int *stop)
+{
+ CLzma2DecMt *me = (CLzma2DecMt *)pp;
+ CLzma2DecMtThread *t = &me->coders[coderIndex];
+
+ UNUSED_VAR(srcFinished)
+
+ PRF_STR_INT_2("Code", coderIndex, srcSize);
+
+ *inCodePos = t->inCodeSize;
+ *outCodePos = 0;
+ *stop = True;
+
+ if (t->needInit)
+ {
+ Lzma2Dec_Init(&t->dec);
+ t->needInit = False;
+ }
+
+ {
+ ELzmaStatus status;
+ size_t srcProcessed = srcSize;
+ BoolInt blockWasFinished =
+ ((int)t->parseStatus == LZMA_STATUS_FINISHED_WITH_MARK
+ || t->parseStatus == LZMA2_PARSE_STATUS_NEW_BLOCK);
+
+ SRes res = Lzma2Dec_DecodeToDic(&t->dec,
+ t->outPreSize,
+ src, &srcProcessed,
+ blockWasFinished ? LZMA_FINISH_END : LZMA_FINISH_ANY,
+ &status);
+
+ t->codeRes = res;
+
+ t->inCodeSize += srcProcessed;
+ *inCodePos = t->inCodeSize;
+ t->outCodeSize = t->dec.decoder.dicPos;
+ *outCodePos = t->dec.decoder.dicPos;
+
+ if (res != SZ_OK)
+ return res;
+
+ if (srcProcessed == srcSize)
+ *stop = False;
+
+ if (blockWasFinished)
+ {
+ if (srcSize != srcProcessed)
+ return SZ_ERROR_FAIL;
+
+ if (t->inPreSize == t->inCodeSize)
+ {
+ if (t->outPreSize != t->outCodeSize)
+ return SZ_ERROR_FAIL;
+ *stop = True;
+ }
+ }
+ else
+ {
+ if (t->outPreSize == t->outCodeSize)
+ *stop = True;
+ }
+
+ return SZ_OK;
+ }
+}
+
+
+#define LZMA2DECMT_STREAM_WRITE_STEP (1 << 24)
+
+static SRes Lzma2DecMt_MtCallback_Write(void *pp, unsigned coderIndex,
+ BoolInt needWriteToStream,
+ const Byte *src, size_t srcSize,
+ BoolInt *needContinue, BoolInt *canRecode)
+{
+ CLzma2DecMt *me = (CLzma2DecMt *)pp;
+ const CLzma2DecMtThread *t = &me->coders[coderIndex];
+ size_t size = t->outCodeSize;
+ const Byte *data = t->outBuf;
+ BoolInt needContinue2 = True;
+
+ PRF_STR_INT_2("Write", coderIndex, srcSize);
+
+ *needContinue = False;
+ *canRecode = True;
+ UNUSED_VAR(src)
+ UNUSED_VAR(srcSize)
+
+ if (
+ // t->parseStatus == LZMA_STATUS_FINISHED_WITH_MARK
+ t->state == MTDEC_PARSE_OVERFLOW
+ || t->state == MTDEC_PARSE_END)
+ needContinue2 = False;
+
+
+ if (!needWriteToStream)
+ return SZ_OK;
+
+ me->mtc.inProcessed += t->inCodeSize;
+
+ if (t->codeRes == SZ_OK)
+ if ((int)t->parseStatus == LZMA_STATUS_FINISHED_WITH_MARK
+ || t->parseStatus == LZMA2_PARSE_STATUS_NEW_BLOCK)
+ if (t->outPreSize != t->outCodeSize
+ || t->inPreSize != t->inCodeSize)
+ return SZ_ERROR_FAIL;
+
+ *canRecode = False;
+
+ if (me->outStream)
+ {
+ for (;;)
+ {
+ size_t cur = size;
+ size_t written;
+ if (cur > LZMA2DECMT_STREAM_WRITE_STEP)
+ cur = LZMA2DECMT_STREAM_WRITE_STEP;
+
+ written = ISeqOutStream_Write(me->outStream, data, cur);
+
+ me->outProcessed += written;
+ // me->mtc.writtenTotal += written;
+ if (written != cur)
+ return SZ_ERROR_WRITE;
+ data += cur;
+ size -= cur;
+ if (size == 0)
+ {
+ *needContinue = needContinue2;
+ return SZ_OK;
+ }
+ RINOK(MtProgress_ProgressAdd(&me->mtc.mtProgress, 0, 0));
+ }
+ }
+
+ return SZ_ERROR_FAIL;
+ /*
+ if (size > me->outBufSize)
+ return SZ_ERROR_OUTPUT_EOF;
+ memcpy(me->outBuf, data, size);
+ me->outBufSize -= size;
+ me->outBuf += size;
+ *needContinue = needContinue2;
+ return SZ_OK;
+ */
+}
+
+#endif
+
+
+static SRes Lzma2Dec_Prepare_ST(CLzma2DecMt *p)
+{
+ if (!p->dec_created)
+ {
+ Lzma2Dec_Construct(&p->dec);
+ p->dec_created = True;
+ }
+
+ RINOK(Lzma2Dec_Allocate(&p->dec, p->prop, &p->alignOffsetAlloc.vt));
+
+ if (!p->inBuf || p->inBufSize != p->props.inBufSize_ST)
+ {
+ ISzAlloc_Free(p->allocMid, p->inBuf);
+ p->inBufSize = 0;
+ p->inBuf = (Byte *)ISzAlloc_Alloc(p->allocMid, p->props.inBufSize_ST);
+ if (!p->inBuf)
+ return SZ_ERROR_MEM;
+ p->inBufSize = p->props.inBufSize_ST;
+ }
+
+ Lzma2Dec_Init(&p->dec);
+
+ return SZ_OK;
+}
+
+
+static SRes Lzma2Dec_Decode_ST(CLzma2DecMt *p
+ #ifndef _7ZIP_ST
+ , BoolInt tMode
+ #endif
+ )
+{
+ SizeT wrPos;
+ size_t inPos, inLim;
+ const Byte *inData;
+ UInt64 inPrev, outPrev;
+
+ CLzma2Dec *dec;
+
+ #ifndef _7ZIP_ST
+ if (tMode)
+ {
+ Lzma2DecMt_FreeOutBufs(p);
+ tMode = MtDec_PrepareRead(&p->mtc);
+ }
+ #endif
+
+ RINOK(Lzma2Dec_Prepare_ST(p));
+
+ dec = &p->dec;
+
+ inPrev = p->inProcessed;
+ outPrev = p->outProcessed;
+
+ inPos = 0;
+ inLim = 0;
+ inData = NULL;
+ wrPos = dec->decoder.dicPos;
+
+ for (;;)
+ {
+ SizeT dicPos;
+ SizeT size;
+ ELzmaFinishMode finishMode;
+ SizeT inProcessed;
+ ELzmaStatus status;
+ SRes res;
+
+ SizeT outProcessed;
+ BoolInt outFinished;
+ BoolInt needStop;
+
+ if (inPos == inLim)
+ {
+ #ifndef _7ZIP_ST
+ if (tMode)
+ {
+ inData = MtDec_Read(&p->mtc, &inLim);
+ inPos = 0;
+ if (inData)
+ continue;
+ tMode = False;
+ inLim = 0;
+ }
+ #endif
+
+ if (!p->readWasFinished)
+ {
+ inPos = 0;
+ inLim = p->inBufSize;
+ inData = p->inBuf;
+ p->readRes = ISeqInStream_Read(p->inStream, (void *)inData, &inLim);
+ // p->readProcessed += inLim;
+ // inLim -= 5; p->readWasFinished = True; // for test
+ if (inLim == 0 || p->readRes != SZ_OK)
+ p->readWasFinished = True;
+ }
+ }
+
+ dicPos = dec->decoder.dicPos;
+ {
+ SizeT next = dec->decoder.dicBufSize;
+ if (next - wrPos > p->props.outStep_ST)
+ next = wrPos + p->props.outStep_ST;
+ size = next - dicPos;
+ }
+
+ finishMode = LZMA_FINISH_ANY;
+ if (p->outSize_Defined)
+ {
+ const UInt64 rem = p->outSize - p->outProcessed;
+ if (size >= rem)
+ {
+ size = (SizeT)rem;
+ if (p->finishMode)
+ finishMode = LZMA_FINISH_END;
+ }
+ }
+
+ inProcessed = inLim - inPos;
+
+ res = Lzma2Dec_DecodeToDic(dec, dicPos + size, inData + inPos, &inProcessed, finishMode, &status);
+
+ inPos += inProcessed;
+ p->inProcessed += inProcessed;
+ outProcessed = dec->decoder.dicPos - dicPos;
+ p->outProcessed += outProcessed;
+
+ outFinished = (p->outSize_Defined && p->outSize <= p->outProcessed);
+
+ needStop = (res != SZ_OK
+ || (inProcessed == 0 && outProcessed == 0)
+ || status == LZMA_STATUS_FINISHED_WITH_MARK
+ || (!p->finishMode && outFinished));
+
+ if (needStop || outProcessed >= size)
+ {
+ SRes res2;
+ {
+ size_t writeSize = dec->decoder.dicPos - wrPos;
+ size_t written = ISeqOutStream_Write(p->outStream, dec->decoder.dic + wrPos, writeSize);
+ res2 = (written == writeSize) ? SZ_OK : SZ_ERROR_WRITE;
+ }
+
+ if (dec->decoder.dicPos == dec->decoder.dicBufSize)
+ dec->decoder.dicPos = 0;
+ wrPos = dec->decoder.dicPos;
+
+ RINOK(res2);
+
+ if (needStop)
+ {
+ if (res != SZ_OK)
+ return res;
+
+ if (status == LZMA_STATUS_FINISHED_WITH_MARK)
+ {
+ if (p->finishMode)
+ {
+ if (p->outSize_Defined && p->outSize != p->outProcessed)
+ return SZ_ERROR_DATA;
+ }
+ return SZ_OK;
+ }
+
+ if (!p->finishMode && outFinished)
+ return SZ_OK;
+
+ if (status == LZMA_STATUS_NEEDS_MORE_INPUT)
+ return SZ_ERROR_INPUT_EOF;
+
+ return SZ_ERROR_DATA;
+ }
+ }
+
+ if (p->progress)
+ {
+ UInt64 inDelta = p->inProcessed - inPrev;
+ UInt64 outDelta = p->outProcessed - outPrev;
+ if (inDelta >= (1 << 22) || outDelta >= (1 << 22))
+ {
+ RINOK(ICompressProgress_Progress(p->progress, p->inProcessed, p->outProcessed));
+ inPrev = p->inProcessed;
+ outPrev = p->outProcessed;
+ }
+ }
+ }
+}
+
+
+
+SRes Lzma2DecMt_Decode(CLzma2DecMtHandle pp,
+ Byte prop,
+ const CLzma2DecMtProps *props,
+ ISeqOutStream *outStream, const UInt64 *outDataSize, int finishMode,
+ // Byte *outBuf, size_t *outBufSize,
+ ISeqInStream *inStream,
+ // const Byte *inData, size_t inDataSize,
+ UInt64 *inProcessed,
+ // UInt64 *outProcessed,
+ int *isMT,
+ ICompressProgress *progress)
+{
+ CLzma2DecMt *p = (CLzma2DecMt *)pp;
+ #ifndef _7ZIP_ST
+ BoolInt tMode;
+ #endif
+
+ *inProcessed = 0;
+
+ if (prop > 40)
+ return SZ_ERROR_UNSUPPORTED;
+
+ p->prop = prop;
+ p->props = *props;
+
+ p->inStream = inStream;
+ p->outStream = outStream;
+ p->progress = progress;
+
+ p->outSize = 0;
+ p->outSize_Defined = False;
+ if (outDataSize)
+ {
+ p->outSize_Defined = True;
+ p->outSize = *outDataSize;
+ }
+ p->finishMode = finishMode;
+
+ p->outProcessed = 0;
+ p->inProcessed = 0;
+
+ p->readWasFinished = False;
+
+ *isMT = False;
+
+
+ #ifndef _7ZIP_ST
+
+ tMode = False;
+
+ // p->mtc.parseRes = SZ_OK;
+
+ // p->mtc.numFilledThreads = 0;
+ // p->mtc.crossStart = 0;
+ // p->mtc.crossEnd = 0;
+ // p->mtc.allocError_for_Read_BlockIndex = 0;
+ // p->mtc.isAllocError = False;
+
+ if (p->props.numThreads > 1)
+ {
+ IMtDecCallback vt;
+
+ Lzma2DecMt_FreeSt(p);
+
+ p->outProcessed_Parse = 0;
+
+ if (!p->mtc_WasConstructed)
+ {
+ p->mtc_WasConstructed = True;
+ MtDec_Construct(&p->mtc);
+ }
+
+ p->mtc.progress = progress;
+ p->mtc.inStream = inStream;
+
+ // p->outBuf = NULL;
+ // p->outBufSize = 0;
+ /*
+ if (!outStream)
+ {
+ // p->outBuf = outBuf;
+ // p->outBufSize = *outBufSize;
+ // *outBufSize = 0;
+ return SZ_ERROR_PARAM;
+ }
+ */
+
+ // p->mtc.inBlockMax = p->props.inBlockMax;
+ p->mtc.alloc = &p->alignOffsetAlloc.vt;
+ // p->alignOffsetAlloc.baseAlloc;
+ // p->mtc.inData = inData;
+ // p->mtc.inDataSize = inDataSize;
+ p->mtc.mtCallback = &vt;
+ p->mtc.mtCallbackObject = p;
+
+ p->mtc.inBufSize = p->props.inBufSize_MT;
+
+ p->mtc.numThreadsMax = p->props.numThreads;
+
+ *isMT = True;
+
+ vt.Parse = Lzma2DecMt_MtCallback_Parse;
+ vt.PreCode = Lzma2DecMt_MtCallback_PreCode;
+ vt.Code = Lzma2DecMt_MtCallback_Code;
+ vt.Write = Lzma2DecMt_MtCallback_Write;
+
+ {
+ BoolInt needContinue = False;
+
+ SRes res = MtDec_Code(&p->mtc);
+
+ /*
+ if (!outStream)
+ *outBufSize = p->outBuf - outBuf;
+ */
+
+ *inProcessed = p->mtc.inProcessed;
+
+ needContinue = False;
+
+ if (res == SZ_OK)
+ {
+ if (p->mtc.mtProgress.res != SZ_OK)
+ res = p->mtc.mtProgress.res;
+ else
+ needContinue = p->mtc.needContinue;
+ }
+
+ if (!needContinue)
+ {
+ if (res == SZ_OK)
+ return p->mtc.readRes;
+ return res;
+ }
+
+ tMode = True;
+ p->readRes = p->mtc.readRes;
+ p->readWasFinished = p->mtc.readWasFinished;
+ p->inProcessed = p->mtc.inProcessed;
+
+ PRF_STR("----- decoding ST -----");
+ }
+ }
+
+ #endif
+
+
+ *isMT = False;
+
+ {
+ SRes res = Lzma2Dec_Decode_ST(p
+ #ifndef _7ZIP_ST
+ , tMode
+ #endif
+ );
+
+ *inProcessed = p->inProcessed;
+
+ // res = SZ_OK; // for test
+ if (res == SZ_OK && p->readRes != SZ_OK)
+ res = p->readRes;
+
+ /*
+ #ifndef _7ZIP_ST
+ if (res == SZ_OK && tMode && p->mtc.parseRes != SZ_OK)
+ res = p->mtc.parseRes;
+ #endif
+ */
+
+ return res;
+ }
+}
+
+
+/* ---------- Read from CLzma2DecMtHandle Interface ---------- */
+
+SRes Lzma2DecMt_Init(CLzma2DecMtHandle pp,
+ Byte prop,
+ const CLzma2DecMtProps *props,
+ const UInt64 *outDataSize, int finishMode,
+ ISeqInStream *inStream)
+{
+ CLzma2DecMt *p = (CLzma2DecMt *)pp;
+
+ if (prop > 40)
+ return SZ_ERROR_UNSUPPORTED;
+
+ p->prop = prop;
+ p->props = *props;
+
+ p->inStream = inStream;
+
+ p->outSize = 0;
+ p->outSize_Defined = False;
+ if (outDataSize)
+ {
+ p->outSize_Defined = True;
+ p->outSize = *outDataSize;
+ }
+ p->finishMode = finishMode;
+
+ p->outProcessed = 0;
+ p->inProcessed = 0;
+
+ p->inPos = 0;
+ p->inLim = 0;
+
+ return Lzma2Dec_Prepare_ST(p);
+}
+
+
+SRes Lzma2DecMt_Read(CLzma2DecMtHandle pp,
+ Byte *data, size_t *outSize,
+ UInt64 *inStreamProcessed)
+{
+ CLzma2DecMt *p = (CLzma2DecMt *)pp;
+ ELzmaFinishMode finishMode;
+ SRes readRes;
+ size_t size = *outSize;
+
+ *outSize = 0;
+ *inStreamProcessed = 0;
+
+ finishMode = LZMA_FINISH_ANY;
+ if (p->outSize_Defined)
+ {
+ const UInt64 rem = p->outSize - p->outProcessed;
+ if (size >= rem)
+ {
+ size = (size_t)rem;
+ if (p->finishMode)
+ finishMode = LZMA_FINISH_END;
+ }
+ }
+
+ readRes = SZ_OK;
+
+ for (;;)
+ {
+ SizeT inCur;
+ SizeT outCur;
+ ELzmaStatus status;
+ SRes res;
+
+ if (p->inPos == p->inLim && readRes == SZ_OK)
+ {
+ p->inPos = 0;
+ p->inLim = p->props.inBufSize_ST;
+ readRes = ISeqInStream_Read(p->inStream, p->inBuf, &p->inLim);
+ }
+
+ inCur = p->inLim - p->inPos;
+ outCur = size;
+
+ res = Lzma2Dec_DecodeToBuf(&p->dec, data, &outCur,
+ p->inBuf + p->inPos, &inCur, finishMode, &status);
+
+ p->inPos += inCur;
+ p->inProcessed += inCur;
+ *inStreamProcessed += inCur;
+ p->outProcessed += outCur;
+ *outSize += outCur;
+ size -= outCur;
+ data += outCur;
+
+ if (res != 0)
+ return res;
+
+ /*
+ if (status == LZMA_STATUS_FINISHED_WITH_MARK)
+ return readRes;
+
+ if (size == 0 && status != LZMA_STATUS_NEEDS_MORE_INPUT)
+ {
+ if (p->finishMode && p->outSize_Defined && p->outProcessed >= p->outSize)
+ return SZ_ERROR_DATA;
+ return readRes;
+ }
+ */
+
+ if (inCur == 0 && outCur == 0)
+ return readRes;
+ }
+}
diff --git a/code/nel/3rdparty/seven_zip/Lzma2DecMt.h b/code/nel/3rdparty/seven_zip/Lzma2DecMt.h
new file mode 100644
index 000000000..7791c310b
--- /dev/null
+++ b/code/nel/3rdparty/seven_zip/Lzma2DecMt.h
@@ -0,0 +1,79 @@
+/* Lzma2DecMt.h -- LZMA2 Decoder Multi-thread
+2018-02-17 : Igor Pavlov : Public domain */
+
+#ifndef __LZMA2_DEC_MT_H
+#define __LZMA2_DEC_MT_H
+
+#include "7zTypes.h"
+
+EXTERN_C_BEGIN
+
+typedef struct
+{
+ size_t inBufSize_ST;
+ size_t outStep_ST;
+
+ #ifndef _7ZIP_ST
+ unsigned numThreads;
+ size_t inBufSize_MT;
+ size_t outBlockMax;
+ size_t inBlockMax;
+ #endif
+} CLzma2DecMtProps;
+
+/* init to single-thread mode */
+void Lzma2DecMtProps_Init(CLzma2DecMtProps *p);
+
+
+/* ---------- CLzma2DecMtHandle Interface ---------- */
+
+/* Lzma2DecMt_ * functions can return the following exit codes:
+SRes:
+ SZ_OK - OK
+ SZ_ERROR_MEM - Memory allocation error
+ SZ_ERROR_PARAM - Incorrect paramater in props
+ SZ_ERROR_WRITE - ISeqOutStream write callback error
+ // SZ_ERROR_OUTPUT_EOF - output buffer overflow - version with (Byte *) output
+ SZ_ERROR_PROGRESS - some break from progress callback
+ SZ_ERROR_THREAD - error in multithreading functions (only for Mt version)
+*/
+
+typedef void * CLzma2DecMtHandle;
+
+CLzma2DecMtHandle Lzma2DecMt_Create(ISzAllocPtr alloc, ISzAllocPtr allocMid);
+void Lzma2DecMt_Destroy(CLzma2DecMtHandle p);
+
+SRes Lzma2DecMt_Decode(CLzma2DecMtHandle p,
+ Byte prop,
+ const CLzma2DecMtProps *props,
+ ISeqOutStream *outStream,
+ const UInt64 *outDataSize, // NULL means undefined
+ int finishMode, // 0 - partial unpacking is allowed, 1 - if lzma2 stream must be finished
+ // Byte *outBuf, size_t *outBufSize,
+ ISeqInStream *inStream,
+ // const Byte *inData, size_t inDataSize,
+
+ // out variables:
+ UInt64 *inProcessed,
+ int *isMT, /* out: (*isMT == 0), if single thread decoding was used */
+
+ // UInt64 *outProcessed,
+ ICompressProgress *progress);
+
+
+/* ---------- Read from CLzma2DecMtHandle Interface ---------- */
+
+SRes Lzma2DecMt_Init(CLzma2DecMtHandle pp,
+ Byte prop,
+ const CLzma2DecMtProps *props,
+ const UInt64 *outDataSize, int finishMode,
+ ISeqInStream *inStream);
+
+SRes Lzma2DecMt_Read(CLzma2DecMtHandle pp,
+ Byte *data, size_t *outSize,
+ UInt64 *inStreamProcessed);
+
+
+EXTERN_C_END
+
+#endif
diff --git a/code/ryzom/client/src/seven_zip/Lzma2Enc.cpp b/code/nel/3rdparty/seven_zip/Lzma2Enc.c
similarity index 99%
rename from code/ryzom/client/src/seven_zip/Lzma2Enc.cpp
rename to code/nel/3rdparty/seven_zip/Lzma2Enc.c
index 9af0622b0..5c1ad4931 100644
--- a/code/ryzom/client/src/seven_zip/Lzma2Enc.cpp
+++ b/code/nel/3rdparty/seven_zip/Lzma2Enc.c
@@ -5,7 +5,7 @@
#include
-#define _7ZIP_ST
+/* #define _7ZIP_ST */
#include "Lzma2Enc.h"
diff --git a/code/ryzom/client/src/seven_zip/Lzma2Enc.h b/code/nel/3rdparty/seven_zip/Lzma2Enc.h
similarity index 100%
rename from code/ryzom/client/src/seven_zip/Lzma2Enc.h
rename to code/nel/3rdparty/seven_zip/Lzma2Enc.h
diff --git a/code/ryzom/client/src/seven_zip/Lzma86.h b/code/nel/3rdparty/seven_zip/Lzma86.h
similarity index 100%
rename from code/ryzom/client/src/seven_zip/Lzma86.h
rename to code/nel/3rdparty/seven_zip/Lzma86.h
diff --git a/code/ryzom/client/src/seven_zip/Lzma86Dec.cpp b/code/nel/3rdparty/seven_zip/Lzma86Dec.c
similarity index 100%
rename from code/ryzom/client/src/seven_zip/Lzma86Dec.cpp
rename to code/nel/3rdparty/seven_zip/Lzma86Dec.c
diff --git a/code/ryzom/client/src/seven_zip/Lzma86Enc.cpp b/code/nel/3rdparty/seven_zip/Lzma86Enc.c
similarity index 100%
rename from code/ryzom/client/src/seven_zip/Lzma86Enc.cpp
rename to code/nel/3rdparty/seven_zip/Lzma86Enc.c
diff --git a/code/ryzom/client/src/seven_zip/LzmaDec.cpp b/code/nel/3rdparty/seven_zip/LzmaDec.c
similarity index 100%
rename from code/ryzom/client/src/seven_zip/LzmaDec.cpp
rename to code/nel/3rdparty/seven_zip/LzmaDec.c
diff --git a/code/ryzom/client/src/seven_zip/LzmaDec.h b/code/nel/3rdparty/seven_zip/LzmaDec.h
similarity index 100%
rename from code/ryzom/client/src/seven_zip/LzmaDec.h
rename to code/nel/3rdparty/seven_zip/LzmaDec.h
diff --git a/code/ryzom/client/src/seven_zip/LzmaEnc.cpp b/code/nel/3rdparty/seven_zip/LzmaEnc.c
similarity index 99%
rename from code/ryzom/client/src/seven_zip/LzmaEnc.cpp
rename to code/nel/3rdparty/seven_zip/LzmaEnc.c
index 54d0d0507..46a0db000 100644
--- a/code/ryzom/client/src/seven_zip/LzmaEnc.cpp
+++ b/code/nel/3rdparty/seven_zip/LzmaEnc.c
@@ -5,8 +5,6 @@
#include
-#define _7ZIP_ST
-
/* #define SHOW_STAT */
/* #define SHOW_STAT2 */
diff --git a/code/ryzom/client/src/seven_zip/LzmaEnc.h b/code/nel/3rdparty/seven_zip/LzmaEnc.h
similarity index 100%
rename from code/ryzom/client/src/seven_zip/LzmaEnc.h
rename to code/nel/3rdparty/seven_zip/LzmaEnc.h
diff --git a/code/ryzom/client/src/seven_zip/LzmaLib.cpp b/code/nel/3rdparty/seven_zip/LzmaLib.c
similarity index 100%
rename from code/ryzom/client/src/seven_zip/LzmaLib.cpp
rename to code/nel/3rdparty/seven_zip/LzmaLib.c
diff --git a/code/ryzom/client/src/seven_zip/LzmaLib.h b/code/nel/3rdparty/seven_zip/LzmaLib.h
similarity index 100%
rename from code/ryzom/client/src/seven_zip/LzmaLib.h
rename to code/nel/3rdparty/seven_zip/LzmaLib.h
diff --git a/code/nel/3rdparty/seven_zip/LzmaUtil.c b/code/nel/3rdparty/seven_zip/LzmaUtil.c
new file mode 100644
index 000000000..6bdb2ad6c
--- /dev/null
+++ b/code/nel/3rdparty/seven_zip/LzmaUtil.c
@@ -0,0 +1,258 @@
+/* LzmaUtil.c -- Test application for LZMA compression
+2018-07-04 : Igor Pavlov : Public domain */
+
+#include "Precomp.h"
+
+#include
+#include
+#include
+
+#include "CpuArch.h"
+
+#include "Alloc.h"
+#include "7zFile.h"
+#include "7zVersion.h"
+#include "LzmaDec.h"
+#include "LzmaEnc.h"
+
+static const char * const kCantReadMessage = "Can not read input file";
+static const char * const kCantWriteMessage = "Can not write output file";
+static const char * const kCantAllocateMessage = "Can not allocate memory";
+static const char * const kDataErrorMessage = "Data error";
+
+static void PrintHelp(char *buffer)
+{
+ strcat(buffer,
+ "\nLZMA-C " MY_VERSION_CPU " : " MY_COPYRIGHT_DATE "\n\n"
+ "Usage: lzma inputFile outputFile\n"
+ " e: encode file\n"
+ " d: decode file\n");
+}
+
+static int PrintError(char *buffer, const char *message)
+{
+ strcat(buffer, "\nError: ");
+ strcat(buffer, message);
+ strcat(buffer, "\n");
+ return 1;
+}
+
+static int PrintErrorNumber(char *buffer, SRes val)
+{
+ sprintf(buffer + strlen(buffer), "\nError code: %x\n", (unsigned)val);
+ return 1;
+}
+
+static int PrintUserError(char *buffer)
+{
+ return PrintError(buffer, "Incorrect command");
+}
+
+
+#define IN_BUF_SIZE (1 << 16)
+#define OUT_BUF_SIZE (1 << 16)
+
+
+static SRes Decode2(CLzmaDec *state, ISeqOutStream *outStream, ISeqInStream *inStream,
+ UInt64 unpackSize)
+{
+ int thereIsSize = (unpackSize != (UInt64)(Int64)-1);
+ Byte inBuf[IN_BUF_SIZE];
+ Byte outBuf[OUT_BUF_SIZE];
+ size_t inPos = 0, inSize = 0, outPos = 0;
+ LzmaDec_Init(state);
+ for (;;)
+ {
+ if (inPos == inSize)
+ {
+ inSize = IN_BUF_SIZE;
+ RINOK(inStream->Read(inStream, inBuf, &inSize));
+ inPos = 0;
+ }
+ {
+ SRes res;
+ SizeT inProcessed = inSize - inPos;
+ SizeT outProcessed = OUT_BUF_SIZE - outPos;
+ ELzmaFinishMode finishMode = LZMA_FINISH_ANY;
+ ELzmaStatus status;
+ if (thereIsSize && outProcessed > unpackSize)
+ {
+ outProcessed = (SizeT)unpackSize;
+ finishMode = LZMA_FINISH_END;
+ }
+
+ res = LzmaDec_DecodeToBuf(state, outBuf + outPos, &outProcessed,
+ inBuf + inPos, &inProcessed, finishMode, &status);
+ inPos += inProcessed;
+ outPos += outProcessed;
+ unpackSize -= outProcessed;
+
+ if (outStream)
+ if (outStream->Write(outStream, outBuf, outPos) != outPos)
+ return SZ_ERROR_WRITE;
+
+ outPos = 0;
+
+ if (res != SZ_OK || (thereIsSize && unpackSize == 0))
+ return res;
+
+ if (inProcessed == 0 && outProcessed == 0)
+ {
+ if (thereIsSize || status != LZMA_STATUS_FINISHED_WITH_MARK)
+ return SZ_ERROR_DATA;
+ return res;
+ }
+ }
+ }
+}
+
+
+static SRes Decode(ISeqOutStream *outStream, ISeqInStream *inStream)
+{
+ UInt64 unpackSize;
+ int i;
+ SRes res = 0;
+
+ CLzmaDec state;
+
+ /* header: 5 bytes of LZMA properties and 8 bytes of uncompressed size */
+ unsigned char header[LZMA_PROPS_SIZE + 8];
+
+ /* Read and parse header */
+
+ RINOK(SeqInStream_Read(inStream, header, sizeof(header)));
+
+ unpackSize = 0;
+ for (i = 0; i < 8; i++)
+ unpackSize += (UInt64)header[LZMA_PROPS_SIZE + i] << (i * 8);
+
+ LzmaDec_Construct(&state);
+ RINOK(LzmaDec_Allocate(&state, header, LZMA_PROPS_SIZE, &g_Alloc));
+ res = Decode2(&state, outStream, inStream, unpackSize);
+ LzmaDec_Free(&state, &g_Alloc);
+ return res;
+}
+
+static SRes Encode(ISeqOutStream *outStream, ISeqInStream *inStream, UInt64 fileSize, char *rs)
+{
+ CLzmaEncHandle enc;
+ SRes res;
+ CLzmaEncProps props;
+
+ UNUSED_VAR(rs);
+
+ enc = LzmaEnc_Create(&g_Alloc);
+ if (enc == 0)
+ return SZ_ERROR_MEM;
+
+ LzmaEncProps_Init(&props);
+ res = LzmaEnc_SetProps(enc, &props);
+
+ if (res == SZ_OK)
+ {
+ Byte header[LZMA_PROPS_SIZE + 8];
+ size_t headerSize = LZMA_PROPS_SIZE;
+ int i;
+
+ res = LzmaEnc_WriteProperties(enc, header, &headerSize);
+ for (i = 0; i < 8; i++)
+ header[headerSize++] = (Byte)(fileSize >> (8 * i));
+ if (outStream->Write(outStream, header, headerSize) != headerSize)
+ res = SZ_ERROR_WRITE;
+ else
+ {
+ if (res == SZ_OK)
+ res = LzmaEnc_Encode(enc, outStream, inStream, NULL, &g_Alloc, &g_Alloc);
+ }
+ }
+ LzmaEnc_Destroy(enc, &g_Alloc, &g_Alloc);
+ return res;
+}
+
+
+static int main2(int numArgs, const char *args[], char *rs)
+{
+ CFileSeqInStream inStream;
+ CFileOutStream outStream;
+ char c;
+ int res;
+ int encodeMode;
+ BoolInt useOutFile = False;
+
+ FileSeqInStream_CreateVTable(&inStream);
+ File_Construct(&inStream.file);
+
+ FileOutStream_CreateVTable(&outStream);
+ File_Construct(&outStream.file);
+
+ if (numArgs == 1)
+ {
+ PrintHelp(rs);
+ return 0;
+ }
+
+ if (numArgs < 3 || numArgs > 4 || strlen(args[1]) != 1)
+ return PrintUserError(rs);
+
+ c = args[1][0];
+ encodeMode = (c == 'e' || c == 'E');
+ if (!encodeMode && c != 'd' && c != 'D')
+ return PrintUserError(rs);
+
+ {
+ size_t t4 = sizeof(UInt32);
+ size_t t8 = sizeof(UInt64);
+ if (t4 != 4 || t8 != 8)
+ return PrintError(rs, "Incorrect UInt32 or UInt64");
+ }
+
+ if (InFile_Open(&inStream.file, args[2]) != 0)
+ return PrintError(rs, "Can not open input file");
+
+ if (numArgs > 3)
+ {
+ useOutFile = True;
+ if (OutFile_Open(&outStream.file, args[3]) != 0)
+ return PrintError(rs, "Can not open output file");
+ }
+ else if (encodeMode)
+ PrintUserError(rs);
+
+ if (encodeMode)
+ {
+ UInt64 fileSize;
+ File_GetLength(&inStream.file, &fileSize);
+ res = Encode(&outStream.vt, &inStream.vt, fileSize, rs);
+ }
+ else
+ {
+ res = Decode(&outStream.vt, useOutFile ? &inStream.vt : NULL);
+ }
+
+ if (useOutFile)
+ File_Close(&outStream.file);
+ File_Close(&inStream.file);
+
+ if (res != SZ_OK)
+ {
+ if (res == SZ_ERROR_MEM)
+ return PrintError(rs, kCantAllocateMessage);
+ else if (res == SZ_ERROR_DATA)
+ return PrintError(rs, kDataErrorMessage);
+ else if (res == SZ_ERROR_WRITE)
+ return PrintError(rs, kCantWriteMessage);
+ else if (res == SZ_ERROR_READ)
+ return PrintError(rs, kCantReadMessage);
+ return PrintErrorNumber(rs, res);
+ }
+ return 0;
+}
+
+
+int MY_CDECL main(int numArgs, const char *args[])
+{
+ char rs[800] = { 0 };
+ int res = main2(numArgs, args, rs);
+ fputs(rs, stdout);
+ return res;
+}
diff --git a/code/ryzom/client/src/seven_zip/Ppmd.h b/code/nel/3rdparty/seven_zip/Ppmd.h
similarity index 100%
rename from code/ryzom/client/src/seven_zip/Ppmd.h
rename to code/nel/3rdparty/seven_zip/Ppmd.h
diff --git a/code/ryzom/client/src/seven_zip/Ppmd7.cpp b/code/nel/3rdparty/seven_zip/Ppmd7.c
similarity index 100%
rename from code/ryzom/client/src/seven_zip/Ppmd7.cpp
rename to code/nel/3rdparty/seven_zip/Ppmd7.c
diff --git a/code/ryzom/client/src/seven_zip/Ppmd7.h b/code/nel/3rdparty/seven_zip/Ppmd7.h
similarity index 100%
rename from code/ryzom/client/src/seven_zip/Ppmd7.h
rename to code/nel/3rdparty/seven_zip/Ppmd7.h
diff --git a/code/ryzom/client/src/seven_zip/Ppmd7Dec.cpp b/code/nel/3rdparty/seven_zip/Ppmd7Dec.c
similarity index 100%
rename from code/ryzom/client/src/seven_zip/Ppmd7Dec.cpp
rename to code/nel/3rdparty/seven_zip/Ppmd7Dec.c
diff --git a/code/ryzom/client/src/seven_zip/Ppmd7Enc.cpp b/code/nel/3rdparty/seven_zip/Ppmd7Enc.c
similarity index 100%
rename from code/ryzom/client/src/seven_zip/Ppmd7Enc.cpp
rename to code/nel/3rdparty/seven_zip/Ppmd7Enc.c
diff --git a/code/nel/3rdparty/seven_zip/Precomp.h b/code/nel/3rdparty/seven_zip/Precomp.h
new file mode 100644
index 000000000..e8ff8b40e
--- /dev/null
+++ b/code/nel/3rdparty/seven_zip/Precomp.h
@@ -0,0 +1,10 @@
+/* Precomp.h -- StdAfx
+2013-11-12 : Igor Pavlov : Public domain */
+
+#ifndef __7Z_PRECOMP_H
+#define __7Z_PRECOMP_H
+
+#include "Compiler.h"
+/* #include "7zTypes.h" */
+
+#endif
diff --git a/code/ryzom/client/src/seven_zip/RotateDefs.h b/code/nel/3rdparty/seven_zip/RotateDefs.h
similarity index 100%
rename from code/ryzom/client/src/seven_zip/RotateDefs.h
rename to code/nel/3rdparty/seven_zip/RotateDefs.h
diff --git a/code/ryzom/client/src/seven_zip/Sha256.cpp b/code/nel/3rdparty/seven_zip/Sha256.c
similarity index 100%
rename from code/ryzom/client/src/seven_zip/Sha256.cpp
rename to code/nel/3rdparty/seven_zip/Sha256.c
diff --git a/code/ryzom/client/src/seven_zip/Sha256.h b/code/nel/3rdparty/seven_zip/Sha256.h
similarity index 100%
rename from code/ryzom/client/src/seven_zip/Sha256.h
rename to code/nel/3rdparty/seven_zip/Sha256.h
diff --git a/code/ryzom/client/src/seven_zip/Sort.cpp b/code/nel/3rdparty/seven_zip/Sort.c
similarity index 100%
rename from code/ryzom/client/src/seven_zip/Sort.cpp
rename to code/nel/3rdparty/seven_zip/Sort.c
diff --git a/code/ryzom/client/src/seven_zip/Sort.h b/code/nel/3rdparty/seven_zip/Sort.h
similarity index 100%
rename from code/ryzom/client/src/seven_zip/Sort.h
rename to code/nel/3rdparty/seven_zip/Sort.h
diff --git a/code/ryzom/client/src/seven_zip/Xz.cpp b/code/nel/3rdparty/seven_zip/Xz.c
similarity index 100%
rename from code/ryzom/client/src/seven_zip/Xz.cpp
rename to code/nel/3rdparty/seven_zip/Xz.c
diff --git a/code/ryzom/client/src/seven_zip/Xz.h b/code/nel/3rdparty/seven_zip/Xz.h
similarity index 100%
rename from code/ryzom/client/src/seven_zip/Xz.h
rename to code/nel/3rdparty/seven_zip/Xz.h
diff --git a/code/ryzom/client/src/seven_zip/XzCrc64.cpp b/code/nel/3rdparty/seven_zip/XzCrc64.c
similarity index 100%
rename from code/ryzom/client/src/seven_zip/XzCrc64.cpp
rename to code/nel/3rdparty/seven_zip/XzCrc64.c
diff --git a/code/ryzom/client/src/seven_zip/XzCrc64.h b/code/nel/3rdparty/seven_zip/XzCrc64.h
similarity index 100%
rename from code/ryzom/client/src/seven_zip/XzCrc64.h
rename to code/nel/3rdparty/seven_zip/XzCrc64.h
diff --git a/code/ryzom/client/src/seven_zip/XzCrc64Opt.cpp b/code/nel/3rdparty/seven_zip/XzCrc64Opt.c
similarity index 100%
rename from code/ryzom/client/src/seven_zip/XzCrc64Opt.cpp
rename to code/nel/3rdparty/seven_zip/XzCrc64Opt.c
diff --git a/code/ryzom/client/src/seven_zip/XzDec.cpp b/code/nel/3rdparty/seven_zip/XzDec.c
similarity index 100%
rename from code/ryzom/client/src/seven_zip/XzDec.cpp
rename to code/nel/3rdparty/seven_zip/XzDec.c
diff --git a/code/ryzom/client/src/seven_zip/XzEnc.cpp b/code/nel/3rdparty/seven_zip/XzEnc.c
similarity index 100%
rename from code/ryzom/client/src/seven_zip/XzEnc.cpp
rename to code/nel/3rdparty/seven_zip/XzEnc.c
diff --git a/code/ryzom/client/src/seven_zip/XzEnc.h b/code/nel/3rdparty/seven_zip/XzEnc.h
similarity index 100%
rename from code/ryzom/client/src/seven_zip/XzEnc.h
rename to code/nel/3rdparty/seven_zip/XzEnc.h
diff --git a/code/ryzom/client/src/seven_zip/XzIn.cpp b/code/nel/3rdparty/seven_zip/XzIn.c
similarity index 100%
rename from code/ryzom/client/src/seven_zip/XzIn.cpp
rename to code/nel/3rdparty/seven_zip/XzIn.c
diff --git a/code/nel/CMakeLists.txt b/code/nel/CMakeLists.txt
index 3470fcebb..1530e75e3 100644
--- a/code/nel/CMakeLists.txt
+++ b/code/nel/CMakeLists.txt
@@ -56,6 +56,7 @@ IF(WITH_INSTALL_LIBRARIES)
ADD_SUBDIRECTORY(include)
ENDIF()
+ADD_SUBDIRECTORY(3rdparty)
ADD_SUBDIRECTORY(src)
IF(WITH_NEL_SAMPLES)
diff --git a/code/nel/include/nel/3d/bloom_effect.h b/code/nel/include/nel/3d/bloom_effect.h
index 49c959e23..1f49645a4 100644
--- a/code/nel/include/nel/3d/bloom_effect.h
+++ b/code/nel/include/nel/3d/bloom_effect.h
@@ -1,6 +1,9 @@
// NeL - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013-2014 Jan BOON (Kaetemi)
+//
// 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
diff --git a/code/nel/include/nel/3d/computed_string.h b/code/nel/include/nel/3d/computed_string.h
index 25d12a3ac..3f27a2879 100644
--- a/code/nel/include/nel/3d/computed_string.h
+++ b/code/nel/include/nel/3d/computed_string.h
@@ -1,6 +1,9 @@
// NeL - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2014 Jan BOON (Kaetemi)
+//
// 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
diff --git a/code/nel/include/nel/3d/driver.h b/code/nel/include/nel/3d/driver.h
index 85140b3da..75472df37 100644
--- a/code/nel/include/nel/3d/driver.h
+++ b/code/nel/include/nel/3d/driver.h
@@ -1,6 +1,9 @@
// NeL - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013-2014 Jan BOON (Kaetemi)
+//
// 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
diff --git a/code/nel/include/nel/3d/driver_user.h b/code/nel/include/nel/3d/driver_user.h
index 62c6fd6db..c3564975f 100644
--- a/code/nel/include/nel/3d/driver_user.h
+++ b/code/nel/include/nel/3d/driver_user.h
@@ -1,6 +1,11 @@
// NeL - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2010 Matt RAYKOWSKI (sfb)
+// Copyright (C) 2010 Robert TIMM (rti)
+// Copyright (C) 2013-2014 Jan BOON (Kaetemi)
+//
// 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
diff --git a/code/nel/include/nel/3d/dru.h b/code/nel/include/nel/3d/dru.h
index c23d41382..49386487b 100644
--- a/code/nel/include/nel/3d/dru.h
+++ b/code/nel/include/nel/3d/dru.h
@@ -1,6 +1,9 @@
// NeL - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2014 Jan BOON (Kaetemi)
+//
// 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
diff --git a/code/nel/include/nel/3d/fxaa.h b/code/nel/include/nel/3d/fxaa.h
index f7ccf4866..9f97b81ad 100644
--- a/code/nel/include/nel/3d/fxaa.h
+++ b/code/nel/include/nel/3d/fxaa.h
@@ -6,24 +6,21 @@
* CFXAA
*/
-/*
- * Copyright (C) 2014 by authors
- *
- * This file is part of NL3D.
- * NL3D is free software: you can redistribute it and/or modify it
- * under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * NL3D is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General
- * Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public
- * License along with NL3D. If not, see
- * .
- */
+// NeL - MMORPG Framework
+// Copyright (C) 2014 Jan BOON (Kaetemi)
+//
+// 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 .
#ifndef NL3D_FXAA_H
#define NL3D_FXAA_H
diff --git a/code/nel/include/nel/3d/geometry_program.h b/code/nel/include/nel/3d/geometry_program.h
index 48e48e260..f8de082d6 100644
--- a/code/nel/include/nel/3d/geometry_program.h
+++ b/code/nel/include/nel/3d/geometry_program.h
@@ -2,24 +2,24 @@
* Geometry program definition
*/
-/* Copyright, 2000, 2001 Nevrax Ltd.
- *
- * This file is part of NEVRAX NEL.
- * NEVRAX NEL is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
-
- * NEVRAX NEL is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
-
- * You should have received a copy of the GNU General Public License
- * along with NEVRAX NEL; see the file COPYING. If not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- * MA 02111-1307, USA.
- */
+// NeL - MMORPG Framework
+// Copyright (C) 2000-2001 Nevrax Ltd.
+//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Jan BOON (Kaetemi)
+//
+// 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 .
#ifndef NL_GEOMETRY_PROGRAM_H
#define NL_GEOMETRY_PROGRAM_H
diff --git a/code/nel/include/nel/3d/gpu_program_params.h b/code/nel/include/nel/3d/gpu_program_params.h
index 4615c58d9..337e611ea 100644
--- a/code/nel/include/nel/3d/gpu_program_params.h
+++ b/code/nel/include/nel/3d/gpu_program_params.h
@@ -6,24 +6,21 @@
* CGPUProgramParams
*/
-/*
- * Copyright (C) 2013 by authors
- *
- * This file is part of NL3D.
- * NL3D is free software: you can redistribute it and/or modify it
- * under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * NL3D is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General
- * Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public
- * License along with NL3D. If not, see
- * .
- */
+// NeL - MMORPG Framework
+// Copyright (C) 2013 Jan BOON (Kaetemi)
+//
+// 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 .
#ifndef NL3D_GPU_PROGRAM_PARAMS_H
#define NL3D_GPU_PROGRAM_PARAMS_H
diff --git a/code/nel/include/nel/3d/landscape.h b/code/nel/include/nel/3d/landscape.h
index a7383963d..f6e1a5861 100644
--- a/code/nel/include/nel/3d/landscape.h
+++ b/code/nel/include/nel/3d/landscape.h
@@ -100,8 +100,8 @@ public:
public:
EBadBind() {}
- ~EBadBind() throw () {}
- virtual const char *what() const throw();
+ virtual ~EBadBind() NL_OVERRIDE {}
+ virtual const char *what() const throw() NL_OVERRIDE;
};
diff --git a/code/nel/include/nel/3d/landscapevb_allocator.h b/code/nel/include/nel/3d/landscapevb_allocator.h
index 0e485e990..fbf6f1eb4 100644
--- a/code/nel/include/nel/3d/landscapevb_allocator.h
+++ b/code/nel/include/nel/3d/landscapevb_allocator.h
@@ -1,6 +1,9 @@
// NeL - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Jan BOON (Kaetemi)
+//
// 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
diff --git a/code/nel/include/nel/3d/material.h b/code/nel/include/nel/3d/material.h
index 7a300da45..9c8865124 100644
--- a/code/nel/include/nel/3d/material.h
+++ b/code/nel/include/nel/3d/material.h
@@ -1,6 +1,9 @@
// NeL - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Jan BOON (Kaetemi)
+//
// 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
diff --git a/code/nel/include/nel/3d/meshvp_per_pixel_light.h b/code/nel/include/nel/3d/meshvp_per_pixel_light.h
index 4533464a9..9aef9fb0a 100644
--- a/code/nel/include/nel/3d/meshvp_per_pixel_light.h
+++ b/code/nel/include/nel/3d/meshvp_per_pixel_light.h
@@ -1,6 +1,9 @@
// NeL - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Jan BOON (Kaetemi)
+//
// 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
diff --git a/code/nel/include/nel/3d/meshvp_wind_tree.h b/code/nel/include/nel/3d/meshvp_wind_tree.h
index 790a2f774..e3e8e8bc2 100644
--- a/code/nel/include/nel/3d/meshvp_wind_tree.h
+++ b/code/nel/include/nel/3d/meshvp_wind_tree.h
@@ -1,6 +1,9 @@
// NeL - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Jan BOON (Kaetemi)
+//
// 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
diff --git a/code/nel/include/nel/3d/pixel_program.h b/code/nel/include/nel/3d/pixel_program.h
index 0787ae9fb..31818f1cd 100644
--- a/code/nel/include/nel/3d/pixel_program.h
+++ b/code/nel/include/nel/3d/pixel_program.h
@@ -2,24 +2,24 @@
* Pixel program definition
*/
-/* Copyright, 2000, 2001 Nevrax Ltd.
- *
- * This file is part of NEVRAX NEL.
- * NEVRAX NEL is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
-
- * NEVRAX NEL is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
-
- * You should have received a copy of the GNU General Public License
- * along with NEVRAX NEL; see the file COPYING. If not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- * MA 02111-1307, USA.
- */
+// NeL - MMORPG Framework
+// Copyright (C) 2000-2001 Nevrax Ltd.
+//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Jan BOON (Kaetemi)
+//
+// 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 .
#ifndef NL_PIXEL_PROGRAM_H
#define NL_PIXEL_PROGRAM_H
diff --git a/code/nel/include/nel/3d/program.h b/code/nel/include/nel/3d/program.h
index 77e6baa62..c84a97058 100644
--- a/code/nel/include/nel/3d/program.h
+++ b/code/nel/include/nel/3d/program.h
@@ -6,24 +6,21 @@
* IProgram
*/
-/*
- * Copyright (C) 2013 by authors
- *
- * This file is part of NL3D.
- * NL3D is free software: you can redistribute it and/or modify it
- * under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * NL3D is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General
- * Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public
- * License along with NL3D. If not, see
- * .
- */
+// NeL - MMORPG Framework
+// Copyright (C) 2013 Jan BOON (Kaetemi)
+//
+// 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 .
#ifndef NL3D_PROGRAM_H
#define NL3D_PROGRAM_H
diff --git a/code/nel/include/nel/3d/ps_sound.h b/code/nel/include/nel/3d/ps_sound.h
index d1c990770..c716dd2a3 100644
--- a/code/nel/include/nel/3d/ps_sound.h
+++ b/code/nel/include/nel/3d/ps_sound.h
@@ -1,6 +1,9 @@
// NeL - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2019 Jan BOON (Kaetemi)
+//
// 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
@@ -21,7 +24,6 @@
#include "nel/misc/string_mapper.h"
#include "nel/3d/ps_located.h"
#include "nel/3d/ps_attrib.h"
-#include "nel/misc/sheet_id.h"
@@ -64,13 +66,13 @@ public:
virtual void step(TPSProcessPass pass);
/// set the name of the sound
- void setSoundName(const NLMISC::CSheetId &soundName)
+ void setSoundName(const NLMISC::TStringId &soundName)
{
_SoundName = soundName;
}
/// get the name of the sound
- const NLMISC::CSheetId &getSoundName(void) const
+ const NLMISC::TStringId &getSoundName(void) const
{
return _SoundName;
}
@@ -162,7 +164,7 @@ protected:
void removeAllSources();
CPSAttrib _Sounds;
- NLMISC::CSheetId _SoundName;
+ NLMISC::TStringId _SoundName;
float _Gain;
CPSAttribMaker * _GainScheme;
float _Pitch;
diff --git a/code/nel/include/nel/3d/render_target_manager.h b/code/nel/include/nel/3d/render_target_manager.h
index cae8e31b0..ac69b4228 100644
--- a/code/nel/include/nel/3d/render_target_manager.h
+++ b/code/nel/include/nel/3d/render_target_manager.h
@@ -6,24 +6,22 @@
* CRenderTargetManager
*/
-/*
- * Copyright (C) 2013 by authors
- *
- * This file is part of NL3D.
- * NL3D is free software: you can redistribute it and/or modify it
- * under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * NL3D is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General
- * Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public
- * License along with NL3D. If not, see
- * .
- */
+
+// NeL - MMORPG Framework
+// Copyright (C) 2014 Jan BOON (Kaetemi)
+//
+// 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 .
#ifndef NL3D_RENDER_TARGET_MANAGER_H
#define NL3D_RENDER_TARGET_MANAGER_H
diff --git a/code/nel/include/nel/3d/render_trav.h b/code/nel/include/nel/3d/render_trav.h
index 41570c2ca..8ea14fabf 100644
--- a/code/nel/include/nel/3d/render_trav.h
+++ b/code/nel/include/nel/3d/render_trav.h
@@ -1,6 +1,9 @@
// NeL - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013-2014 Jan BOON (Kaetemi)
+//
// 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
diff --git a/code/nel/include/nel/3d/scene.h b/code/nel/include/nel/3d/scene.h
index 12c18b484..39d9707b7 100644
--- a/code/nel/include/nel/3d/scene.h
+++ b/code/nel/include/nel/3d/scene.h
@@ -1,6 +1,9 @@
// NeL - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013-2014 Jan BOON (Kaetemi)
+//
// 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
diff --git a/code/nel/include/nel/3d/scene_user.h b/code/nel/include/nel/3d/scene_user.h
index 639fa33d8..4abadb32e 100644
--- a/code/nel/include/nel/3d/scene_user.h
+++ b/code/nel/include/nel/3d/scene_user.h
@@ -1,6 +1,9 @@
// NeL - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2014 Jan BOON (Kaetemi)
+//
// 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
diff --git a/code/nel/include/nel/3d/skeleton_model.h b/code/nel/include/nel/3d/skeleton_model.h
index dccafd1f1..85644e646 100644
--- a/code/nel/include/nel/3d/skeleton_model.h
+++ b/code/nel/include/nel/3d/skeleton_model.h
@@ -1,6 +1,9 @@
// NeL - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2014 Jan BOON (Kaetemi)
+//
// 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
diff --git a/code/nel/include/nel/3d/stereo_debugger.h b/code/nel/include/nel/3d/stereo_debugger.h
index 6c974f93d..2ce751cb3 100644
--- a/code/nel/include/nel/3d/stereo_debugger.h
+++ b/code/nel/include/nel/3d/stereo_debugger.h
@@ -6,24 +6,22 @@
* CStereoDebugger
*/
-/*
- * Copyright (C) 2013 by authors
- *
- * This file is part of NL3D.
- * NL3D is free software: you can redistribute it and/or modify it
- * under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * NL3D is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General
- * Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public
- * License along with NL3D. If not, see
- * .
- */
+
+// NeL - MMORPG Framework
+// Copyright (C) 2013-2014 Jan BOON (Kaetemi)
+//
+// 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 .
#if !FINAL_VERSION
#ifndef NL3D_STEREO_DEBUGGER_H
diff --git a/code/nel/include/nel/3d/stereo_display.h b/code/nel/include/nel/3d/stereo_display.h
index 3b6fdbb21..3ad941ee7 100644
--- a/code/nel/include/nel/3d/stereo_display.h
+++ b/code/nel/include/nel/3d/stereo_display.h
@@ -6,24 +6,21 @@
* IStereoDisplay
*/
-/*
- * Copyright (C) 2013 by authors
- *
- * This file is part of NL3D.
- * NL3D is free software: you can redistribute it and/or modify it
- * under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * NL3D is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General
- * Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public
- * License along with NL3D. If not, see
- * .
- */
+// NeL - MMORPG Framework
+// Copyright (C) 2013-2014 Jan BOON (Kaetemi)
+//
+// 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 .
#ifndef NL3D_STEREO_DISPLAY_H
#define NL3D_STEREO_DISPLAY_H
diff --git a/code/nel/include/nel/3d/stereo_libvr.h b/code/nel/include/nel/3d/stereo_libvr.h
index 76d1966fe..60fce94d9 100644
--- a/code/nel/include/nel/3d/stereo_libvr.h
+++ b/code/nel/include/nel/3d/stereo_libvr.h
@@ -6,24 +6,21 @@
* CStereoLibVR
*/
-/*
- * Copyright (C) 2013 by authors
- *
- * This file is part of NL3D.
- * NL3D is free software: you can redistribute it and/or modify it
- * under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * NL3D is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General
- * Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public
- * License along with NL3D. If not, see
- * .
- */
+// NeL - MMORPG Framework
+// Copyright (C) 2013 Thibaut GIRKA (ThibG)
+//
+// 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 .
#ifndef NL3D_STEREO_LIBVR_H
#define NL3D_STEREO_LIBVR_H
diff --git a/code/nel/include/nel/3d/stereo_ovr.h b/code/nel/include/nel/3d/stereo_ovr.h
index 750f32027..a9fc1a331 100644
--- a/code/nel/include/nel/3d/stereo_ovr.h
+++ b/code/nel/include/nel/3d/stereo_ovr.h
@@ -6,40 +6,37 @@
* CStereoOVR
*/
-/*
- * Copyright (C) 2013 by authors
- *
- * This file is part of NL3D.
- * NL3D is free software: you can redistribute it and/or modify it
- * under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * NL3D is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General
- * Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public
- * License along with NL3D. If not, see
- * .
- *
- * Linking this library statically or dynamically with other modules
- * is making a combined work based on this library. Thus, the terms
- * and conditions of the GNU General Public License cover the whole
- * combination.
- *
- * As a special exception, the copyright holders of this library give
- * you permission to link this library with the Oculus SDK to produce
- * an executable, regardless of the license terms of the Oculus SDK,
- * and distribute linked combinations including the two, provided that
- * you also meet the terms and conditions of the license of the Oculus
- * SDK. You must obey the GNU General Public License in all respects
- * for all of the code used other than the Oculus SDK. If you modify
- * this file, you may extend this exception to your version of the
- * file, but you are not obligated to do so. If you do not wish to do
- * so, delete this exception statement from your version.
- */
+// NeL - MMORPG Framework
+// Copyright (C) 2013-2014 Jan BOON (Kaetemi)
+//
+// 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 .
+//
+// Linking this library statically or dynamically with other modules
+// is making a combined work based on this library. Thus, the terms
+// and conditions of the GNU General Public License cover the whole
+// combination.
+//
+// As a special exception, the copyright holders of this library give
+// you permission to link this library with the Oculus SDK to produce
+// an executable, regardless of the license terms of the Oculus SDK,
+// and distribute linked combinations including the two, provided that
+// you also meet the terms and conditions of the license of the Oculus
+// SDK. You must obey the GNU General Public License in all respects
+// for all of the code used other than the Oculus SDK. If you modify
+// this file, you may extend this exception to your version of the
+// file, but you are not obligated to do so. If you do not wish to do
+// so, delete this exception statement from your version.
#ifndef NL3D_STEREO_OVR_H
#define NL3D_STEREO_OVR_H
diff --git a/code/nel/include/nel/3d/stereo_ovr_04.h b/code/nel/include/nel/3d/stereo_ovr_04.h
index 8bda88c88..1cf1b61c7 100644
--- a/code/nel/include/nel/3d/stereo_ovr_04.h
+++ b/code/nel/include/nel/3d/stereo_ovr_04.h
@@ -6,40 +6,37 @@
* CStereoOVR
*/
-/*
- * Copyright (C) 2014 by authors
- *
- * This file is part of NL3D.
- * NL3D is free software: you can redistribute it and/or modify it
- * under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * NL3D is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General
- * Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public
- * License along with NL3D. If not, see
- * .
- *
- * Linking this library statically or dynamically with other modules
- * is making a combined work based on this library. Thus, the terms
- * and conditions of the GNU General Public License cover the whole
- * combination.
- *
- * As a special exception, the copyright holders of this library give
- * you permission to link this library with the Oculus SDK to produce
- * an executable, regardless of the license terms of the Oculus SDK,
- * and distribute linked combinations including the two, provided that
- * you also meet the terms and conditions of the license of the Oculus
- * SDK. You must obey the GNU General Public License in all respects
- * for all of the code used other than the Oculus SDK. If you modify
- * this file, you may extend this exception to your version of the
- * file, but you are not obligated to do so. If you do not wish to do
- * so, delete this exception statement from your version.
- */
+// NeL - MMORPG Framework
+// Copyright (C) 2013-2014 Jan BOON (Kaetemi)
+//
+// 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 .
+//
+// Linking this library statically or dynamically with other modules
+// is making a combined work based on this library. Thus, the terms
+// and conditions of the GNU General Public License cover the whole
+// combination.
+//
+// As a special exception, the copyright holders of this library give
+// you permission to link this library with the Oculus SDK to produce
+// an executable, regardless of the license terms of the Oculus SDK,
+// and distribute linked combinations including the two, provided that
+// you also meet the terms and conditions of the license of the Oculus
+// SDK. You must obey the GNU General Public License in all respects
+// for all of the code used other than the Oculus SDK. If you modify
+// this file, you may extend this exception to your version of the
+// file, but you are not obligated to do so. If you do not wish to do
+// so, delete this exception statement from your version.
#ifndef NL3D_STEREO_OVR_04_H
#define NL3D_STEREO_OVR_04_H
diff --git a/code/nel/include/nel/3d/text_context.h b/code/nel/include/nel/3d/text_context.h
index 1f75e1184..1eb256855 100644
--- a/code/nel/include/nel/3d/text_context.h
+++ b/code/nel/include/nel/3d/text_context.h
@@ -1,6 +1,9 @@
// NeL - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2014 Jan BOON (Kaetemi)
+//
// 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
diff --git a/code/nel/include/nel/3d/text_context_user.h b/code/nel/include/nel/3d/text_context_user.h
index 15e93c3f2..2a167b2e9 100644
--- a/code/nel/include/nel/3d/text_context_user.h
+++ b/code/nel/include/nel/3d/text_context_user.h
@@ -1,6 +1,9 @@
// NeL - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2014 Jan BOON (Kaetemi)
+//
// 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
diff --git a/code/nel/include/nel/3d/texture.h b/code/nel/include/nel/3d/texture.h
index bd71a00fd..f74af29d9 100644
--- a/code/nel/include/nel/3d/texture.h
+++ b/code/nel/include/nel/3d/texture.h
@@ -106,7 +106,8 @@ public:
class ITexture : public CBitmap, public NLMISC::CRefCount, public NLMISC::IStreamable
{
public:
-// NL_USES_DEFAULT_ARENA_OBJECT_ALLOCATOR // for fast alloc
+ // TODO: FIX: NL_USES_DEFAULT_ARENA_OBJECT_ALLOCATOR // for fast alloc
+
// Those enums MUST be the same than in UTexture!!
enum TWrapMode
{
diff --git a/code/nel/include/nel/3d/tile_bank.h b/code/nel/include/nel/3d/tile_bank.h
index 7d4eda3a7..c320b50c7 100644
--- a/code/nel/include/nel/3d/tile_bank.h
+++ b/code/nel/include/nel/3d/tile_bank.h
@@ -1,6 +1,9 @@
// NeL - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2014 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/3d/u_driver.h b/code/nel/include/nel/3d/u_driver.h
index 0500192ad..f4f78e2cb 100644
--- a/code/nel/include/nel/3d/u_driver.h
+++ b/code/nel/include/nel/3d/u_driver.h
@@ -1,6 +1,11 @@
// NeL - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2010 Matt RAYKOWSKI (sfb)
+// Copyright (C) 2010 Robert TIMM (rti)
+// Copyright (C) 2013-2014 Jan BOON (Kaetemi)
+//
// 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
diff --git a/code/nel/include/nel/3d/u_ps_sound_impl.h b/code/nel/include/nel/3d/u_ps_sound_impl.h
index bf45b6387..8a6869d0b 100644
--- a/code/nel/include/nel/3d/u_ps_sound_impl.h
+++ b/code/nel/include/nel/3d/u_ps_sound_impl.h
@@ -1,6 +1,9 @@
// NeL - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2019 Jan BOON (Kaetemi)
+//
// 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
@@ -162,7 +165,7 @@ public:
/// inherited from IPSSoundServer
- UPSSoundInstance *createSound(const NLMISC::CSheetId &soundName, bool spawned = true)
+ UPSSoundInstance *createSound(const NLMISC::TStringId &soundName, bool spawned = true)
{
if (!_AudioMixer)
return NULL;
diff --git a/code/nel/include/nel/3d/u_ps_sound_interface.h b/code/nel/include/nel/3d/u_ps_sound_interface.h
index 82002470b..7faea5fc5 100644
--- a/code/nel/include/nel/3d/u_ps_sound_interface.h
+++ b/code/nel/include/nel/3d/u_ps_sound_interface.h
@@ -1,6 +1,9 @@
// NeL - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2019 Jan BOON (Kaetemi)
+//
// 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
@@ -19,7 +22,6 @@
#include "nel/misc/types_nl.h"
#include "nel/misc/string_mapper.h"
-#include "nel/misc/sheet_id.h"
#include
namespace NLMISC
@@ -51,7 +53,7 @@ struct UPSSoundServer
* \param spawn true if the sound must be spawned e.g it continues after this interface is removed
* \param cb useful only for spawned sound, it tells when a spawned sound has been removed
*/
- virtual UPSSoundInstance *createSound(const NLMISC::CSheetId &soundName, bool spawn = false) = 0;
+ virtual UPSSoundInstance *createSound(const NLMISC::TStringId &soundName, bool spawn = false) = 0;
};
diff --git a/code/nel/include/nel/3d/u_scene.h b/code/nel/include/nel/3d/u_scene.h
index c0733c5d2..4bb831bb2 100644
--- a/code/nel/include/nel/3d/u_scene.h
+++ b/code/nel/include/nel/3d/u_scene.h
@@ -1,6 +1,9 @@
// NeL - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2014 Jan BOON (Kaetemi)
+//
// 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
diff --git a/code/nel/include/nel/3d/u_text_context.h b/code/nel/include/nel/3d/u_text_context.h
index 4c1dfea47..cdde02f82 100644
--- a/code/nel/include/nel/3d/u_text_context.h
+++ b/code/nel/include/nel/3d/u_text_context.h
@@ -1,6 +1,9 @@
// NeL - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2014 Jan BOON (Kaetemi)
+//
// 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
diff --git a/code/nel/include/nel/3d/vegetable_manager.h b/code/nel/include/nel/3d/vegetable_manager.h
index ee21af3f3..e1a2001a0 100644
--- a/code/nel/include/nel/3d/vegetable_manager.h
+++ b/code/nel/include/nel/3d/vegetable_manager.h
@@ -1,6 +1,9 @@
// NeL - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Jan BOON (Kaetemi)
+//
// 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
diff --git a/code/nel/include/nel/3d/vertex_program.h b/code/nel/include/nel/3d/vertex_program.h
index 3d77c6104..f493ccb2b 100644
--- a/code/nel/include/nel/3d/vertex_program.h
+++ b/code/nel/include/nel/3d/vertex_program.h
@@ -1,6 +1,9 @@
// NeL - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Jan BOON (Kaetemi)
+//
// 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
diff --git a/code/nel/include/nel/3d/vertex_program_parse.h b/code/nel/include/nel/3d/vertex_program_parse.h
index 88538da07..2ecb9f86b 100644
--- a/code/nel/include/nel/3d/vertex_program_parse.h
+++ b/code/nel/include/nel/3d/vertex_program_parse.h
@@ -1,6 +1,9 @@
// NeL - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Jan BOON (Kaetemi)
+//
// 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
diff --git a/code/nel/include/nel/3d/water_env_map.h b/code/nel/include/nel/3d/water_env_map.h
index 2282610d7..0d02f98ca 100644
--- a/code/nel/include/nel/3d/water_env_map.h
+++ b/code/nel/include/nel/3d/water_env_map.h
@@ -1,6 +1,9 @@
// NeL - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Jan BOON (Kaetemi)
+//
// 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
diff --git a/code/nel/include/nel/3d/water_shape.h b/code/nel/include/nel/3d/water_shape.h
index 633da8611..192423720 100644
--- a/code/nel/include/nel/3d/water_shape.h
+++ b/code/nel/include/nel/3d/water_shape.h
@@ -1,6 +1,9 @@
// NeL - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Jan BOON (Kaetemi)
+//
// 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
diff --git a/code/nel/include/nel/3d/zone_lighter.h b/code/nel/include/nel/3d/zone_lighter.h
index 4f2910c52..92708a38b 100644
--- a/code/nel/include/nel/3d/zone_lighter.h
+++ b/code/nel/include/nel/3d/zone_lighter.h
@@ -1,6 +1,9 @@
// NeL - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2014 Jan BOON (Kaetemi)
+//
// 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
diff --git a/code/nel/include/nel/CMakeLists.txt b/code/nel/include/nel/CMakeLists.txt
index 4df9413b5..fda0ddbe9 100644
--- a/code/nel/include/nel/CMakeLists.txt
+++ b/code/nel/include/nel/CMakeLists.txt
@@ -4,6 +4,10 @@ IF(WITH_3D)
SUBDIRS(3d)
ENDIF()
+IF(WITH_WEB OR WITH_GUI)
+ ADD_SUBDIRECTORY(web)
+ENDIF()
+
IF(WITH_GUI)
ADD_SUBDIRECTORY(gui)
ENDIF()
diff --git a/code/nel/include/nel/georges/form.h b/code/nel/include/nel/georges/form.h
index da5c0ea88..9b21c4c49 100644
--- a/code/nel/include/nel/georges/form.h
+++ b/code/nel/include/nel/georges/form.h
@@ -1,6 +1,9 @@
// NeL - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2014 Jan BOON (Kaetemi)
+//
// 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
diff --git a/code/nel/include/nel/georges/form_dfn.h b/code/nel/include/nel/georges/form_dfn.h
index 4e9870043..c6ab83a07 100644
--- a/code/nel/include/nel/georges/form_dfn.h
+++ b/code/nel/include/nel/georges/form_dfn.h
@@ -1,6 +1,9 @@
// NeL - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2014 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/georges/form_elm.h b/code/nel/include/nel/georges/form_elm.h
index 738e6a55a..bf9b3ef62 100644
--- a/code/nel/include/nel/georges/form_elm.h
+++ b/code/nel/include/nel/georges/form_elm.h
@@ -1,6 +1,9 @@
// NeL - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2014 Jan BOON (Kaetemi)
+//
// 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
diff --git a/code/nel/include/nel/georges/form_loader.h b/code/nel/include/nel/georges/form_loader.h
index c46d79f22..2dc998b11 100644
--- a/code/nel/include/nel/georges/form_loader.h
+++ b/code/nel/include/nel/georges/form_loader.h
@@ -1,6 +1,9 @@
// NeL - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2014 Jan BOON (Kaetemi)
+//
// 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
diff --git a/code/nel/include/nel/georges/header.h b/code/nel/include/nel/georges/header.h
index 82a094b3d..61351dfe9 100644
--- a/code/nel/include/nel/georges/header.h
+++ b/code/nel/include/nel/georges/header.h
@@ -1,6 +1,9 @@
// NeL - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2014 Jan BOON (Kaetemi)
+//
// 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
diff --git a/code/nel/include/nel/georges/type.h b/code/nel/include/nel/georges/type.h
index e1bad7934..5d9c6706e 100644
--- a/code/nel/include/nel/georges/type.h
+++ b/code/nel/include/nel/georges/type.h
@@ -1,6 +1,9 @@
// NeL - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2014 Jan BOON (Kaetemi)
+//
// 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
diff --git a/code/nel/include/nel/georges/u_form.h b/code/nel/include/nel/georges/u_form.h
index d53e415f7..4f77a8b80 100644
--- a/code/nel/include/nel/georges/u_form.h
+++ b/code/nel/include/nel/georges/u_form.h
@@ -1,6 +1,9 @@
// NeL - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2014 Jan BOON (Kaetemi)
+//
// 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
diff --git a/code/nel/include/nel/gui/action_handler.h b/code/nel/include/nel/gui/action_handler.h
index f0f4c46f8..7288c9529 100644
--- a/code/nel/include/nel/gui/action_handler.h
+++ b/code/nel/include/nel/gui/action_handler.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013-2014 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/gui/css_style.h b/code/nel/include/nel/gui/css_style.h
index d972940e1..5521818a4 100644
--- a/code/nel/include/nel/gui/css_style.h
+++ b/code/nel/include/nel/gui/css_style.h
@@ -66,8 +66,8 @@ namespace NLGUI
MaxWidth=-1;
MaxHeight=-1;
// border style
- BorderTopWidth = BorderRightWidth = BorderBottomWidth = BorderLeftWidth = CSSLineWidth::MEDIUM;
- BorderTopStyle = BorderRightStyle = BorderBottomStyle = BorderLeftStyle = CSSLineStyle::NONE;
+ BorderTopWidth = BorderRightWidth = BorderBottomWidth = BorderLeftWidth = CSS_LINE_WIDTH_MEDIUM;
+ BorderTopStyle = BorderRightStyle = BorderBottomStyle = BorderLeftStyle = CSS_LINE_STYLE_NONE;
BorderTopColor = BorderRightColor = BorderBottomColor = BorderLeftColor = NLMISC::CRGBA::Transparent;
// background
BackgroundColor=NLMISC::CRGBA::Black;
@@ -215,8 +215,8 @@ namespace NLGUI
Current.MaxWidth=-1;
Current.MaxHeight=-1;
- Current.BorderTopWidth = Current.BorderRightWidth = Current.BorderBottomWidth = Current.BorderLeftWidth = CSSLineWidth::MEDIUM;
- Current.BorderTopStyle = Current.BorderRightStyle = Current.BorderBottomStyle = Current.BorderLeftStyle = CSSLineStyle::NONE;
+ Current.BorderTopWidth = Current.BorderRightWidth = Current.BorderBottomWidth = Current.BorderLeftWidth = CSS_LINE_WIDTH_MEDIUM;
+ Current.BorderTopStyle = Current.BorderRightStyle = Current.BorderBottomStyle = Current.BorderLeftStyle = CSS_LINE_STYLE_NONE;
Current.BorderTopColor = Current.BorderRightColor = Current.BorderBottomColor = Current.BorderLeftColor = Current.TextColor;
Current.PaddingTop = Current.PaddingRight = Current.PaddingBottom = Current.PaddingLeft = 0;
diff --git a/code/nel/include/nel/gui/css_types.h b/code/nel/include/nel/gui/css_types.h
index aa673a63e..9dd41de36 100644
--- a/code/nel/include/nel/gui/css_types.h
+++ b/code/nel/include/nel/gui/css_types.h
@@ -26,11 +26,21 @@ namespace NLGUI
* \date 2019-09-03 10:50 GMT
* \author Meelis Mägi (Nimetu)
*/
-
// ie. border-style
- enum CSSLineStyle { NONE = 0, HIDDEN, SOLID, INSET, OUTSET };
+ enum CSSLineStyle {
+ CSS_LINE_STYLE_NONE = 0,
+ CSS_LINE_STYLE_HIDDEN,
+ CSS_LINE_STYLE_SOLID,
+ CSS_LINE_STYLE_INSET,
+ CSS_LINE_STYLE_OUTSET
+ };
+
// ie, border-width (px)
- enum CSSLineWidth { THIN = 1, MEDIUM = 3, THICK = 5 };
+ enum CSSLineWidth {
+ CSS_LINE_WIDTH_THIN = 1,
+ CSS_LINE_WIDTH_MEDIUM = 3,
+ CSS_LINE_WIDTH_THICK = 5
+ };
}//namespace
diff --git a/code/nel/include/nel/gui/ctrl_base.h b/code/nel/include/nel/gui/ctrl_base.h
index 35148b5b0..a8bdef85f 100644
--- a/code/nel/include/nel/gui/ctrl_base.h
+++ b/code/nel/include/nel/gui/ctrl_base.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013-2014 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/gui/ctrl_base_button.h b/code/nel/include/nel/gui/ctrl_base_button.h
index 9859f5b6e..3698d9538 100644
--- a/code/nel/include/nel/gui/ctrl_base_button.h
+++ b/code/nel/include/nel/gui/ctrl_base_button.h
@@ -1,5 +1,8 @@
// Ryzom - MMORPG Framework
-// Copyright (C) 2010 Winch Gate Property Limited
+// Copyright (C) 2010-2018 Winch Gate Property Limited
+//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/include/nel/gui/ctrl_button.h b/code/nel/include/nel/gui/ctrl_button.h
index 1910ea72a..20ad9e35b 100644
--- a/code/nel/include/nel/gui/ctrl_button.h
+++ b/code/nel/include/nel/gui/ctrl_button.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/gui/ctrl_col_pick.h b/code/nel/include/nel/gui/ctrl_col_pick.h
index dd779e837..2a3e19288 100644
--- a/code/nel/include/nel/gui/ctrl_col_pick.h
+++ b/code/nel/include/nel/gui/ctrl_col_pick.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/gui/ctrl_draggable.h b/code/nel/include/nel/gui/ctrl_draggable.h
index 22ace71e0..c54c664bf 100644
--- a/code/nel/include/nel/gui/ctrl_draggable.h
+++ b/code/nel/include/nel/gui/ctrl_draggable.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/gui/ctrl_polygon.h b/code/nel/include/nel/gui/ctrl_polygon.h
index cef57dd3c..2d14d1151 100644
--- a/code/nel/include/nel/gui/ctrl_polygon.h
+++ b/code/nel/include/nel/gui/ctrl_polygon.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/gui/ctrl_quad.h b/code/nel/include/nel/gui/ctrl_quad.h
index 08c89675e..29948cb94 100644
--- a/code/nel/include/nel/gui/ctrl_quad.h
+++ b/code/nel/include/nel/gui/ctrl_quad.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/gui/ctrl_scroll.h b/code/nel/include/nel/gui/ctrl_scroll.h
index 8a47691a5..4052e6cea 100644
--- a/code/nel/include/nel/gui/ctrl_scroll.h
+++ b/code/nel/include/nel/gui/ctrl_scroll.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/gui/ctrl_scroll_base.h b/code/nel/include/nel/gui/ctrl_scroll_base.h
index 38cfd9c09..7f4aaad7b 100644
--- a/code/nel/include/nel/gui/ctrl_scroll_base.h
+++ b/code/nel/include/nel/gui/ctrl_scroll_base.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/gui/ctrl_sheet_selection.h b/code/nel/include/nel/gui/ctrl_sheet_selection.h
index 36d1c8336..3b0b32d4c 100644
--- a/code/nel/include/nel/gui/ctrl_sheet_selection.h
+++ b/code/nel/include/nel/gui/ctrl_sheet_selection.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/gui/ctrl_text_button.h b/code/nel/include/nel/gui/ctrl_text_button.h
index 713c5ad1c..9bae24ad5 100644
--- a/code/nel/include/nel/gui/ctrl_text_button.h
+++ b/code/nel/include/nel/gui/ctrl_text_button.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013-2014 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/gui/ctrl_tooltip.h b/code/nel/include/nel/gui/ctrl_tooltip.h
index a96bbad40..fe350c6c5 100644
--- a/code/nel/include/nel/gui/ctrl_tooltip.h
+++ b/code/nel/include/nel/gui/ctrl_tooltip.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/gui/db_manager.h b/code/nel/include/nel/gui/db_manager.h
index d5036204d..cff3c0f88 100644
--- a/code/nel/include/nel/gui/db_manager.h
+++ b/code/nel/include/nel/gui/db_manager.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/gui/dbgroup_combo_box.h b/code/nel/include/nel/gui/dbgroup_combo_box.h
index 723afbdc0..6f42572bb 100644
--- a/code/nel/include/nel/gui/dbgroup_combo_box.h
+++ b/code/nel/include/nel/gui/dbgroup_combo_box.h
@@ -1,6 +1,10 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+// Copyright (C) 2015 Jan BOON (Kaetemi)
+//
// 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
diff --git a/code/nel/include/nel/gui/dbgroup_select_number.h b/code/nel/include/nel/gui/dbgroup_select_number.h
index a5ef692ff..995747ab8 100644
--- a/code/nel/include/nel/gui/dbgroup_select_number.h
+++ b/code/nel/include/nel/gui/dbgroup_select_number.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/gui/dbview_bar.h b/code/nel/include/nel/gui/dbview_bar.h
index d4a3de340..f33959191 100644
--- a/code/nel/include/nel/gui/dbview_bar.h
+++ b/code/nel/include/nel/gui/dbview_bar.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/gui/dbview_bar3.h b/code/nel/include/nel/gui/dbview_bar3.h
index 785cb165b..93d621f72 100644
--- a/code/nel/include/nel/gui/dbview_bar3.h
+++ b/code/nel/include/nel/gui/dbview_bar3.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/gui/dbview_digit.h b/code/nel/include/nel/gui/dbview_digit.h
index 33446b2de..2c832b1e8 100644
--- a/code/nel/include/nel/gui/dbview_digit.h
+++ b/code/nel/include/nel/gui/dbview_digit.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/gui/dbview_number.h b/code/nel/include/nel/gui/dbview_number.h
index bfa963fb6..1082ffd31 100644
--- a/code/nel/include/nel/gui/dbview_number.h
+++ b/code/nel/include/nel/gui/dbview_number.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013-2014 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/gui/dbview_quantity.h b/code/nel/include/nel/gui/dbview_quantity.h
index 67c4e57ba..16a11f5a0 100644
--- a/code/nel/include/nel/gui/dbview_quantity.h
+++ b/code/nel/include/nel/gui/dbview_quantity.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/gui/editor_selection_watcher.h b/code/nel/include/nel/gui/editor_selection_watcher.h
index 7e262bdf1..f928035e7 100644
--- a/code/nel/include/nel/gui/editor_selection_watcher.h
+++ b/code/nel/include/nel/gui/editor_selection_watcher.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013-2014 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/gui/event_descriptor.h b/code/nel/include/nel/gui/event_descriptor.h
index d44448027..95bdad212 100644
--- a/code/nel/include/nel/gui/event_descriptor.h
+++ b/code/nel/include/nel/gui/event_descriptor.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+//
// 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
@@ -60,7 +63,7 @@ public:
keystring, // a string has been sent. The string is a ucstring
unknown, // uninitialized event
};
- CEventDescriptorKey() : _KeyEvent(unknown)
+ CEventDescriptorKey() : _KeyEvent(unknown), _CtrlState(false), _ShiftState(false), _AltState(false), _Char(0)
{
_EventType = key;
}
@@ -102,6 +105,31 @@ public:
{
return _AltState;
}
+
+ // return true if key was pressed or held down at a time of this event
+ bool isShiftDown()
+ {
+ return (_KeyEvent == CEventDescriptorKey::keydown && (_Key == NLMISC::KeySHIFT || _ShiftState))
+ || (_KeyEvent == CEventDescriptorKey::keyup && (_Key != NLMISC::KeySHIFT && _ShiftState))
+ || (_KeyEvent == CEventDescriptorKey::keychar && _ShiftState);
+ }
+
+ // return true if key was pressed or held down at a time of this event
+ bool isCtrlDown()
+ {
+ return (_KeyEvent == CEventDescriptorKey::keydown && (_Key == NLMISC::KeyCONTROL || _CtrlState))
+ || (_KeyEvent == CEventDescriptorKey::keyup && (_Key != NLMISC::KeyCONTROL && _CtrlState))
+ || (_KeyEvent == CEventDescriptorKey::keychar && _CtrlState);
+ }
+
+ // return true if key was pressed or held down at a time of this event
+ bool isAltDown()
+ {
+ return (_KeyEvent == CEventDescriptorKey::keydown && (_Key == NLMISC::KeyMENU || _AltState))
+ || (_KeyEvent == CEventDescriptorKey::keyup && (_Key != NLMISC::KeyMENU && _AltState))
+ || (_KeyEvent == CEventDescriptorKey::keychar && _AltState);
+ }
+
// init from a CEventKey obj
void init(const NLMISC::CEventKey &ev);
diff --git a/code/nel/include/nel/gui/event_listener.h b/code/nel/include/nel/gui/event_listener.h
index 06a2d0776..f7c44acef 100644
--- a/code/nel/include/nel/gui/event_listener.h
+++ b/code/nel/include/nel/gui/event_listener.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/gui/group_container.h b/code/nel/include/nel/gui/group_container.h
index dcc3e9759..742dfcfb2 100644
--- a/code/nel/include/nel/gui/group_container.h
+++ b/code/nel/include/nel/gui/group_container.h
@@ -1,5 +1,8 @@
// Ryzom - MMORPG Framework
-// Copyright (C) 2010 Winch Gate Property Limited
+// Copyright (C) 2010-2018 Winch Gate Property Limited
+//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/include/nel/gui/group_container_base.h b/code/nel/include/nel/gui/group_container_base.h
index 6aa7425b7..ab65b005b 100644
--- a/code/nel/include/nel/gui/group_container_base.h
+++ b/code/nel/include/nel/gui/group_container_base.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/gui/group_editbox.h b/code/nel/include/nel/gui/group_editbox.h
index 14d9d55a5..096f3daa0 100644
--- a/code/nel/include/nel/gui/group_editbox.h
+++ b/code/nel/include/nel/gui/group_editbox.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013-2014 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/gui/group_editbox_base.h b/code/nel/include/nel/gui/group_editbox_base.h
index 3aa6a555f..bd85a1ba1 100644
--- a/code/nel/include/nel/gui/group_editbox_base.h
+++ b/code/nel/include/nel/gui/group_editbox_base.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/gui/group_editbox_decor.h b/code/nel/include/nel/gui/group_editbox_decor.h
index 975177612..13d8a00a3 100644
--- a/code/nel/include/nel/gui/group_editbox_decor.h
+++ b/code/nel/include/nel/gui/group_editbox_decor.h
@@ -1,5 +1,7 @@
// Ryzom - MMORPG Framework
-// Copyright (C) 2014 Laszlo Kis-Adam
+// Copyright (C) 2014 Laszlo KIS-ADAM (dfighter)
+//
+// This source file has been modified by the following contributors:
// Copyright (C) 2010 Winch Gate Property Limited
//
// This program is free software: you can redistribute it and/or modify
diff --git a/code/nel/include/nel/gui/group_frame.h b/code/nel/include/nel/gui/group_frame.h
index 3d350b4d5..8c3cf2888 100644
--- a/code/nel/include/nel/gui/group_frame.h
+++ b/code/nel/include/nel/gui/group_frame.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/gui/group_header.h b/code/nel/include/nel/gui/group_header.h
index ab6c94c35..8c1b0e56d 100644
--- a/code/nel/include/nel/gui/group_header.h
+++ b/code/nel/include/nel/gui/group_header.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/gui/group_html.h b/code/nel/include/nel/gui/group_html.h
index 0a4e26c79..590c43a89 100644
--- a/code/nel/include/nel/gui/group_html.h
+++ b/code/nel/include/nel/gui/group_html.h
@@ -1,5 +1,8 @@
// Ryzom - MMORPG Framework
-// Copyright (C) 2010 Winch Gate Property Limited
+// Copyright (C) 2010-2019 Winch Gate Property Limited
+//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
@@ -212,7 +215,7 @@ namespace NLGUI
// Browser home
std::string Home;
// Get Home URL
- virtual std::string home();
+ virtual std::string home() const;
// Undo browse: Browse the precedent url browsed. no op if none
void browseUndo ();
diff --git a/code/nel/include/nel/gui/group_list.h b/code/nel/include/nel/gui/group_list.h
index a86950d3e..58af530b5 100644
--- a/code/nel/include/nel/gui/group_list.h
+++ b/code/nel/include/nel/gui/group_list.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/gui/group_menu.h b/code/nel/include/nel/gui/group_menu.h
index 9c5b37589..21a740d84 100644
--- a/code/nel/include/nel/gui/group_menu.h
+++ b/code/nel/include/nel/gui/group_menu.h
@@ -1,5 +1,9 @@
// Ryzom - MMORPG Framework
-// Copyright (C) 2010 Winch Gate Property Limited
+// Copyright (C) 2010-2019 Winch Gate Property Limited
+//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+// Copyright (C) 2014 Jan BOON (Kaetemi)
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/include/nel/gui/group_modal.h b/code/nel/include/nel/gui/group_modal.h
index c177d6f0c..83687b562 100644
--- a/code/nel/include/nel/gui/group_modal.h
+++ b/code/nel/include/nel/gui/group_modal.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/gui/group_paragraph.h b/code/nel/include/nel/gui/group_paragraph.h
index 02f948582..6142bc33b 100644
--- a/code/nel/include/nel/gui/group_paragraph.h
+++ b/code/nel/include/nel/gui/group_paragraph.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/gui/group_scrolltext.h b/code/nel/include/nel/gui/group_scrolltext.h
index 66fc89044..b9916aec8 100644
--- a/code/nel/include/nel/gui/group_scrolltext.h
+++ b/code/nel/include/nel/gui/group_scrolltext.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/gui/group_submenu_base.h b/code/nel/include/nel/gui/group_submenu_base.h
index ada94bfa6..16e3a5c77 100644
--- a/code/nel/include/nel/gui/group_submenu_base.h
+++ b/code/nel/include/nel/gui/group_submenu_base.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/gui/group_tab.h b/code/nel/include/nel/gui/group_tab.h
index ee68acbc8..fc05c5ae0 100644
--- a/code/nel/include/nel/gui/group_tab.h
+++ b/code/nel/include/nel/gui/group_tab.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/gui/group_table.h b/code/nel/include/nel/gui/group_table.h
index 52839e14b..e23ea5af8 100644
--- a/code/nel/include/nel/gui/group_table.h
+++ b/code/nel/include/nel/gui/group_table.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/gui/group_tree.h b/code/nel/include/nel/gui/group_tree.h
index ae4bcb3d0..266e7e23f 100644
--- a/code/nel/include/nel/gui/group_tree.h
+++ b/code/nel/include/nel/gui/group_tree.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+//
// 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
@@ -178,7 +181,7 @@ namespace NLGUI
REFLECT_STRING("AHParamsClose", getAHParamsClose, setAHParamsClose);
REFLECT_BOOL("Opened", getOpened, setOpened);
REFLECT_BOOL("Show", getShow, setShow);
- REFLECT_UCSTRING("Text", getText, setText);
+ REFLECT_UCSTRING_REF("Text", getText, setText);
// lua
REFLECT_LUA_METHOD("getNumChildren", luaGetNumChildren);
REFLECT_LUA_METHOD("getChild", luaGetChild);
diff --git a/code/nel/include/nel/gui/group_wheel.h b/code/nel/include/nel/gui/group_wheel.h
index c61b92dfd..40d81cff0 100644
--- a/code/nel/include/nel/gui/group_wheel.h
+++ b/code/nel/include/nel/gui/group_wheel.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/gui/http_hsts.h b/code/nel/include/nel/gui/http_hsts.h
index 28f1b5f5b..84adfc9fe 100644
--- a/code/nel/include/nel/gui/http_hsts.h
+++ b/code/nel/include/nel/gui/http_hsts.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2018 Jan BOON (Kaetemi)
+//
// 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
diff --git a/code/nel/include/nel/gui/input_event_listener.h b/code/nel/include/nel/gui/input_event_listener.h
index 75ec9e20a..448a8e552 100644
--- a/code/nel/include/nel/gui/input_event_listener.h
+++ b/code/nel/include/nel/gui/input_event_listener.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/gui/input_handler.h b/code/nel/include/nel/gui/input_handler.h
index 5c87c6d1c..d114ab515 100644
--- a/code/nel/include/nel/gui/input_handler.h
+++ b/code/nel/include/nel/gui/input_handler.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/gui/interface_anim.h b/code/nel/include/nel/gui/interface_anim.h
index 09f9cd9ea..af64eab98 100644
--- a/code/nel/include/nel/gui/interface_anim.h
+++ b/code/nel/include/nel/gui/interface_anim.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/gui/interface_common.h b/code/nel/include/nel/gui/interface_common.h
index 251b28b2d..b4fce1efc 100644
--- a/code/nel/include/nel/gui/interface_common.h
+++ b/code/nel/include/nel/gui/interface_common.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/gui/interface_element.h b/code/nel/include/nel/gui/interface_element.h
index 540ba96e8..47025f155 100644
--- a/code/nel/include/nel/gui/interface_element.h
+++ b/code/nel/include/nel/gui/interface_element.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013-2014 Laszlo KIS-ADAM (dfighter)
+//
// 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
@@ -362,10 +365,6 @@ namespace NLGUI
void setModulateGlobalColor(bool state) {_ModulateGlobalColor= state;}
bool getModulateGlobalColor() const {return _ModulateGlobalColor;}
-
- void dummySet(sint32 value);
- void dummySet(const std::string &value);
-
// lua methods
int luaUpdateCoords(CLuaState &ls);
int luaInvalidateCoords(CLuaState &ls);
@@ -379,6 +378,11 @@ namespace NLGUI
std::string getSizeRefAsString() const;
std::string getSizeRefAsString( const sint32 &sizeRef, const sint32 &sizeDivW, const sint32 &sizeDivH ) const;
+ void dummySet(sint32 value);
+ void dummySet(const std::string &value);
+
+ public:
+
// export some properties
REFLECT_EXPORT_START(CInterfaceElement, CReflectable)
REFLECT_BOOL ("active", getActive, setActive);
diff --git a/code/nel/include/nel/gui/interface_expr.h b/code/nel/include/nel/gui/interface_expr.h
index e99e9668e..b967ef7ab 100644
--- a/code/nel/include/nel/gui/interface_expr.h
+++ b/code/nel/include/nel/gui/interface_expr.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/gui/interface_expr_node.h b/code/nel/include/nel/gui/interface_expr_node.h
index 47cb5a664..499b766e5 100644
--- a/code/nel/include/nel/gui/interface_expr_node.h
+++ b/code/nel/include/nel/gui/interface_expr_node.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/gui/interface_factory.h b/code/nel/include/nel/gui/interface_factory.h
index bd7f8352a..9174fecb2 100644
--- a/code/nel/include/nel/gui/interface_factory.h
+++ b/code/nel/include/nel/gui/interface_factory.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2014 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/gui/interface_group.h b/code/nel/include/nel/gui/interface_group.h
index b646c38b6..9f1e5562b 100644
--- a/code/nel/include/nel/gui/interface_group.h
+++ b/code/nel/include/nel/gui/interface_group.h
@@ -1,5 +1,8 @@
// Ryzom - MMORPG Framework
-// Copyright (C) 2010 Winch Gate Property Limited
+// Copyright (C) 2010-2019 Winch Gate Property Limited
+//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013-2014 Laszlo KIS-ADAM (dfighter)
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
@@ -231,18 +234,18 @@ namespace NLGUI
REFLECT_LUA_METHOD("dumpSize", luaDumpSize);
REFLECT_LUA_METHOD("dumpEltsOrder", luaDumpEltsOrder);
REFLECT_LUA_METHOD("dumpGroups", luaDumpGroups);
- REFLECT_STRING ("left_click", getLeftClickHandler, setLeftClickHandler);
- REFLECT_STRING ("right_click", getRightClickHandler, setRightClickHandler);
- REFLECT_STRING ("left_click_params", getLeftClickHandlerParams, setLeftClickHandlerParams);
- REFLECT_STRING ("right_click_params", getRightClickHandlerParams, setRightClickHandlerParams);
- REFLECT_STRING ("on_active", getOnActiveHandler, setOnActiveHandler);
- REFLECT_STRING ("on_active_params", getOnActiveParams, setOnActiveParams);
- REFLECT_STRING ("on_deactive", getOnDeactiveHandler, setOnDeactiveHandler);
- REFLECT_STRING ("on_deactive_params", getOnDeactiveParams, setOnDeactiveParams);
- REFLECT_STRING ("on_enter", getAHOnEnter, setAHOnEnter);
- REFLECT_STRING ("on_enter_params", getAHOnEnterParams, setAHOnEnterParams);
- REFLECT_STRING ("on_escape", getAHOnEscape, setAHOnEscape);
- REFLECT_STRING ("on_escape_params", getAHOnEscapeParams, setAHOnEscapeParams);
+ REFLECT_STRING_REF ("left_click", getLeftClickHandler, setLeftClickHandler);
+ REFLECT_STRING_REF ("right_click", getRightClickHandler, setRightClickHandler);
+ REFLECT_STRING_REF ("left_click_params", getLeftClickHandlerParams, setLeftClickHandlerParams);
+ REFLECT_STRING_REF ("right_click_params", getRightClickHandlerParams, setRightClickHandlerParams);
+ REFLECT_STRING_REF ("on_active", getOnActiveHandler, setOnActiveHandler);
+ REFLECT_STRING_REF ("on_active_params", getOnActiveParams, setOnActiveParams);
+ REFLECT_STRING_REF ("on_deactive", getOnDeactiveHandler, setOnDeactiveHandler);
+ REFLECT_STRING_REF ("on_deactive_params", getOnDeactiveParams, setOnDeactiveParams);
+ REFLECT_STRING_REF ("on_enter", getAHOnEnter, setAHOnEnter);
+ REFLECT_STRING_REF ("on_enter_params", getAHOnEnterParams, setAHOnEnterParams);
+ REFLECT_STRING_REF ("on_escape", getAHOnEscape, setAHOnEscape);
+ REFLECT_STRING_REF ("on_escape_params", getAHOnEscapeParams, setAHOnEscapeParams);
REFLECT_SINT32 ("ofsx", getOfsX, setOfsX);
REFLECT_SINT32 ("ofsy", getOfsY, setOfsY);
REFLECT_BOOL("child_resize_w", getResizeFromChildW, setResizeFromChildW);
diff --git a/code/nel/include/nel/gui/interface_link.h b/code/nel/include/nel/gui/interface_link.h
index 42fb2bbcf..54ca5706b 100644
--- a/code/nel/include/nel/gui/interface_link.h
+++ b/code/nel/include/nel/gui/interface_link.h
@@ -1,6 +1,10 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Jan BOON (Kaetemi)
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/gui/interface_options.h b/code/nel/include/nel/gui/interface_options.h
index 4ee0f52ee..0c1ccf2e8 100644
--- a/code/nel/include/nel/gui/interface_options.h
+++ b/code/nel/include/nel/gui/interface_options.h
@@ -1,6 +1,10 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+// Copyright (C) 2014 Jan BOON (Kaetemi)
+//
// 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
diff --git a/code/nel/include/nel/gui/interface_parser.h b/code/nel/include/nel/gui/interface_parser.h
index bfc951ce2..ae386f963 100644
--- a/code/nel/include/nel/gui/interface_parser.h
+++ b/code/nel/include/nel/gui/interface_parser.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013-2014 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/gui/interface_property.h b/code/nel/include/nel/gui/interface_property.h
index b506ec7a9..feb21a2c1 100644
--- a/code/nel/include/nel/gui/interface_property.h
+++ b/code/nel/include/nel/gui/interface_property.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013-2014 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/gui/libwww.h b/code/nel/include/nel/gui/libwww.h
index e713f3c81..1f1e07902 100644
--- a/code/nel/include/nel/gui/libwww.h
+++ b/code/nel/include/nel/gui/libwww.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013-2015 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/gui/link_data.h b/code/nel/include/nel/gui/link_data.h
index 3e7a5ae00..c49d04886 100644
--- a/code/nel/include/nel/gui/link_data.h
+++ b/code/nel/include/nel/gui/link_data.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/gui/lua_helper.h b/code/nel/include/nel/gui/lua_helper.h
index 7388c729d..da5c33e6a 100644
--- a/code/nel/include/nel/gui/lua_helper.h
+++ b/code/nel/include/nel/gui/lua_helper.h
@@ -1,6 +1,10 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Jan BOON (Kaetemi)
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+//
// 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
@@ -84,7 +88,7 @@ namespace NLGUI
{
public:
ELuaError() { CLuaStackChecker::incrementExceptionContextCounter(); }
- virtual ~ELuaError() throw() { CLuaStackChecker::decrementExceptionContextCounter(); }
+ virtual ~ELuaError() NL_OVERRIDE { CLuaStackChecker::decrementExceptionContextCounter(); }
ELuaError(const std::string &reason) : Exception(reason) { CLuaStackChecker::incrementExceptionContextCounter(); }
// what(), plus append the Reason
virtual std::string luaWhat() const throw() {return NLMISC::toString("LUAError: %s", what());}
@@ -96,9 +100,9 @@ namespace NLGUI
public:
ELuaParseError() {}
ELuaParseError(const std::string &reason) : ELuaError(reason) {}
- virtual ~ELuaParseError() throw() { }
+ virtual ~ELuaParseError() NL_OVERRIDE { }
// what(), plus append the Reason
- virtual std::string luaWhat() const throw() {return NLMISC::toString("ELuaParseError: %s", what());}
+ virtual std::string luaWhat() const throw() NL_OVERRIDE {return NLMISC::toString("ELuaParseError: %s", what());}
};
/** Exception thrown when something went wrong inside a wrapped function called by lua
@@ -109,8 +113,8 @@ namespace NLGUI
ELuaWrappedFunctionException(CLuaState *luaState);
ELuaWrappedFunctionException(CLuaState *luaState, const std::string &reason);
ELuaWrappedFunctionException(CLuaState *luaState, const char *format, ...);
- virtual ~ELuaWrappedFunctionException() throw() { }
- virtual const char *what() const throw() {return _Reason.c_str();}
+ virtual ~ELuaWrappedFunctionException() NL_OVERRIDE { }
+ virtual const char *what() const throw() NL_OVERRIDE {return _Reason.c_str();}
protected:
void init(CLuaState *ls, const std::string &reason);
protected:
@@ -123,9 +127,9 @@ namespace NLGUI
public:
ELuaExecuteError() {}
ELuaExecuteError(const std::string &reason) : ELuaError(reason) {}
- virtual ~ELuaExecuteError() throw() { }
+ virtual ~ELuaExecuteError() NL_OVERRIDE { }
// what(), plus append the Reason
- virtual std::string luaWhat() const throw() {return NLMISC::toString("ELuaExecuteError: %s", what());}
+ virtual std::string luaWhat() const throw() NL_OVERRIDE {return NLMISC::toString("ELuaExecuteError: %s", what());}
};
// A bad cast occurred when using lua_checkcast
diff --git a/code/nel/include/nel/gui/lua_helper_inline.h b/code/nel/include/nel/gui/lua_helper_inline.h
index 1d6b4864a..0d380bbf1 100644
--- a/code/nel/include/nel/gui/lua_helper_inline.h
+++ b/code/nel/include/nel/gui/lua_helper_inline.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Jan BOON (Kaetemi)
+//
// 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
diff --git a/code/nel/include/nel/gui/lua_ihm.h b/code/nel/include/nel/gui/lua_ihm.h
index a7c5f9e2b..cc1051e62 100644
--- a/code/nel/include/nel/gui/lua_ihm.h
+++ b/code/nel/include/nel/gui/lua_ihm.h
@@ -1,5 +1,8 @@
// Ryzom - MMORPG Framework
-// Copyright (C) 2010 Winch Gate Property Limited
+// Copyright (C) 2010-2019 Winch Gate Property Limited
+//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
diff --git a/code/nel/include/nel/gui/lua_loadlib.h b/code/nel/include/nel/gui/lua_loadlib.h
index adab3ec0b..c7937d2e8 100644
--- a/code/nel/include/nel/gui/lua_loadlib.h
+++ b/code/nel/include/nel/gui/lua_loadlib.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/gui/lua_manager.h b/code/nel/include/nel/gui/lua_manager.h
index 01c123f55..f9739ddb1 100644
--- a/code/nel/include/nel/gui/lua_manager.h
+++ b/code/nel/include/nel/gui/lua_manager.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/gui/lua_object.h b/code/nel/include/nel/gui/lua_object.h
index 88c011347..37549664f 100644
--- a/code/nel/include/nel/gui/lua_object.h
+++ b/code/nel/include/nel/gui/lua_object.h
@@ -1,6 +1,10 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+// Copyright (C) 2015 Jan BOON (Kaetemi)
+//
// 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
diff --git a/code/nel/include/nel/gui/parser.h b/code/nel/include/nel/gui/parser.h
index bc53e402d..661f4a620 100644
--- a/code/nel/include/nel/gui/parser.h
+++ b/code/nel/include/nel/gui/parser.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013-2014 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/gui/proc.h b/code/nel/include/nel/gui/proc.h
index 9e98008e4..483259e88 100644
--- a/code/nel/include/nel/gui/proc.h
+++ b/code/nel/include/nel/gui/proc.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/gui/reflect.h b/code/nel/include/nel/gui/reflect.h
index 848a79fa8..8bd3b4781 100644
--- a/code/nel/include/nel/gui/reflect.h
+++ b/code/nel/include/nel/gui/reflect.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+//
// 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
@@ -39,6 +42,8 @@ namespace NLGUI
Float,
String,
UCString,
+ StringRef,
+ UCStringRef,
RGBA,
LuaMethod
}; // other types will be added when needed
@@ -49,6 +54,8 @@ namespace NLGUI
typedef float (CReflectable::* TGetFloat) () const;
typedef std::string (CReflectable::* TGetString) () const;
typedef ucstring (CReflectable::* TGetUCString) () const;
+ typedef const std::string & (CReflectable::* TGetStringRef) () const;
+ typedef const ucstring & (CReflectable::* TGetUCStringRef) () const;
typedef NLMISC::CRGBA (CReflectable::* TGetRGBA) () const;
//
typedef void (CReflectable::* TSetBool) (bool);
@@ -72,6 +79,8 @@ namespace NLGUI
TGetFloat GetFloat;
TGetString GetString;
TGetUCString GetUCString;
+ TGetStringRef GetStringRef;
+ TGetUCStringRef GetUCStringRef;
TGetRGBA GetRGBA;
TLuaMethod GetLuaMethod; // lua method can only be obtained, not written ...
} GetMethod;
@@ -105,7 +114,7 @@ namespace NLGUI
public:
virtual ~CReflectable() {}
virtual const char *getReflectedClassName() const { return "CReflectable"; }
- virtual const char *getRflectedParentClassName() const { return ""; }
+ virtual const char *getReflectedParentClassName() const { return ""; }
/** When registering classes, the reflect system will call this function on each class
* to know which properties they exports.
@@ -208,8 +217,8 @@ namespace NLGUI
* Should be placed inside the class
*/
#define REFLECT_EXPORT_START(className, parentName) \
- virtual const char *getReflectedClassName() const { return #className; } \
- virtual const char *getReflectedParentClassName() const { return #parentName; } \
+ virtual const char *getReflectedClassName() const NL_OVERRIDE { return #className; } \
+ virtual const char *getReflectedParentClassName() const NL_OVERRIDE { return #parentName; } \
static void getReflectedProperties(TReflectedProperties &props) \
{ \
typedef className A; \
@@ -219,6 +228,8 @@ namespace NLGUI
typedef float (className::* TGetFloata) () const; \
typedef std::string (className::* TGetStringa) () const; \
typedef ucstring (className::* TGetUCStringa) () const; \
+ typedef const std::string & (className::* TGetStringRefa) () const; \
+ typedef const ucstring & (className::* TGetUCStringRefa) () const; \
typedef NLMISC::CRGBA (className::* TGetRGBAa) () const; \
typedef void (className::* TSetBoola) (bool); \
typedef void (className::* TSetSInt32a) (sint32); \
@@ -237,8 +248,8 @@ namespace NLGUI
CReflectedProperty prop; \
prop.Name = exportName; \
prop.Type = CReflectedProperty::Boolean; \
- prop.GetMethod.GetBool = (CReflectedProperty::TGetBool) (TGetBoola) &A::getMethod; \
- prop.SetMethod.SetBool = (CReflectedProperty::TSetBool) (TSetBoola) &A::setMethod; \
+ prop.GetMethod.GetBool = (CReflectedProperty::TGetBool) static_cast(&A::getMethod); \
+ prop.SetMethod.SetBool = (CReflectedProperty::TSetBool) static_cast(&A::setMethod); \
props.push_back(prop); \
}
@@ -248,8 +259,8 @@ namespace NLGUI
CReflectedProperty prop; \
prop.Name = exportName; \
prop.Type = CReflectedProperty::SInt32; \
- prop.GetMethod.GetSInt32 = (CReflectedProperty::TGetSInt32) (TGetSInt32a) &A::getMethod; \
- prop.SetMethod.SetSInt32 = (CReflectedProperty::TSetSInt32) (TSetSInt32a) &A::setMethod; \
+ prop.GetMethod.GetSInt32 = (CReflectedProperty::TGetSInt32) static_cast(&A::getMethod); \
+ prop.SetMethod.SetSInt32 = (CReflectedProperty::TSetSInt32) static_cast(&A::setMethod); \
props.push_back(prop); \
}
@@ -259,8 +270,8 @@ namespace NLGUI
CReflectedProperty prop; \
prop.Name = exportName; \
prop.Type = CReflectedProperty::UInt32; \
- prop.GetMethod.GetUInt32 = (CReflectedProperty::TGetUInt32) (TGetUInt32a) &A::getMethod; \
- prop.SetMethod.SetUInt32 = (CReflectedProperty::TSetUInt32) (TSetUInt32a) &A::setMethod; \
+ prop.GetMethod.GetUInt32 = (CReflectedProperty::TGetUInt32) static_cast(&A::getMethod); \
+ prop.SetMethod.SetUInt32 = (CReflectedProperty::TSetUInt32) static_cast(&A::setMethod); \
props.push_back(prop); \
}
@@ -270,8 +281,8 @@ namespace NLGUI
CReflectedProperty prop; \
prop.Name = exportName; \
prop.Type = CReflectedProperty::Float; \
- prop.GetMethod.GetFloat = (CReflectedProperty::TGetFloat) (TGetFloata) &A::getMethod; \
- prop.SetMethod.SetFloat = (CReflectedProperty::TSetFloat) (TSetFloata) &A::setMethod; \
+ prop.GetMethod.GetFloat = (CReflectedProperty::TGetFloat) static_cast(&A::getMethod); \
+ prop.SetMethod.SetFloat = (CReflectedProperty::TSetFloat) static_cast(&A::setMethod); \
props.push_back(prop); \
}
@@ -281,8 +292,8 @@ namespace NLGUI
CReflectedProperty prop; \
prop.Name = exportName; \
prop.Type = CReflectedProperty::String; \
- prop.GetMethod.GetString = (CReflectedProperty::TGetString) (TGetStringa) &A::getMethod; \
- prop.SetMethod.SetString = (CReflectedProperty::TSetString) (TSetStringa) &A::setMethod; \
+ prop.GetMethod.GetString = (CReflectedProperty::TGetString) static_cast(&A::getMethod); \
+ prop.SetMethod.SetString = (CReflectedProperty::TSetString) static_cast(&A::setMethod); \
props.push_back(prop); \
}
@@ -292,8 +303,30 @@ namespace NLGUI
CReflectedProperty prop; \
prop.Name = exportName; \
prop.Type = CReflectedProperty::UCString; \
- prop.GetMethod.GetUCString = (CReflectedProperty::TGetUCString) (TGetUCStringa) &A::getMethod; \
- prop.SetMethod.SetUCString = (CReflectedProperty::TSetUCString) (TSetUCStringa) &A::setMethod; \
+ prop.GetMethod.GetUCString = (CReflectedProperty::TGetUCString) static_cast(&A::getMethod); \
+ prop.SetMethod.SetUCString = (CReflectedProperty::TSetUCString) static_cast(&A::setMethod); \
+ props.push_back(prop); \
+ }
+
+ // export a string value, by giving the name of the get and the set method
+ #define REFLECT_STRING_REF(exportName, getMethod, setMethod) \
+ { \
+ CReflectedProperty prop; \
+ prop.Name = exportName; \
+ prop.Type = CReflectedProperty::StringRef; \
+ prop.GetMethod.GetStringRef = (CReflectedProperty::TGetStringRef) static_cast(&A::getMethod); \
+ prop.SetMethod.SetString = (CReflectedProperty::TSetString) static_cast(&A::setMethod); \
+ props.push_back(prop); \
+ }
+
+ // export a unicode string value, by giving the name of the get and the set method
+ #define REFLECT_UCSTRING_REF(exportName, getMethod, setMethod) \
+ { \
+ CReflectedProperty prop; \
+ prop.Name = exportName; \
+ prop.Type = CReflectedProperty::UCStringRef; \
+ prop.GetMethod.GetUCStringRef = (CReflectedProperty::TGetUCStringRef) static_cast(&A::getMethod); \
+ prop.SetMethod.SetUCString = (CReflectedProperty::TSetUCString) static_cast(&A::setMethod); \
props.push_back(prop); \
}
@@ -304,8 +337,8 @@ namespace NLGUI
CReflectedProperty prop; \
prop.Name = exportName; \
prop.Type = CReflectedProperty::RGBA; \
- prop.GetMethod.GetRGBA = (CReflectedProperty::TGetRGBA) (TGetRGBAa) &A::getMethod; \
- prop.SetMethod.SetRGBA = (CReflectedProperty::TSetRGBA) (TSetRGBAa) &A::setMethod; \
+ prop.GetMethod.GetRGBA = (CReflectedProperty::TGetRGBA) static_cast(&A::getMethod); \
+ prop.SetMethod.SetRGBA = (CReflectedProperty::TSetRGBA) static_cast(&A::setMethod); \
props.push_back(prop); \
}
@@ -315,7 +348,7 @@ namespace NLGUI
CReflectedProperty prop; \
prop.Name = exportName; \
prop.Type = CReflectedProperty::LuaMethod; \
- prop.GetMethod.GetLuaMethod = (CReflectedProperty::TLuaMethod) (TLuaMethoda) &A::method; \
+ prop.GetMethod.GetLuaMethod = (CReflectedProperty::TLuaMethod) static_cast(&A::method); \
props.push_back(prop); \
}
diff --git a/code/nel/include/nel/gui/reflect_register.h b/code/nel/include/nel/gui/reflect_register.h
index 70bd82d31..a555979f6 100644
--- a/code/nel/include/nel/gui/reflect_register.h
+++ b/code/nel/include/nel/gui/reflect_register.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/gui/root_group.h b/code/nel/include/nel/gui/root_group.h
index 58963a3b2..d4cad792d 100644
--- a/code/nel/include/nel/gui/root_group.h
+++ b/code/nel/include/nel/gui/root_group.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2014 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/gui/string_case.h b/code/nel/include/nel/gui/string_case.h
index b7c30633f..ec8fa2925 100644
--- a/code/nel/include/nel/gui/string_case.h
+++ b/code/nel/include/nel/gui/string_case.h
@@ -1,3 +1,22 @@
+// NeL - MMORPG Framework
+// Copyright (C) 2010 Winch Gate Property Limited
+//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+//
+// 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 .
+
#ifndef STRING_CASE_H
#define STRING_CASE_H
diff --git a/code/nel/include/nel/gui/variable_data.h b/code/nel/include/nel/gui/variable_data.h
index cffba2bce..652c3f16d 100644
--- a/code/nel/include/nel/gui/variable_data.h
+++ b/code/nel/include/nel/gui/variable_data.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2014 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/gui/view_base.h b/code/nel/include/nel/gui/view_base.h
index f64803720..dc75e5e43 100644
--- a/code/nel/include/nel/gui/view_base.h
+++ b/code/nel/include/nel/gui/view_base.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/gui/view_bitmap.h b/code/nel/include/nel/gui/view_bitmap.h
index ef7735857..3d41ae283 100644
--- a/code/nel/include/nel/gui/view_bitmap.h
+++ b/code/nel/include/nel/gui/view_bitmap.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/gui/view_bitmap_combo.h b/code/nel/include/nel/gui/view_bitmap_combo.h
index f8329303f..f1b2d506e 100644
--- a/code/nel/include/nel/gui/view_bitmap_combo.h
+++ b/code/nel/include/nel/gui/view_bitmap_combo.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/gui/view_link.h b/code/nel/include/nel/gui/view_link.h
index 0fbca1065..2b65fd120 100644
--- a/code/nel/include/nel/gui/view_link.h
+++ b/code/nel/include/nel/gui/view_link.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/gui/view_pointer.h b/code/nel/include/nel/gui/view_pointer.h
index 1cc7a4b0c..cb550e44a 100644
--- a/code/nel/include/nel/gui/view_pointer.h
+++ b/code/nel/include/nel/gui/view_pointer.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/gui/view_pointer_base.h b/code/nel/include/nel/gui/view_pointer_base.h
index 5468ba6d5..3ae3ae4ad 100644
--- a/code/nel/include/nel/gui/view_pointer_base.h
+++ b/code/nel/include/nel/gui/view_pointer_base.h
@@ -1,6 +1,10 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+// Copyright (C) 2014 Jan BOON (Kaetemi)
+//
// 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
diff --git a/code/nel/include/nel/gui/view_polygon.h b/code/nel/include/nel/gui/view_polygon.h
index f45bcf305..4cf9d3c08 100644
--- a/code/nel/include/nel/gui/view_polygon.h
+++ b/code/nel/include/nel/gui/view_polygon.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/gui/view_quad.h b/code/nel/include/nel/gui/view_quad.h
index 5c9ea7485..a80befbe2 100644
--- a/code/nel/include/nel/gui/view_quad.h
+++ b/code/nel/include/nel/gui/view_quad.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/gui/view_renderer.h b/code/nel/include/nel/gui/view_renderer.h
index 1b489802f..aefbb315f 100644
--- a/code/nel/include/nel/gui/view_renderer.h
+++ b/code/nel/include/nel/gui/view_renderer.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013-2014 Laszlo KIS-ADAM (dfighter)
+//
// 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
@@ -264,6 +267,8 @@ namespace NLGUI
bool bReleasable=true
);
+ // Create texture from dataURL "data:image/png;base64," string
+ sint32 createTextureFromDataURL(const std::string &data, bool uploadDXTC=true, bool bReleasable=true);
// change position of a sub-texture (inside its big texture) from the sub-texture filename
void updateTexturePos(const std::string &texturefileName,
diff --git a/code/nel/include/nel/gui/view_text.h b/code/nel/include/nel/gui/view_text.h
index fa5f74b84..57ab6a096 100644
--- a/code/nel/include/nel/gui/view_text.h
+++ b/code/nel/include/nel/gui/view_text.h
@@ -1,6 +1,10 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013-2014 Laszlo KIS-ADAM (dfighter)
+// Copyright (C) 2014 Jan BOON (Kaetemi)
+//
// 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
diff --git a/code/nel/include/nel/gui/view_text_formated.h b/code/nel/include/nel/gui/view_text_formated.h
index d2271599d..43a7eb9a8 100644
--- a/code/nel/include/nel/gui/view_text_formated.h
+++ b/code/nel/include/nel/gui/view_text_formated.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/gui/view_text_id.h b/code/nel/include/nel/gui/view_text_id.h
index ac0477254..1e46de062 100644
--- a/code/nel/include/nel/gui/view_text_id.h
+++ b/code/nel/include/nel/gui/view_text_id.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/gui/view_text_id_formated.h b/code/nel/include/nel/gui/view_text_id_formated.h
index 278c33338..cbc494dc1 100644
--- a/code/nel/include/nel/gui/view_text_id_formated.h
+++ b/code/nel/include/nel/gui/view_text_id_formated.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/gui/widget_manager.h b/code/nel/include/nel/gui/widget_manager.h
index 518c5be16..fced74024 100644
--- a/code/nel/include/nel/gui/widget_manager.h
+++ b/code/nel/include/nel/gui/widget_manager.h
@@ -1,6 +1,10 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Jan BOON (Kaetemi)
+// Copyright (C) 2013-2014 Laszlo KIS-ADAM (dfighter)
+//
// 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
@@ -265,6 +269,14 @@ namespace NLGUI
CViewPointerBase* getPointer(){ return _Pointer; }
void setPointer( CViewPointerBase *pointer ){ _Pointer = pointer; }
+ // If > 0, snap window to others closer than distance
+ void setWindowSnapDistance(uint32 d) { _WindowSnapDistance = d; }
+ uint32 getWindowSnapDistance() const { return _WindowSnapDistance; }
+
+ // If true, only snap when shift is held down
+ void setWindowSnapInvert(bool b) { _WindowSnapInvert = b; }
+ bool getWindowSnapInvert() const { return _WindowSnapInvert; }
+
/**
* get the window under a spot
* \param : X coord of the spot
@@ -306,6 +318,9 @@ namespace NLGUI
void drawOverExtendViewText();
+ // Snap to closest visible window border if snapping is enabled
+ void snapIfClose(CInterfaceGroup *group);
+
// Internal : adjust a tooltip with respect to its parent. Returns the number of coordinate that were clamped
// against the screen border
uint adjustTooltipPosition( CCtrlBase *newCtrl, CInterfaceGroup *win, THotSpot ttParentRef,
@@ -620,6 +635,9 @@ namespace NLGUI
CEventDescriptorKey lastKeyEvent;
+ uint32 _WindowSnapDistance;
+ bool _WindowSnapInvert;
+
uint32 _ScreenH;
uint32 _ScreenW;
float _InterfaceScale;
diff --git a/code/nel/include/nel/misc/app_context.h b/code/nel/include/nel/misc/app_context.h
index bf73ddb83..1aa240f66 100644
--- a/code/nel/include/nel/misc/app_context.h
+++ b/code/nel/include/nel/misc/app_context.h
@@ -1,6 +1,9 @@
// NeL - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2014-2015 Jan BOON (Kaetemi)
+//
// 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
@@ -237,6 +240,22 @@ namespace NLMISC
} \
private:
+#define NLMISC_SAFE_RELEASABLE_SINGLETON_DECL(className) \
+ NLMISC_SAFE_SINGLETON_DECL(className); \
+ \
+ public: \
+ static void releaseInstance() \
+ { \
+ if (_Instance) \
+ { \
+ NLMISC::INelContext::getInstance().releaseSingletonPointer(#className, _Instance); \
+ delete _Instance; \
+ _Instance = NULL; \
+ } \
+ } \
+ private:
+
+
/** The same as above, but generate a getInstance method that
* return a pointer instead of a reference
*/
@@ -304,5 +323,6 @@ void initNelLibrary(CLibrary &lib);
} // namespace NLMISC
+#include
#endif //APP_CONTEXT_H
diff --git a/code/nel/include/nel/misc/base64.h b/code/nel/include/nel/misc/base64.h
new file mode 100644
index 000000000..4c5c2babd
--- /dev/null
+++ b/code/nel/include/nel/misc/base64.h
@@ -0,0 +1,154 @@
+// NeL - MMORPG Framework
+// Copyright (C) 2010 Winch Gate Property Limited
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+
+#ifndef NL_BASE64_H
+#define NL_BASE64_h
+
+namespace NLMISC
+{
+
+/**
+ * \brief base64 encode/decode
+ * \date 2020-01-23 12:39GMT
+ * \author Meelis Mägi (Nimetu)
+ */
+
+struct base64 {
+ static std::string encode(const std::string &data)
+ {
+ /* Conversion table. for base 64 */
+ static const char tbl[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+ "abcdefghijklmnopqrstuvwxyz"
+ "0123456789+/";
+ static const char padChar = '=';
+
+ size_t inLength = data.size();
+ size_t outLength = 4 * ((inLength + 2) / 3);
+
+ std::string out;
+ out.resize(outLength);
+
+ size_t iRead=0, oWrite=0;
+ for (size_t iLoop = 0; iLoop < inLength/3; iLoop++)
+ {
+ out[oWrite+0] = tbl[ (data[iRead+0] >> 2) & 0x3F];
+ out[oWrite+1] = tbl[((data[iRead+0] << 4) & 0x30) + ((data[iRead+1] >> 4) & 0x0F)];
+ out[oWrite+2] = tbl[((data[iRead+1] << 2) & 0x3C) + ((data[iRead+2] >> 6) & 0x03)];
+ out[oWrite+3] = tbl[ data[iRead+2] & 0x3F];
+ iRead += 3;
+ oWrite += 4;
+ }
+
+ // remaining bytes
+ switch(inLength % 3)
+ {
+ case 2:
+ out[oWrite+0] = tbl[ (data[iRead+0] >> 2) & 0x3F];
+ out[oWrite+1] = tbl[((data[iRead+0] << 4) & 0x30) + ((data[iRead+1] >> 4) & 0x0F)];
+ out[oWrite+2] = tbl[((data[iRead+1] << 2) & 0x3C)];
+ out[oWrite+3] = padChar;
+ break;
+ case 1:
+ out[oWrite+0] = tbl[ (data[iRead+0] >> 2) & 0x3F];
+ out[oWrite+1] = tbl[((data[iRead+0] << 4) & 0x30)];
+ out[oWrite+2] = padChar;
+ out[oWrite+3] = padChar;
+ break;
+ default:
+ break;
+ }
+
+ return out;
+ }
+
+ static std::string decode(const std::string &in)
+ {
+ static sint8 tbl[] = {
+ // 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, // 00
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, // 10
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, 63, // 20 + /
+ 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, 0, -1, -1, // 30 0..9 =
+ -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, // 40 A..
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1, // 50 ..Z
+ -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, // 60 a..
+ 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1, // 70 ..z
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, // 80
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, // 90
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, // A0
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, // B0
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, // C0
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, // D0
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, // E0
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, // F0
+ };
+ static char padChar = '=';
+
+ size_t inLength = in.size();
+ // add optional padding if its missing from input
+ size_t outLength = (inLength + inLength % 4) / 4 * 3;
+
+ std::string out;
+ if (inLength > 0)
+ {
+ uint8 buf[4];
+ size_t iBuf = 0;
+ size_t iRead = 0;
+ size_t oWrite = 0;
+
+ out.resize(outLength);
+ while(iRead < inLength && in[iRead] != padChar)
+ {
+ buf[iBuf] = (uint8)tbl[in[iRead]];
+ // invalid byte in input
+ if (buf[iBuf] == 0xFF)
+ break;
+
+ iRead++;
+ iBuf++;
+ if (iBuf == 4)
+ {
+ out[oWrite+0] = ((buf[0] << 2) & 0xFC) + ((buf[1] >> 4) & 0x0F);
+ out[oWrite+1] = ((buf[1] << 4) & 0xF0) + ((buf[2] >> 2) & 0x0F);
+ out[oWrite+2] = ((buf[2] << 6) & 0xC0) + (buf[3] & 0x3F);
+ oWrite += 3;
+ iBuf = 0;
+ }
+ }
+
+ if (iBuf > 0)
+ {
+ uint8 tmp[3];
+ tmp[0] = ((buf[0] << 2) & 0xFC) + ((buf[1] >> 4) & 0x0F);
+ tmp[1] = ((buf[1] << 4) & 0xF0) + ((buf[2] >> 2) & 0x0F);
+ tmp[2] = ((buf[2] << 6) & 0xC0) + (buf[3] & 0x3F);
+ for(uint i = 0; i < iBuf-1; i++, oWrite++)
+ out[oWrite] = tmp[i];
+ }
+
+ if (out.size() != oWrite)
+ out.resize(oWrite);
+ }
+
+ return out;
+ }
+};
+
+}//namespace NLMISC
+
+#endif // NL_BASE64_H
+
diff --git a/code/nel/include/nel/misc/bitmap.h b/code/nel/include/nel/misc/bitmap.h
index 7e5994152..d726a4a94 100644
--- a/code/nel/include/nel/misc/bitmap.h
+++ b/code/nel/include/nel/misc/bitmap.h
@@ -1,6 +1,9 @@
// NeL - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2016 Jan BOON (Kaetemi)
+//
// 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
diff --git a/code/nel/include/nel/misc/cdb.h b/code/nel/include/nel/misc/cdb.h
index 46fcc4849..a01c641c3 100644
--- a/code/nel/include/nel/misc/cdb.h
+++ b/code/nel/include/nel/misc/cdb.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/misc/cdb_bank_handler.h b/code/nel/include/nel/misc/cdb_bank_handler.h
index 155c2abac..cd7abcd7b 100644
--- a/code/nel/include/nel/misc/cdb_bank_handler.h
+++ b/code/nel/include/nel/misc/cdb_bank_handler.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/misc/cdb_branch.h b/code/nel/include/nel/misc/cdb_branch.h
index f8a979499..cacb35d69 100644
--- a/code/nel/include/nel/misc/cdb_branch.h
+++ b/code/nel/include/nel/misc/cdb_branch.h
@@ -1,6 +1,10 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Jan BOON (Kaetemi)
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/misc/cdb_branch_observing_handler.h b/code/nel/include/nel/misc/cdb_branch_observing_handler.h
index 69fb2bf9a..186fdf88a 100644
--- a/code/nel/include/nel/misc/cdb_branch_observing_handler.h
+++ b/code/nel/include/nel/misc/cdb_branch_observing_handler.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/misc/cdb_check_sum.h b/code/nel/include/nel/misc/cdb_check_sum.h
index 126656ce3..8f5bbc462 100644
--- a/code/nel/include/nel/misc/cdb_check_sum.h
+++ b/code/nel/include/nel/misc/cdb_check_sum.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/misc/cdb_leaf.h b/code/nel/include/nel/misc/cdb_leaf.h
index c80ec903a..dc734c434 100644
--- a/code/nel/include/nel/misc/cdb_leaf.h
+++ b/code/nel/include/nel/misc/cdb_leaf.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/misc/cdb_manager.h b/code/nel/include/nel/misc/cdb_manager.h
index 3d8caa3a8..fba4eac22 100644
--- a/code/nel/include/nel/misc/cdb_manager.h
+++ b/code/nel/include/nel/misc/cdb_manager.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/misc/class_id.h b/code/nel/include/nel/misc/class_id.h
index 5222bad49..d323e6aab 100644
--- a/code/nel/include/nel/misc/class_id.h
+++ b/code/nel/include/nel/misc/class_id.h
@@ -1,6 +1,9 @@
// NeL - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2019 Jan BOON (Kaetemi)
+//
// 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
diff --git a/code/nel/include/nel/misc/common.h b/code/nel/include/nel/misc/common.h
index bf7276cd8..a5d1b2f27 100644
--- a/code/nel/include/nel/misc/common.h
+++ b/code/nel/include/nel/misc/common.h
@@ -1,5 +1,10 @@
// NeL - MMORPG Framework
-// Copyright (C) 2010 Winch Gate Property Limited
+// Copyright (C) 2010-2018 Winch Gate Property Limited
+//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2010 Matt RAYKOWSKI (sfb)
+// Copyright (C) 2010 Robert TIMM (rti)
+// Copyright (C) 2015-2019 Jan BOON (Kaetemi)
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
@@ -302,6 +307,10 @@ template T trimQuotes (const T &str)
return str.substr(1, size - 2);
}
+// encode/decode uri component using %AB hex encoding
+std::string encodeURIComponent(const std::string &in);
+std::string decodeURIComponent(const std::string &in);
+
//////////////////////////////////////////////////////////////////////////
// **** DEPRECATED *****: PLEASE DON'T USE THESE METHODS BUT FUNCTIONS ABOVE toLower() and toUpper()
//////////////////////////////////////////////////////////////////////////
@@ -359,8 +368,8 @@ public:
Exception();
Exception(const std::string &reason);
Exception(const char *format, ...);
- virtual ~Exception() throw() {}
- virtual const char *what() const throw();
+ virtual ~Exception() NL_OVERRIDE {}
+ virtual const char *what() const throw() NL_OVERRIDE;
};
diff --git a/code/nel/include/nel/misc/debug.h b/code/nel/include/nel/misc/debug.h
index d01c85f1c..fa32e6b96 100644
--- a/code/nel/include/nel/misc/debug.h
+++ b/code/nel/include/nel/misc/debug.h
@@ -1,6 +1,9 @@
// NeL - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2015 Jan BOON (Kaetemi)
+//
// 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
@@ -365,13 +368,19 @@ extern bool _assertex_stop_1(bool &ignoreNextTime);
// removed because we always check assert (even in release mode) #if defined(NL_DEBUG)
+#if defined(_MSC_VER) && _MSC_VER >= 1900
+#define nlassume(exp) do { __analysis_assume(exp); } while (0) // __analysis_assume doesn't evaluate the expression at runtime
+#else
+#define nlassume(exp) do { } while (0)
+#endif
+
#ifdef NL_NO_DEBUG
-# define nlassert(exp) if(false)
-# define nlassertonce(exp) if(false)
-# define nlassertex(exp, str) if(false)
-# define nlverify(exp) { exp; }
-# define nlverifyonce(exp) { exp; }
-# define nlverifyex(exp, str) { exp; }
+# define nlassert(exp) nlassume(exp)
+# define nlassertonce(exp) nlassume(exp)
+# define nlassertex(exp, str) nlassume(exp)
+# define nlverify(exp) do { exp; nlassume(exp); } while (0)
+# define nlverifyonce(exp) do { exp; nlassume(exp); } while (0)
+# define nlverifyex(exp, str) do { exp; nlassume(exp); } while (0)
#else // NL_NO_DEBUG
# ifdef NL_OS_UNIX
@@ -380,25 +389,29 @@ extern bool _assertex_stop_1(bool &ignoreNextTime);
#define nlassert(exp) \
do { \
- if (!(exp)) { \
+ bool _expResult_ = (exp) ? true : false; \
+ if (!(_expResult_)) { \
NLMISC::createDebug (); \
NLMISC::INelContext::getInstance().getAssertLog()->setPosition (__LINE__, __FILE__, __FUNCTION__); \
NLMISC::INelContext::getInstance().getAssertLog()->displayNL ("\"%s\" ", #exp); \
NLMISC_BREAKPOINT; \
} \
+ nlassume(_expResult_); \
} while(0)
#define nlassertonce(exp) nlassert(exp)
#define nlassertex(exp, str) \
do { \
- if (!(exp)) { \
+ bool _expResult_ = (exp) ? true : false; \
+ if (!(_expResult_)) { \
NLMISC::createDebug (); \
NLMISC::INelContext::getInstance().getAssertLog()->setPosition (__LINE__, __FILE__, __FUNCTION__); \
NLMISC::INelContext::getInstance().getAssertLog()->displayNL ("\"%s\" ", #exp); \
NLMISC::INelContext::getInstance().getAssertLog()->displayRawNL str; \
NLMISC_BREAKPOINT; \
} \
+ nlassume(_expResult_); \
} while(0)
#define nlverify(exp) nlassert(exp)
@@ -416,16 +429,19 @@ do { \
NLMISC_BREAKPOINT; \
} \
ASSERT_THROW_EXCEPTION_CODE_EX(_expResult_, #exp) \
+ nlassume(_expResult_); \
} while(0)
#define nlassertonce(exp) \
do { \
static bool ignoreNextTime = false; \
- if (!ignoreNextTime && !(exp)) { \
+ bool _expResult_ = (exp) ? true : false; \
+ if (!ignoreNextTime && !(_expResult_)) { \
ignoreNextTime = true; \
if(NLMISC::_assert_stop(ignoreNextTime, __LINE__, __FILE__, __FUNCTION__, #exp)) \
NLMISC_BREAKPOINT; \
} \
+ nlassume(_expResult_); \
} while(0)
#define nlassertex(exp, str) \
@@ -439,6 +455,7 @@ do { \
NLMISC_BREAKPOINT; \
} \
ASSERT_THROW_EXCEPTION_CODE_EX(_expResult_, #exp) \
+ nlassume(_expResult_); \
} while(0)
#define nlverify(exp) \
@@ -450,6 +467,7 @@ do { \
NLMISC_BREAKPOINT; \
} \
ASSERT_THROW_EXCEPTION_CODE_EX(_expResult_, #exp) \
+ nlassume(_expResult_); \
} while(0)
#define nlverifyonce(exp) \
@@ -461,6 +479,7 @@ do { \
if(NLMISC::_assert_stop(ignoreNextTime, __LINE__, __FILE__, __FUNCTION__, #exp)) \
NLMISC_BREAKPOINT; \
} \
+ nlassume(_expResult_); \
} while(0)
#define nlverifyex(exp, str) \
@@ -474,6 +493,7 @@ do { \
NLMISC_BREAKPOINT; \
} \
ASSERT_THROW_EXCEPTION_CODE_EX(_expResult_, #exp) \
+ nlassume(_expResult_); \
} while(0)
# endif // NL_OS_UNIX
@@ -586,7 +606,7 @@ template inline T type_cast(U o)
/** Compile time assertion
*/
#ifdef NL_ISO_CPP0X_AVAILABLE
-# define nlctassert(cond) static_assert(cond, "Compile time assert in "#cond)
+# define nlctassert(cond) static_assert((cond), "Compile time assert in "#cond)
#else
# define nlctassert(cond) (void)sizeof(uint[(cond) ? 1 : 0])
#endif
diff --git a/code/nel/include/nel/misc/dummy_window.h b/code/nel/include/nel/misc/dummy_window.h
index 0993aebaa..a3b6876b6 100644
--- a/code/nel/include/nel/misc/dummy_window.h
+++ b/code/nel/include/nel/misc/dummy_window.h
@@ -1,6 +1,9 @@
// NeL - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2015 Jan BOON (Kaetemi)
+//
// 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
diff --git a/code/nel/include/nel/misc/entity_id.h b/code/nel/include/nel/misc/entity_id.h
index 8999b170a..61bbe1ef4 100644
--- a/code/nel/include/nel/misc/entity_id.h
+++ b/code/nel/include/nel/misc/entity_id.h
@@ -1,6 +1,10 @@
// NeL - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2012 Robert TIMM (rti)
+// Copyright (C) 2015-2016 Jan BOON (Kaetemi)
+//
// 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
diff --git a/code/nel/include/nel/misc/event_emitter.h b/code/nel/include/nel/misc/event_emitter.h
index eab005b82..74c0a24f5 100644
--- a/code/nel/include/nel/misc/event_emitter.h
+++ b/code/nel/include/nel/misc/event_emitter.h
@@ -1,6 +1,9 @@
// NeL - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2010 Robert TIMM (rti)
+//
// 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
diff --git a/code/nel/include/nel/misc/factory.h b/code/nel/include/nel/misc/factory.h
index 82e2fa113..b1c22a668 100644
--- a/code/nel/include/nel/misc/factory.h
+++ b/code/nel/include/nel/misc/factory.h
@@ -1,5 +1,5 @@
// NeL - MMORPG Framework
-// Copyright (C) 2010 Winch Gate Property Limited
+// 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
diff --git a/code/nel/include/nel/misc/fast_floor.h b/code/nel/include/nel/misc/fast_floor.h
index 6cb8e209c..ec6ec6f94 100644
--- a/code/nel/include/nel/misc/fast_floor.h
+++ b/code/nel/include/nel/misc/fast_floor.h
@@ -1,6 +1,9 @@
// NeL - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Jan BOON (Kaetemi)
+//
// 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
diff --git a/code/nel/include/nel/misc/fast_id_map.h b/code/nel/include/nel/misc/fast_id_map.h
index c4b043278..095059cda 100644
--- a/code/nel/include/nel/misc/fast_id_map.h
+++ b/code/nel/include/nel/misc/fast_id_map.h
@@ -6,24 +6,21 @@
* CFastIdMap
*/
-/*
- * Copyright (C) 2012 by authors
- *
- * This file is part of RYZOM CORE.
- * RYZOM CORE is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * RYZOM CORE is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public
- * License along with RYZOM CORE. If not, see
- * .
- */
+// NeL - MMORPG Framework
+// Copyright (C) 2012 Jan BOON (Kaetemi)
+//
+// 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 .
#ifndef NLMISC_FAST_ID_MAP_H
#define NLMISC_FAST_ID_MAP_H
diff --git a/code/nel/include/nel/misc/file.h b/code/nel/include/nel/misc/file.h
index 3e40d122a..f634f4378 100644
--- a/code/nel/include/nel/misc/file.h
+++ b/code/nel/include/nel/misc/file.h
@@ -38,7 +38,7 @@ struct EFile : public EStream
EFile (const std::string& filename) : EStream( "Unknown file error in '"+filename+"'" ), Filename(filename) {}
EFile (const std::string& filename, const std::string& text, bool ) : EStream( text ), Filename(filename) {}
- virtual ~EFile() throw() {}
+ virtual ~EFile() NL_OVERRIDE {}
std::string Filename;
};
diff --git a/code/nel/include/nel/misc/fixed_size_allocator.h b/code/nel/include/nel/misc/fixed_size_allocator.h
index 643217f5d..e00809344 100644
--- a/code/nel/include/nel/misc/fixed_size_allocator.h
+++ b/code/nel/include/nel/misc/fixed_size_allocator.h
@@ -1,6 +1,9 @@
// NeL - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2014 Jan BOON (Kaetemi)
+//
// 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
diff --git a/code/nel/include/nel/misc/gtk_displayer.h b/code/nel/include/nel/misc/gtk_displayer.h
index e2d35c83c..9a950c6f0 100644
--- a/code/nel/include/nel/misc/gtk_displayer.h
+++ b/code/nel/include/nel/misc/gtk_displayer.h
@@ -1,6 +1,9 @@
// NeL - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2015 Jan BOON (Kaetemi)
+//
// 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
diff --git a/code/nel/include/nel/misc/hierarchical_timer.h b/code/nel/include/nel/misc/hierarchical_timer.h
index 1c1818c69..33ddd55b0 100644
--- a/code/nel/include/nel/misc/hierarchical_timer.h
+++ b/code/nel/include/nel/misc/hierarchical_timer.h
@@ -1,6 +1,9 @@
// NeL - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2014 Jan BOON (Kaetemi)
+//
// 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
diff --git a/code/nel/include/nel/misc/i18n.h b/code/nel/include/nel/misc/i18n.h
index d50313357..e8b00385b 100644
--- a/code/nel/include/nel/misc/i18n.h
+++ b/code/nel/include/nel/misc/i18n.h
@@ -1,6 +1,9 @@
// NeL - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2012 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/misc/i_streamed_package_provider.h b/code/nel/include/nel/misc/i_streamed_package_provider.h
new file mode 100644
index 000000000..e2af4e9a3
--- /dev/null
+++ b/code/nel/include/nel/misc/i_streamed_package_provider.h
@@ -0,0 +1,44 @@
+// NeL - MMORPG Framework
+// Copyright (C) 2019 Jan BOON (Kaetemi)
+//
+// 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 .
+
+#ifndef NLMISC_STREAMED_PACKAGE_PROVIDER_H
+#define NLMISC_STREAMED_PACKAGE_PROVIDER_H
+
+#include
+#include
+#include
+
+namespace NLMISC {
+
+class IStreamedPackageProvider
+{
+public:
+ IStreamedPackageProvider();
+ virtual ~IStreamedPackageProvider();
+
+ /// Download a file. This call is blocking
+ /// filePath: [out] ex. /games/nel/stream/00/00/000000000..
+ /// hash: [in]
+ /// name: [in] name for debugging purposes
+ virtual bool getFile(std::string &filePath, const CHashKey &hash, const std::string &name = "") = 0;
+
+}; /* class IStreamedPackageProvider */
+
+} /* namespace NLMISC */
+
+#endif /* #ifndef NLMISC_STREAMED_PACKAGE_PROVIDER_H */
+
+/* end of file */
diff --git a/code/nel/include/nel/misc/inter_window_msg_queue.h b/code/nel/include/nel/misc/inter_window_msg_queue.h
index 501105f61..bacd8d8e5 100644
--- a/code/nel/include/nel/misc/inter_window_msg_queue.h
+++ b/code/nel/include/nel/misc/inter_window_msg_queue.h
@@ -1,6 +1,9 @@
// NeL - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2014-2015 Jan BOON (Kaetemi)
+//
// 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
diff --git a/code/nel/include/nel/misc/matrix.h b/code/nel/include/nel/misc/matrix.h
index 649d53324..83c65d36a 100644
--- a/code/nel/include/nel/misc/matrix.h
+++ b/code/nel/include/nel/misc/matrix.h
@@ -1,6 +1,9 @@
// NeL - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2014 Jan BOON (Kaetemi)
+//
// 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
diff --git a/code/nel/include/nel/misc/mem_stream.h b/code/nel/include/nel/misc/mem_stream.h
index 4222e1672..ec1ea440d 100644
--- a/code/nel/include/nel/misc/mem_stream.h
+++ b/code/nel/include/nel/misc/mem_stream.h
@@ -1,6 +1,9 @@
// NeL - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2016 Jan BOON (Kaetemi)
+//
// 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
diff --git a/code/nel/include/nel/misc/mutex.h b/code/nel/include/nel/misc/mutex.h
index ec9c89ceb..a37ec3dbf 100644
--- a/code/nel/include/nel/misc/mutex.h
+++ b/code/nel/include/nel/misc/mutex.h
@@ -1,6 +1,10 @@
// NeL - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2010 Jan BOON (Kaetemi)
+// Copyright (C) 2011 Robert TIMM (rti)
+//
// 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
diff --git a/code/nel/include/nel/misc/object_vector.h b/code/nel/include/nel/misc/object_vector.h
index ea9be81e2..609071d1f 100644
--- a/code/nel/include/nel/misc/object_vector.h
+++ b/code/nel/include/nel/misc/object_vector.h
@@ -1,6 +1,9 @@
// NeL - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2014 Jan BOON (Kaetemi)
+//
// 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
diff --git a/code/nel/include/nel/misc/p_thread.h b/code/nel/include/nel/misc/p_thread.h
index 01f476d7b..60de158b2 100644
--- a/code/nel/include/nel/misc/p_thread.h
+++ b/code/nel/include/nel/misc/p_thread.h
@@ -1,6 +1,9 @@
// NeL - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2012 Jan BOON (Kaetemi)
+//
// 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
diff --git a/code/nel/include/nel/misc/path.h b/code/nel/include/nel/misc/path.h
index f42acc91b..74e24d715 100644
--- a/code/nel/include/nel/misc/path.h
+++ b/code/nel/include/nel/misc/path.h
@@ -1,6 +1,10 @@
// NeL - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2014-2015 Laszlo KIS-ADAM (dfighter)
+// Copyright (C) 2014-2019 Jan BOON (Kaetemi)
+//
// 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
@@ -74,6 +78,9 @@ public:
/** Same as AddSearchPath but with a big file "c:/test.nbf" all files name contained in the big file will be included (the extention (Nel Big File) is used to know that it's a big file) */
void addSearchBigFile (const std::string &filename, bool recurse, bool alternative, class NLMISC::IProgressCallback *progressCallBack = NULL);
+
+ /** Sale but for .snp (Streamed NeL Package) */
+ void addSearchStreamedPackage (const std::string &filename, bool recurse, bool alternative, class NLMISC::IProgressCallback *progressCallBack = NULL);
/** Same as AddSearchPath but with a xml pack file "c:/test.xml_pack" all files name contained in the xml pack will be included */
void addSearchXmlpackFile (const std::string &sXmlpackFilename, bool recurse, bool alternative, class NLMISC::IProgressCallback *progressCallBack = NULL);
@@ -371,6 +378,9 @@ public:
/** Same as AddSearchPath but with a big file "c:/test.nbf" all files name contained in the big file will be included (the extention (Nel Big File) is used to know that it's a big file) */
static void addSearchBigFile (const std::string &filename, bool recurse, bool alternative, class NLMISC::IProgressCallback *progressCallBack = NULL);
+ /** Same but Streamed Package */
+ static void addSearchStreamedPackage (const std::string &filename, bool recurse, bool alternative, class NLMISC::IProgressCallback *progressCallBack = NULL);
+
/** Same as AddSearchPath but with a xml pack file "c:/test.xml_pack" all files name contained in the xml pack will be included */
static void addSearchXmlpackFile (const std::string &sXmlpackFilename, bool recurse, bool alternative, class NLMISC::IProgressCallback *progressCallBack = NULL);
diff --git a/code/nel/include/nel/misc/report.h b/code/nel/include/nel/misc/report.h
index 55a1c2dbf..18a1077a2 100644
--- a/code/nel/include/nel/misc/report.h
+++ b/code/nel/include/nel/misc/report.h
@@ -1,6 +1,10 @@
// NeL - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2015 Jan BOON (Kaetemi)
+// Copyright (C) 2015 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/nel/include/nel/misc/rgba.h b/code/nel/include/nel/misc/rgba.h
index 81204aca9..9f6ea6607 100644
--- a/code/nel/include/nel/misc/rgba.h
+++ b/code/nel/include/nel/misc/rgba.h
@@ -1,6 +1,9 @@
// NeL - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2013 Laszlo KIS-ADAM (dfighter)
+//
// 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
diff --git a/code/ryzom/client/src/seven_zip/seven_zip.h b/code/nel/include/nel/misc/seven_zip.h
similarity index 78%
rename from code/ryzom/client/src/seven_zip/seven_zip.h
rename to code/nel/include/nel/misc/seven_zip.h
index e471a9ac0..6eeec1738 100644
--- a/code/ryzom/client/src/seven_zip/seven_zip.h
+++ b/code/nel/include/nel/misc/seven_zip.h
@@ -1,6 +1,9 @@
// Ryzom - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2019 Jan BOON (Kaetemi)
+//
// 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
@@ -18,6 +21,9 @@
#define SEVEN_ZIP_H
#include
+#include
+
+namespace NLMISC {
// utility func to decompress a monofile 7zip archive
bool unpack7Zip(const std::string &sevenZipFileName, const std::string &destFileName);
@@ -25,7 +31,12 @@ bool unpack7Zip(const std::string &sevenZipFileName, const std::string &destFile
// utility func to decompress a single LZMA packed file
bool unpackLZMA(const std::string &lzmaFileName, const std::string &destFileName);
+// utility func to decompress a single LZMA packed file
+bool unpackLZMA(const std::string &lzmaFileName, const std::string &destFileName, CHashKey &sha1);
+
// utility func to compress a single file to LZMA packed file
bool packLZMA(const std::string &srcFileName, const std::string &lzmaFileName);
+}
+
#endif
diff --git a/code/nel/include/nel/misc/sha1.h b/code/nel/include/nel/misc/sha1.h
index ae42c3c1e..87edba44c 100644
--- a/code/nel/include/nel/misc/sha1.h
+++ b/code/nel/include/nel/misc/sha1.h
@@ -1,6 +1,9 @@
// NeL - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2019 Jan BOON (Kaetemi)
+//
// 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
@@ -23,6 +26,8 @@
#include
+namespace NLMISC {
+
struct CHashKey
{
CHashKey () { HashKeyString.resize(20); }
@@ -109,4 +114,6 @@ CHashKey getSHA1(const uint8 *buffer, uint32 size);
// This function get a buffer and key with size and returns his HMAC-SHA1 hash key
CHashKey getHMacSHA1(const uint8 *text, uint32 text_len, const uint8 *key, uint32 key_len);
+}
+
#endif // NL_SHA1_H
diff --git a/code/nel/include/nel/misc/sheet_id.h b/code/nel/include/nel/misc/sheet_id.h
index 8db0470af..856dbf330 100644
--- a/code/nel/include/nel/misc/sheet_id.h
+++ b/code/nel/include/nel/misc/sheet_id.h
@@ -1,6 +1,9 @@
// NeL - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2012 Jan BOON (Kaetemi)
+//
// 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
@@ -55,19 +58,43 @@ public :
*/
explicit CSheetId( uint32 sheetRef = 0 );
+ /**
+ * Constructor
+ */
+ explicit CSheetId( int sheetRef );
+
/**
* Constructor
*/
explicit CSheetId( const std::string& sheetName );
+ /**
+ * Operator=
+ */
+ explicit CSheetId( const char *sheetName );
+
/**
* Constructor, uses defaultType as extension when sheetName
* contains no file extension.
*/
explicit CSheetId( const std::string& sheetName, const std::string &defaultType );
+ /**
+ * Constructor, uses defaultType as extension when sheetName
+ * contains no file extension.
+ */
+ explicit CSheetId( const std::string& sheetName, const char *defaultType );
+
+ /**
+ * Constructor, uses defaultType as extension when sheetName
+ * contains no file extension.
+ */
+ explicit CSheetId( const char *sheetName, const char *defaultType );
+
// build from a string and returns true if the build succeed
- bool buildSheetId(const std::string& sheetName);
+ bool buildSheetId(const char *sheetName, size_t sheetNameLen);
+ inline bool buildSheetId(const char *sheetName) { return buildSheetId(sheetName, strlen(sheetName)); }
+ inline bool buildSheetId(const std::string &sheetName) { return buildSheetId(sheetName.c_str(), sheetName.size()); }
// build from a SubSheetId and a type
void buildSheetId(uint32 shortId, uint32 type);
@@ -90,17 +117,22 @@ public :
/**
* Return the **whole** sheet id (id+type)
*/
- uint32 asInt() const { return _Id.Id; }
+ inline uint32 asInt() const { return _Id.Id; }
/**
* Return the sheet type (sub part of the sheetid)
*/
- uint32 getSheetType() const { return _Id.IdInfos.Type; }
+ inline uint32 getSheetType() const { return _Id.IdInfos.Type; }
/**
* Return the sheet sub id (sub part of the sheetid)
*/
- uint32 getShortId() const { return _Id.IdInfos.Id; }
+ inline uint32 getShortId() const { return _Id.IdInfos.Id; }
+
+ /**
+ * Operator bool
+ */
+ inline operator bool() const { return _Id.Id; }
/**
* Operator=
@@ -112,11 +144,21 @@ public :
*/
CSheetId& operator=( const std::string& sheetName );
+ /**
+ * Operator=
+ */
+ CSheetId& operator=( const char *sheetName );
+
/**
* Operator=
*/
CSheetId& operator=( uint32 sheetRef );
+ /**
+ * Operator=
+ */
+ CSheetId& operator=( int sheetRef );
+
/**
* Operator<
*/
@@ -215,9 +257,12 @@ private :
}
};
+ typedef CStaticMap TSheetIdToNameMap;
+ typedef CStaticMap TSheetNameToIdMap;
+
static CChar _AllStrings;
- static CStaticMap _SheetIdToName;
- static CStaticMap _SheetNameToId;
+ static TSheetIdToNameMap _SheetIdToName;
+ static TSheetNameToIdMap _SheetNameToId;
static std::vector _FileExtensions;
static bool _Initialised;
diff --git a/code/nel/include/nel/misc/smart_ptr.h b/code/nel/include/nel/misc/smart_ptr.h
index b0fc1c301..292120079 100644
--- a/code/nel/include/nel/misc/smart_ptr.h
+++ b/code/nel/include/nel/misc/smart_ptr.h
@@ -1,6 +1,9 @@
// NeL - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2016 Jan BOON (Kaetemi)
+//
// 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
diff --git a/code/nel/include/nel/misc/sstring.h b/code/nel/include/nel/misc/sstring.h
index a8b231012..636b70e92 100644
--- a/code/nel/include/nel/misc/sstring.h
+++ b/code/nel/include/nel/misc/sstring.h
@@ -1,6 +1,9 @@
// NeL - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2015 Jan BOON (Kaetemi)
+//
// 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
diff --git a/code/nel/include/nel/misc/stream.h b/code/nel/include/nel/misc/stream.h
index da9f2835e..89db78a1c 100644
--- a/code/nel/include/nel/misc/stream.h
+++ b/code/nel/include/nel/misc/stream.h
@@ -78,7 +78,7 @@ struct EStream : public Exception
EStream( const IStream &f, const std::string& str );
- virtual ~EStream() throw() {}
+ virtual ~EStream() NL_OVERRIDE {}
// May Not be Filled...
std::string StreamName;
diff --git a/code/nel/include/nel/misc/streamed_package.h b/code/nel/include/nel/misc/streamed_package.h
new file mode 100644
index 000000000..82a138482
--- /dev/null
+++ b/code/nel/include/nel/misc/streamed_package.h
@@ -0,0 +1,59 @@
+// NeL - MMORPG Framework
+// Copyright (C) 2014-2019 Jan BOON (Kaetemi)
+//
+// 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 .
+
+#ifndef NLMISC_STREAMED_PACKAGE_H
+#define NLMISC_STREAMED_PACKAGE_H
+
+#include
+#include
+
+namespace NLMISC {
+
+class CStreamedPackage
+{
+public:
+ struct CEntry
+ {
+ std::string Name;
+ CHashKey Hash;
+ uint32 Size;
+ uint32 LastModified;
+
+ void serial(NLMISC::IStream &f) throw(NLMISC::EStream);
+
+ };
+
+public:
+ CStreamedPackage();
+ ~CStreamedPackage();
+
+ void serial(NLMISC::IStream &f) throw(NLMISC::EStream);
+
+ /// result: [out] ex. /00/00/000000000..
+ /// hash: [in]
+ static void makePath(std::string &result, const CHashKey &hash);
+
+public:
+ typedef std::vector TEntries;
+ TEntries Entries;
+
+}; /* class CStreamedPackage */
+
+} /* namespace NLMISC */
+
+#endif /* #ifndef NLMISC_STREAMED_PACKAGE_H */
+
+/* end of file */
diff --git a/code/nel/include/nel/misc/streamed_package_manager.h b/code/nel/include/nel/misc/streamed_package_manager.h
new file mode 100644
index 000000000..7dca60d52
--- /dev/null
+++ b/code/nel/include/nel/misc/streamed_package_manager.h
@@ -0,0 +1,71 @@
+// NeL - MMORPG Framework
+// Copyright (C) 2014-2019 Jan BOON (Kaetemi)
+//
+// 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 .
+
+#ifndef NLMISC_STREAMED_PACKAGE_MANAGER_H
+#define NLMISC_STREAMED_PACKAGE_MANAGER_H
+
+#include
+#include
+#include
+#include
+
+namespace NLMISC {
+
+class CStreamedPackageManager
+{
+ NLMISC_SAFE_RELEASABLE_SINGLETON_DECL(CStreamedPackageManager);
+
+public:
+ CStreamedPackageManager();
+ ~CStreamedPackageManager();
+
+ /// package: ex. /games/nel/data/characters_maps_hr.snp
+ bool loadPackage(const std::string &package);
+
+ /// Get a file list
+ void list(std::vector &fileNames, const std::string &package);
+
+ /// Unload all packages
+ void unloadAll();
+
+ /// Get an existing file or download if necessary. This call is blocking
+ /// filePath: [out] ex. /games/nel/stream/00/00/000000000..
+ /// fileName: [in] ex. fy_hof_underwear.dds
+ bool getFile(std::string &filePath, const std::string &fileName);
+
+ /// Get file size
+ /// fileSize: [out]
+ /// fileName: [in] ex. fy_hof_underwear.dds
+ bool getFileSize(uint32 &fileSize, const std::string &fileName);
+
+public:
+ /// Streamed package provider. This downloads the files
+ IStreamedPackageProvider *Provider;
+
+private:
+ typedef std::map TPackages;
+ TPackages m_Packages;
+
+ typedef std::map TEntries;
+ TEntries m_Entries;
+
+}; /* class CStreamedPackageManager */
+
+} /* namespace NLMISC */
+
+#endif /* #ifndef NLMISC_STREAMED_PACKAGE_MANAGER_H */
+
+/* end of file */
diff --git a/code/nel/include/nel/misc/string_common.h b/code/nel/include/nel/misc/string_common.h
index bb972a4eb..3fd46b835 100644
--- a/code/nel/include/nel/misc/string_common.h
+++ b/code/nel/include/nel/misc/string_common.h
@@ -1,6 +1,10 @@
// NeL - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2012 Laszlo KIS-ADAM (dfighter)
+// Copyright (C) 2016-2019 Jan BOON (Kaetemi)
+//
// 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
@@ -257,6 +261,35 @@ inline bool fromString(const std::string &str, uint &val) { return sscanf(str.c_
inline bool fromString(const std::string &str, sint &val) { return sscanf(str.c_str(), "%d", &val) == 1; }
#endif // NL_COMP_VC6
+inline bool startsWith(const char *str, const char *prefix)
+{
+ for (int i = 0;; ++i)
+ {
+ if (str[i] != prefix[i] || str[i] == '\0')
+ {
+ return prefix[i] == '\0';
+ }
+ }
+}
+
+inline bool startsWith(const std::string &str, const char *prefix) { return startsWith(str.c_str(), prefix); }
+inline bool startsWith(const std::string &str, const std::string &prefix) { return startsWith(str.c_str(), prefix.c_str()); }
+
+inline bool endsWith(const char *str, size_t strLen, const char *suffix, size_t suffixLen)
+{
+ if (strLen < suffixLen)
+ return false;
+ int minLen = strLen < suffixLen ? strLen : suffixLen;
+ for (int i = 1; i <= minLen; ++i)
+ if (str[strLen - i] != suffix[suffixLen - i])
+ return false;
+ return true;
+}
+
+inline bool endsWith(const char *str, const char *suffix) { return endsWith(str, strlen(str), suffix, strlen(suffix)); }
+inline bool endsWith(const std::string &str, const char *suffix) { return endsWith(str.c_str(), str.size(), suffix, strlen(suffix)); }
+inline bool endsWith(const std::string &str, const std::string &suffix) { return endsWith(str.c_str(), str.size(), suffix.c_str(), suffix.size()); }
+
// Convert local codepage to UTF-8
// On Windows, the local codepage is undetermined
// On Linux, the local codepage is always UTF-8 (no-op)
diff --git a/code/nel/include/nel/misc/string_mapper.h b/code/nel/include/nel/misc/string_mapper.h
index aeaccf959..c2229e746 100644
--- a/code/nel/include/nel/misc/string_mapper.h
+++ b/code/nel/include/nel/misc/string_mapper.h
@@ -1,6 +1,9 @@
// NeL - MMORPG Framework
// Copyright (C) 2010 Winch Gate Property Limited
//
+// This source file has been modified by the following contributors:
+// Copyright (C) 2019 Jan BOON (Kaetemi)
+//
// 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
@@ -65,7 +68,23 @@ class CStringMapper
class CCharComp
{
public:
- bool operator()(std::string *x, std::string *y) const
+#ifdef NL_CPP14
+ // https://www.fluentcpp.com/2017/06/09/search-set-another-type-key/
+
+ using is_transparent = void;
+
+ bool operator()(const std::string *x, const char *y) const
+ {
+ return strcmp(x->c_str(), y) < 0;
+ }
+
+ bool operator()(const char *x, const std::string *y) const
+ {
+ return strcmp(x, y->c_str()) < 0;
+ }
+#endif
+
+ bool operator()(const std::string *x, const std::string *y) const
{
return (*x) < (*y);
}
@@ -73,53 +92,70 @@ class CStringMapper
class CAutoFastMutex
{
- CFastMutex *_Mutex;
+ CFastMutex *m_Mutex;
+
public:
- CAutoFastMutex(CFastMutex *mtx) : _Mutex(mtx) {_Mutex->enter();}
- ~CAutoFastMutex() {_Mutex->leave();}
+ CAutoFastMutex(CFastMutex *mtx)
+ : m_Mutex(mtx)
+ {
+ m_Mutex->enter();
+ }
+ ~CAutoFastMutex() { m_Mutex->leave(); }
};
// Local Data
- std::set _StringTable;
- std::string* _EmptyId;
- CFastMutex _Mutex; // Must be thread-safe (Called by CPortal/CCluster, each of them called by CInstanceGroup)
+ typedef std::set TStringTable;
+ TStringTable m_StringTable;
+ std::string *m_EmptyId;
+ CFastMutex m_Mutex; // Must be thread-safe (Called by CPortal/CCluster, each of them called by CInstanceGroup)
// The 'singleton' for static methods
- static CStringMapper _GlobalMapper;
+ static CStringMapper s_GlobalMapper;
// private constructor.
CStringMapper();
public:
-
~CStringMapper()
{
localClear();
+ delete m_EmptyId;
}
/// Globaly map a string into a unique Id. ** This method IS Thread-Safe **
- static TStringId map(const std::string &str) { return _GlobalMapper.localMap(str); }
+ static TStringId map(const std::string &str) { return s_GlobalMapper.localMap(str); }
+ /// Globaly map a string into a unique Id. ** This method IS Thread-Safe **
+ static TStringId map(const char *str) { return s_GlobalMapper.localMap(str); }
/// Globaly unmap a string. ** This method IS Thread-Safe **
- static const std::string &unmap(const TStringId &stringId) { return _GlobalMapper.localUnmap(stringId); }
+ static const std::string &unmap(const TStringId &stringId) { return s_GlobalMapper.localUnmap(stringId); }
/// Globaly helper to serial a string id. ** This method IS Thread-Safe **
- static void serialString(NLMISC::IStream &f, TStringId &id) {_GlobalMapper.localSerialString(f, id);}
+ static void serialString(NLMISC::IStream &f, TStringId &id) { s_GlobalMapper.localSerialString(f, id); }
/// Return the global id for the empty string (helper function). NB: Works with every instance of CStringMapper
- static TStringId emptyId() { return 0; }
+ static TStringId emptyId() { return NULL; }
// ** This method IS Thread-Safe **
- static void clear() { _GlobalMapper.localClear(); }
+ static void clear() { s_GlobalMapper.localClear(); }
/// Create a local mapper. You can dispose of it by deleting it.
- static CStringMapper * createLocalMapper();
+ static CStringMapper *createLocalMapper();
/// Localy map a string into a unique Id
- TStringId localMap(const std::string &str);
+ TStringId localMap(const std::string &str);
+#ifdef NL_CPP14
+ /**
+ \brief Localy map a string into a unique Id.
+ Lookup in string mapper using `const char *`
+ to avoid an std::string allocation when using literals.
+ \author Jan BOON (Kaetemi)
+ \date 2019
+ */
+ TStringId localMap(const char *str);
+#endif
/// Localy unmap a string
- const std::string &localUnmap(const TStringId &stringId) { return (stringId==0)?*_EmptyId:*((std::string*)stringId); }
+ const std::string &localUnmap(const TStringId &stringId) const { return (stringId == NULL) ? *m_EmptyId : *((const std::string *)stringId); }
/// Localy helper to serial a string id
- void localSerialString(NLMISC::IStream &f, TStringId &id);
-
- void localClear();
+ void localSerialString(NLMISC::IStream &f, TStringId &id);
+ void localClear();
};
// linear from 0 (0 is empty string) (The TSStringId returned by CStaticStringMapper
diff --git a/code/nel/include/nel/misc/system_utils.h b/code/nel/include/nel/misc/system_utils.h
index c51a5ab99..426e38b73 100644
--- a/code/nel/include/nel/misc/system_utils.h
+++ b/code/nel/include/nel/misc/system_utils.h
@@ -1,6 +1,9 @@
// NeL - MMORPG Framework