pax_global_header00006660000000000000000000000064145764063670014534gustar00rootroot0000000000000052 comment=b7a0dfaa26ce77affaf1275905a9049b0217387e skladnik-0.5.1/000077500000000000000000000000001457640636700133375ustar00rootroot00000000000000skladnik-0.5.1/.git-blame-ignore-revs000066400000000000000000000000511457640636700174330ustar00rootroot000000000000001bc43093bd2159e926278d322ae17b4d73d9eca9 skladnik-0.5.1/.gitignore000066400000000000000000000004611457640636700153300ustar00rootroot00000000000000# Ignore the following files *~ *.[oa] *.diff *.kate-swp *.kdev4 .kdev_include_paths *.kdevelop.pcs *.moc *.moc.cpp *.orig *.user .*.swp .swp.* Doxyfile Makefile avail random_seed /build*/ CMakeLists.txt.user* *.unc-backup* .cmake/ /.clang-format /compile_commands.json .clangd .cache .idea /cmake-build* skladnik-0.5.1/.gitlab-ci.yml000066400000000000000000000004251457640636700157740ustar00rootroot00000000000000# SPDX-FileCopyrightText: None # SPDX-License-Identifier: CC0-1.0 include: - project: sysadmin/ci-utilities file: - /gitlab-templates/linux.yml - /gitlab-templates/linux-qt6.yml - /gitlab-templates/freebsd.yml - /gitlab-templates/freebsd-qt6.yml skladnik-0.5.1/.kde-ci.yml000066400000000000000000000017401457640636700152760ustar00rootroot00000000000000# SPDX-FileCopyrightText: None # SPDX-License-Identifier: CC0-1.0 Dependencies: - 'on': ['Linux/Qt5', 'FreeBSD/Qt5'] 'require': 'frameworks/extra-cmake-modules': '@stable' 'frameworks/kconfig': '@stable' 'frameworks/kconfigwidgets': '@stable' 'frameworks/kcoreaddons': '@stable' 'frameworks/kdoctools': '@stable' 'frameworks/ki18n': '@stable' 'frameworks/kio': '@stable' 'frameworks/kwidgetsaddons': '@stable' 'frameworks/kxmlgui': '@stable' 'games/libkdegames': '@stable' - 'on': ['Linux/Qt6', 'FreeBSD/Qt6'] 'require': 'frameworks/extra-cmake-modules': '@latest-kf6' 'frameworks/kconfig': '@latest-kf6' 'frameworks/kconfigwidgets': '@latest-kf6' 'frameworks/kcoreaddons': '@latest-kf6' 'frameworks/kdoctools': '@latest-kf6' 'frameworks/ki18n': '@latest-kf6' 'frameworks/kio': '@latest-kf6' 'frameworks/kwidgetsaddons': '@latest-kf6' 'frameworks/kxmlgui': '@latest-kf6' 'games/libkdegames': '@latest-kf6' skladnik-0.5.1/AUTHORS000066400000000000000000000030111457640636700144020ustar00rootroot00000000000000------------------------------------------------------------------------ ksokoban original game was written by: Anders Widell Porting to KDE4/Qt4 was made by Łukasz Kalamłacki ------------------------------------------------------------------------ The levels were taken from: xsokoban 3.3c for X-windows www: http://xsokoban.lcs.mit.edu/xsokoban.html author: Andrew Myers MacSokoban 3.0.3 for Macintosh www: http://www.lysator.liu.se/~ingemar/games.html author: Ingemar Ragnemalm Sokoban 2.4 for Macintosh www: http://members.aol.com/SokobanMac/ author: Scott Lindhurst ------------------------------------------------------------------------ The levels originally come from: Original the 50 original sokoban levels made by Thinking rabbit Inc. in Japan Extra some more levels from xsokoban Still more by J. Franklin Mentzer MacTommy inventions by a guy called Tommy in Pennsylvania Yoshio's autogenerated by Yoshio Murase see http://www.ne.jp/asahi/ai/yoshio/sokoban/index.html For the kids by Ross (W.R.) Brown Simple Sokoban simplified original levels by Phil Shapiro Dimitri & Yorick by Jacques Duthen ------------------------------------------------------------------------ skladnik-0.5.1/CMakeLists.txt000066400000000000000000000031411457640636700160760ustar00rootroot00000000000000cmake_minimum_required (VERSION 3.16 FATAL_ERROR) project(skladnik VERSION "0.5.1") set(QT_MIN_VERSION "5.15.2") set(KF_MIN_VERSION "5.91.0") find_package(ECM ${KF_MIN_VERSION} REQUIRED NO_MODULE) set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake" ${ECM_MODULE_PATH} ) include(KDEInstallDirs) include(KDECMakeSettings) include(KDECompilerSettings NO_POLICY_SCOPE) include(ECMDeprecationSettings) include(ECMInstallIcons) include(ECMSetupVersion) include(FeatureSummary) if (QT_MAJOR_VERSION STREQUAL "6") set(QT_MIN_VERSION "6.5.0") set(KF_MIN_VERSION "5.240.0") set(KF_MAJOR_VERSION "6") else() set(KF_MAJOR_VERSION "5") endif() find_package(Qt${QT_MAJOR_VERSION} ${QT_MIN_VERSION} REQUIRED Core Gui Widgets) find_package(KF${KF_MAJOR_VERSION} ${KF_MIN_VERSION} REQUIRED COMPONENTS Config ConfigWidgets CoreAddons I18n KIO WidgetsAddons XmlGui ) find_package(KF${KF_MAJOR_VERSION}DocTools ${KF_MIN_VERSION}) if (QT_MAJOR_VERSION STREQUAL "6") find_package(KDEGames6 6.0.0 REQUIRED) else() find_package(KF5KDEGames 7.3.0 REQUIRED) endif() if (QT_MAJOR_VERSION STREQUAL "6") ecm_set_disabled_deprecation_versions( QT 6.5 KF 5.239 KDEGAMES 6.0 ) else() ecm_set_disabled_deprecation_versions( QT 5.15.2 KF 5.91 KDEGAMES 7.3 ) endif() add_subdirectory(src) add_subdirectory(icons) add_subdirectory(themes) if(KF${KF_MAJOR_VERSION}DocTools_FOUND) add_subdirectory(doc) kdoctools_install(po) endif() ki18n_install(po) feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES) skladnik-0.5.1/LICENSES/000077500000000000000000000000001457640636700145445ustar00rootroot00000000000000skladnik-0.5.1/LICENSES/BSD-3-Clause.txt000066400000000000000000000027101457640636700172670ustar00rootroot00000000000000Copyright (c) . All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. skladnik-0.5.1/LICENSES/CC0-1.0.txt000066400000000000000000000156101457640636700161510ustar00rootroot00000000000000Creative Commons Legal Code CC0 1.0 Universal CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER. Statement of Purpose The laws of most jurisdictions throughout the world automatically confer exclusive Copyright and Related Rights (defined below) upon the creator and subsequent owner(s) (each and all, an "owner") of an original work of authorship and/or a database (each, a "Work"). Certain owners wish to permanently relinquish those rights to a Work for the purpose of contributing to a commons of creative, cultural and scientific works ("Commons") that the public can reliably and without fear of later claims of infringement build upon, modify, incorporate in other works, reuse and redistribute as freely as possible in any form whatsoever and for any purposes, including without limitation commercial purposes. These owners may contribute to the Commons to promote the ideal of a free culture and the further production of creative, cultural and scientific works, or to gain reputation or greater distribution for their Work in part through the use and efforts of others. For these and/or other purposes and motivations, and without any expectation of additional consideration or compensation, the person associating CC0 with a Work (the "Affirmer"), to the extent that he or she is an owner of Copyright and Related Rights in the Work, voluntarily elects to apply CC0 to the Work and publicly distribute the Work under its terms, with knowledge of his or her Copyright and Related Rights in the Work and the meaning and intended legal effect of CC0 on those rights. 1. Copyright and Related Rights. A Work made available under CC0 may be protected by copyright and related or neighboring rights ("Copyright and Related Rights"). Copyright and Related Rights include, but are not limited to, the following: i. the right to reproduce, adapt, distribute, perform, display, communicate, and translate a Work; ii. moral rights retained by the original author(s) and/or performer(s); iii. publicity and privacy rights pertaining to a person's image or likeness depicted in a Work; iv. rights protecting against unfair competition in regards to a Work, subject to the limitations in paragraph 4(a), below; v. rights protecting the extraction, dissemination, use and reuse of data in a Work; vi. database rights (such as those arising under Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, and under any national implementation thereof, including any amended or successor version of such directive); and vii. other similar, equivalent or corresponding rights throughout the world based on applicable law or treaty, and any national implementations thereof. 2. Waiver. To the greatest extent permitted by, but not in contravention of, applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and unconditionally waives, abandons, and surrenders all of Affirmer's Copyright and Related Rights and associated claims and causes of action, whether now known or unknown (including existing as well as future claims and causes of action), in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each member of the public at large and to the detriment of Affirmer's heirs and successors, fully intending that such Waiver shall not be subject to revocation, rescission, cancellation, termination, or any other legal or equitable action to disrupt the quiet enjoyment of the Work by the public as contemplated by Affirmer's express Statement of Purpose. 3. Public License Fallback. Should any part of the Waiver for any reason be judged legally invalid or ineffective under applicable law, then the Waiver shall be preserved to the maximum extent permitted taking into account Affirmer's express Statement of Purpose. In addition, to the extent the Waiver is so judged Affirmer hereby grants to each affected person a royalty-free, non transferable, non sublicensable, non exclusive, irrevocable and unconditional license to exercise Affirmer's Copyright and Related Rights in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "License"). The License shall be deemed effective as of the date CC0 was applied by Affirmer to the Work. Should any part of the License for any reason be judged legally invalid or ineffective under applicable law, such partial invalidity or ineffectiveness shall not invalidate the remainder of the License, and in such case Affirmer hereby affirms that he or she will not (i) exercise any of his or her remaining Copyright and Related Rights in the Work or (ii) assert any associated claims and causes of action with respect to the Work, in either case contrary to Affirmer's express Statement of Purpose. 4. Limitations and Disclaimers. a. No trademark or patent rights held by Affirmer are waived, abandoned, surrendered, licensed or otherwise affected by this document. b. Affirmer offers the Work as-is and makes no representations or warranties of any kind concerning the Work, express, implied, statutory or otherwise, including without limitation warranties of title, merchantability, fitness for a particular purpose, non infringement, or the absence of latent or other defects, accuracy, or the present or absence of errors, whether or not discoverable, all to the greatest extent permissible under applicable law. c. Affirmer disclaims responsibility for clearing rights of other persons that may apply to the Work or any use thereof, including without limitation any person's Copyright and Related Rights in the Work. Further, Affirmer disclaims responsibility for obtaining any necessary consents, permissions or other rights required for any use of the Work. d. Affirmer understands and acknowledges that Creative Commons is not a party to this document and has no duty or obligation with respect to this CC0 or use of the Work. skladnik-0.5.1/LICENSES/GFDL-1.2-or-later.txt000066400000000000000000000474441457640636700200570ustar00rootroot00000000000000GNU Free Documentation License Version 1.2, November 2002 Copyright (C) 2000,2001,2002 Free Software Foundation, Inc. 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. 0. PREAMBLE The purpose of this License is to make a manual, textbook, or other functional and useful document "free" in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others. This License is a kind of "copyleft", which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software. We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference. 1. APPLICABILITY AND DEFINITIONS This License applies to any manual or other work, in any medium, that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. Such a notice grants a world-wide, royalty-free license, unlimited in duration, to use that work under the conditions stated herein. The "Document", below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as "you". You accept the license if you copy, modify or distribute the work in a way requiring permission under copyright law. A "Modified Version" of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language. A "Secondary Section" is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document's overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (Thus, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them. The "Invariant Sections" are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License. If a section does not fit the above definition of Secondary then it is not allowed to be designated as Invariant. The Document may contain zero Invariant Sections. If the Document does not identify any Invariant Sections then there are none. The "Cover Texts" are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License. A Front-Cover Text may be at most 5 words, and a Back-Cover Text may be at most 25 words. A "Transparent" copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, that is suitable for revising the document straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup, or absence of markup, has been arranged to thwart or discourage subsequent modification by readers is not Transparent. An image format is not Transparent if used for any substantial amount of text. A copy that is not "Transparent" is called "Opaque". Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTeX input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML, PostScript or PDF designed for human modification. Examples of transparent image formats include PNG, XCF and JPG. Opaque formats include proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally available, and the machine-generated HTML, PostScript or PDF produced by some word processors for output purposes only. The "Title Page" means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, "Title Page" means the text near the most prominent appearance of the work's title, preceding the beginning of the body of the text. A section "Entitled XYZ" means a named subunit of the Document whose title either is precisely XYZ or contains XYZ in parentheses following text that translates XYZ in another language. (Here XYZ stands for a specific section name mentioned below, such as "Acknowledgements", "Dedications", "Endorsements", or "History".) To "Preserve the Title" of such a section when you modify the Document means that it remains a section "Entitled XYZ" according to this definition. The Document may include Warranty Disclaimers next to the notice which states that this License applies to the Document. These Warranty Disclaimers are considered to be included by reference in this License, but only as regards disclaiming warranties: any other implication that these Warranty Disclaimers may have is void and has no effect on the meaning of this License. 2. VERBATIM COPYING You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3. You may also lend copies, under the same conditions stated above, and you may publicly display copies. 3. COPYING IN QUANTITY If you publish printed copies (or copies in media that commonly have printed covers) of the Document, numbering more than 100, and the Document's license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects. If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages. If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a computer-network location from which the general network-using public has access to download using public-standard network protocols a complete Transparent copy of the Document, free of added material. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public. It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document. 4. MODIFICATIONS You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version: A. Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission. B. List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the Document (all of its principal authors, if it has fewer than five), unless they release you from this requirement. C. State on the Title page the name of the publisher of the Modified Version, as the publisher. D. Preserve all the copyright notices of the Document. E. Add an appropriate copyright notice for your modifications adjacent to the other copyright notices. F. Include, immediately after the copyright notices, a license notice giving the public permission to use the Modified Version under the terms of this License, in the form shown in the Addendum below. G. Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document's license notice. H. Include an unaltered copy of this License. I. Preserve the section Entitled "History", Preserve its Title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section Entitled "History" in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence. J. Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the "History" section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission. K. For any section Entitled "Acknowledgements" or "Dedications", Preserve the Title of the section, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein. L. Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles. M. Delete any section Entitled "Endorsements". Such a section may not be included in the Modified Version. N. Do not retitle any existing section to be Entitled "Endorsements" or to conflict in title with any Invariant Section. O. Preserve any Warranty Disclaimers. If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version's license notice. These titles must be distinct from any other section titles. You may add a section Entitled "Endorsements", provided it contains nothing but endorsements of your Modified Version by various parties--for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard. You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one. The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version. 5. COMBINING DOCUMENTS You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice, and that you preserve all their Warranty Disclaimers. The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work. In the combination, you must combine any sections Entitled "History" in the various original documents, forming one section Entitled "History"; likewise combine any sections Entitled "Acknowledgements", and any sections Entitled "Dedications". You must delete all sections Entitled "Endorsements". 6. COLLECTIONS OF DOCUMENTS You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects. You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document. 7. AGGREGATION WITH INDEPENDENT WORKS A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, is called an "aggregate" if the copyright resulting from the compilation is not used to limit the legal rights of the compilation's users beyond what the individual works permit. When the Document is included in an aggregate, this License does not apply to the other works in the aggregate which are not themselves derivative works of the Document. If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one half of the entire aggregate, the Document's Cover Texts may be placed on covers that bracket the Document within the aggregate, or the electronic equivalent of covers if the Document is in electronic form. Otherwise they must appear on printed covers that bracket the whole aggregate. 8. TRANSLATION Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License, and all the license notices in the Document, and any Warranty Disclaimers, provided that you also include the original English version of this License and the original versions of those notices and disclaimers. In case of a disagreement between the translation and the original version of this License or a notice or disclaimer, the original version will prevail. If a section in the Document is Entitled "Acknowledgements", "Dedications", or "History", the requirement (section 4) to Preserve its Title (section 1) will typically require changing the actual title. 9. TERMINATION You may not copy, modify, sublicense, or distribute the Document except as expressly provided for under this License. Any other attempt to copy, modify, sublicense or distribute the Document is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 10. FUTURE REVISIONS OF THIS LICENSE The Free Software Foundation may publish new, revised versions of the GNU Free Documentation 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. See http://www.gnu.org/copyleft/. Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License "or any later version" applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation. ADDENDUM: How to use this License for your documents To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page: Copyright (c) YEAR YOUR NAME. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License". If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, replace the "with...Texts." line with this: with the Invariant Sections being LIST THEIR TITLES, with the Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. If you have Invariant Sections without Cover Texts, or some other combination of the three, merge those two alternatives to suit the situation. If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software. skladnik-0.5.1/LICENSES/GPL-2.0-or-later.txt000066400000000000000000000415751457640636700177630ustar00rootroot00000000000000GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too. 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 this service 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. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute 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 and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), 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 distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the 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 a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, 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. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE 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. 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 convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. one line to give the program's name and an idea of what it does. Copyright (C) yyyy name of author This program 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 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. signature of Ty Coon, 1 April 1989 Ty Coon, President of Vice skladnik-0.5.1/cmake/000077500000000000000000000000001457640636700144175ustar00rootroot00000000000000skladnik-0.5.1/cmake/FindPOVRay.cmake000066400000000000000000000024631457640636700173470ustar00rootroot00000000000000# SPDX-FileCopyrightText: 2022 Friedrich W. H. Kossebau # # SPDX-License-Identifier: BSD-3-Clause #[=======================================================================[.rst: FindPOVRay ---------- Try to find POVRay. If the POVRay executable is not in your PATH, you can provide an alternative name or full path location with the ``POVRay_EXECUTABLE`` variable. This will define the following variables: ``POVRay_FOUND`` TRUE if POVRay is available ``POVRay_EXECUTABLE`` Path to POVRay executable If ``POVRay_FOUND`` is TRUE, it will also define the following imported target: ``POVRay::POVRay`` Path to POVRay executable #]=======================================================================] find_program(POVRay_EXECUTABLE NAMES povray) include(FindPackageHandleStandardArgs) find_package_handle_standard_args(POVRay FOUND_VAR POVRay_FOUND REQUIRED_VARS POVRay_EXECUTABLE ) mark_as_advanced(POVRay_EXECUTABLE) if(NOT TARGET POVRay::POVRay AND POVRay_FOUND) add_executable(POVRay::POVRay IMPORTED) set_target_properties(POVRay::POVRay PROPERTIES IMPORTED_LOCATION "${POVRay_EXECUTABLE}" ) endif() set_package_properties(POVRay PROPERTIES URL "https://www.povray.org/" DESCRIPTION "Tool for creating three-dimensional graphics" ) skladnik-0.5.1/doc/000077500000000000000000000000001457640636700141045ustar00rootroot00000000000000skladnik-0.5.1/doc/CMakeLists.txt000066400000000000000000000001541457640636700166440ustar00rootroot00000000000000kdoctools_create_handbook(index.docbook INSTALL_DESTINATION ${KDE_INSTALL_DOCBUNDLEDIR}/en SUBDIR skladnik) skladnik-0.5.1/doc/index.docbook000066400000000000000000000303041457640636700165550ustar00rootroot00000000000000 Skladnik"> ]> The &skladnik; Handbook Anders Widell
&Anders.Widell.mail;
2000 &Anders.Widell; &FDLNotice; 2021-08-19 0.5.0 &skladnik; is an implementation of the Japanese warehouse keeper game sokoban. KDE kdegames game sokoban skladnik
Introduction The first sokoban game was created in 1982 by Hiroyuki Imabayashi at the Japanese company Thinking Rabbit, Inc. Sokoban is Japanese for warehouse keeper. The idea is that you are a warehouse keeper trying to push crates to their proper locations in a warehouse. The problem is that you cannot pull the crates or step over them. If you are not careful, some of the crates can get stuck in wrong places and/or block your way. It can be rather difficult just to solve a level. But if you want to make it even harder, you can try to minimize the number of moves and/or pushes you use to solve the level. To make the game more fun for small kids (below 10 years or so), some collections with easier levels are also included in &skladnik;. These are marked (easy) in the level collection menu. Of course, these levels can be fun for adults too, for example if you don't want to expose yourself to too much mental strain. The Game The objective of the game is to push all the red gems to the goal squares, which are marked with green glassy round things on the floor. Use the cursor keys or the mouse to move about. If you move onto a gem using the cursor keys or the &MMB;, and there is nothing blocking it on the opposite side, then you will push the gem. It isn't possible to pull the gems, so if you push a gem into a corner it will be stuck there. You cannot step over the gems either, so you can also get trapped in a part of the maze by blocking the way with gems. Also note that it isn't possible to push more than one gem at a time. If you notice that you have moved the gems in such a way that the level is impossible to solve, then you can always use the undo feature to go back to a position where the mistake has not yet been made. You can of course also restart the level from the very beginning. Controls KeyAction Cursor keysMove one square in a direction &Ctrl;Cursor keysMove as far as possible in a direction without pushing any gems &Shift;Cursor keys Move as far as possible in a direction, pushing any gem in the way Left mouse buttonMove to any place in the maze that can be reached without pushing any gems  Middle mouse button or &Ctrl;ZUndo the last move Right mouse buttonMove up/down/left/right in a straight line, pushing any gem in the way Mouse wheelTraverse the history &Ctrl;&Shift;Z Redo the last undone move NGo to the next level in the current level collection PGo to the previous level in the current level collection &Esc;Restart the current level &Ctrl;QQuit the game Loading external levels &skladnik; has the ability to load external sokoban levels from text files. You can load levels using the Game Load Levels... menu item, or by specifying the level file &URL; as a command line argument when starting &skladnik; from a shell. The external levels must be defined using the standard characters shown in the table below. If the file contains more than one level, the levels should be separated by blank lines. The file may also contain text between the levels. CharacterMeaning #Wall (space)Empty square .Goal square $Object on an empty square *Object on a goal square @Start position on an empty square  +Start position on a goal square As an example, below is a text representation of the first level in the Microban level collection: #### # .# # ### #*@ # # $ # # ### #### Menu Reference This is a complete guide to the menus of &skladnik;. The Game Menu Game Load Levels... Load an external level. See the section Loading External Levels for more information. N Game Next Level Load the next level. P Game Previous Level Go back to the previous level. &Esc; Game Restart Level Restart the current level. Game Level Collection A submenu to switch to a different set of levels. &skladnik; comes with several level sets, and you can load more that you can find on the internet. &Ctrl;Z Game Undo Undo the last move. &Ctrl;&Shift;Z Game Redo Redo the last move you undid with the menu item above. &Ctrl;Q Game Quit Exit &skladnik;. The Animation Menu This menu offers menu items with check boxes that allow you to specify the speed to which the movement replay animations are shown at. Animation Slow Show replay animations at a slow pace. Animation Medium This is the default setting, and shows replay animations at a slightly faster pace. Animation Fast Show replay animations at the fastest pace. Animation Off Do not animate replay animations. The Bookmarks Menu Bookmarks Set Bookmark &skladnik; allows you to set bookmarks with a level at a particular state. You might use this to save yourself repeating the same initial steps in a level. You can have up to ten bookmarks at a time, and access them via the &Ctrl;X shortcut, where X is any digit between 0 and 9. Bookmarks Go to Bookmark Jump to a state you have previously saved as a bookmark. The Help Menu &skladnik; has the common &kde; Help menu item, for more information read the section about the Help Menu of the &kde; Fundamentals. Credits and License &skladnik; is copyright © 1998-2000 by &Anders.Widell; &Anders.Widell.mail;. The background graphics starfield was taken from the Gimp. All other graphics were created by &Anders.Widell; &Anders.Widell.mail; using the Povray ray tracer. All the currently included sokoban levels were created by David W. Skinner sasquatch@bentonrea.com. See his sokoban page. &underFDL; &underGPL; &documentation.index;
skladnik-0.5.1/icons/000077500000000000000000000000001457640636700144525ustar00rootroot00000000000000skladnik-0.5.1/icons/128-apps-skladnik.png000066400000000000000000000104541457640636700202350ustar00rootroot00000000000000PNG  IHDR>aIDATxytS3 mB ,`0[I'P2z xe[wƖi FlcBؗBLN{f&K93i q0"c6w==IW=A~q04 B@Ph={&0'ee,{i8sl99kip[QQ]׿ 4~Bkn{fʽD՟Ԛ:zη.͜ 69i6JK9B|זXj6h3w-dlћYoPh1Zlh-(d?l YglZ1oﲙ8S>1Y;j(hNß+/K4e}7+Z|1Һ3 4bo2s[ &8{hN;Z]8 7{)('ӽͲ97ui4bbܸxfi3W1,;Ɇ;iА.4bYLix#2 6o D~*!J .g!Nm|k]:h-JXޘ@}(cN}M980τdO@jnL[{ų[6 Y>G)!΀"!~ydzLUT ;wqt'$e@mRꓴ+hD](WX}W>=4X .=ǩ꿎P'M C󍰄Y4#;w(}{mee}Gh'n%߃T]aҠlHC^; ݯwRi*#@0~~1V}S34-;ҸY~Y! , _$=E0ioH@U`N@端@SvU}H"'$'J*GԬ]w:Ѹ ϝ 5FvozF|p<+]<@K0?Y"֭ݏe1 gy[nvϯz8eܷ_ tw!u>XVvSO'B,xV>\e,|{24z @'|359Wq:Ƕe+`Iys~_7;A$1i:ٛ{vz,9QU:{N>OvVG!Q[k9wts\Ny/(wnPU;wd';(Z3o{g(^$(Kok=0&z^=GRu?Uob_U<@:lN>;MsdhrC^P?V&1Uz |z Ηv3knc+*\_VJw_6vU=wN /^IijTg+*נokz!0f[at+$M{V*Cg|9ʕ~ja{=޳[_W9u ^ߐ}t4X|/?_ƧG1[kA^lɷsu"'Pmy`ק蠫x(F:wnO#V,]5CWa(hx>= xe(I~T ~6BHzPp3T[|"e(ϪW\&6muq# ]BQF޷X>qC3@T3Bp$Th ˀNfQ$y T25iC}ԪUcN&QҒl%dPJRV3`Xո57ĎF\80nw5Wx1! :sEML3:]`x3_6 ݧi½ &H3{)F|à}P*|6ݛ{j  N?/uZxW8t3׽unOֶ&|&-'QpnJ|o^IN.^g=:xs>^;g <[d1a?oEa}N0l 2tHBuV'_= zyԪ1&Pv_To<NQ< W_gEW0 ^Į<= =\?Z%= V"./@Ev CTGT,\o=p=p9$~\cWaPr9\y&d;2=v79SZ>YSß0PwzI8lʉ-Ceg{@. A αe;W $JlI?FB}<^"g?gO#jDeS/C$(Jd`Bw?|17/6#_AقpFr^@/rB"߫Ohk].\v^[P̜z"15^8`ǜ`gOF70Fk(_z6 6~=/i\T }C(!$.w#H0rQ{͠sFA$-;aN#E•㑐fB3h' SG.a$١~6Hb Asv+> 2Q6Gƌ0G "P ^. חpT!H^_YȘ<,/ط%!nޅ7"ERN6hxM|A[8  EkXmBb߂HH{$! Hpl5d9e0g 8t l@ᄔi-_CB(r*'PiMNa)Ž2-'#_tS?iX ңߙ85H ΁IpҶ'ph*P'8P7bQ:!A|E$8a[i ^)/Tyã=Y@5YE C×CXQ S)rPt:\H욫jL؉?[p8\VnKyD {+a MWAT)&CDLXc ը(#}&\lyPF`)pSBf+>+Z](p$!( 1>.R+iѓu ύsqؓBC|LO ViQa7|   ( ~|a5 !5 K`̠0`|`%["`hȟ3 H~.1 f _<&\G'i XG*L# 瓎#wp\&D!kf4g0d#k'eDNWf? $5B;EY>:i~ :"Ph(4 B@ eIENDB`skladnik-0.5.1/icons/16-apps-skladnik.png000066400000000000000000000006501457640636700201460ustar00rootroot00000000000000PNG  IHDR(-SPLTEjjI[iP}P#P[RiRvRpu^UYiYYen>[gptzH`gpiqTe6WF^]j?Zw|]#Y$V#U&W*R(]-[2Y2Z3Z?[A[ViYh}`lhqeqeriwx9!tRNS 333888;;;bFG)zDNݹzXm?8Ï{0:3DZDnX١x=}zov 6w~~t}dq`ox=~΃m` zᤞ'?9$=К9N4CIzsGɶ 0s ܂_Ȳ^^3ϨJڍ@-WT&/˖v7ewgHZgzo27/~ lR{$P wWz3q$-eԧ+D8I*:T2[2nP"eᯓ }Tsiْ3y<:,e\un !*VBNJN u5n^{sRc,,[̨Ghn`ՉSŌOiܪ8">}LF7d%џY- ¢)dxj_u0ʽoJ${J"own =D}_4^.ⵍb̥ϳJhU6tNH/V 0JjaL\~DPNq=IENDB`skladnik-0.5.1/icons/32-apps-skladnik.png000066400000000000000000000017271457640636700201520ustar00rootroot00000000000000PNG  IHDR szzIDATXML\U}? CEvcE3 3,lSH*h &{.4.&.\N3qI]hf`{s9. mToKyw 0yٷ/ @vX 85&2~fOJccmd8&M ǽ<:ڱwc= !!`KɞyENw7lvw\:=:|_g%IZ2bۓ`R.z;gR,)nvc ,gΜ1sՕ{$pq 3sAJMb"r;E+o= Ll6ݓӜGqfL,J|in=Ty%`L6`p$B6x:^7HQ?)" T3HHQX~s̒@``:|4|OFF?2qAMX g&"\5BHQ{DXk|K4.@4\<ګ,i&][3 bU ub/Er`Ƴa(í[Kp)D(ԓM_=فJR2۟pH"^!o0eu.*' 'd~P =Uf-p#~*UMY5 2!u*ŪX؂xH !F.8R \|q5v'e%S*IENDB`skladnik-0.5.1/icons/48-apps-skladnik.png000066400000000000000000000027251457640636700201600ustar00rootroot00000000000000PNG  IHDR00WIDAThkLW.Y,NdW.ɢ˜Nzo)miKЖrS*ʔm8oxcf8n˾l&lmyE"҂ iIK?4g ))A,0cG@eefvUt Tt;ͅs'բu'ǾX=z~Ps++1q6Z'@ ǚ7ભpJ̴#VޒMG.ڀN]ΩGVLmŵnք"(͹+Ns>p/>^{Z֍6~uP tMsѷey+U)-rbffI`,6rZeGBi* ftrB-c"H3"@sR t-d{:3sF* yW"hk$5 S鶝$8tCGߕ h(He^tiȨң0[#zJ7cи*,e> M%N*.UT3LFMH7=qڷxh`ŵ)C_'jcY̶Eִl\L M5JGqT 8]tp{jȞpzGn,e_Xr[!P{qI)z)h'2C+qjGпi ~ 2gWn @<ÞjhkO6%gi-PeWtdX/[ROX*E iXm"E׼={y{1YF-ӳw=.ҬE2-zuz 8P U[7/;;+!xVojlQ)_訞t06-\{3. y `] 2mܣm|~m_FvO!I7 ߷mʋzˆ A9[6H$kEPJ IXt( \ظu˼ھ}-?,uk6C9(Pݴ |uetl ,?v,yA榫~^ (#WȜ0 lBo@90 * pۙ]? P =9Zв0QN B7ٔ8בw/ɬܸޘu=SL-1 %33[LV}>YPӟ 1ɏ8Kf,1l gtج@玲{paUzU(qz{H $8۲xP.g)IJ ] *P Fn _:7*o 2yPm´L *FMOz(~_.~c"L=ph !X_^TU٤6~8IXx(4l/;ޔOsJW:;5z8a%W;@漢AE]ՕFW<;Ur@ω @ٖLrT MÚJZk YRT3s('B%b$ @2aIDATxytS3 mB ,`0[I'P2z xe[wƖi FlcBؗBLN{f&K93i q0"c6w==IW=A~q04 B@Ph={&0'ee,{i8sl99kip[QQ]׿ 4~Bkn{fʽD՟Ԛ:zη.͜ 69i6JK9B|זXj6h3w-dlћYoPh1Zlh-(d?l YglZ1oﲙ8S>1Y;j(hNß+/K4e}7+Z|1Һ3 4bo2s[ &8{hN;Z]8 7{)('ӽͲ97ui4bbܸxfi3W1,;Ɇ;iА.4bYLix#2 6o D~*!J .g!Nm|k]:h-JXޘ@}(cN}M980τdO@jnL[{ų[6 Y>G)!΀"!~ydzLUT ;wqt'$e@mRꓴ+hD](WX}W>=4X .=ǩ꿎P'M C󍰄Y4#;w(}{mee}Gh'n%߃T]aҠlHC^; ݯwRi*#@0~~1V}S34-;ҸY~Y! , _$=E0ioH@U`N@端@SvU}H"'$'J*GԬ]w:Ѹ ϝ 5FvozF|p<+]<@K0?Y"֭ݏe1 gy[nvϯz8eܷ_ tw!u>XVvSO'B,xV>\e,|{24z @'|359Wq:Ƕe+`Iys~_7;A$1i:ٛ{vz,9QU:{N>OvVG!Q[k9wts\Ny/(wnPU;wd';(Z3o{g(^$(Kok=0&z^=GRu?Uob_U<@:lN>;MsdhrC^P?V&1Uz |z Ηv3knc+*\_VJw_6vU=wN /^IijTg+*נokz!0f[at+$M{V*Cg|9ʕ~ja{=޳[_W9u ^ߐ}t4X|/?_ƧG1[kA^lɷsu"'Pmy`ק蠫x(F:wnO#V,]5CWa(hx>= xe(I~T ~6BHzPp3T[|"e(ϪW\&6muq# ]BQF޷X>qC3@T3Bp$Th ˀNfQ$y T25iC}ԪUcN&QҒl%dPJRV3`Xո57ĎF\80nw5Wx1! :sEML3:]`x3_6 ݧi½ &H3{)F|à}P*|6ݛ{j  N?/uZxW8t3׽unOֶ&|&-'QpnJ|o^IN.^g=:xs>^;g <[d1a?oEa}N0l 2tHBuV'_= zyԪ1&Pv_To<NQ< W_gEW0 ^Į<= =\?Z%= V"./@Ev CTGT,\o=p=p9$~\cWaPr9\y&d;2=v79SZ>YSß0PwzI8lʉ-Ceg{@. A αe;W $JlI?FB}<^"g?gO#jDeS/C$(Jd`Bw?|17/6#_AقpFr^@/rB"߫Ohk].\v^[P̜z"15^8`ǜ`gOF70Fk(_z6 6~=/i\T }C(!$.w#H0rQ{͠sFA$-;aN#E•㑐fB3h' SG.a$١~6Hb Asv+> 2Q6Gƌ0G "P ^. חpT!H^_YȘ<,/ط%!nޅ7"ERN6hxM|A[8  EkXmBb߂HH{$! Hpl5d9e0g 8t l@ᄔi-_CB(r*'PiMNa)Ž2-'#_tS?iX ңߙ85H ΁IpҶ'ph*P'8P7bQ:!A|E$8a[i ^)/Tyã=Y@5YE C×CXQ S)rPt:\H욫jL؉?[p8\VnKyD {+a MWAT)&CDLXc ը(#}&\lyPF`)pSBf+>+Z](p$!( 1>.R+iѓu ύsqؓBC|LO ViQa7|   ( ~|a5 !5 K`̠0`|`%["`hȟ3 H~.1 f _<&\G'i XG*L# 瓎#wp\&D!kf4g0d#k'eDNWf? $5B;EY>:i~ :"Ph(4 B@ eIENDB`skladnik-0.5.1/po/000077500000000000000000000000001457640636700137555ustar00rootroot00000000000000skladnik-0.5.1/po/ar/000077500000000000000000000000001457640636700143575ustar00rootroot00000000000000skladnik-0.5.1/po/ar/skladnik.po000066400000000000000000000141631457640636700165240ustar00rootroot00000000000000# Copyright (C) YEAR This file is copyright: # This file is distributed under the same license as the ksokoban package. # # Zayed Al-Saidi , 2021, 2022. msgid "" msgstr "" "Project-Id-Version: ksokoban\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-11-12 00:40+0000\n" "PO-Revision-Date: 2022-08-23 19:12+0400\n" "Last-Translator: Zayed Al-Saidi \n" "Language-Team: Arabic \n" "Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " "&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" "X-Generator: Lokalize 21.07.70\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "زايد السعيدي" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "zayed.alsaidi@gmail.com" #: InternalCollections.cpp:32 #, kde-format msgid "Sasquatch" msgstr "ذو القدم الكبيرة" #: InternalCollections.cpp:36 #, kde-format msgid "Mas Sasquatch" msgstr "ذو القدم الكبيرة الثاني" #: InternalCollections.cpp:40 #, kde-format msgid "Sasquatch III" msgstr "ذو القدم الكبيرة الثالث" #: InternalCollections.cpp:44 #, kde-format msgid "Microban (easy)" msgstr "ميكروبان (سهل)" #: InternalCollections.cpp:48 #, kde-format msgid "Sasquatch IV" msgstr "ذو القدم الكبيرة الرابع" #: main.cpp:27 #, kde-format msgid "Skladnik" msgstr "" #: main.cpp:29 #, kde-format msgid "The japanese warehouse keeper game" msgstr "لعبة أمين المستودع اليابانية" #: main.cpp:31 #, kde-format msgid "" "(c) 1998 Anders Widell \n" "(c) 2012 Lukasz Kalamlacki" msgstr "" "(c) 1998 Anders Widell \n" "(c) 2012 Lukasz Kalamlacki" #: main.cpp:34 #, kde-format msgid "Shlomi Fish" msgstr "Shlomi Fish" #: main.cpp:35 #, kde-format msgid "For porting to Qt5/KF5 and doing other cleanups" msgstr "النقل إلى كيوت 5 وإطار كِيدِي 5 وغيرها من التنظيفات" #: main.cpp:38 #, kde-format msgid "Lukasz Kalamlacki" msgstr "Lukasz Kalamlacki" #: main.cpp:39 #, kde-format msgid "For rewriting the original ksokoban game from kde3 to kde4" msgstr "إعادة كتابة اللعبة الأصلية من كِيدِي 3 إلى كِيدِي 4" #: main.cpp:42 #, kde-format msgid "Anders Widell" msgstr "Anders Widell" #: main.cpp:43 #, kde-format msgid "For writing the original ksokoban game" msgstr "كتابة اللعبة الأصلية" #: main.cpp:46 #, kde-format msgid "David W. Skinner" msgstr "David W. Skinner" #: main.cpp:47 #, kde-format msgid "For contributing the Sokoban levels included in this game" msgstr "لمساهمته بمستويات اللعبة المضمنة فيها" #: main.cpp:56 #, kde-format msgid "Level collection file to load." msgstr "ملف مجموع المستويات لتحميله." #: MainWindow.cpp:38 #, kde-format msgid "&Level Collection" msgstr "&مجموعة المستويات" #: MainWindow.cpp:97 #, kde-format msgid "&Load Levels..." msgstr "&حمل المستويات..." #: MainWindow.cpp:101 #, kde-format msgid "&Next Level" msgstr "المستوى ال&تالي" #: MainWindow.cpp:106 #, kde-format msgid "&Previous Level" msgstr "المستوى ال&سابق" #: MainWindow.cpp:111 #, kde-format msgid "Re&start Level" msgstr "أعد ال&مستوى" #: MainWindow.cpp:124 #, kde-format msgid "&Slow" msgstr "ب&طيء" #: MainWindow.cpp:129 #, kde-format msgid "&Medium" msgstr "&متوسط" #: MainWindow.cpp:134 #, kde-format msgid "&Fast" msgstr "&سريع" #: MainWindow.cpp:139 #, kde-format msgid "&Off" msgstr "مع&طّلة" #: MainWindow.cpp:179 MainWindow.cpp:193 #, kde-format msgid "(unused)" msgstr "(غير مستخدمة)" #: MainWindow.cpp:229 #, kde-format msgid "(invalid)" msgstr "(غير صالح)" #: MainWindow.cpp:288 #, kde-format msgctxt "@title:window" msgid "Load Levels from a File" msgstr "تحميل مستويات من ملف" #: MainWindow.cpp:323 #, kde-format msgid "No levels found in file" msgstr "لم يعثر على مستويات في الملف" #: PlayField.cpp:102 #, kde-format msgid "Level:" msgstr "المستوى:" #: PlayField.cpp:111 #, kde-format msgid "Steps:" msgstr "الخطوات:" #: PlayField.cpp:120 #, kde-format msgid "Pushes:" msgstr "الدَفعات:" #: PlayField.cpp:351 #, kde-format msgid "Level completed" msgstr "اكتمل المستوى" #: PlayField.cpp:680 #, kde-format msgid "" "This is the last level in\n" "the current collection." msgstr "" "هذا أخر مستوى في \n" "المجموعة الحالية" #: PlayField.cpp:686 #, kde-format msgid "" "You have not completed\n" "this level yet." msgstr "" "لم تكمل هذا \n" "المستوى حتى الآن" #: PlayField.cpp:700 #, kde-format msgid "" "This is the first level in\n" "the current collection." msgstr "" "هذا أول مستوى في \n" "المجموعة الحالية" #: PlayField.cpp:778 #, kde-format msgid "" "Sorry, bookmarks for external levels\n" "is not implemented yet." msgstr "" "نأسف، علامات المستويات الخارجية\n" "لم تنفذ حتى الآن." #: PlayField.cpp:803 #, kde-format msgid "This level is broken" msgstr "هذا المستوى معطوب" #. i18n: ectx: Menu (game) #: skladnikui.rc:6 #, kde-format msgid "&Game" msgstr "&لعبة" #. i18n: ectx: Menu (animation_speed) #: skladnikui.rc:20 #, kde-format msgid "&Animation" msgstr "ال&تحريك" #. i18n: ectx: Menu (bookmarks_menu) #: skladnikui.rc:27 #, kde-format msgid "&Bookmarks" msgstr "ال&علامات" #. i18n: ectx: Menu (set_bookmarks) #: skladnikui.rc:29 #, kde-format msgid "&Set Bookmark" msgstr "ضع &علامة" #. i18n: ectx: Menu (goto_bookmarks) #: skladnikui.rc:42 #, kde-format msgid "&Go to Bookmark" msgstr "اذهب إلى &علامة" #~ msgid "KSokoban" #~ msgstr "أمين المستودع" #~ msgid "[file]" #~ msgstr "[ملف]" #~ msgid "&Undo" #~ msgstr "&تراجع" #~ msgid "&Redo" #~ msgstr "أ&عِد" #~ msgid "&Quit" #~ msgstr "أ&نهِ" skladnik-0.5.1/po/bs/000077500000000000000000000000001457640636700143615ustar00rootroot00000000000000skladnik-0.5.1/po/bs/skladnik.po000066400000000000000000000132571457640636700165310ustar00rootroot00000000000000# Bosnian translations for kde package. # Copyright (C) 2012 This_file_is_part_of_KDE # This file is distributed under the same license as the kde package. # Samir Ribic , 2012. # msgid "" msgstr "" "Project-Id-Version: kde 49i410\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-11-12 00:40+0000\n" "PO-Revision-Date: 2014-10-20 19:43+0000\n" "Last-Translator: Samir Ribić \n" "Language-Team: Bosnian\n" "Language: bs\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Launchpad (build 17341)\n" "X-Launchpad-Export-Date: 2015-02-15 06:24+0000\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Samir Ribić,Adna Čolpa" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "Samir.ribic@etf.unsa.ba,acolpa1@etf.unsa.ba" #: InternalCollections.cpp:32 #, kde-format msgid "Sasquatch" msgstr "Sasquatch" #: InternalCollections.cpp:36 #, kde-format msgid "Mas Sasquatch" msgstr "Mas Sasquatch" #: InternalCollections.cpp:40 #, kde-format msgid "Sasquatch III" msgstr "Sasquatch III" #: InternalCollections.cpp:44 #, kde-format msgid "Microban (easy)" msgstr "Microban (lako)" #: InternalCollections.cpp:48 #, kde-format msgid "Sasquatch IV" msgstr "Sasquatch IV" #: main.cpp:27 #, kde-format msgid "Skladnik" msgstr "" #: main.cpp:29 #, kde-format msgid "The japanese warehouse keeper game" msgstr "Japanski čuvar skladišta igra" #: main.cpp:31 #, kde-format msgid "" "(c) 1998 Anders Widell \n" "(c) 2012 Lukasz Kalamlacki" msgstr "" #: main.cpp:34 #, kde-format msgid "Shlomi Fish" msgstr "" #: main.cpp:35 #, kde-format msgid "For porting to Qt5/KF5 and doing other cleanups" msgstr "" #: main.cpp:38 #, kde-format msgid "Lukasz Kalamlacki" msgstr "" #: main.cpp:39 #, kde-format msgid "For rewriting the original ksokoban game from kde3 to kde4" msgstr "" #: main.cpp:42 #, kde-format msgid "Anders Widell" msgstr "Anders Widell" #: main.cpp:43 #, kde-format msgid "For writing the original ksokoban game" msgstr "" #: main.cpp:46 #, kde-format msgid "David W. Skinner" msgstr "David W. Skinner" #: main.cpp:47 #, kde-format msgid "For contributing the Sokoban levels included in this game" msgstr "Za doprinos Sokoban nivoa uključenih u ovu igru" #: main.cpp:56 #, fuzzy, kde-format #| msgid "Level collection file to load" msgid "Level collection file to load." msgstr "Datoteka sa kolekcijom nivoa treba da se učita" #: MainWindow.cpp:38 #, kde-format msgid "&Level Collection" msgstr "Kolekcija &nivoa" #: MainWindow.cpp:97 #, fuzzy, kde-format #| msgid "Load Levels From File" msgid "&Load Levels..." msgstr "Učitaj nivoe iz datoteke" #: MainWindow.cpp:101 #, kde-format msgid "&Next Level" msgstr "&Sljedeći nivo" #: MainWindow.cpp:106 #, kde-format msgid "&Previous Level" msgstr "&Prethodni nivo" #: MainWindow.cpp:111 #, kde-format msgid "Re&start Level" msgstr "&Pokreni nivo ponovo" #: MainWindow.cpp:124 #, kde-format msgid "&Slow" msgstr "&Polako" #: MainWindow.cpp:129 #, kde-format msgid "&Medium" msgstr "&Srednje" #: MainWindow.cpp:134 #, kde-format msgid "&Fast" msgstr "&Brzo" #: MainWindow.cpp:139 #, kde-format msgid "&Off" msgstr "&Isključeno" #: MainWindow.cpp:179 MainWindow.cpp:193 #, kde-format msgid "(unused)" msgstr "(neiskorišteno)" #: MainWindow.cpp:229 #, kde-format msgid "(invalid)" msgstr "(nevažeće)" #: MainWindow.cpp:288 #, fuzzy, kde-format #| msgid "Load Levels From File" msgctxt "@title:window" msgid "Load Levels from a File" msgstr "Učitaj nivoe iz datoteke" #: MainWindow.cpp:323 #, kde-format msgid "No levels found in file" msgstr "Nisu pronađeni nivoi u datoteci" #: PlayField.cpp:102 #, kde-format msgid "Level:" msgstr "Nivo:" #: PlayField.cpp:111 #, kde-format msgid "Steps:" msgstr "Stope:" #: PlayField.cpp:120 #, kde-format msgid "Pushes:" msgstr "Napadi:" #: PlayField.cpp:351 #, kde-format msgid "Level completed" msgstr "Nivo završen" #: PlayField.cpp:680 #, kde-format msgid "" "This is the last level in\n" "the current collection." msgstr "" "Ovo je posljednji nivo u \n" "trenutnoj kolekciji." #: PlayField.cpp:686 #, kde-format msgid "" "You have not completed\n" "this level yet." msgstr "" "Niste završili\n" "ovaj nivo još uvijek." #: PlayField.cpp:700 #, kde-format msgid "" "This is the first level in\n" "the current collection." msgstr "" "Ovo je prvi nivo u\n" "trenutnoj kolekciji." #: PlayField.cpp:778 #, kde-format msgid "" "Sorry, bookmarks for external levels\n" "is not implemented yet." msgstr "" "Zvinite, oznake za spoljašnje nivoe\n" "još uvijek nisu implementirane." #: PlayField.cpp:803 #, kde-format msgid "This level is broken" msgstr "Ovaj nivo je pokvaren" #. i18n: ectx: Menu (game) #: skladnikui.rc:6 #, kde-format msgid "&Game" msgstr "" #. i18n: ectx: Menu (animation_speed) #: skladnikui.rc:20 #, kde-format msgid "&Animation" msgstr "" #. i18n: ectx: Menu (bookmarks_menu) #: skladnikui.rc:27 #, kde-format msgid "&Bookmarks" msgstr "" #. i18n: ectx: Menu (set_bookmarks) #: skladnikui.rc:29 #, kde-format msgid "&Set Bookmark" msgstr "" #. i18n: ectx: Menu (goto_bookmarks) #: skladnikui.rc:42 #, kde-format msgid "&Go to Bookmark" msgstr "" #, fuzzy #~| msgid "KSokoban" #~ msgid "KSokoban" #~ msgstr "KSokoban" #~ msgid "Sasquatch V" #~ msgstr "Sasquatch V" #~ msgid "Mas Microban (easy)" #~ msgstr "Mas Microban (lako)" #~ msgid "Sasquatch VI" #~ msgstr "Sasquatch VI" #~ msgid "LOMA" #~ msgstr "LOMA" #~ msgid "Sasquatch VII" #~ msgstr "Sasquatch VII" #~ msgid "(c) 1998-2001 Anders Widell" #~ msgstr "(c) 1998-2001 Anders Widell" skladnik-0.5.1/po/ca/000077500000000000000000000000001457640636700143405ustar00rootroot00000000000000skladnik-0.5.1/po/ca/docs/000077500000000000000000000000001457640636700152705ustar00rootroot00000000000000skladnik-0.5.1/po/ca/docs/skladnik/000077500000000000000000000000001457640636700170705ustar00rootroot00000000000000skladnik-0.5.1/po/ca/docs/skladnik/index.docbook000066400000000000000000000323711457640636700215470ustar00rootroot00000000000000 Skladnik"> ]> El manual del &skladnik; Anders Widell
&Anders.Widell.mail;
&traductor.Antoni.Bella;
2000 &Anders.Widell; &FDLNotice; 19 d'agost de 2021 0.5.0 El &skladnik; és una implementació del joc japonès sokoban de l'encarregat del magatzem. KDE kdegames joc Sokoban skladnik
Introducció El primer joc del sokoban es va crear el 1982 per en Hiroyuki Imabayashi a la companyia japonesa Thinking Rabbit, Inc. Sokoban està en japonès per a encarregat del magatzem. La idea és que sigueu un encarregat del magatzem que intenta empènyer les caixes cap a les seves ubicacions adequades en un magatzem. El problema és que no podeu estirar les caixes ni trepitjar-les. Si no teniu cura, algunes de les caixes podrien quedar atrapades en llocs equivocats i/o bloquejar el camí. Pot ser bastant difícil resoldre un nivell. Però si voleu fer-ho encara més difícil, podeu intentar minimitzar el nombre de moviments i/o les empentes que empreu per a resoldre'l. Per a fer que el joc sigui més divertit per a infants (per sota dels 10 anys), també s'inclouen en el &skladnik; algunes col·leccions amb nivells més fàcils. Aquests estan marcats amb (fàcil) en el menú col·lecció de nivells. Per descomptat, aquests nivells també poden ser divertits per als adults, per exemple, si no voleu exposar-vos a massa tensió mental. El joc L'objectiu del joc és empènyer totes les gemmes vermelles cap als quadres de meta, els quals estan marcats en el terra amb coses rodones de vidre verd. Per a moure, utilitzeu les tecles del cursor o el ratolí. Si moveu cap a una gemma amb les tecles del cursor o el &BMR;, i no hi ha res bloquejant al costat oposat, llavors l'empenyereu. No és possible estirar-les, així que si l'empenyeu cap a una cantonada, s'encallarà allà. Tampoc podreu trepitjar-les, de manera que també podria quedar atrapada en una part del laberint bloquejant el camí. També cal tenir en compte que no és possible empènyer més d'una gemma alhora. Si us adoneu que heu mogut les gemmes de tal manera que el nivell és impossible de resoldre, sempre podeu utilitzar la característica de desfer per a tornar a una posició on encara no s'ha comès l'error. Per descomptat, també podreu reiniciar el nivell des del començament. Controls TeclaAcció Tecles de cursorMou un quadre en una direcció &Ctrl;Fletxes del cursorMou en la mesura del possible en una direcció sense empènyer cap gemma &Maj;Fletxes del cursor Mou en la mesura del possible en una direcció, empenyent qualsevol gemma que hi hagi en el camí Botó esquerre del ratolíMou a qualsevol lloc en el laberint on es pugui arribar sense empènyer cap gemma Botó del mig del ratolí o &Ctrl;ZDesfà l'últim moviment Botó dret del ratolíMou cap amunt/avall/esquerra/dreta en línia recta, empenyent qualsevol gemma que hi hagi en el camí Roda del ratolíTravessa l'historial &Ctrl;&Maj;Z Refà l'últim moviment desfet NVa cap al nivell següent en la col·lecció de nivells actual PVa cap al nivell anterior en la col·lecció de nivells actual &Esc;Reinicia el nivell actual &Ctrl;QSurt de la partida Carregar nivells externs El &skladnik; té la capacitat de carregar nivells externs de sokoban des de fitxers de text. Podeu carregar-los utilitzant l'element de menú Joc Carrega nivells... o especificant l'&URL; del fitxer de nivells com un argument de la línia d'ordres en iniciar el &skladnik; des d'un intèrpret d'ordres. Els nivells externs s'han de definir utilitzant els caràcters estàndard que es mostren a la taula a continuació. Si el fitxer conté més d'un nivell, els nivells hauran d'estar separats per línies en blanc. El fitxer també podrà contenir text entre els nivells. CaràcterSignificat #Mur (espai)Quadre buit .Quadre de meta $Objecte en un quadre buit *Objecte en un quadre de meta @Posició inicial en un quadre buit +Posició inicial en un quadre de meta Com a exemple, a continuació hi ha una representació de text del primer nivell en la col·lecció de nivells Microban: #### # .# # ### #*@ # # $ # # ### #### Referència del menú Aquesta és una guia completa dels menús del &skladnik;. El menú Joc Joc Carrega els nivells... Carrega un nivell extern. Per a més informació, vegeu Carregar nivells externs. N Joc Nivell següent Carrega el nivell següent. P Joc Nivell anterior Torna al nivell anterior. &Esc; Joc Reinicia el nivell Reinicia el nivell actual. Joc Col·lecció de nivells Un submenú per a canviar a un conjunt diferent de nivells. El &skladnik; ve amb diversos conjunts de nivells i en podeu carregar més que trobareu a Internet. &Ctrl;Z Joc Desfés Desfés l'últim moviment. &Ctrl;&Maj;Z Joc Refés Refà l'últim moviment que s'ha desfet amb l'element del menú anterior. &Ctrl;Q Joc Surt Surt del &skladnik;. El menú Animació Aquest menú ofereix elements de menú amb caselles de selecció que permeten especificar la velocitat a la qual es mostraran les animacions de reproducció del moviment. Animació Lenta Mostra les animacions de reproducció a un ritme lent. Animació Mitjana Aquesta és la configuració predeterminada i mostra les animacions de reproducció a un ritme lleugerament més ràpid. Animació Ràpida Mostra les animacions de reproducció a un ritme més ràpid. Animació Desactivada No anima les animacions de reproducció. El menú Adreces d'interès Adreces d'interès Estableix una adreça d'interès El &skladnik; permet establir adreces d'interès amb un nivell en un estat en particular. Podeu utilitzar això per a estalviar-vos repetir els mateixos passos inicials en un nivell. Podeu tenir fins a deu adreces d'interès alhora, i accedir-hi a través de la drecera &Ctrl;X, on X serà un dígit entre el 0 i el 9. Adreces d'interès Ves a l'adreça d'interès Salta a un estat que heu desat prèviament com a una adreça d'interès. El menú Ajuda El &skladnik; té la configuració comuna al &kde; i els elements del menú Ajuda. Per a obtenir més informació, llegiu la secció sobre El menú Ajuda en els Fonaments del &kde;. Crèdits i llicència El &skladnik; és copyright © 1998-2000 per n'&Anders.Widell; &Anders.Widell.mail;. Els gràfics starfield de fons s'han pres del Gimp. Tots els altres gràfics els va crear n'&Anders.Widell; &Anders.Widell.mail; utilitzant el traçador de raigs Povray. Tots els nivells de sokoban inclosos actualment els va crear en David W. Skinner sasquatch@bentonrea.com. Vegeu la seva pàgina de sokoban. Traductor de la documentació: &credits.Antoni.Bella; &underFDL; &underGPL; &documentation.index;
skladnik-0.5.1/po/ca/skladnik.po000066400000000000000000000131761457640636700165100ustar00rootroot00000000000000# Translation of skladnik.po to Catalan # Copyright (C) 2019-2023 This_file_is_part_of_KDE # This file is distributed under the license LGPL version 2.1 or # version 3 or later versions approved by the membership of KDE e.V. # # Antoni Bella Pérez , 2019, 2020, 2021. # Josep M. Ferrer , 2021, 2022, 2023. msgid "" msgstr "" "Project-Id-Version: skladnik\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-11-12 00:40+0000\n" "PO-Revision-Date: 2023-11-12 16:11+0100\n" "Last-Translator: Josep M. Ferrer \n" "Language-Team: Catalan \n" "Language: ca\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Lokalize 22.12.3\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Antoni Bella" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "antonibella5@yahoo.com" #: InternalCollections.cpp:32 #, kde-format msgid "Sasquatch" msgstr "Sasquatch" #: InternalCollections.cpp:36 #, kde-format msgid "Mas Sasquatch" msgstr "Mas Sasquatch" #: InternalCollections.cpp:40 #, kde-format msgid "Sasquatch III" msgstr "Sasquatch III" #: InternalCollections.cpp:44 #, kde-format msgid "Microban (easy)" msgstr "Microban (fàcil)" #: InternalCollections.cpp:48 #, kde-format msgid "Sasquatch IV" msgstr "Sasquatch IV" #: main.cpp:27 #, kde-format msgid "Skladnik" msgstr "Skladnik" #: main.cpp:29 #, kde-format msgid "The japanese warehouse keeper game" msgstr "El joc japonès de l'encarregat del magatzem" #: main.cpp:31 #, kde-format msgid "" "(c) 1998 Anders Widell \n" "(c) 2012 Lukasz Kalamlacki" msgstr "" "(c) 1998 Anders Widell \n" "(c) 2012 Lukasz Kalamlacki" #: main.cpp:34 #, kde-format msgid "Shlomi Fish" msgstr "Shlomi Fish" #: main.cpp:35 #, kde-format msgid "For porting to Qt5/KF5 and doing other cleanups" msgstr "Per adaptar-lo a les Qt5/KF5 i fer altres neteges de codi" #: main.cpp:38 #, kde-format msgid "Lukasz Kalamlacki" msgstr "Lukasz Kalamlacki" #: main.cpp:39 #, kde-format msgid "For rewriting the original ksokoban game from kde3 to kde4" msgstr "Per tornar a escriure el joc Ksokoban original des del KDE 3 al KDE 4" #: main.cpp:42 #, kde-format msgid "Anders Widell" msgstr "Anders Widell" #: main.cpp:43 #, kde-format msgid "For writing the original ksokoban game" msgstr "Per escriure el joc Ksokoban original" #: main.cpp:46 #, kde-format msgid "David W. Skinner" msgstr "David W. Skinner" #: main.cpp:47 #, kde-format msgid "For contributing the Sokoban levels included in this game" msgstr "Per contribuir amb els nivells del Sokoban inclosos en aquest joc" #: main.cpp:56 #, kde-format msgid "Level collection file to load." msgstr "El fitxer de col·lecció de nivells a carregar." #: MainWindow.cpp:38 #, kde-format msgid "&Level Collection" msgstr "Co&l·lecció de nivells" #: MainWindow.cpp:97 #, kde-format msgid "&Load Levels..." msgstr "Ca&rrega nivells..." #: MainWindow.cpp:101 #, kde-format msgid "&Next Level" msgstr "&Nivell següent" #: MainWindow.cpp:106 #, kde-format msgid "&Previous Level" msgstr "Nivell an&terior" #: MainWindow.cpp:111 #, kde-format msgid "Re&start Level" msgstr "Re&inicia el nivell" #: MainWindow.cpp:124 #, kde-format msgid "&Slow" msgstr "L&enta" #: MainWindow.cpp:129 #, kde-format msgid "&Medium" msgstr "&Mitjana" #: MainWindow.cpp:134 #, kde-format msgid "&Fast" msgstr "&Ràpida" #: MainWindow.cpp:139 #, kde-format msgid "&Off" msgstr "&Desactivada" #: MainWindow.cpp:179 MainWindow.cpp:193 #, kde-format msgid "(unused)" msgstr "(no emprat)" #: MainWindow.cpp:229 #, kde-format msgid "(invalid)" msgstr "(no vàlida)" #: MainWindow.cpp:288 #, kde-format msgctxt "@title:window" msgid "Load Levels from a File" msgstr "Carrega nivells des d'un fitxer" #: MainWindow.cpp:323 #, kde-format msgid "No levels found in file" msgstr "No s'ha trobat cap nivell al fitxer" #: PlayField.cpp:102 #, kde-format msgid "Level:" msgstr "Nivell:" #: PlayField.cpp:111 #, kde-format msgid "Steps:" msgstr "Passos:" #: PlayField.cpp:120 #, kde-format msgid "Pushes:" msgstr "Empentes:" #: PlayField.cpp:351 #, kde-format msgid "Level completed" msgstr "Nivell completat" #: PlayField.cpp:680 #, kde-format msgid "" "This is the last level in\n" "the current collection." msgstr "" "Aquest és l'últim nivell\n" "a la col·lecció actual." #: PlayField.cpp:686 #, kde-format msgid "" "You have not completed\n" "this level yet." msgstr "" "Encara no has completat\n" "aquest nivell." #: PlayField.cpp:700 #, kde-format msgid "" "This is the first level in\n" "the current collection." msgstr "" "Aquest és el primer nivell\n" "a la col·lecció actual." #: PlayField.cpp:778 #, kde-format msgid "" "Sorry, bookmarks for external levels\n" "is not implemented yet." msgstr "" "Ho sentim. Les adreces d'interès per a nivells\n" "externs encara no estan implementades." #: PlayField.cpp:803 #, kde-format msgid "This level is broken" msgstr "Aquest nivell està trencat" #. i18n: ectx: Menu (game) #: skladnikui.rc:6 #, kde-format msgid "&Game" msgstr "Ju&ga" #. i18n: ectx: Menu (animation_speed) #: skladnikui.rc:20 #, kde-format msgid "&Animation" msgstr "&Animació" #. i18n: ectx: Menu (bookmarks_menu) #: skladnikui.rc:27 #, kde-format msgid "&Bookmarks" msgstr "A&dreces d'interès" #. i18n: ectx: Menu (set_bookmarks) #: skladnikui.rc:29 #, kde-format msgid "&Set Bookmark" msgstr "E&stableix una adreça d'interès" #. i18n: ectx: Menu (goto_bookmarks) #: skladnikui.rc:42 #, kde-format msgid "&Go to Bookmark" msgstr "&Ves a l'adreça d'interès" skladnik-0.5.1/po/ca@valencia/000077500000000000000000000000001457640636700161435ustar00rootroot00000000000000skladnik-0.5.1/po/ca@valencia/skladnik.po000066400000000000000000000132261457640636700203070ustar00rootroot00000000000000# Translation of skladnik.po to Catalan (Valencian) # Copyright (C) 2019-2023 This_file_is_part_of_KDE # This file is distributed under the license LGPL version 2.1 or # version 3 or later versions approved by the membership of KDE e.V. # # Antoni Bella Pérez , 2019, 2020, 2021. # Josep M. Ferrer , 2021, 2022, 2023. msgid "" msgstr "" "Project-Id-Version: skladnik\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-11-12 00:40+0000\n" "PO-Revision-Date: 2023-11-12 16:11+0100\n" "Last-Translator: Josep M. Ferrer \n" "Language-Team: Catalan \n" "Language: ca@valencia\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Lokalize 22.12.3\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Antoni Bella" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "antonibella5@yahoo.com" #: InternalCollections.cpp:32 #, kde-format msgid "Sasquatch" msgstr "Sasquatch" #: InternalCollections.cpp:36 #, kde-format msgid "Mas Sasquatch" msgstr "Mas Sasquatch" #: InternalCollections.cpp:40 #, kde-format msgid "Sasquatch III" msgstr "Sasquatch III" #: InternalCollections.cpp:44 #, kde-format msgid "Microban (easy)" msgstr "Microban (fàcil)" #: InternalCollections.cpp:48 #, kde-format msgid "Sasquatch IV" msgstr "Sasquatch IV" #: main.cpp:27 #, kde-format msgid "Skladnik" msgstr "Skladnik" #: main.cpp:29 #, kde-format msgid "The japanese warehouse keeper game" msgstr "El joc japonés de l'encarregat del magatzem" #: main.cpp:31 #, kde-format msgid "" "(c) 1998 Anders Widell \n" "(c) 2012 Lukasz Kalamlacki" msgstr "" "(c) 1998 Anders Widell \n" "(c) 2012 Lukasz Kalamlacki" #: main.cpp:34 #, kde-format msgid "Shlomi Fish" msgstr "Shlomi Fish" #: main.cpp:35 #, kde-format msgid "For porting to Qt5/KF5 and doing other cleanups" msgstr "Per adaptar-lo a les Qt5/KF5 i fer altres neteges de codi" #: main.cpp:38 #, kde-format msgid "Lukasz Kalamlacki" msgstr "Lukasz Kalamlacki" #: main.cpp:39 #, kde-format msgid "For rewriting the original ksokoban game from kde3 to kde4" msgstr "Per tornar a escriure el joc Ksokoban original des de KDE 3 a KDE 4" #: main.cpp:42 #, kde-format msgid "Anders Widell" msgstr "Anders Widell" #: main.cpp:43 #, kde-format msgid "For writing the original ksokoban game" msgstr "Per escriure el joc Ksokoban original" #: main.cpp:46 #, kde-format msgid "David W. Skinner" msgstr "David W. Skinner" #: main.cpp:47 #, kde-format msgid "For contributing the Sokoban levels included in this game" msgstr "Per contribuir amb els nivells de Sokoban inclosos en este joc" #: main.cpp:56 #, kde-format msgid "Level collection file to load." msgstr "El fitxer de col·lecció de nivells que es carregarà." #: MainWindow.cpp:38 #, kde-format msgid "&Level Collection" msgstr "Co&l·lecció de nivells" #: MainWindow.cpp:97 #, kde-format msgid "&Load Levels..." msgstr "Ca&rrega nivells..." #: MainWindow.cpp:101 #, kde-format msgid "&Next Level" msgstr "&Nivell següent" #: MainWindow.cpp:106 #, kde-format msgid "&Previous Level" msgstr "Nivell an&terior" #: MainWindow.cpp:111 #, kde-format msgid "Re&start Level" msgstr "Re&inicia el nivell" #: MainWindow.cpp:124 #, kde-format msgid "&Slow" msgstr "L&enta" #: MainWindow.cpp:129 #, kde-format msgid "&Medium" msgstr "&Mitjana" #: MainWindow.cpp:134 #, kde-format msgid "&Fast" msgstr "&Ràpida" #: MainWindow.cpp:139 #, kde-format msgid "&Off" msgstr "&Desactivada" #: MainWindow.cpp:179 MainWindow.cpp:193 #, kde-format msgid "(unused)" msgstr "(no emprat)" #: MainWindow.cpp:229 #, kde-format msgid "(invalid)" msgstr "(no vàlida)" #: MainWindow.cpp:288 #, kde-format msgctxt "@title:window" msgid "Load Levels from a File" msgstr "Carrega nivells des d'un fitxer" #: MainWindow.cpp:323 #, kde-format msgid "No levels found in file" msgstr "No s'ha trobat cap nivell en el fitxer" #: PlayField.cpp:102 #, kde-format msgid "Level:" msgstr "Nivell:" #: PlayField.cpp:111 #, kde-format msgid "Steps:" msgstr "Passos:" #: PlayField.cpp:120 #, kde-format msgid "Pushes:" msgstr "Empentes:" #: PlayField.cpp:351 #, kde-format msgid "Level completed" msgstr "Nivell completat" #: PlayField.cpp:680 #, kde-format msgid "" "This is the last level in\n" "the current collection." msgstr "" "Este és l'últim nivell\n" "en la col·lecció actual." #: PlayField.cpp:686 #, kde-format msgid "" "You have not completed\n" "this level yet." msgstr "" "Encara no has completat\n" "este nivell." #: PlayField.cpp:700 #, kde-format msgid "" "This is the first level in\n" "the current collection." msgstr "" "Este és el primer nivell\n" "en la col·lecció actual." #: PlayField.cpp:778 #, kde-format msgid "" "Sorry, bookmarks for external levels\n" "is not implemented yet." msgstr "" "Ho sentim. Les adreces d'interés per a nivells\n" "externs encara no estan implementades." #: PlayField.cpp:803 #, kde-format msgid "This level is broken" msgstr "Este nivell està trencat" #. i18n: ectx: Menu (game) #: skladnikui.rc:6 #, kde-format msgid "&Game" msgstr "Ju&ga" #. i18n: ectx: Menu (animation_speed) #: skladnikui.rc:20 #, kde-format msgid "&Animation" msgstr "&Animació" #. i18n: ectx: Menu (bookmarks_menu) #: skladnikui.rc:27 #, kde-format msgid "&Bookmarks" msgstr "A&dreces d'interés" #. i18n: ectx: Menu (set_bookmarks) #: skladnikui.rc:29 #, kde-format msgid "&Set Bookmark" msgstr "E&stablix una adreça d'interés" #. i18n: ectx: Menu (goto_bookmarks) #: skladnikui.rc:42 #, kde-format msgid "&Go to Bookmark" msgstr "&Ves fins a l'adreça d'interés" skladnik-0.5.1/po/cs/000077500000000000000000000000001457640636700143625ustar00rootroot00000000000000skladnik-0.5.1/po/cs/skladnik.po000066400000000000000000000112321457640636700165210ustar00rootroot00000000000000# Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # Vit Pelcak , 2012, 2014, 2019, 2021, 2022. # msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-11-12 00:40+0000\n" "PO-Revision-Date: 2021-08-19 10:55+0200\n" "Last-Translator: Vit Pelcak \n" "Language-Team: Czech \n" "Language: cs\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" "X-Generator: Lokalize 22.08.1\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Vít Pelčák" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "vit@pelcak.org" #: InternalCollections.cpp:32 #, kde-format msgid "Sasquatch" msgstr "" #: InternalCollections.cpp:36 #, kde-format msgid "Mas Sasquatch" msgstr "" #: InternalCollections.cpp:40 #, kde-format msgid "Sasquatch III" msgstr "" #: InternalCollections.cpp:44 #, kde-format msgid "Microban (easy)" msgstr "" #: InternalCollections.cpp:48 #, kde-format msgid "Sasquatch IV" msgstr "" #: main.cpp:27 #, kde-format msgid "Skladnik" msgstr "" #: main.cpp:29 #, kde-format msgid "The japanese warehouse keeper game" msgstr "" #: main.cpp:31 #, kde-format msgid "" "(c) 1998 Anders Widell \n" "(c) 2012 Lukasz Kalamlacki" msgstr "" #: main.cpp:34 #, kde-format msgid "Shlomi Fish" msgstr "Shlomi Fish" #: main.cpp:35 #, kde-format msgid "For porting to Qt5/KF5 and doing other cleanups" msgstr "" #: main.cpp:38 #, kde-format msgid "Lukasz Kalamlacki" msgstr "Lukasz Kalamlacki" #: main.cpp:39 #, kde-format msgid "For rewriting the original ksokoban game from kde3 to kde4" msgstr "" #: main.cpp:42 #, kde-format msgid "Anders Widell" msgstr "Anders Widell" #: main.cpp:43 #, kde-format msgid "For writing the original ksokoban game" msgstr "Za napsání původní hry ksokoban" #: main.cpp:46 #, kde-format msgid "David W. Skinner" msgstr "David W. Skinner" #: main.cpp:47 #, kde-format msgid "For contributing the Sokoban levels included in this game" msgstr "" #: main.cpp:56 #, kde-format msgid "Level collection file to load." msgstr "" #: MainWindow.cpp:38 #, kde-format msgid "&Level Collection" msgstr "" #: MainWindow.cpp:97 #, kde-format msgid "&Load Levels..." msgstr "Načís&t úrovně..." #: MainWindow.cpp:101 #, kde-format msgid "&Next Level" msgstr "&Následující úroveň" #: MainWindow.cpp:106 #, kde-format msgid "&Previous Level" msgstr "&Předchozí úroveň" #: MainWindow.cpp:111 #, kde-format msgid "Re&start Level" msgstr "" #: MainWindow.cpp:124 #, kde-format msgid "&Slow" msgstr "&Pomalu" #: MainWindow.cpp:129 #, kde-format msgid "&Medium" msgstr "&Střední" #: MainWindow.cpp:134 #, kde-format msgid "&Fast" msgstr "&Rychle" #: MainWindow.cpp:139 #, kde-format msgid "&Off" msgstr "Vypnut&o" #: MainWindow.cpp:179 MainWindow.cpp:193 #, kde-format msgid "(unused)" msgstr "(nepoužito)" #: MainWindow.cpp:229 #, kde-format msgid "(invalid)" msgstr "(neplatný)" #: MainWindow.cpp:288 #, kde-format msgctxt "@title:window" msgid "Load Levels from a File" msgstr "Načíst úrovně ze souboru" #: MainWindow.cpp:323 #, kde-format msgid "No levels found in file" msgstr "" #: PlayField.cpp:102 #, kde-format msgid "Level:" msgstr "Úroveň:" #: PlayField.cpp:111 #, kde-format msgid "Steps:" msgstr "Kroky:" #: PlayField.cpp:120 #, kde-format msgid "Pushes:" msgstr "" #: PlayField.cpp:351 #, kde-format msgid "Level completed" msgstr "" #: PlayField.cpp:680 #, kde-format msgid "" "This is the last level in\n" "the current collection." msgstr "" #: PlayField.cpp:686 #, kde-format msgid "" "You have not completed\n" "this level yet." msgstr "" #: PlayField.cpp:700 #, kde-format msgid "" "This is the first level in\n" "the current collection." msgstr "" #: PlayField.cpp:778 #, kde-format msgid "" "Sorry, bookmarks for external levels\n" "is not implemented yet." msgstr "" #: PlayField.cpp:803 #, kde-format msgid "This level is broken" msgstr "" #. i18n: ectx: Menu (game) #: skladnikui.rc:6 #, kde-format msgid "&Game" msgstr "&Hra" #. i18n: ectx: Menu (animation_speed) #: skladnikui.rc:20 #, kde-format msgid "&Animation" msgstr "&Animace" #. i18n: ectx: Menu (bookmarks_menu) #: skladnikui.rc:27 #, kde-format msgid "&Bookmarks" msgstr "&Záložky" #. i18n: ectx: Menu (set_bookmarks) #: skladnikui.rc:29 #, kde-format msgid "&Set Bookmark" msgstr "Na&stavit záložku" #. i18n: ectx: Menu (goto_bookmarks) #: skladnikui.rc:42 #, kde-format msgid "&Go to Bookmark" msgstr "Pře&jít na tuto záložku" skladnik-0.5.1/po/de/000077500000000000000000000000001457640636700143455ustar00rootroot00000000000000skladnik-0.5.1/po/de/skladnik.po000066400000000000000000000137671457640636700165230ustar00rootroot00000000000000# Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # Burkhard Lück , 2013, 2019. # Frederik Schwarzer , 2021, 2022. # msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-11-12 00:40+0000\n" "PO-Revision-Date: 2022-12-19 10:43+0100\n" "Last-Translator: Frederik Schwarzer \n" "Language-Team: German \n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Lokalize 22.12.0\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Stefan Winter,Thomas Reitelbach" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "swinter@kde.org,tr@erdfunkstelle.de" #: InternalCollections.cpp:32 #, kde-format msgid "Sasquatch" msgstr "Sasquatch" #: InternalCollections.cpp:36 #, kde-format msgid "Mas Sasquatch" msgstr "Mas Sasquatch" #: InternalCollections.cpp:40 #, kde-format msgid "Sasquatch III" msgstr "Sasquatch III" #: InternalCollections.cpp:44 #, kde-format msgid "Microban (easy)" msgstr "Microban (einfach)" #: InternalCollections.cpp:48 #, kde-format msgid "Sasquatch IV" msgstr "Sasquatch IV" #: main.cpp:27 #, kde-format msgid "Skladnik" msgstr "" #: main.cpp:29 #, kde-format msgid "The japanese warehouse keeper game" msgstr "Das japanische Lagerverwalterspiel" #: main.cpp:31 #, kde-format msgid "" "(c) 1998 Anders Widell \n" "(c) 2012 Lukasz Kalamlacki" msgstr "" "(c) 1998 Anders Widell \n" "(c) 2012 Lukasz Kalamlacki" #: main.cpp:34 #, kde-format msgid "Shlomi Fish" msgstr "Shlomi Fish" #: main.cpp:35 #, kde-format msgid "For porting to Qt5/KF5 and doing other cleanups" msgstr "Portierung auf Qt5/KF5 und weitere Aufräumarbeiten" #: main.cpp:38 #, kde-format msgid "Lukasz Kalamlacki" msgstr "Lukasz Kalamlacki" #: main.cpp:39 #, kde-format msgid "For rewriting the original ksokoban game from kde3 to kde4" msgstr "Portierung des ursprünglichen KSokoban-Spiels von KDE 3 zu KDE 4" #: main.cpp:42 #, kde-format msgid "Anders Widell" msgstr "Anders Widell" #: main.cpp:43 #, kde-format msgid "For writing the original ksokoban game" msgstr "Autor des ursprünglichen KSokoban-Spiels" #: main.cpp:46 #, kde-format msgid "David W. Skinner" msgstr "David W. Skinner" #: main.cpp:47 #, kde-format msgid "For contributing the Sokoban levels included in this game" msgstr "Für Beiträge zu den Sokoban-Räumen, die diesem Spiel beiliegen" #: main.cpp:56 #, kde-format msgid "Level collection file to load." msgstr "Datei mit Raumsammlung, die geladen werden soll." #: MainWindow.cpp:38 #, kde-format msgid "&Level Collection" msgstr "Ra&um-Sammlung" #: MainWindow.cpp:97 #, kde-format msgid "&Load Levels..." msgstr "Räume &laden ..." #: MainWindow.cpp:101 #, kde-format msgid "&Next Level" msgstr "&Nächste Ebene" #: MainWindow.cpp:106 #, kde-format msgid "&Previous Level" msgstr "&Vorherige Ebene" #: MainWindow.cpp:111 #, kde-format msgid "Re&start Level" msgstr "Raum neu &starten" #: MainWindow.cpp:124 #, kde-format msgid "&Slow" msgstr "L&angsam" #: MainWindow.cpp:129 #, kde-format msgid "&Medium" msgstr "&Mittel" #: MainWindow.cpp:134 #, kde-format msgid "&Fast" msgstr "&Schnell" #: MainWindow.cpp:139 #, kde-format msgid "&Off" msgstr "&Aus" #: MainWindow.cpp:179 MainWindow.cpp:193 #, kde-format msgid "(unused)" msgstr "(Unbenutzt)" #: MainWindow.cpp:229 #, kde-format msgid "(invalid)" msgstr "(ungültig)" #: MainWindow.cpp:288 #, kde-format msgctxt "@title:window" msgid "Load Levels from a File" msgstr "Räume aus einer Datei laden" #: MainWindow.cpp:323 #, kde-format msgid "No levels found in file" msgstr "In der Datei sind keine Räume einhalten" #: PlayField.cpp:102 #, kde-format msgid "Level:" msgstr "Ebene:" #: PlayField.cpp:111 #, kde-format msgid "Steps:" msgstr "Schritte:" #: PlayField.cpp:120 #, kde-format msgid "Pushes:" msgstr "Verschiebungen:" #: PlayField.cpp:351 #, kde-format msgid "Level completed" msgstr "Raum abgeschlossen" #: PlayField.cpp:680 #, kde-format msgid "" "This is the last level in\n" "the current collection." msgstr "" "Dies ist der letzte Raum\n" "in der aktuellen Sammlung." #: PlayField.cpp:686 #, kde-format msgid "" "You have not completed\n" "this level yet." msgstr "" "Sie haben diesen Raum\n" "noch nicht abgeschlossen." #: PlayField.cpp:700 #, kde-format msgid "" "This is the first level in\n" "the current collection." msgstr "" "Dies ist der erste Raum\n" "in der aktuellen Sammlung." #: PlayField.cpp:778 #, kde-format msgid "" "Sorry, bookmarks for external levels\n" "is not implemented yet." msgstr "" "Lesezeichen für externe Räume sind\n" "leider noch nicht implementiert." #: PlayField.cpp:803 #, kde-format msgid "This level is broken" msgstr "Dieser Raum ist defekt" #. i18n: ectx: Menu (game) #: skladnikui.rc:6 #, kde-format msgid "&Game" msgstr "&Spiel" #. i18n: ectx: Menu (animation_speed) #: skladnikui.rc:20 #, kde-format msgid "&Animation" msgstr "&Animation" #. i18n: ectx: Menu (bookmarks_menu) #: skladnikui.rc:27 #, kde-format msgid "&Bookmarks" msgstr "&Lesezeichen" #. i18n: ectx: Menu (set_bookmarks) #: skladnikui.rc:29 #, kde-format msgid "&Set Bookmark" msgstr "&Lesezeichen setzen" #. i18n: ectx: Menu (goto_bookmarks) #: skladnikui.rc:42 #, kde-format msgid "&Go to Bookmark" msgstr "&Zum Lesezeichen gehen" #~ msgid "KSokoban" #~ msgstr "KSokoban" #~ msgid "[file]" #~ msgstr "[datei]" #~ msgid "&Undo" #~ msgstr "&Zurücknehmen" #~ msgid "&Redo" #~ msgstr "&Wiederherstellen" #~ msgid "&Quit" #~ msgstr "Be&enden" #~ msgid "Sasquatch V" #~ msgstr "Sasquatch V" #~ msgid "Mas Microban (easy)" #~ msgstr "Mas Microban (einfach)" #~ msgid "Sasquatch VI" #~ msgstr "Sasquatch VI" #~ msgid "LOMA" #~ msgstr "LOMA" #~ msgid "Sasquatch VII" #~ msgstr "Sasquatch VII" #~ msgid "(c) 1998-2001 Anders Widell" #~ msgstr "(c) 1998-2001 Anders Widell" skladnik-0.5.1/po/en_GB/000077500000000000000000000000001457640636700147275ustar00rootroot00000000000000skladnik-0.5.1/po/en_GB/skladnik.po000066400000000000000000000127341457640636700170760ustar00rootroot00000000000000# Copyright (C) YEAR This file is copyright: # This file is distributed under the same license as the ksokoban package. # # Steve Allewell , 2020, 2021, 2022. msgid "" msgstr "" "Project-Id-Version: ksokoban\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-11-12 00:40+0000\n" "PO-Revision-Date: 2022-08-22 17:13+0100\n" "Last-Translator: Steve Allewell \n" "Language-Team: British English \n" "Language: en_GB\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Lokalize 22.08.0\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Steve Allewell" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "steve.allewell@gmail.com" #: InternalCollections.cpp:32 #, kde-format msgid "Sasquatch" msgstr "Sasquatch" #: InternalCollections.cpp:36 #, kde-format msgid "Mas Sasquatch" msgstr "Mas Sasquatch" #: InternalCollections.cpp:40 #, kde-format msgid "Sasquatch III" msgstr "Sasquatch III" #: InternalCollections.cpp:44 #, kde-format msgid "Microban (easy)" msgstr "Microban (easy)" #: InternalCollections.cpp:48 #, kde-format msgid "Sasquatch IV" msgstr "Sasquatch IV" #: main.cpp:27 #, kde-format msgid "Skladnik" msgstr "" #: main.cpp:29 #, kde-format msgid "The japanese warehouse keeper game" msgstr "The japanese warehouse keeper game" #: main.cpp:31 #, kde-format msgid "" "(c) 1998 Anders Widell \n" "(c) 2012 Lukasz Kalamlacki" msgstr "" "(c) 1998 Anders Widell \n" "(c) 2012 Lukasz Kalamlacki" #: main.cpp:34 #, kde-format msgid "Shlomi Fish" msgstr "Shlomi Fish" #: main.cpp:35 #, kde-format msgid "For porting to Qt5/KF5 and doing other cleanups" msgstr "For porting to Qt5/KF5 and doing other clean-ups" #: main.cpp:38 #, kde-format msgid "Lukasz Kalamlacki" msgstr "Lukasz Kalamlacki" #: main.cpp:39 #, kde-format msgid "For rewriting the original ksokoban game from kde3 to kde4" msgstr "For rewriting the original ksokoban game from kde3 to kde4" #: main.cpp:42 #, kde-format msgid "Anders Widell" msgstr "Anders Widell" #: main.cpp:43 #, kde-format msgid "For writing the original ksokoban game" msgstr "For writing the original ksokoban game" #: main.cpp:46 #, kde-format msgid "David W. Skinner" msgstr "David W. Skinner" #: main.cpp:47 #, kde-format msgid "For contributing the Sokoban levels included in this game" msgstr "For contributing the Sokoban levels included in this game" #: main.cpp:56 #, kde-format msgid "Level collection file to load." msgstr "Level collection file to load." #: MainWindow.cpp:38 #, kde-format msgid "&Level Collection" msgstr "&Level Collection" #: MainWindow.cpp:97 #, kde-format msgid "&Load Levels..." msgstr "&Load Levels..." #: MainWindow.cpp:101 #, kde-format msgid "&Next Level" msgstr "&Next Level" #: MainWindow.cpp:106 #, kde-format msgid "&Previous Level" msgstr "&Previous Level" #: MainWindow.cpp:111 #, kde-format msgid "Re&start Level" msgstr "Re&start Level" #: MainWindow.cpp:124 #, kde-format msgid "&Slow" msgstr "&Slow" #: MainWindow.cpp:129 #, kde-format msgid "&Medium" msgstr "&Medium" #: MainWindow.cpp:134 #, kde-format msgid "&Fast" msgstr "&Fast" #: MainWindow.cpp:139 #, kde-format msgid "&Off" msgstr "&Off" #: MainWindow.cpp:179 MainWindow.cpp:193 #, kde-format msgid "(unused)" msgstr "(unused)" #: MainWindow.cpp:229 #, kde-format msgid "(invalid)" msgstr "(invalid)" #: MainWindow.cpp:288 #, kde-format msgctxt "@title:window" msgid "Load Levels from a File" msgstr "Load Levels from a File" #: MainWindow.cpp:323 #, kde-format msgid "No levels found in file" msgstr "No levels found in file" #: PlayField.cpp:102 #, kde-format msgid "Level:" msgstr "Level:" #: PlayField.cpp:111 #, kde-format msgid "Steps:" msgstr "Steps:" #: PlayField.cpp:120 #, kde-format msgid "Pushes:" msgstr "Pushes:" #: PlayField.cpp:351 #, kde-format msgid "Level completed" msgstr "Level completed" #: PlayField.cpp:680 #, kde-format msgid "" "This is the last level in\n" "the current collection." msgstr "" "This is the last level in\n" "the current collection." #: PlayField.cpp:686 #, kde-format msgid "" "You have not completed\n" "this level yet." msgstr "" "You have not completed\n" "this level yet." #: PlayField.cpp:700 #, kde-format msgid "" "This is the first level in\n" "the current collection." msgstr "" "This is the first level in\n" "the current collection." #: PlayField.cpp:778 #, kde-format msgid "" "Sorry, bookmarks for external levels\n" "is not implemented yet." msgstr "" "Sorry, bookmarks for external levels\n" "is not implemented yet." #: PlayField.cpp:803 #, kde-format msgid "This level is broken" msgstr "This level is broken" #. i18n: ectx: Menu (game) #: skladnikui.rc:6 #, kde-format msgid "&Game" msgstr "&Game" #. i18n: ectx: Menu (animation_speed) #: skladnikui.rc:20 #, kde-format msgid "&Animation" msgstr "&Animation" #. i18n: ectx: Menu (bookmarks_menu) #: skladnikui.rc:27 #, kde-format msgid "&Bookmarks" msgstr "&Bookmarks" #. i18n: ectx: Menu (set_bookmarks) #: skladnikui.rc:29 #, kde-format msgid "&Set Bookmark" msgstr "&Set Bookmark" #. i18n: ectx: Menu (goto_bookmarks) #: skladnikui.rc:42 #, kde-format msgid "&Go to Bookmark" msgstr "&Go to Bookmark" #~ msgid "KSokoban" #~ msgstr "KSokoban" #~ msgid "[file]" #~ msgstr "[file]" #~ msgid "&Undo" #~ msgstr "&Undo" #~ msgid "&Redo" #~ msgstr "&Redo" #~ msgid "&Quit" #~ msgstr "&Quit" skladnik-0.5.1/po/es/000077500000000000000000000000001457640636700143645ustar00rootroot00000000000000skladnik-0.5.1/po/es/docs/000077500000000000000000000000001457640636700153145ustar00rootroot00000000000000skladnik-0.5.1/po/es/docs/skladnik/000077500000000000000000000000001457640636700171145ustar00rootroot00000000000000skladnik-0.5.1/po/es/docs/skladnik/index.docbook000066400000000000000000000330331457640636700215670ustar00rootroot00000000000000 Skladnik"> ]> Manual de &skladnik; Anders Widell
&Anders.Widell.mail;
EloyCuadra
ecuadra@eloihr.net
Traducción del manual
2000 &Anders.Widell; &FDLNotice; 2021-08-19 0.5.0 &skladnik; es la implementación del juego japonés del encargado de almacén «sokoban». KDE kdegames juego sokoban skladnik
Introducción El primer juego de sokoban fue creado en 1982 por Hiroyuki Imabayashi en la compañía japonesa Thinking Rabbit, Inc. «Sokoban» significa «encargado de almacén» en japonés. El jugador es el encargado de almacén que tiene que empujar las cajas a su lugar correcto en el almacén. El problema es que no se puede tirar de las cajas ni pasar sobre ellas. Si no tiene cuidado, algunas cajas quedarán inmovilizadas en lugares incorrectos y le bloquearán el paso. Puede ser bastante difícil resolver un nivel. Pero si quiere hacerlo aún más difícil, puede intentar reducir la cantidad de movimientos y/o empujones necesarios para resolver el nivel. Para que el juego sea más divertido para los niños más jóvenes (menores de 10 años), &skladnik; también incluye algunas colecciones con niveles más fáciles. Estas colecciones están marcadas con la etiqueta (fácil) en el menú de la colección de niveles. Por supuesto, estos niveles también pueden ser divertidos para los mayores (por ejemplo, si no quiere exponerse a demasiada tensión mental). El juego El objetivo del juego es empujar todas las gemas rojas a los cuadrados de meta, que están marcados con objetos redondos de aspecto verde vidrioso en el suelo. Use las teclas del cursor o el ratón para moverse. Si se mueve hasta una gema usando las teclas del cursor o el &MMB; y no hay nada que la pueda bloquear en el lado opuesto, se empujará la gema en dicha dirección. No se puede tirar de las gemas, por lo que si la empuja hasta una esquina quedará inmovilizada en dicho lugar. Tampoco se puede pasar por encima de las gemas, por lo que puede quedar atrapado en alguna parte del laberinto si bloquea el paso con gemas. También debe tener en cuenta que no se puede empujar más de una gema a la vez. Si cae en la cuenta de que ha movido las gemas de tal modo que ya no puede resolver el nivel, siempre podrá usar la funcionalidad de deshacer un movimiento para retroceder hasta una posición en la que todavía no haya cometido el error. Por supuesto, también puede reiniciar el nivel desde el principio. Controles TeclaAcción Teclas del cursorMover un cuadrado en una dirección Teclas &Ctrl;cursorMover tan lejos como sea posible en una dirección sin empujar ninguna gema Teclas &Shift;cursor Mover tan lejos como sea posible en una dirección empujando una gema en el camino Botón izquierdo del ratónMover a un lugar del laberinto al que se pueda llegar sin empujar ninguna gema  Botón central del ratón o &Ctrl;ZDeshacer el último movimiento Botón derecho del ratónMover arriba/abajo/izquierda/derecha en línea recta, empujando cualquier gema que haya delante Rueda del ratónRecorrer el historial &Ctrl;&Shift;Z Volver a hacer el último movimiento deshecho NIr al siguiente nivel de la colección de niveles actual PIr al anterior nivel de la colección de niveles actual &Esc;Reiniciar el nivel actual &Ctrl;QSalir del juego Carga de niveles externos &skladnik; permite la posibilidad de cargar niveles externos de sokoban usando archivos de texto. Puede cargar estos niveles usando la opción del menú Juego Cargar niveles... , o especificando la &URL; del archivo de nivel como argumento de la línea de órdenes si inicia &skladnik; desde la consola. Los niveles externos se deben definir usando los caracteres estándares que se muestran en la siguiente tabla. Si el archivo contiene más de un nivel, debe separar los niveles mediante líneas en blanco. El archivo también puede contener texto entre los niveles. CarácterSignificado #Pared (espacio)Cuadrado vacío .Cuadrado de meta $Objeto sobre un cuadrado vacío *Objeto sobre un cuadrado de meta @Posición de inicio sobre un cuadrado vacío  +Posición de inicio sobre un cuadrado de meta Como ejemplo, a continuación se muestra una representación con texto del primer nivel de la colección de niveles Microban: #### # .# # ### #*@ # # $ # # ### #### Referencia del menú Esta es una guía completa de los menús de &skladnik;. El menú Juego Juego Cargar niveles... Carga un nivel externo. Consulte la sección Carga de niveles externos para obtener más información. N Juego Nivel siguiente Cargar el nivel siguiente. P Juego Nivel anterior Volver al nivel anterior. &Esc; Juego Reiniciar nivel Reiniciar el nivel actual. Juego Colección de niveles Un submenú para cambiar a un conjunto de niveles distinto. &skladnik; contiene varios conjuntos de niveles, aunque puede cargar más niveles que puede encontrar en Internet. &Ctrl;Z Juego Deshacer Deshacer el último movimiento. &Ctrl;&Shift;Z Juego Rehacer Volver a hacer el último movimiento deshecho con la opción de menú anterior. &Ctrl;Q JuegoSalir Salir de &skladnik;. El menú Animación Este menú ofrece elementos con casillas que permiten indicar la velocidad a la que se muestran las animaciones de la reproducción de los movimientos. Animación Lenta Mostrar la animación de reproducción a ritmo lento. Animación Media Esta es la preferencia predeterminada. Muestra la animación de reproducción a un ritmo algo más rápido. Animación Rápida Mostrar la animación de reproducción al ritmo más rápido. Animación Desactivada No animar la animación de reproducción. El menú Marcadores Marcadores Definir marcador &skladnik; le permite definir marcadores con un nivel en un determinado estado. Puede usar esta función para ahorrarse repetir los mismos pasos iniciales de un nivel. Puede tener un máximo de diez marcadores al mismo tiempo y acceder a ellos usando el acceso rápido de teclado &Ctrl;X, donde X es cualquier dígito del 0 al 9. Marcadores Ir a marcador Salta al estado que haya guardado previamente como marcador. El menú Ayuda &skladnik; posee el elemento de menú común de &kde; Ayuda. Para más información, consulte la sección sobre el menú Ayuda de los principios fundamentales de &kde;. Créditos y licencia &skladnik; copyright © 1998-2000 por &Anders.Widell; &Anders.Widell.mail;. El gráfico del fondo campo de estrellas se ha tomado de Gimp. El resto de gráficos han sido creados por &Anders.Widell; &Anders.Widell.mail; usando el trazador de rayos Povray. Todos los niveles de sokoban incluidos en la actualidad han sido creados por David W. Skinner sasquatch@bentonrea.com. Consulte su página sobre sokoban. Traducido por Eloy Cuadra ecuadra@eloihr.net &underFDL; &underGPL; &documentation.index;
skladnik-0.5.1/po/es/skladnik.po000066400000000000000000000141561457640636700165330ustar00rootroot00000000000000# Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # # Sofía Priego , %Y. # Rocio Gallego , 2013. # SPDX-FileCopyrightText: 2019, 2021, 2022, 2023 Eloy Cuadra msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-11-12 00:40+0000\n" "PO-Revision-Date: 2023-11-14 20:22+0100\n" "Last-Translator: Sofía Priego \n" "Language-Team: Spanish \n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Lokalize 23.08.2\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Sofía Priego,Rocío Gallego" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "spriego@darksylvania.net,traducciones@rociogallego.com" #: InternalCollections.cpp:32 #, kde-format msgid "Sasquatch" msgstr "Sasquatch" #: InternalCollections.cpp:36 #, kde-format msgid "Mas Sasquatch" msgstr "Mas Sasquatch" #: InternalCollections.cpp:40 #, kde-format msgid "Sasquatch III" msgstr "Sasquatch III" #: InternalCollections.cpp:44 #, kde-format msgid "Microban (easy)" msgstr "Microban (easy)" #: InternalCollections.cpp:48 #, kde-format msgid "Sasquatch IV" msgstr "Sasquatch IV" #: main.cpp:27 #, kde-format msgid "Skladnik" msgstr "Skladnik" #: main.cpp:29 #, kde-format msgid "The japanese warehouse keeper game" msgstr "El juego japonés del guardián del almacén" #: main.cpp:31 #, kde-format msgid "" "(c) 1998 Anders Widell \n" "(c) 2012 Lukasz Kalamlacki" msgstr "" "© 1998 Anders Widell \n" "© 2012 Lukasz Kalamlacki" #: main.cpp:34 #, kde-format msgid "Shlomi Fish" msgstr "Shlomi Fish" #: main.cpp:35 #, kde-format msgid "For porting to Qt5/KF5 and doing other cleanups" msgstr "Por adaptar el juego a Qt5/KF5 y realizar tareas de mantenimiento" #: main.cpp:38 #, kde-format msgid "Lukasz Kalamlacki" msgstr "Lukasz Kalamlacki" #: main.cpp:39 #, kde-format msgid "For rewriting the original ksokoban game from kde3 to kde4" msgstr "Por reescribir el juego ksokoban original de kde3 a kde4" #: main.cpp:42 #, kde-format msgid "Anders Widell" msgstr "Anders Widell" #: main.cpp:43 #, kde-format msgid "For writing the original ksokoban game" msgstr "Por escribir el juego ksokoban original" #: main.cpp:46 #, kde-format msgid "David W. Skinner" msgstr "David W. Skinner" #: main.cpp:47 #, kde-format msgid "For contributing the Sokoban levels included in this game" msgstr "Para colaborar en los niveles de Sokoban incluidos en este juego" #: main.cpp:56 #, kde-format msgid "Level collection file to load." msgstr "Archivo de recopilación de niveles para cargar." #: MainWindow.cpp:38 #, kde-format msgid "&Level Collection" msgstr "Recopilación de nive&les" #: MainWindow.cpp:97 #, kde-format msgid "&Load Levels..." msgstr "&Cargar niveles..." #: MainWindow.cpp:101 #, kde-format msgid "&Next Level" msgstr "Siguie&nte nivel" #: MainWindow.cpp:106 #, kde-format msgid "&Previous Level" msgstr "N&ivel anterior" #: MainWindow.cpp:111 #, kde-format msgid "Re&start Level" msgstr "&Volver a empezar el nivel" #: MainWindow.cpp:124 #, kde-format msgid "&Slow" msgstr "L&ento" #: MainWindow.cpp:129 #, kde-format msgid "&Medium" msgstr "&Medio" #: MainWindow.cpp:134 #, kde-format msgid "&Fast" msgstr "&Rápido" #: MainWindow.cpp:139 #, kde-format msgid "&Off" msgstr "&Apagado" #: MainWindow.cpp:179 MainWindow.cpp:193 #, kde-format msgid "(unused)" msgstr "(sin utilizar)" #: MainWindow.cpp:229 #, kde-format msgid "(invalid)" msgstr "(no válido)" #: MainWindow.cpp:288 #, kde-format msgctxt "@title:window" msgid "Load Levels from a File" msgstr "Cargar niveles de un archivo" #: MainWindow.cpp:323 #, kde-format msgid "No levels found in file" msgstr "No se han encontrado niveles en el archivo" #: PlayField.cpp:102 #, kde-format msgid "Level:" msgstr "Nivel:" #: PlayField.cpp:111 #, kde-format msgid "Steps:" msgstr "Pasos:" #: PlayField.cpp:120 #, kde-format msgid "Pushes:" msgstr "Movimientos:" #: PlayField.cpp:351 #, kde-format msgid "Level completed" msgstr "Nivel completado" #: PlayField.cpp:680 #, kde-format msgid "" "This is the last level in\n" "the current collection." msgstr "" "Este es el último nivel en\n" "la recopilación actual." #: PlayField.cpp:686 #, kde-format msgid "" "You have not completed\n" "this level yet." msgstr "" "Aún no ha completado\n" "este nivel." #: PlayField.cpp:700 #, kde-format msgid "" "This is the first level in\n" "the current collection." msgstr "" "Este es el primer nivel de\n" "la recopilación actual." #: PlayField.cpp:778 #, kde-format msgid "" "Sorry, bookmarks for external levels\n" "is not implemented yet." msgstr "" "Los marcadores para niveles externos\n" "aún no están implementados." #: PlayField.cpp:803 #, kde-format msgid "This level is broken" msgstr "Este nivel no funciona" #. i18n: ectx: Menu (game) #: skladnikui.rc:6 #, kde-format msgid "&Game" msgstr "&Juego" #. i18n: ectx: Menu (animation_speed) #: skladnikui.rc:20 #, kde-format msgid "&Animation" msgstr "&Animación" #. i18n: ectx: Menu (bookmarks_menu) #: skladnikui.rc:27 #, kde-format msgid "&Bookmarks" msgstr "&Marcadores" #. i18n: ectx: Menu (set_bookmarks) #: skladnikui.rc:29 #, kde-format msgid "&Set Bookmark" msgstr "&Definir marcador" #. i18n: ectx: Menu (goto_bookmarks) #: skladnikui.rc:42 #, kde-format msgid "&Go to Bookmark" msgstr "&Ir a marcador" #~ msgid "KSokoban" #~ msgstr "KSokoban" #~ msgid "[file]" #~ msgstr "[archivo]" #~ msgid "&Undo" #~ msgstr "&Deshacer" #~ msgid "&Redo" #~ msgstr "&Rehacer" #~ msgid "&Quit" #~ msgstr "&Salir" #~ msgid "Sasquatch V" #~ msgstr "Sasquatch V" #~ msgid "Mas Microban (easy)" #~ msgstr "Mas Microban (fácil)" #~ msgid "Sasquatch VI" #~ msgstr "Sasquatch VI" #~ msgid "LOMA" #~ msgstr "LOMA (niveles de muchos autores)" #~ msgid "Sasquatch VII" #~ msgstr "Sasquatch VII" #~ msgid "(c) 1998-2001 Anders Widell" #~ msgstr "(c) 1998-2001 Anders Widell" skladnik-0.5.1/po/et/000077500000000000000000000000001457640636700143655ustar00rootroot00000000000000skladnik-0.5.1/po/et/skladnik.po000066400000000000000000000135701457640636700165330ustar00rootroot00000000000000# Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # # Marek Laane , 2012, 2020. msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-11-12 00:40+0000\n" "PO-Revision-Date: 2020-01-22 21:20+0200\n" "Last-Translator: Marek Laane \n" "Language-Team: Estonian \n" "Language: et\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Lokalize 19.08.1\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Marek Laane" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "qiilaq69@gmail.com" #: InternalCollections.cpp:32 #, kde-format msgid "Sasquatch" msgstr "Sasquatch" #: InternalCollections.cpp:36 #, kde-format msgid "Mas Sasquatch" msgstr "Mas Sasquatch" #: InternalCollections.cpp:40 #, kde-format msgid "Sasquatch III" msgstr "Sasquatch III" #: InternalCollections.cpp:44 #, kde-format msgid "Microban (easy)" msgstr "Microban (lihtne)" #: InternalCollections.cpp:48 #, kde-format msgid "Sasquatch IV" msgstr "Sasquatch IV" #: main.cpp:27 #, kde-format msgid "Skladnik" msgstr "" #: main.cpp:29 #, kde-format msgid "The japanese warehouse keeper game" msgstr "Jaapani laohoidjamäng" #: main.cpp:31 #, kde-format msgid "" "(c) 1998 Anders Widell \n" "(c) 2012 Lukasz Kalamlacki" msgstr "" "(c) 1998: Anders Widell \n" "(c) 2012: Lukasz Kalamlacki" #: main.cpp:34 #, kde-format msgid "Shlomi Fish" msgstr "Shlomi Fish" #: main.cpp:35 #, kde-format msgid "For porting to Qt5/KF5 and doing other cleanups" msgstr "Portimine Qt5/KF5 peale ja muu puhastustöö" #: main.cpp:38 #, kde-format msgid "Lukasz Kalamlacki" msgstr "Lukasz Kalamlacki" #: main.cpp:39 #, kde-format msgid "For rewriting the original ksokoban game from kde3 to kde4" msgstr "Algse ksokobani mängu ümberkirjutamine kde3 pealt kde4 peale" #: main.cpp:42 #, kde-format msgid "Anders Widell" msgstr "Anders Widell" #: main.cpp:43 #, kde-format msgid "For writing the original ksokoban game" msgstr "Algse ksokobani mängu kirjutamine" #: main.cpp:46 #, kde-format msgid "David W. Skinner" msgstr "David W. Skinner" #: main.cpp:47 #, kde-format msgid "For contributing the Sokoban levels included in this game" msgstr "Mängu lisatud Sokobani tasemete annetamise eest" #: main.cpp:56 #, fuzzy, kde-format #| msgid "Level collection file to load" msgid "Level collection file to load." msgstr "Laaditav tasemete kogu" #: MainWindow.cpp:38 #, kde-format msgid "&Level Collection" msgstr "&Tasemete kogu" #: MainWindow.cpp:97 #, kde-format msgid "&Load Levels..." msgstr "&Laadi tasemed ..." #: MainWindow.cpp:101 #, kde-format msgid "&Next Level" msgstr "&Järgmine tase" #: MainWindow.cpp:106 #, kde-format msgid "&Previous Level" msgstr "&Eelmine tase" #: MainWindow.cpp:111 #, kde-format msgid "Re&start Level" msgstr "&Käivita tase uuesti" #: MainWindow.cpp:124 #, kde-format msgid "&Slow" msgstr "&Aeglane" #: MainWindow.cpp:129 #, kde-format msgid "&Medium" msgstr "&Keskmine" #: MainWindow.cpp:134 #, kde-format msgid "&Fast" msgstr "K&iire" #: MainWindow.cpp:139 #, kde-format msgid "&Off" msgstr "&Väljas" #: MainWindow.cpp:179 MainWindow.cpp:193 #, kde-format msgid "(unused)" msgstr "(kasutamata)" #: MainWindow.cpp:229 #, kde-format msgid "(invalid)" msgstr "(vigane)" #: MainWindow.cpp:288 #, fuzzy, kde-format #| msgid "Load Levels From File" msgctxt "@title:window" msgid "Load Levels from a File" msgstr "Tasemete laadimine failist" #: MainWindow.cpp:323 #, kde-format msgid "No levels found in file" msgstr "Failis ei leitud ühtegi taset" #: PlayField.cpp:102 #, kde-format msgid "Level:" msgstr "Tase:" #: PlayField.cpp:111 #, kde-format msgid "Steps:" msgstr "Sammud: " #: PlayField.cpp:120 #, kde-format msgid "Pushes:" msgstr "Lükkeid:" #: PlayField.cpp:351 #, kde-format msgid "Level completed" msgstr "Tase on läbitud" #: PlayField.cpp:680 #, kde-format msgid "" "This is the last level in\n" "the current collection." msgstr "" "See on viimane tase\n" "aktiivses kogus." #: PlayField.cpp:686 #, kde-format msgid "" "You have not completed\n" "this level yet." msgstr "" "Sa ei ole veel\n" "seda taset lõpetanud." #: PlayField.cpp:700 #, kde-format msgid "" "This is the first level in\n" "the current collection." msgstr "" "See on esimene tase\n" "aktiivses kogus." #: PlayField.cpp:778 #, kde-format msgid "" "Sorry, bookmarks for external levels\n" "is not implemented yet." msgstr "" "Vabandust, väliste tasemete\n" "järjehoidjad pole veel toetatud." #: PlayField.cpp:803 #, kde-format msgid "This level is broken" msgstr "See tase on vigane" #. i18n: ectx: Menu (game) #: skladnikui.rc:6 #, kde-format msgid "&Game" msgstr "&Mäng" #. i18n: ectx: Menu (animation_speed) #: skladnikui.rc:20 #, kde-format msgid "&Animation" msgstr "&Animatsioon" #. i18n: ectx: Menu (bookmarks_menu) #: skladnikui.rc:27 #, kde-format msgid "&Bookmarks" msgstr "&Järjehoidjad" #. i18n: ectx: Menu (set_bookmarks) #: skladnikui.rc:29 #, kde-format msgid "&Set Bookmark" msgstr "&Pane järjehoidjatesse" #. i18n: ectx: Menu (goto_bookmarks) #: skladnikui.rc:42 #, kde-format msgid "&Go to Bookmark" msgstr "L&iigu järjehoidjasse" #, fuzzy #~| msgid "ksokoban" #~ msgid "KSokoban" #~ msgstr "ksokoban" #~ msgid "[file]" #~ msgstr "[fail]" #~ msgid "&Undo" #~ msgstr "&Võta tagasi" #~ msgid "&Redo" #~ msgstr "&Tee uuesti" #~ msgid "&Quit" #~ msgstr "&Välju" #~ msgid "Sasquatch V" #~ msgstr "Sasquatch V" #~ msgid "Mas Microban (easy)" #~ msgstr "Mas Microban (lihtne)" #~ msgid "Sasquatch VI" #~ msgstr "Sasquatch VI" #~ msgid "LOMA" #~ msgstr "LOMA" #~ msgid "Sasquatch VII" #~ msgstr "Sasquatch VII" #~ msgid "(c) 1998-2001 Anders Widell" #~ msgstr "(c) 1998-2001: Anders Widell" skladnik-0.5.1/po/eu/000077500000000000000000000000001457640636700143665ustar00rootroot00000000000000skladnik-0.5.1/po/eu/skladnik.po000066400000000000000000000130631457640636700165310ustar00rootroot00000000000000# Translation for ksokoban.po to Euskara/Basque (eu). # Copyright (C) 2023 This file is copyright: # This file is distributed under the same license as the ksokoban package. # SPDX-FileCopyrightText: 2023 KDE euskaratzeko proiektuko arduraduna # # Translators: # SPDX-FileCopyrightText: 2023 Iñigo Salvador Azurmendi msgid "" msgstr "" "Project-Id-Version: ksokoban\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-11-12 00:40+0000\n" "PO-Revision-Date: 2023-12-06 11:48+0100\n" "Last-Translator: Iñigo Salvador Azurmendi \n" "Language-Team: Basque \n" "Language: eu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Lokalize 23.08.3\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Iñigo Salvador Azurmendi" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "xalba@ni.eus" #: InternalCollections.cpp:32 #, kde-format msgid "Sasquatch" msgstr "Sasquatch" #: InternalCollections.cpp:36 #, kde-format msgid "Mas Sasquatch" msgstr "Mas Sasquatch" #: InternalCollections.cpp:40 #, kde-format msgid "Sasquatch III" msgstr "Sasquatch III" #: InternalCollections.cpp:44 #, kde-format msgid "Microban (easy)" msgstr "Microban (erraza)" #: InternalCollections.cpp:48 #, kde-format msgid "Sasquatch IV" msgstr "Sasquatch IV" #: main.cpp:27 #, kde-format msgid "Skladnik" msgstr "Skladnik" #: main.cpp:29 #, kde-format msgid "The japanese warehouse keeper game" msgstr "Biltegizainaren joko japoniarra" #: main.cpp:31 #, kde-format msgid "" "(c) 1998 Anders Widell \n" "(c) 2012 Lukasz Kalamlacki" msgstr "" "(c) 1998 Anders Widell \n" "(c) 2012 Lukasz Kalamlacki" #: main.cpp:34 #, kde-format msgid "Shlomi Fish" msgstr "Shlomi Fish" #: main.cpp:35 #, kde-format msgid "For porting to Qt5/KF5 and doing other cleanups" msgstr "Qt5/KF5era eratortzeagatik eta beste garbiketa batzuk egiteagatik" #: main.cpp:38 #, kde-format msgid "Lukasz Kalamlacki" msgstr "Lukasz Kalamlacki" #: main.cpp:39 #, kde-format msgid "For rewriting the original ksokoban game from kde3 to kde4" msgstr "Jatorrizko KSokoban jokoa KDE3tik KDE4ra berridazteagatik" #: main.cpp:42 #, kde-format msgid "Anders Widell" msgstr "Anders Widell" #: main.cpp:43 #, kde-format msgid "For writing the original ksokoban game" msgstr "Jatorrizko KSokoban jokoa idazteagatik" #: main.cpp:46 #, kde-format msgid "David W. Skinner" msgstr "David W. Skinner" #: main.cpp:47 #, kde-format msgid "For contributing the Sokoban levels included in this game" msgstr "Joko honetan dauden «Sokoban» mailak emateagatik" #: main.cpp:56 #, kde-format msgid "Level collection file to load." msgstr "Zamatu beharreko maila-bilduma fitxategia." #: MainWindow.cpp:38 #, kde-format msgid "&Level Collection" msgstr "Mai&la-bilduma" #: MainWindow.cpp:97 #, kde-format msgid "&Load Levels..." msgstr "&Zamatu mailak..." #: MainWindow.cpp:101 #, kde-format msgid "&Next Level" msgstr "&Hurrengo maila" #: MainWindow.cpp:106 #, kde-format msgid "&Previous Level" msgstr "&Aurreko maila" #: MainWindow.cpp:111 #, kde-format msgid "Re&start Level" msgstr "Berra&biarazi maila" #: MainWindow.cpp:124 #, kde-format msgid "&Slow" msgstr "Mant&so" #: MainWindow.cpp:129 #, kde-format msgid "&Medium" msgstr "&Ertaina" #: MainWindow.cpp:134 #, kde-format msgid "&Fast" msgstr "A&zkar" #: MainWindow.cpp:139 #, kde-format msgid "&Off" msgstr "&Itzalita" #: MainWindow.cpp:179 MainWindow.cpp:193 #, kde-format msgid "(unused)" msgstr "(erabiltzeke)" #: MainWindow.cpp:229 #, kde-format msgid "(invalid)" msgstr "(baliogabea)" #: MainWindow.cpp:288 #, kde-format msgctxt "@title:window" msgid "Load Levels from a File" msgstr "Zamatu mailak fitxategi batetik" #: MainWindow.cpp:323 #, kde-format msgid "No levels found in file" msgstr "Fitxategian ez da mailarik aurkitu" #: PlayField.cpp:102 #, kde-format msgid "Level:" msgstr "Maila:" #: PlayField.cpp:111 #, kde-format msgid "Steps:" msgstr "Urratsak:" #: PlayField.cpp:120 #, kde-format msgid "Pushes:" msgstr "Bultzadak:" #: PlayField.cpp:351 #, kde-format msgid "Level completed" msgstr "Maila osatu da" #: PlayField.cpp:680 #, kde-format msgid "" "This is the last level in\n" "the current collection." msgstr "" "Hori da oraingo bildumako\n" "azken maila." #: PlayField.cpp:686 #, kde-format msgid "" "You have not completed\n" "this level yet." msgstr "" "Oraindik ez duzu maila\n" "hau osatu." #: PlayField.cpp:700 #, kde-format msgid "" "This is the first level in\n" "the current collection." msgstr "" "Hau da oraingo mailako\n" "aurreneko maila." #: PlayField.cpp:778 #, kde-format msgid "" "Sorry, bookmarks for external levels\n" "is not implemented yet." msgstr "" "Barkatu, kanpoko mailetarako laster-markak\n" "oraindik ez daude inplementatuta." #: PlayField.cpp:803 #, kde-format msgid "This level is broken" msgstr "Maila hau hautsita dago" #. i18n: ectx: Menu (game) #: skladnikui.rc:6 #, kde-format msgid "&Game" msgstr "&Jokoa" #. i18n: ectx: Menu (animation_speed) #: skladnikui.rc:20 #, kde-format msgid "&Animation" msgstr "&Animazioa" #. i18n: ectx: Menu (bookmarks_menu) #: skladnikui.rc:27 #, kde-format msgid "&Bookmarks" msgstr "&Laster-markak" #. i18n: ectx: Menu (set_bookmarks) #: skladnikui.rc:29 #, kde-format msgid "&Set Bookmark" msgstr "E&zarri laster-marka" #. i18n: ectx: Menu (goto_bookmarks) #: skladnikui.rc:42 #, kde-format msgid "&Go to Bookmark" msgstr "&Joan laster-markara" #~ msgid "KSokoban" #~ msgstr "KSokoban" skladnik-0.5.1/po/fi/000077500000000000000000000000001457640636700143535ustar00rootroot00000000000000skladnik-0.5.1/po/fi/skladnik.po000066400000000000000000000135341457640636700165210ustar00rootroot00000000000000# KDE Finnish translation sprint participants: # Tommi Nieminen , 2013, 2020, 2021, 2022, 2023. msgid "" msgstr "" "Project-Id-Version: ksokoban\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-11-12 00:40+0000\n" "PO-Revision-Date: 2023-02-23 19:58+0200\n" "Last-Translator: Tommi Nieminen \n" "Language-Team: Finnish \n" "Language: fi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-POT-Import-Date: 2012-12-01 22:27:03+0000\n" "X-Generator: Lokalize 22.12.2\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Tommi Nieminen" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "translator@legisign.org" #: InternalCollections.cpp:32 #, kde-format msgid "Sasquatch" msgstr "Sasquatch" #: InternalCollections.cpp:36 #, kde-format msgid "Mas Sasquatch" msgstr "Mas Sasquatch" #: InternalCollections.cpp:40 #, kde-format msgid "Sasquatch III" msgstr "Sasquatch III" #: InternalCollections.cpp:44 #, kde-format msgid "Microban (easy)" msgstr "Microban (helppo)" #: InternalCollections.cpp:48 #, kde-format msgid "Sasquatch IV" msgstr "Sasquatch IV" #: main.cpp:27 #, kde-format msgid "Skladnik" msgstr "" #: main.cpp:29 #, kde-format msgid "The japanese warehouse keeper game" msgstr "Peli japanilaisesta varastomiehestä" #: main.cpp:31 #, kde-format msgid "" "(c) 1998 Anders Widell \n" "(c) 2012 Lukasz Kalamlacki" msgstr "" "© 1998 Anders Widell \n" "© 2012 Lukasz Kalamlacki" #: main.cpp:34 #, kde-format msgid "Shlomi Fish" msgstr "Shlomi Fish" #: main.cpp:35 #, kde-format msgid "For porting to Qt5/KF5 and doing other cleanups" msgstr "Siirros Qt5/KF5:een ja muut siivoukset" #: main.cpp:38 #, kde-format msgid "Lukasz Kalamlacki" msgstr "Lukasz Kalamlacki" #: main.cpp:39 #, kde-format msgid "For rewriting the original ksokoban game from kde3 to kde4" msgstr "Alkuperäisen ksokoban-pelin uudelleenkirjoitus KDE 3:sta KDE 4:ään" #: main.cpp:42 #, kde-format msgid "Anders Widell" msgstr "Anders Widell" #: main.cpp:43 #, kde-format msgid "For writing the original ksokoban game" msgstr "Alkuperäisen ksokoban-pelin kirjoittamisesta" #: main.cpp:46 #, kde-format msgid "David W. Skinner" msgstr "David W. Skinner" #: main.cpp:47 #, kde-format msgid "For contributing the Sokoban levels included in this game" msgstr "Lahjoittivat pelin mukana tulleita Sokoban-tasoja" #: main.cpp:56 #, kde-format msgid "Level collection file to load." msgstr "Ladattava tasokokoelmatiedosto." #: MainWindow.cpp:38 #, kde-format msgid "&Level Collection" msgstr "&Tasokokoelma" #: MainWindow.cpp:97 #, kde-format msgid "&Load Levels..." msgstr "&Lataa tasoja…" #: MainWindow.cpp:101 #, kde-format msgid "&Next Level" msgstr "&Seuraava taso" #: MainWindow.cpp:106 #, kde-format msgid "&Previous Level" msgstr "&Edellinen taso" #: MainWindow.cpp:111 #, kde-format msgid "Re&start Level" msgstr "&Aloita taso alusta" #: MainWindow.cpp:124 #, kde-format msgid "&Slow" msgstr "&Hidas" #: MainWindow.cpp:129 #, kde-format msgid "&Medium" msgstr "&Maltillinen" #: MainWindow.cpp:134 #, kde-format msgid "&Fast" msgstr "&Nopea" #: MainWindow.cpp:139 #, kde-format msgid "&Off" msgstr "&Ei käytössä" #: MainWindow.cpp:179 MainWindow.cpp:193 #, kde-format msgid "(unused)" msgstr "(käyttämätön)" #: MainWindow.cpp:229 #, kde-format msgid "(invalid)" msgstr "(virheellinen)" #: MainWindow.cpp:288 #, kde-format msgctxt "@title:window" msgid "Load Levels from a File" msgstr "Lataa tasot tiedostosta" #: MainWindow.cpp:323 #, kde-format msgid "No levels found in file" msgstr "Tiedostosta ei löydy tasoja" #: PlayField.cpp:102 #, kde-format msgid "Level:" msgstr "Taso:" #: PlayField.cpp:111 #, kde-format msgid "Steps:" msgstr "Askelia:" #: PlayField.cpp:120 #, kde-format msgid "Pushes:" msgstr "Työntöjä:" #: PlayField.cpp:351 #, kde-format msgid "Level completed" msgstr "Taso päästy loppuun" #: PlayField.cpp:680 #, kde-format msgid "" "This is the last level in\n" "the current collection." msgstr "" "Tämä on nykyisen kokoelman\n" "viimeinen taso." #: PlayField.cpp:686 #, kde-format msgid "" "You have not completed\n" "this level yet." msgstr "" "Et ole päässyt vielä\n" "tason loppuun." #: PlayField.cpp:700 #, kde-format msgid "" "This is the first level in\n" "the current collection." msgstr "" "Tämä on nykyisen kokoelman\n" "ensimmäinen taso." #: PlayField.cpp:778 #, kde-format msgid "" "Sorry, bookmarks for external levels\n" "is not implemented yet." msgstr "" "Kirjanmerkkejä ulkoisiin tasoihin\n" "ei ole vielä toteutettu." #: PlayField.cpp:803 #, kde-format msgid "This level is broken" msgstr "Tämä taso on rikki" #. i18n: ectx: Menu (game) #: skladnikui.rc:6 #, kde-format msgid "&Game" msgstr "&Peli" #. i18n: ectx: Menu (animation_speed) #: skladnikui.rc:20 #, kde-format msgid "&Animation" msgstr "&Animointi" #. i18n: ectx: Menu (bookmarks_menu) #: skladnikui.rc:27 #, kde-format msgid "&Bookmarks" msgstr "&Kirjanmerkit" #. i18n: ectx: Menu (set_bookmarks) #: skladnikui.rc:29 #, kde-format msgid "&Set Bookmark" msgstr "&Aseta kirjanmerkki" #. i18n: ectx: Menu (goto_bookmarks) #: skladnikui.rc:42 #, kde-format msgid "&Go to Bookmark" msgstr "&Siirry kirjanmerkkiin" #~ msgid "KSokoban" #~ msgstr "KSokoban" #~ msgid "[file]" #~ msgstr "[tiedosto]" #~ msgid "&Undo" #~ msgstr "K&umoa" #~ msgid "&Redo" #~ msgstr "T&ee uudelleen" #~ msgid "&Quit" #~ msgstr "&Lopeta" #~ msgid "Sasquatch V" #~ msgstr "Sasquatch V" #~ msgid "Mas Microban (easy)" #~ msgstr "Mas Microban (helppo)" #~ msgid "Sasquatch VI" #~ msgstr "Sasquatch VI" #~ msgid "LOMA" #~ msgstr "LOMA" #~ msgid "Sasquatch VII" #~ msgstr "Sasquatch VII" #~ msgid "(c) 1998-2001 Anders Widell" #~ msgstr "© 1998–2001 Anders Widell" skladnik-0.5.1/po/fr/000077500000000000000000000000001457640636700143645ustar00rootroot00000000000000skladnik-0.5.1/po/fr/skladnik.po000066400000000000000000000141101457640636700165210ustar00rootroot00000000000000# Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # Xavier Besnard , 2012, 2013, 2021, 2022. # Simon Depiets , 2019. # SPDX-FileCopyrightText: 2023 Xavier Besnard # msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-11-12 00:40+0000\n" "PO-Revision-Date: 2023-12-20 09:42+0100\n" "Last-Translator: Xavier Besnard \n" "Language-Team: \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: Lokalize 23.08.4\n" "X-Environment: kde\n" "X-Accelerator-Marker: &\n" "X-Text-Markup: kde4\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Xavier Besnard" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "xavier.besnard@kde.org" #: InternalCollections.cpp:32 #, kde-format msgid "Sasquatch" msgstr "Sasquatch" #: InternalCollections.cpp:36 #, kde-format msgid "Mas Sasquatch" msgstr "Mas Sasquatch" #: InternalCollections.cpp:40 #, kde-format msgid "Sasquatch III" msgstr "Sasquatch III" #: InternalCollections.cpp:44 #, kde-format msgid "Microban (easy)" msgstr "Microban (facile)" #: InternalCollections.cpp:48 #, kde-format msgid "Sasquatch IV" msgstr "Sasquatch IV" #: main.cpp:27 #, kde-format msgid "Skladnik" msgstr "Skladnik" #: main.cpp:29 #, kde-format msgid "The japanese warehouse keeper game" msgstr "Le jeu japonais de magasinier" #: main.cpp:31 #, kde-format msgid "" "(c) 1998 Anders Widell \n" "(c) 2012 Lukasz Kalamlacki" msgstr "" "(c) 1998 Anders Widell \n" "(c) 2012 Lukasz Kalamlacki" #: main.cpp:34 #, kde-format msgid "Shlomi Fish" msgstr "Shlomi Fish" #: main.cpp:35 #, kde-format msgid "For porting to Qt5/KF5 and doing other cleanups" msgstr "Portage vers Qt5/KF5 et nettoyage" #: main.cpp:38 #, kde-format msgid "Lukasz Kalamlacki" msgstr "Lukasz Kalamlacki" #: main.cpp:39 #, kde-format msgid "For rewriting the original ksokoban game from kde3 to kde4" msgstr "Réécriture du jeu ksokoban d'origine de kde3 vers kde4" #: main.cpp:42 #, kde-format msgid "Anders Widell" msgstr "Anders Widell" #: main.cpp:43 #, kde-format msgid "For writing the original ksokoban game" msgstr "Écriture du jeu ksokoban d'origine" #: main.cpp:46 #, kde-format msgid "David W. Skinner" msgstr "David W. Skinner" #: main.cpp:47 #, kde-format msgid "For contributing the Sokoban levels included in this game" msgstr "Pour la contribution aux niveaux de Sokoban inclus dans ce jeu" #: main.cpp:56 #, kde-format msgid "Level collection file to load." msgstr "Fichier de collections de niveaux à charger." #: MainWindow.cpp:38 #, kde-format msgid "&Level Collection" msgstr "Co&llection de niveaux" #: MainWindow.cpp:97 #, kde-format msgid "&Load Levels..." msgstr "&Charger des niveaux..." #: MainWindow.cpp:101 #, kde-format msgid "&Next Level" msgstr "&Niveau suivant" #: MainWindow.cpp:106 #, kde-format msgid "&Previous Level" msgstr "Niveau &précédent" #: MainWindow.cpp:111 #, kde-format msgid "Re&start Level" msgstr "&Re-démarrer un niveau" #: MainWindow.cpp:124 #, kde-format msgid "&Slow" msgstr "Len&t" #: MainWindow.cpp:129 #, kde-format msgid "&Medium" msgstr "&Moyen" #: MainWindow.cpp:134 #, kde-format msgid "&Fast" msgstr "Rapi&de" #: MainWindow.cpp:139 #, kde-format msgid "&Off" msgstr "&Désactivé" #: MainWindow.cpp:179 MainWindow.cpp:193 #, kde-format msgid "(unused)" msgstr "(non utilisé)" #: MainWindow.cpp:229 #, kde-format msgid "(invalid)" msgstr "(non valable)" #: MainWindow.cpp:288 #, kde-format msgctxt "@title:window" msgid "Load Levels from a File" msgstr "Charger les niveaux à partir d'un fichier" #: MainWindow.cpp:323 #, kde-format msgid "No levels found in file" msgstr "Aucun niveau trouvé dans le fichier" #: PlayField.cpp:102 #, kde-format msgid "Level:" msgstr "Niveau :" #: PlayField.cpp:111 #, kde-format msgid "Steps:" msgstr "Étapes :" #: PlayField.cpp:120 #, kde-format msgid "Pushes:" msgstr "Poussées :" #: PlayField.cpp:351 #, kde-format msgid "Level completed" msgstr "Niveau terminé" #: PlayField.cpp:680 #, kde-format msgid "" "This is the last level in\n" "the current collection." msgstr "" "Ceci est le dernier niveau dans \n" "la collection actuelle." #: PlayField.cpp:686 #, kde-format msgid "" "You have not completed\n" "this level yet." msgstr "" "Vous n'avez pas encore terminé\n" "ce niveau." #: PlayField.cpp:700 #, kde-format msgid "" "This is the first level in\n" "the current collection." msgstr "" "Ceci est le premier niveau dans\n" "la collection actuelle." #: PlayField.cpp:778 #, kde-format msgid "" "Sorry, bookmarks for external levels\n" "is not implemented yet." msgstr "" "Désolé, les signets pour les niveaux extérieurs\n" "ne sont encore disponibles." #: PlayField.cpp:803 #, kde-format msgid "This level is broken" msgstr "Ce niveau est cassé" #. i18n: ectx: Menu (game) #: skladnikui.rc:6 #, kde-format msgid "&Game" msgstr "&Jeu" #. i18n: ectx: Menu (animation_speed) #: skladnikui.rc:20 #, kde-format msgid "&Animation" msgstr "&Animation" #. i18n: ectx: Menu (bookmarks_menu) #: skladnikui.rc:27 #, kde-format msgid "&Bookmarks" msgstr "&Signets" #. i18n: ectx: Menu (set_bookmarks) #: skladnikui.rc:29 #, kde-format msgid "&Set Bookmark" msgstr "Définir un &signet" #. i18n: ectx: Menu (goto_bookmarks) #: skladnikui.rc:42 #, kde-format msgid "&Go to Bookmark" msgstr "Aller au si&gnet" #~ msgid "KSokoban" #~ msgstr "KSokoban" #~ msgid "[file]" #~ msgstr "[fichier]" #~ msgid "&Undo" #~ msgstr "Ann&uler" #~ msgid "&Redo" #~ msgstr "R&efaire" #~ msgid "&Quit" #~ msgstr "&Quitter" #~ msgid "Sasquatch V" #~ msgstr "Sasquatch V" #~ msgid "Mas Microban (easy)" #~ msgstr "Mas Microban (facile)" #~ msgid "Sasquatch VI" #~ msgstr "Sasquatch VI" #~ msgid "LOMA" #~ msgstr "LOMA" #~ msgid "Sasquatch VII" #~ msgstr "Sasquatch VII" #~ msgid "(c) 1998-2001 Anders Widell" #~ msgstr "(c) 1998-2001 Anders Widell" skladnik-0.5.1/po/ga/000077500000000000000000000000001457640636700143445ustar00rootroot00000000000000skladnik-0.5.1/po/ga/skladnik.po000066400000000000000000000132511457640636700165060ustar00rootroot00000000000000# Irish translation of ksokoban # Copyright (C) 2012 This_file_is_part_of_KDE # This file is distributed under the same license as the ksokoban package. # Kevin Scannell , 2012. msgid "" msgstr "" "Project-Id-Version: ksokoban\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-11-12 00:40+0000\n" "PO-Revision-Date: 2012-09-21 16:01-0500\n" "Last-Translator: Kevin Scannell \n" "Language-Team: Irish \n" "Language: ga\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=5; plural=n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n < 11 ? " "3 : 4\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Kevin Scannell" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "kscanne@gmail.com" #: InternalCollections.cpp:32 #, kde-format msgid "Sasquatch" msgstr "Sasquatch" #: InternalCollections.cpp:36 #, kde-format msgid "Mas Sasquatch" msgstr "Mas Sasquatch" #: InternalCollections.cpp:40 #, kde-format msgid "Sasquatch III" msgstr "Sasquatch III" #: InternalCollections.cpp:44 #, kde-format msgid "Microban (easy)" msgstr "Microban (éasca)" #: InternalCollections.cpp:48 #, kde-format msgid "Sasquatch IV" msgstr "Sasquatch IV" #: main.cpp:27 #, kde-format msgid "Skladnik" msgstr "" #: main.cpp:29 #, kde-format msgid "The japanese warehouse keeper game" msgstr "Cluiche Seapánach coimeádaí stórais" #: main.cpp:31 #, kde-format msgid "" "(c) 1998 Anders Widell \n" "(c) 2012 Lukasz Kalamlacki" msgstr "" #: main.cpp:34 #, kde-format msgid "Shlomi Fish" msgstr "" #: main.cpp:35 #, kde-format msgid "For porting to Qt5/KF5 and doing other cleanups" msgstr "" #: main.cpp:38 #, kde-format msgid "Lukasz Kalamlacki" msgstr "" #: main.cpp:39 #, kde-format msgid "For rewriting the original ksokoban game from kde3 to kde4" msgstr "" #: main.cpp:42 #, kde-format msgid "Anders Widell" msgstr "Anders Widell" #: main.cpp:43 #, kde-format msgid "For writing the original ksokoban game" msgstr "" #: main.cpp:46 #, kde-format msgid "David W. Skinner" msgstr "David W. Skinner" #: main.cpp:47 #, kde-format msgid "For contributing the Sokoban levels included in this game" msgstr "Na leibhéil Sokoban atá isteach leis an gcluiche seo" #: main.cpp:56 #, fuzzy, kde-format #| msgid "Level collection file to load" msgid "Level collection file to load." msgstr "Comhad bailiúcháin leibhéal lu luchtú" #: MainWindow.cpp:38 #, kde-format msgid "&Level Collection" msgstr "Bailiúchán &Leibhéal" #: MainWindow.cpp:97 #, fuzzy, kde-format #| msgid "Load Levels From File" msgid "&Load Levels..." msgstr "Luchtaigh Leibhéil Ó Chomhad" #: MainWindow.cpp:101 #, kde-format msgid "&Next Level" msgstr "An Chéad Leibhéal &Eile" #: MainWindow.cpp:106 #, kde-format msgid "&Previous Level" msgstr "An Leibhéal &Roimhe Seo" #: MainWindow.cpp:111 #, kde-format msgid "Re&start Level" msgstr "Ato&saigh an Leibhéal" #: MainWindow.cpp:124 #, kde-format msgid "&Slow" msgstr "&Mall" #: MainWindow.cpp:129 #, kde-format msgid "&Medium" msgstr "&Measartha" #: MainWindow.cpp:134 #, kde-format msgid "&Fast" msgstr "&Tapa" #: MainWindow.cpp:139 #, kde-format msgid "&Off" msgstr "&Múchta" #: MainWindow.cpp:179 MainWindow.cpp:193 #, kde-format msgid "(unused)" msgstr "(gan úsáid)" #: MainWindow.cpp:229 #, kde-format msgid "(invalid)" msgstr "(neamhbhailí)" #: MainWindow.cpp:288 #, fuzzy, kde-format #| msgid "Load Levels From File" msgctxt "@title:window" msgid "Load Levels from a File" msgstr "Luchtaigh Leibhéil Ó Chomhad" #: MainWindow.cpp:323 #, kde-format msgid "No levels found in file" msgstr "Níor aimsíodh aon leibhéil sa chomhad" #: PlayField.cpp:102 #, kde-format msgid "Level:" msgstr "Leibhéal:" #: PlayField.cpp:111 #, kde-format msgid "Steps:" msgstr "Céimeanna:" #: PlayField.cpp:120 #, kde-format msgid "Pushes:" msgstr "Brúnna:" #: PlayField.cpp:351 #, kde-format msgid "Level completed" msgstr "Leibhéal críochnaithe" #: PlayField.cpp:680 #, kde-format msgid "" "This is the last level in\n" "the current collection." msgstr "" "Seo é an leibhéal deiridh sa\n" "bhailiúchán reatha." #: PlayField.cpp:686 #, kde-format msgid "" "You have not completed\n" "this level yet." msgstr "" "Níl an leibhéal seo\n" "déanta agat fós." #: PlayField.cpp:700 #, kde-format msgid "" "This is the first level in\n" "the current collection." msgstr "" "Seo é an chéad leibhéal sa\n" "bhailiúchán reatha." #: PlayField.cpp:778 #, kde-format msgid "" "Sorry, bookmarks for external levels\n" "is not implemented yet." msgstr "" "Tá brón orm, níl leabharmharcanna do\n" "leibhéil sheachtracha ar fáil fós." #: PlayField.cpp:803 #, kde-format msgid "This level is broken" msgstr "Tá an leibhéal seo briste" #. i18n: ectx: Menu (game) #: skladnikui.rc:6 #, kde-format msgid "&Game" msgstr "" #. i18n: ectx: Menu (animation_speed) #: skladnikui.rc:20 #, kde-format msgid "&Animation" msgstr "" #. i18n: ectx: Menu (bookmarks_menu) #: skladnikui.rc:27 #, kde-format msgid "&Bookmarks" msgstr "" #. i18n: ectx: Menu (set_bookmarks) #: skladnikui.rc:29 #, kde-format msgid "&Set Bookmark" msgstr "" #. i18n: ectx: Menu (goto_bookmarks) #: skladnikui.rc:42 #, kde-format msgid "&Go to Bookmark" msgstr "" #, fuzzy #~| msgid "KSokoban" #~ msgid "KSokoban" #~ msgstr "KSokoban" #~ msgid "Sasquatch V" #~ msgstr "Sasquatch V" #~ msgid "Mas Microban (easy)" #~ msgstr "Mas Microban (éasca)" #~ msgid "Sasquatch VI" #~ msgstr "Sasquatch VI" #~ msgid "LOMA" #~ msgstr "LOMA" #~ msgid "Sasquatch VII" #~ msgstr "Sasquatch VII" #~ msgid "(c) 1998-2001 Anders Widell" #~ msgstr "© 1998-2001 Anders Widell" skladnik-0.5.1/po/gl/000077500000000000000000000000001457640636700143575ustar00rootroot00000000000000skladnik-0.5.1/po/gl/skladnik.po000066400000000000000000000137511457640636700165260ustar00rootroot00000000000000# Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # Marce Villarino , 2013. # Adrián Chaves Fernández , 2015. # SPDX-FileCopyrightText: 2023 Adrián Chaves (Gallaecio) # msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-11-12 00:40+0000\n" "PO-Revision-Date: 2023-11-15 18:39+0100\n" "Last-Translator: Adrián Chaves (Gallaecio) \n" "Language-Team: Galician \n" "Language: gl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Lokalize 23.08.2\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Adrián Chaves Fernández" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "adrian@chaves.io" #: InternalCollections.cpp:32 #, kde-format msgid "Sasquatch" msgstr "Sasquatch" #: InternalCollections.cpp:36 #, kde-format msgid "Mas Sasquatch" msgstr "Mas Sasquatch" #: InternalCollections.cpp:40 #, kde-format msgid "Sasquatch III" msgstr "Sasquatch III" #: InternalCollections.cpp:44 #, kde-format msgid "Microban (easy)" msgstr "Microban (fácil)" #: InternalCollections.cpp:48 #, kde-format msgid "Sasquatch IV" msgstr "Sasquatch IV" #: main.cpp:27 #, kde-format msgid "Skladnik" msgstr "Skladnik" #: main.cpp:29 #, kde-format msgid "The japanese warehouse keeper game" msgstr "O xogo xaponés de garda de almacén." #: main.cpp:31 #, kde-format msgid "" "(c) 1998 Anders Widell \n" "(c) 2012 Lukasz Kalamlacki" msgstr "" "© 1998 Anders Widell \n" "© 2012 Lukasz Kalamlacki" #: main.cpp:34 #, kde-format msgid "Shlomi Fish" msgstr "Shlomi Fish" #: main.cpp:35 #, kde-format msgid "For porting to Qt5/KF5 and doing other cleanups" msgstr "Migración a Qt 5 e KF 5 e tarefas de limpeza" #: main.cpp:38 #, kde-format msgid "Lukasz Kalamlacki" msgstr "Lukasz Kalamlacki" #: main.cpp:39 #, kde-format msgid "For rewriting the original ksokoban game from kde3 to kde4" msgstr "Reescritura do xogo ksokoban orixinal de KDE 3 para KDE 4" #: main.cpp:42 #, kde-format msgid "Anders Widell" msgstr "Anders Widell" #: main.cpp:43 #, kde-format msgid "For writing the original ksokoban game" msgstr "Autor do xogo ksokoban orixinal" #: main.cpp:46 #, kde-format msgid "David W. Skinner" msgstr "David W. Skinner" #: main.cpp:47 #, kde-format msgid "For contributing the Sokoban levels included in this game" msgstr "Por contribuír cos niveis de Sokoban que se inclúen co xogo." #: main.cpp:56 #, kde-format msgid "Level collection file to load." msgstr "Ficheiro de colección de niveis para cargar." #: MainWindow.cpp:38 #, kde-format msgid "&Level Collection" msgstr "Co&lección de niveis" #: MainWindow.cpp:97 #, kde-format msgid "&Load Levels..." msgstr "&Cargar niveis…" #: MainWindow.cpp:101 #, kde-format msgid "&Next Level" msgstr "&Seguinte nivel" #: MainWindow.cpp:106 #, kde-format msgid "&Previous Level" msgstr "&Nivel anterior" #: MainWindow.cpp:111 #, kde-format msgid "Re&start Level" msgstr "Re&iniciar o nivel" #: MainWindow.cpp:124 #, kde-format msgid "&Slow" msgstr "&Lenta" #: MainWindow.cpp:129 #, kde-format msgid "&Medium" msgstr "&Media" #: MainWindow.cpp:134 #, kde-format msgid "&Fast" msgstr "&Rápida" #: MainWindow.cpp:139 #, kde-format msgid "&Off" msgstr "&Desactivada" #: MainWindow.cpp:179 MainWindow.cpp:193 #, kde-format msgid "(unused)" msgstr "(sen usar)" #: MainWindow.cpp:229 #, kde-format msgid "(invalid)" msgstr "(incorrecto)" #: MainWindow.cpp:288 #, kde-format msgctxt "@title:window" msgid "Load Levels from a File" msgstr "Cargar niveis dun ficheiro" #: MainWindow.cpp:323 #, kde-format msgid "No levels found in file" msgstr "Non se atoparon niveis no ficheiro." #: PlayField.cpp:102 #, kde-format msgid "Level:" msgstr "Nivel:" #: PlayField.cpp:111 #, kde-format msgid "Steps:" msgstr "Pasos:" #: PlayField.cpp:120 #, kde-format msgid "Pushes:" msgstr "Empurróns:" #: PlayField.cpp:351 #, kde-format msgid "Level completed" msgstr "Completouse o nivel" #: PlayField.cpp:680 #, kde-format msgid "" "This is the last level in\n" "the current collection." msgstr "" "Este é o último nivel\n" "da colección actual." #: PlayField.cpp:686 #, kde-format msgid "" "You have not completed\n" "this level yet." msgstr "" "Aínda non completaches\n" "este nivel." #: PlayField.cpp:700 #, kde-format msgid "" "This is the first level in\n" "the current collection." msgstr "" "Este é o primeiro nivel\n" "da colección actual." #: PlayField.cpp:778 #, kde-format msgid "" "Sorry, bookmarks for external levels\n" "is not implemented yet." msgstr "" "Os marcadores aínda non están\n" "dispoñíbeis para niveis externos." #: PlayField.cpp:803 #, kde-format msgid "This level is broken" msgstr "Este nivel está danado." #. i18n: ectx: Menu (game) #: skladnikui.rc:6 #, kde-format msgid "&Game" msgstr "&Partida" #. i18n: ectx: Menu (animation_speed) #: skladnikui.rc:20 #, kde-format msgid "&Animation" msgstr "&Animacións" #. i18n: ectx: Menu (bookmarks_menu) #: skladnikui.rc:27 #, kde-format msgid "&Bookmarks" msgstr "&Marcadores" #. i18n: ectx: Menu (set_bookmarks) #: skladnikui.rc:29 #, kde-format msgid "&Set Bookmark" msgstr "&Definir un marcador" #. i18n: ectx: Menu (goto_bookmarks) #: skladnikui.rc:42 #, kde-format msgid "&Go to Bookmark" msgstr "&Ir a un marcador" #~ msgid "KSokoban" #~ msgstr "KSokoban" #~ msgid "[file]" #~ msgstr "[ficheiro]" #~ msgid "&Undo" #~ msgstr "&Desfacer" #~ msgid "&Redo" #~ msgstr "&Refacer" #~ msgid "&Quit" #~ msgstr "&Saír" #~ msgid "Sasquatch V" #~ msgstr "Sasquatch V" #~ msgid "Mas Microban (easy)" #~ msgstr "Mas Microban (fácil)" #~ msgid "Sasquatch VI" #~ msgstr "Sasquatch VI" #~ msgid "LOMA" #~ msgstr "LOMA" #~ msgid "Sasquatch VII" #~ msgstr "Sasquatch VII" #~ msgid "(c) 1998-2001 Anders Widell" #~ msgstr "© 1998-2001 Anders Widell" skladnik-0.5.1/po/hu/000077500000000000000000000000001457640636700143715ustar00rootroot00000000000000skladnik-0.5.1/po/hu/skladnik.po000066400000000000000000000131471457640636700165370ustar00rootroot00000000000000# Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # # Balázs Úr , 2012. # Kristóf Kiszel , 2014. msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-11-12 00:40+0000\n" "PO-Revision-Date: 2014-03-19 10:25+0100\n" "Last-Translator: Kristóf Kiszel \n" "Language-Team: Hungarian \n" "Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Lokalize 1.5\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Kiszel Kristóf,Úr Balázs" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "ulysses@kubuntu.org,urbalazs@gmail.com" #: InternalCollections.cpp:32 #, kde-format msgid "Sasquatch" msgstr "Sasquatch" #: InternalCollections.cpp:36 #, kde-format msgid "Mas Sasquatch" msgstr "Mas Sasquatch" #: InternalCollections.cpp:40 #, kde-format msgid "Sasquatch III" msgstr "Sasquatch III" #: InternalCollections.cpp:44 #, kde-format msgid "Microban (easy)" msgstr "Microban (egyszerű)" #: InternalCollections.cpp:48 #, kde-format msgid "Sasquatch IV" msgstr "Sasquatch IV" #: main.cpp:27 #, kde-format msgid "Skladnik" msgstr "" #: main.cpp:29 #, kde-format msgid "The japanese warehouse keeper game" msgstr "A japán raktáros játék" #: main.cpp:31 #, kde-format msgid "" "(c) 1998 Anders Widell \n" "(c) 2012 Lukasz Kalamlacki" msgstr "" #: main.cpp:34 #, kde-format msgid "Shlomi Fish" msgstr "" #: main.cpp:35 #, kde-format msgid "For porting to Qt5/KF5 and doing other cleanups" msgstr "" #: main.cpp:38 #, kde-format msgid "Lukasz Kalamlacki" msgstr "" #: main.cpp:39 #, kde-format msgid "For rewriting the original ksokoban game from kde3 to kde4" msgstr "" #: main.cpp:42 #, kde-format msgid "Anders Widell" msgstr "Anders Widell" #: main.cpp:43 #, kde-format msgid "For writing the original ksokoban game" msgstr "" #: main.cpp:46 #, kde-format msgid "David W. Skinner" msgstr "David W. Skinner" #: main.cpp:47 #, kde-format msgid "For contributing the Sokoban levels included in this game" msgstr "Sokoban pályák készítése a játékhoz" #: main.cpp:56 #, fuzzy, kde-format #| msgid "Level collection file to load" msgid "Level collection file to load." msgstr "A betöltendő szint gyűjtemény fájl" #: MainWindow.cpp:38 #, kde-format msgid "&Level Collection" msgstr "&Szint gyűjtemény" #: MainWindow.cpp:97 #, fuzzy, kde-format #| msgid "Load Levels From File" msgid "&Load Levels..." msgstr "Szintek betöltése fájlból" #: MainWindow.cpp:101 #, kde-format msgid "&Next Level" msgstr "&Következő szint" #: MainWindow.cpp:106 #, kde-format msgid "&Previous Level" msgstr "&Előző szint" #: MainWindow.cpp:111 #, kde-format msgid "Re&start Level" msgstr "Szint újr&aindítása" #: MainWindow.cpp:124 #, kde-format msgid "&Slow" msgstr "&Lassú" #: MainWindow.cpp:129 #, kde-format msgid "&Medium" msgstr "Kö&zepes" #: MainWindow.cpp:134 #, kde-format msgid "&Fast" msgstr "&Gyors" #: MainWindow.cpp:139 #, kde-format msgid "&Off" msgstr "&Ki" #: MainWindow.cpp:179 MainWindow.cpp:193 #, kde-format msgid "(unused)" msgstr "(nem használt)" #: MainWindow.cpp:229 #, kde-format msgid "(invalid)" msgstr "(érvénytelen)" #: MainWindow.cpp:288 #, fuzzy, kde-format #| msgid "Load Levels From File" msgctxt "@title:window" msgid "Load Levels from a File" msgstr "Szintek betöltése fájlból" #: MainWindow.cpp:323 #, kde-format msgid "No levels found in file" msgstr "Nem található szint a fájlban" #: PlayField.cpp:102 #, kde-format msgid "Level:" msgstr "Szint:" #: PlayField.cpp:111 #, kde-format msgid "Steps:" msgstr "Lépések:" #: PlayField.cpp:120 #, kde-format msgid "Pushes:" msgstr "Tolások:" #: PlayField.cpp:351 #, kde-format msgid "Level completed" msgstr "Szint teljesítve" #: PlayField.cpp:680 #, kde-format msgid "" "This is the last level in\n" "the current collection." msgstr "" "Ez az utolsó szint a\n" "jelenlegi gyűjteményben." #: PlayField.cpp:686 #, kde-format msgid "" "You have not completed\n" "this level yet." msgstr "" "Még nem teljesítette\n" "ezt a szintet." #: PlayField.cpp:700 #, kde-format msgid "" "This is the first level in\n" "the current collection." msgstr "" "Ez az első szint a\n" "jelenlegi gyűjteményben." #: PlayField.cpp:778 #, kde-format msgid "" "Sorry, bookmarks for external levels\n" "is not implemented yet." msgstr "" "Elnézést, a külső szintek könyvjelzői\n" "még nincsenek megvalósítva." #: PlayField.cpp:803 #, kde-format msgid "This level is broken" msgstr "Ez a szint sérült" #. i18n: ectx: Menu (game) #: skladnikui.rc:6 #, kde-format msgid "&Game" msgstr "" #. i18n: ectx: Menu (animation_speed) #: skladnikui.rc:20 #, kde-format msgid "&Animation" msgstr "" #. i18n: ectx: Menu (bookmarks_menu) #: skladnikui.rc:27 #, kde-format msgid "&Bookmarks" msgstr "" #. i18n: ectx: Menu (set_bookmarks) #: skladnikui.rc:29 #, kde-format msgid "&Set Bookmark" msgstr "" #. i18n: ectx: Menu (goto_bookmarks) #: skladnikui.rc:42 #, kde-format msgid "&Go to Bookmark" msgstr "" #, fuzzy #~| msgid "KSokoban" #~ msgid "KSokoban" #~ msgstr "KSokoban" #~ msgid "Sasquatch V" #~ msgstr "Sasquatch V" #~ msgid "Mas Microban (easy)" #~ msgstr "Mas Microban (egyszerű)" #~ msgid "Sasquatch VI" #~ msgstr "Sasquatch VI" #~ msgid "LOMA" #~ msgstr "LOMA" #~ msgid "Sasquatch VII" #~ msgstr "Sasquatch VII" #~ msgid "(c) 1998-2001 Anders Widell" #~ msgstr "© Anders Widell, 1998-2001." skladnik-0.5.1/po/it/000077500000000000000000000000001457640636700143715ustar00rootroot00000000000000skladnik-0.5.1/po/it/docs/000077500000000000000000000000001457640636700153215ustar00rootroot00000000000000skladnik-0.5.1/po/it/docs/skladnik/000077500000000000000000000000001457640636700171215ustar00rootroot00000000000000skladnik-0.5.1/po/it/docs/skladnik/index.docbook000066400000000000000000000330331457640636700215740ustar00rootroot00000000000000 Skladnik"> ]> Manuale di &skladnik; Anders Widell
&Anders.Widell.mail;
VincenzoReale
smart2128vr@gmail.com
Traduzione del documento
2000 &Anders.Widell; &FDLNotice; 19/8/2021 0.5.0 &skladnik; è un'implementazione del gioco giapponese del magazziniere sokoban. KDE kdegames gioco sokoban skladnik
Introduzione Il primo gioco sokoban fu creato nel 1982 da Hiroyuki Imabayashi presso la società giapponese Thinking Rabbit, Inc. Sokoban significa magazziniere in giapponese. L'idea è quella di un magazziniere che prova a spingere le casse nella posizione corretta in un magazzino. Il problema è che non è possibile tirare le casse o passarci sopra. Se non si pone attenzione, alcune casse possono rimanere bloccate in posti sbagliati e/o bloccare il percorso. Può essere piuttosto difficile solo risolvere un livello. Ma se si vuole renderlo ancora più difficile, è possibile provare a ridurre al minimo il numero di mosse e/o spinte che si utilizzano per risolvere il livello. Per rendere il gioco più divertente per i bambini piccoli (meno di 10 anni circa), in &skladnik; sono incluse anche alcune raccolte con livelli più semplici. Questi sono contrassegnati come (facile) nel menu della raccolta dei livelli. Naturalmente, questi livelli possono essere divertenti anche per gli adulti, ad esempio se non si vuole sottoporsi a sforzi mentali. La partita L'obiettivo del gioco è spingere tutte le gemme rosse nelle caselle di destinazione, che sono marcate con elementi rotondi verdi vetrosi sul pavimento. Utilizzare le frecce direzionali o il mouse per spostarsi. Se ci si sposta su una gemma utilizzando le frecce direzionali o il pulsante centrale del mouse, e non c'è nulla che la blocchi sul lato opposto, allora si spingerà la gemma. Non è possibile tirare le gemme, quindi se si spinge una gemma in un angolo rimarrà bloccata lì. Non è possibile nemmeno scavalcare le gemme, è quindi possibile anche rimanere intrappolati in una parte del labirinto bloccando la strada con le gemme. Si noti inoltre che non è possibile spingere più di una gemma alla volta. Se si nota di aver spostato le gemme in modo tale che il livello sia impossibile da risolvere, è possibile sempre utilizzare la funzione Annulla per tornare in una posizione in cui l'errore non sia stato ancora commesso. Ovviamente è possibile anche riavviare il livello fin dall'inizio. Controlli TastoAzione Frecce direzionaliSpostare di una casella in una direzione &Ctrl;Frecce direzionaliSpostarsi il più lontano possibile in una direzione senza spingere alcuna gemma &Shift;Frecce direzionali Spostarsi il più lontano possibile in una direzione, spingendo qualsiasi gemma sulla percorso Pulsante sinistro del mouseSpostarsi in ogni posto del labirinto che può essere raggiunto senza spingere alcuna gemma  Pulsante centrale del mouse o &Ctrl;ZAnnulla l'ultima mossa Pulsante destro del mouseSpostare su/giù/sinistra/destra in linea retta, spingendo le gemme nel percorso Rotella del mouseAttraversa la cronologia &Ctrl;&Shift;Z Ripetere l'ultima mossa annullata NAndare al livello successivo nella raccolta dei livelli attuale PAndare al livello precedente nella raccolta dei livelli attuale &Esc;Riavviare il livello attuale &Ctrl;QUscire dal gioco Caricamento dei livelli esterni &skladnik; ha la capacità di caricare livelli di sokoban esterni da file di testo. È possibile caricare i livelli utilizzando la voce di menu Carica livelli... Carica livelli... o specificando l'&URL; del file di livello; come argomento da riga di comando all'avvio di &skladnik; da una shell. I livelli esterni devono essere definiti utilizzando i caratteri standard mostrati nella tabella seguente. Se il file contiene più di un livello, i livelli devono essere separati da righe vuote. Il file può contenere anche testo tra i livelli. PersonaggioSignificato #Muro (spazio)Casella vuota .Casella di destinazione $Oggetto su una casella vuota *Oggetto su una casella di destinazione @Posizione iniziale su una casella vuota  +Posizione iniziale su una casella di destinazione Come esempio, sotto riportiamo una rappresentazione testuale del primo livello della raccolta di livelli Microban: #### # .# # ### #*@ # # $ # # ### #### Guida ai menu Questa è una guida completa ai menu di &skladnik;. Il menu Partita Partita Carica livelli... Caricare un livello esterno. Vedere la sezione Caricare livelli esterni per ulteriori informazioni. N PartitaLivello successivo Caricare il livello successivo. P Partita Livello precedente Tornare al livello precedente. &Esc; Partita Riavvia livello Riavviare il livello attuale. Partita Raccolta livelli Un sottomenu per passare a un insieme diverso di livelli. &skladnik; nasce con numerosi insiemi di livelli, ed è possibile caricarne altri disponibili su Internet. &Ctrl;Z Partita Annulla Annulla l'ultima mossa. &Ctrl;&Shift;Z Partita Rifai Ripetere l'ultima mossa annullata con la suddetta voce di menu &Ctrl;Q Partita Esci Esci da &skladnik;. Il menu Animazione Questo menu offre voci di menu con caselle di selezione che consentono di specificare la velocità con cui vengono mostrate le animazioni di riproduzione del movimento. AnimazioneLenta Mostrare le animazioni di riproduzione a velocità bassa. AnimazioneMedia Questa è l'impostazione predefinita, e mostra le animazioni di riproduzione a una velocità leggermente più alta. Animazione Veloce Mostrare le animazioni di riproduzione a velocità alta. AnimazioneSpenta Non animare le animazioni di riproduzione. Il menu Segnalibri Segnalibri Imposta segnalibro &skladnik; consente di impostare segnalibri con un livello in uno stato particolare.Potresti usare questo per evitare di ripetere gli stessi passaggi iniziali in un livello. È possibile avere fino a dieci segnalibri contemporaneamente, e accedervi tramite la scorciatoia &Ctrl;X, dove X è una cifra qualsiasi tra 0 e 9. Segnalibri Vai a segnalibro Saltare in uno stato precedentemente salvato come un segnalibro. Il menu Aiuto &skladnik; ha il menu Aiuto comune di &kde;; per maggiori informazioni, consulta la sezione sul menu Aiuto dei «Fondamentali di &kde;». Riconoscimenti e licenza &skladnik; è copyright © 1998-2000 di &Anders.Widell; &Anders.Widell.mail;. La grafica di sfondo starfield è stata presa da Gimpo. Tutti gli altri elementi grafici sono stati creati da &Anders.Widell; &Anders.Widell.mail; utilizzando il programma Povray Tutti i i livelli di sokoban attualmente inclusi sono stati creati da David W. Skinner sasquatch@bentonrea.com. Vedere la sua pagina di sokoban. Traduzione: Vincenzo Reale smart2128vr@gmail.com &underFDL; &underGPL; &documentation.index;
skladnik-0.5.1/po/it/skladnik.po000066400000000000000000000137441457640636700165420ustar00rootroot00000000000000# Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # SPDX-FileCopyrightText: 2020, 2021, 2022, 2023 Vincenzo Reale # # Luciano Montanaro, 2015. msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-11-12 00:40+0000\n" "PO-Revision-Date: 2023-11-13 09:37+0100\n" "Last-Translator: Vincenzo Reale \n" "Language-Team: Italian \n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Lokalize 23.08.2\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Vincenzo Reale,Luciano Montanaro" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "smart2128vr@gmail.com," #: InternalCollections.cpp:32 #, kde-format msgid "Sasquatch" msgstr "Sasquatch" #: InternalCollections.cpp:36 #, kde-format msgid "Mas Sasquatch" msgstr "Mas Sasquatch" #: InternalCollections.cpp:40 #, kde-format msgid "Sasquatch III" msgstr "Sasquatch III" #: InternalCollections.cpp:44 #, kde-format msgid "Microban (easy)" msgstr "Microban (facile)" #: InternalCollections.cpp:48 #, kde-format msgid "Sasquatch IV" msgstr "Sasquatch IV" #: main.cpp:27 #, kde-format msgid "Skladnik" msgstr "Skladnik" #: main.cpp:29 #, kde-format msgid "The japanese warehouse keeper game" msgstr "Il gioco del magazzino giapponese" #: main.cpp:31 #, kde-format msgid "" "(c) 1998 Anders Widell \n" "(c) 2012 Lukasz Kalamlacki" msgstr "" "(c) 1998 Anders Widell \n" "(c) 2012 Lukasz Kalamlacki" #: main.cpp:34 #, kde-format msgid "Shlomi Fish" msgstr "Shlomi Fish" #: main.cpp:35 #, kde-format msgid "For porting to Qt5/KF5 and doing other cleanups" msgstr "Per la conversione a Qt5/KF5 e altre ottimizzazioni" #: main.cpp:38 #, kde-format msgid "Lukasz Kalamlacki" msgstr "Lukasz Kalamlacki" #: main.cpp:39 #, kde-format msgid "For rewriting the original ksokoban game from kde3 to kde4" msgstr "Per la riscrittura del gioco ksokoban originale da kde3 a kde4" #: main.cpp:42 #, kde-format msgid "Anders Widell" msgstr "Anders Widell" #: main.cpp:43 #, kde-format msgid "For writing the original ksokoban game" msgstr "Per la scrittura del gioco ksokoban originale" #: main.cpp:46 #, kde-format msgid "David W. Skinner" msgstr "David W. Skinner" #: main.cpp:47 #, kde-format msgid "For contributing the Sokoban levels included in this game" msgstr "Per il contributo dei livelli di Sokoban inclusi in questo gioco" #: main.cpp:56 #, kde-format msgid "Level collection file to load." msgstr "File di collezione di livelli da caricare." #: MainWindow.cpp:38 #, kde-format msgid "&Level Collection" msgstr "Collezione di &livelli" #: MainWindow.cpp:97 #, kde-format msgid "&Load Levels..." msgstr "Carica i &livelli..." #: MainWindow.cpp:101 #, kde-format msgid "&Next Level" msgstr "&Livello successivo" #: MainWindow.cpp:106 #, kde-format msgid "&Previous Level" msgstr "Livello &precedente" #: MainWindow.cpp:111 #, kde-format msgid "Re&start Level" msgstr "Ri&comincia il livello" #: MainWindow.cpp:124 #, kde-format msgid "&Slow" msgstr "Len&to" #: MainWindow.cpp:129 #, kde-format msgid "&Medium" msgstr "&Medio" #: MainWindow.cpp:134 #, kde-format msgid "&Fast" msgstr "&Veloce" #: MainWindow.cpp:139 #, kde-format msgid "&Off" msgstr "&Spento" #: MainWindow.cpp:179 MainWindow.cpp:193 #, kde-format msgid "(unused)" msgstr "(non usato)" #: MainWindow.cpp:229 #, kde-format msgid "(invalid)" msgstr "(non valido)" #: MainWindow.cpp:288 #, kde-format msgctxt "@title:window" msgid "Load Levels from a File" msgstr "Carica livelli da un file" #: MainWindow.cpp:323 #, kde-format msgid "No levels found in file" msgstr "Nessun livello trovato" #: PlayField.cpp:102 #, kde-format msgid "Level:" msgstr "Livello:" #: PlayField.cpp:111 #, kde-format msgid "Steps:" msgstr "Passi:" #: PlayField.cpp:120 #, kde-format msgid "Pushes:" msgstr "Spinte:" #: PlayField.cpp:351 #, kde-format msgid "Level completed" msgstr "Livello completato" #: PlayField.cpp:680 #, kde-format msgid "" "This is the last level in\n" "the current collection." msgstr "" "Questo è l'ultimo livello\n" "nella collezione attuale." #: PlayField.cpp:686 #, kde-format msgid "" "You have not completed\n" "this level yet." msgstr "" "Non hai ancora completato\n" "questo livello." #: PlayField.cpp:700 #, kde-format msgid "" "This is the first level in\n" "the current collection." msgstr "" "Questo è il primo livello\n" "della collezione attuale." #: PlayField.cpp:778 #, kde-format msgid "" "Sorry, bookmarks for external levels\n" "is not implemented yet." msgstr "" "Spiacente, i segnalibri per i livelli esterni\n" "non sono ancora implementati." #: PlayField.cpp:803 #, kde-format msgid "This level is broken" msgstr "Questo livello è rotto" #. i18n: ectx: Menu (game) #: skladnikui.rc:6 #, kde-format msgid "&Game" msgstr "&Partita" #. i18n: ectx: Menu (animation_speed) #: skladnikui.rc:20 #, kde-format msgid "&Animation" msgstr "&Animazione" #. i18n: ectx: Menu (bookmarks_menu) #: skladnikui.rc:27 #, kde-format msgid "&Bookmarks" msgstr "Segnali&bri" #. i18n: ectx: Menu (set_bookmarks) #: skladnikui.rc:29 #, kde-format msgid "&Set Bookmark" msgstr "Imposta segnali&bro" #. i18n: ectx: Menu (goto_bookmarks) #: skladnikui.rc:42 #, kde-format msgid "&Go to Bookmark" msgstr "Vai al se&gnalibro successivo" #~ msgid "KSokoban" #~ msgstr "KSokoban" #~ msgid "[file]" #~ msgstr "[file]" #~ msgid "&Undo" #~ msgstr "&Annulla" #~ msgid "&Redo" #~ msgstr "&Rifai" #~ msgid "&Quit" #~ msgstr "&Esci" #~ msgid "Sasquatch V" #~ msgstr "Sasquatch V" #~ msgid "Mas Microban (easy)" #~ msgstr "Mas Microban (facile)" #~ msgid "Sasquatch VI" #~ msgstr "Sasquatch VI" #~ msgid "LOMA" #~ msgstr "LOMA" #~ msgid "Sasquatch VII" #~ msgstr "Sasquatch VII" #~ msgid "(c) 1998-2001 Anders Widell" #~ msgstr "© 1998-2001 Anders Widell" skladnik-0.5.1/po/ja/000077500000000000000000000000001457640636700143475ustar00rootroot00000000000000skladnik-0.5.1/po/ja/skladnik.po000066400000000000000000000102131457640636700165040ustar00rootroot00000000000000msgid "" msgstr "" "Project-Id-Version: ksokoban\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-11-12 00:40+0000\n" "PO-Revision-Date: 2012-09-13 23:04-0700\n" "Last-Translator: Japanese KDE translation team \n" "Language-Team: Japanese \n" "Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Accelerator-Marker: &\n" "X-Text-Markup: kde4\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "" #: InternalCollections.cpp:32 #, kde-format msgid "Sasquatch" msgstr "" #: InternalCollections.cpp:36 #, kde-format msgid "Mas Sasquatch" msgstr "" #: InternalCollections.cpp:40 #, kde-format msgid "Sasquatch III" msgstr "" #: InternalCollections.cpp:44 #, kde-format msgid "Microban (easy)" msgstr "" #: InternalCollections.cpp:48 #, kde-format msgid "Sasquatch IV" msgstr "" #: main.cpp:27 #, kde-format msgid "Skladnik" msgstr "" #: main.cpp:29 #, kde-format msgid "The japanese warehouse keeper game" msgstr "" #: main.cpp:31 #, kde-format msgid "" "(c) 1998 Anders Widell \n" "(c) 2012 Lukasz Kalamlacki" msgstr "" #: main.cpp:34 #, kde-format msgid "Shlomi Fish" msgstr "" #: main.cpp:35 #, kde-format msgid "For porting to Qt5/KF5 and doing other cleanups" msgstr "" #: main.cpp:38 #, kde-format msgid "Lukasz Kalamlacki" msgstr "" #: main.cpp:39 #, kde-format msgid "For rewriting the original ksokoban game from kde3 to kde4" msgstr "" #: main.cpp:42 #, kde-format msgid "Anders Widell" msgstr "" #: main.cpp:43 #, kde-format msgid "For writing the original ksokoban game" msgstr "" #: main.cpp:46 #, kde-format msgid "David W. Skinner" msgstr "" #: main.cpp:47 #, kde-format msgid "For contributing the Sokoban levels included in this game" msgstr "" #: main.cpp:56 #, kde-format msgid "Level collection file to load." msgstr "" #: MainWindow.cpp:38 #, kde-format msgid "&Level Collection" msgstr "" #: MainWindow.cpp:97 #, kde-format msgid "&Load Levels..." msgstr "" #: MainWindow.cpp:101 #, kde-format msgid "&Next Level" msgstr "" #: MainWindow.cpp:106 #, kde-format msgid "&Previous Level" msgstr "" #: MainWindow.cpp:111 #, kde-format msgid "Re&start Level" msgstr "" #: MainWindow.cpp:124 #, kde-format msgid "&Slow" msgstr "" #: MainWindow.cpp:129 #, kde-format msgid "&Medium" msgstr "" #: MainWindow.cpp:134 #, kde-format msgid "&Fast" msgstr "" #: MainWindow.cpp:139 #, kde-format msgid "&Off" msgstr "" #: MainWindow.cpp:179 MainWindow.cpp:193 #, kde-format msgid "(unused)" msgstr "" #: MainWindow.cpp:229 #, kde-format msgid "(invalid)" msgstr "" #: MainWindow.cpp:288 #, kde-format msgctxt "@title:window" msgid "Load Levels from a File" msgstr "" #: MainWindow.cpp:323 #, kde-format msgid "No levels found in file" msgstr "" #: PlayField.cpp:102 #, kde-format msgid "Level:" msgstr "" #: PlayField.cpp:111 #, kde-format msgid "Steps:" msgstr "" #: PlayField.cpp:120 #, kde-format msgid "Pushes:" msgstr "" #: PlayField.cpp:351 #, kde-format msgid "Level completed" msgstr "" #: PlayField.cpp:680 #, kde-format msgid "" "This is the last level in\n" "the current collection." msgstr "" #: PlayField.cpp:686 #, kde-format msgid "" "You have not completed\n" "this level yet." msgstr "" #: PlayField.cpp:700 #, kde-format msgid "" "This is the first level in\n" "the current collection." msgstr "" #: PlayField.cpp:778 #, kde-format msgid "" "Sorry, bookmarks for external levels\n" "is not implemented yet." msgstr "" #: PlayField.cpp:803 #, kde-format msgid "This level is broken" msgstr "" #. i18n: ectx: Menu (game) #: skladnikui.rc:6 #, kde-format msgid "&Game" msgstr "" #. i18n: ectx: Menu (animation_speed) #: skladnikui.rc:20 #, kde-format msgid "&Animation" msgstr "" #. i18n: ectx: Menu (bookmarks_menu) #: skladnikui.rc:27 #, kde-format msgid "&Bookmarks" msgstr "" #. i18n: ectx: Menu (set_bookmarks) #: skladnikui.rc:29 #, kde-format msgid "&Set Bookmark" msgstr "" #. i18n: ectx: Menu (goto_bookmarks) #: skladnikui.rc:42 #, kde-format msgid "&Go to Bookmark" msgstr "" skladnik-0.5.1/po/ka/000077500000000000000000000000001457640636700143505ustar00rootroot00000000000000skladnik-0.5.1/po/ka/skladnik.po000066400000000000000000000147751457640636700165260ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR This file is copyright: # This file is distributed under the same license as the ksokoban package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: ksokoban\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-11-12 00:40+0000\n" "PO-Revision-Date: 2023-11-14 05:42+0100\n" "Last-Translator: Temuri Doghonadze \n" "Language-Team: Georgian \n" "Language: ka\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 3.3.2\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Temuri Doghonadze" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "Temuri.doghonadze@gmail.com" #: InternalCollections.cpp:32 #, kde-format msgid "Sasquatch" msgstr "თოვლის კაცი" #: InternalCollections.cpp:36 #, kde-format msgid "Mas Sasquatch" msgstr "მას თოვლის კაცი" #: InternalCollections.cpp:40 #, kde-format msgid "Sasquatch III" msgstr "თოვლის კაცი III" #: InternalCollections.cpp:44 #, kde-format msgid "Microban (easy)" msgstr "მიკრობანი (ადვილი)" #: InternalCollections.cpp:48 #, kde-format msgid "Sasquatch IV" msgstr "თოვლის კაცი IV" #: main.cpp:27 #, kde-format msgid "Skladnik" msgstr "Skladnik" #: main.cpp:29 #, kde-format msgid "The japanese warehouse keeper game" msgstr "იაპონური საწყობის თამაში" #: main.cpp:31 #, kde-format msgid "" "(c) 1998 Anders Widell \n" "(c) 2012 Lukasz Kalamlacki" msgstr "" "(c) 1998 Anders Widell \n" "(c) 2012 Lukasz Kalamlacki" #: main.cpp:34 #, kde-format msgid "Shlomi Fish" msgstr "Shlomi Fish" #: main.cpp:35 #, kde-format msgid "For porting to Qt5/KF5 and doing other cleanups" msgstr "Qt5/KF5-ზე გადატანა და კოდის გასუფთავება" #: main.cpp:38 #, kde-format msgid "Lukasz Kalamlacki" msgstr "Lukasz Kalamlacki" #: main.cpp:39 #, kde-format msgid "For rewriting the original ksokoban game from kde3 to kde4" msgstr "პირველი KSokoban თამაშის kde3-დან KDE4-ზე გადატანა" #: main.cpp:42 #, kde-format msgid "Anders Widell" msgstr "Anders Widell" #: main.cpp:43 #, kde-format msgid "For writing the original ksokoban game" msgstr "ორიგინალი ksokoban -ის დაწერისთვის" #: main.cpp:46 #, kde-format msgid "David W. Skinner" msgstr "David W. Skinner" #: main.cpp:47 #, kde-format msgid "For contributing the Sokoban levels included in this game" msgstr "ამ თამაშის Sokoban-ის დონეებისთვის" #: main.cpp:56 #, kde-format msgid "Level collection file to load." msgstr "ჩასატვირთი დონის კოლექციის ფაილი." #: MainWindow.cpp:38 #, kde-format msgid "&Level Collection" msgstr "&დონის კოლექცია" #: MainWindow.cpp:97 #, kde-format msgid "&Load Levels..." msgstr "&დონეების ჩატვირთვა..." #: MainWindow.cpp:101 #, kde-format msgid "&Next Level" msgstr "&შემდეგი დონე" #: MainWindow.cpp:106 #, kde-format msgid "&Previous Level" msgstr "&წინა დონე" #: MainWindow.cpp:111 #, kde-format msgid "Re&start Level" msgstr "&დონის თავიდან დაწყება" #: MainWindow.cpp:124 #, kde-format msgid "&Slow" msgstr "&ნელი" #: MainWindow.cpp:129 #, kde-format msgid "&Medium" msgstr "&საშუალო" #: MainWindow.cpp:134 #, kde-format msgid "&Fast" msgstr "&სწრაფი" #: MainWindow.cpp:139 #, kde-format msgid "&Off" msgstr "&გამორთ" #: MainWindow.cpp:179 MainWindow.cpp:193 #, kde-format msgid "(unused)" msgstr "(გამოუყენებელი)" #: MainWindow.cpp:229 #, kde-format msgid "(invalid)" msgstr "(არასწორი)" #: MainWindow.cpp:288 #, kde-format msgctxt "@title:window" msgid "Load Levels from a File" msgstr "დონეების ფაილიდან ჩატვირთვა" #: MainWindow.cpp:323 #, kde-format msgid "No levels found in file" msgstr "ფაილში დონეები ვერ ვიპოვე" #: PlayField.cpp:102 #, kde-format msgid "Level:" msgstr "დონე:" #: PlayField.cpp:111 #, kde-format msgid "Steps:" msgstr "ნაბიჯები:" #: PlayField.cpp:120 #, kde-format msgid "Pushes:" msgstr "მიწოლები:" #: PlayField.cpp:351 #, kde-format msgid "Level completed" msgstr "დონე დასრულდა" #: PlayField.cpp:680 #, kde-format msgid "" "This is the last level in\n" "the current collection." msgstr "" "ეს მიმდინარე კოლექციის\n" "უკანასკნელი დონეა." #: PlayField.cpp:686 #, kde-format msgid "" "You have not completed\n" "this level yet." msgstr "" "ეს დონე ჯერ\n" "არ დაგისრულებიათ." #: PlayField.cpp:700 #, kde-format msgid "" "This is the first level in\n" "the current collection." msgstr "" "ეს მიმდინარე კოლექციის\n" "პირველი დონეა." #: PlayField.cpp:778 #, kde-format msgid "" "Sorry, bookmarks for external levels\n" "is not implemented yet." msgstr "" "უკაცრავად გარე დონეების სანიშნები\n" "ჯერ განხორციელებული არაა." #: PlayField.cpp:803 #, kde-format msgid "This level is broken" msgstr "ეს დონე გაფუჭებულია" #. i18n: ectx: Menu (game) #: skladnikui.rc:6 #, kde-format msgid "&Game" msgstr "&თამაში" #. i18n: ectx: Menu (animation_speed) #: skladnikui.rc:20 #, kde-format msgid "&Animation" msgstr "&ანიმაცია" #. i18n: ectx: Menu (bookmarks_menu) #: skladnikui.rc:27 #, kde-format msgid "&Bookmarks" msgstr "&სანიშნეები" #. i18n: ectx: Menu (set_bookmarks) #: skladnikui.rc:29 #, kde-format msgid "&Set Bookmark" msgstr "&სანიშნის დასმა" #. i18n: ectx: Menu (goto_bookmarks) #: skladnikui.rc:42 #, kde-format msgid "&Go to Bookmark" msgstr "&სანიშნზე გადასვლა" #~ msgid "KSokoban" #~ msgstr "KSokoban" skladnik-0.5.1/po/ko/000077500000000000000000000000001457640636700143665ustar00rootroot00000000000000skladnik-0.5.1/po/ko/skladnik.po000066400000000000000000000131131457640636700165250ustar00rootroot00000000000000# Copyright (C) YEAR This file is copyright: # This file is distributed under the same license as the ksokoban package. # Shinjo Park , 2020, 2021, 2022. # msgid "" msgstr "" "Project-Id-Version: ksokoban\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-11-12 00:40+0000\n" "PO-Revision-Date: 2022-10-03 16:02+0200\n" "Last-Translator: Shinjo Park \n" "Language-Team: Korean \n" "Language: ko\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Lokalize 21.12.3\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "박신조" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "kde@peremen.name" #: InternalCollections.cpp:32 #, kde-format msgid "Sasquatch" msgstr "Sasquatch" #: InternalCollections.cpp:36 #, kde-format msgid "Mas Sasquatch" msgstr "Mas Sasquatch" #: InternalCollections.cpp:40 #, kde-format msgid "Sasquatch III" msgstr "Sasquatch III" #: InternalCollections.cpp:44 #, kde-format msgid "Microban (easy)" msgstr "Microban(쉬움)" #: InternalCollections.cpp:48 #, kde-format msgid "Sasquatch IV" msgstr "Sasquatch IV" #: main.cpp:27 #, kde-format msgid "Skladnik" msgstr "" #: main.cpp:29 #, kde-format msgid "The japanese warehouse keeper game" msgstr "일본식 창고지기 게임" #: main.cpp:31 #, kde-format msgid "" "(c) 1998 Anders Widell \n" "(c) 2012 Lukasz Kalamlacki" msgstr "" "(c) 1998 Anders Widell \n" "(c) 2012 Lukasz Kalamlacki" #: main.cpp:34 #, kde-format msgid "Shlomi Fish" msgstr "Shlomi Fish" #: main.cpp:35 #, kde-format msgid "For porting to Qt5/KF5 and doing other cleanups" msgstr "Qt5/KF5 이식 및 기타 정리" #: main.cpp:38 #, kde-format msgid "Lukasz Kalamlacki" msgstr "Lukasz Kalamlacki" #: main.cpp:39 #, kde-format msgid "For rewriting the original ksokoban game from kde3 to kde4" msgstr "KDE 3에서 KDE 4로 원래 ksokoban 게임 이식" #: main.cpp:42 #, kde-format msgid "Anders Widell" msgstr "Anders Widell" #: main.cpp:43 #, kde-format msgid "For writing the original ksokoban game" msgstr "원래 ksokoban 게임 작성" #: main.cpp:46 #, kde-format msgid "David W. Skinner" msgstr "David W. Skinner" #: main.cpp:47 #, kde-format msgid "For contributing the Sokoban levels included in this game" msgstr "이 게임에 포함된 소코반 단계 기여" #: main.cpp:56 #, kde-format msgid "Level collection file to load." msgstr "불러올 단계 모음집 파일입니다." #: MainWindow.cpp:38 #, kde-format msgid "&Level Collection" msgstr "단계 모음집(&L)" #: MainWindow.cpp:97 #, kde-format msgid "&Load Levels..." msgstr "단계 불러오기(&L)..." #: MainWindow.cpp:101 #, kde-format msgid "&Next Level" msgstr "다음 단계(&N)" #: MainWindow.cpp:106 #, kde-format msgid "&Previous Level" msgstr "이전 단계(&P)" #: MainWindow.cpp:111 #, kde-format msgid "Re&start Level" msgstr "단계 다시 시작(&S)" #: MainWindow.cpp:124 #, kde-format msgid "&Slow" msgstr "느림(&S)" #: MainWindow.cpp:129 #, kde-format msgid "&Medium" msgstr "중간(&M)" #: MainWindow.cpp:134 #, kde-format msgid "&Fast" msgstr "빠름(&F)" #: MainWindow.cpp:139 #, kde-format msgid "&Off" msgstr "끔(&O)" #: MainWindow.cpp:179 MainWindow.cpp:193 #, kde-format msgid "(unused)" msgstr "(사용하지 않음)" #: MainWindow.cpp:229 #, kde-format msgid "(invalid)" msgstr "(잘못됨)" #: MainWindow.cpp:288 #, kde-format msgctxt "@title:window" msgid "Load Levels from a File" msgstr "파일에서 단계 불러오기" #: MainWindow.cpp:323 #, kde-format msgid "No levels found in file" msgstr "파일에서 단계를 찾을 수 없음" #: PlayField.cpp:102 #, kde-format msgid "Level:" msgstr "단계:" #: PlayField.cpp:111 #, kde-format msgid "Steps:" msgstr "이동:" #: PlayField.cpp:120 #, kde-format msgid "Pushes:" msgstr "밀기:" #: PlayField.cpp:351 #, kde-format msgid "Level completed" msgstr "단계 완료됨" #: PlayField.cpp:680 #, kde-format msgid "" "This is the last level in\n" "the current collection." msgstr "" "이 단계는 현재 모음집의\n" "마지막 단계입니다." #: PlayField.cpp:686 #, kde-format msgid "" "You have not completed\n" "this level yet." msgstr "" "아직 이 단계를\n" "완료하지 않았습니다." #: PlayField.cpp:700 #, kde-format msgid "" "This is the first level in\n" "the current collection." msgstr "" "이 단계는 현재 모음집의\n" "첫 단계입니다." #: PlayField.cpp:778 #, kde-format msgid "" "Sorry, bookmarks for external levels\n" "is not implemented yet." msgstr "" "죄송합니다, 외부 단계 책갈피는\n" "아직 구현되지 않았습니다." #: PlayField.cpp:803 #, kde-format msgid "This level is broken" msgstr "이 단계가 깨짐" #. i18n: ectx: Menu (game) #: skladnikui.rc:6 #, kde-format msgid "&Game" msgstr "게임(&G)" #. i18n: ectx: Menu (animation_speed) #: skladnikui.rc:20 #, kde-format msgid "&Animation" msgstr "애니메이션(&A)" #. i18n: ectx: Menu (bookmarks_menu) #: skladnikui.rc:27 #, kde-format msgid "&Bookmarks" msgstr "책갈피(&B)" #. i18n: ectx: Menu (set_bookmarks) #: skladnikui.rc:29 #, kde-format msgid "&Set Bookmark" msgstr "책갈피 설정(&B)" #. i18n: ectx: Menu (goto_bookmarks) #: skladnikui.rc:42 #, kde-format msgid "&Go to Bookmark" msgstr "책갈피로 이동" #~ msgid "KSokoban" #~ msgstr "KSokoban" #~ msgid "[file]" #~ msgstr "[file]" #~ msgid "&Undo" #~ msgstr "실행 취소(&U)" #~ msgid "&Redo" #~ msgstr "다시 실행(&R)" #~ msgid "&Quit" #~ msgstr "끝내기(&Q)" skladnik-0.5.1/po/lt/000077500000000000000000000000001457640636700143745ustar00rootroot00000000000000skladnik-0.5.1/po/lt/skladnik.po000066400000000000000000000105051457640636700165350ustar00rootroot00000000000000# Lithuanian translations for l package. # Copyright (C) 2012 This_file_is_part_of_KDE # This file is distributed under the same license as the l package. # Automatically generated, 2012. # msgid "" msgstr "" "Project-Id-Version: l 10n\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-11-12 00:40+0000\n" "PO-Revision-Date: 2012-09-09 04:50+0200\n" "Last-Translator: Automatically generated\n" "Language-Team: lt\n" "Language: lt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=(n==1 ? 0 : n%10>=2 && (n%100<10 || n" "%100>=20) ? 1 : n%10==0 || (n%100>10 && n%100<20) ? 2 : 3);\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "" #: InternalCollections.cpp:32 #, kde-format msgid "Sasquatch" msgstr "" #: InternalCollections.cpp:36 #, kde-format msgid "Mas Sasquatch" msgstr "" #: InternalCollections.cpp:40 #, kde-format msgid "Sasquatch III" msgstr "" #: InternalCollections.cpp:44 #, kde-format msgid "Microban (easy)" msgstr "" #: InternalCollections.cpp:48 #, kde-format msgid "Sasquatch IV" msgstr "" #: main.cpp:27 #, kde-format msgid "Skladnik" msgstr "" #: main.cpp:29 #, kde-format msgid "The japanese warehouse keeper game" msgstr "" #: main.cpp:31 #, kde-format msgid "" "(c) 1998 Anders Widell \n" "(c) 2012 Lukasz Kalamlacki" msgstr "" #: main.cpp:34 #, kde-format msgid "Shlomi Fish" msgstr "" #: main.cpp:35 #, kde-format msgid "For porting to Qt5/KF5 and doing other cleanups" msgstr "" #: main.cpp:38 #, kde-format msgid "Lukasz Kalamlacki" msgstr "" #: main.cpp:39 #, kde-format msgid "For rewriting the original ksokoban game from kde3 to kde4" msgstr "" #: main.cpp:42 #, kde-format msgid "Anders Widell" msgstr "" #: main.cpp:43 #, kde-format msgid "For writing the original ksokoban game" msgstr "" #: main.cpp:46 #, kde-format msgid "David W. Skinner" msgstr "" #: main.cpp:47 #, kde-format msgid "For contributing the Sokoban levels included in this game" msgstr "" #: main.cpp:56 #, kde-format msgid "Level collection file to load." msgstr "" #: MainWindow.cpp:38 #, kde-format msgid "&Level Collection" msgstr "" #: MainWindow.cpp:97 #, kde-format msgid "&Load Levels..." msgstr "" #: MainWindow.cpp:101 #, kde-format msgid "&Next Level" msgstr "" #: MainWindow.cpp:106 #, kde-format msgid "&Previous Level" msgstr "" #: MainWindow.cpp:111 #, kde-format msgid "Re&start Level" msgstr "" #: MainWindow.cpp:124 #, kde-format msgid "&Slow" msgstr "" #: MainWindow.cpp:129 #, kde-format msgid "&Medium" msgstr "" #: MainWindow.cpp:134 #, kde-format msgid "&Fast" msgstr "" #: MainWindow.cpp:139 #, kde-format msgid "&Off" msgstr "" #: MainWindow.cpp:179 MainWindow.cpp:193 #, kde-format msgid "(unused)" msgstr "" #: MainWindow.cpp:229 #, kde-format msgid "(invalid)" msgstr "" #: MainWindow.cpp:288 #, kde-format msgctxt "@title:window" msgid "Load Levels from a File" msgstr "" #: MainWindow.cpp:323 #, kde-format msgid "No levels found in file" msgstr "" #: PlayField.cpp:102 #, kde-format msgid "Level:" msgstr "" #: PlayField.cpp:111 #, kde-format msgid "Steps:" msgstr "" #: PlayField.cpp:120 #, kde-format msgid "Pushes:" msgstr "" #: PlayField.cpp:351 #, kde-format msgid "Level completed" msgstr "" #: PlayField.cpp:680 #, kde-format msgid "" "This is the last level in\n" "the current collection." msgstr "" #: PlayField.cpp:686 #, kde-format msgid "" "You have not completed\n" "this level yet." msgstr "" #: PlayField.cpp:700 #, kde-format msgid "" "This is the first level in\n" "the current collection." msgstr "" #: PlayField.cpp:778 #, kde-format msgid "" "Sorry, bookmarks for external levels\n" "is not implemented yet." msgstr "" #: PlayField.cpp:803 #, kde-format msgid "This level is broken" msgstr "" #. i18n: ectx: Menu (game) #: skladnikui.rc:6 #, kde-format msgid "&Game" msgstr "" #. i18n: ectx: Menu (animation_speed) #: skladnikui.rc:20 #, kde-format msgid "&Animation" msgstr "" #. i18n: ectx: Menu (bookmarks_menu) #: skladnikui.rc:27 #, kde-format msgid "&Bookmarks" msgstr "" #. i18n: ectx: Menu (set_bookmarks) #: skladnikui.rc:29 #, kde-format msgid "&Set Bookmark" msgstr "" #. i18n: ectx: Menu (goto_bookmarks) #: skladnikui.rc:42 #, kde-format msgid "&Go to Bookmark" msgstr "" skladnik-0.5.1/po/mr/000077500000000000000000000000001457640636700143735ustar00rootroot00000000000000skladnik-0.5.1/po/mr/skladnik.po000066400000000000000000000110071457640636700165320ustar00rootroot00000000000000# Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # # Chetan Khona , 2013. msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-11-12 00:40+0000\n" "PO-Revision-Date: 2013-03-13 16:33+0530\n" "Last-Translator: Chetan Khona \n" "Language-Team: Marathi \n" "Language: mr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n!=1);\n" "X-Generator: Lokalize 1.5\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "चेतन खोना" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "chetan@kompkin.com" #: InternalCollections.cpp:32 #, kde-format msgid "Sasquatch" msgstr "" #: InternalCollections.cpp:36 #, kde-format msgid "Mas Sasquatch" msgstr "" #: InternalCollections.cpp:40 #, kde-format msgid "Sasquatch III" msgstr "" #: InternalCollections.cpp:44 #, kde-format msgid "Microban (easy)" msgstr "" #: InternalCollections.cpp:48 #, kde-format msgid "Sasquatch IV" msgstr "" #: main.cpp:27 #, kde-format msgid "Skladnik" msgstr "" #: main.cpp:29 #, kde-format msgid "The japanese warehouse keeper game" msgstr "" #: main.cpp:31 #, kde-format msgid "" "(c) 1998 Anders Widell \n" "(c) 2012 Lukasz Kalamlacki" msgstr "" #: main.cpp:34 #, kde-format msgid "Shlomi Fish" msgstr "" #: main.cpp:35 #, kde-format msgid "For porting to Qt5/KF5 and doing other cleanups" msgstr "" #: main.cpp:38 #, kde-format msgid "Lukasz Kalamlacki" msgstr "" #: main.cpp:39 #, kde-format msgid "For rewriting the original ksokoban game from kde3 to kde4" msgstr "" #: main.cpp:42 #, kde-format msgid "Anders Widell" msgstr "" #: main.cpp:43 #, kde-format msgid "For writing the original ksokoban game" msgstr "" #: main.cpp:46 #, kde-format msgid "David W. Skinner" msgstr "" #: main.cpp:47 #, kde-format msgid "For contributing the Sokoban levels included in this game" msgstr "" #: main.cpp:56 #, kde-format msgid "Level collection file to load." msgstr "" #: MainWindow.cpp:38 #, kde-format msgid "&Level Collection" msgstr "" #: MainWindow.cpp:97 #, kde-format msgid "&Load Levels..." msgstr "" #: MainWindow.cpp:101 #, kde-format msgid "&Next Level" msgstr "पुढील पातळी (&N)" #: MainWindow.cpp:106 #, kde-format msgid "&Previous Level" msgstr "मागील पातळी (&P)" #: MainWindow.cpp:111 #, kde-format msgid "Re&start Level" msgstr "" #: MainWindow.cpp:124 #, kde-format msgid "&Slow" msgstr "हळु (&S)" #: MainWindow.cpp:129 #, kde-format msgid "&Medium" msgstr "मध्यम (&M)" #: MainWindow.cpp:134 #, kde-format msgid "&Fast" msgstr "जलद (&F)" #: MainWindow.cpp:139 #, kde-format msgid "&Off" msgstr "बंद करा (&O)" #: MainWindow.cpp:179 MainWindow.cpp:193 #, kde-format msgid "(unused)" msgstr "(न वापरलेले)" #: MainWindow.cpp:229 #, kde-format msgid "(invalid)" msgstr "(अवैध)" #: MainWindow.cpp:288 #, kde-format msgctxt "@title:window" msgid "Load Levels from a File" msgstr "" #: MainWindow.cpp:323 #, kde-format msgid "No levels found in file" msgstr "" #: PlayField.cpp:102 #, kde-format msgid "Level:" msgstr "पातळी :" #: PlayField.cpp:111 #, kde-format msgid "Steps:" msgstr "" #: PlayField.cpp:120 #, kde-format msgid "Pushes:" msgstr "" #: PlayField.cpp:351 #, kde-format msgid "Level completed" msgstr "" #: PlayField.cpp:680 #, kde-format msgid "" "This is the last level in\n" "the current collection." msgstr "" #: PlayField.cpp:686 #, kde-format msgid "" "You have not completed\n" "this level yet." msgstr "" #: PlayField.cpp:700 #, kde-format msgid "" "This is the first level in\n" "the current collection." msgstr "" #: PlayField.cpp:778 #, kde-format msgid "" "Sorry, bookmarks for external levels\n" "is not implemented yet." msgstr "" #: PlayField.cpp:803 #, kde-format msgid "This level is broken" msgstr "" #. i18n: ectx: Menu (game) #: skladnikui.rc:6 #, kde-format msgid "&Game" msgstr "" #. i18n: ectx: Menu (animation_speed) #: skladnikui.rc:20 #, kde-format msgid "&Animation" msgstr "" #. i18n: ectx: Menu (bookmarks_menu) #: skladnikui.rc:27 #, kde-format msgid "&Bookmarks" msgstr "" #. i18n: ectx: Menu (set_bookmarks) #: skladnikui.rc:29 #, kde-format msgid "&Set Bookmark" msgstr "" #. i18n: ectx: Menu (goto_bookmarks) #: skladnikui.rc:42 #, kde-format msgid "&Go to Bookmark" msgstr "" skladnik-0.5.1/po/nb/000077500000000000000000000000001457640636700143545ustar00rootroot00000000000000skladnik-0.5.1/po/nb/skladnik.po000066400000000000000000000120731457640636700165170ustar00rootroot00000000000000# Translation of skladnik to Norwegian Bokmål # # Hans Petter Bieker , 1998, 1999, 2000. # Knut Yrvin , 2002. # Jørgen Grønlund , 2004. msgid "" msgstr "" "Project-Id-Version: ksokoban\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-11-12 00:40+0000\n" "PO-Revision-Date: 2004-01-18 13:52GMT\n" "Last-Translator: Jørgen Grønlund \n" "Language-Team: Norwegian Bokmål \n" "Language: nb\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.0.2\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Environment: kde\n" "X-Accelerator-Marker: &\n" "X-Text-Markup: kde4\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Christian A Strømmen [Number1/NumeroUno],Jørgen Grønlund" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "number1@realityx.net,jorgenhg@broadpark.no" #: InternalCollections.cpp:32 #, kde-format msgid "Sasquatch" msgstr "Sasquatch" #: InternalCollections.cpp:36 #, kde-format msgid "Mas Sasquatch" msgstr "Mas-sasquatch" #: InternalCollections.cpp:40 #, kde-format msgid "Sasquatch III" msgstr "Sasquatch III" #: InternalCollections.cpp:44 #, kde-format msgid "Microban (easy)" msgstr "Microban (enkel)" #: InternalCollections.cpp:48 #, kde-format msgid "Sasquatch IV" msgstr "Sasquatch IV" #: main.cpp:27 #, kde-format msgid "Skladnik" msgstr "" #: main.cpp:29 #, kde-format msgid "The japanese warehouse keeper game" msgstr "Det japanske varehusspillet" #: main.cpp:31 #, kde-format msgid "" "(c) 1998 Anders Widell \n" "(c) 2012 Lukasz Kalamlacki" msgstr "" #: main.cpp:34 #, kde-format msgid "Shlomi Fish" msgstr "" #: main.cpp:35 #, kde-format msgid "For porting to Qt5/KF5 and doing other cleanups" msgstr "" #: main.cpp:38 #, kde-format msgid "Lukasz Kalamlacki" msgstr "" #: main.cpp:39 #, kde-format msgid "For rewriting the original ksokoban game from kde3 to kde4" msgstr "" #: main.cpp:42 #, kde-format msgid "Anders Widell" msgstr "" #: main.cpp:43 #, kde-format msgid "For writing the original ksokoban game" msgstr "" #: main.cpp:46 #, kde-format msgid "David W. Skinner" msgstr "" #: main.cpp:47 #, kde-format msgid "For contributing the Sokoban levels included in this game" msgstr "For å ha bidratt med Sokoban-nivåene medregnet i dette spillet" #: main.cpp:56 #, kde-format msgid "Level collection file to load." msgstr "" #: MainWindow.cpp:38 #, kde-format msgid "&Level Collection" msgstr "&Nivåsamling" #: MainWindow.cpp:97 #, kde-format msgid "&Load Levels..." msgstr "" #: MainWindow.cpp:101 #, kde-format msgid "&Next Level" msgstr "&Neste nivå" #: MainWindow.cpp:106 #, kde-format msgid "&Previous Level" msgstr "&Forrige nivå" #: MainWindow.cpp:111 #, kde-format msgid "Re&start Level" msgstr "&Start nivå på nytt" #: MainWindow.cpp:124 #, kde-format msgid "&Slow" msgstr "&Sakte" #: MainWindow.cpp:129 #, kde-format msgid "&Medium" msgstr "&Middels" #: MainWindow.cpp:134 #, kde-format msgid "&Fast" msgstr "&Hurtig" #: MainWindow.cpp:139 #, kde-format msgid "&Off" msgstr "&Av" #: MainWindow.cpp:179 MainWindow.cpp:193 #, kde-format msgid "(unused)" msgstr "(ubrukt)" #: MainWindow.cpp:229 #, kde-format msgid "(invalid)" msgstr "(ugyldig)" #: MainWindow.cpp:288 #, kde-format msgctxt "@title:window" msgid "Load Levels from a File" msgstr "" #: MainWindow.cpp:323 #, kde-format msgid "No levels found in file" msgstr "Ingen nivåer funnet i fil" #: PlayField.cpp:102 #, kde-format msgid "Level:" msgstr "Nivå:" #: PlayField.cpp:111 #, kde-format msgid "Steps:" msgstr "Steg:" #: PlayField.cpp:120 #, kde-format msgid "Pushes:" msgstr "Dytt:" #: PlayField.cpp:351 #, kde-format msgid "Level completed" msgstr "Nivå fullført" #: PlayField.cpp:680 #, kde-format msgid "" "This is the last level in\n" "the current collection." msgstr "" "Dette er det siste nivået\n" "i gjeldende samling." #: PlayField.cpp:686 #, kde-format msgid "" "You have not completed\n" "this level yet." msgstr "" "Du har ikke fullført\n" "dette nivået ennå." #: PlayField.cpp:700 #, kde-format msgid "" "This is the first level in\n" "the current collection." msgstr "" "Dette er første nivå i\n" "i gjeldende samling." #: PlayField.cpp:778 #, kde-format msgid "" "Sorry, bookmarks for external levels\n" "is not implemented yet." msgstr "" "Beklager, bokmerker for eksterne nivåer\n" "er foreløpig ikke implementert." #: PlayField.cpp:803 #, kde-format msgid "This level is broken" msgstr "Dette nivået er ødelagt" #. i18n: ectx: Menu (game) #: skladnikui.rc:6 #, kde-format msgid "&Game" msgstr "" #. i18n: ectx: Menu (animation_speed) #: skladnikui.rc:20 #, kde-format msgid "&Animation" msgstr "" #. i18n: ectx: Menu (bookmarks_menu) #: skladnikui.rc:27 #, kde-format msgid "&Bookmarks" msgstr "" #. i18n: ectx: Menu (set_bookmarks) #: skladnikui.rc:29 #, kde-format msgid "&Set Bookmark" msgstr "" #. i18n: ectx: Menu (goto_bookmarks) #: skladnikui.rc:42 #, kde-format msgid "&Go to Bookmark" msgstr "" skladnik-0.5.1/po/nl/000077500000000000000000000000001457640636700143665ustar00rootroot00000000000000skladnik-0.5.1/po/nl/docs/000077500000000000000000000000001457640636700153165ustar00rootroot00000000000000skladnik-0.5.1/po/nl/docs/skladnik/000077500000000000000000000000001457640636700171165ustar00rootroot00000000000000skladnik-0.5.1/po/nl/docs/skladnik/index.docbook000066400000000000000000000320341457640636700215710ustar00rootroot00000000000000 Skladnik"> ]> Het handboek van &skladnik; Anders Widell
&Anders.Widell.mail;
&Freek.de.Kruijf;&Ronald.Stroethoff;
2000 &Anders.Widell; &FDLNotice; 2021-08-19 0.5.0 &skladnik; is een implementatie van het Japanse magazijn-beheerder-spel sokoban. KDE kdegames spel sokoban skladnik
Inleiding Het eerste sokoban spel is in 1982 door Hiroyuki Imabayashi voor de Japanse firma Thinking Rabbit, Inc gecreëerd. Sokoban is Japans voor magazijn-beheerder. Het idee is dat u een magazijn-beheerder bent die probeert om kratten naar hun juiste locatie in een magazijn te duwen. Het probleem is dat u niet aan de kratten kan trekken of erover kan stappen. Als u niet voorzichtig bent, dan kunnen kratten in de verkeerde plaats vast komen te zitten en/of uw weg blokkeren. Het kan moeilijk zijn om een level alleen maar uit te spelen. Maar u kunt het zichzelf nog moeilijker maken, u kunt proberen om zo weinig mogelijk zetten te gebruiken om het level uit te spelen. Om het spel ook leuk te laten voor kleine kinderen (onder de 10 jaar of zo), zijn er ook enkele verzamelingen met makkelijker levels meegeleverd in &skladnik;. Deze zijn in het in het level verzamelingen menu gemarkeerd met (gemakkelijk) . Maar ook voor volwassenen kunnen deze levels leuk zijn, als u zich bijvoorbeeld niet aan teveel mentale stress wilt bloot stellen. Het spel Het doel van het spel is om alle rode diamanten naar de doelvakken te duwen, welke zijn gemarkeerd met dingen van groen glas op de vloer. Gebruik de pijltoetsen of de muis om uzelf te verplaatsen. Als u terwijl u zichzelf met de pijltoetsen of de &MMB; muisknop verplaatst en u komt tegen een diamant aan, en niets blokkeert het aan de andere zijde, dan kunt u de diamant verder duwen. het is niet mogelijk om aan de diamant te trekken, als u dus de diamant in een hoek heeft geduwd dan zit het daar vast. U kunt ook niet over diamanten heen stappen, u kunt dus ook in een gedeelte van het doolhof opgesloten raken doordat u de weg blokkeert met diamanten. Vergeet ook niet dat u niet meer dan één diamant tegelijk kunt duwen. Als u merkt dat u de diamanten zo heeft verplaatst dat het level onmogelijk kan worden opgelost, dan kunt u altijd de functie ongedaan maken gebruiken om terug ite gaan naar de toestand waarop de vergissing nog niet is gemaakt. Maar u kunt natuurlijk ook de level vanaf het begin opnieuw starten. Besturing ToetsActie MuistoetsenVerplaats een vakje in één richting &Ctrl;Muis knoppenVerplaats in één richting zover als u kunt zonder dat u tegen een diamant duwt &Shift;Muis knoppen Verplaats in één richting zover als u kunt terwijl u tegen een diamant hoeft te duwen Linker muisknopGa naar elke plaats in het doolhof dat u kunt bereiken zonder dat u tegen diamanten duwt  Middel muisknop of &Ctrl;ZMaak de laatste zet ongedaan Rechter muisknopVerplaats omhoog/omlaag/links/rechts in een rechte lijn terwijl u tegen alle diamanten duwt die u tegenkomt MuiswielWandel door de geschiedenis &Ctrl;&Shift;Z Voert de laatste verplaatsing opnieuw uit NGa naar de volgende level in de huidige verzameling PGa naar de vorige level in de huidige verzameling &Esc;Het huidige level opnieuw starten &Ctrl;QSpel afsluiten Externe levels laden In &skladnik; is de mogelijkheid aanwezig om externe sokoban levels vanuit tekstbestanden te laden. U kunt de levels laden via het menu-item Spel Levels laden... , of door de&URL; van het level-bestand als parameter op de commandoregel op te geven bij het starten van &skladnik; vanuit een shell. De externe levels moeten zijn gedefinieerd met de standaard karakters die u ziet in de tabel hieronder. Als in het bestand meer dan een level voorkomt, dan moeten de levels worden gescheiden door lege regels. In het bestand mag ook tussen de levels tekst voorkomen. TekenBetekenis #Muur (spatie)Leeg vakje .Doelvak $Object op een leeg vak *Object op een doelvak @Startpositie op een leeg vak  +Startpositie op een doelvak Als voorbeeld is hieronder een tekstweergave van het eerste level van de Microban level verzameling: #### # .# # ### #*@ # # $ # # ### #### Menureferentie Dit is een complete uitleg van de menu´s van &skladnik;. Het Spel menu Spel Laad Levels... Laad een externe level. Zie de sectie Externe levels laden voor meer informatie. N Spel Volgend level Laad het volgende level. P Spel Vorig level Ga terug naar het vorige level. &Esc; Spel Level herstarten Het huidige level opnieuw starten. Spel Level-verzameling Een submenu om naar een andere verzameling levels om te schakelen. &skladnik; komt met enkele verzamelingen levels, en u kunt er nog meer laden die u op het internet heeft gevonden. &Ctrl;Z Spel Ongedaan Laatste zet ongedaan maken. &Ctrl;&Shift;Z Spel Opnieuw Voert de laatste ongedaan gemaakte handeling opnieuw uit. &Ctrl;Q Spel Afsluiten Sluit &skladnik; af. Het Animatie menu Het menu biedt menu-items met keuzevakjes die u de snelheid laat instellen waarmee de getoonde animaties worden afgespeeld. Animatie Traag Animaties op langzame snelheid afspelen. Animatie Middel Dit is de standaard instelling, en speelt de animaties een iets grotere snelheid af. Animatie Snel Animaties op de snelste snelheid afspelen. Animatie Uit Animaties niet afspelen. Het Bladwijzers menu Bladwijzers Bladwijzer toevoegen In &skladnik; kunt u op een bepaald punt in een level een bladwijzer zetten. U kunt dit gebruiken om niet het eerstestuk in een level opnieuw te hoeven doen. U kunt maximaal tien bladwijzers tegelijk hebben, en deze gebruiken met de sneltoets &Ctrl;X, waar X een cijfer is tussen 0 en 9. Bladwijzers Naar Bladwijzer Ga naar het punt waarvoor u eerder een bladwijzer voor heeft gemaakt. Het Help menu &skladnik; heeft een aantal van de algemene &kde; items in het menu Help, voor meer informatie lees de sectie hierover in het Menu Help van &kde; Fundamentals. Dankbetuigingen en licentie Het auteursrecht van &skladnik; rust bij © 1998-2000 door &Anders.Widell; &Anders.Widell.mail;. De achtergrond starfield is afkomstig uit Gimp. Alle andere afbeeldingen zijn gemaakt door &Anders.Widell; &Anders.Widell.mail; met behulp van de Povray ray tracer. Alle op dit moment meegeleverde sokoban levels zijn gecreëerd door David W. Skinner sasquatch@bentonrea.com. Voor meer informatie, zie ijn sokoban pagina. &meld.fouten;&vertaling.freek;&vertaling.ronald; &underFDL; &underGPL; &documentation.index;
skladnik-0.5.1/po/nl/skladnik.po000066400000000000000000000140021457640636700165230ustar00rootroot00000000000000# Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # # SPDX-FileCopyrightText: 2012, 2015, 2021, 2022, 2023 Freek de Kruijf # Ronald Stroethoff , 2015. # Lo Fernchu , 2019. msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-11-12 00:40+0000\n" "PO-Revision-Date: 2023-11-12 14:21+0100\n" "Last-Translator: Freek de Kruijf \n" "Language-Team: \n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Lokalize 23.08.2\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Freek de Kruijf - t/m 2023,Ronald Stoethoff" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "freekdekruijf@kde.nl,stroet43@zonnet.nl" #: InternalCollections.cpp:32 #, kde-format msgid "Sasquatch" msgstr "Sasquatch" #: InternalCollections.cpp:36 #, kde-format msgid "Mas Sasquatch" msgstr "Mas Sasquatch" #: InternalCollections.cpp:40 #, kde-format msgid "Sasquatch III" msgstr "Sasquatch III" #: InternalCollections.cpp:44 #, kde-format msgid "Microban (easy)" msgstr "Microban (gemakkelijk)" #: InternalCollections.cpp:48 #, kde-format msgid "Sasquatch IV" msgstr "Sasquatch IV" #: main.cpp:27 #, kde-format msgid "Skladnik" msgstr "Skladnik" #: main.cpp:29 #, kde-format msgid "The japanese warehouse keeper game" msgstr "Het Japanse magazijn-beheerder-spel" #: main.cpp:31 #, kde-format msgid "" "(c) 1998 Anders Widell \n" "(c) 2012 Lukasz Kalamlacki" msgstr "" "(c) 1998 Anders Widell \n" "(c) 2012 Lukasz Kalamlacki" #: main.cpp:34 #, kde-format msgid "Shlomi Fish" msgstr "Shlomi Fish" #: main.cpp:35 #, kde-format msgid "For porting to Qt5/KF5 and doing other cleanups" msgstr "Overzetten naar Qt5/KF5 en overig opruimen" #: main.cpp:38 #, kde-format msgid "Lukasz Kalamlacki" msgstr "Lukasz Kalamlacki" #: main.cpp:39 #, kde-format msgid "For rewriting the original ksokoban game from kde3 to kde4" msgstr "" "Voor het herschrijven van het originele ksokoban spel van kde3 naar kde4" #: main.cpp:42 #, kde-format msgid "Anders Widell" msgstr "Anders Widell" #: main.cpp:43 #, kde-format msgid "For writing the original ksokoban game" msgstr "Voor het programmeren van het originele ksokoban spel" #: main.cpp:46 #, kde-format msgid "David W. Skinner" msgstr "David W. Skinner" #: main.cpp:47 #, kde-format msgid "For contributing the Sokoban levels included in this game" msgstr "Voor het bijdragen van de Sokoban-levels in dit spel" #: main.cpp:56 #, kde-format msgid "Level collection file to load." msgstr "Te laden bestand met level-verzameling." #: MainWindow.cpp:38 #, kde-format msgid "&Level Collection" msgstr "&Level-verzameling" #: MainWindow.cpp:97 #, kde-format msgid "&Load Levels..." msgstr "&Laad Levels..." #: MainWindow.cpp:101 #, kde-format msgid "&Next Level" msgstr "&Volgend level" #: MainWindow.cpp:106 #, kde-format msgid "&Previous Level" msgstr "V&orig level" #: MainWindow.cpp:111 #, kde-format msgid "Re&start Level" msgstr "Level her&starten" #: MainWindow.cpp:124 #, kde-format msgid "&Slow" msgstr "&Traag" #: MainWindow.cpp:129 #, kde-format msgid "&Medium" msgstr "&Middel" #: MainWindow.cpp:134 #, kde-format msgid "&Fast" msgstr "&Snel" #: MainWindow.cpp:139 #, kde-format msgid "&Off" msgstr "&Uit" #: MainWindow.cpp:179 MainWindow.cpp:193 #, kde-format msgid "(unused)" msgstr "(ongebruikt)" #: MainWindow.cpp:229 #, kde-format msgid "(invalid)" msgstr "(ongeldig)" #: MainWindow.cpp:288 #, kde-format msgctxt "@title:window" msgid "Load Levels from a File" msgstr "Levels laden uit bestand" #: MainWindow.cpp:323 #, kde-format msgid "No levels found in file" msgstr "Geen levels gevonden in bestand " #: PlayField.cpp:102 #, kde-format msgid "Level:" msgstr "Niveau:" #: PlayField.cpp:111 #, kde-format msgid "Steps:" msgstr "Stappen:" #: PlayField.cpp:120 #, kde-format msgid "Pushes:" msgstr "Duwen:" #: PlayField.cpp:351 #, kde-format msgid "Level completed" msgstr "Level voltooid" #: PlayField.cpp:680 #, kde-format msgid "" "This is the last level in\n" "the current collection." msgstr "" "Dit is het laatste level in\n" "de huidige collectie." #: PlayField.cpp:686 #, kde-format msgid "" "You have not completed\n" "this level yet." msgstr "" "U heeft dit level\n" "nog niet uitgespeeld." #: PlayField.cpp:700 #, kde-format msgid "" "This is the first level in\n" "the current collection." msgstr "" "Dit is het eerste level in\n" "de huidige collectie." #: PlayField.cpp:778 #, kde-format msgid "" "Sorry, bookmarks for external levels\n" "is not implemented yet." msgstr "" "Sorry, bladwijzers voor externe levels\n" "zijn nog niet geïmplementeerd." #: PlayField.cpp:803 #, kde-format msgid "This level is broken" msgstr "Dit level is kapot" #. i18n: ectx: Menu (game) #: skladnikui.rc:6 #, kde-format msgid "&Game" msgstr "&Spel" #. i18n: ectx: Menu (animation_speed) #: skladnikui.rc:20 #, kde-format msgid "&Animation" msgstr "&Animatie" #. i18n: ectx: Menu (bookmarks_menu) #: skladnikui.rc:27 #, kde-format msgid "&Bookmarks" msgstr "&Bladwijzers" #. i18n: ectx: Menu (set_bookmarks) #: skladnikui.rc:29 #, kde-format msgid "&Set Bookmark" msgstr "Bladwijzer &toevoegen" #. i18n: ectx: Menu (goto_bookmarks) #: skladnikui.rc:42 #, kde-format msgid "&Go to Bookmark" msgstr "&Naar Bladwijzer" #~ msgid "KSokoban" #~ msgstr "KSokoban" #~ msgid "[file]" #~ msgstr "[file]" #~ msgid "&Undo" #~ msgstr "&Ongedaan maken" #~ msgid "&Redo" #~ msgstr "&Opnieuw" #~ msgid "&Quit" #~ msgstr "&Afsluiten" #~ msgid "Sasquatch V" #~ msgstr "Sasquatch V" #~ msgid "Mas Microban (easy)" #~ msgstr "Mas Microban (gemakkelijk)" #~ msgid "Sasquatch VI" #~ msgstr "Sasquatch VI" #~ msgid "LOMA" #~ msgstr "LOMA" #~ msgid "Sasquatch VII" #~ msgstr "Sasquatch VII" #~ msgid "(c) 1998-2001 Anders Widell" #~ msgstr "(c) 1998-2001 Anders Widell" skladnik-0.5.1/po/nn/000077500000000000000000000000001457640636700143705ustar00rootroot00000000000000skladnik-0.5.1/po/nn/skladnik.po000066400000000000000000000125711457640636700165360ustar00rootroot00000000000000# Translation of skladnik to Norwegian Nynorsk # # Gaute Hvoslef Kvalnes , 1999, 2000, 2002. # Karl Ove Hufthammer , 2012, 2020, 2022. msgid "" msgstr "" "Project-Id-Version: ksokoban\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-11-12 00:40+0000\n" "PO-Revision-Date: 2022-08-24 10:10+0200\n" "Last-Translator: Karl Ove Hufthammer \n" "Language-Team: Norwegian Nynorsk \n" "Language: nn\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 22.08.0\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Environment: kde\n" "X-Accelerator-Marker: &\n" "X-Text-Markup: kde4\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Gaute Hvoslef Kvalnes,Karl Ove Hufthammer" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "gaute@verdsveven.com,karl@huftis.org" #: InternalCollections.cpp:32 #, kde-format msgid "Sasquatch" msgstr "Sasquatch" #: InternalCollections.cpp:36 #, kde-format msgid "Mas Sasquatch" msgstr "Mas Sasquatch" #: InternalCollections.cpp:40 #, kde-format msgid "Sasquatch III" msgstr "Sasquatch III" #: InternalCollections.cpp:44 #, kde-format msgid "Microban (easy)" msgstr "Mikroban (lett)" #: InternalCollections.cpp:48 #, kde-format msgid "Sasquatch IV" msgstr "Sasquatch IV" #: main.cpp:27 #, kde-format msgid "Skladnik" msgstr "" #: main.cpp:29 #, kde-format msgid "The japanese warehouse keeper game" msgstr "Det japanske lagersjefspelet" #: main.cpp:31 #, kde-format msgid "" "(c) 1998 Anders Widell \n" "(c) 2012 Lukasz Kalamlacki" msgstr "" "© 1998 Anders Widell \n" "© 2012 Łukasz Kalamłacki" #: main.cpp:34 #, kde-format msgid "Shlomi Fish" msgstr "Shlomi Fish" #: main.cpp:35 #, kde-format msgid "For porting to Qt5/KF5 and doing other cleanups" msgstr "Porta spelet til Qt5/KF5 samt anna opprydding" #: main.cpp:38 #, kde-format msgid "Lukasz Kalamlacki" msgstr "Łukasz Kalamłacki" #: main.cpp:39 #, kde-format msgid "For rewriting the original ksokoban game from kde3 to kde4" msgstr "Porta det opphavlege KSokoban-spelet frå KDE 3 til KDE 4" #: main.cpp:42 #, kde-format msgid "Anders Widell" msgstr "Anders Widell" #: main.cpp:43 #, kde-format msgid "For writing the original ksokoban game" msgstr "Skreiv dei opphavlege KSokoban-spelet" #: main.cpp:46 #, kde-format msgid "David W. Skinner" msgstr "David W. Skinner" #: main.cpp:47 #, kde-format msgid "For contributing the Sokoban levels included in this game" msgstr "For å ha laga Sokoban-brett i dette spelet" #: main.cpp:56 #, kde-format msgid "Level collection file to load." msgstr "Brettsamlingsfil som skal opnast." #: MainWindow.cpp:38 #, kde-format msgid "&Level Collection" msgstr "&Brettsamling" #: MainWindow.cpp:97 #, kde-format msgid "&Load Levels..." msgstr "&Opna brett …" #: MainWindow.cpp:101 #, kde-format msgid "&Next Level" msgstr "&Neste brett" #: MainWindow.cpp:106 #, kde-format msgid "&Previous Level" msgstr "&Førre brett" #: MainWindow.cpp:111 #, kde-format msgid "Re&start Level" msgstr "&Start brettet på nytt" #: MainWindow.cpp:124 #, kde-format msgid "&Slow" msgstr "&Sakte" #: MainWindow.cpp:129 #, kde-format msgid "&Medium" msgstr "&Middels" #: MainWindow.cpp:134 #, kde-format msgid "&Fast" msgstr "&Rask" #: MainWindow.cpp:139 #, kde-format msgid "&Off" msgstr "&Av" #: MainWindow.cpp:179 MainWindow.cpp:193 #, kde-format msgid "(unused)" msgstr "(ikkje brukt)" #: MainWindow.cpp:229 #, kde-format msgid "(invalid)" msgstr "(ugyldig)" #: MainWindow.cpp:288 #, kde-format msgctxt "@title:window" msgid "Load Levels from a File" msgstr "Last brett frå fil" #: MainWindow.cpp:323 #, kde-format msgid "No levels found in file" msgstr "Fann ingen brett i fila" #: PlayField.cpp:102 #, kde-format msgid "Level:" msgstr "Brett:" #: PlayField.cpp:111 #, kde-format msgid "Steps:" msgstr "Steg:" #: PlayField.cpp:120 #, kde-format msgid "Pushes:" msgstr "Skubb:" #: PlayField.cpp:351 #, kde-format msgid "Level completed" msgstr "Brett fullført" #: PlayField.cpp:680 #, kde-format msgid "" "This is the last level in\n" "the current collection." msgstr "" "Dette er det siste brettet\n" "i denne samlinga." #: PlayField.cpp:686 #, kde-format msgid "" "You have not completed\n" "this level yet." msgstr "" "Du er ikkje ferdig med\n" "dette brettet enno." #: PlayField.cpp:700 #, kde-format msgid "" "This is the first level in\n" "the current collection." msgstr "" "Dette er det første brettet\n" "i denne samlinga." #: PlayField.cpp:778 #, kde-format msgid "" "Sorry, bookmarks for external levels\n" "is not implemented yet." msgstr "" "Bokmerke for eksterne nivå\n" "er ikkje implementert enno." #: PlayField.cpp:803 #, kde-format msgid "This level is broken" msgstr "Dette brettet er øydelagt" #. i18n: ectx: Menu (game) #: skladnikui.rc:6 #, kde-format msgid "&Game" msgstr "&Spel" #. i18n: ectx: Menu (animation_speed) #: skladnikui.rc:20 #, kde-format msgid "&Animation" msgstr "&Animasjon" #. i18n: ectx: Menu (bookmarks_menu) #: skladnikui.rc:27 #, kde-format msgid "&Bookmarks" msgstr "&Bokmerke" #. i18n: ectx: Menu (set_bookmarks) #: skladnikui.rc:29 #, kde-format msgid "&Set Bookmark" msgstr "&Definer bokmerke" #. i18n: ectx: Menu (goto_bookmarks) #: skladnikui.rc:42 #, kde-format msgid "&Go to Bookmark" msgstr "&Gå til bokmerke" skladnik-0.5.1/po/pl/000077500000000000000000000000001457640636700143705ustar00rootroot00000000000000skladnik-0.5.1/po/pl/skladnik.po000066400000000000000000000140441457640636700165330ustar00rootroot00000000000000# Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # # Łukasz Wojniłowicz , 2013, 2019, 2021, 2022, 2023. # Marta Rybczyńska , 2013. msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-11-12 00:40+0000\n" "PO-Revision-Date: 2023-02-12 09:26+0100\n" "Last-Translator: Łukasz Wojniłowicz \n" "Language-Team: Polish \n" "Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2);\n" "X-Generator: Lokalize 22.12.2\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Łukasz Wojniłowicz" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "lukasz.wojnilowicz@gmail.com" #: InternalCollections.cpp:32 #, kde-format msgid "Sasquatch" msgstr "Sasquatch" #: InternalCollections.cpp:36 #, kde-format msgid "Mas Sasquatch" msgstr "Mas Sasquatch" #: InternalCollections.cpp:40 #, kde-format msgid "Sasquatch III" msgstr "Sasquatch III" #: InternalCollections.cpp:44 #, kde-format msgid "Microban (easy)" msgstr "Microban (łatwy)" #: InternalCollections.cpp:48 #, kde-format msgid "Sasquatch IV" msgstr "Sasquatch IV" #: main.cpp:27 #, kde-format msgid "Skladnik" msgstr "" #: main.cpp:29 #, kde-format msgid "The japanese warehouse keeper game" msgstr "Gra w japońskiego właściciela składu" #: main.cpp:31 #, kde-format msgid "" "(c) 1998 Anders Widell \n" "(c) 2012 Lukasz Kalamlacki" msgstr "" "(c) 1998 Anders Widell \n" "(c) 2012 Lukasz Kalamlacki" #: main.cpp:34 #, kde-format msgid "Shlomi Fish" msgstr "Shlomi Fish" #: main.cpp:35 #, kde-format msgid "For porting to Qt5/KF5 and doing other cleanups" msgstr "Za przeniesienie na Qt5/KF5 i wykonania innych porządków" #: main.cpp:38 #, kde-format msgid "Lukasz Kalamlacki" msgstr "Lukasz Kalamlacki" #: main.cpp:39 #, kde-format msgid "For rewriting the original ksokoban game from kde3 to kde4" msgstr "Za przepisanie pierwotnej wersji ksokoban z kde3 na kde4" #: main.cpp:42 #, kde-format msgid "Anders Widell" msgstr "Anders Widell" #: main.cpp:43 #, kde-format msgid "For writing the original ksokoban game" msgstr "Za napisanie pierwotnej wersji ksokoban" #: main.cpp:46 #, kde-format msgid "David W. Skinner" msgstr "David W. Skinner" #: main.cpp:47 #, kde-format msgid "For contributing the Sokoban levels included in this game" msgstr "Za współtwórstwo przy poziomach Sokoban, dołączonych do tej gry" #: main.cpp:56 #, kde-format msgid "Level collection file to load." msgstr "Plik zbioru poziomów do wczytania." #: MainWindow.cpp:38 #, kde-format msgid "&Level Collection" msgstr "&Zbiór poziomów" #: MainWindow.cpp:97 #, kde-format msgid "&Load Levels..." msgstr "&Wczytaj poziomy..." #: MainWindow.cpp:101 #, kde-format msgid "&Next Level" msgstr "&Następny poziom" #: MainWindow.cpp:106 #, kde-format msgid "&Previous Level" msgstr "&Poprzedni poziom" #: MainWindow.cpp:111 #, kde-format msgid "Re&start Level" msgstr "&Uruchom poziom ponownie" #: MainWindow.cpp:124 #, kde-format msgid "&Slow" msgstr "&Wolno" #: MainWindow.cpp:129 #, kde-format msgid "&Medium" msgstr "Ś&rednio" #: MainWindow.cpp:134 #, kde-format msgid "&Fast" msgstr "&Szybko" #: MainWindow.cpp:139 #, kde-format msgid "&Off" msgstr "&Wyłączony" #: MainWindow.cpp:179 MainWindow.cpp:193 #, kde-format msgid "(unused)" msgstr "(nieużywany)" #: MainWindow.cpp:229 #, kde-format msgid "(invalid)" msgstr "(nieprawidłowy)" #: MainWindow.cpp:288 #, kde-format msgctxt "@title:window" msgid "Load Levels from a File" msgstr "Wczytaj poziomy z pliku" #: MainWindow.cpp:323 #, kde-format msgid "No levels found in file" msgstr "Nie znaleziono poziomów w pliku" #: PlayField.cpp:102 #, kde-format msgid "Level:" msgstr "Poziom:" #: PlayField.cpp:111 #, kde-format msgid "Steps:" msgstr "Kroki:" #: PlayField.cpp:120 #, kde-format msgid "Pushes:" msgstr "Pchnięcia:" #: PlayField.cpp:351 #, kde-format msgid "Level completed" msgstr "Ukończono poziom" #: PlayField.cpp:680 #, kde-format msgid "" "This is the last level in\n" "the current collection." msgstr "" "To ostatni poziom\n" "w bieżącym zbiorze." #: PlayField.cpp:686 #, kde-format msgid "" "You have not completed\n" "this level yet." msgstr "" "Jeszcze nie ukończono\n" "tego poziomu." #: PlayField.cpp:700 #, kde-format msgid "" "This is the first level in\n" "the current collection." msgstr "" "To pierwszy poziom\n" "w bieżącym zbiorze." #: PlayField.cpp:778 #, kde-format msgid "" "Sorry, bookmarks for external levels\n" "is not implemented yet." msgstr "" "Wybacz, zakładki dla zewnętrznych poziomów\n" "nie są jeszcze zaimplementowane." #: PlayField.cpp:803 #, kde-format msgid "This level is broken" msgstr "Poziom ten jest uszkodzony" #. i18n: ectx: Menu (game) #: skladnikui.rc:6 #, kde-format msgid "&Game" msgstr "&Gra" #. i18n: ectx: Menu (animation_speed) #: skladnikui.rc:20 #, kde-format msgid "&Animation" msgstr "&Animacja" #. i18n: ectx: Menu (bookmarks_menu) #: skladnikui.rc:27 #, kde-format msgid "&Bookmarks" msgstr "&Zakładki" #. i18n: ectx: Menu (set_bookmarks) #: skladnikui.rc:29 #, kde-format msgid "&Set Bookmark" msgstr "&Dodaj zakładkę" #. i18n: ectx: Menu (goto_bookmarks) #: skladnikui.rc:42 #, kde-format msgid "&Go to Bookmark" msgstr "&Przejdź do zakładki" #~ msgid "KSokoban" #~ msgstr "KSokoban" #~ msgid "[file]" #~ msgstr "[plik]" #~ msgid "&Undo" #~ msgstr "&Cofnij" #~ msgid "&Redo" #~ msgstr "&Ponów" #~ msgid "&Quit" #~ msgstr "Za&kończ" #~ msgid "Sasquatch V" #~ msgstr "Sasquatch V" #~ msgid "Mas Microban (easy)" #~ msgstr "Mas Microban (łatwy)" #~ msgid "Sasquatch VI" #~ msgstr "Sasquatch VI" #~ msgid "LOMA" #~ msgstr "LOMA" #~ msgid "Sasquatch VII" #~ msgstr "Sasquatch VII" #~ msgid "(c) 1998-2001 Anders Widell" #~ msgstr "(c) 1998-2001 Anders Widell" skladnik-0.5.1/po/pt/000077500000000000000000000000001457640636700144005ustar00rootroot00000000000000skladnik-0.5.1/po/pt/skladnik.po000066400000000000000000000127701457640636700165470ustar00rootroot00000000000000msgid "" msgstr "" "Project-Id-Version: ksokoban\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-11-12 00:40+0000\n" "PO-Revision-Date: 2022-08-25 17:31+0100\n" "Last-Translator: José Nuno Pires \n" "Language-Team: pt \n" "Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-POFile-IgnoreConsistency: &Medium\n" "X-POFile-IgnoreConsistency: &Fast\n" "X-POFile-IgnoreConsistency: &Fast\n" "X-POFile-SpellExtra: Sokoban Sasquatch Microban Widell LOMA VII Skinner\n" "X-POFile-SpellExtra: Anders ksokoban Lukasz KF Fish KSokoban Kalamlacki\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-POFile-SpellExtra: Shlomi\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "José Nuno Pires" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "zepires@gmail.com" #: InternalCollections.cpp:32 #, kde-format msgid "Sasquatch" msgstr "Sasquatch" #: InternalCollections.cpp:36 #, kde-format msgid "Mas Sasquatch" msgstr "Mas Sasquatch" #: InternalCollections.cpp:40 #, kde-format msgid "Sasquatch III" msgstr "Sasquatch III" #: InternalCollections.cpp:44 #, kde-format msgid "Microban (easy)" msgstr "Microban (fácil)" #: InternalCollections.cpp:48 #, kde-format msgid "Sasquatch IV" msgstr "Sasquatch IV" #: main.cpp:27 #, kde-format msgid "Skladnik" msgstr "" #: main.cpp:29 #, kde-format msgid "The japanese warehouse keeper game" msgstr "O jogo de empurrar caixotes" #: main.cpp:31 #, kde-format msgid "" "(c) 1998 Anders Widell \n" "(c) 2012 Lukasz Kalamlacki" msgstr "" "(c) 1998 Anders Widell \n" "(c) 2012 Lukasz Kalamlacki" #: main.cpp:34 #, kde-format msgid "Shlomi Fish" msgstr "Shlomi Fish" #: main.cpp:35 #, kde-format msgid "For porting to Qt5/KF5 and doing other cleanups" msgstr "Pela migração para o Qt5/KF5 e por outras limpezas" #: main.cpp:38 #, kde-format msgid "Lukasz Kalamlacki" msgstr "Lukasz Kalamlacki" #: main.cpp:39 #, kde-format msgid "For rewriting the original ksokoban game from kde3 to kde4" msgstr "Pela remodelação do jogo original do KSokoban do KDE3 para o KDE4" #: main.cpp:42 #, kde-format msgid "Anders Widell" msgstr "Anders Widell" #: main.cpp:43 #, kde-format msgid "For writing the original ksokoban game" msgstr "Pela criação do jogo original do KSokoban" #: main.cpp:46 #, kde-format msgid "David W. Skinner" msgstr "David W. Skinner" #: main.cpp:47 #, kde-format msgid "For contributing the Sokoban levels included in this game" msgstr "Por contribuir nos níveis do Sokoban incluídos neste jogo" #: main.cpp:56 #, kde-format msgid "Level collection file to load." msgstr "Ficheiro de colecção de níveis a carregar." #: MainWindow.cpp:38 #, kde-format msgid "&Level Collection" msgstr "Colecção de &Níveis" #: MainWindow.cpp:97 #, kde-format msgid "&Load Levels..." msgstr "&Carregar os Níveis..." #: MainWindow.cpp:101 #, kde-format msgid "&Next Level" msgstr "&Nível Seguinte" #: MainWindow.cpp:106 #, kde-format msgid "&Previous Level" msgstr "Nível &Anterior" #: MainWindow.cpp:111 #, kde-format msgid "Re&start Level" msgstr "R&einiciar o Nível" #: MainWindow.cpp:124 #, kde-format msgid "&Slow" msgstr "&Lentas" #: MainWindow.cpp:129 #, kde-format msgid "&Medium" msgstr "&Médias" #: MainWindow.cpp:134 #, kde-format msgid "&Fast" msgstr "&Rápidas" #: MainWindow.cpp:139 #, kde-format msgid "&Off" msgstr "&Desligadas" #: MainWindow.cpp:179 MainWindow.cpp:193 #, kde-format msgid "(unused)" msgstr "(vazio)" #: MainWindow.cpp:229 #, kde-format msgid "(invalid)" msgstr "(inválido)" #: MainWindow.cpp:288 #, kde-format msgctxt "@title:window" msgid "Load Levels from a File" msgstr "Carregar os Níveis de um Ficheiro" #: MainWindow.cpp:323 #, kde-format msgid "No levels found in file" msgstr "Não foi encontrado nenhum nível no ficheiro" #: PlayField.cpp:102 #, kde-format msgid "Level:" msgstr "Nível:" #: PlayField.cpp:111 #, kde-format msgid "Steps:" msgstr "Passos:" #: PlayField.cpp:120 #, kde-format msgid "Pushes:" msgstr "Empurrões:" #: PlayField.cpp:351 #, kde-format msgid "Level completed" msgstr "Nível concluído" #: PlayField.cpp:680 #, kde-format msgid "" "This is the last level in\n" "the current collection." msgstr "" "Este é o último nível\n" "da colecção actual." #: PlayField.cpp:686 #, kde-format msgid "" "You have not completed\n" "this level yet." msgstr "" "Ainda não concluiu\n" "este nível." #: PlayField.cpp:700 #, kde-format msgid "" "This is the first level in\n" "the current collection." msgstr "" "Este é o primeiro nível\n" "da colecção actual." #: PlayField.cpp:778 #, kde-format msgid "" "Sorry, bookmarks for external levels\n" "is not implemented yet." msgstr "" "Ainda não é possível guardar a\n" "posição nos níveis externos." #: PlayField.cpp:803 #, kde-format msgid "This level is broken" msgstr "Este nível está estragado" #. i18n: ectx: Menu (game) #: skladnikui.rc:6 #, kde-format msgid "&Game" msgstr "Jo&go" #. i18n: ectx: Menu (animation_speed) #: skladnikui.rc:20 #, kde-format msgid "&Animation" msgstr "&Animação" #. i18n: ectx: Menu (bookmarks_menu) #: skladnikui.rc:27 #, kde-format msgid "&Bookmarks" msgstr "Fa&voritos" #. i18n: ectx: Menu (set_bookmarks) #: skladnikui.rc:29 #, kde-format msgid "&Set Bookmark" msgstr "&Colocar um Favorito" #. i18n: ectx: Menu (goto_bookmarks) #: skladnikui.rc:42 #, kde-format msgid "&Go to Bookmark" msgstr "&Ir para o Favorito" #~ msgid "KSokoban" #~ msgstr "KSokoban" skladnik-0.5.1/po/pt_BR/000077500000000000000000000000001457640636700147635ustar00rootroot00000000000000skladnik-0.5.1/po/pt_BR/skladnik.po000066400000000000000000000140551457640636700171300ustar00rootroot00000000000000# Copyright (C) 2012 This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # Translation of ksokoban.po to Brazilian Portuguese # # André Marcelo Alvarenga , 2012. # Luiz Fernando Ranghetti , 2019, 2021, 2022, 2023. msgid "" msgstr "" "Project-Id-Version: ksokoban\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-11-12 00:40+0000\n" "PO-Revision-Date: 2023-11-14 12:07-0300\n" "Last-Translator: Luiz Fernando Ranghetti \n" "Language-Team: Brazilian Portuguese \n" "Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: Lokalize 22.12.3\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "André Marcelo Alvarenga" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "alvarenga@kde.org" #: InternalCollections.cpp:32 #, kde-format msgid "Sasquatch" msgstr "Sasquatch" #: InternalCollections.cpp:36 #, kde-format msgid "Mas Sasquatch" msgstr "Mas Sasquatch" #: InternalCollections.cpp:40 #, kde-format msgid "Sasquatch III" msgstr "Sasquatch III" #: InternalCollections.cpp:44 #, kde-format msgid "Microban (easy)" msgstr "Microban (fácil)" #: InternalCollections.cpp:48 #, kde-format msgid "Sasquatch IV" msgstr "Sasquatch IV" #: main.cpp:27 #, kde-format msgid "Skladnik" msgstr "Skladnik" #: main.cpp:29 #, kde-format msgid "The japanese warehouse keeper game" msgstr "O jogo do almoxarife japonês" #: main.cpp:31 #, kde-format msgid "" "(c) 1998 Anders Widell \n" "(c) 2012 Lukasz Kalamlacki" msgstr "" "(c) 1998 Anders Widell \n" "(c) 2012 Lukasz Kalamlacki" #: main.cpp:34 #, kde-format msgid "Shlomi Fish" msgstr "Shlomi Fish" #: main.cpp:35 #, kde-format msgid "For porting to Qt5/KF5 and doing other cleanups" msgstr "Por portar para o Qt5/KF5 e fazer outras limpezas" #: main.cpp:38 #, kde-format msgid "Lukasz Kalamlacki" msgstr "Lukasz Kalamlacki" #: main.cpp:39 #, kde-format msgid "For rewriting the original ksokoban game from kde3 to kde4" msgstr "Por reescrever o jogo ksokoban original para o KDE 3 e KDE 4" #: main.cpp:42 #, kde-format msgid "Anders Widell" msgstr "Anders Widell" #: main.cpp:43 #, kde-format msgid "For writing the original ksokoban game" msgstr "Por escrever o jogo ksokoban original" #: main.cpp:46 #, kde-format msgid "David W. Skinner" msgstr "David W. Skinner" #: main.cpp:47 #, kde-format msgid "For contributing the Sokoban levels included in this game" msgstr "Pelas contribuições aos níveis do Sokoban incluídos neste jogo" #: main.cpp:56 #, kde-format msgid "Level collection file to load." msgstr "Arquivo de coleção de níveis a carregar." #: MainWindow.cpp:38 #, kde-format msgid "&Level Collection" msgstr "Co&leção de níveis" #: MainWindow.cpp:97 #, kde-format msgid "&Load Levels..." msgstr "&Carregar níveis" #: MainWindow.cpp:101 #, kde-format msgid "&Next Level" msgstr "&Próximo nível" #: MainWindow.cpp:106 #, kde-format msgid "&Previous Level" msgstr "&Nível anterior" #: MainWindow.cpp:111 #, kde-format msgid "Re&start Level" msgstr "&Reiniciar o nível" #: MainWindow.cpp:124 #, kde-format msgid "&Slow" msgstr "&Lento" #: MainWindow.cpp:129 #, kde-format msgid "&Medium" msgstr "&Médio" #: MainWindow.cpp:134 #, kde-format msgid "&Fast" msgstr "&Rápido" #: MainWindow.cpp:139 #, kde-format msgid "&Off" msgstr "&Desligado" #: MainWindow.cpp:179 MainWindow.cpp:193 #, kde-format msgid "(unused)" msgstr "(não usado)" #: MainWindow.cpp:229 #, kde-format msgid "(invalid)" msgstr "(inválido)" #: MainWindow.cpp:288 #, kde-format msgctxt "@title:window" msgid "Load Levels from a File" msgstr "Carregar níveis a partir do arquivo" #: MainWindow.cpp:323 #, kde-format msgid "No levels found in file" msgstr "Nenhum nível encontrado no arquivo" #: PlayField.cpp:102 #, kde-format msgid "Level:" msgstr "Nível:" #: PlayField.cpp:111 #, kde-format msgid "Steps:" msgstr "Passos:" #: PlayField.cpp:120 #, kde-format msgid "Pushes:" msgstr "Movimentos:" #: PlayField.cpp:351 #, kde-format msgid "Level completed" msgstr "Nível concluído" #: PlayField.cpp:680 #, kde-format msgid "" "This is the last level in\n" "the current collection." msgstr "" "Este é o último nível da\n" "coleção atual." #: PlayField.cpp:686 #, kde-format msgid "" "You have not completed\n" "this level yet." msgstr "" "Você ainda não concluiu\n" "este nível." #: PlayField.cpp:700 #, kde-format msgid "" "This is the first level in\n" "the current collection." msgstr "" "Este é o primeiro nível da\n" "coleção atual." #: PlayField.cpp:778 #, kde-format msgid "" "Sorry, bookmarks for external levels\n" "is not implemented yet." msgstr "" "Infelizmente, marcadores para níveis\n" "externos ainda não foram implementados." #: PlayField.cpp:803 #, kde-format msgid "This level is broken" msgstr "Este nível não funciona" #. i18n: ectx: Menu (game) #: skladnikui.rc:6 #, kde-format msgid "&Game" msgstr "&Jogo" #. i18n: ectx: Menu (animation_speed) #: skladnikui.rc:20 #, kde-format msgid "&Animation" msgstr "&Animação" #. i18n: ectx: Menu (bookmarks_menu) #: skladnikui.rc:27 #, kde-format msgid "&Bookmarks" msgstr "&Favoritos" #. i18n: ectx: Menu (set_bookmarks) #: skladnikui.rc:29 #, kde-format msgid "&Set Bookmark" msgstr "&Definir favorito" #. i18n: ectx: Menu (goto_bookmarks) #: skladnikui.rc:42 #, kde-format msgid "&Go to Bookmark" msgstr "&Ir para favorito" #~ msgid "KSokoban" #~ msgstr "KSokoban" #~ msgid "[file]" #~ msgstr "[arquivo]" #~ msgid "&Undo" #~ msgstr "&Desfazer" #~ msgid "&Redo" #~ msgstr "&Refazer" #~ msgid "&Quit" #~ msgstr "Sai&r" #~ msgid "Sasquatch V" #~ msgstr "Sasquatch V" #~ msgid "Mas Microban (easy)" #~ msgstr "Mas Microban (fácil)" #~ msgid "Sasquatch VI" #~ msgstr "Sasquatch VI" #~ msgid "LOMA" #~ msgstr "LOMA" #~ msgid "Sasquatch VII" #~ msgstr "Sasquatch VII" #~ msgid "(c) 1998-2001 Anders Widell" #~ msgstr "(c) 1998-2001 Anders Widell" skladnik-0.5.1/po/ru/000077500000000000000000000000001457640636700144035ustar00rootroot00000000000000skladnik-0.5.1/po/ru/skladnik.po000066400000000000000000000106611457640636700165470ustar00rootroot00000000000000# Copyright (C) YEAR This file is copyright: # This file is distributed under the same license as the ksokoban package. # # Alexander Potashev , 2019. msgid "" msgstr "" "Project-Id-Version: ksokoban\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-11-12 00:40+0000\n" "PO-Revision-Date: 2019-02-24 19:16+0300\n" "Last-Translator: Alexander Potashev \n" "Language-Team: Russian \n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n" "%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Generator: Lokalize 2.0\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "" #: InternalCollections.cpp:32 #, kde-format msgid "Sasquatch" msgstr "" #: InternalCollections.cpp:36 #, kde-format msgid "Mas Sasquatch" msgstr "" #: InternalCollections.cpp:40 #, kde-format msgid "Sasquatch III" msgstr "" #: InternalCollections.cpp:44 #, kde-format msgid "Microban (easy)" msgstr "" #: InternalCollections.cpp:48 #, kde-format msgid "Sasquatch IV" msgstr "" #: main.cpp:27 #, kde-format msgid "Skladnik" msgstr "" #: main.cpp:29 #, kde-format msgid "The japanese warehouse keeper game" msgstr "" #: main.cpp:31 #, kde-format msgid "" "(c) 1998 Anders Widell \n" "(c) 2012 Lukasz Kalamlacki" msgstr "" #: main.cpp:34 #, kde-format msgid "Shlomi Fish" msgstr "" #: main.cpp:35 #, kde-format msgid "For porting to Qt5/KF5 and doing other cleanups" msgstr "" #: main.cpp:38 #, kde-format msgid "Lukasz Kalamlacki" msgstr "Lukasz Kalamlacki" #: main.cpp:39 #, kde-format msgid "For rewriting the original ksokoban game from kde3 to kde4" msgstr "" #: main.cpp:42 #, kde-format msgid "Anders Widell" msgstr "Anders Widell" #: main.cpp:43 #, kde-format msgid "For writing the original ksokoban game" msgstr "" #: main.cpp:46 #, kde-format msgid "David W. Skinner" msgstr "David W. Skinner" #: main.cpp:47 #, kde-format msgid "For contributing the Sokoban levels included in this game" msgstr "" #: main.cpp:56 #, kde-format msgid "Level collection file to load." msgstr "" #: MainWindow.cpp:38 #, kde-format msgid "&Level Collection" msgstr "" #: MainWindow.cpp:97 #, kde-format msgid "&Load Levels..." msgstr "" #: MainWindow.cpp:101 #, kde-format msgid "&Next Level" msgstr "" #: MainWindow.cpp:106 #, kde-format msgid "&Previous Level" msgstr "" #: MainWindow.cpp:111 #, kde-format msgid "Re&start Level" msgstr "" #: MainWindow.cpp:124 #, kde-format msgid "&Slow" msgstr "" #: MainWindow.cpp:129 #, kde-format msgid "&Medium" msgstr "" #: MainWindow.cpp:134 #, kde-format msgid "&Fast" msgstr "" #: MainWindow.cpp:139 #, kde-format msgid "&Off" msgstr "" #: MainWindow.cpp:179 MainWindow.cpp:193 #, kde-format msgid "(unused)" msgstr "" #: MainWindow.cpp:229 #, kde-format msgid "(invalid)" msgstr "" #: MainWindow.cpp:288 #, kde-format msgctxt "@title:window" msgid "Load Levels from a File" msgstr "" #: MainWindow.cpp:323 #, kde-format msgid "No levels found in file" msgstr "" #: PlayField.cpp:102 #, kde-format msgid "Level:" msgstr "" #: PlayField.cpp:111 #, kde-format msgid "Steps:" msgstr "" #: PlayField.cpp:120 #, kde-format msgid "Pushes:" msgstr "" #: PlayField.cpp:351 #, kde-format msgid "Level completed" msgstr "" #: PlayField.cpp:680 #, kde-format msgid "" "This is the last level in\n" "the current collection." msgstr "" #: PlayField.cpp:686 #, kde-format msgid "" "You have not completed\n" "this level yet." msgstr "" #: PlayField.cpp:700 #, kde-format msgid "" "This is the first level in\n" "the current collection." msgstr "" #: PlayField.cpp:778 #, kde-format msgid "" "Sorry, bookmarks for external levels\n" "is not implemented yet." msgstr "" #: PlayField.cpp:803 #, kde-format msgid "This level is broken" msgstr "" #. i18n: ectx: Menu (game) #: skladnikui.rc:6 #, kde-format msgid "&Game" msgstr "" #. i18n: ectx: Menu (animation_speed) #: skladnikui.rc:20 #, kde-format msgid "&Animation" msgstr "" #. i18n: ectx: Menu (bookmarks_menu) #: skladnikui.rc:27 #, kde-format msgid "&Bookmarks" msgstr "" #. i18n: ectx: Menu (set_bookmarks) #: skladnikui.rc:29 #, kde-format msgid "&Set Bookmark" msgstr "" #. i18n: ectx: Menu (goto_bookmarks) #: skladnikui.rc:42 #, kde-format msgid "&Go to Bookmark" msgstr "" skladnik-0.5.1/po/sk/000077500000000000000000000000001457640636700143725ustar00rootroot00000000000000skladnik-0.5.1/po/sk/skladnik.po000066400000000000000000000135561457640636700165440ustar00rootroot00000000000000# translation of ksokoban.po to Slovak # Roman Paholik , 2012, 2022. # Matej Mrenica , 2020. msgid "" msgstr "" "Project-Id-Version: ksokoban\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-11-12 00:40+0000\n" "PO-Revision-Date: 2022-04-09 19:27+0200\n" "Last-Translator: Roman Paholik \n" "Language-Team: Slovak \n" "Language: sk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 21.12.3\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Roman Paholík" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "wizzardsk@gmail.com" #: InternalCollections.cpp:32 #, kde-format msgid "Sasquatch" msgstr "Sasquatch" #: InternalCollections.cpp:36 #, kde-format msgid "Mas Sasquatch" msgstr "Mas Sasquatch" #: InternalCollections.cpp:40 #, kde-format msgid "Sasquatch III" msgstr "Sasquatch III" #: InternalCollections.cpp:44 #, kde-format msgid "Microban (easy)" msgstr "Microban (jednoduchý)" #: InternalCollections.cpp:48 #, kde-format msgid "Sasquatch IV" msgstr "Sasquatch IV" #: main.cpp:27 #, kde-format msgid "Skladnik" msgstr "" #: main.cpp:29 #, kde-format msgid "The japanese warehouse keeper game" msgstr "Hra japonského skladníka" #: main.cpp:31 #, kde-format msgid "" "(c) 1998 Anders Widell \n" "(c) 2012 Lukasz Kalamlacki" msgstr "" "(c) 1998 Anders Widell \n" "(c) 2012 Lukasz Kalamlacki" #: main.cpp:34 #, kde-format msgid "Shlomi Fish" msgstr "Shlomi Fish" #: main.cpp:35 #, kde-format msgid "For porting to Qt5/KF5 and doing other cleanups" msgstr "Pre portovanie do Qt5/KF5 a ďalšie čistenie" #: main.cpp:38 #, kde-format msgid "Lukasz Kalamlacki" msgstr "Lukasz Kalamlacki" #: main.cpp:39 #, kde-format msgid "For rewriting the original ksokoban game from kde3 to kde4" msgstr "Za prepísanie pôvodnej hry ksokoban z kde3 do kde4" #: main.cpp:42 #, kde-format msgid "Anders Widell" msgstr "Anders Widell" #: main.cpp:43 #, kde-format msgid "For writing the original ksokoban game" msgstr "Za písanie originálnej hry ksokoban" #: main.cpp:46 #, kde-format msgid "David W. Skinner" msgstr "David W. Skinner" #: main.cpp:47 #, kde-format msgid "For contributing the Sokoban levels included in this game" msgstr "Za prispievanie úrovní Sokobanu zahrnutých v tejto hre" #: main.cpp:56 #, fuzzy, kde-format #| msgid "Level collection file to load" msgid "Level collection file to load." msgstr "Načítanie súboru kolekcie úrovní" #: MainWindow.cpp:38 #, kde-format msgid "&Level Collection" msgstr "Kolekcia úrovní" #: MainWindow.cpp:97 #, kde-format msgid "&Load Levels..." msgstr "Načítať úrovne..." #: MainWindow.cpp:101 #, kde-format msgid "&Next Level" msgstr "Nasledujúca úroveň" #: MainWindow.cpp:106 #, kde-format msgid "&Previous Level" msgstr "Predchádzajúca úroveň" #: MainWindow.cpp:111 #, kde-format msgid "Re&start Level" msgstr "Reštartovať úroveň" #: MainWindow.cpp:124 #, kde-format msgid "&Slow" msgstr "Pomalé" #: MainWindow.cpp:129 #, kde-format msgid "&Medium" msgstr "&Stredné" #: MainWindow.cpp:134 #, kde-format msgid "&Fast" msgstr "Rýchle" #: MainWindow.cpp:139 #, kde-format msgid "&Off" msgstr "&Vypnúť" #: MainWindow.cpp:179 MainWindow.cpp:193 #, kde-format msgid "(unused)" msgstr "(nepoužité)" #: MainWindow.cpp:229 #, kde-format msgid "(invalid)" msgstr "(neplatné)" #: MainWindow.cpp:288 #, kde-format msgctxt "@title:window" msgid "Load Levels from a File" msgstr "Načítať úrovne zo súboru" #: MainWindow.cpp:323 #, kde-format msgid "No levels found in file" msgstr "V súbore sa nenašli žiadne úrovne" #: PlayField.cpp:102 #, kde-format msgid "Level:" msgstr "Úroveň:" #: PlayField.cpp:111 #, kde-format msgid "Steps:" msgstr "Kroky:" #: PlayField.cpp:120 #, kde-format msgid "Pushes:" msgstr "Ťahy:" #: PlayField.cpp:351 #, kde-format msgid "Level completed" msgstr "Úroveň dokončená" #: PlayField.cpp:680 #, kde-format msgid "" "This is the last level in\n" "the current collection." msgstr "" "Toto je posledná úroveň v\n" " aktuálnej kolekcii." #: PlayField.cpp:686 #, kde-format msgid "" "You have not completed\n" "this level yet." msgstr "" "Túto úroveň\n" "ste ešte nedokončili." #: PlayField.cpp:700 #, kde-format msgid "" "This is the first level in\n" "the current collection." msgstr "" "Toto je prvá úroveň v\n" " aktuálnej kolekcii." #: PlayField.cpp:778 #, kde-format msgid "" "Sorry, bookmarks for external levels\n" "is not implemented yet." msgstr "" "Ľutujeme, záložky pre externé úrovne\n" " zatiaľ nie sú implementované." #: PlayField.cpp:803 #, kde-format msgid "This level is broken" msgstr "Táto úroveň je poškodená" #. i18n: ectx: Menu (game) #: skladnikui.rc:6 #, kde-format msgid "&Game" msgstr "Hra" #. i18n: ectx: Menu (animation_speed) #: skladnikui.rc:20 #, kde-format msgid "&Animation" msgstr "Animácia" #. i18n: ectx: Menu (bookmarks_menu) #: skladnikui.rc:27 #, kde-format msgid "&Bookmarks" msgstr "Záložky" #. i18n: ectx: Menu (set_bookmarks) #: skladnikui.rc:29 #, kde-format msgid "&Set Bookmark" msgstr "Nastaviť záložku" #. i18n: ectx: Menu (goto_bookmarks) #: skladnikui.rc:42 #, kde-format msgid "&Go to Bookmark" msgstr "Prejsť do záložiek" #, fuzzy #~| msgid "ksokoban" #~ msgid "KSokoban" #~ msgstr "ksokoban" #~ msgid "[file]" #~ msgstr "[súbor]" #~ msgid "&Undo" #~ msgstr "Vrátiť" #~ msgid "&Redo" #~ msgstr "Znovu" #~ msgid "&Quit" #~ msgstr "Ukončiť" #, fuzzy #~ msgid "Mas Microban (easy)" #~ msgstr "Jednoduchý režim kalkulačky" #, fuzzy #~ msgid "Sasquatch VI" #~ msgstr "VI: REPLACE" #~ msgid "LOMA" #~ msgstr "LOMA" #~ msgid "(c) 1998-2001 Anders Widell" #~ msgstr "(c) 1998-2001 Anders Widell" skladnik-0.5.1/po/sl/000077500000000000000000000000001457640636700143735ustar00rootroot00000000000000skladnik-0.5.1/po/sl/skladnik.po000066400000000000000000000127611457640636700165420ustar00rootroot00000000000000# Copyright (C) YEAR This file is copyright: # This file is distributed under the same license as the ksokoban package. # # Matjaž Jeran , 2020, 2021, 2022. msgid "" msgstr "" "Project-Id-Version: ksokoban\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-11-12 00:40+0000\n" "PO-Revision-Date: 2023-11-12 10:04+0100\n" "Last-Translator: Matjaž Jeran \n" "Language-Team: Slovenian \n" "Language: sl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n" "%100==4 ? 3 : 0);\n" "X-Generator: Poedit 3.4.1\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Matjaž Jeran" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "matjaz.jeran@amis.net" #: InternalCollections.cpp:32 #, kde-format msgid "Sasquatch" msgstr "Sasquatch" #: InternalCollections.cpp:36 #, kde-format msgid "Mas Sasquatch" msgstr "Mas Sasquatch" #: InternalCollections.cpp:40 #, kde-format msgid "Sasquatch III" msgstr "Sasquatch III" #: InternalCollections.cpp:44 #, kde-format msgid "Microban (easy)" msgstr "Microban (lahek)" #: InternalCollections.cpp:48 #, kde-format msgid "Sasquatch IV" msgstr "Sasquatch IV" #: main.cpp:27 #, kde-format msgid "Skladnik" msgstr "Skladnik" #: main.cpp:29 #, kde-format msgid "The japanese warehouse keeper game" msgstr "Igra japonskega skladiščnika" #: main.cpp:31 #, kde-format msgid "" "(c) 1998 Anders Widell \n" "(c) 2012 Lukasz Kalamlacki" msgstr "" "(c) 1998 Anders Widell \n" "(c) 2012 Lukasz Kalamlacki" #: main.cpp:34 #, kde-format msgid "Shlomi Fish" msgstr "Shlomi Fish" #: main.cpp:35 #, kde-format msgid "For porting to Qt5/KF5 and doing other cleanups" msgstr "Za prenos v Qt5/KF5 in drugo čiščenje" #: main.cpp:38 #, kde-format msgid "Lukasz Kalamlacki" msgstr "Lukasz Kalamlacki" #: main.cpp:39 #, kde-format msgid "For rewriting the original ksokoban game from kde3 to kde4" msgstr "Za prepisovanje izvirne igre ksokoban iz kde3 v kde4" #: main.cpp:42 #, kde-format msgid "Anders Widell" msgstr "Anders Widell" #: main.cpp:43 #, kde-format msgid "For writing the original ksokoban game" msgstr "Za pisanje izvirne igre ksokoban" #: main.cpp:46 #, kde-format msgid "David W. Skinner" msgstr "David W. Skinner" #: main.cpp:47 #, kde-format msgid "For contributing the Sokoban levels included in this game" msgstr "Za prispevanje ravni Sokobana, vključene v tej igri" #: main.cpp:56 #, kde-format msgid "Level collection file to load." msgstr "Raven zbirne datoteke za nalaganje." #: MainWindow.cpp:38 #, kde-format msgid "&Level Collection" msgstr "Zbirka nivokjev" #: MainWindow.cpp:97 #, kde-format msgid "&Load Levels..." msgstr "Naloži nivoje..." #: MainWindow.cpp:101 #, kde-format msgid "&Next Level" msgstr "&Naslednji nivo" #: MainWindow.cpp:106 #, kde-format msgid "&Previous Level" msgstr "&Prejšnji nivo" #: MainWindow.cpp:111 #, kde-format msgid "Re&start Level" msgstr "Ponovno začetni nivo" #: MainWindow.cpp:124 #, kde-format msgid "&Slow" msgstr "Počasi" #: MainWindow.cpp:129 #, kde-format msgid "&Medium" msgstr "Srednje" #: MainWindow.cpp:134 #, kde-format msgid "&Fast" msgstr "Hitra" #: MainWindow.cpp:139 #, kde-format msgid "&Off" msgstr "Brez" #: MainWindow.cpp:179 MainWindow.cpp:193 #, kde-format msgid "(unused)" msgstr "(neuporabljeno)" #: MainWindow.cpp:229 #, kde-format msgid "(invalid)" msgstr "(neveljavno)" #: MainWindow.cpp:288 #, kde-format msgctxt "@title:window" msgid "Load Levels from a File" msgstr "Naloži ravni iz datoteke" #: MainWindow.cpp:323 #, kde-format msgid "No levels found in file" msgstr "Na datoteki ni najdenih nivojev" #: PlayField.cpp:102 #, kde-format msgid "Level:" msgstr "Nivo:" #: PlayField.cpp:111 #, kde-format msgid "Steps:" msgstr "Koraki:" #: PlayField.cpp:120 #, kde-format msgid "Pushes:" msgstr "Potiski:" #: PlayField.cpp:351 #, kde-format msgid "Level completed" msgstr "Nivo zaključen" #: PlayField.cpp:680 #, kde-format msgid "" "This is the last level in\n" "the current collection." msgstr "" "To je zadnji nivo\n" "trenutne zbirke." #: PlayField.cpp:686 #, kde-format msgid "" "You have not completed\n" "this level yet." msgstr "" "Še niste zaključili\n" "tega nivoja." #: PlayField.cpp:700 #, kde-format msgid "" "This is the first level in\n" "the current collection." msgstr "" "To je prvi nivo\n" "trenutne zbirke." #: PlayField.cpp:778 #, kde-format msgid "" "Sorry, bookmarks for external levels\n" "is not implemented yet." msgstr "Se opravičujemo, zaznamki za zunanje nivoje še niso izdelani." #: PlayField.cpp:803 #, kde-format msgid "This level is broken" msgstr "Ta nivo je pokvarjen" #. i18n: ectx: Menu (game) #: skladnikui.rc:6 #, kde-format msgid "&Game" msgstr "Igra" #. i18n: ectx: Menu (animation_speed) #: skladnikui.rc:20 #, kde-format msgid "&Animation" msgstr "Animacija" #. i18n: ectx: Menu (bookmarks_menu) #: skladnikui.rc:27 #, kde-format msgid "&Bookmarks" msgstr "Zaznamki" #. i18n: ectx: Menu (set_bookmarks) #: skladnikui.rc:29 #, kde-format msgid "&Set Bookmark" msgstr "Nastavi zaznamek" #. i18n: ectx: Menu (goto_bookmarks) #: skladnikui.rc:42 #, kde-format msgid "&Go to Bookmark" msgstr "Pojdi na zaznamek" #~ msgid "KSokoban" #~ msgstr "KSokoban" #~ msgid "[file]" #~ msgstr "[datoteka]" #~ msgid "&Undo" #~ msgstr "Razveljavi" #~ msgid "&Redo" #~ msgstr "Uveljavi" #~ msgid "&Quit" #~ msgstr "Zapusti" skladnik-0.5.1/po/sv/000077500000000000000000000000001457640636700144055ustar00rootroot00000000000000skladnik-0.5.1/po/sv/skladnik.po000066400000000000000000000136461457640636700165570ustar00rootroot00000000000000# Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # # SPDX-FileCopyrightText: 2012, 2019, 2021, 2022, 2023 Stefan Asserhäll msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-11-12 00:40+0000\n" "PO-Revision-Date: 2023-11-12 08:42+0100\n" "Last-Translator: Stefan Asserhäll \n" "Language-Team: Swedish \n" "Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Lokalize 23.08.1\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Stefan Asserhäll" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "stefan.asserhall@bredband.net" #: InternalCollections.cpp:32 #, kde-format msgid "Sasquatch" msgstr "Sasquatch" #: InternalCollections.cpp:36 #, kde-format msgid "Mas Sasquatch" msgstr "Mas Sasquatch" #: InternalCollections.cpp:40 #, kde-format msgid "Sasquatch III" msgstr "Sasquatch III" #: InternalCollections.cpp:44 #, kde-format msgid "Microban (easy)" msgstr "Microban (enkel)" #: InternalCollections.cpp:48 #, kde-format msgid "Sasquatch IV" msgstr "Sasquatch IV" #: main.cpp:27 #, kde-format msgid "Skladnik" msgstr "Skladnik" #: main.cpp:29 #, kde-format msgid "The japanese warehouse keeper game" msgstr "Det japanska lagerarbetarspelet" #: main.cpp:31 #, kde-format msgid "" "(c) 1998 Anders Widell \n" "(c) 2012 Lukasz Kalamlacki" msgstr "" "© 1998 Anders Widell \n" "© 2012 Lukasz Kalamlacki" #: main.cpp:34 #, kde-format msgid "Shlomi Fish" msgstr "Shlomi Fish" #: main.cpp:35 #, kde-format msgid "For porting to Qt5/KF5 and doing other cleanups" msgstr "För konvertering till Qt5/KF5 och andan städning." #: main.cpp:38 #, kde-format msgid "Lukasz Kalamlacki" msgstr "Lukasz Kalamlacki" #: main.cpp:39 #, kde-format msgid "For rewriting the original ksokoban game from kde3 to kde4" msgstr "" "För omskrivning av det ursprungliga Ksokoban-spelet från kde3 till kde4" #: main.cpp:42 #, kde-format msgid "Anders Widell" msgstr "Anders Widell" #: main.cpp:43 #, kde-format msgid "For writing the original ksokoban game" msgstr "För att ha skrivit det ursprungliga Ksokoban-spelet" #: main.cpp:46 #, kde-format msgid "David W. Skinner" msgstr "David W. Skinner" #: main.cpp:47 #, kde-format msgid "For contributing the Sokoban levels included in this game" msgstr "För bidrag av Sokoban-nivåerna som ingår i detta spel" #: main.cpp:56 #, kde-format msgid "Level collection file to load." msgstr "Nivåsamlingsfil att läsa in." #: MainWindow.cpp:38 #, kde-format msgid "&Level Collection" msgstr "&Nivåsamling" #: MainWindow.cpp:97 #, kde-format msgid "&Load Levels..." msgstr "&Läs in nivåer..." #: MainWindow.cpp:101 #, kde-format msgid "&Next Level" msgstr "&Nästa nivå" #: MainWindow.cpp:106 #, kde-format msgid "&Previous Level" msgstr "&Föregående nivå" #: MainWindow.cpp:111 #, kde-format msgid "Re&start Level" msgstr "&Starta om nivå" #: MainWindow.cpp:124 #, kde-format msgid "&Slow" msgstr "Lång&sam" #: MainWindow.cpp:129 #, kde-format msgid "&Medium" msgstr "&Normal" #: MainWindow.cpp:134 #, kde-format msgid "&Fast" msgstr "Sna&bb" #: MainWindow.cpp:139 #, kde-format msgid "&Off" msgstr "&Av" #: MainWindow.cpp:179 MainWindow.cpp:193 #, kde-format msgid "(unused)" msgstr "(oanvänd)" #: MainWindow.cpp:229 #, kde-format msgid "(invalid)" msgstr "(ogiltig)" #: MainWindow.cpp:288 #, kde-format msgctxt "@title:window" msgid "Load Levels from a File" msgstr "Läs in nivåer från en fil" #: MainWindow.cpp:323 #, kde-format msgid "No levels found in file" msgstr "Inga nivåer hittades i filen" #: PlayField.cpp:102 #, kde-format msgid "Level:" msgstr "Nivå:" #: PlayField.cpp:111 #, kde-format msgid "Steps:" msgstr "Steg:" #: PlayField.cpp:120 #, kde-format msgid "Pushes:" msgstr "Knuffar:" #: PlayField.cpp:351 #, kde-format msgid "Level completed" msgstr "Nivå färdig" #: PlayField.cpp:680 #, kde-format msgid "" "This is the last level in\n" "the current collection." msgstr "" "Det här är sista nivån i\n" "den aktuella samlingen." #: PlayField.cpp:686 #, kde-format msgid "" "You have not completed\n" "this level yet." msgstr "" "Du har inte gjort färdig\n" "nivån ännu." #: PlayField.cpp:700 #, kde-format msgid "" "This is the first level in\n" "the current collection." msgstr "" "Det här är första nivån i\n" "den aktuella samlingen." #: PlayField.cpp:778 #, kde-format msgid "" "Sorry, bookmarks for external levels\n" "is not implemented yet." msgstr "" "Tyvärr är inte bokmärken för externa\n" "nivåer implementerade ännu." #: PlayField.cpp:803 #, kde-format msgid "This level is broken" msgstr "Nivån är felaktig" #. i18n: ectx: Menu (game) #: skladnikui.rc:6 #, kde-format msgid "&Game" msgstr "S&pel" #. i18n: ectx: Menu (animation_speed) #: skladnikui.rc:20 #, kde-format msgid "&Animation" msgstr "Ani&mering" #. i18n: ectx: Menu (bookmarks_menu) #: skladnikui.rc:27 #, kde-format msgid "&Bookmarks" msgstr "&Bokmärken" #. i18n: ectx: Menu (set_bookmarks) #: skladnikui.rc:29 #, kde-format msgid "&Set Bookmark" msgstr "&Nytt bokmärke" #. i18n: ectx: Menu (goto_bookmarks) #: skladnikui.rc:42 #, kde-format msgid "&Go to Bookmark" msgstr "&Gå till bokmärke" #~ msgid "KSokoban" #~ msgstr "Ksokoban" #~ msgid "[file]" #~ msgstr "[fil]" #~ msgid "&Undo" #~ msgstr "Å&ngra" #~ msgid "&Redo" #~ msgstr "&Gör om" #~ msgid "&Quit" #~ msgstr "&Avsluta" #~ msgid "Sasquatch V" #~ msgstr "Sasquatch V" #~ msgid "Mas Microban (easy)" #~ msgstr "Mas Microban (enkelt)" #~ msgid "Sasquatch VI" #~ msgstr "Sasquatch VI" #~ msgid "LOMA" #~ msgstr "LOMA" #~ msgid "Sasquatch VII" #~ msgstr "Sasquatch VII" #~ msgid "(c) 1998-2001 Anders Widell" #~ msgstr "© 1998-2001 Anders Widell" skladnik-0.5.1/po/tr/000077500000000000000000000000001457640636700144025ustar00rootroot00000000000000skladnik-0.5.1/po/tr/skladnik.po000066400000000000000000000127471457640636700165550ustar00rootroot00000000000000# Copyright (C) YEAR This file is copyright: # This file is distributed under the same license as the ksokoban package. # # Emir SARI , 2022, 2023. msgid "" msgstr "" "Project-Id-Version: ksokoban\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-11-12 00:40+0000\n" "PO-Revision-Date: 2023-11-12 05:40+0300\n" "Last-Translator: Emir SARI \n" "Language-Team: Turkish \n" "Language: tr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: Lokalize 23.11.70\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Emir SARI" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "emir_sari@icloud.com" #: InternalCollections.cpp:32 #, kde-format msgid "Sasquatch" msgstr "Kocaayak" #: InternalCollections.cpp:36 #, kde-format msgid "Mas Sasquatch" msgstr "Mas Kocaayak" #: InternalCollections.cpp:40 #, kde-format msgid "Sasquatch III" msgstr "Kocaayak III" #: InternalCollections.cpp:44 #, kde-format msgid "Microban (easy)" msgstr "Mikroban (kolay)" #: InternalCollections.cpp:48 #, kde-format msgid "Sasquatch IV" msgstr "Kocaayak IV" #: main.cpp:27 #, kde-format msgid "Skladnik" msgstr "Skladnik" #: main.cpp:29 #, kde-format msgid "The japanese warehouse keeper game" msgstr "Japon depo sorumlusu oyunu" #: main.cpp:31 #, kde-format msgid "" "(c) 1998 Anders Widell \n" "(c) 2012 Lukasz Kalamlacki" msgstr "" "(c) 1998 Anders Widell \n" "(c) 2012 Lukasz Kalamlacki" #: main.cpp:34 #, kde-format msgid "Shlomi Fish" msgstr "Shlomi Fish" #: main.cpp:35 #, kde-format msgid "For porting to Qt5/KF5 and doing other cleanups" msgstr "Qt5/KF5 geçişi ve diğer temizlikler için" #: main.cpp:38 #, kde-format msgid "Lukasz Kalamlacki" msgstr "Lukasz Kalamlacki" #: main.cpp:39 #, kde-format msgid "For rewriting the original ksokoban game from kde3 to kde4" msgstr "Özgün ksokoban oyununu KDE3'ten KDE4'e aktardığı için" #: main.cpp:42 #, kde-format msgid "Anders Widell" msgstr "Anders Widell" #: main.cpp:43 #, kde-format msgid "For writing the original ksokoban game" msgstr "Özgün ksokoban oyununu yazdığı için" #: main.cpp:46 #, kde-format msgid "David W. Skinner" msgstr "David W. Skinner" #: main.cpp:47 #, kde-format msgid "For contributing the Sokoban levels included in this game" msgstr "Bu oyunda içerilen Sokoban düzeylerine katkıda bulunduğu için" #: main.cpp:56 #, kde-format msgid "Level collection file to load." msgstr "Yüklenecek düzey koleksiyonu dosyası." #: MainWindow.cpp:38 #, kde-format msgid "&Level Collection" msgstr "Düzey K&oleksiyonu" #: MainWindow.cpp:97 #, kde-format msgid "&Load Levels..." msgstr "&Düzeyleri Yükle..." #: MainWindow.cpp:101 #, kde-format msgid "&Next Level" msgstr "&Sonraki Düzey" #: MainWindow.cpp:106 #, kde-format msgid "&Previous Level" msgstr "Ö&nceki Düzey" #: MainWindow.cpp:111 #, kde-format msgid "Re&start Level" msgstr "Dü&zeyi Yeniden Başlat" #: MainWindow.cpp:124 #, kde-format msgid "&Slow" msgstr "Y&avaş" #: MainWindow.cpp:129 #, kde-format msgid "&Medium" msgstr "O&rta" #: MainWindow.cpp:134 #, kde-format msgid "&Fast" msgstr "&Hızlı" #: MainWindow.cpp:139 #, kde-format msgid "&Off" msgstr "&Kapalı" #: MainWindow.cpp:179 MainWindow.cpp:193 #, kde-format msgid "(unused)" msgstr "(kullanılmıyor)" #: MainWindow.cpp:229 #, kde-format msgid "(invalid)" msgstr "(geçersiz)" #: MainWindow.cpp:288 #, kde-format msgctxt "@title:window" msgid "Load Levels from a File" msgstr "Dosyadan Düzeyler Yükle" #: MainWindow.cpp:323 #, kde-format msgid "No levels found in file" msgstr "Dosyada düzey bulunamadı" #: PlayField.cpp:102 #, kde-format msgid "Level:" msgstr "Düzey:" #: PlayField.cpp:111 #, kde-format msgid "Steps:" msgstr "Adımlar:" #: PlayField.cpp:120 #, kde-format msgid "Pushes:" msgstr "İtmeler:" #: PlayField.cpp:351 #, kde-format msgid "Level completed" msgstr "Düzey tamamlandı" #: PlayField.cpp:680 #, kde-format msgid "" "This is the last level in\n" "the current collection." msgstr "" "Bu, geçerli koleksiyondaki\n" "son düzey." #: PlayField.cpp:686 #, kde-format msgid "" "You have not completed\n" "this level yet." msgstr "" "Bu düzeyi henüz\n" "tamamlamadınız." #: PlayField.cpp:700 #, kde-format msgid "" "This is the first level in\n" "the current collection." msgstr "" "Bu, geçerli koleksiyondaki\n" "ilk düzey." #: PlayField.cpp:778 #, kde-format msgid "" "Sorry, bookmarks for external levels\n" "is not implemented yet." msgstr "" "Üzgünüm, dış düzeyler için\n" "yer imleri kullanılamıyor." #: PlayField.cpp:803 #, kde-format msgid "This level is broken" msgstr "Bu düzey bozuk" #. i18n: ectx: Menu (game) #: skladnikui.rc:6 #, kde-format msgid "&Game" msgstr "&Oyun" #. i18n: ectx: Menu (animation_speed) #: skladnikui.rc:20 #, kde-format msgid "&Animation" msgstr "&Canlandırma" #. i18n: ectx: Menu (bookmarks_menu) #: skladnikui.rc:27 #, kde-format msgid "&Bookmarks" msgstr "Y&er İmleri" #. i18n: ectx: Menu (set_bookmarks) #: skladnikui.rc:29 #, kde-format msgid "&Set Bookmark" msgstr "Yer İmi &Koy" #. i18n: ectx: Menu (goto_bookmarks) #: skladnikui.rc:42 #, kde-format msgid "&Go to Bookmark" msgstr "Yer İmine &Git" #~ msgid "KSokoban" #~ msgstr "K Sokoban" #~ msgid "[file]" #~ msgstr "[dosya]" #~ msgid "&Undo" #~ msgstr "&Geri Al" #~ msgid "&Redo" #~ msgstr "&Yinele" #~ msgid "&Quit" #~ msgstr "Çı&k" skladnik-0.5.1/po/ug/000077500000000000000000000000001457640636700143705ustar00rootroot00000000000000skladnik-0.5.1/po/ug/skladnik.po000066400000000000000000000107331457640636700165340ustar00rootroot00000000000000# Uyghur translation for ksokoban. # Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # Gheyret Kenji , YEAR. # msgid "" msgstr "" "Project-Id-Version: ksokoban\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-11-12 00:40+0000\n" "PO-Revision-Date: 2013-09-08 07:05+0900\n" "Last-Translator: Gheyret Kenji \n" "Language-Team: Uyghur \n" "Language: ug\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "ئابدۇقادىر ئابلىز, غەيرەت كەنجى" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "sahran.ug@gmail.com, gheyret@gmail.com" #: InternalCollections.cpp:32 #, kde-format msgid "Sasquatch" msgstr "" #: InternalCollections.cpp:36 #, kde-format msgid "Mas Sasquatch" msgstr "" #: InternalCollections.cpp:40 #, kde-format msgid "Sasquatch III" msgstr "" #: InternalCollections.cpp:44 #, kde-format msgid "Microban (easy)" msgstr "" #: InternalCollections.cpp:48 #, kde-format msgid "Sasquatch IV" msgstr "" #: main.cpp:27 #, kde-format msgid "Skladnik" msgstr "" #: main.cpp:29 #, kde-format msgid "The japanese warehouse keeper game" msgstr "" #: main.cpp:31 #, kde-format msgid "" "(c) 1998 Anders Widell \n" "(c) 2012 Lukasz Kalamlacki" msgstr "" #: main.cpp:34 #, kde-format msgid "Shlomi Fish" msgstr "" #: main.cpp:35 #, kde-format msgid "For porting to Qt5/KF5 and doing other cleanups" msgstr "" #: main.cpp:38 #, kde-format msgid "Lukasz Kalamlacki" msgstr "" #: main.cpp:39 #, kde-format msgid "For rewriting the original ksokoban game from kde3 to kde4" msgstr "" #: main.cpp:42 #, kde-format msgid "Anders Widell" msgstr "" #: main.cpp:43 #, kde-format msgid "For writing the original ksokoban game" msgstr "" #: main.cpp:46 #, kde-format msgid "David W. Skinner" msgstr "" #: main.cpp:47 #, kde-format msgid "For contributing the Sokoban levels included in this game" msgstr "" #: main.cpp:56 #, kde-format msgid "Level collection file to load." msgstr "" #: MainWindow.cpp:38 #, kde-format msgid "&Level Collection" msgstr "" #: MainWindow.cpp:97 #, kde-format msgid "&Load Levels..." msgstr "" #: MainWindow.cpp:101 #, kde-format msgid "&Next Level" msgstr "" #: MainWindow.cpp:106 #, kde-format msgid "&Previous Level" msgstr "" #: MainWindow.cpp:111 #, kde-format msgid "Re&start Level" msgstr "" #: MainWindow.cpp:124 #, kde-format msgid "&Slow" msgstr "ئاستا(&S)" #: MainWindow.cpp:129 #, kde-format msgid "&Medium" msgstr "ئوتتۇرا(&M)" #: MainWindow.cpp:134 #, kde-format msgid "&Fast" msgstr "" #: MainWindow.cpp:139 #, kde-format msgid "&Off" msgstr "چەكلە(&O)" #: MainWindow.cpp:179 MainWindow.cpp:193 #, kde-format msgid "(unused)" msgstr "" #: MainWindow.cpp:229 #, kde-format msgid "(invalid)" msgstr "(ئىناۋەتسىز)" #: MainWindow.cpp:288 #, kde-format msgctxt "@title:window" msgid "Load Levels from a File" msgstr "" #: MainWindow.cpp:323 #, kde-format msgid "No levels found in file" msgstr "" #: PlayField.cpp:102 #, kde-format msgid "Level:" msgstr "دەرىجە:" #: PlayField.cpp:111 #, kde-format msgid "Steps:" msgstr "باسقۇچلار:" #: PlayField.cpp:120 #, kde-format msgid "Pushes:" msgstr "" #: PlayField.cpp:351 #, kde-format msgid "Level completed" msgstr "" #: PlayField.cpp:680 #, kde-format msgid "" "This is the last level in\n" "the current collection." msgstr "" #: PlayField.cpp:686 #, kde-format msgid "" "You have not completed\n" "this level yet." msgstr "" #: PlayField.cpp:700 #, kde-format msgid "" "This is the first level in\n" "the current collection." msgstr "" #: PlayField.cpp:778 #, kde-format msgid "" "Sorry, bookmarks for external levels\n" "is not implemented yet." msgstr "" #: PlayField.cpp:803 #, kde-format msgid "This level is broken" msgstr "" #. i18n: ectx: Menu (game) #: skladnikui.rc:6 #, kde-format msgid "&Game" msgstr "" #. i18n: ectx: Menu (animation_speed) #: skladnikui.rc:20 #, kde-format msgid "&Animation" msgstr "" #. i18n: ectx: Menu (bookmarks_menu) #: skladnikui.rc:27 #, kde-format msgid "&Bookmarks" msgstr "" #. i18n: ectx: Menu (set_bookmarks) #: skladnikui.rc:29 #, kde-format msgid "&Set Bookmark" msgstr "" #. i18n: ectx: Menu (goto_bookmarks) #: skladnikui.rc:42 #, kde-format msgid "&Go to Bookmark" msgstr "" skladnik-0.5.1/po/uk/000077500000000000000000000000001457640636700143745ustar00rootroot00000000000000skladnik-0.5.1/po/uk/docs/000077500000000000000000000000001457640636700153245ustar00rootroot00000000000000skladnik-0.5.1/po/uk/docs/skladnik/000077500000000000000000000000001457640636700171245ustar00rootroot00000000000000skladnik-0.5.1/po/uk/docs/skladnik/index.docbook000066400000000000000000000435021457640636700216010ustar00rootroot00000000000000 Skladnik"> ]> Підручник з &skladnik; Anders Widell
&Anders.Widell.mail;
ЮрійЧорноіван
yurchor@ukr.net
Переклад українською
2000 &Anders.Widell; &FDLNotice; 19 серпня 2021 року 0.5.0 &skladnik; — реалізація японської гри у комірника, сокобан. KDE kdegames гра сокобан skladnik
Вступ Першу гру сокобан було створено у 1982 році Хіроюкі Імабаясі у японській компанії Thinking Rabbit, Inc. Сокобан японською означає комірник. Сюжет гри полягає у тому, що ви займаєте місце комірника, намагаючись розмістити скриньки на складі так, щоб вони розташовувалися у належних місцях. Проблема полягає у тому, що ви не можете тягнути скриньки або переступати через них. Якщо ви не будете обережними, деякі скриньки може бути заблоковано у невідповідних місцях і/або вони можуть заблокувати вам дорогу. Іноді пройти рівень вже доволі складно. Але гру можна ще більше ускладнити, якщо поставити за мету мінімізацію кількості ходів і/або штовхань скриньок, які слід виконати для проходження рівня. Щоб гра була цікавою навіть для дітей (до 10 років та менших), до &skladnik; включено деякі збірки рівнів із дуже простими рівнями. Такі рівні позначаються підписом (простий) у меню збірок рівнів. Звичайно ж, такі рівні можуть проходити і дорослі, які не хочуть надто напружуватися під час проходження рівня. Гра Метою гри є пересування червоних каменів на поля призначення, які позначено зеленими круглими позначками на підлозі. Для пересування використовуйте клавіші зі стрілками або мишу. Якщо за допомогою клавіш зі стрілками або клацання середньою кнопкою миші ви перейдете на поле із каменем, і його нічого не блокуватиме із протилежного боку, камінь буде посунуто. Тягнути камені не можна. Через це, якщо ви посунете камінь у куток, його вже не можна буде звідти виштовхнути. Також не можна переступати через камені. Тому ви можете потрапити у пастку, невдало штовхнувши не той камінь. Крім того, не можна одним поштовхом штовхнути два або більше каменів. Якщо ви виявите, що камені було пересунуто так, що рівень вже неможливо пройти, ви завжди можете скористатися можливістю скасовування ходів, щоб повернутися до позиції, де ви припустилися помилки. Звичайно ж, ви також можете розпочати проходження рівня із самого початку. Керування КлавішаДія Клавіші зі стрілкамиПерейти на одне поле у вказаному напрямку &Ctrl;Клавіші зі стрілкамиПерейти якомога далі у вказаному напрямку, не зачіпаючи каменів &Shift;Клавіші зі стрілками Перейти якомога далі у вказаному напрямку, штовхаючи усі камені на своєму шляху Ліва кнопка мишіПерейти до будь-якого місця, якого можна досягти без штовхання каменів  Середня кнопка миші або &Ctrl;ZСкасувати останній хід Права кнопка мишіПерейти вгору, вниз, ліворуч або праворуч уздовж прямої, штовхаючи усі камені на своєму шляху Коліщатко мишіГортання записів журналу &Ctrl;&Shift;Z Повернути результат останнього скасованого ходу NПерейти на наступний рівень у поточній збірці рівнів PПерейти на попередній рівень у поточній збірці рівнів &Esc;Перезапустити гру на поточному рівні &Ctrl;QЗавершити гру. Завантаження сторонніх рівнів У &skladnik; передбачено можливість завантаження сторонніх рівнів сокобан з текстових файлів. Завантажити рівні можна за допомогою пункту меню Гра Завантажити рівні... або вказавши адресу файла рівнів як аргумент командного рядка під час запуску &skladnik; з командної оболонки. Сторонні рівні має бути записано за допомогою стандартних символів, які наведено у таблиці нижче. Якщо у файлі міститься декілька рівнів, рівні має бути відокремлено порожніми рядками. Крім того, у файлі можна розміщувати текст між рівнями. ПерсонажЗначення #Стіна (пробіл)Порожня клітинка .Поле призначення $Об'єкт на порожньому полі *Об'єкт на полі призначення @Початкова позиція на порожньому полі  +Початкова позиція на полі призначення Як приклад, нижче наведено текстове представлення першого рівня у збірці рівнів Microban: #### # .# # ### #*@ # # $ # # ### #### Довідник з меню Тут наведено повний опис меню &skladnik;. Меню «Гра» Гра Завантажити рівні… Завантажити сторонній рівень. Докладніший опис сторонніх рівнів наведено у розділі Завантаження сторонніх рівнів. N Гра Наступний рівень Завантажити наступний рівень. P Гра Попередній рівень Повернутися на попередній рівень. &Esc; Гра Почати рівень знову Перезапустити гру на поточному рівні. Гра Збірка рівнів Підменю для перемикання на інший набір рівнів. До складу типового пакунка &skladnik; включено декілька наборів рівнів. Додаткові рівні ви можете встановити, знайшовши їх в інтернеті. &Ctrl;Z ГраСкасувати Скасувати останній хід. &Ctrl;&Shift;Z Гра Повторити Повторити останній хід, який було скасовано за допомогою попереднього пункту меню. &Ctrl;Q Гра Вийти Завершити роботу &skladnik;. Меню «Анімація» У цьому меню зібрано пункти із полями для позначок, за допомогою яких ви можете вказати швидкість, з якою програма відтворюватиме анімації. Анімація Повільно Показувати анімацію повторів повільно. Анімація Помірно Це типовий варіант, за якого анімації відтворюватимуться трохи швидше. Анімація Швидко Показувати анімацію повторів із найбільшою швидкістю. Анімація Вимкнути Не показувати анімації повторів. Меню «Закладки» Закладки Встановити закладку У &skladnik; передбачено можливість встановлення закладок на рівні у певній позиції. Цим можна скористатися для збереження певного початкового набору ходів при оптимізації проходження рівня. Одночасно програма може зберігати до десяти закладок. Доступ до них можна здійснювати за допомогою комбінації клавіш &Ctrl;X, де X — будь-яка цифра від 0 до 9. Закладки Перейти до закладки Перейти до стану, який раніше було збережено як закладку. Меню «Довідка» У &skladnik; передбачено типовий пункт меню Довідка &kde;. Щоб дізнатися більше, ознайомтеся з розділом, присвяченим меню «Довідка» підручника з основ роботи у &kde;. Авторські права та ліцензування Авторські права на &skladnik; належать &Anders.Widell; &Anders.Widell.mail;, 1998–2000. Графічні елементи тла, зоряне поле, було запозичено з Gimp. Усі інші графічні елементи було створено &Anders.Widell; &Anders.Widell.mail; за допомогою програми Povray. Усі поточні рівні з пакунка програми створено David W. Skinner sasquatch@bentonrea.com. Див. Його сторінку сокобан Переклад українською: Юрій Чорноіван yurchor@ukr.net &underFDL; &underGPL; &documentation.index;
skladnik-0.5.1/po/uk/skladnik.po000066400000000000000000000154001457640636700165340ustar00rootroot00000000000000# Translation of ksokoban.po to Ukrainian # Copyright (C) 2012-2019 This_file_is_part_of_KDE # This file is distributed under the license LGPL version 2.1 or # version 3 or later versions approved by the membership of KDE e.V. # # Yuri Chornoivan , 2012, 2019, 2021, 2022, 2023. msgid "" msgstr "" "Project-Id-Version: ksokoban\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-11-12 00:40+0000\n" "PO-Revision-Date: 2023-11-12 09:05+0200\n" "Last-Translator: Yuri Chornoivan \n" "Language-Team: Ukrainian \n" "Language: uk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n" "%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Generator: Lokalize 20.12.0\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Юрій Чорноіван" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "yurchor@ukr.net" #: InternalCollections.cpp:32 #, kde-format msgid "Sasquatch" msgstr "Саскватч" #: InternalCollections.cpp:36 #, kde-format msgid "Mas Sasquatch" msgstr "Мас-саскватч" #: InternalCollections.cpp:40 #, kde-format msgid "Sasquatch III" msgstr "Саскватч III" #: InternalCollections.cpp:44 #, kde-format msgid "Microban (easy)" msgstr "Мікробан (проста гра)" #: InternalCollections.cpp:48 #, kde-format msgid "Sasquatch IV" msgstr "Саскватч IV" #: main.cpp:27 #, kde-format msgid "Skladnik" msgstr "Skladnik" #: main.cpp:29 #, kde-format msgid "The japanese warehouse keeper game" msgstr "Японська гра у супровід складу" #: main.cpp:31 #, kde-format msgid "" "(c) 1998 Anders Widell \n" "(c) 2012 Lukasz Kalamlacki" msgstr "" "© Anders Widell , 1998\n" "© Lukasz Kalamlacki, 2012" #: main.cpp:34 #, kde-format msgid "Shlomi Fish" msgstr "Shlomi Fish" #: main.cpp:35 #, kde-format msgid "For porting to Qt5/KF5 and doing other cleanups" msgstr "За портування на Qt5/KF5 та чищення коду" #: main.cpp:38 #, kde-format msgid "Lukasz Kalamlacki" msgstr "Lukasz Kalamlacki" #: main.cpp:39 #, kde-format msgid "For rewriting the original ksokoban game from kde3 to kde4" msgstr "За переписування початкової версії гри ksokoban з kde3 на kde4" #: main.cpp:42 #, kde-format msgid "Anders Widell" msgstr "Anders Widell" #: main.cpp:43 #, kde-format msgid "For writing the original ksokoban game" msgstr "За створення початкової версії гри ksokoban" #: main.cpp:46 #, kde-format msgid "David W. Skinner" msgstr "David W. Skinner" #: main.cpp:47 #, kde-format msgid "For contributing the Sokoban levels included in this game" msgstr "Створення рівнів Сокобану, включених до цієї гри" #: main.cpp:56 #, kde-format msgid "Level collection file to load." msgstr "Файл збірки рівнів, який слід завантажити." #: MainWindow.cpp:38 #, kde-format msgid "&Level Collection" msgstr "З&бірка рівнів" #: MainWindow.cpp:97 #, kde-format msgid "&Load Levels..." msgstr "З&авантажити рівні…" #: MainWindow.cpp:101 #, kde-format msgid "&Next Level" msgstr "Н&аступний рівень" #: MainWindow.cpp:106 #, kde-format msgid "&Previous Level" msgstr "Поп&ередній рівень" #: MainWindow.cpp:111 #, kde-format msgid "Re&start Level" msgstr "П&очати рівень знову" #: MainWindow.cpp:124 #, kde-format msgid "&Slow" msgstr "&Повільно" #: MainWindow.cpp:129 #, kde-format msgid "&Medium" msgstr "По&мірно" #: MainWindow.cpp:134 #, kde-format msgid "&Fast" msgstr "&Швидко" #: MainWindow.cpp:139 #, kde-format msgid "&Off" msgstr "&Вимкнути" #: MainWindow.cpp:179 MainWindow.cpp:193 #, kde-format msgid "(unused)" msgstr "(не використовується)" #: MainWindow.cpp:229 #, kde-format msgid "(invalid)" msgstr "(некоректний)" #: MainWindow.cpp:288 #, kde-format msgctxt "@title:window" msgid "Load Levels from a File" msgstr "Завантаження рівнів з файла" #: MainWindow.cpp:323 #, kde-format msgid "No levels found in file" msgstr "У файлі не знайдено жодного рівня" #: PlayField.cpp:102 #, kde-format msgid "Level:" msgstr "Рівень:" #: PlayField.cpp:111 #, kde-format msgid "Steps:" msgstr "Кроків:" #: PlayField.cpp:120 #, kde-format msgid "Pushes:" msgstr "Штовхань:" #: PlayField.cpp:351 #, kde-format msgid "Level completed" msgstr "Рівень пройдено" #: PlayField.cpp:680 #, kde-format msgid "" "This is the last level in\n" "the current collection." msgstr "" "Це останній рівень у поточній\n" "збірці." #: PlayField.cpp:686 #, kde-format msgid "" "You have not completed\n" "this level yet." msgstr "Цей рівень ще не пройдено." #: PlayField.cpp:700 #, kde-format msgid "" "This is the first level in\n" "the current collection." msgstr "" "Це перший рівень у поточній\n" "збірці." #: PlayField.cpp:778 #, kde-format msgid "" "Sorry, bookmarks for external levels\n" "is not implemented yet." msgstr "" "Вибачте, закладки для зовнішніх рівнів\n" "ще не реалізовано." #: PlayField.cpp:803 #, kde-format msgid "This level is broken" msgstr "Дані цього рівня пошкоджено" #. i18n: ectx: Menu (game) #: skladnikui.rc:6 #, kde-format msgid "&Game" msgstr "&Гра" #. i18n: ectx: Menu (animation_speed) #: skladnikui.rc:20 #, kde-format msgid "&Animation" msgstr "&Анімація" #. i18n: ectx: Menu (bookmarks_menu) #: skladnikui.rc:27 #, kde-format msgid "&Bookmarks" msgstr "&Закладки" #. i18n: ectx: Menu (set_bookmarks) #: skladnikui.rc:29 #, kde-format msgid "&Set Bookmark" msgstr "&Встановити закладку" #. i18n: ectx: Menu (goto_bookmarks) #: skladnikui.rc:42 #, kde-format msgid "&Go to Bookmark" msgstr "Пере&йти до закладки" #~ msgid "KSokoban" #~ msgstr "KSokoban" #~ msgid "[file]" #~ msgstr "[файл]" #~ msgid "&Undo" #~ msgstr "С&касувати" #~ msgid "&Redo" #~ msgstr "Повт&орити" #~ msgid "&Quit" #~ msgstr "Ви&йти" #~ msgid "Sasquatch V" #~ msgstr "Саскватч V" #~ msgid "Mas Microban (easy)" #~ msgstr "Мас-мікробан (проста гра)" #~ msgid "Sasquatch VI" #~ msgstr "Саскватч VI" #~ msgid "LOMA" #~ msgstr "LOMA" #~ msgid "Sasquatch VII" #~ msgstr "Саскватч VII" #~ msgid "(c) 1998-2001 Anders Widell" #~ msgstr "© Anders Widell, 1998–2001" skladnik-0.5.1/po/zh_CN/000077500000000000000000000000001457640636700147565ustar00rootroot00000000000000skladnik-0.5.1/po/zh_CN/skladnik.po000066400000000000000000000104441457640636700171210ustar00rootroot00000000000000msgid "" msgstr "" "Project-Id-Version: kdeorg\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-11-12 00:40+0000\n" "PO-Revision-Date: 2023-12-30 13:42\n" "Last-Translator: \n" "Language-Team: Chinese Simplified\n" "Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Crowdin-Project: kdeorg\n" "X-Crowdin-Project-ID: 269464\n" "X-Crowdin-Language: zh-CN\n" "X-Crowdin-File: /kf5-trunk/messages/skladnik/skladnik.pot\n" "X-Crowdin-File-ID: 48380\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "" #: InternalCollections.cpp:32 #, kde-format msgid "Sasquatch" msgstr "" #: InternalCollections.cpp:36 #, kde-format msgid "Mas Sasquatch" msgstr "" #: InternalCollections.cpp:40 #, kde-format msgid "Sasquatch III" msgstr "" #: InternalCollections.cpp:44 #, kde-format msgid "Microban (easy)" msgstr "" #: InternalCollections.cpp:48 #, kde-format msgid "Sasquatch IV" msgstr "" #: main.cpp:27 #, kde-format msgid "Skladnik" msgstr "" #: main.cpp:29 #, kde-format msgid "The japanese warehouse keeper game" msgstr "" #: main.cpp:31 #, kde-format msgid "" "(c) 1998 Anders Widell \n" "(c) 2012 Lukasz Kalamlacki" msgstr "" "(c) 1998 Anders Widell \n" "(c) 2012 Lukasz Kalamlacki" #: main.cpp:34 #, kde-format msgid "Shlomi Fish" msgstr "" #: main.cpp:35 #, kde-format msgid "For porting to Qt5/KF5 and doing other cleanups" msgstr "" #: main.cpp:38 #, kde-format msgid "Lukasz Kalamlacki" msgstr "" #: main.cpp:39 #, kde-format msgid "For rewriting the original ksokoban game from kde3 to kde4" msgstr "" #: main.cpp:42 #, kde-format msgid "Anders Widell" msgstr "" #: main.cpp:43 #, kde-format msgid "For writing the original ksokoban game" msgstr "" #: main.cpp:46 #, kde-format msgid "David W. Skinner" msgstr "" #: main.cpp:47 #, kde-format msgid "For contributing the Sokoban levels included in this game" msgstr "" #: main.cpp:56 #, kde-format msgid "Level collection file to load." msgstr "" #: MainWindow.cpp:38 #, kde-format msgid "&Level Collection" msgstr "" #: MainWindow.cpp:97 #, kde-format msgid "&Load Levels..." msgstr "" #: MainWindow.cpp:101 #, kde-format msgid "&Next Level" msgstr "" #: MainWindow.cpp:106 #, kde-format msgid "&Previous Level" msgstr "" #: MainWindow.cpp:111 #, kde-format msgid "Re&start Level" msgstr "" #: MainWindow.cpp:124 #, kde-format msgid "&Slow" msgstr "" #: MainWindow.cpp:129 #, kde-format msgid "&Medium" msgstr "" #: MainWindow.cpp:134 #, kde-format msgid "&Fast" msgstr "" #: MainWindow.cpp:139 #, kde-format msgid "&Off" msgstr "" #: MainWindow.cpp:179 MainWindow.cpp:193 #, kde-format msgid "(unused)" msgstr "" #: MainWindow.cpp:229 #, kde-format msgid "(invalid)" msgstr "" #: MainWindow.cpp:288 #, kde-format msgctxt "@title:window" msgid "Load Levels from a File" msgstr "" #: MainWindow.cpp:323 #, kde-format msgid "No levels found in file" msgstr "" #: PlayField.cpp:102 #, kde-format msgid "Level:" msgstr "" #: PlayField.cpp:111 #, kde-format msgid "Steps:" msgstr "" #: PlayField.cpp:120 #, kde-format msgid "Pushes:" msgstr "" #: PlayField.cpp:351 #, kde-format msgid "Level completed" msgstr "" #: PlayField.cpp:680 #, kde-format msgid "" "This is the last level in\n" "the current collection." msgstr "" #: PlayField.cpp:686 #, kde-format msgid "" "You have not completed\n" "this level yet." msgstr "" #: PlayField.cpp:700 #, kde-format msgid "" "This is the first level in\n" "the current collection." msgstr "" #: PlayField.cpp:778 #, kde-format msgid "" "Sorry, bookmarks for external levels\n" "is not implemented yet." msgstr "" #: PlayField.cpp:803 #, kde-format msgid "This level is broken" msgstr "" #. i18n: ectx: Menu (game) #: skladnikui.rc:6 #, kde-format msgid "&Game" msgstr "" #. i18n: ectx: Menu (animation_speed) #: skladnikui.rc:20 #, kde-format msgid "&Animation" msgstr "" #. i18n: ectx: Menu (bookmarks_menu) #: skladnikui.rc:27 #, kde-format msgid "&Bookmarks" msgstr "" #. i18n: ectx: Menu (set_bookmarks) #: skladnikui.rc:29 #, kde-format msgid "&Set Bookmark" msgstr "" #. i18n: ectx: Menu (goto_bookmarks) #: skladnikui.rc:42 #, kde-format msgid "&Go to Bookmark" msgstr "" skladnik-0.5.1/po/zh_TW/000077500000000000000000000000001457640636700150105ustar00rootroot00000000000000skladnik-0.5.1/po/zh_TW/skladnik.po000066400000000000000000000104041457640636700171470ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR This file is copyright: # This file is distributed under the same license as the ksokoban package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: ksokoban\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2023-11-12 00:40+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: Chinese \n" "Language: zh_TW\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" #, kde-format msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "" #, kde-format msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "" #: InternalCollections.cpp:32 #, kde-format msgid "Sasquatch" msgstr "" #: InternalCollections.cpp:36 #, kde-format msgid "Mas Sasquatch" msgstr "" #: InternalCollections.cpp:40 #, kde-format msgid "Sasquatch III" msgstr "" #: InternalCollections.cpp:44 #, kde-format msgid "Microban (easy)" msgstr "" #: InternalCollections.cpp:48 #, kde-format msgid "Sasquatch IV" msgstr "" #: main.cpp:27 #, kde-format msgid "Skladnik" msgstr "" #: main.cpp:29 #, kde-format msgid "The japanese warehouse keeper game" msgstr "" #: main.cpp:31 #, kde-format msgid "" "(c) 1998 Anders Widell \n" "(c) 2012 Lukasz Kalamlacki" msgstr "" #: main.cpp:34 #, kde-format msgid "Shlomi Fish" msgstr "" #: main.cpp:35 #, kde-format msgid "For porting to Qt5/KF5 and doing other cleanups" msgstr "" #: main.cpp:38 #, kde-format msgid "Lukasz Kalamlacki" msgstr "" #: main.cpp:39 #, kde-format msgid "For rewriting the original ksokoban game from kde3 to kde4" msgstr "" #: main.cpp:42 #, kde-format msgid "Anders Widell" msgstr "" #: main.cpp:43 #, kde-format msgid "For writing the original ksokoban game" msgstr "" #: main.cpp:46 #, kde-format msgid "David W. Skinner" msgstr "" #: main.cpp:47 #, kde-format msgid "For contributing the Sokoban levels included in this game" msgstr "" #: main.cpp:56 #, kde-format msgid "Level collection file to load." msgstr "" #: MainWindow.cpp:38 #, kde-format msgid "&Level Collection" msgstr "" #: MainWindow.cpp:97 #, kde-format msgid "&Load Levels..." msgstr "" #: MainWindow.cpp:101 #, kde-format msgid "&Next Level" msgstr "" #: MainWindow.cpp:106 #, kde-format msgid "&Previous Level" msgstr "" #: MainWindow.cpp:111 #, kde-format msgid "Re&start Level" msgstr "" #: MainWindow.cpp:124 #, kde-format msgid "&Slow" msgstr "" #: MainWindow.cpp:129 #, kde-format msgid "&Medium" msgstr "" #: MainWindow.cpp:134 #, kde-format msgid "&Fast" msgstr "" #: MainWindow.cpp:139 #, kde-format msgid "&Off" msgstr "" #: MainWindow.cpp:179 MainWindow.cpp:193 #, kde-format msgid "(unused)" msgstr "" #: MainWindow.cpp:229 #, kde-format msgid "(invalid)" msgstr "" #: MainWindow.cpp:288 #, kde-format msgctxt "@title:window" msgid "Load Levels from a File" msgstr "" #: MainWindow.cpp:323 #, kde-format msgid "No levels found in file" msgstr "" #: PlayField.cpp:102 #, kde-format msgid "Level:" msgstr "" #: PlayField.cpp:111 #, kde-format msgid "Steps:" msgstr "" #: PlayField.cpp:120 #, kde-format msgid "Pushes:" msgstr "" #: PlayField.cpp:351 #, kde-format msgid "Level completed" msgstr "" #: PlayField.cpp:680 #, kde-format msgid "" "This is the last level in\n" "the current collection." msgstr "" #: PlayField.cpp:686 #, kde-format msgid "" "You have not completed\n" "this level yet." msgstr "" #: PlayField.cpp:700 #, kde-format msgid "" "This is the first level in\n" "the current collection." msgstr "" #: PlayField.cpp:778 #, kde-format msgid "" "Sorry, bookmarks for external levels\n" "is not implemented yet." msgstr "" #: PlayField.cpp:803 #, kde-format msgid "This level is broken" msgstr "" #. i18n: ectx: Menu (game) #: skladnikui.rc:6 #, kde-format msgid "&Game" msgstr "" #. i18n: ectx: Menu (animation_speed) #: skladnikui.rc:20 #, kde-format msgid "&Animation" msgstr "" #. i18n: ectx: Menu (bookmarks_menu) #: skladnikui.rc:27 #, kde-format msgid "&Bookmarks" msgstr "" #. i18n: ectx: Menu (set_bookmarks) #: skladnikui.rc:29 #, kde-format msgid "&Set Bookmark" msgstr "" #. i18n: ectx: Menu (goto_bookmarks) #: skladnikui.rc:42 #, kde-format msgid "&Go to Bookmark" msgstr "" skladnik-0.5.1/src/000077500000000000000000000000001457640636700141265ustar00rootroot00000000000000skladnik-0.5.1/src/Bookmark.cpp000066400000000000000000000040671457640636700164060ustar00rootroot00000000000000/* SPDX-FileCopyrightText: 1998 Anders Widell SPDX-License-Identifier: GPL-2.0-or-later */ #include "Bookmark.h" #include "History.h" #include "LevelMap.h" #include #include #include #include #include #include #include #include #include void Bookmark::fileName(QString &p) const { p = QStandardPaths::writableLocation(QStandardPaths::AppDataLocation) + QStringLiteral("/bookmark%1").arg(number_); } Bookmark::Bookmark(int _num) : number_(_num) { QString p; fileName(p); FILE *file = fopen(QFile::encodeName(p).constData(), "r"); if (file == nullptr) return; char buf[4096]; buf[0] = '\0'; fgets(buf, 4096, file); if (sscanf(buf, "%d %d %d", &collection_, &level_, &moves_) != 3) { collection_ = level_ = -1; data_ = QString(); fclose(file); return; } data_ = QString(); int len; while (!feof(file)) { len = fread(buf, 1, 4095, file); if (ferror(file)) break; buf[len] = '\0'; data_ += QString::fromLatin1(buf); } fclose(file); data_ = data_.trimmed(); } void Bookmark::set(int _collection, int _level, int _moves, History *_h) { assert(_collection >= 0); if (_collection < 0) return; collection_ = _collection; level_ = _level; moves_ = _moves; data_ = QString(); _h->save(data_); // ensure folder exists QDir bookmarksDir(QStandardPaths::writableLocation(QStandardPaths::AppDataLocation)); if (!bookmarksDir.mkpath(QStringLiteral("."))) { return; } QString p; fileName(p); FILE *file = fopen(QFile::encodeName(p).constData(), "w"); if (file == nullptr) return; fprintf(file, "%d %d %d\n", collection_, level_, moves_); fprintf(file, "%s\n", data_.toLatin1().constData()); fclose(file); } bool Bookmark::goTo(LevelMap *_map, History *_h) { return _h->load(_map, data_.toLatin1().constData()) != nullptr; } skladnik-0.5.1/src/Bookmark.h000066400000000000000000000014731457640636700160510ustar00rootroot00000000000000/* SPDX-FileCopyrightText: 1998 Anders Widell SPDX-License-Identifier: GPL-2.0-or-later */ #ifndef BOOKMARK_H #define BOOKMARK_H #include class History; class LevelMap; class Bookmark { public: explicit Bookmark(int _num); public: int collection() const { return collection_; } int level() const { return level_; } int moves() const { return moves_; } // int pushes() { return pushes_; } void set(int _collection, int _level, int _moves, History *_h); bool goTo(LevelMap *_map, History *_h); private: void fileName(QString &p) const; private: int number_; int collection_ = -1; int level_ = -1; int moves_ = 0; // int pushes_; QString data_; }; #endif /* BOOKMARK_H */ skladnik-0.5.1/src/CMakeLists.txt000066400000000000000000000021761457640636700166740ustar00rootroot00000000000000# SPDX-FileCopyrightText: 2022 Friedrich W. H. Kossebau # # SPDX-License-Identifier: BSD-3-Clause add_subdirectory(images) ecm_setup_version(${skladnik_VERSION} VARIABLE_PREFIX SKLADNIK VERSION_HEADER version.h ) add_executable(skladnik Bookmark.cpp LevelMap.cpp Map.cpp Move.cpp PlayField.cpp PlayFieldView.cpp History.cpp InternalCollections.cpp main.cpp MoveSequence.cpp HtmlPrinter.cpp LevelCollection.cpp MainWindow.cpp PathFinder.cpp StoneIndex.cpp GroundItem.cpp SimpleTextItem.cpp skladnik.qrc ) if (QT_MAJOR_VERSION STREQUAL "6") target_link_libraries(skladnik KDEGames6) else() target_link_libraries(skladnik KF5KDEGames) endif() target_link_libraries(skladnik KF${KF_MAJOR_VERSION}::I18n KF${KF_MAJOR_VERSION}::WidgetsAddons KF${KF_MAJOR_VERSION}::XmlGui KF${KF_MAJOR_VERSION}::KIOCore ) install(TARGETS skladnik ${KDE_INSTALL_TARGETS_DEFAULT_ARGS}) install(FILES org.kde.skladnik.desktop DESTINATION ${KDE_INSTALL_APPDIR}) install(FILES org.kde.skladnik.metainfo.xml DESTINATION ${KDE_INSTALL_METAINFODIR}) skladnik-0.5.1/src/GroundItem.cpp000066400000000000000000000167141457640636700167200ustar00rootroot00000000000000/* SPDX-FileCopyrightText: 2022 Friedrich W. H. Kossebau SPDX-License-Identifier: GPL-2.0-or-later */ #include "GroundItem.h" #include #include #include #include #include // hardcoded for now, featch from theme static constexpr int SMALL_STONES = 4; static constexpr int LARGE_STONES = 6; static constexpr int MIN_SQUARE_SIZE = 8; GroundItem::GroundItem(const Map *map, KGameRenderer *renderer, QGraphicsItem *parent) : QGraphicsItem(parent) , m_renderer(renderer) , m_map(map) { setGraphicsItem(this); m_stoneIndex.setStoneCount(LARGE_STONES, SMALL_STONES); } QPoint GroundItem::squareFromScene(QPointF scenePos) const { const QPointF cnntentPos = mapFromScene(scenePos) - m_contentOffset; // using QPointF to also cover ]-1,0[ const QPointF squarePos = cnntentPos / m_squareSize; if ((squarePos.x() < 0 ) || (squarePos.x() >= m_map->width()) || (squarePos.y() < 0 ) || (squarePos.y() >= m_map->height())) { return {-1, -1}; } return {static_cast(squarePos.x()), static_cast(squarePos.y())}; } QPointF GroundItem::squareToScene(QPoint square) const { return mapToScene(QPointF{static_cast(m_squareSize * square.x() + m_contentOffset.x()), static_cast(m_squareSize * square.y() + m_contentOffset.y())}); } QRectF GroundItem::boundingRect() const { const int cols = m_map->width(); const int rows = m_map->height(); const int width = cols * m_squareSize; const int height = rows * m_squareSize; return QRectF(m_contentOffset, QSizeF(width, height)); } void GroundItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { Q_UNUSED(widget); if (m_squareSize <= 0) return; painter->save();; painter->translate(m_contentOffset); const QRectF exposedContentRect = option->exposedRect.translated(-m_contentOffset.x(), -m_contentOffset.y()); int minx = squareX(exposedContentRect.x()); int miny = squareY(exposedContentRect.y()); int maxx = squareX(exposedContentRect.x() + exposedContentRect.width() - 1); int maxy = squareY(exposedContentRect.y() + exposedContentRect.height() - 1); if (minx < 0) minx = 0; if (miny < 0) miny = 0; if (maxx >= m_map->width()) maxx = m_map->width() - 1; if (maxy >= m_map->height()) maxy = m_map->height() - 1; for (int y = miny; y <= maxy; y++) { for (int x = minx; x <= maxx; x++) { paintSquare(x, y, painter); } } painter->restore();; } void GroundItem::setGeometry(const QRectF &geom) { prepareGeometryChange(); QGraphicsLayoutItem::setGeometry(geom); // use updated data const QRectF geometry = this->geometry(); setPos(geometry.topLeft()); updateSquares(); } void GroundItem::updateSquares() { // use updated data const QRectF geometry = this->geometry(); const int cols = m_map->width(); const int rows = m_map->height(); // FIXME: the line below should not be needed if (cols == 0 || rows == 0) return; // for now render aligned to pixels int xsize = std::floor(geometry.width() / cols); int ysize = std::floor(geometry.height() / rows); if (xsize < MIN_SQUARE_SIZE) xsize = MIN_SQUARE_SIZE; if (ysize < MIN_SQUARE_SIZE) ysize = MIN_SQUARE_SIZE; m_squareSize = (xsize > ysize ? ysize : xsize); // ensure even number, for half squares to be aligned to pixels m_squareSize &= ~1; m_halfSquareSize = m_squareSize / 2; const int groundX = (geometry.width() - cols * m_squareSize) / 2; const int groundY = (geometry.height()- rows * m_squareSize) / 2; m_contentOffset.setX(groundX); m_contentOffset.setY(groundY); // qDebug() << "GROUNDITEM::SETGEOMETRY" << geom << "squaresize" << m_squareSize; update(); } QSizeF GroundItem::sizeHint(Qt::SizeHint which, const QSizeF &constraint) const { Q_UNUSED(constraint); switch (which) { case Qt::MinimumSize: { const int cols = m_map->width(); const int rows = m_map->height(); const int width = MIN_SQUARE_SIZE * cols; const int height = MIN_SQUARE_SIZE * rows; return QSizeF(width, height); } default: return QSizeF(); }; } QPixmap GroundItem::stonePixmap(int stoneIndex) const { const QString spriteName = QStringLiteral("stone_%1").arg(stoneIndex); return m_renderer->spritePixmap(spriteName, QSize(m_squareSize, m_halfSquareSize)); } QPixmap GroundItem::halfStonePixmap(int stoneIndex) const { const QString spriteName = QStringLiteral("halfstone_%1").arg(stoneIndex); return m_renderer->spritePixmap(spriteName, QSize(m_halfSquareSize, m_halfSquareSize)); } void GroundItem::paintWall(int x, int y, QPainter *painter) { const int pixelX = squareToX(x); const int pixelY = squareToY(y); const int stoneIndex = x + y * (Map::MAX_X + 1); const qreal dpr = qApp->devicePixelRatio(); const int deviceSize_ = m_squareSize * dpr; const int halfdeviceSize_ = deviceSize_ / 2; if (m_map->wallLeft(x, y)) { painter->drawPixmap(pixelX, pixelY, stonePixmap(m_stoneIndex.upperLarge(stoneIndex - 1)), halfdeviceSize_, 0, -1, -1); } else { painter->drawPixmap(pixelX, pixelY, halfStonePixmap(m_stoneIndex.leftSmall(stoneIndex))); } if (m_map->wallRight(x, y)) { painter->drawPixmap(pixelX + m_halfSquareSize, pixelY, stonePixmap(m_stoneIndex.upperLarge(stoneIndex)), 0, 0, halfdeviceSize_, -1); } else { painter->drawPixmap(pixelX + m_halfSquareSize, pixelY, halfStonePixmap(m_stoneIndex.rightSmall(stoneIndex))); } painter->drawPixmap(pixelX, pixelY + m_halfSquareSize, stonePixmap(m_stoneIndex.lowerLarge(stoneIndex))); } void GroundItem::paintSquare(int x, int y, QPainter *painter) { if (m_map->wall(x, y)) { paintWall(x, y, painter); return; } QString spriteName; if (m_map->xpos() == x && m_map->ypos() == y) { if (m_map->goal(x, y)) spriteName = QStringLiteral("saveman"); else { spriteName = QStringLiteral("man"); } } else if (m_map->empty(x, y)) { if (m_map->floor(x, y)) { if (m_map->goal(x, y)) spriteName = QStringLiteral("goal"); else { // shortcut for now, replace with theme pixmap (or color property) painter->fillRect(squareToX(x), squareToY(y), m_squareSize, m_squareSize, QColor(0x67, 0x67, 0x67, 255)); return; } } } else if (m_map->object(x, y)) { // TODO: add highlighting & other states to KGameRenderer #if 0 if (highlightX_ == x && highlightY_ == y) { if (m_map->goal(x, y)) imageData_->brightTreasure(paint, squareToX(x), squareToY(y)); else imageData_->brightObject(paint, squareToX(x), squareToY(y)); return; } else #endif { if (m_map->goal(x, y)) spriteName = QStringLiteral("treasure"); else spriteName = QStringLiteral("object"); } } if (spriteName.isEmpty()) { return; } const QPixmap pixmap = m_renderer->spritePixmap(spriteName, QSize(m_squareSize, m_squareSize)); painter->drawPixmap(squareToX(x), squareToY(y), pixmap); } skladnik-0.5.1/src/GroundItem.h000066400000000000000000000037571457640636700163700ustar00rootroot00000000000000/* SPDX-FileCopyrightText: 2022 Friedrich W. H. Kossebau SPDX-License-Identifier: GPL-2.0-or-later */ #ifndef GROUNDITEM_H #define GROUNDITEM_H #include "Map.h" #include "StoneIndex.h" #include #include class KGameRenderer; class QPixmap; class GroundItem : public QGraphicsLayoutItem, public QGraphicsItem { public: GroundItem(const Map *map, KGameRenderer *renderer, QGraphicsItem *parent = nullptr); public: int squareSize() const; QPoint squareFromScene(QPointF scenePos) const; QPointF squareToScene(QPoint square) const; void updateSquares(); public: // QGraphicsItem API QRectF boundingRect() const override; void paint(QPainter *p, const QStyleOptionGraphicsItem *option, QWidget *widget) override; public: // QGraphicsLayoutItem API void setGeometry(const QRectF &geom) override; QSizeF sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const override; private: QPixmap stonePixmap(int stoneIndex) const; QPixmap halfStonePixmap(int stoneIndex) const; void paintWall(int x, int y, QPainter *painter); void paintSquare(int x, int y, QPainter *painter); int squareX(qreal x) const; int squareY(qreal y) const; int squareToX(int x) const; int squareToY(int y) const; private: // TODO: look into making the item a floor 0,0-based again, with positioning externally managed QPoint m_contentOffset; int m_squareSize = 0; int m_halfSquareSize = 0; KGameRenderer * const m_renderer; StoneIndex m_stoneIndex; const Map * const m_map; }; inline int GroundItem::squareSize() const { return m_squareSize; } inline int GroundItem::squareX(qreal x) const { return x / m_squareSize; } inline int GroundItem::squareY(qreal y) const { return y / m_squareSize; } inline int GroundItem::squareToX(int x) const { return m_squareSize * x; } inline int GroundItem::squareToY(int y) const { return m_squareSize * y; } #endif skladnik-0.5.1/src/History.cpp000066400000000000000000000045131457640636700162760ustar00rootroot00000000000000/* SPDX-FileCopyrightText: 1998 Anders Widell SPDX-License-Identifier: GPL-2.0-or-later */ #include "History.h" #include "LevelMap.h" #include "Move.h" #include "MoveSequence.h" #include History::History() = default; History::~History() { clear(); } void History::add(Move *_m) { qDeleteAll(future_); future_.clear(); past_.append(_m); } void History::clear() { qDeleteAll(past_); qDeleteAll(future_); past_.clear(); future_.clear(); } void History::save(QString &_str) const { for (Move *move : past_) { move->save(_str); } _str += QLatin1Char('-'); for (Move *move : future_) { move->save(_str); } } const char *History::load(LevelMap *map, const char *_str) { int x = map->xpos(); int y = map->ypos(); clear(); while (*_str != '\0' && *_str != '-') { auto *m = new Move(x, y); _str = m->load(_str); if (_str == nullptr) { delete m; return nullptr; } x = m->finalX(); y = m->finalY(); past_.append(m); if (!m->redo(map)) { // printf("redo failed: %s\n", _str); // abort(); return nullptr; } } if (*_str != '-') return nullptr; _str++; while (*_str != '\0') { auto *m = new Move(x, y); _str = m->load(_str); if (_str == nullptr) { delete m; return nullptr; } x = m->finalX(); y = m->finalY(); future_.append(m); } return _str; } bool History::redo(LevelMap *map) { if (future_.isEmpty()) return false; Move *m = future_.takeAt(0); past_.append(m); return m->redo(map); } MoveSequence *History::deferRedo(LevelMap *map) { if (future_.isEmpty()) return nullptr; Move *m = future_.takeAt(0); past_.append(m); return new MoveSequence(m, map); } bool History::undo(LevelMap *map) { if (past_.isEmpty()) return false; Move *m = past_.takeAt(past_.count() - 1); future_.insert(0, m); return m->undo(map); } MoveSequence *History::deferUndo(LevelMap *map) { if (past_.isEmpty()) return nullptr; Move *m = past_.takeAt(past_.count() - 1); future_.insert(0, m); return new MoveSequence(m, map, true); } skladnik-0.5.1/src/History.h000066400000000000000000000017641457640636700157500ustar00rootroot00000000000000/* SPDX-FileCopyrightText: 1998 Anders Widell SPDX-License-Identifier: GPL-2.0-or-later */ #ifndef HISTORY_H #define HISTORY_H #include "Move.h" #include #include class MoveSequence; /** * Maintains movement history * * @short Maintains game movement history * @author Anders Widell * @version 0.1 * @see PlayField */ class History { public: History(); ~History(); public: /** * Add a move to the history. Deletes all currently undone moves. */ void add(Move *_m); /** * Clear the history and delete all Move objects stored in it. */ void clear(); void save(QString &_str) const; const char *load(LevelMap *map, const char *_str); bool redo(LevelMap *map); MoveSequence *deferRedo(LevelMap *map); bool undo(LevelMap *map); MoveSequence *deferUndo(LevelMap *map); private: QList past_; QList future_; }; #endif /* HISTORY_H */ skladnik-0.5.1/src/HtmlPrinter.cpp000066400000000000000000000035341457640636700171070ustar00rootroot00000000000000#include "HtmlPrinter.h" #include #include void HtmlPrinter::wall(bool up, bool down, bool left, bool right) { switch ((up != 0) | ((down != 0) << 1) | ((left != 0) << 2) | ((right != 0) << 3)) { case 0: case 1: case 2: case 3: image("vertiwall"); break; case 4: case 5: case 6: case 7: image("eastwall"); break; case 8: case 9: case 10: case 11: image("westwall"); break; case 12: case 13: case 14: case 15: image("horizwall"); break; default: abort(); } } void HtmlPrinter::image(const char *name) { printf("
\n", name); } void HtmlPrinter::empty() { printf("\n"); } void HtmlPrinter::printSquare(const Map *lm, int x, int y) { if (lm->xpos() == x && lm->ypos() == y) { image(lm->goal(x, y) ? "saveman" : "man"); return; } if (lm->empty(x, y)) { if (lm->floor(x, y)) { image(lm->goal(x, y) ? "goal" : "floor"); } else { empty(); } return; } if (lm->wall(x, y)) { wall(lm->wallUp(x, y), lm->wallDown(x, y), lm->wallLeft(x, y), lm->wallRight(x, y)); return; } if (lm->object(x, y)) { image(lm->goal(x, y) ? "treasure" : "object"); return; } } void HtmlPrinter::printHtml(const Map *lm) { printf( "\ \n\ \n\ Skladnik level\n\ \n\ \n\ "); printf("\n"); for (int y = 0; y < lm->height(); y++) { printf("\n"); for (int x = 0; x < lm->width(); x++) { printSquare(lm, x, y); } } printf( "\
\n\ \n\ \n\ "); } skladnik-0.5.1/src/HtmlPrinter.h000066400000000000000000000005601457640636700165500ustar00rootroot00000000000000#ifndef HTMLPRINTER_H #define HTMLPRINTER_H #include "LevelMap.h" class HtmlPrinter { public: static void printHtml(const Map *lm); private: static void wall(bool up, bool down, bool left, bool right); static void image(const char *name); static void empty(); static void printSquare(const Map *lm, int x, int y); }; #endif /* HTMLPRINTER_H */ skladnik-0.5.1/src/InternalCollections.cpp000066400000000000000000000060051457640636700206060ustar00rootroot00000000000000#include "InternalCollections.h" #include #include // static const int collection_save_id[] = { // 0, 1, 3, 5, 9, 6, 7, 8, 2, 4 // }; static const int collection_save_id[] = {10, 11, 12, 13, 14}; int InternalCollections::configCollection2Real(int collection) { for (int i = 0; i < (int)(sizeof(collection_save_id) / sizeof(int)); i++) { if (collection_save_id[i] == collection) return i; } return 0; } int InternalCollections::realCollection2Config(int collection) { assert(collection < (int)(sizeof(collection_save_id) / sizeof(int))); return collection_save_id[collection]; } QString InternalCollections::collectionName(int _level) { switch (_level) { case 0: return i18n("Sasquatch"); break; case 1: return i18n("Mas Sasquatch"); break; case 2: return i18n("Sasquatch III"); break; case 3: return i18n("Microban (easy)"); break; case 4: return i18n("Sasquatch IV"); break; } assert(false); return QString(); } InternalCollections::InternalCollections() { int datasize, levelnum = 0; QFile resourceData(QStringLiteral(":/skladnik/level.data")); if (!resourceData.open(QIODevice::ReadOnly)) { abort(); } m_data = resourceData.readAll(); datasize = m_data.size(); char *data_ = m_data.data(); int start = 0, end = 0; #if 0 int name=0; #endif enum { NAME, DATA } state = NAME; while (end < datasize) { switch (state) { case NAME: if (data_[end] == '\n') { data_[end] = '\0'; state = DATA; } end++; start = end; break; case DATA: if (isalpha(data_[end])) { // collections_.add(new LevelCollection(data_+start, end-start, data_+name, collection_save_id[levelnum])); add(new LevelCollection(data_ + start, end - start, collectionName(levelnum), collection_save_id[levelnum])); // printf("Level found: '%s'\n", data_+name); levelnum++; #if 0 name = end; #endif state = NAME; } end++; break; default: assert(0); } } if (state == DATA) { // collections_.add(new LevelCollection(data_+start, end-start, data_+name, collection_save_id[levelnum])); add(new LevelCollection(data_ + start, end - start, collectionName(levelnum), collection_save_id[levelnum])); // printf("***Level found: '%s'\n", data_+name); } // printf("numlevels: %d/%d\n", levelnum+1, collections_.size()); } InternalCollections::~InternalCollections() { qDeleteAll(collections_); } int InternalCollections::collections() const { return collections_.size(); } LevelCollection *InternalCollections::operator[](int n) const { return collections_[n]; } void InternalCollections::add(LevelCollection *c) { collections_.append(c); } skladnik-0.5.1/src/InternalCollections.h000066400000000000000000000016361457640636700202600ustar00rootroot00000000000000/* SPDX-FileCopyrightText: 1998-2000 Anders Widell SPDX-License-Identifier: GPL-2.0-or-later */ #ifndef INTERNALCOLLECTIONS_H #define INTERNALCOLLECTIONS_H #include "LevelCollection.h" #include #include #include #include class InternalCollections { public: InternalCollections(); ~InternalCollections(); public: static int toInternalId(int _id) { if (_id < 10 || _id > 14) return 1000; return _id - 10; } int collections() const; LevelCollection *operator[](int n) const; private: void add(LevelCollection *c); static int configCollection2Real(int collection); static int realCollection2Config(int collection); static QString collectionName(int _level); private: QVector collections_; QByteArray m_data; }; #endif /* INTERNALCOLLECTIONS_H */ skladnik-0.5.1/src/LevelCollection.cpp000066400000000000000000000262751457640636700177310ustar00rootroot00000000000000#include "LevelCollection.h" #include "Map.h" #include #include #include #include #include #include #include #if 1 #define GETUID() 501 #else #ifndef WIN32 #define GETUID() getuid() #else #define GETUID() 1000 #endif #endif static inline unsigned long forward(unsigned long a, unsigned long b, unsigned long c, unsigned long d) { unsigned long x = (a ^ b) & 0xfffffffful; return (((x << c) | (x >> ((32ul - c) & 31ul))) * d) & 0xfffffffful; } static inline unsigned long backward(unsigned long a, unsigned long b, unsigned long c, unsigned long d) { unsigned long x = (a * b) & 0xfffffffful; return (((x << c) | (x >> ((32ul - c) & 31ul))) ^ d) & 0xfffffffful; } void LevelCollection::indexTextCollection() { enum states { BEFORE_NONE, BEFORE_VALID, BEFORE_INVALID, DURING_NONE, DURING_VALID, DURING_INVALID } state = BEFORE_NONE; int levelstart = 0, levelend = 0; for (int pos = 0; pos < (data_.size() - 1); pos++) { switch (state) { case BEFORE_NONE: switch (data_[pos]) { case '#': case '.': case '$': case '+': case '*': case '@': state = BEFORE_VALID; break; case ' ': case '\t': case '\r': break; case '\n': levelstart = pos + 1; break; default: state = BEFORE_INVALID; break; } break; case BEFORE_VALID: switch (data_[pos]) { case '#': case '.': case '$': case '+': case '*': case '@': case ' ': case '\t': case '\r': break; case '\n': addLevel(data_.constData() + levelstart); levelend = levelstart; state = DURING_NONE; break; default: state = BEFORE_INVALID; break; } break; case BEFORE_INVALID: switch (data_[pos]) { case '\n': levelstart = pos + 1; state = BEFORE_NONE; break; } break; case DURING_NONE: switch (data_[pos]) { case '#': case '.': case '$': case '+': case '*': case '@': state = DURING_VALID; break; case ' ': case '\t': case '\r': break; case '\n': data_[levelend] = '\0'; levelstart = pos + 1; state = BEFORE_NONE; break; default: state = DURING_INVALID; break; } break; case DURING_VALID: switch (data_[pos]) { case '#': case '.': case '$': case '+': case '*': case '@': case ' ': case '\t': case '\r': break; case '\n': levelend = pos; state = DURING_NONE; break; default: state = DURING_INVALID; break; } break; case DURING_INVALID: switch (data_[pos]) { case '\n': data_[levelend] = '\0'; levelstart = pos + 1; state = BEFORE_NONE; break; } break; default: assert(0); } } if (state == DURING_NONE || state == DURING_INVALID) { data_[levelend] = '\0'; } } void LevelCollection::loadPrefs() { if (id_ >= 0) { KSharedConfigPtr cfg = KSharedConfig::openConfig(); KConfigGroup settingsGroup(cfg, QStringLiteral("settings")); QString key = QString::asprintf("level%d", id_); level_ = settingsGroup.readEntry(key, QStringLiteral("0")).toInt(); key = QString::asprintf("status%d", id_); unsigned long x = settingsGroup.readEntry(key, QStringLiteral("0")).toULong(); x = backward(x, 0xc1136a15ul, 0x12ul, 0x80ff0b94ul); x = backward(x, 0xd38fd2ddul, 0x01ul, 0xd4d657b4ul); x = backward(x, 0x59004eeful, 0x1eul, 0xf6c75e2cul); x = backward(x, 0x366c3e25ul, 0x0aul, 0x61ebc208ul); x = backward(x, 0x20a784c9ul, 0x15ul, 0x207d488bul); x = backward(x, 0xc02864abul, 0x09ul, 0x709e62a3ul); x = backward(x, 0xe2a60f19ul, 0x0eul, 0x8bb02c07ul); x = backward(x, 0x3b0e11f3ul, 0x13ul, 0x608aef3ful); completedLevels_ = x >> 16 & 0x3ff; if (!settingsGroup.hasKey(key)) completedLevels_ = 0; if (((x >> 26) & 0x3ful) != (unsigned long)id_) completedLevels_ = 0; if ((x & 0xfffful) != (unsigned long)GETUID()) completedLevels_ = 0; if (completedLevels_ > noOfLevels_) completedLevels_ = 0; if (level_ > completedLevels_) level_ = completedLevels_; if (level_ >= noOfLevels_) level_ = noOfLevels_ - 1; if (level_ < 0) level_ = 0; } else { level_ = 0; completedLevels_ = noOfLevels_; } } void LevelCollection::addLevel(const char *_level) { index_.append(_level); } void LevelCollection::addData(const char *_data, unsigned _len) { unsigned pos = data_.size(); data_.resize(pos + _len); memcpy(data_.data() + pos, _data, _len); } void LevelCollection::addSeparator() { unsigned pos = data_.size(); data_.resize(pos + 1); data_[pos] = '\0'; } LevelCollection::LevelCollection(const char *_def, int _len, const QString &_name, int _id) : name_(_name) , id_(_id) { addData(_def, _len); addSeparator(); indexTextCollection(); noOfLevels_ = index_.size(); loadPrefs(); } LevelCollection::LevelCollection(const QString &_path, const QString &_name, int _id) : name_(_name) , path_(_path) , id_(_id) { char buf[1024]; int len; QFile file(path_); if (file.open(QIODevice::ReadOnly)) { while ((len = file.read(buf, 1024)) > 0) { addData((const char *)buf, len); } file.close(); addSeparator(); } indexTextCollection(); noOfLevels_ = index_.size(); loadPrefs(); } LevelCollection::~LevelCollection() { if (id_ >= 0) { KSharedConfigPtr cfg = KSharedConfig::openConfig(); KConfigGroup settingsGroup(cfg, QStringLiteral("settings")); const QString key = QString::asprintf("level%d", id_); settingsGroup.writeEntry(key, QStringLiteral("%1").arg(level_)); } } void LevelCollection::levelCompleted() { if (completedLevels_ < (level_ + 1)) completedLevels_ = level_ + 1; if (id_ >= 0) { unsigned long x = (((unsigned long)GETUID()) & 0xfffful); x |= ((unsigned long)id_) << 26; x |= ((unsigned long)completedLevels_) << 16; x = forward(x, 0x608aef3ful, 0x0dul, 0xfb00ef3bul); x = forward(x, 0x8bb02c07ul, 0x12ul, 0x2a37dd29ul); x = forward(x, 0x709e62a3ul, 0x17ul, 0x23607603ul); x = forward(x, 0x207d488bul, 0x0bul, 0xc31fd579ul); x = forward(x, 0x61ebc208ul, 0x16ul, 0xbcffadadul); x = forward(x, 0xf6c75e2cul, 0x02ul, 0xa2baa00ful); x = forward(x, 0xd4d657b4ul, 0x1ful, 0x7e129575ul); x = forward(x, 0x80ff0b94ul, 0x0eul, 0x92fc153dul); const QString key = QString::asprintf("status%d", id_); KSharedConfigPtr cfg = KSharedConfig::openConfig(); KConfigGroup settingsGroup(cfg, QStringLiteral("settings")); settingsGroup.writeEntry(key, QStringLiteral("%1").arg(x)); cfg->sync(); } } void LevelCollection::level(int _level) { assert(_level >= 0 && _level < noOfLevels_); level_ = _level; if (level_ > completedLevels_) level_ = completedLevels_; if (level_ >= noOfLevels_) level_ = noOfLevels_ - 1; if (level_ < 0) level_ = 0; } static int minX(const char *def) { int min_x = 10000; int x = 0; for (int pos = 0; def[pos]; pos++) { switch (def[pos]) { case '\n': x = 0; break; case ' ': x++; break; case '\t': x = (x + 8) & ~7; break; case '\r': break; default: if (x < min_x) min_x = x; break; } } return min_x == 10000 ? -1 : min_x; } bool LevelCollection::loadLevel(Map *_map) { _map->clearMap(); const char *def = index_[level_]; bool goodMap = true; int x = 0, y = 0, goalsLeft = 0; int min_x = minX(def); if (min_x < 0) { min_x = 0; goodMap = false; } _map->resetPos(); for (int pos = 0; def[pos]; pos++) { switch (def[pos]) { case '\n': y++; x = 0; break; case ' ': x++; break; case '\t': x = (x + 8) & ~7; break; case '@': if (x - min_x > Map::MAX_X || y > Map::MAX_Y) goodMap = false; else { _map->setPos(x - min_x, y); } x++; break; case '$': if (x - min_x > Map::MAX_X || y > Map::MAX_Y) goodMap = false; else _map->map(x - min_x, y, Map::OBJECT); x++; break; case '.': if (x - min_x > Map::MAX_X || y > Map::MAX_Y) goodMap = false; else { _map->map(x - min_x, y, Map::GOAL); goalsLeft++; } x++; break; case '#': if (x - min_x > Map::MAX_X || y > Map::MAX_Y) goodMap = false; else _map->map(x - min_x, y, Map::WALL); x++; break; case '+': if (x - min_x > Map::MAX_X || y > Map::MAX_Y) goodMap = false; else { _map->setPos(x - min_x, y); _map->map(x - min_x, y, Map::GOAL); goalsLeft++; } x++; break; case '*': if (x - min_x > Map::MAX_X || y > Map::MAX_Y) goodMap = false; else _map->map(x - min_x, y, Map::OBJECT | Map::GOAL); x++; break; case '\r': break; default: goodMap = false; break; } } if (_map->objectsLeft() != goalsLeft) goodMap = false; if (_map->completed()) goodMap = false; if (_map->badCoords(_map->xpos(), _map->ypos())) goodMap = false; else { if (!_map->empty(_map->xpos(), _map->ypos())) goodMap = false; else if (!_map->fillFloor(_map->xpos(), _map->ypos())) goodMap = false; } return goodMap; } skladnik-0.5.1/src/LevelCollection.h000066400000000000000000000024511457640636700173640ustar00rootroot00000000000000/* SPDX-FileCopyrightText: 1998, 1999 Anders Widell SPDX-License-Identifier: GPL-2.0-or-later */ #ifndef LEVELCOLLECTION_H #define LEVELCOLLECTION_H #include #include #include class Map; class LevelCollection { public: LevelCollection(const char *_def, int _len, const QString &_name, int _id = -1); LevelCollection(const QString &_path, const QString &_name, int _id = -1); ~LevelCollection(); public: const QString &name() const { return name_; } int id() const { return id_; } int level() const { return level_; } void level(int _level); void levelCompleted(); int completedLevels() const { return completedLevels_; } int noOfLevels() const { return noOfLevels_; } bool loadLevel(Map *_map); private: void indexTextCollection(); void loadPrefs(); void addLevel(const char *_level); void addData(const char *_data, unsigned _len); void addSeparator(); private: QVector index_; QByteArray data_; // int dataLen_; int level_ = 0; int completedLevels_ = 0; int noOfLevels_ = 0; QString name_; QString path_; int id_; }; #endif /* LEVELCOLLECTION_H */ skladnik-0.5.1/src/LevelMap.cpp000066400000000000000000000067211457640636700163450ustar00rootroot00000000000000/* SPDX-FileCopyrightText: 1998 Anders Widell SPDX-License-Identifier: GPL-2.0-or-later */ #include "LevelMap.h" #include "LevelCollection.h" #include #include #include #include #include #include #include const QString &LevelMap::collectionName() const { return collection_->name(); } LevelMap::LevelMap() = default; LevelMap::~LevelMap() = default; void LevelMap::changeCollection(LevelCollection *_collection) { collection_ = _collection; goodLevel_ = collection_->loadLevel(&map_); totalMoves_ = totalPushes_ = 0; } int LevelMap::level() const { if (collection_ == nullptr) return 0; return collection_->level(); } void LevelMap::level(int _level) { assert(collection_ != nullptr); collection_->level(_level); goodLevel_ = collection_->loadLevel(&map_); totalMoves_ = totalPushes_ = 0; } int LevelMap::noOfLevels() const { assert(collection_ != nullptr); return collection_->noOfLevels(); } int LevelMap::completedLevels() const { assert(collection_ != nullptr); return collection_->completedLevels(); } int LevelMap::distance(int x1, int y1, int x2, int y2) { int d; if (x2 > x1) d = x2 - x1; else d = x1 - x2; if (y2 > y1) d += y2 - y1; else d += y1 - y2; return d; } bool LevelMap::step(int _x, int _y) { const int oldX = map_.xpos(); const int oldY = map_.ypos(); bool success = map_.step(_x, _y); const int d = distance(oldX, oldY, map_.xpos(), map_.ypos()); totalMoves_ += d; return success; } bool LevelMap::push(int _x, int _y) { const int oldX = map_.xpos(); const int oldY = map_.ypos(); bool success = map_.push(_x, _y); const int d = distance(oldX, oldY, map_.xpos(), map_.ypos()); totalMoves_ += d; totalPushes_ += d; if (map_.completed()) collection_->levelCompleted(); return success; } bool LevelMap::unstep(int _x, int _y) { const int oldX = map_.xpos(); const int oldY = map_.ypos(); bool success = map_.unstep(_x, _y); const int d = distance(oldX, oldY, map_.xpos(), map_.ypos()); totalMoves_ -= d; return success; } bool LevelMap::unpush(int _x, int _y) { const int oldX = map_.xpos(); const int oldY = map_.ypos(); bool success = map_.unpush(_x, _y); const int d = distance(oldX, oldY, map_.xpos(), map_.ypos()); totalMoves_ -= d; totalPushes_ -= d; return success; } #if 0 void LevelMap::random (void) { printf ("start!\n"); minX_ = 0; minY_ = 0; maxX_ = MAX_X; maxY_ = MAX_Y; totalMoves_ = totalPushes_ = 0; clearMap (); xpos_ = 13; ypos_ = 9; KRandomSequence random(0); for (int i=0; i<200; i++) { map (xpos_, ypos_, FLOOR); switch (random.getLong(4)) { case 0: if (ypos_ > 1) ypos_--; else i--; break; case 1: if (ypos_ < MAX_Y-1) ypos_++; else i--; break; case 2: if (xpos_ > 1) xpos_--; else i--; break; case 3: if (xpos_ < MAX_X-1) xpos_++; else i--; break; } } for (int y=1; y SPDX-License-Identifier: GPL-2.0-or-later */ #ifndef LEVELMAP_H #define LEVELMAP_H #include "Map.h" #include #include class LevelCollection; class LevelMap { public: LevelMap(); ~LevelMap(); public: LevelCollection *collection() const { return collection_; } const QString &collectionName() const; void changeCollection(LevelCollection *_collection); int totalMoves() const { return totalMoves_; } int totalPushes() const { return totalPushes_; } void level(int _level); int level() const; int noOfLevels() const; int completedLevels() const; bool goodLevel() const { return goodLevel_; } bool step(int _x, int _y); bool push(int _x, int _y); bool unstep(int _x, int _y); bool unpush(int _x, int _y); int xpos() const { return map_.xpos(); } int ypos() const { return map_.ypos(); } bool completed() const { return map_.completed(); } const Map& map() const { return map_; } private: static int distance(int x1, int y1, int x2, int y2); private: LevelCollection *collection_ = nullptr; Map map_; int totalMoves_ = 0; int totalPushes_ = 0; bool goodLevel_ = false; }; #endif /* LEVELMAP_H */ skladnik-0.5.1/src/MainWindow.cpp000066400000000000000000000267601457640636700167210ustar00rootroot00000000000000/* SPDX-FileCopyrightText: 1998 Anders Widell SPDX-License-Identifier: GPL-2.0-or-later */ #include "MainWindow.h" #include "LevelCollection.h" #include "PlayField.h" #include "PlayFieldView.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include void MainWindow::createCollectionMenu() { collectionsAct_ = new KSelectAction(i18n("&Level Collection"), this); actionCollection()->addAction(QStringLiteral("collections"), collectionsAct_); connect(collectionsAct_, &KSelectAction::indexTriggered, this, &MainWindow::changeCollection); for (int i = 0; i < internalCollections_.collections(); i++) { collectionsAct_->addAction(internalCollections_[i]->name()); } KSharedConfigPtr cfg = KSharedConfig::openConfig(); KConfigGroup settingsGroup(cfg, QStringLiteral("settings")); int id = settingsGroup.readEntry("collection", "10").toInt(); int currentCollection = 0; for (int i = 0; i < internalCollections_.collections(); i++) { if (internalCollections_[i]->id() == id) currentCollection = i; } changeCollection(currentCollection); } MainWindow::MainWindow() : KXmlGuiWindow() { // setEraseColor(QColor(0,0,0)); playField_ = new PlayField(this); playFieldView_ = new PlayFieldView (playField_, this); setCentralWidget(playFieldView_); setupActions(); setupGUI(Keys | Save | Create); setAcceptDrops(true); } MainWindow::~MainWindow() { KSharedConfigPtr cfg = KSharedConfig::openConfig(); KConfigGroup settingsGroup(cfg, QStringLiteral("settings")); settingsGroup.writeEntry("collection", QStringLiteral("%1").arg(internalCollections_[collectionsAct_->currentItem()]->id())); for (int i = 1; i <= 10; i++) { delete bookmarks_[i - 1]; } delete externalCollection_; // The following line segfaults when linked against qt 1.44 // delete playField_; } void MainWindow::setupActions() { KActionCollection *ac = actionCollection(); QAction *qact = ac->addAction(QStringLiteral("load_levels"), this, &MainWindow::loadLevels); qact->setIcon(QIcon::fromTheme(QStringLiteral("document-open"))); qact->setText(i18n("&Load Levels...")); QAction *nextLevel = ac->addAction(QStringLiteral("next_level"), playField_, &PlayField::nextLevel); nextLevel->setIcon(QIcon::fromTheme(QStringLiteral("go-next"))); nextLevel->setText(i18n("&Next Level")); ac->setDefaultShortcut(nextLevel, QKeySequence(Qt::Key_N)); QAction *prevLevel = ac->addAction(QStringLiteral("prev_level"), playField_, &PlayField::previousLevel); prevLevel->setIcon(QIcon::fromTheme(QStringLiteral("go-previous"))); prevLevel->setText(i18n("&Previous Level")); ac->setDefaultShortcut(prevLevel, QKeySequence(Qt::Key_P)); QAction *reload = ac->addAction(QStringLiteral("reload_level"), playField_, &PlayField::restartLevel); reload->setIcon(QIcon::fromTheme(QStringLiteral("view-refresh"))); reload->setText(i18n("Re&start Level")); ac->setDefaultShortcut(reload, QKeySequence(Qt::Key_Escape)); createCollectionMenu(); ac->addAction(KStandardAction::Undo, QStringLiteral("undo"), playField_, &PlayField::undo); ac->addAction(KStandardAction::Redo, QStringLiteral("redo"), playField_, &PlayField::redo); ac->addAction(KStandardAction::Quit, QStringLiteral("quit"), this, &MainWindow::close); auto *animGrp = new QActionGroup(this); connect(animGrp, &QActionGroup::triggered, this, &MainWindow::handleAnimSpeedSelected); qa_slow = ac->addAction(QStringLiteral("anim_slow")); qa_slow->setText(i18n("&Slow")); qa_slow->setCheckable(true); qa_slow->setData(3); qa_slow->setActionGroup(animGrp); qa_medium = ac->addAction(QStringLiteral("anim_medium")); qa_medium->setText(i18n("&Medium")); qa_medium->setCheckable(true); qa_medium->setData(2); qa_medium->setActionGroup(animGrp); qa_fast = ac->addAction(QStringLiteral("anim_fast")); qa_fast->setText(i18n("&Fast")); qa_fast->setCheckable(true); qa_fast->setData(1); qa_fast->setActionGroup(animGrp); qa_off = ac->addAction(QStringLiteral("anim_off")); qa_off->setText(i18n("&Off")); qa_off->setCheckable(true); qa_off->setData(0); qa_off->setActionGroup(animGrp); const int animDelay = playField_->animDelay(); if (animDelay == 3) { qa_slow->setChecked(true); } else if (animDelay == 2) { qa_medium->setChecked(true); } else if (animDelay == 1) { qa_fast->setChecked(true); } else if (animDelay == 0) { qa_off->setChecked(true); } auto *setBmGrp = new QActionGroup(this); setBmGrp->setExclusive(false); connect(setBmGrp, &QActionGroup::triggered, this, &MainWindow::setBookmark); const struct { QString addActionId; QString gotoActionId; Qt::Key key; } bokkmarkActionData[10] = { {QStringLiteral("bm_add_1"), QStringLiteral("bm_goto_1"), Qt::Key_1}, {QStringLiteral("bm_add_2"), QStringLiteral("bm_goto_2"), Qt::Key_2}, {QStringLiteral("bm_add_3"), QStringLiteral("bm_goto_3"), Qt::Key_3}, {QStringLiteral("bm_add_4"), QStringLiteral("bm_goto_4"), Qt::Key_4}, {QStringLiteral("bm_add_5"), QStringLiteral("bm_goto_5"), Qt::Key_5}, {QStringLiteral("bm_add_6"), QStringLiteral("bm_goto_6"), Qt::Key_6}, {QStringLiteral("bm_add_7"), QStringLiteral("bm_goto_7"), Qt::Key_7}, {QStringLiteral("bm_add_8"), QStringLiteral("bm_goto_8"), Qt::Key_8}, {QStringLiteral("bm_add_9"), QStringLiteral("bm_goto_9"), Qt::Key_9}, {QStringLiteral("bm_add_10"), QStringLiteral("bm_goto_10"), Qt::Key_0}, }; for (int i = 0; i < 10; i++) { auto &actionData = bokkmarkActionData[i]; QAction *action = ac->addAction(actionData.addActionId); action->setIcon(QIcon::fromTheme(QStringLiteral("bookmark-new"))); action->setText(i18n("(unused)")); ac->setDefaultShortcut(action, QKeySequence(Qt::CTRL | actionData.key)); action->setData(i + 1); action->setActionGroup(setBmGrp); setBM_act[i] = action; } auto *gotoBmGrp = new QActionGroup(this); gotoBmGrp->setExclusive(false); connect(gotoBmGrp, &QActionGroup::triggered, this, &MainWindow::goToBookmark); for (int i = 0; i < 10; i++) { auto &actionData = bokkmarkActionData[i]; QAction *action = ac->addAction(actionData.gotoActionId); action->setText(i18n("(unused)")); ac->setDefaultShortcut(action, QKeySequence(actionData.key)); action->setData(i + 1); action->setActionGroup(gotoBmGrp); goToBM_act[i] = action; } for (int i = 1; i <= 10; i++) { bookmarks_[i - 1] = new Bookmark(i); updateBookmark(i); } } void MainWindow::handleAnimSpeedSelected(QAction *action) { playField_->changeAnim(action->data().toInt()); } void MainWindow::focusInEvent(QFocusEvent *) { playFieldView_->setFocus(); } void MainWindow::updateBookmark(int num) { int col = internalCollections_.toInternalId(bookmarks_[num - 1]->collection()); int lev = bookmarks_[num - 1]->level(); int mov = bookmarks_[num - 1]->moves(); if (col < 0 || lev < 0) return; QString name; if (col >= 0 && col < internalCollections_.collections()) name = internalCollections_[col]->name(); else name = i18n("(invalid)"); QString l; l.setNum(lev + 1); name += QLatin1String(" #") + l; l.setNum(mov); name += QLatin1String(" (") + l + QLatin1Char(')'); setBM_act[num - 1]->setText(name); goToBM_act[num - 1]->setText(name); } void MainWindow::setBookmark(QAction *action) { const int id = action->data().toInt(); assert(id >= 1 && id <= 10); playField_->setBookmark(bookmarks_[id - 1]); updateBookmark(id); } void MainWindow::goToBookmark(QAction *action) { const int id = action->data().toInt(); assert(id >= 1 && id <= 10); Bookmark *bm = bookmarks_[id - 1]; int collection = internalCollections_.toInternalId(bm->collection()); int level = bm->level(); if (collection < 0 || collection >= internalCollections_.collections()) return; LevelCollection *colPtr = internalCollections_[collection]; if (colPtr == nullptr) return; if (level < 0 || level >= colPtr->noOfLevels()) return; if (level > colPtr->completedLevels()) return; playFieldView_->setUpdatesEnabled(false); changeCollection(collection); playFieldView_->setUpdatesEnabled(true); playField_->goToBookmark(bookmarks_[id - 1]); } void MainWindow::changeCollection(int id) { collectionsAct_->setCurrentItem(id); delete externalCollection_; externalCollection_ = nullptr; playField_->changeCollection(internalCollections_[id]); } void MainWindow::loadLevels() { KSharedConfigPtr cfg = KSharedConfig::openConfig(); KConfigGroup settingsGroup(cfg, QStringLiteral("settings")); const QUrl lastFile = QUrl::fromLocalFile(settingsGroup.readPathEntry("lastLevelFile", QString())); QUrl result = QFileDialog::getOpenFileUrl(this, i18nc("@title:window", "Load Levels from a File"), lastFile, QStringLiteral("*")); if (result.isEmpty()) return; openURL(result); } void MainWindow::openURL(const QUrl &_url) { KSharedConfigPtr cfg = KSharedConfig::openConfig(); // int namepos = _url.path().findRev('/') + 1; // NOTE: findRev can return -1 // QString levelName = _url.path().mid(namepos); QString levelName = _url.fileName(); QString levelFile; QTemporaryFile f; if (_url.isLocalFile()) { levelFile = _url.toLocalFile(); } else { // levelFile = locateLocal("appdata", "levels/" + levelName); // download file into temporary one f.open(); KIO::FileCopyJob *job = KIO::file_copy(_url, QUrl::fromLocalFile(f.fileName()), -1, KIO::Overwrite); job->exec(); if (job->error()) { return; } levelFile = f.fileName(); } auto *tmpCollection = new LevelCollection(levelFile, levelName); if (tmpCollection->noOfLevels() < 1) { KMessageBox::error(this, i18n("No levels found in file")); delete tmpCollection; return; } if (_url.isLocalFile()) { KConfigGroup settingsGroup(cfg, QStringLiteral("settings")); settingsGroup.writePathEntry("lastLevelFile", _url.toLocalFile()); } delete externalCollection_; externalCollection_ = tmpCollection; playField_->changeCollection(externalCollection_); } QSize MainWindow::sizeHint() const { return KXmlGuiWindow::sizeHint().expandedTo(QSize(750, 562)); } void MainWindow::dragEnterEvent(QDragEnterEvent *event) { if (event->mimeData()->hasUrls()) { event->accept(); } else { event->ignore(); } } void MainWindow::dropEvent(QDropEvent *event) { QList urls = KUrlMimeData::urlsFromMimeData(event->mimeData()); if (!urls.isEmpty()) { // kdDebug() << "MainWindow:Handling QUriDrag..." << endl; if (urls.count() > 0) { const QUrl &url = urls.first(); openURL(url); } } } #include "moc_MainWindow.cpp" skladnik-0.5.1/src/MainWindow.h000066400000000000000000000026401457640636700163550ustar00rootroot00000000000000/* SPDX-FileCopyrightText: 1998 Anders Widell SPDX-License-Identifier: GPL-2.0-or-later */ #ifndef MAINWINDOW_H #define MAINWINDOW_H #include "Bookmark.h" #include "InternalCollections.h" #include #include class PlayFieldView; class PlayField; class LevelCollection; class KSelectAction; class QAction; class MainWindow : public KXmlGuiWindow { Q_OBJECT public: MainWindow(); ~MainWindow() override; public: void openURL(const QUrl &_url); public Q_SLOTS: void changeCollection(int id); void setBookmark(QAction *action); void goToBookmark(QAction *action); void loadLevels(); public: QSize sizeHint() const override; protected: void focusInEvent(QFocusEvent *) override; void dragEnterEvent(QDragEnterEvent *) override; void dropEvent(QDropEvent *) override; private: void updateBookmark(int num); void handleAnimSpeedSelected(QAction *action); void setupActions(); void createCollectionMenu(); private: InternalCollections internalCollections_; LevelCollection *externalCollection_ = nullptr; PlayField *playField_; Bookmark *bookmarks_[10]; PlayFieldView *playFieldView_; QAction *qa_slow; QAction *qa_medium; QAction *qa_fast; QAction *qa_off; QAction *setBM_act[10]; QAction *goToBM_act[10]; KSelectAction *collectionsAct_; }; #endif /* MAINWINDOW_H */ skladnik-0.5.1/src/Map.cpp000066400000000000000000000107751457640636700153610ustar00rootroot00000000000000/* SPDX-FileCopyrightText: 1998 Anders Widell SPDX-License-Identifier: GPL-2.0-or-later */ #include "Map.h" #include #include #include #include Map::Map() = default; void Map::map(int x, int y, int val) { assert(x >= 0 && x <= MAX_X && y >= 0 && y <= MAX_Y); if ((map(x, y) & (OBJECT | GOAL)) == OBJECT) objectsLeft_--; if ((val & (OBJECT | GOAL)) == OBJECT) objectsLeft_++; currentMap_[y + 1][x + 1] = val; if (val != 0) { if (width_ <= x) width_ = x + 1; if (height_ <= y) height_ = y + 1; } } void Map::setMap(int x, int y, int bits) { assert((map(x, y) & bits) == 0); if (goal(x, y) && ((bits & OBJECT) == OBJECT)) objectsLeft_--; assert(objectsLeft_ >= 0); currentMap_[y + 1][x + 1] |= bits; if (bits != 0) { if (width_ <= x) width_ = x + 1; if (height_ <= y) height_ = y + 1; } } void Map::clearMap(int x, int y, int bits) { assert((map(x, y) & bits) == bits); if (goal(x, y) && ((bits & OBJECT) == OBJECT)) objectsLeft_++; currentMap_[y + 1][x + 1] &= ~bits; } void Map::clearMap() { memset(currentMap_, 0, (MAX_Y + 3) * (MAX_X + 3) * sizeof(char)); objectsLeft_ = 0; width_ = height_ = 0; } bool Map::fillFloor(int x, int y) { if (badCoords(x, y)) return false; if ((currentMap_[y + 1][x + 1] & (WALL | FLOOR)) != 0) return true; currentMap_[y + 1][x + 1] |= FLOOR; bool a = fillFloor(x, y - 1); bool b = fillFloor(x, y + 1); bool c = fillFloor(x - 1, y); bool d = fillFloor(x + 1, y); return a && b && c && d; } bool Map::step(int _x, int _y) { assert(!badCoords(xpos_, ypos_)); assert(empty(xpos_, ypos_)); int xd = 0, yd = 0; if (_x < xpos_) xd = -1; if (_x > xpos_) xd = 1; if (_y < ypos_) yd = -1; if (_y > ypos_) yd = 1; if (badDelta(xd, yd) || badCoords(_x, _y)) return false; int x = xpos_, y = ypos_; do { x += xd; y += yd; if (!empty(x, y)) return false; } while (!(x == _x && y == _y)); xpos_ = _x; ypos_ = _y; return true; } bool Map::push(int _x, int _y) { assert(!badCoords(xpos_, ypos_)); assert(empty(xpos_, ypos_)); int xd = 0, yd = 0; if (_x < xpos_) xd = -1; if (_x > xpos_) xd = 1; if (_y < ypos_) yd = -1; if (_y > ypos_) yd = 1; if (badDelta(xd, yd) || badCoords(_x + xd, _y + yd)) return false; int x = xpos_ + xd, y = ypos_ + yd; if (!object(x, y)) return false; if (!empty(_x + xd, _y + yd)) return false; while (!(x == _x && y == _y)) { x += xd; y += yd; if (!empty(x, y)) return false; } clearMap(xpos_ + xd, ypos_ + yd, OBJECT); setMap(_x + xd, _y + yd, OBJECT); xpos_ = _x; ypos_ = _y; return true; } bool Map::unstep(int _x, int _y) { return Map::step(_x, _y); } bool Map::unpush(int _x, int _y) { assert(!badCoords(xpos_, ypos_)); assert(empty(xpos_, ypos_)); int xd = 0, yd = 0; if (_x < xpos_) xd = -1; if (_x > xpos_) xd = 1; if (_y < ypos_) yd = -1; if (_y > ypos_) yd = 1; if (badDelta(xd, yd) || badCoords(_x + xd, _y + yd)) return false; int x = xpos_, y = ypos_; if (!object(x - xd, y - yd)) return false; do { x += xd; y += yd; if (!empty(x, y)) return false; } while (!(x == _x && y == _y)); clearMap(xpos_ - xd, ypos_ - yd, OBJECT); setMap(_x - xd, _y - yd, OBJECT); xpos_ = _x; ypos_ = _y; return true; } void Map::printMap(void) { for (int y = 0; y < height_; y++) { for (int x = 0; x < width_; x++) { switch (map(x, y) & ~FLOOR) { case WALL: printf("#"); break; case GOAL: printf("%c", x == xpos_ && y == ypos_ ? '+' : '.'); break; case OBJECT: printf("$"); break; case OBJECT | GOAL: printf("*"); break; case 0: printf("%c", x == xpos_ && y == ypos_ ? '@' : ' '); break; default: printf("<%X>", map(x, y) & FLOOR); break; } } printf("\n"); } } skladnik-0.5.1/src/Map.h000066400000000000000000000066271457640636700150270ustar00rootroot00000000000000/* SPDX-FileCopyrightText: 1998 Anders Widell SPDX-License-Identifier: GPL-2.0-or-later */ #ifndef MAP_H #define MAP_H #include class Map { friend class LevelCollection; public: enum { WALL = 1, GOAL = 2, OBJECT = 4, FLOOR = 8, }; constexpr static int MAX_X = 49; constexpr static int MAX_Y = 49; public: Map(); public: bool completed() const { return objectsLeft_ <= 0; } bool step(int _x, int _y); bool push(int _x, int _y); bool unstep(int _x, int _y); bool unpush(int _x, int _y); static bool badCoords(int _x, int _y) { return _x < 0 || _y < 0 || _x > MAX_X || _y > MAX_Y; } static bool badDelta(int _xd, int _yd) { return (_xd != 0 && _yd != 0) || (_xd == 0 && _yd == 0); } int xpos() const { return xpos_; } int ypos() const { return ypos_; } void resetPos() { xpos_ = -1; ypos_ = -1; } void setPos(int x, int y) { xpos_ = x; ypos_ = y; } bool empty(int x, int y) const { assert(x >= 0 && x <= MAX_X && y >= 0 && y <= MAX_Y); return (currentMap_[y + 1][x + 1] & (WALL | OBJECT)) == 0; } bool wall(int x, int y) const { assert(x >= 0 && x <= MAX_X && y >= 0 && y <= MAX_Y); return (currentMap_[y + 1][x + 1] & WALL) != 0; } bool goal(int x, int y) const { assert(x >= 0 && x <= MAX_X && y >= 0 && y <= MAX_Y); return (currentMap_[y + 1][x + 1] & GOAL) != 0; } bool object(int x, int y) const { assert(x >= 0 && x <= MAX_X && y >= 0 && y <= MAX_Y); return (currentMap_[y + 1][x + 1] & OBJECT) != 0; } bool floor(int x, int y) const { assert(x >= 0 && x <= MAX_X && y >= 0 && y <= MAX_Y); return (currentMap_[y + 1][x + 1] & FLOOR) != 0; } bool wallUp(int x, int y) const { assert(x >= 0 && x <= MAX_X && y >= 0 && y <= MAX_Y); return (currentMap_[y][x + 1] & WALL) != 0; } bool wallDown(int x, int y) const { assert(x >= 0 && x <= MAX_X && y >= 0 && y <= MAX_Y); return (currentMap_[y + 2][x + 1] & WALL) != 0; } bool wallLeft(int x, int y) const { assert(x >= 0 && x <= MAX_X && y >= 0 && y <= MAX_Y); return (currentMap_[y + 1][x] & WALL) != 0; } bool wallRight(int x, int y) const { assert(x >= 0 && x <= MAX_X && y >= 0 && y <= MAX_Y); return (currentMap_[y + 1][x + 2] & WALL) != 0; } void printMap(); int width() const { return width_; } int height() const { return height_; } bool hasCoord(int _x, int _y) const { return _x >= 0 && _y >= 0 && _x < width_ && _y < height_; } protected: int map(int x, int y) const { assert(x >= 0 && x <= MAX_X && y >= 0 && y <= MAX_Y); return currentMap_[y + 1][x + 1]; } void map(int x, int y, int val); void setMap(int x, int y, int bits); void clearMap(int x, int y, int bits); void clearMap(); bool fillFloor(int x, int y); int objectsLeft() const { return objectsLeft_; } private: int xpos_ = -1; int ypos_ = -1; char currentMap_[MAX_Y + 3][MAX_X + 3]; int width_ = 0; int height_ = 0; int objectsLeft_ = -1; }; #endif /* MAP_H */ skladnik-0.5.1/src/Messages.sh000066400000000000000000000001141457640636700162250ustar00rootroot00000000000000#! /bin/sh $EXTRACTRC *.rc >> rc.cpp $XGETTEXT *.cpp -o $podir/skladnik.pot skladnik-0.5.1/src/Move.cpp000066400000000000000000000105141457640636700155410ustar00rootroot00000000000000/* SPDX-FileCopyrightText: 1998 Anders Widell SPDX-License-Identifier: GPL-2.0-or-later */ #include "Move.h" #include "LevelMap.h" #include #include #include Move::Move(int _startX, int _startY) { assert(_startX >= 0 && _startX <= Map::MAX_X && _startY >= 0 && _startY <= Map::MAX_Y); moves_ = new unsigned short[400]; moves_[0] = _startX | (_startY << 8); #ifndef NDEBUG lastX_ = _startX; lastY_ = _startY; #endif } Move::~Move() { delete[] moves_; } void Move::finish() { assert(!finished_); assert(moveIndex_ > 1); auto *newMoves = new unsigned short[moveIndex_]; memcpy(newMoves, moves_, moveIndex_ * sizeof(unsigned short)); delete[] moves_; moves_ = newMoves; finished_ = true; } void Move::save(QString &s) const { static const char move1[] = "lrud"; static const char push1[] = "LRUD"; static const char move2[] = "wens"; static const char push2[] = "WENS"; assert(finished_); int x = startX(); int y = startY(); int pos = 1; int x2, y2, dist = 0; int dir = -1; bool push = false; while (pos < moveIndex_) { if (dir >= 0) s += QLatin1Char(push ? push1[dir] : move1[dir]); x2 = moves_[pos] & 0x7f; y2 = (moves_[pos] >> 8) & 0x7f; push = (moves_[pos++] & 0x80) == 0x80; if (x2 < x) { dir = 0; dist = x - x2; } else if (x2 > x) { dir = 1; dist = x2 - x; } else if (y2 < y) { dir = 2; dist = y - y2; } else if (y2 > y) { dir = 3; dist = y2 - y; } else { assert(0); } assert(dist > 0); if (dist > 1) { if (dist >= 10) { s += QLatin1Char('0' + (dist / 10)); dist %= 10; } s += QLatin1Char('0' + dist); } x = x2; y = y2; } if (dir >= 0) s += QLatin1Char(push ? push2[dir] : move2[dir]); } const char *Move::load(const char *s) { assert(!finished_); int x = finalX(); int y = finalY(); int dist; bool last = false; char c; while ((c = *s++) != '\0') { dist = 1; if (c >= '0' && c <= '9') { dist = c - '0'; c = *s++; if (c >= '0' && c <= '9') { dist = 10 * dist + c - '0'; c = *s++; } } switch (tolower(c)) { case 'w': last = true; /* Fall through */ case 'l': x -= dist; break; case 'e': last = true; /* Fall through */ case 'r': x += dist; break; case 'n': last = true; /* Fall through */ case 'u': y -= dist; break; case 's': last = true; /* Fall through */ case 'd': y += dist; break; default: // printf ("2><>%s\n", s); // abort (); return nullptr; } if (x <= 0 || x >= Map::MAX_X || y <= 0 || y >= Map::MAX_Y) { // printf ("x: %d, y:%d ><>%s\n", x, y, s); // abort (); return nullptr; } if (isupper(c)) push(x, y); else step(x, y); if (last) break; } finish(); return s; } bool Move::redo(LevelMap *map) { assert(finished_); for (int pos = 1; pos < moveIndex_; pos++) { int x = moves_[pos] & 0x7f; int y = (moves_[pos] >> 8) & 0x7f; bool push = (moves_[pos] & 0x80) == 0x80; bool ret; if (push) ret = map->push(x, y); else ret = map->step(x, y); if (!ret) return false; } return true; } bool Move::undo(LevelMap *map) { assert(finished_); for (int pos = moveIndex_ - 2; pos >= 0; --pos) { int x = moves_[pos] & 0x7f; int y = (moves_[pos] >> 8) & 0x7f; bool push = (moves_[pos + 1] & 0x80) == 0x80; bool ret; if (push) ret = map->unpush(x, y); else ret = map->unstep(x, y); if (!ret) return false; } return true; } skladnik-0.5.1/src/Move.h000066400000000000000000000050561457640636700152130ustar00rootroot00000000000000/* SPDX-FileCopyrightText: 1998 Anders Widell SPDX-License-Identifier: GPL-2.0-or-later */ #ifndef MOVE_H #define MOVE_H #include "Map.h" #include #include class LevelMap; /** * Holds information about a move * * The move can consist of several atomic steps and pushes. An atomic * step/push is a step/push along a straight line. The reason why these are * grouped together in a Move object is that they belong to the same logical * move in the player's point of view. An undo/redo will undo/redo all the * atomic moves in one step. * * @short Maintains game movement move * @author Anders Widell * @version 0.1 * @see History */ class Move { friend class MoveSequence; public: Move(int _startX, int _startY); ~Move(); public: /** * Add an atomic move. * NOTE: either (x != (previous x)) or (y != (previous y)) * must be true (but not both). * * @see LevelMap#move * * @param x x position of destination * @param y y position of destination */ void step(int _x, int _y) { #ifndef NDEBUG assert(!finished_); assert(_x >= 0 && _x <= Map::MAX_X && _y >= 0 && _y <= Map::MAX_Y); assert(moveIndex_ < 400); assert((_x != lastX_ && _y == lastY_) || (_x == lastX_ && _y != lastY_)); lastX_ = _x; lastY_ = _y; #endif moves_[moveIndex_++] = _x | (_y << 8); } /** * Same as move above, but used when an object is pushed. * * @see LevelMap#push */ void push(int _x, int _y) { #ifndef NDEBUG assert(!finished_); assert(_x >= 0 && _x <= Map::MAX_X && _y >= 0 && _y <= Map::MAX_Y); assert(moveIndex_ < 400); assert((_x != lastX_ && _y == lastY_) || (_x == lastX_ && _y != lastY_)); lastX_ = _x; lastY_ = _y; #endif moves_[moveIndex_++] = _x | (_y << 8) | 0x80; } void finish(); int startX() const { return moves_[0] & 0x7f; } int startY() const { return (moves_[0] >> 8) & 0x7f; } int finalX() const { return moves_[moveIndex_ - 1] & 0x7f; } int finalY() const { return (moves_[moveIndex_ - 1] >> 8) & 0x7f; } void save(QString &_str) const; const char *load(const char *_str); bool redo(LevelMap *map); bool undo(LevelMap *map); private: unsigned short *moves_; int moveIndex_ = 1; bool finished_ = false; #ifndef NDEBUG int lastX_, lastY_; #endif }; #endif /* MOVE_H */ skladnik-0.5.1/src/MoveSequence.cpp000066400000000000000000000032151457640636700172320ustar00rootroot00000000000000/* SPDX-FileCopyrightText: 1998 Anders Widell SPDX-License-Identifier: GPL-2.0-or-later */ #include "MoveSequence.h" #include "LevelMap.h" #include "Move.h" MoveSequence::MoveSequence(Move *_move, LevelMap *_map, bool _undo) { assert(_move->finished_); move_ = _move; map_ = _map; undo_ = _undo; if (undo_) { pos_ = move_->moveIndex_ - 2; xDest_ = x_ = move_->moves_[move_->moveIndex_ - 1] & 0x7f; yDest_ = y_ = (move_->moves_[move_->moveIndex_ - 1] >> 8) & 0x7f; } else { pos_ = 1; xDest_ = x_ = move_->moves_[0] & 0x7f; yDest_ = y_ = (move_->moves_[0] >> 8) & 0x7f; } newStep(); } bool MoveSequence::newStep() { if (pos_ >= move_->moveIndex_ || pos_ < 0) return false; xDest_ = move_->moves_[pos_] & 0x7f; yDest_ = (move_->moves_[pos_] >> 8) & 0x7f; if (undo_) push_ = (move_->moves_[pos_ + 1] & 0x80) == 0x80; else push_ = (move_->moves_[pos_] & 0x80) == 0x80; xd_ = yd_ = 0; if (xDest_ < x_) xd_ = -1; if (xDest_ > x_) xd_ = 1; if (yDest_ < y_) yd_ = -1; if (yDest_ > y_) yd_ = 1; if (undo_) pos_--; else pos_++; return true; } bool MoveSequence::next() { if (x_ == xDest_ && y_ == yDest_ && !newStep()) return false; x_ += xd_; y_ += yd_; if (undo_) { if (push_) return map_->unpush(x_, y_); else return map_->unstep(x_, y_); } else { if (push_) return map_->push(x_, y_); else return map_->step(x_, y_); } } skladnik-0.5.1/src/MoveSequence.h000066400000000000000000000010701457640636700166740ustar00rootroot00000000000000/* SPDX-FileCopyrightText: 1998 Anders Widell SPDX-License-Identifier: GPL-2.0-or-later */ #ifndef MOVESEQUENCE_H #define MOVESEQUENCE_H #include class Move; class LevelMap; class MoveSequence { public: MoveSequence(Move *_move, LevelMap *_map, bool _undo = false); public: bool newStep(); bool next(); private: LevelMap *map_; Move *move_; int pos_; int x_; int xDest_; int y_; int yDest_; int xd_; int yd_; bool push_; bool undo_; }; #endif /* MOVESEQUENCE_H */ skladnik-0.5.1/src/PathFinder.cpp000066400000000000000000000072071457640636700166640ustar00rootroot00000000000000/* SPDX-FileCopyrightText: 1998 Anders Widell SPDX-License-Identifier: GPL-2.0-or-later */ #include "PathFinder.h" #include "LevelMap.h" #include "Move.h" #include "Queue.h" //#include static constexpr int PATH_WALL = 32767; void PathFinder::BFS(int _x, int _y) { Queue xq; Queue yq; Queue dq; int x, y, d; xq.enqueue(_x); yq.enqueue(_y); dq.enqueue(1); while (!xq.empty()) { x = xq.dequeue(); y = yq.dequeue(); d = dq.dequeue(); if (x < 0 || x > Map::MAX_X || y < 0 || y > Map::MAX_Y || dist[y][x]) continue; dist[y][x] = d; xq.enqueue(x); xq.enqueue(x); xq.enqueue(x - 1); xq.enqueue(x + 1); yq.enqueue(y - 1); yq.enqueue(y + 1); yq.enqueue(y); yq.enqueue(y); dq.enqueue(d + 1); dq.enqueue(d + 1); dq.enqueue(d + 1); dq.enqueue(d + 1); } } Move *PathFinder::search(const Map *_map, int _x, int _y) { int xpos = _map->xpos(); int ypos = _map->ypos(); if (xpos == _x && ypos == _y) return nullptr; for (int y = 0; y <= Map::MAX_Y; y++) { for (int x = 0; x <= Map::MAX_X; x++) { if (_map->empty(x, y)) dist[y][x] = 0; else dist[y][x] = PATH_WALL; } } BFS(_x, _y); #if 0 for (int y=0; y<=Map::MAX_Y; y++) { for (int x=0; x<=Map::MAX_X; x++) { //if (x==_x && y==_y) {printf ("++ "); continue;} //if (x==xpos && y==ypos) {printf ("@@ "); continue;} if (dist[y][x] == PATH_WALL) {printf ("## "); continue;} printf ("%02d ", dist[y][x]); } printf ("\n"); } #endif int d; auto *move = new Move(xpos, ypos); int oldX, oldY; for (;;) { oldX = xpos; oldY = ypos; if (xpos == _x && ypos == _y) { move->finish(); // printf ("move->finish ()\n"); return move; } d = dist[ypos][xpos]; while (ypos - 1 >= 0 && dist[ypos - 1][xpos] < d) { ypos--; d = dist[ypos][xpos]; } if (oldY != ypos) { move->step(xpos, ypos); // printf ("step (%d, %d)\n", xpos, ypos); continue; } while (ypos + 1 <= Map::MAX_Y && dist[ypos + 1][xpos] < d) { ypos++; d = dist[ypos][xpos]; } if (oldY != ypos) { move->step(xpos, ypos); // printf ("step (%d, %d)\n", xpos, ypos); continue; } while (xpos - 1 >= 0 && dist[ypos][xpos - 1] < d) { xpos--; d = dist[ypos][xpos]; } if (oldX != xpos) { move->step(xpos, ypos); // printf ("step (%d, %d)\n", xpos, ypos); continue; } while (xpos + 1 <= Map::MAX_X && dist[ypos][xpos + 1] < d) { xpos++; d = dist[ypos][xpos]; } if (oldX != xpos) { move->step(xpos, ypos); // printf ("step (%d, %d)\n", xpos, ypos); continue; } delete move; return nullptr; } } Move *PathFinder::drag(int /* x1 */, int /* y1 */, int /* x2 */, int /* y2 */) { return nullptr; } bool PathFinder::canDrag(int /* x */, int /* y */) const { return false; } bool PathFinder::canWalkTo(int /* x */, int /* y */) const { return false; } bool PathFinder::canDragTo(int /* x */, int /* y */) const { return false; } void PathFinder::updatePossibleMoves() { } void PathFinder::updatePossibleDestinations(int /* x */, int /* y */) { } skladnik-0.5.1/src/PathFinder.h000066400000000000000000000012011457640636700163150ustar00rootroot00000000000000/* SPDX-FileCopyrightText: 1998 Anders Widell SPDX-License-Identifier: GPL-2.0-or-later */ #ifndef PATHFINDER_H #define PATHFINDER_H #include "Map.h" class Move; class PathFinder { public: Move *search(const Map *_map, int _x, int _y); Move *drag(int x1, int y1, int x2, int y2); bool canDrag(int x, int y) const; bool canWalkTo(int x, int y) const; bool canDragTo(int x, int y) const; void updatePossibleMoves(); void updatePossibleDestinations(int x, int y); private: int dist[Map::MAX_Y + 1][Map::MAX_X + 1]; void BFS(int _x, int _y); }; #endif /* PATHFINDER_H */ skladnik-0.5.1/src/PlayField.cpp000066400000000000000000000451501457640636700165100ustar00rootroot00000000000000/* SPDX-FileCopyrightText: 1998 Anders Widell SPDX-License-Identifier: GPL-2.0-or-later */ #include "PlayField.h" #include "Bookmark.h" #include "GroundItem.h" #include "History.h" #include "HtmlPrinter.h" #include "LevelCollection.h" #include "LevelMap.h" #include "Move.h" #include "MoveSequence.h" #include "PathFinder.h" #include "PlayField.h" #include "SimpleTextItem.h" #if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) #include #else #include #endif #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include static constexpr int MESSAGE_TIMEOUT_MS = 4000; #if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) static KGameTheme* createClassicTheme() { auto *theme = new KGameTheme("themes/skladnik_classic.desktop"); #else static KgTheme* createClassicTheme() { auto *theme = new KgTheme("themes/skladnik_classic.desktop"); #endif theme->setGraphicsPath(QStandardPaths::locate(QStandardPaths::AppDataLocation, QStringLiteral("themes/skladnik_classic.svg"))); return theme; } PlayField::PlayField(QObject *parent) : QGraphicsScene(parent) , crossCursor(Qt::CrossCursor) , m_renderer(createClassicTheme()) , statusFont_(QFontDatabase::systemFont(QFontDatabase::GeneralFont).family(), 18, QFont::Bold) , statusMetrics_(statusFont_) { highlightX_ = highlightY_ = 0; KSharedConfigPtr cfg = KSharedConfig::openConfig(); KConfigGroup settingsGroup(cfg, QStringLiteral("settings")); animDelay_ = settingsGroup.readEntry("animDelay", QStringLiteral("2")).toInt(); if (animDelay_ < 0 || animDelay_ > 3) animDelay_ = 2; history_ = new History; levelMap_ = new LevelMap; m_mainWidget = new QGraphicsWidget(); addItem(m_mainWidget); auto *mainLayout = new QGraphicsLinearLayout(Qt::Vertical); mainLayout->setSpacing(0); m_mainWidget->setLayout(mainLayout); m_groundItem = new GroundItem(&levelMap_->map(), &m_renderer); mainLayout->addItem(m_groundItem); mainLayout->setStretchFactor(m_groundItem, 1); auto *bottomBarLayout = new QGraphicsLinearLayout(Qt::Horizontal); mainLayout->addItem(bottomBarLayout); m_collectionName = new SimpleTextItem(); m_collectionName->setBrush(QColor(0, 255, 0)); m_collectionName->setFont(statusFont_); bottomBarLayout->addItem(m_collectionName); bottomBarLayout->addStretch(); m_levelLabel = new SimpleTextItem(i18n("Level:")); m_levelLabel->setFont(statusFont_); m_levelLabel->setBrush(QColor(128, 128, 128)); m_levelNumber = new SimpleTextItem(); m_levelNumber->setFont(statusFont_); m_levelNumber->setBrush(QColor(255, 0, 0)); bottomBarLayout->addItem(m_levelLabel); bottomBarLayout->addItem(m_levelNumber); m_stepsLabel = new SimpleTextItem(i18n("Steps:")); m_stepsLabel->setFont(statusFont_); m_stepsLabel->setBrush(QColor(128, 128, 128)); m_stepsNumber = new SimpleTextItem(); m_stepsNumber->setFont(statusFont_); m_stepsNumber->setBrush(QColor(255, 0, 0)); bottomBarLayout->addItem(m_stepsLabel); bottomBarLayout->addItem(m_stepsNumber); m_pushesLabel = new SimpleTextItem(i18n("Pushes:")); m_pushesLabel->setFont(statusFont_); m_pushesLabel->setBrush(QColor(128, 128, 128)); m_pushesNumber = new SimpleTextItem(); m_pushesNumber->setFont(statusFont_); m_pushesNumber->setBrush(QColor(255, 0, 0)); bottomBarLayout->addItem(m_pushesLabel); bottomBarLayout->addItem(m_pushesNumber); levelChange(); m_messageItem = new KGamePopupItem(); m_messageItem->setMessageTimeout(MESSAGE_TIMEOUT_MS); addItem(m_messageItem); updateBackground(); } PlayField::~PlayField() { KSharedConfigPtr cfg = KSharedConfig::openConfig(); KConfigGroup settingsGroup(cfg, QStringLiteral("settings")); settingsGroup.writeEntry("animDelay", QStringLiteral("%1").arg(animDelay_)); delete history_; delete levelMap_; } void PlayField::updateBackground() { const QString backgroundId = QStringLiteral("background"); const QSize backgroundSize = m_renderer.boundsOnSprite(backgroundId).size().toSize(); setBackgroundBrush(m_renderer.spritePixmap(backgroundId, backgroundSize)); // setBackgroundBrush(m_renderer.spritePixmap(backgroundId, sceneRect().size())); } void PlayField::showMessage(const QString &message) { // enforce emission of any hidden signal m_messageItem->forceHide(KGamePopupItem::InstantHide); if (m_messageHiddenConnecttion) { QObject::disconnect(m_messageHiddenConnecttion); } m_messageHiddenConnecttion = QMetaObject::Connection(); m_messageItem->showMessage(message, KGamePopupItem::Center, KGamePopupItem::ReplacePrevious); } void PlayField::changeCursor(const QCursor *c) { if (cursor_ == c) return; cursor_ = c; #if 0 if (c == nullptr) unsetCursor(); else setCursor(*c); #endif } int PlayField::level() const { if (levelMap_ == nullptr) return 0; return levelMap_->level(); } const QString &PlayField::collectionName() const { static QString error = QStringLiteral("????"); if (levelMap_ == nullptr) return error; return levelMap_->collectionName(); } int PlayField::totalMoves() const { if (levelMap_ == nullptr) return 0; return levelMap_->totalMoves(); } int PlayField::totalPushes() const { if (levelMap_ == nullptr) return 0; return levelMap_->totalPushes(); } void PlayField::levelChange() { stopMoving(); stopDrag(); history_->clear(); m_levelNumber->setText(QString::asprintf("%05d", level() + 1)); updateStepsDisplay(); updatePushesDisplay(); m_groundItem->updateSquares(); highlight(); } void PlayField::mouseMoveEvent(QGraphicsSceneMouseEvent *e) { lastMouseXPos_ = e->scenePos().x(); lastMouseYPos_ = e->scenePos().y(); if (!dragInProgress_) return highlight(); int old_x = dragX_, old_y = dragY_; dragX_ = lastMouseXPos_ - mousePosX_; dragY_ = lastMouseYPos_ - mousePosY_; const int suqareSize = m_groundItem->squareSize(); { // TODO: this logic seems broken, dragx/Y is relative const QPoint square = m_groundItem->squareFromScene({dragX_ + suqareSize / 2, dragY_ + suqareSize / 2}); int x = square.x(); int y = square.y(); if (levelMap_->map().hasCoord(x, y) && pathFinder_.canDragTo(x, y)) { const QPointF dragScenePos = m_groundItem->squareToScene({x, y}); const qreal dragX = dragScenePos.x(); const qreal dragY = dragScenePos.y(); if (dragX_ >= dragX - suqareSize / 4 && dragX_ < dragX + suqareSize / 4 && dragY_ >= dragY - suqareSize / 4 && dragY_ < dragY + suqareSize / 4) { dragX_ = dragX; dragY_ = dragY; } } } if (dragX_ == old_x && dragY_ == old_y) return; update(); } void PlayField::highlight() { // FIXME: the line below should not be needed if (m_groundItem->squareSize() == 0) return; const QPoint square = m_groundItem->squareFromScene({lastMouseXPos_, lastMouseYPos_}); const int x = square.x(); const int y = square.y(); if (!levelMap_->map().hasCoord(x, y)) return; if (x == highlightX_ && y == highlightY_) return; if (pathFinder_.canDrag(x, y)) { highlightX_ = x; highlightY_ = y; update(); } else { if (pathFinder_.canWalkTo(x, y)) changeCursor(&crossCursor); else changeCursor(nullptr); if (highlightX_ >= 0) { update(); } } } void PlayField::stopMoving() { killTimers(); delete moveSequence_; moveSequence_ = nullptr; moveInProgress_ = false; updateStepsDisplay(); updatePushesDisplay(); update(); pathFinder_.updatePossibleMoves(); } void PlayField::startMoving(Move *m) { startMoving(new MoveSequence(m, levelMap_)); } void PlayField::startMoving(MoveSequence *ms) { static const int delay[4] = {0, 15, 35, 60}; assert(moveSequence_ == nullptr && !moveInProgress_); moveSequence_ = ms; moveInProgress_ = true; if (animDelay_) timers.append(startTimer(delay[animDelay_])); timerEvent(nullptr); } void PlayField::timerEvent(QTimerEvent *) { assert(moveInProgress_); if (moveSequence_ == nullptr) { killTimers(); moveInProgress_ = false; return; } bool more = false; if (animDelay_) more = moveSequence_->next(); else { while (moveSequence_->next()) if (levelMap_->completed()) break; more = true; // FIXME: clean this up stopMoving(); } if (more) { update(); if (levelMap_->completed()) { stopMoving(); showMessage(i18n("Level completed"), this, &PlayField::nextLevel); return; } } else stopMoving(); } void PlayField::step(int _x, int _y) { if (!canMoveNow()) return; int oldX = levelMap_->xpos(); int oldY = levelMap_->ypos(); int x = oldX, y = oldY; int dx = 0, dy = 0; if (_x > oldX) dx = 1; if (_x < oldX) dx = -1; if (_y > oldY) dy = 1; if (_y < oldY) dy = -1; while (!(x == _x && y == _y) && levelMap_->step(x + dx, y + dy)) { x += dx; y += dy; } if (x != oldX || y != oldY) { auto *m = new Move(oldX, oldY); m->step(x, y); m->finish(); history_->add(m); m->undo(levelMap_); startMoving(m); } } void PlayField::push(int _x, int _y) { if (!canMoveNow()) return; int oldX = levelMap_->xpos(); int oldY = levelMap_->ypos(); int x = oldX, y = oldY; int dx = 0, dy = 0; if (_x > oldX) dx = 1; if (_x < oldX) dx = -1; if (_y > oldY) dy = 1; if (_y < oldY) dy = -1; while (!(x == _x && y == _y) && levelMap_->step(x + dx, y + dy)) { x += dx; y += dy; } int objX = x, objY = y; while (!(x == _x && y == _y) && levelMap_->push(x + dx, y + dy)) { x += dx; y += dy; } if (x != oldX || y != oldY) { auto *m = new Move(oldX, oldY); if (objX != oldX || objY != oldY) m->step(objX, objY); if (objX != x || objY != y) { m->push(x, y); objX += dx; objY += dy; } m->finish(); history_->add(m); m->undo(levelMap_); startMoving(m); } } void PlayField::keyPressEvent(QKeyEvent *e) { int x = levelMap_->xpos(); int y = levelMap_->ypos(); switch (e->key()) { case Qt::Key_Up: if (e->modifiers() & Qt::ControlModifier) step(x, 0); else if (e->modifiers() & Qt::ShiftModifier) push(x, 0); else push(x, y - 1); break; case Qt::Key_Down: if (e->modifiers() & Qt::ControlModifier) step(x, Map::MAX_Y); else if (e->modifiers() & Qt::ShiftModifier) push(x, Map::MAX_Y); else push(x, y + 1); break; case Qt::Key_Left: if (e->modifiers() & Qt::ControlModifier) step(0, y); else if (e->modifiers() & Qt::ShiftModifier) push(0, y); else push(x - 1, y); break; case Qt::Key_Right: if (e->modifiers() & Qt::ControlModifier) step(Map::MAX_X, y); else if (e->modifiers() & Qt::ShiftModifier) push(Map::MAX_X, y); else push(x + 1, y); break; case Qt::Key_Q: qApp->quit(); break; case Qt::Key_Backspace: case Qt::Key_Delete: if (e->modifiers() & Qt::ControlModifier) redo(); else undo(); break; #if 0 case Qt::Key_X: levelMap_->random(); levelChange(); repaint(false); break; case Qt::Key_R: level(levelMap_->level()); return; break; case Qt::Key_N: nextLevel(); return; break; case Qt::Key_P: previousLevel(); return; break; case Qt::Key_U: undo(); return; break; case Qt::Key_I: history_->redo(levelMap_); repaint(false); return; break; case Qt::Key_S: { QString buf; history_->save(buf); printf("%s\n", (char *) buf); } return; break; case Qt::Key_L: stopMoving(); history_->clear(); level(levelMap_->level()); { char buf[4096]="r1*D1*D1*r1*@r1*D1*"; //scanf("%s", buf); history_->load(levelMap_, buf); } updateStepsDisplay(); updatePushesDisplay(); repaint(false); return; break; #endif case Qt::Key_Print: HtmlPrinter::printHtml(&levelMap_->map()); break; default: e->ignore(); return; } } void PlayField::stopDrag() { if (!dragInProgress_) return; changeCursor(nullptr); update(); dragInProgress_ = false; } void PlayField::dragObject(int xpixel, int ypixel) { const int squareSize = m_groundItem->squareSize(); const QPoint square = m_groundItem->squareFromScene({xpixel - mousePosX_ + squareSize / 2, ypixel - mousePosY_ + squareSize / 2}); const int x = square.x(); const int y = square.y(); if (x == highlightX_ && y == highlightY_) return; printf("drag %d,%d to %d,%d\n", highlightX_, highlightY_, x, y); pathFinder_.drag(highlightX_, highlightY_, x, y); stopDrag(); } void PlayField::mousePressEvent(QGraphicsSceneMouseEvent *e) { if (!canMoveNow()) return; if (dragInProgress_) { if (e->button() == Qt::LeftButton) dragObject(e->scenePos().x(), e->scenePos().y()); else stopDrag(); return; } const QPoint square = m_groundItem->squareFromScene(e->scenePos()); const int x = square.x(); const int y = square.y(); if (!levelMap_->map().hasCoord(x, y)) return; if (e->button() == Qt::LeftButton && pathFinder_.canDrag(x, y)) { update(); highlightX_ = x; highlightY_ = y; pathFinder_.updatePossibleDestinations(x, y); const QPointF dragScenePos = m_groundItem->squareToScene({x, y}); dragX_ = dragScenePos.x(); dragY_ = dragScenePos.y(); mousePosX_ = e->scenePos().x() - dragX_; mousePosY_ = e->scenePos().y() - dragY_; dragInProgress_ = true; } Move *m; switch (e->button()) { case Qt::LeftButton: m = pathFinder_.search(&levelMap_->map(), x, y); if (m != nullptr) { history_->add(m); startMoving(m); } break; case Qt::MiddleButton: undo(); return; break; case Qt::RightButton: push(x, y); break; default: return; } } void PlayField::wheelEvent(QGraphicsSceneWheelEvent *e) { wheelDelta_ += e->delta(); if (wheelDelta_ >= 120) { wheelDelta_ %= 120; redo(); } else if (wheelDelta_ <= -120) { wheelDelta_ = -(-wheelDelta_ % 120); undo(); } } void PlayField::mouseReleaseEvent(QGraphicsSceneMouseEvent *e) { if (dragInProgress_) dragObject(e->scenePos().x(), e->scenePos().y()); } #if 0 void PlayField::leaveEvent(QEvent *) { TODO: no leaveEvent for scene, so disabled for now. but does this make sense at all? stopDrag(); } #endif void PlayField::setSize(int w, int h) { setSceneRect(0, 0, w, h); m_mainWidget->setGeometry(0, 0, w, h); updateBackground(); } void PlayField::nextLevel() { if (levelMap_->level() + 1 >= levelMap_->noOfLevels()) { showMessage(i18n("\ This is the last level in\n\ the current collection.")); return; } if (levelMap_->level() >= levelMap_->completedLevels()) { showMessage(i18n("\ You have not completed\n\ this level yet.")); return; } level(levelMap_->level() + 1); levelChange(); update(); } void PlayField::previousLevel() { if (levelMap_->level() <= 0) { showMessage(i18n("\ This is the first level in\n\ the current collection.")); return; } level(levelMap_->level() - 1); levelChange(); update(); } void PlayField::undo() { if (!canMoveNow()) return; startMoving(history_->deferUndo(levelMap_)); } void PlayField::redo() { if (!canMoveNow()) return; startMoving(history_->deferRedo(levelMap_)); } void PlayField::restartLevel() { stopMoving(); history_->clear(); level(levelMap_->level()); updateStepsDisplay(); updatePushesDisplay(); update(); } void PlayField::changeCollection(LevelCollection *collection) { if (levelMap_->collection() == collection) return; levelMap_->changeCollection(collection); m_collectionName->setText(collectionName()); levelChange(); update(); } void PlayField::updateStepsDisplay() { m_stepsNumber->setText(QString::asprintf("%05d", totalMoves())); } void PlayField::updatePushesDisplay() { m_pushesNumber->setText(QString::asprintf("%05d", totalPushes())); } void PlayField::changeAnim(int num) { assert(num >= 0 && num <= 3); animDelay_ = num; } // FIXME: clean up bookmark stuff // static const int bookmark_id[] = { // 0, 1, 8, 2, 9, 3, 5, 6, 7, 4 // }; void PlayField::setBookmark(Bookmark *bm) { if (!levelMap_->goodLevel()) return; if (collection()->id() < 0) { KMessageBox::error(nullptr, i18n("Sorry, bookmarks for external levels\n" "is not implemented yet.")); return; } bm->set(collection()->id(), levelMap_->level(), levelMap_->totalMoves(), history_); } void PlayField::goToBookmark(Bookmark *bm) { level(bm->level()); levelChange(); if (!bm->goTo(levelMap_, history_)) fprintf(stderr, "Warning: bad bookmark\n"); updateStepsDisplay(); updatePushesDisplay(); update(); } bool PlayField::canMoveNow() { if (moveInProgress_) return false; if (!levelMap_->goodLevel()) { showMessage(i18n("This level is broken")); return false; } return true; } void PlayField::killTimers() { for (int timerId : std::as_const(timers)) { killTimer(timerId); } timers.clear(); } #include "moc_PlayField.cpp" skladnik-0.5.1/src/PlayField.h000066400000000000000000000074471457640636700161640ustar00rootroot00000000000000/* SPDX-FileCopyrightText: 1998 Anders Widell SPDX-License-Identifier: GPL-2.0-or-later */ #ifndef PLAYFIELD_H #define PLAYFIELD_H #include "LevelMap.h" #include "PathFinder.h" #include #include #include #include #include #include class MoveSequence; class Move; class LevelMap; class History; class Bookmark; class LevelCollection; class GroundItem; class SimpleTextItem; class KGamePopupItem; class QGraphicsWidget; class PlayField : public QGraphicsScene { Q_OBJECT public: explicit PlayField(QObject *parent); ~PlayField() override; public: int animDelay() const { return animDelay_; } void setBookmark(Bookmark *bm); void goToBookmark(Bookmark *bm); void changeAnim(int num); void changeCollection(LevelCollection *collection); void setSize(int w, int h); void showMessage(const QString &message); template inline typename std::enable_if::value, void>::type showMessage(const QString &message, const Receiver *recvr, Func slot) { // enforce emission of any hidden signal m_messageItem->forceHide(KGamePopupItem::InstantHide); if (m_messageHiddenConnecttion) { QObject::disconnect(m_messageHiddenConnecttion); } m_messageHiddenConnecttion = connect(m_messageItem, &KGamePopupItem::hidden, recvr, slot); m_messageItem->showMessage(message, KGamePopupItem::Center, KGamePopupItem::ReplacePrevious); } public Q_SLOTS: void nextLevel(); void previousLevel(); void undo(); void redo(); void restartLevel(); protected: void keyPressEvent(QKeyEvent *) override; void mouseMoveEvent(QGraphicsSceneMouseEvent *e) override; void mousePressEvent(QGraphicsSceneMouseEvent *) override; void mouseReleaseEvent(QGraphicsSceneMouseEvent *) override; void wheelEvent(QGraphicsSceneWheelEvent *) override; void timerEvent(QTimerEvent *) override; private: void updateBackground(); bool canMoveNow(); void level(int _l) { levelMap_->level(_l); } LevelCollection *collection() const { return levelMap_->collection(); } int level() const; const QString &collectionName() const; int totalMoves() const; int totalPushes() const; void updateStepsDisplay(); void updatePushesDisplay(); void levelChange(); void step(int _x, int _y); void push(int _x, int _y); void stopDrag(); void dragObject(int xpixel, int ypixel); void highlight(); void changeCursor(const QCursor *c); void startMoving(Move *m); void startMoving(MoveSequence *ms); void stopMoving(); void killTimers(); private: LevelMap *levelMap_; History *history_; MoveSequence *moveSequence_ = nullptr; bool moveInProgress_ = false; bool dragInProgress_ = false; PathFinder pathFinder_; int animDelay_; const QCursor *cursor_; int highlightX_; int highlightY_; qreal dragX_; qreal dragY_; qreal lastMouseXPos_; qreal lastMouseYPos_; qreal mousePosX_; qreal mousePosY_; int wheelDelta_ = 0; QList timers; QCursor crossCursor; KGamePopupItem *m_messageItem; KGameRenderer m_renderer; QGraphicsWidget *m_mainWidget; GroundItem *m_groundItem; SimpleTextItem *m_collectionName; SimpleTextItem *m_levelLabel; SimpleTextItem *m_levelNumber; SimpleTextItem *m_stepsLabel; SimpleTextItem *m_stepsNumber; SimpleTextItem *m_pushesLabel; SimpleTextItem *m_pushesNumber; QFont statusFont_; QFontMetrics statusMetrics_; QMetaObject::Connection m_messageHiddenConnecttion; }; #endif /* PLAYFIELD_H */ skladnik-0.5.1/src/PlayFieldView.cpp000066400000000000000000000017511457640636700173420ustar00rootroot00000000000000/* SPDX-FileCopyrightText: 2022 Friedrich W. H. Kossebau SPDX-License-Identifier: GPL-2.0-or-later */ #include "PlayFieldView.h" #include "PlayField.h" #include PlayFieldView::PlayFieldView(PlayField *playField, QWidget *parent) : QGraphicsView(playField, parent) , m_playField(playField) { setFocusPolicy(Qt::StrongFocus); setFocus(); setMouseTracking(true); setVerticalScrollBarPolicy( Qt::ScrollBarAlwaysOff ); setHorizontalScrollBarPolicy( Qt::ScrollBarAlwaysOff ); setFrameStyle(QFrame::NoFrame); // diable for now while everything is drawn on the background // setCacheMode(QGraphicsView::CacheBackground); setOptimizationFlags(QGraphicsView::DontSavePainterState | QGraphicsView::DontAdjustForAntialiasing ); } PlayFieldView::~PlayFieldView() { } void PlayFieldView::resizeEvent(QResizeEvent *e) { m_playField->setSize(e->size().width(), e->size().height()); } #include "moc_PlayFieldView.cpp" skladnik-0.5.1/src/PlayFieldView.h000066400000000000000000000007701457640636700170070ustar00rootroot00000000000000/* SPDX-FileCopyrightText: 2022 Friedrich W. H. Kossebau SPDX-License-Identifier: GPL-2.0-or-later */ #ifndef PLAYFIELDVIEW_H #define PLAYFIELDVIEW_H #include class PlayField; class PlayFieldView : public QGraphicsView { Q_OBJECT public: explicit PlayFieldView(PlayField *playField, QWidget *parent); ~PlayFieldView() override; protected: void resizeEvent(QResizeEvent *e) override; private: PlayField *const m_playField; }; #endif skladnik-0.5.1/src/Queue.h000066400000000000000000000017351457640636700153710ustar00rootroot00000000000000/* SPDX-FileCopyrightText: 1998 Anders Widell SPDX-License-Identifier: GPL-2.0-or-later */ #ifndef QUEUE_H #define QUEUE_H #include template class Queue { public: Queue() { queue_ = new Type[1l << SizePow2]; clear(); } ~Queue() { delete[] queue_; } public: void clear() { head_ = tail_ = 0; } bool empty() const { return head_ == tail_; } bool full() const { return ((tail_ + 1) & ((1l << SizePow2) - 1)) == head_; } void enqueue(Type _x) { assert(!full()); queue_[tail_] = _x; tail_ = (tail_ + 1) & ((1l << SizePow2) - 1); } Type dequeue() { assert(!empty()); Type x = queue_[head_]; head_ = (head_ + 1) & ((1l << SizePow2) - 1); return x; } private: Type *queue_; long head_; long tail_; }; #endif /* QUEUE_H */ skladnik-0.5.1/src/SimpleTextItem.cpp000066400000000000000000000015661457640636700175570ustar00rootroot00000000000000/* SPDX-FileCopyrightText: 2023 Friedrich W. H. Kossebau SPDX-License-Identifier: GPL-2.0-or-later */ #include "SimpleTextItem.h" SimpleTextItem::SimpleTextItem(QGraphicsItem *parent) : QGraphicsSimpleTextItem(parent) { setGraphicsItem(this); } SimpleTextItem::SimpleTextItem(const QString &text, QGraphicsItem *parent) : QGraphicsSimpleTextItem(text, parent) { setGraphicsItem(this); } void SimpleTextItem::setGeometry(const QRectF &geom) { prepareGeometryChange(); QGraphicsLayoutItem::setGeometry(geom); setPos(geom.topLeft()); } QSizeF SimpleTextItem::sizeHint(Qt::SizeHint which, const QSizeF &constraint) const { Q_UNUSED(which); Q_UNUSED(constraint); switch (which) { case Qt::MinimumSize: return QSizeF(); default: // case Qt::PreferredSize return boundingRect().size(); }; } skladnik-0.5.1/src/SimpleTextItem.h000066400000000000000000000012451457640636700172160ustar00rootroot00000000000000/* SPDX-FileCopyrightText: 2023 Friedrich W. H. Kossebau SPDX-License-Identifier: GPL-2.0-or-later */ #ifndef SIMPLETEXTITEM_H #define SIMPLETEXTITEM_H #include #include class SimpleTextItem : public QGraphicsLayoutItem, public QGraphicsSimpleTextItem { public: explicit SimpleTextItem(QGraphicsItem *parent = nullptr); explicit SimpleTextItem(const QString &text, QGraphicsItem *parent = nullptr); public: // QGraphicsLayoutItem API void setGeometry(const QRectF &geom) override; QSizeF sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const override; }; #endif skladnik-0.5.1/src/StoneIndex.cpp000066400000000000000000000040141457640636700167110ustar00rootroot00000000000000/* SPDX-FileCopyrightText: 1998 Anders Widell SPDX-FileCopyrightText: 2022 Friedrich W. H. Kossebau SPDX-License-Identifier: GPL-2.0-or-later */ #include "StoneIndex.h" #include #include StoneIndex::StoneIndex() = default; void StoneIndex::setStoneCount(int largeStoneCount, int smallStoneCount) { if ((m_largeStoneCount == largeStoneCount) && (m_smallStoneCount == smallStoneCount)) { return; } m_largeStoneCount = largeStoneCount; m_smallStoneCount = smallStoneCount; // reset data m_indexSize = 0; m_upperLargeIndex.clear(); m_lowerLargeIndex.clear(); m_leftSmallIndex.clear(); m_rightSmallIndex.clear(); } void StoneIndex::expandIndex(int size) const { size++; assert(size < 2500); m_upperLargeIndex.resize(size); m_lowerLargeIndex.resize(size); m_leftSmallIndex.resize(size); m_leftSmallIndex.resize(size); QRandomGenerator *random = QRandomGenerator::global(); for (int i = m_indexSize; i < size; i++) { m_upperLargeIndex[i] = random->bounded(m_largeStoneCount); m_lowerLargeIndex[i] = random->bounded(m_largeStoneCount); m_leftSmallIndex[i] = random->bounded(m_smallStoneCount); m_leftSmallIndex[i] = random->bounded(m_smallStoneCount); } m_indexSize = size; } int StoneIndex::upperLarge(int index) const { assert(index >= 0); if (m_indexSize <= index) expandIndex(index); return m_upperLargeIndex[index]; } int StoneIndex::lowerLarge(int index) const { assert(index >= 0); if (m_indexSize <= index) expandIndex(index); return m_lowerLargeIndex[index]; } int StoneIndex::leftSmall(int index) const { assert(index >= 0); if (m_indexSize <= index) expandIndex(index); return m_leftSmallIndex[index]; } int StoneIndex::rightSmall(int index) const { assert(index >= 0); if (m_indexSize <= index) expandIndex(index); return m_leftSmallIndex[index]; } skladnik-0.5.1/src/StoneIndex.h000066400000000000000000000015571457640636700163670ustar00rootroot00000000000000/* SPDX-FileCopyrightText: 1998 Anders Widell SPDX-FileCopyrightText: 2022 Friedrich W. H. Kossebau SPDX-License-Identifier: GPL-2.0-or-later */ #ifndef STONEINDEX_H #define STONEINDEX_H #include class StoneIndex { public: StoneIndex(); public: void setStoneCount(int largeStoneCount, int smallStoneCount); int upperLarge(int index) const; int lowerLarge(int index) const; int leftSmall(int index) const; int rightSmall(int index) const; private: void expandIndex(int size) const; private: int m_largeStoneCount = 0; int m_smallStoneCount = 0; mutable int m_indexSize = 0; mutable QVector m_upperLargeIndex; mutable QVector m_lowerLargeIndex; mutable QVector m_leftSmallIndex; mutable QVector m_rightSmallIndex; }; #endif skladnik-0.5.1/src/images/000077500000000000000000000000001457640636700153735ustar00rootroot00000000000000skladnik-0.5.1/src/images/CMakeLists.txt000066400000000000000000000071521457640636700201400ustar00rootroot00000000000000# SPDX-FileCopyrightText: 2022 Friedrich W. H. Kossebau # # SPDX-License-Identifier: BSD-3-Clause find_package(POVRay) set_package_properties(POVRay PROPERTIES TYPE OPTIONAL PURPOSE "For rendering the games PNG images" ) if(NOT POVRay_FOUND) return() endif() function(add_rendered_png output) cmake_parse_arguments(ARGS "" "SOURCE;WORKING_DIRECTORY;RESOLUTION" "DEPENDS" ${ARGN}) if (NOT ARGS_SOURCE) message(FATAL_ERROR "SOURCE argument missing") endif() if (NOT ARGS_RESOLUTION) set(resolution "+W192" "+H192") elseif (ARGS_RESOLUTION STREQUAL "STONE") set(resolution "+W192" "+H96") elseif (ARGS_RESOLUTION STREQUAL "HALFSTONE") set(resolution "+W96" "+H96") else() message(FATAL_ERROR "Unknown RESOLUTION value: ${ARGS_RESOLUTION}") endif() # no antialias #set(antialias) # normal antialias #set(antialias "Antialias=on") # slow antialias set(antialias "Antialias=on" "Antialias_Threshold=0.0" "Antialias_Depth=9") # used version assumed by the creation date of the files set(versionhint "+MV3.0") set(_workdir_arg) if(ARGS_WORKING_DIRECTORY) set(_workdir_arg "WORKING_DIRECTORY" ${ARGS_WORKING_DIRECTORY}) endif() if(NOT IS_ABSOLUTE output) string(PREPEND output "${CMAKE_CURRENT_SOURCE_DIR}/") endif() set(source ${ARGS_SOURCE}) if(NOT IS_ABSOLUTE source) string(PREPEND source "${CMAKE_CURRENT_SOURCE_DIR}/") endif() get_filename_component(include ${source} DIRECTORY) set(depends) foreach(d ${ARGS_DEPENDS}) if(NOT IS_ABSOLUTE d) string(PREPEND d "${CMAKE_CURRENT_SOURCE_DIR}/") endif() list(APPEND depends ${d}) endforeach() # redirect all logging to file (openSUSE POV-Ray 3.7.0.10.unofficial fails to disable console though) get_filename_component(logbasename ${output} NAME) set(logredirect "-GA${logbasename}.log") add_custom_command(OUTPUT ${output} COMMENT "Generating ${output}" ${_workdir_arg} COMMAND POVRay::POVRay ${antialias} ${versionhint} ${resolution} ${logredirect} +I${source} +L${include} +O${output} VERBATIM MAIN_DEPENDENCY ${sources} DEPENDS ${depends} ) endfunction() add_rendered_png(treasure.png SOURCE treasure.pov DEPENDS goal.pov floor_common.inc) add_rendered_png(object.png SOURCE object.pov DEPENDS floor_common.inc) add_rendered_png(goal.png SOURCE goal.pov DEPENDS floor_common.inc) add_rendered_png(man.png SOURCE man.pov DEPENDS man_common.inc floor_common.inc) add_rendered_png(saveman.png SOURCE saveman.pov DEPENDS man_common.inc goal.pov floor_common.inc) add_rendered_png(halfstone_1.png SOURCE halfstone_1.pov DEPENDS stone_common.inc RESOLUTION HALFSTONE) add_rendered_png(halfstone_2.png SOURCE halfstone_2.pov DEPENDS stone_common.inc RESOLUTION HALFSTONE) add_rendered_png(halfstone_3.png SOURCE halfstone_3.pov DEPENDS stone_common.inc RESOLUTION HALFSTONE) add_rendered_png(halfstone_4.png SOURCE halfstone_4.pov DEPENDS stone_common.inc RESOLUTION HALFSTONE) add_rendered_png(stone_1.png SOURCE stone_1.pov DEPENDS stone_common.inc RESOLUTION STONE) add_rendered_png(stone_2.png SOURCE stone_2.pov DEPENDS stone_common.inc RESOLUTION STONE) add_rendered_png(stone_3.png SOURCE stone_3.pov DEPENDS stone_common.inc RESOLUTION STONE) add_rendered_png(stone_4.png SOURCE stone_4.pov DEPENDS stone_common.inc RESOLUTION STONE) add_rendered_png(stone_5.png SOURCE stone_5.pov DEPENDS stone_common.inc RESOLUTION STONE) add_rendered_png(stone_6.png SOURCE stone_6.pov DEPENDS stone_common.inc RESOLUTION STONE) skladnik-0.5.1/src/images/floor_common.inc000066400000000000000000000007041457640636700205600ustar00rootroot00000000000000// Pov-ray image source for Skladnik // SPDX-FileCopyrightText: 1998-1999 Anders Widell #declare FloorColour = <114/255, 114/255, 114/255>; camera { orthographic location <0, 0, -50> look_at <0, 0, 0> right <1, 0, 0> up <0, 1, 0> } light_source { <-5000, 10000, -10000> color rgb <1, 1, 1> } light_source { <-5000, 10000, -10000> color rgb <1, 1, 1> } plane { -z, -2 pigment { color rgb FloorColour } } skladnik-0.5.1/src/images/goal.png000066400000000000000000000455421457640636700170350ustar00rootroot00000000000000PNG  IHDRݾPgAMA asRGBsBITO oFFs*tIME,sV$tEXtSoftwarePOV-Ray 3.7.0.10.unofficialqtY[tEXtCommentRender Date: 2022-08-22 18:05:04Z Platform: x86_64-suse-linux-gnu Compiler: g++ 12 z_ IDATx[$Wzy{uUna193C+J;hml˰ Æa0X`Ž?y4#Xd 44CΈd7}%22#'ɈȬꮪ\mvRj5um&"RJ)e$qGQE`00^nwvv$Y]]74I_7)#Gx%Ϣ=70~6\gz@T$#gўt(mI_ʞ?1L܅=!Lf܅=!&ٰ= +*sUH|Сy Y.y.<ڞt\N.yh{Уs)G1@B'{%Oܞt(T*Gx%Ϣ}"ôg='}q]R뺮8'O\__X:};Sד̄RJf\Qu]ժyXeY钾xF<ٳgoZR*zT'8OHg ˲|߯jUШWSuVWW ȗ/_җv,q)eRQ0 !p8?$}"Zh4j89nYAezIg˗/⋹3۶Re)Gy"I50Hπ}v !Q? -KuQLK a>x`iiihxYڛtȜ(t4+ja8 $!Sn崷2^pvBpH :Npܖܑb3UJSEmەJEk&~Hg{-//? d۶jV!Y*:  Uܹ&{Ѯ]m^y_7.WҤ un ZZAj^t:ƃ{AyKb혙U5Ug /J$~U_u]u|k*3|S8' Pd+G骆kNq.wֿ ֦\RA>aFrQ4adGkkuvZʪz|wwwggRߑkH RR}_Q8&UUH7dfmF=^!j5+ƷѷQ! 2nwh.qԏ$'vԓO$%I/y33 t{v m@|XpXVuN41NNfc'ܜs$ JTݾ}̙3Xr]wnnNуBPO.1%{e;XbvA? K1U'RJ)c)mffike%[e0R)F> 縷,how]\6afCJWvx9eY =qOg^E:K/'ɝm6ו^/~@'k5+Ur(FM9fYd;c1?cb90( k)z1( ɛZQ766Ԙ*N@VZ]:W.^6Q}[k__DfƗj_NHT0бjrO1)ңizK?omܾl^0|V$e%B$B)D*s 2;63ҘT5$ Tgs0 ̃T&c>Ym.ܳj ;bF-jnj4ǚ]<^ժ@5J' M7~O}6~w7+v;N/~0(wTfGBBR5seθ 3K#* ,9apaè`?#)4Ewf]6Pk~Ӂadڦ)#Os#@eO_iO[V;vA?p8aXS '䧉ؕ.yecv$,ui('aNYOLXPaMy wX&4$A2hͲmfFAU~FzRS1T=3NA=֜:f|o llv~8 ĉy=!gX^bn2WT+K0njx, #U a@̂{EB#F%d(+~~`&FZؘȪ͛7ggg qfٱLJtMi15g05:={>Ƿq6vN~b9D$'bKY)/3d3J3#6 MV3Iq, `2W:w$6X;EC00"i6eHa_tWs8km:Vl0ܹsUYoKE?,Z?4VcnMlw;ݎj ѸH%z"R<ϲβ")@f@cTp~zfA vါ@! *gHW !%?axc!kﯯG4},&&:p>u[{{n7Vm0!WY`dc)xCU!7C^uJ#u\d`CT`w%n:5R%YSfzv<]/"T iGy1EҌUs-_8W߿Oqk[ínp0H%yD,D|H_K,kRB6sWʤ0D%4.@{$EX@< xGbP "0*Ѫ;TXh;V #+#9 3LɏݴgΟ={v04p0VD,H,EUJ)ŮJiܖI)͸e_t̷l4O0dN"k}(=+sa* =?2ge^L}[s]^;^7 k#R!DHdEUu)!eGp 4=e<:00( oNBFȐ3 4=y Iw] qtG鼢G%BG8)M$ {imX>1FViOea'f"NlJiIٗkǴ'gGǨ_f̍oؙ_$`<Tdd@k@zR.Y\(}# ))PiH}[묳puYR %^'r Ke$e!)ՆAFg:]% ~@ǂC È  5:#P# 8;J21̛/Q ǘQ'hV3U-,,$Io~:XlJ3'BK#"/-Yڃ3Ql@i $ Kc7ҭ$T,Ce֭[\ڎ M4mQJ+i|mW0a8jV$ź:3{,-#GZ(aTQfv5L ʸ0\B  _׼h|`l<3|@@IG3J?x`Z@M ߚz1´<%BI9e0R9zBޤXbsOS<5(th #5X"Wm+/6IhL/~% )SxEQr [_Md2FcˀGɏܔrٗ̒{EţVA~Vkaɗ ҫvHpDY$#~hf s$V!xu@3taZ)VYPn#)ْ!rrMӓU'O3R1>g)5td@1P:h2 Nk*P"=!uݻwВ`9)Rߐj&G|uK2xD:py 3Kw*V à9)Ә3Vn]FX@Kyf̧^u(1.Z:NEO Φo5:<&Yt뺂E'JFtl0C,vvYh茾g{}lC8WK < yԑNH0 C 1;6`!˲666-)v(x 1E&*Ds'˭JNXˏd, D,;¤͊WZ: `@RJ"-A칁h2߿?iءB+9+ңJ̢dʓⓉ* %+a\ȔdDnjG6%“H}FzCM he^*y)S^C `N!f&ЂcR0]ȎGڡuE'mL#PaMP8v%sdxfea\UqG('?hPFmK|C@[sdG&L%)hT=$8Ej e\u-U]<@OL|c}1av `NB9ql IDAT,{0kSdd\[I,y %W3'# !3Ӹ[* {Wd'P1]?I&EBM dČD@fUdٳe54*b9+ƒأ0͐S ؖfKiw))10H ZژŘBNkƗd_)s[V:FjvPާLZEptyx).܏ 9"#Pe@Nn7J-f U["eEBr;uf)@Ĉ~0^l |XYro*`ցx顩edxg˜VY#@zWDXH3gJM@7"r3p8у-}&,+"u:tܗ\S9~F@lex#bf汍̓O@dGb Pl*U ('<(oo,CiTKjVeL*YĜՕrd%m^S,ɖ~ZVφcY-`젣sW%@p$)? Qec(״bii LiŌ/6E֐VCLFYy)zŜkEz*Ngi* 1j_1D$쥔RAረjY%ɩn20 F=4fL^ i+t+{ʋir'F3=wlxژOTt؀@ 3-Y"QKQ$G1@'NPձ2@@Br'( JC*1VŠx5Ÿ7D70Q<-x>0F]ٵ]>(Ȏ\n{$"ӧObn BD*jl@Bdm3G&(&p~bԾ0“ʶ8w[1G}Dzrs. Fԟ#Y3z}t:Gr/ϛy S%g_"ۘ@0` Q#G1PfT:1 Ebj,N#,ɴG#`ȦmI#Ws$c2!ޣn(W\Y]]1ՊPUR}ff02!*ʔ@@XP:m*%M:Zq3ǰ> 4~jf溮Hr?Ћ/xTf!Ջ{Ggur{ I69~,NrO 16e CY/m dggڛjn5#8Euʕl3†@f'8@2PNtF ܪ5Bɏ8ΓhiiV}Z@m'C 9d8i'r@a1~Y?Ppa=Wy&`R6.%m  ^;FRQg˙.8s۲ Mg",ux 3sPq7Ҟ>mӌ>uH50Mf%aTou}F`OŐ]Y,sPP ;LS0R}Q?;=b70ҥKLKR *NٳsVI1ih\1խ6 0*iGL O1U_)fFTA@P\Bp1"g{޼ 97VS/*Xy7鶳Ai~q.̫xN3:ybP:= =F ]j\(ԇk{t{CUn) 3OA``@{8ώ+W:u w%gra]OiI F7tR6QiM-F< I+Z6TVS-Ph$kC-# 8U?fZ'ɏ]_{n١}_SlZKclܑ^iQʋʪ ϢIthkrSxt ̕426"47K@gĤO8u׎)-̜VP1)z. .&qƴ{5BOiXJO)#hz~@Vؤd$U>o3W;0HMC3wd3WZc3mx,Rjևל*f(G,LحK^RGΑXrk(VNJ TT~릂;qG` fE. i=QŊVQΨ)2ު 4C!T 1PG'*x~PPN~GPUf_LF8Z=DUlg]y1eWSs u~䪦Sta9t0)ړM <01+e8l!e$l':}2z̉h~~aH7!T_],YUx R"z13:r6 MoJ+M:\:]pas:a8BU%DcYտݞ=r+;ȶJRxZVVӟgG;V6;I|P4.h?6LAeXK, "a M)E1e`/]QM`fs Y[QORΖ>~1rqbnVځ0U\Ҭ T|'cIr`q\&? :)| Tf 㫋o5ϩDBGYd/--qY0IڤHV-% d-ixR3PfKRB 5 Sc^`0g, aRz _-mF̼'z˯R1cּr£ʅgϞ}6TmG]m'OynivO 8w5X 7NKŤ2ƽj! w5U[H:OX΢ea E)f l t|$ya,,$A0Z*jjȴmVI/bVO4lȅ>qp#%@ͅafXc2۶ZmAInci *E.2/"a!&`OWq0z2/:ESUBaNfXz4;>:{bսX2S ,,,̏ gΜ?Jbv6z/^5vҁd|"Ea5I6 A̐@`sess-es{!ɺ%aXDSw j) V c,Nӣ} ňo'UeY2GeXr%uʕG.eӎzDb# ߔI)OPF4dܒ|ނ*̗K*aT|,,Q+ל!1(F2o08klV %$(B@`14,N 6e /ټב?oW+JbJkY._~BlG .ɟI.>-FEr"ڐ`% iE&$P;k:1OX PkTdHWѻ]v- :1pYg8s/ĕۗ=jt( CQ~eeevvJt @T:!Jvm*9Ի(d+J" ?~NK4w$Ү-4 @2B` `T^! {-5Jfp0O]ka "!ٙkjU> IOaS/Q9sݾ}; H ӯmԽ [jʾgtYA}(L|Z2 ~Di5 aPRz@BX#Rs?^ӳ,~poNR@K4 3ˇo0rҥK|TIC`c£mPZͮ"-RFRt^ %pn؊/?͙;ߘWvc>a&e꫇+ؼ@N<'AK嬘`o)kxſL~+mIUcq&IDeYDqI*Ф4QPjEIs|NhdxD@h kD>СoXމRsi=A\~yOю ~}_m[JRexߗ[Jh!bd[20 WPW+(M)"g֪"0) e؄`\:SHJ|#9Sbm4KBfEOpÕg/@Zq ؜BD/tpn3JyBFڟ 'RI[(r >cTGpT %Yd s%B e$Ʋ Kwzˤ8V[9*u^ϟ?Ivxn߾v1rnK3!BnݾڤƇÏ%K餅eի3w=J\Ӂ6HC" S%@_e>$*Ry ).5_ouRt[Q ~?U*_vp;v,z7LT&3tfI1w$u g ۪>C ]4&IY&ffX@LB %/k6=WimKѣ=r[~4mի3k׮qMSC>I9\l.i 嶖v"`&Td jU*i0jIh #j4I#q_4qOʿc0Ztu=Ȭ7|sߟL.6ћ a2FaTZe{TVHɐZP ݃bH@MJV*XVJejv"*MEv {;?^oCHBz Jg۶~^C +++7o SxeuUʲ.vig)Jz[QXUa4 -FH;s&?0R8:QeznDpn+4LSlPꫯ?XJȲ'N|GBblig L}|e"sRbԀ6%jeT)G`s!:p/ k9'P'nQF:=#SsiSf{6{ޥ_\WDZk4E{JXj}(o~d;{{v{C4I!j RnЩ֩$I;:UBLBQ#ԘU#$UPF `3Ŵ; :Qq*m[7Tb9 C6y督|{b)(fғY,gmk_;eO {vmշ<캮JUMT)$!3.277̅IjZ!8=~_L}eY_W?W#ϟ\i)cf1 Jf!zpPNxr+Lg+\jϰ0$;wWu)@V{~ᇪaǃ@IHdQ\¦&)PJ 6<w'} [?яnܸa$"݅Lc4E`V kuƃS0vܹ7|q6rОjo}ܹJ0q5۫QiT&y^ZU [Z虞S.y׮]{llmm[__?7UAá&2l6 M,QhR f$ϥf^|…k׮=£YmۯK~ݽ{Տ~0,9))) DD faKkSGK~ūWT,a@;s;;;O5IPQ2).eӧOŶDTV vEe=jq|߿z )0Llee޽ DZpEȬSzNsie˗/_V3J=\hYc}}ؘ\[3l[/3nuHbj+W\tBG3vlmmmmmmgg>}y96V[hzn{ 633/;w g e_0qƍ7wpŋ~jo7fK/tĉG>`)UW^yW^޾~NK{ImͲϟ9sG8fA8ܹsg}}}ooұ'Np _߽{wsss{{[;c`Yʉ'#@jڋ//v\zl3?}2SN:uԯM16;;k5Zوi>=g֞dqaGH|v9@8LӣU?K t({С x&̏>h{C1Ϲ)sv /B%0j,6~ˡ! wrHB2MBqa,$#|A@mdtR̝IENDB`skladnik-0.5.1/src/images/goal.pov000066400000000000000000000013541457640636700170460ustar00rootroot00000000000000// Pov-ray image source for Skladnik // SPDX-FileCopyrightText: 1998-1999 Anders Widell #include "floor_common.inc" torus { 0.35, 0.05 rotate <90, 0, 0> translate <0,0,2> pigment { color rgb FloorColour } } cylinder {< 0.35,0,2>, < 10,0,2>, 0.05 pigment { color rgb FloorColour}} cylinder {<-0.35,0,2>, <-10,0,2>, 0.05 pigment { color rgb FloorColour}} cylinder {<0, 0.35,2>, <0, 10,2>, 0.05 pigment { color rgb FloorColour}} cylinder {<0,-0.35,2>, <0,-10,2>, 0.05 pigment { color rgb FloorColour}} sphere { 2*z, 0.3 finish { ambient 0.1 diffuse 0.3 reflection .25 specular 1 roughness 0.02 } interior { ior 2.4 } pigment { color rgbf <0.1, 1, 0.2, 0.8>} scale <1,1,0.1> } skladnik-0.5.1/src/images/halfstone_1.png000066400000000000000000000325561457640636700203170ustar00rootroot00000000000000PNG  IHDR``mogAMA asRGBsBITO oFFs*tIMEzE$tEXtSoftwarePOV-Ray 3.7.0.10.unofficialqtY[tEXtCommentRender Date: 2022-08-22 18:05:07Z Platform: x86_64-suse-linux-gnu Compiler: g++ 12 йH IDATxiّ%w|(Bɪbw4mH?a$|͌dwZ4b-(xx[fF]]F,ÙiM,ޒsν@Gs''ggwn߾uttCއnݺu!:T󎈜sDH*H,4;f?OcyIUkis)48M7nuu}}s,OCDw>|4vQU]JD8M*DH£ |}f~ ՠ]q~уDEDTDr)W/^zO\\ }wrvvuDdǒsvD]b("gطZwӔDDb_?}՛;;;RTUDXb"֋˟ⳟg^;<0v;GDj9r!"8w"lLU'TQU"ȯx6Dxr[ ueyuՒ<ϵVU-rrΙEEk)7_|~?oѣ6ME"B9>|rr~&" sNE*LT±7)Lsvj}Y;"V뵏8ηOoܺ"sukM)viJ,"re8~Wۯ<Gj5 >s5Q,O~RS>=;lYD[TDZ0[ ZJDV/>xa[mɊ\]t.QI)8R)Y1W'? }GͿW99>@{"BDDX<Ȣc2"" 2W ¡RUҔ0DCX7]Bà *2̥>כu)eﯯ甘9'DGg'?~'{~տ<=}vvD! "xQE“ƛ탇C854 XFGDY",C @Uw1=9^# 3Kɩ2-%O1,,!v!<>>jgf.,\ﯯo~;裏>ӿw}w]{g_>y{,~#{gr "-A"C߲"R"ڏosj}uP "acg ^wq""":*lV9?Ϗ=:==]V]w\!UV7o|_n6zG7GDֆZòZE}UD(41xfS>;;asYcfǜRYU-DV] ^hf??}zQ!@**ryu˟t㓣cGd`iEh09cH`2 su!g>uDD!nC伈pV!v] YV<>sJ{9眵TfɥRG{ݡV`yίQ=_znܽk- R!=C&GjE*T:CD|? !D$RUfF""r-zW6X8ͳk)VAȪʕ{ c-5,iN̼ߏ<bIw1۷s1u9jS?/`{キZQCT ,:HowZ!0 >FTl[J)96!F4jZ0WU z} 9eDrݾ {f>::.0(꯾o}[RYO@daP! b)C? y"fYε`朓-輋]'V"B@HYBu>s!H[^z/>x~\k-4e46PADATY\^;*'+#9jSJ!8WՒsYDZ\A!tff@. Cr{J] zRɱ"1D0Y|l ^|_ݻw=)\J)ʵj^*,֘!"33󛋫zPQQU$"r\|@Zru0XxJZJZ, ح7$b~-8\t[hXs޹069;k&?9G:hFDdӯ~\@.78ӔsιZdo&!9O$"}8#\@#J!v]?7眫̥TU%rZmf_9aV{{%23 Aއb}yo o߾ "Y6_?ˋqOi.%ZXXDzG" ,rqyszz!B@tދ(RcǮ!\QSJ{>`+= s園,%:q4W>>l6}O=S 'l\ӧOurrro4MvR "ԊkYUښ[G]a[9@bcU ZrQU"Ca}(,9Zhs@D"n#x.p8Ͽ~z|0 /w86J٦, ZD^Ƥr}c[s929Sއc DNXJ),"%'}е:Ďv\rY Ym {|NN[}ccVe/?x~mӜJK%YmSQE耂\\=xp2ED#'{|ɉb켷ZA!\J)·XH9Z-DD Sۛ;""\]!ܽsCVOD$*))(晙!FS}ZJJ9"6ZU"rr)s g#}z|PUDG~Tk%:\ j-Fw "fsUEJNcg s9Z u]CZ0vXhJ)#rNQ@ж$ Ұ9onϏ6~刹B Ev8j-۽XT;` @U@A0r][;@r!s)ѶCOC!VlYECn|B(̵֒yNIC c;}PPEl3VG"ZU5`ô4GfF JR—wdrl6{UU}ٚk3p9'c]rΥwcɑ(Nsܽ;*|9Hb$@5"c9o^r'8CZkNi>3*"mFWCD^)\ٝ;k גr-|j5@MCiATxӏ5#u`K|&v!-:yoOT[9 `35mݸC[ZAvƫkXԒȯV++]U5>Xׄh UaΕ-,"t_~R*^DKk1u]Ê7RkE¨MF-ZsQr%r"ߛFf{>!B0R5e껕bgg'/bD!vPr#r>nXm"3c9TrDU.HɑWfVviyC!F"G\ (RB^9Vdl9MAS S(!|rϿxzj-\MD! ېJm[_]ri)J?ڇCl%ה~g+# STVZAk4f1i{a毿jGf^AH a%y,/XL* 0 }3sjjߗV\" ,ss]VB甜TkI󴽾R ZOXc?!(gW]woDdޅ[aKIQaIa>HVQM)߽sfflPJ!re0 mUK\k)ه9B~]Z]mAUEXU"׬beafGo[NjNӤ%O1؅8׺H* `k1r*(C.:Ïh-lHz"I\d M撓ɕiqV6C C24enybn*[ʵl؋ !Xy{>F`5U 1J)&#bY 10EȵЛH*%;$*98OUgWbG ,:f20rB.ʾZos\+:fABAƄ#&7'4WOkL `@Q"*Hic!̈xHQ+0XTr]98M-5B|& 4)-[OmZ4ƨԾ9Dtm6k=~GC,QppD*Rs)K="v5UE@SQEr$'>*N=VE#aXJv~T@nq<0{պjQ9 jyG'o{HY1``. -a9CH߾ [e.t(㨠HEr)~ {$je#"QD@Da2E{o^D9PiYϲb}h4v~YD[P!8qP*xk9,"\yONCFǗj+0AѲƖ8r yeўޮ (,eg\81aEU rRsx`C !C,xQDRRUq9tZq4lpw7cY[@PP]*AD%'P퇡{Ll0E!bٯV*:4ZƏ !hmjӝl`Ĝt;hnqo{ڲyp%fi[(H)bS@@ņTi[ͭĻJJD:Y7AkpNU5l B~7ϓT2!o1bZCd6QU23Įs!EHD!v]RضsAT$pֲ֠EzªӘ0p!v׺&"b:rl@D3P!xZU"Mda!"y_ b a0Z9*\s6{[};gX5ҦۡFKw=yJ~eA *"}fcN6SDE̋[hͱ3 ضL;b7XaCT :@\gj[d* $Bk/˳}LU4iYH[UxՒU9O>If=-6)|ahFzi !  r,-9E?gOݽp4 39 :ZE["7E,6P[!ѱEf] LD^P@w!.zLޛp"@-&ȡTinlO~k٬ﮏX+|-o6Gf]hz+q_ x;YikD\E>|ҋ9E+bD<͵Zu(aQaE"t,j]i)s, v1}'.y/ν{G'acPvmԨ}|@6Pa7^Pyˡ|fϰ,C#a2& 9"(K-Sl>6C ;3u?{w?nzʵQj3%@#5o;8H] 52 5:FFflp+!J}RJӄD·vM`6Il݈:r]?|xO?z/?c,+bXVLQc\ . (4Q@t }$m;D0`aL>~Zj)aEi<{i|p1(1Fj\s>D35!.RZrN,RZ'D[eՁ#C@sgUȢfafYh0-œSp(1iCwʕҕb?Ԓݎ6 &Qs&J !*"V+rT n9̜s'\SBZtfe4ɬeEXO%4'ӗ"y$ZUD4)d'bCԅG[lU_j V"Q!)sPl Q,  ",>3S&! EgYR֚TK]hTR7IDAT*qk-h.JNU$,B.ⱗZ1WJmvSCDX7fn_mSZ9lalJ ٲRke$,4<;5XB] ,|k3O4r +1Rئ}re,,^@"KU2k-\riQ|fS3l`;Amc_ T3+΂-syRSB8M [:Јd59V>.2eq3kQ7[,K\њ1%A)yᑄkĶg"\0bB.Zs78L-D{$UDJ)~1)UfwVZ?{vuy dzO)\C 5KQ"{&y_J5lUK9sVQ{Df-l ZUZPMPMFH-!kU R߼~[NcM_zm6OyNϞ=-:倫̚ ٱ" BBfnfkɰDĕUQQCvSJiK)ཷeFX rDP{융,cڀt΅`CY~yp{/U!#;mФzuu)Ů˥rƩb@_YmI<;;[=6C3|V4M/\s9D4 `',g] kMh`;[UUk)b @?AYDjݸ}wZUse Aٜ09kjbL0/[q1u?MDwcgë2 @EEr)\r̰0!ssg;qXU =aq~JlbIa1v5V:ˋuid1ދ(`&.ZK)9;$!37+k[g"c?9c$@$Ԍ\Ym/*9﷔",$[nG=yZjUagf1ιRu9?yX4}:3<϶.MP3v9"V;vMKu#"RiZT@h_68C"P-&'ED+.;G^^\\9G̼r47kX|&Hr~ꕠᇻ~cwD}?EDB)֒̍, H#6MmsZs.9b^ 1}vmOfRDTj\3RjV-Yih6`X>~s~~td\]r)wm[UUs.ϟ=׫G>L,J)λRi?mc5&KVh vl0iNUܰZ[ibf罴۴VikQ9j.Gl" uPKy<}PJz BJ'wuG Qe{s3vs>>> !y)'46isʸRg)Bj6t"ToxnB`,Ҧ@esmSAD6^6LxGy K>hy~޽Ҝ첬v...O?xMqjŝGDλiv RNs9t}g;ftp[|J) I!Į R<R( ecf]+[|Gղ)DЊˢ^x# mGi~7778M/'nv0pӜnz`5f$j-vCcT9Th'!@B:,,,y)+-Qt)l痙P>}O>6N4~@eG}xv#WTJœpZk)j"o;k-wDʥtÀrNƶ0 U)s5rJ4Yĉ[jйEv!]Ah)}*oԼq_w'ŰXWy<} `GXdy|Oh*sιµڜQ9%^\\¢HiARZ ]gC2r-];kiN4唙EuEumhcxۙRC!-_~O>tiWGrss{V~ ^___]\>Iz^[o, {1W|inXBY6o6kBm&r.ĨyN?"._"Ԑ5 &. 9=}ރoSE''%gu]b$=?k=:>4)jX?iZWnБdOD5`~h9sJZq̲<ąS8(ոdM!r& _6?xt.׻sf18D!M<_~*ܻ^eq'QU罊\ܴ=riŮ3;f&>Lg#CưRJxcXN=b\"\sb3eYfHoѻ)ي0µV+Gw޻.ͫ'v&`YD58J^^^8֭[<{H2W%/ҧlTջӪt0Zj#(oš)\ *_E a9/fk;t͖YWggg\HZjܱkl4M4_ya !@B\kXo[l ZŬh r|F c ͛? PJ%(bzzBׅy4nwOO.gAJITm̥Rk./_7>b4yN)g aS߆YlʹYD _SJSVS6Sެi\SąMf4ϞKC vZsv,;cJvLyN)C9Eռ/ zՋuc 9D[T;=d{.Bsjc/V4 \+@mq9$lf1鲠ʲ9{w?o(Csޏo}"R.%y4M8yyg" 77VηR>xwZE.+*Tb0'r`7 ּx7, )mUodCK9 &Duoj`<Fszas)"=y8յ'g7:}{j9:Ngu]o"`vλ2.SMHr-7-6_uzp}XDW:ND4On~yN)5yk׿KEQD{΃ ðCbab[9Ԗ8-{D(9dU5hl ˗/B=|@F0"V4(9r9i~4NyYhR㯿~? {{ݽ{C>fqv]!̞kzҜRV\^3!9cחjzٚijAHDzh;UM8 R QW/_wL[N޹cadhE[)KtJi"{mQc㲀*D6IYb|BZjΩ HE͛=o6fX ]S-uY,w- 4mS`Q;Ș@i#&ۖiWWw}ED]Kc;o;wB M>GHmy..5Bv݄@H)V.%ʹU:|O/h` IENDB`skladnik-0.5.1/src/images/halfstone_1.pov000066400000000000000000000005061457640636700203250ustar00rootroot00000000000000// Pov-ray image source for Skladnik // SPDX-FileCopyrightText: 1998-1999 Anders Widell #include "stone_common.inc" camera { orthographic location <0, 0, -50> look_at <0, 0, 0> right <1/2, 0, 0> up <0, 1/2, 0> } object { HalfStone texture { StoneTexture translate <0,1,1> } } skladnik-0.5.1/src/images/halfstone_2.png000066400000000000000000000310271457640636700203100ustar00rootroot00000000000000PNG  IHDR``mogAMA asRGBsBITO oFFs*tIME Kn$tEXtSoftwarePOV-Ray 3.7.0.10.unofficialqtY[tEXtCommentRender Date: 2022-08-22 18:05:11Z Platform: x86_64-suse-linux-gnu Compiler: g++ 12 f IDATxYdGq\n̻ֆ*@cNL2B3JFd&ӃLHӃ~ntcBݗ\98A32 *os"}:7DBH!sD@@$DX?`Bq,jP#眈>fշ߽zW7u<~'~'{Bd|^5X!$X / c* BȪ""ODL@:@Y~rs}}പ*f1"buf\./z~}s_X@O?o'G'``Qb 3c@D8ƴs,1u1%aHodD!"ffaQ3wBggoO?O W~xz|<ٟ<|dBk-q0)H ѷ:Df KafVYHDDFzsf"c:~x7@#ǤG{6m4j\7m|?||#?˿W䣲(>~g8!19gȈǬ(֚P1-5ƒ1{p4DdT}XgQœD#vAYU"1I-cwEYU`Pf4(\QGG?m?fӺNNO}WWǏ k 钪M1B&ƨ&aȰ0U|}.1*1z0AYTjKʤ`@Os}dZK^# &`:W8ڶ:+, '1?3Gg`0g~UeYeY !Rsau"!!ѡ12WuM@_a>bfwݟt|d ""2I5Ȩ$֖eI][ӓ`0 d2ޛeAֹ(5VDȹBiD"c]4M׶u=(H6/Vf, DJ, bvpǿ 3@H Q%$h"$A雳 ?`4p0á+ c ZgMR ]pDY$Eww77*Pp4!"!aaa,^0F r|*" 2Z"P ˆ5\_{,/ W_y7uUd4eBU A(0""J*,˫jm!dXI$O(QXe[e0jztγG1HYDudQ5Xg#k92 @uv\,^&[._O|<W 9q:!cDRid23"33u4EYt: !J "&.ggg'{%B&PFHKIXV5" ڦ1뼵:gfq~~sȭ>gOߩYguց@!E0bQ  (!ȋl\( iU۶Gֺ!)* Kzb1?<9?/B]MԠHHQ 1b𪦆8`b(G|khAxɳG`<?oz} ѓ+Kcb}!@@cHDX+¾m5Bp#SHuQfS;}p"ꗟc5_ᜳ"`fRV7t//^<>ã1BdZf`fkϟ!@O@@ k atD$tfWR +IdDEZUe1EVHGGh G֐!U6hA@ !(ށ~\:ׯ_7GOVU ?tm6 h1"̺ ZUrU`v9g i؇ h,1: 3{'pEwߍ#fOmۛh4 c"m/g"!h',dŜJWD5{WUp{//'<|R5HX^ pionﮮa]Ջżpno<B۶h Ǹi1@:ʲ(g>2XS@Wo^<;{ub>ߛd2 \.G?y$atWv4޼v,s> Ej|Yo?l\UUuAQ`CN@;qd,dGf34 #t>9cdifswss/2vw~\:1?ly??<<,*WʄAusL@&ֺ߼~-"sj!k!k57_}9"v]gfʲ!SDNkc sv0`N<l)nX bQjXVɃӲ,=p/Wt!y!Bz*#ix5[5nl(?Œcص 2g131ZȬ2POBEQغciKPEW=cPubONOc\|#,l62G-"p75cض]۶~QWk^~Z7φQ=8Fh4l]NrGеQ#GA2d؀YZcTIQsxdޟ_^\9kwX4M{uyϫMg >KCH}f3 ˟1|8!t];_\z0@v\_\_^9릳hԃ}׶]׉(åZWrȓ7!=کԵ~\[cL]piTz3$Cq\3S1sQh1F|lQ8q}sck`0ifW%Ŀ`6Oɫ'Hlv["5f(kW%XWt{D)RPE*7bpe4Lmȅ$#sn"-RH,pA4ƔU\5jY>jb_?+Vr^ZmO<ʪ2 9Faݟǹ"R$5Jp"`JȚ'BmSoV滮 JsN7j֊APۿ3}cfOdw:Sسl*h:8:֪wBPA?8lQ6jsRxDDٷ"*+LrDh6H[͂Y(L 4J$Yd`HMeDgD8z9;GSD-v|Ea) "S'57WP l&ga=f[RySFCC?^j$B"f\jڶ9f1FZ]Qb  j2"Y5ffn۶Y"}suyiq2"ႈRv"[Zr虔.Injn"Dn~3= BJ9D$KBcsHBld1p:kWd{}E!#l;J $KcAe+%N0O ]â(UQ;:YXb#HJc"Yi !"2mf[c<}ߛΦחWuEQ(Ս>z3C=g hO_ Q%nU@Dcs𾃆;a׫x0<99M{{ՠNL,eVRYXc`%')m@! ٛ`Qp*4>puyO<ň}hn GBIB:|z; BJa[O+u{QdQ "BI,-D}އ%[,d~?=:>hpZJp%!AMjVYd #+O_:Ȭ~vXk"ed9}SA(+5teJ%ͦ9<<ZkiD9 3dhSMyѮcm0 @`O0\]K,;nZ~Jw.sL(GϟCfiշMW;)?k]Qnic12# 枞Lorsc>a^NNW BnА>$G&1&W#0&u!k܌$<0P :NSJ~Na;}AVQ%نv2$xAn ?5C 'tdVf,{{ ;\*n?"1$,#(:*04CMΞ R̀{S _XЖ{]̬RZ.yo21{Mt;PyVM8/"T0dTk@]ۥl Iٞ- mRխנDv4j+piMarWl]i׫t:c`SM&\"R-2L&8GQ'ۮE"Huŝ׎OP ٗ {7"gF׭VsI,S~ pw>: q}t\Z5!ͣ+xGmf8) ҫZR$fTSoږ[K:2]ϜHxyq>iW$)>ȽCڜhШ8dt} QGٗĴAY&}or[1lu$yk!RZ;U= -o2f4ӪN dؒmE2%+Nӑ2 gf!.osDD]r9dv$"f/]ƬAHۊiPH!(%rJ%gbSRdR,EE$r,%1ݓ^A 4lAX蝭'hs ɤU-,-Ndo O? !]5V ̪x6;+\2A{++:f0n֫xs2ԧң!A-@%řpf^ Px'9FT8Y?D1h7SB>g+Sc9*+̲ 9uśׯוּaUuc0`KFI7'GlX8@2>%p>FrScbQ[m[]"}:"kfbDj#rW4w^}bXX!$\.`:0Ysiw~V ZŞuJxlkSzd{CRh^mT`mTT@LE#̑^|]E];hw~0eIhi\9&V~UBhIt|5 ̜JRr!M۵@hsBZoS,c@KJuI>u'q) գ1*hmK!;=X/ɘ'mxrz«W~'WWf3B!F ywJTK^@~~|zjz^Gx;;99˗WEQe9 5T:;[W"`tvgJRtY'"c 1j2 7n<٫2oB%9zRUY"GEڶ[F!k[x׃T@|Te1`#dؖ|Qw(&% "FCJ#s`& D4&hvZ,B:vwxE:U55)]>s\-ANCpYN^ "BD԰TSz桉 Kumt 1=t!twWujx_}0NӦiOOOUUBJUx^}Gڮ u]Pyk #7/_n*U^wmc1Mzż!%kɒisGBz}zM \BfnmۮzٝjN5G1m4MwDBJЩ߾O?dlf6s{}s}}=뺮ܵmq4{Ɠc4chFM?O&w77,ڦGumB c(3Zk!|6XC Q1FԓXڶޗu.4) ڢ(Z混{BͦZ1&pv~.../z8Vz0?2x< PN7u]QE _}ot՟}ϋDBy" Y\BQV_*ŜcuZ6;bjco !4r>_պf^3K`16MT`Zr_wp,hlEYk KH)ޡkje]C۵߾xύOf7MKAL !p8Zڢ,]Qx`Ir1ƛӓG˲@bЭm:i 0DWr]'mۺ]޷lyŋ7gu]׃zZ!|-ʕfGj. AwOf}7kkC٨f42 p4RǬg)E2 9k}/??29}w]۶^ڶmiͱHumZ,".3~YEQ –z1dmL(AUi^+9*Zq `&"1rqyqyl\Zc4C؟ԑ0D$!Z>^:#_ꯆaA7ѱB޷m۵]tmk;=`^/ u,B֮\Q-;ioύZhnZc a&`1w,ж~~uyywsl6eY}s.(OhR") 1]׶{!\۲OʲH)gԤz5w]umӬVf\,z">"z捞vomi6rZVfZ-VzvI7i{ƛl_~:NGl6NQUUEᬵͪKX$^{m[CcӶby?,zHFEYݫB׵iNOy]cwStޫk}E=jX,eG~w{wwE:ƣѧ~2u]O&x\YWUYUU: 6WpRA4r9K,] $X֖cRse+B; ^x7;8Te 0MKmVjXz^Vm菟}vC1>8MuUM'Jg-t8Znɉo65"VU\arM\P]ኢ,ʢ(b!p~vnz꺶kcH]ۮVr\,VU4!F`^AqYUVEh0GCcLqެW+attMNk53.˲TZI%c <|>7Ci|ۮ.xUiڶmS8Q1߼y니NOONOAmyNZX +Nι¥ynk9)ΖeUE{7ByX7<0ֵ4lN?Ϝiwjzݫׯdo`7jۓ-`Q]hߤR桵$g9921<9ϹĽIYl$Ab_+1ڬ7o3J u7Fúˢؑmۆdۚi3QʸQ>URPkmYp'ܓQQC$a"9gY׭g^-WrXl+{/"*,Zk*1&,7\nW{HGZ甮k S!jAךDصfx8澈?IENDB`skladnik-0.5.1/src/images/halfstone_2.pov000066400000000000000000000005061457640636700203260ustar00rootroot00000000000000// Pov-ray image source for Skladnik // SPDX-FileCopyrightText: 1998-1999 Anders Widell #include "stone_common.inc" camera { orthographic location <0, 0, -50> look_at <0, 0, 0> right <1/2, 0, 0> up <0, 1/2, 0> } object { HalfStone texture { StoneTexture translate <0,2,0> } } skladnik-0.5.1/src/images/halfstone_3.png000066400000000000000000000264671457640636700203250ustar00rootroot00000000000000PNG  IHDR``mogAMA asRGBsBITO oFFs*tIME̦$tEXtSoftwarePOV-Ray 3.7.0.10.unofficialqtY[tEXtCommentRender Date: 2022-08-22 18:05:14Z Platform: x86_64-suse-linux-gnu Compiler: g++ 12 ]  IDATx}Ydq^fV923` (˓^,e9BEC\D 6ef0]ϩCfUWSvܹs2ˬB8::qzN)mqhZ"!aTU S ! pHc@U%h)UTKK^|qyy~~ٳ˧Ϟw׮}_‹/޹sdR!R)CDDh6ZKək*b@TuYf *,"M ,Rf)ݣG??yG?y;wk|+7_!c1)(AkZJ좪!aHED5PH@D젊D\v{nKB "_ʥyY<}?=bx䅛7כj51bL) c D+@DD̵RKUU1( !qZMibJ*144 iUUA${؝RϞi5朗y6<ϻˋnW*R...'ƻo67^ڿg;wVi^M0ÐB $J1a "DBR٥l1>mi1J)izVӴ 5!./(zĕRs^vųO:1Ƥ̵UTr !X*2eY..?}v}?qW!ܾu} n:R_)!- ( QU 1 U͐%haRJHĵH"[~`{H}TZjaʹ׫o6Gz^^ (8cHi1"eN)TUDT=!B HjF!$bfD!aa"+("mЃ(\K)%3Z*׺vnsZ[`Zh|&}@~կmNOO!Mh؜R !Z\1 "%gV+DPPlnABef1z8M00"nelfGDBaR2aF ̹a1 "RJDD_i׾/dZ@S1 @QL)R26 #QqlqCDDペR"Z1Zoi1Ŕ@DG[bY UU!ad~R5ivW"K.!nK 4 ß~}h٬7ǛR aɒq![l8Ā*Prk)UU5x U!p|z>:NB @ƧEظ%9UAld+BJD@BZK)\Ys?f٧oꋟ48C"$TɌUPJiZO_ B^J^rZcɅ(nJ$j&7~B0D6GǫfZ(7PDRPD@gɟjR!!+C DB 4>w 4ɿRJ)!X[Q3!nVz=#`V|Q!E A840W$@`c^mw\KJq^_Yo0Ð#Y9Pdu/t_@xRUQ$$ vYacDBMe-h~dUT=ͬF|B(4)!VaNy믽ZS)ߜpeYV:PKȾjEkfGvӠ ,V{}C;TUT<^`YU<Ln7pKy̵K d!\VHs:o$S,R2>juS-p~Z̻%R eq-[1WSDљe@ FQ鉾1[+8r HDkCQ&=M{o>>ژuPPT_ke;ﶥVa{(g\hٕeWa*A!ĈDOݾjMcZ| \K^9/KK1ƄB$BW*1iڬחmeL6_i9ybZĐIU܁`UTDR!aq" ~-"76bᒛj΋ɹRJ.9/blYr) m>C1Г7Э^0r "F4TUCѯzy6s-VW>.T@T@/4NӴބ `iK|qW{Xr%3sɹZk]٤;1ObP<Ԕ +o\GGK/q0=ِBWXGc?6>VX `e&QEqBLPȀ=7!Rpg^3Ae^'/s2f f3_ 4C$fCD@54)>`0NTZ|^\JU]Nd2 2Z*hQ5 u@iq_ e]@B$$TQ"yQK9/K6\+anes^隄c$B\MS<>>aӬ.aLbL ]u|,K1AXgUDE$@@C@B\oZǘ &m%e{yAH9/%RJYR Kpn% DD-[X6MS\Wb Ɑ,vQJs@u,K~M[œū!.ؓ0 iVVj=R$kD i Ps9o//ݶ/eYqY@՜[LuxYCiNOCrù؛M4y/,˲,yYJ"l!QPUHՊЋ^+{KD(݉k?^qDa[ FfPAd}̓ZïU'v(R 65S-UD NC6abT#=hkˮ?t{Js.1PFP5iɋ]m<ѓQЖ<ޙWA8o]ZSc p@0A|o0.HhE,o.yhz >Q~s^ ,@! (A5u3E_7OrO8\n (iR}R4R ^ hI ؛ W[+h;C?thc.ƎE|rm WL**6]9*}}xevv}T'wiZ{&iHm]G1=uf`v-^kADHPcyEnJ0>LBqi.16+KZs)c@b,Mo My80%$'zMSk?Eb {LKh S8Y,u\udQz` $'Dܡu<0 cg ːBBa@=l@e_fWE'^ܼ}P9O(MjcClIi5:QҞv5jx>"4Jm:x?bݶǬflߡHIM[ {V q< c_ F͡a*•U:HIPohe G0}6in=z䂧`$jBuZ渾TJiM(CogLݩa x9WhM^s?T[.T]5 yB 4Z`4sv¨@*C0P<.lCbLk?"b>\Ww^F"J-@&(c}g5Y) fU@ElsDMmU 13$sr\#~Mi5*uo[XU)o7ϵ kNٟmņu_66641p lHlczByeodpP2쭳/ TY "U D(|SkǞ@2(P'/*1(bc-K^qB$&"DPD;{aVMYcZC\K`K‚}ӽR>1uSz9gx@O`mڸ?4@ZH 5j^H0Za4_ZVj4Jj!ePCMhD!F !"ʵZ]'dHAjɃ^4}v qu+ ـK<תSڏ`i) =c6cԁ~[܀X+FL:9S 1 Qצp3ئTF cyN CeKȬѽ@ F Lc?fGBwCq6`I`!?f5hQl*`MBܣBZcJ&실lŪMGHb5v\*CIec*sj!zB1!@(CBO7]7[4Yn DC_g".Ek_lZ(XZ[B0Z!a((D5uS m6P qbfKfv`V)(({cco.NE>jicŰlmZ'gWU+ !DU,eEP`t[&ܶ5pw2[vJU4C1Ku$S吹OV!FKk}S-{7-ٳRxEV)g}{IUi!D yRh5Z4}Ӛ&)0FDiBn!=4m2I$OGo"[^@׏DTeַp!ES+'ehAfhõڱWwNĦY*sJK) e|~/K[YLrdWca IH.-9?I=;KV3T6ln{;3mf/w t@"beZJێ{){mi2u0sj>N06 C L^7=y =z,U!h4][} &عh jiRJ-ED`Y2=;;3Q>{lWQ,hd>%pm Qk8cLCL!SoO.n{﾿YϞ]BX+в7w"__|Y0WN/twt~~^J1]nۑ7^j!ЌMljWiJ.Bq\M7GDU7ҽ?zpC;K1m("6a3 ZNlN..UhM80ջFMn*QKvv/l, IDATn0 zDӳ7^{W^~om 1zXӎ`n_Aև?_~/ˏ?~04e2#wȽOuQ7Kډ+}P."">yvg2D D]9{s'Ֆ@١>7yݾG7_ss"W??z5hn;ǔLڧK6cWDk` ZbZ9K6@لK9/RTJ6( !ö@r2jcw)m,*h27[?{0~[߸~MU>?+8^έUZ-/@E#;F-1RIT4<1NȵrιyavvឩYU^m8(<йfC[WSDE{_‹_c D7 /W_;^֚["obq1&D&Ř ou7`(sɻnɋ@?}zÇo\,9XK-ie l;l5:Lo-*$"ȥvW^{O~7c?NOJy9gUi"5/FP r9:f)~xj)z5ͻ.b9noK/nuJiوX!1y3VvR2W@ӷ[vk<:vw|[7O_Ky)e1Bh!"6|V6ق**Jَٜ̕U2/nvLD`7[of=,K 1H`MInjQUƼĔ O ;bHK)}Ǘ|ׯ|0woV+}]җpiJ?Y2`*DVZsΪR20CZKP?|=ؚi٭1_9ZJYr^re^^\_\_\R~ lE޾}kMCJ]l1$f=:W ˒ywyo^}veS,C֙!cr\kLXR MBNDj\% w{߇?c wß}+Xx5MRS:U7 3]tfQނTZjI) G/t{f*Yp0[|O8*""(5=͑9nwq=;;vvV2mO<8gȜsaceBdfDX4܀T}f1Lc7^qmc^ՍT]2!RL!f>Wm9 cmh2~XJ͹|ݝ_=}rk])?A~ur|'<88^q1`ZK0EU,1w%thжᒳ0*s-zߦsTBD8R)%&˵<ڊR,nSJ4.򓟾qvv ׯ_o^;=qiVӴZ 8 lDRm:'=N?C1fo;GQ6%Jث]dU58NH.;ѼKYyYy //,bqYϞ=ESrf_{'''Viz=C 1 8j#X}nbiXkQ[;-WD2QۘlpsiZŔLWvc̥eYs)ybGeYyv9#RL1tqqݷ@񕯼|֭!i5P)b3naҮ۬*!ڡ8䙮lnPsL GYϞh2Wqy\ ӟyD[nsϽҋ') G;//TXE;ޢjc;jؔG=짖~Յa 6UJ\-bSesv <p~?w4w ?>:$z Nf61cWQvVvC]Hjh-6 ҔWnR]d}k:99yn\l6hooVqUs_L- ]"&,v$bqe^?ybQ ~Z];=vhZ2hWmNci9ԯЧ?~O,|~3/"GOnL0XaV<):}[~)wYMK˼,9/ѯ<<}IENDB`skladnik-0.5.1/src/images/halfstone_3.pov000066400000000000000000000005061457640636700203270ustar00rootroot00000000000000// Pov-ray image source for Skladnik // SPDX-FileCopyrightText: 1998-1999 Anders Widell #include "stone_common.inc" camera { orthographic location <0, 0, -50> look_at <0, 0, 0> right <1/2, 0, 0> up <0, 1/2, 0> } object { HalfStone texture { StoneTexture translate <0,3,0> } } skladnik-0.5.1/src/images/halfstone_4.png000066400000000000000000000275761457640636700203300ustar00rootroot00000000000000PNG  IHDR``mogAMA asRGBsBITO oFFs*tIMEA$tEXtSoftwarePOV-Ray 3.7.0.10.unofficialqtY[tEXtCommentRender Date: 2022-08-22 18:05:17Z Platform: x86_64-suse-linux-gnu Compiler: g++ 12  IDATx[dǑ&旈sNfe]n@pRCj]dd+=HeV6f"5ي$$ݍRUYy9'"]q2^ff79Gb󳳋;w߹sgurBX.}`͌ s.;̌T@Uhf9gU-"iJqloooov{u}^j}ރxyy}>x']DHDB ! 1~ggirΦs)ļZoi~uz̪idb"%TR*"ZJ63bB$D@@D303r)W_?//ч?߿8?cf&꺮}qD&Rq|NOV'w 12BEDU77߼|Yr^N@n'**աD IB&"_YDHJy_ןW_{6P/_?yxX,E!Č~`4lݻY0UfIE>|~GBVEAH%4_z_\ĮrR2RKI9z}W?ŧ/_~r쇾BȽۗT_ Tu7W?_VJ%gC !pjVrT .Mviv췻/>b._,`NZK)T)׷WWW_||?NN'?tb L zQ  rɛ|{8L^sR!3,@D`Dfc\ C9M~ݟ\].~QD`;*EėJS)u1}CX.7lw}_ݹ8;a>L Ɂ`s{{}}w^"0" bD@߼1s` HKbqzz1FfBBNU;y⫙C w=X,h~^ m7q~{w2/ߗ1#q6 =3NQ`g{z^J˓:TDZ ˛+B~ݽt\Ź" gʙBD"8vQTrǜaur'i?OOΗJUaqn6f?O#f@0 3+)j߼x4Oܻ񓳋;bpaf@8Noon''o^~o1 J)!fkE$u5QB1t1.c~7 wG.FB@îy ܹGi DDL"B"Rrޏcy_rw / jP 01Sy;GIƑԤ"%ZM9}_x BԒ4s3g !i4jG-g""4V#"cdw=~^ tI_1?j 0?f\v"b,R<=}޻w~~~ZIRrIIEm!RԔg)ULL8ͅt}ZU=r!;G< z}TJ "~݋}!F3qqMӤf""#VUl۫7W_|{w]WҔTf. aGEyA iZ%]w<0tHa&"f*j!LΝ;@<!;'SB4USabX!LfR 9#bG=JNŗ/޼z:9u]NSDED"sɰƍ"2"`SrGh՞y4-*ŠUse!! Ͽ"CÓ _Ll7iLMDJ@!qgϯ^FՇ !JyU!""Qb캙?JMV)G`׏̔bh/)Ĉ'''B)OV'T?D ^׹y"D%RJL@ٳW_q!&”JIb1\26U%"CtF@4hlǀǼ6v@U,j!V銙E7w/}10WREDׯߌ]@HtJŋ/=c#5lvńc"z̘!j k*Tr2#JA8GJ!pgPd 0,/Cث3ͫׯ77.> *eiU{su/+X ""Ǿ& pppՇjʚ,2,[PvSs@E 䒦4}aIz}uYq/TUS5ͯ~=tGj󏈋LRru눹_,~py*SSpjZkuﭹ^8F_gpXX)SӔb3ޮXNOvsSV3)jOfo^ן-ţGT H3^N0ľb9@֧}n^7ٴ9{C[5 ylyOȯu]XwH/A[贽]ﶛH)U|#D݋g޻|A%S-reǮw1"Wq/R HD́C5Tj8W 4p9TłLE\TS`Pb l]w7̙Nx~EJw߹ "Qg&D4 " B1йX5cf9M9gbK)qLjƦk\g'0:@4%nwc#`E"!j:i4~2!n\i2s}@볁yAE$Xhg`UbX,kь"r](b yҔ `J/7Ltzzz>1\'"9 "r`LbZ@UUrVUD% sTLLU(dH !|c b‚SSYoSN7_>{iZ=~|RMݱZ @5i~ hFA;^F s? &\r\$¢vwk*l;NkbD l~[-r":ERVĭ.:]+C$"#1~͙4N=  *I!ZLOi{jÞ9|yf 9YF#@l!$E^%e3V5af*/E)'wޠ*(G׹8D=3IՁ rۿJ:<`SDεBRC"2?O;3[/W"&Թ<G-eP,8.-=@.jC>F.t}bDBZol>~Q/?w{xWeS,U$5uϷfJmԶCH)vh0ґBه<)!`9M}NijZ\!Dmde~rγb8>{js~|l`<.$f{D:Et`jkͬUZoﴁl㊄G#,늅.\kl3! J{MT8a,Ӕ͌[Y+o#UY_| ,bGap'lσoPbZXs25o8*9j;i>d$L ]h|m)}4>wwPG"ZӀAUMᮒOah.M@a\$ժP朎U~>3PÌ@46*! ?&s~#_}? Xk`@WI *B@dSs9H`^>n-^CBJw&Wi37@)2$@dfXή3ŝc" kC4@pp>>ŽD:W-jF6p}~t.H0;(9-WTj.ÆD@@쳋asA޺]B o6xj#en![\q֨ L(({NŴ:b`T0ZU-UR F!y#s.of?e#_+m0 Pg.bW?+3^z&r$ffLIڟ\kX+Uk @SC蜲R PLỦuueSJZ!kخbTUA8اq"T|&\σ#(Sa(qBK5\@kX\X4|"`I~>́sDYQj35*"Ho:l*'ƒW̮>Ղ%门ݧ{_p󩂊DGh3s|C@ f'@#$@+(X-@uA[EU;5\Cb\ZP |Gkf$EUUQDK)TW9~QFƚ6E;WM6ǃ;Ӆ&޹P;( 4宺2+]ÀD!R2"Hcog."8"buA@Pq{ _J@̗qVUQj7jEQ k.?tlC^!l:T`fސo>;̧C#Cs9Dn 06rp$pTgϚzѻշ99m%g f@GL Y6";DtyS.'qzoᏪ!FzfXLZKT/1 oajz݁Eĵ蚴A5Q Egs}_3_ìQh5Ӵ2 @ϢQt{&~XRR|J]3R?w&vD(`h&tp;z|**43{GU_q@ϡ -}6/FBsκr 08%S $"5 @$%WVuX-xJff*PIeʉ\qW|2yDLGVU)^x/ `CVU5!9@DT TJSPJq񵟛G7AT6 'J\k] sv{Lf9f69 ULHh44Ft/gf ʆ_Z]QqUջ~޼1EJ)`R篣ە-ވDool; Qu!`66ЫS6Ja YtK3P8xSv.y{^ 05!F " K9'PZr[qѩyg&o8v-VoyȗyY!~D"Lud d̡>曨|>L2,)#f=lZTӮyt-緒@q)6IEm|jOA-#FzU"t^*4"⓳mbH)7Y8<[ Hcx"]rqL NgW2U ! D_s ԲUݘ 1`qnb"V^jr. 41l$8,G 5'rsi֢B}XZm/\rRXS]!Ak|K<`GQl;9HDRJZRHmwIZqQ:?xh#yd uPUKI*J%RU^wJln ku.NIDAT6l5* ^%A83PZp=Z{K_m+rA:GDPD#}ې4-bZ@)ۙ3Z(ӈt?] y$F͏&␥aZ0| 5(q擪ml[7*0>xW)pvc}թGe]-H#mE|oI gEBnךdUk;QA]+ h~qF} G[PR5"s"̐H3 TV27;lV|rN$RJs^Qf~ܻmچnyIkU~>hGu^`R!U]RğęLLwD مGu#d]BDK~Tp#P}~~m,8v4V``EJI$N}*4p ΊoCs@j1[15rN9甲8 H/s8뜫L!Ebg 0yJ`3)CD윕HI~ZVRg$1Wnާ=դeг:T翹9@J;,1"R Ǐ) U j)df8{I95U> ֔P05RrΕW g̪T8 'Y0,Y9)G|0"iʥSrHGNb 7+94M3֭^R76 hf@NHY)R:fC͘_kyCDSJewU-9lG*|K)xZcs;lx?Q*M,,*Ѫ*!̏.қ8fѽ *!}"Y)Q\LDpGU ŋ?sSJd 1oux*<vU 1s%[>*x)1aȿ}~ڮB 1v}ߚ4Lƚk>/HNr*9Y_?+Rq])eg3?)28N85Pșl}~Iu/t)"%TU~'RgT~~74M>2p{fxٟsιRfsi8:]5g]Jy~?MSefvT7=о K)RjԕfGSuջRX(MSN|li#MS>HR|e܏ϟ> bID{)eɷIV\7p}y8N4M2qf1wq;XNNNE QeNvLKγBD7PP"-r<#vn{O!",>??! 0 ]""+8Ĕ򬖈b`*ӔSHԐTMaeqrrzq1zٰX aΩj-{_}3 !D&(B ,S1M)Kf7vn/~QO>==]Ni*kSKI9IUd+~ T~6P*J'COkz9ͬUNs(nF`7FSCĔRqC9q~&ۏz}3MUrտ}@7ϕ/VOVRD4MrrkJSJIB@A;n\*AlE1.oH+rΥL$avv})m6q6vׯoo>Fö.˿gjX,CG#spzu>SԜoj6uoVg孆L @Å} !3$bKd]U~L0唦4Mfl67/ok& 1o9 ?urZ b1}?t] 1`;1PcsѧfK@PϳnBL1v&^-UeG/nRN6MӌU"rmz^߮UKO旿k 1G?zI«a cp4qw)>MU)R<[57A\/~rJ_}ɽwaY4;Ms#؄sui&޶^~nM4Uc9~Twk4Miz⫗^ܬGh~ju݋r P;uoοoMq\`)pNu3ޡLmݮ뫫뗯^m6= ðX r臮B p0PPg`lV+XjnhTw :qFѼ R4M)~wn;.~_Cx&IENDB`skladnik-0.5.1/src/images/halfstone_4.pov000066400000000000000000000005061457640636700203300ustar00rootroot00000000000000// Pov-ray image source for Skladnik // SPDX-FileCopyrightText: 1998-1999 Anders Widell #include "stone_common.inc" camera { orthographic location <0, 0, -50> look_at <0, 0, 0> right <1/2, 0, 0> up <0, 1/2, 0> } object { HalfStone texture { StoneTexture translate <0,4,0> } } skladnik-0.5.1/src/images/man.png000066400000000000000000000357761457640636700166760ustar00rootroot00000000000000PNG  IHDRݾPgAMA asRGBsBITO oFFs*tIME8r $tEXtSoftwarePOV-Ray 3.7.0.10.unofficialqtY[tEXtCommentRender Date: 2022-08-22 18:05:24Z Platform: x86_64-suse-linux-gnu Compiler: g++ 12 4 IDATxW$y~Ȉe89IipAJ8Yp$ :xw;AXrx?]2YQ.+{+rNdgfw|Q}GN*\b^jg\쇉<jo>3'ՒrF_8I*!CJio+"eIR!T0J=j @S څ'KV;Bfh(as=w~7;xb \@IIi$Jn{Ӑc#&IEcmg2sj?|BZsA\_QDq%IQFI%1.@_I9Rc3(Z!!޾v}իa|zco~[k\_owW[ G˟ $cQ1) 8F:Tܚ0JHhuhmdxiy'g7_ykkJ07kџ,D0'QƉ!a"uhrFQJ)ekhMV ?B)=b!a$N80JQ< [Qʼn

~`aħ}(7rJrm4)e*e8I$ $I6el>svWwXr"\/~QV˾y|h`G[RBtFũZT<c}rw9J )D*!${4N(MdTDbƫ|`WM ҹS'Np1Zk%R!Dj1J$4JnIrZƩgG)@%o78F (/xޫ;ެ`68h RC0n0`8UZpǝ쑇kʩ3I*:߼+ou 36yՐ,@FciiK?x=~%(#L Sk4apMa08IƂrܹ3g H\z7Zo'~jW#Z!pmS(U r0Ӕ*LCz͹3/RŕSZ9u!裏^{_~yssN]Qhee1&0(5r4*p ~,,'ύs~˗/?3/__EQtHGaO?O~RijchQccƭ̀R8s\WkORt]Rj7o&Ir#rtz'`$"cGӋ baq8RPoQJ$RBVWoMƑ9(Y- s9;q:^ j cJlJyDSG;8aTj b5BprvWAaXp_XrʥKPczJA];EQEI!!A Ã;#!G?5XZ,F19wܒ `08'Okw/&G΄=++GaX'6L(J~ CTTj)eAhT*~~ogZm=\޻f{lǪ}D16I(R)ƀP0 m~!?bGӶ( C!8r9?1T$~_k}g@q}u;;4is^w$Bt:Ggc#284M9m&pd̞3dMw-NhP@)畃\.7%J)ˮub(ʹL)}ZZcfԤR\.W*Vut8*=ӋLei&VY1f977WrT8fy΍11  zF~4qRRW?Rn$ R9:\G뺮okkkS/Gc?cqEp8Z7Z6bk1[0z4o+FPw]\I Cn=yB\rhAw-IU$In<89衇T*?SگZ)2w\J?2ƬJ(r`0p]leuѯ7sbSvvLxr4Xz͵c^c`c,_v ygyBɓ[<>Ckr`_%&uN(I9(%VkZVثG,{~IXv.@88Rb`lS> Bcz=3abUȜ g>&d)q$zBQ)rUkKv^/ W\VV[fYnt:aV*[=sHNmWa Omv*$!^Ymdj5!Dߏp+ ONh٣3$h0VRJszKx"ۘ?OX'Itkkkf o8948w}+B((t:VnZ-) [ a_U*u(My˳qfGN떿דm;:7E-EQ߷ 6/JAA~T)<%9/lh0iZVQ @/^uZd 766civݜyZeY˕GyqzӼ:+y~aeP\. }V3U*V8J4MRAPחQ @~{kC\[;ikm0ovVX{W.1rfraE1$i}>&usj4OIU6جz\fho=$U r%tXз19KKK{C7VLlOR)˽^oyyٳinllܸq^վq5 J2d͛7 г>;^i"=6ۯ'N<亮w4A! !DO==s΅a믿{FhA`PgJZ1jډ' MVoo6/BȺΝ{ꩧ>m.(oȚZ<[b ~iq]l)&L9a1U sύRT? Pt:{YXXx]5u9wMHRhegrP Y6=\w׻z?{vݩkWX,W$ 9s68'+J27\[]fbzz=ST?Eg{_`'[oyp[ky5ٷuݒ^,.̭sSQsw1{_@3) ewN Qb"svZf9^ QJmsr9w57oNM M D^B<ϵ%R[),/~Μ93&ym V9&k˙ .mWɻyvvl:VphÈ簠+奅v9!L /qC9}?X\8766lB{cܦz С„R֬'T.ۥ-QZ$AP9JPom/tzG FiE>}z86k:tVC6=~dy6 /_t=|*8&pN29<(yjyiޜ_S)9p\;zgf'SjPjԪ ss'>a^reZr wmE+EkC v҅s`8 as_*?l>p~ډ+rRrhaeϩz~P.;|8rzy/e>4Cb,f}~2P.5%NWRZ _Pd+yMQ܎+4OCێ}w9a%0`P۵]3I΁f-c3{Q Tʍ9)Jy۟X6ɖǺg!;hN]$'OcO&OB&\{@(@@Jh5``I9NnU*5U1FrK C+zsn{ȜY{ !KiZ.áWj JHHRTKiMb0 ۝n^o7۝N z èj3JRMB8[+:5>'}gRZlTwq'`[;X{Gd;j>u}llmd8$}H@@ )Ѩa8no]o6ZkfFNykkFkC mŒA̭V0Dje_+o4$9z Sk/sZ)2I(l;Jwg,udRD J(no:^mm[7nmR=|~]kBjJBu(`%1Q vd Cξi퓘 .Wse%IDAT)ud e̡auq<-J{srz50N6'SDI<è3:Aoۖյk@yM !?1d>A*UN8,Ɍ`Nppb8^/yecֻJA)0Dkjh(!Rι{fcG.jUM)a lNYommVo4K@t3cƨ$"QNLal1pqp%ZxZ`\JH !c %ij J45B! %Z!q<{O/~E`D* Q<ڃ7vontz͵7,=Μ={D|MRIV+9.%UJ8`KS^l/*ݒDݴo6{by?< =aްntN;huNom}cmc5,z?āQ|KQWJa6ղ_zV|-| JH׳[" S$QQ882B$j5^kE2,C"U4iTZPvqeci=qNF[zotzFjCWJO>5U$o JP/Z9VQC˾0!d̓!yx{HNXF`Lj-8wl AkcI"jEnC20GpO8pDO:7767ڽvo[7 ${Z2kz=ѧϜUJ;'zuQ U :p9tT9"{0%'BCAi7G}S@" sF[4zǬ鏿7 =77n\[kkVʼnb#=v]T;PWY_oqQ}sFtΐY2x0iEJi{6d[mڕ*XdJ(c[Lmϒ1(.ZuiXo_['WoadFQ?{.zrP~ǟ\X_ u90CX})*IZeKތBZBjZ8mIĺң%쌹wsb;~Oũ : xq ַ~?ݏ>oH9g$2g`IGyԿzz@m>!!*% OizD-Jmݞf0fSISlje-upY`vzͭNNOj볛_8ܹW=Ig~ C?rW}GׯsN` %Bޅ֫q^NH &FHiØTk(, .$5kZ+cF"TDJ1Iw]sqJ:2ۣ&c` 3Mb,u?y8NwA4@"N0[,=7,=sssWytnnJT`nn^W^5HM0q'B*Šˀ9RZ{ZCkR┣5Z  IIL $2k\7ܣt,(4֐2КXj єJ΅ƥҰZ]\_Xl@H)H(n5vsgctNAI`=i2s6eƀ(T wzNQ~z?! 4PqZscJZ SRBb)i5ϫ8O-@szGWiMm18E}sH CH ]ZŃa76;G07 ټ1,It;F@0\YClbkkR(5Hu݊`(797[MsP8Rܨi/m:]k3zp@)}|eB1T:t(j}c}͍067y|TBAXrS4yhK(Lk JUj|-g(B*qIҔIYNRcc3NSϱT 6aHן{Pb#G >+/8N=ϡ@# nv>鍵ՍӔ!o<̉/d!D Hc H Ble-XŖ0m$J0"Lj͍ {l0~*I ʵ|~sk׼?j1cO1/yuaW[$HDOGF޵QtwZRCT")JE @8,Ic؂ݬwe5PPJHi׍:`\ ͺ_r)!R$)VV=Grr }_jmά,V3NRi͍΍VR&eozV,6آu(GXJ d$J,I!H5]r7PISSR˜&?^{wPZ^%_ZwVws}c}3NR=yszkf:$BQ[~o1!I)G@P*(M%ӞƱ\՛&JAQcNOpkgIIZ[8(IӨ^~vVv9ƤBC{i0TXXX8j^69gQ\K|vs!̩LS&݁㵵)2U2w=%&% kGQQHitt$Ep1iјFk08aݠTҎHΝ?kサh.AQ`Ą̈̄ JSBr3SSsĹbzEHi m±R yQ1 !d)E6Z=hu6w\5p|hʳ9N_C\|5!Rj@K>o̫Bi+{wJ DFYYFk5|hrQ0;ܢ0lddv&i <[К\z[yTJ:;0|b%v4ey.p>s^q-bc"c"C`H$ĵ4!vL1FiM!hctF m{o 0IVj w6 v(um{&2fD@@ 11R4P @<[F[QhbMgJm((ѱ.P޵djd-%#1nxН.l.@'{RP=ֻٗ@P@ H2\PgfW!m9CfwhW  YOQ8!3I,$ĎC+ticBf$v9n΢kZxEVR ԉ>3d<@ϰT,N67TqsGМ:2]< " ̈ 3˕Φ~rdq xStAa+"@h0l}ԃ-s!."@ze `Y7:ۢl@՚h#+ o:@!pJ 6 rtbٟ g&1-UsÓ(*NQp'{YnYq3_8{rW,3adZ1,#n%stnDhm#נ4a!ޟ-FyB()@26O!< @h{٣0c fCfX%I~6?N̶<PBb4e49`h^!峫 =L!s!#._=0~&%=mG,WeQR/}e'7;yaL};&3l8s!L`kbziK*BPMu wrׄ$%=6YF;46춭.0DgWHp*h5px6 N+Iž5ak C<51a 4[åbvèH*ȊN hWUM8 aHz;t6T!N}"= axÐ('@d/H*d3y X5ސevj wÐ8.M~~4+,sdIdi lv |: `kmr{P*[*j2&ۢ(R_ġʬ5Kj ÊY D3ȶBE6~'Ǡc5KSfl&#Y(I& =} iVpԀJV`[ʠ;HbMQY( ݉~Q6&m 9g5>nh{9l8K=2EW"/P?:T%\Y']`^LXc@lVJ6@Ͷ0>O@@}{Yo o'LFA wFϤ㆑ -_ihNYz\t}ׁ.d]lՎ]iYh8  #;-^D d>O=e@D`V#YHJ+8@yfΝ;Qſv*ovׄMWJDŋ'we;v5P.aat;:B24a6Ϝeɒӧ%,%dermlȬ${ a!M%8uҭƛ0Lf(4ʞ P,/c1Q+6]3 4;rzFӬ,.6J'zH9@bAId_ek{kqQVhcdWd&/ao=t ׎J%S* 3o,o9lK=uFݠ(@_ʟkH[@6a*_ad&/Q3;ɻ l5YH#]a3ZOIt&Na"HTL[%Yu_znFû>дd8o' B]6L (a߾tY1^DŽb᪻jIn6Fm}j\|9lF[f(*f! c-HBV|~i'zW 4N8@cZobK$@a ap'߿rؘl̗f Rwńi ;}a `Qb9l3.} ShƄk LMRR͘Ů(%DaLr:Ԯ2I18:l(M'RXL`ohPOJ&|X%`ofsl\!l/&5a'vtt|H~řf4u\!lnhZis尢DjiH6"¶hry"j|eaP{ acXV6Y>.&(5TztS#N9u4N<8dʤYwDƤMIVGLcl/b[,OʾjG0hedI0 Y1F_NdHabJ4a&M$8a3P^6H6MrNt1%@iR؍m$ݞtI4-@3@Q4y%uۭF!̊ˢ4Ar،$>v:f 0vhLPY;ޏ)1<6|JE~rؘwg28c) K-ٴ3=i!J캘Nѻe[u9s%s*Zm}s @=Wp+@¦0&3\'Lj5P@:@ss{J4 @ZXR>ׅ0@شg&3 r+hߚ֢ma4N-,/w?&`2ol'@;M jгpΖw:x1=Uj;rnNt?S{ϟ3|_̝ߦ w@%mܹ3܌ɇ~ `X}toUKZ]x$(ׅt1 w4p;-MMb٥]IENDB`skladnik-0.5.1/src/images/man.pov000066400000000000000000000002461457640636700166760ustar00rootroot00000000000000// Pov-ray image source for Skladnik // SPDX-FileCopyrightText: 1998-1999 Anders Widell #include "floor_common.inc" #include "man_common.inc" skladnik-0.5.1/src/images/man_common.inc000066400000000000000000000041271457640636700202150ustar00rootroot00000000000000// Pov-ray image source for Skladnik // SPDX-FileCopyrightText: 1998-1999 Anders Widell #include "colors.inc" blob { threshold .5 sphere { <0, .4, 0>, .2, 1 pigment {Flesh} } // head sphere { <-.04, .42, -.1>, .025, -1 pigment {Flesh} } // left eye hole sphere { < .04, .42, -.1>, .025, -1 pigment {Flesh} } // right eye hole //sphere { <-.04, .42, -.09>, .025, 1 pigment {Flesh} } // left eye //sphere { < .04, .42, -.09>, .025, 1 pigment {Flesh} } // right eye cylinder { <0, .415, -.1>, <0, .4, -.11>, .02, 1 pigment {Flesh} } // nose cylinder { <0, .4, 0>, <0, .2, 0>, .075, 1 pigment {Flesh} } // neck sphere { <0, .4, 0>, .05, -1 pigment {Flesh} } // head- sphere { <0, .2, 0>, .05, -1 pigment {Flesh} } // shoulder- cylinder { <-.2,.2,0>, <.2,.2,0>, .115, .9 pigment {White} } // shoulder cylinder { <-.1,.1,0>, <.1,.1,0>, .115, .9 pigment {White} } // stomach cylinder { <-.1, 0,0>, <.1, 0,0>, .115, .9 pigment {White} } // stomach cylinder { <-.1,-.05,0>, <.1,-.05,0>, .115, 1 pigment {White} } // stomach cylinder { <-.1,-.05,0>, <.1,-.05,0>, .115, -1 pigment {White} } // stomach cylinder { <-.1,-.1,0>, <.1,-.1,0>, .115, .9 pigment {Blue} } // waist // Left arm cylinder { <-.2,.2,0>, <-.3, 0,0>, .1, 1 pigment {White } } sphere { <-.2,.2,0>, .1, -1 pigment {White } } // shoulder- cylinder { <-.3,0,0>, <-.2,-.1,-.1>, .075, 1 pigment {Flesh } } sphere { <-.3,0,0>, .075, -1 pigment {Flesh } } // arm- // Right arm cylinder { < .2,.2,0>, < .3, 0,0>, .1, 1 pigment {White}} sphere { < .2,.2,0>, .1, -1 pigment {White}} // shoulder- cylinder { < .3,0,0>, < .2,-.1,-.1>, .075, 1 pigment {Flesh}} sphere { < .3,0,0>, .075, -1 pigment {Flesh}} // arm- // left leg cylinder { <-.1,-.2,0>, <-.125,-.5,-.025>, .15, 1 pigment {Blue } } // right leg cylinder { < .1,-.2,0>, < .125,-.5,-.025>, .15, 1 pigment {Blue } } scale 0.95 translate 0.01*y } skladnik-0.5.1/src/images/object.png000066400000000000000000000264621457640636700173610ustar00rootroot00000000000000PNG  IHDRݾPgAMA asRGBsBITO oFFs*tIME''$tEXtSoftwarePOV-Ray 3.7.0.10.unofficialqtY[tEXtCommentRender Date: 2022-08-22 18:05:39Z Platform: x86_64-suse-linux-gnu Compiler: g++ 12  IDATx}IlYGdUT%"U/Uaݞ13ðO᳁C qbbxOOwEJU($/#dF&I} X^F|ggx (_F=Eп)NJ$_aĢ=>t_L=ZYZtc_&;2E BaTmn] Y&/./rפŎ?@.ZݐUunn^q3_Sk;k5"r\Nlf NZ55 ?[_Pha~}f~ 6VIU/jl~*Ë 2\g =V݇k=8~R|KWeGl}ώӳ/[ Z0juZ\X}+9o@5t 4 ̿rYY4BuwuG؟xM x:vNCoAp\:~xM êO~}hqk (CZ Oic4Ruouh'ŗ5wx:s,?V~Q,BuTd׎@czyAP2`nf@O{V~U׎@ +B{+7n uyd׋@[P_鴚N ףlv(_dA}}5"PZ`Mf,2Bh1 !{׬Olt(^H )M3eCu:{\(/ST3%n{]r٬8A]bkA`c^BȰŹZGܱkZgV61[/c[ >&#;x\&Z6k/ {3N/ xx<+N1Eg[ܬ S,_Ȗٰz=8|YmhǙ1SZr/`%!M,-wNՊrU&?Cy j:]ΤvaM0/XZ,f<o^+K1E=u3rax%s*,!O$@6$¢uBaH++K aɛݥF!lT@NcHRP@QPB ܴi[IW+)T?g[WI] ڇa} yȮx{V(-8 =\2PsY7>A.eg7xI ]J@?[+P10bP YgoO[lhXK7_]9 ;7nF}ϼ`Z.=~R*o8\l$]\B=n/E_]nBd2J&c{P3$'lB}|2{@%&Иwp>xp~/#Iۋu$Zs{ w4l>1ٜ7]8]#jy{:P^ xUYNp.?T8.^@f,.JqgF$ESZ`e -^JBcBG\RHLy(8\Ɖ;ȷ`Bd 1F!ɖ#L7]qWa?s0kU+~,sD3$xӡ"Z\Ʀ@?[]a 'E稗_H#-3jGSK2zd@]=ax.^5P\Cfr)KCaUcy^`Ù?i>߱e }ˡk<,^*Eviӵ'͕4{cWΏʥ-0+Zq9ŗg]}Bsc24 14fe} 4j>j6p~p:R`]߸O[&~]֯<#/F06'{1 6,X?`%X^`5vFa3ǎr{5Cކnp]|U`lqD"klͽÆŏҲğePdK? yeޅ%|.0%fG CN6qN?{)ZՆuw%]l烹Y8? x}JfՆgϻ(3%W`+Ka4iPBZfuwTB?H.n=,[iOh6_8ligL@!4CcK#?iZh2_J%Հ9`%S0@:(lIJs&{DBAa狾#P:ٔYog( z\ e[|QČ[N2 1$ݶ-Z,o<>Ѷ"Tܖ'Zkԃ9kX糹&/'rl֚Ħ i,BrH75!a <vwO5Ȩ>_nԗ1 !2  \F8PU9^S^ T_þ=]̂#ТwaII!F B %oע_s~/Ik:[:+%0/ 93u' `l_&@Z qc9]_pUd>1?7W%hH"kX!/^`Ez/ko tʨ0OaDqРmgp^eW/Tuv/<'mykgE׉@ wHrˤӹ_Cpqld:bUp4!`ӭ" ckIH&!5$U8 PK2F@c `m Α]09/örNYzOw?_^Q%,'ִDIPӌ⢻_$M ap={'cD J ùHXj[5fIP?纵 -8)0L_ 6#cq?g&@<D3L8ltϦM@)? ^u\$ I6z/eA7\&\\ yQLU}hܴC *n#Ŷ/Qż Ng~ù܌8ɚ0 Bba`4rm8"TQK@[g'n,Z6ˬFQА Qd@ ^g Kٞ &e0|lc0[Mrv7Mpϛ@YR>ۡdC2\XzN9^8w%rL6-XG5R P:+2uzE̜ku\+5;Valɂl7_;88 "uy9dA+p' Z8W $=zljՃ=Ne}{v',{`V[(Z|[T#vEל܀boL6\y!  &s}> D VTcuݵ(c1JpW6j$2q <@a Rn~>k7ܦ 63ͬ j摝xnApyH:m~GZU^rb1N lR{i? Y7 n2eUأ qPF|]b0YX8`)c/[WYfu1vǡcmP@mIi_E,+&u^ |vՍ*^JW{04JwPE-ɉf,DCT@vE@]rl.jN8ˏzTwl ـC=Ud!U"=x8 ][=p{_PB{Z *6{@^:?-),4F@!ȊRMb ; d[86fuh.? @.g΂"(iޟNw C{25a3Nj]+=ma:GYKμ9qEfA9$*|uh1iZ=k>"iry> rC-.:IQzM(ԏk 42Yr]Αu@YDq+ꡰe<P*f:b- `(-xhok -A$7ȺF (iw2eP !dE^U42%w=$H y `rr&Dw@FLQOג%c|f~PVp]ŏGQJQu G3;<(()H*nGwBK%әdlWHpnuKscOPbK!B! z"*Jdm# .Ť0Pd-qE%Wq̺ `W?vonȺ@cj%Pe=㍁] -n;s;7n,$ෳ"@rq[n;JydK 4. B9"!|1=@H:hq{^HQmx.;iYy`l`s QlX7;~"*2Mk5̤_Mq( :VI)/ד:MDG ZQnw6}ɛE܊JQ igikB-AwveO# ̐[^iڒ߷K M w6qG@N;BfϙW^,ޮ ̫kzdm(p.F /!4pGfBCU¡vꎇb" Mvqi@XݦItm@y_p, |ZPw(͞!8# ֌֐^&DN6klu BYvQ;n05 B O שrKn/}p6Y o<& [7@Ozz=qCj8{u۞Eu;8-ӳqMF *ng(JBi`.窿AKJ4T[0חCS!^9P61ׇ;?{W8#֖$tB^=S^o`iSX!cV@7<1L5 CZ@ήM3ZmYU[HCT  o<XU(CrsG\_+䐵|jS cCݛ+ۭ['q+%C!T[\ \n0^smrFkΡ(dg[,?frkDQHXg =`RT/egVp4Ӵzaҭ&ߟC-ǟ=gy ZLqYQXV8XG EV׽cVP×4E<[Og{ um6H/YZmDCpŏ@GlBtsY9//eC!$U*G)!Vḿ($?EG elV\(dcRs-}o#kF6W_N>e[6>acL{+Ч9;?Uѿ\\1"j']ƑQ>xCA6NզIe(0^IeH mYRw&1TT0K?}W_?%" $.BUK$TaY6 $:%y9 3f&$I"I`,H  C"2C P Wߎl+alH$IDn "sNG:9Ru XuY 625< ĀUy:*֧b _0ll_IY!||2xRb~]H>,G7(Sm/f (yʬ'xN lH$"${j3A$g0vpU%ITq| }Lٟ*x`R#o5qT@R,:o!ɍO 04M1+\wf@dw o- !]`AST!6u4s,Oܽ{f {ͯAfS##= !7ZGfۈy @B t= u$܁9b3 &{d2܅2K) h29HK"@8NMVUv1! @a\Fxk$V!*@$AB6 /z8ir5Iߥ _e@QФ9+Ic<6ٱ~޹{G-@ $GGb]6`4L^)%J '-  FI >bid '<w࿲A7:n ]N }* Bw,- "8iܓ3aGZM A"..L޽jw}"ݼ9X+,pgϦ . 2/1DhO'hf{fn|L4e ߿WXYiUmѩ'>022]#SK;s6!)}#jcri 0YHYox |]Խ{o(DegNIyH4$1_q>$%Y{{H+u-̖HfU8jV(8e>È [EP5w!И ڥ,&! ~]*4]DғVJ:P CԁGv$ sf;y" $ Z wi)]^tW޺,?xP4 aPlBZ.y@qS">A$f^7lOS|[%P`2䩻wSM d!:8?)SwHdGf%kKMN(p5(.<[BoMREvqov˪$(J2@_o !J. IDATd EAD0>Ш7 & u^vERCCKC ihh@?!8G@Lgyժ0ee([ۭld+FN$f/;e%{H H䧦N'NNoD@t$%1{@ٌE@b!rMYEPKE@DABm]\Iw/68wn rnr2/K,⁘#zM"v  " BjO~!)$ si;iPV**-o$i7z q:~\HII]Gng10H "+954dc& 8yI#iHF4GFG:^?F#'R8"hxBUGO}xfV& ^}'5eYUXEA\f'@Wɩ}8.I`QtbzpF㱕 OI<yPhŋ]wl|lUiR`=A }p}Jm>:]ǫ*p8s 0}ニ 4E}:1&3*ٷG7fH*2jumx>DiCtcr< H\hlyyꝻr5 K L/rSjY> tc(:Ⱥ$NNpZw6 Uqk`No@4{T 5ʉLؾ=Iɮ@ -tcAQ:U]EEG{Xum% ]?=Ev!#t@V ̡`>W?$UaCoݼ)<ߡGK ׷R[$- u%* SBu1jpEa`1UUpb ,ܿCo @N'cqUq>I*MF)3<zhSzƪ`(Z҇fg=ipFR!.Q&7n \6l<՚ScCUs}IGfMcP4:s|d'Z#@i HhqjOJ A h$lmC岬U`Vm"`h'06yH2 GGx У_@nf?Nd3]E*@5z:1vȎj>ɧD H|s;du(1`/#I7>y~N G3;!f @*dž A:&0B5k0}w>۴h{"i4hz2GY1 NT$ Xö=:<*qȍ7~hW@諑ήH p@ hjR:>h#}o۝[\A &O&rGIPH*+zT"F V_ǃÝ[\Y¡cLA$EF..v>D4yoEU&m\n|( DA:Pnɉ|Z~Gdr-rU'61( AR@*~Roffn]jq-@c+˲NnGqUIueEIrh?&B L~T(V{@.O`X/ӽyz"P45ïJ"A8A`2Wl ¶O*ifLhtee;<+]́?*s^؊]G8Hd3KXv^Se'E+tPI\UTX##KBp۲/EQ2:_(IݻS~+K\^\k`˼*dzyV 5 U([ə ԏsם@_cS>( r*f[kiTp"I덡/u|7S7oa6]j|15PòxP*iKw?•% I[|zumR9M. c#LWC&X_Yu4 IENDB`skladnik-0.5.1/src/images/object.pov000066400000000000000000000015561457640636700173760ustar00rootroot00000000000000// Pov-ray image source for Skladnik // SPDX-FileCopyrightText: 1998-1999 Anders Widell #include "floor_common.inc" object { intersection { plane {-z, 0.3 rotate < 30, 0, 0>} plane {-z, 0.3 rotate < 30, 60, 0>} plane {-z, 0.3 rotate < 30, 120, 0>} plane {-z, 0.3 rotate < 30, 180, 0>} plane {-z, 0.3 rotate < 30, 240, 0>} plane {-z, 0.3 rotate < 30, 300, 0>} plane {-z, 0.3 rotate <-50, 0, 0>} plane {-z, 0.3 rotate <-50, 60, 0>} plane {-z, 0.3 rotate <-50, 120, 0>} plane {-z, 0.3 rotate <-50, 180, 0>} plane {-z, 0.3 rotate <-50, 240, 0>} plane {-z, 0.3 rotate <-50, 300, 0>} } finish { ambient 0.1 diffuse 0.3 reflection .25 specular 1 roughness 0.02 } interior { ior 2.4 } pigment { color rgbf <1, 0.1, 0.2, 0.8>} translate <0, -0.1, 0> } skladnik-0.5.1/src/images/saveman.png000066400000000000000000000533251457640636700175430ustar00rootroot00000000000000PNG  IHDRݾPgAMA asRGBsBITO oFFs*tIME2f$tEXtSoftwarePOV-Ray 3.7.0.10.unofficialqtY[tEXtCommentRender Date: 2022-08-22 18:05:50Z Platform: x86_64-suse-linux-gnu Compiler: g++ 12 X <. IDATxi$ub=k{g 8 H 8!"4A%Y6.$hY:d&iǒ}HZ>,˛$ʦAq H`]k?nȬꞩ_~w}[[~j}!c 1RfYeY$qh;Rj}}})ރcLB=ZmN,5QqfM[_rs<?l}sZm|GO!X 42,t0|_oAqV?9둷?( LX c4F XozǿAAoxOZAA0b k P @ZXx x¹/u >Ãӫ? >8~Z|luBvƙ/(]<?^,|@ p 0,871%:˜遵'q@b !߫WBv/<!4|ok FSX3E9 |zÝt|NT+bt׀zETZkm6M`r0b=(o!};·`[TaTZ)-VJk3kZU<ϵvE06 1kf k`Xӟտ QLp#R[۝griuwTJihct2ƒ!o=yj0ZCs0Z0o_ +a}W>?Vڀ@*HyKNwN[ F{άJRkW.1~gVZ5# ELWݿ?~퓏=tjy٬UI/G4xcO5V))%smk-+{y_PTC_#&b?pckˋF8Nv{D$~>OgwP,ihc?|?׿[ygF<I<I<ǙT~eu1F;$!iN&9oZ:NU9Pc$w{CkT 2Jkt=ÙT$d$Mh2Scoɓt6G0%9NII߷5 XZXX#tJ6jaisA kh3JK2)LYV8NqIp&sĠaҾxPBǙG%*rEh4Jtqq>>;ț@S$s_1-ǖANQJUC$M+aШV;ZiIg}GC0BP䚊Tyd2\YYyDo qΗͦ3zJS,Ji͈R*p[œ }O)2Fi#=%gY@k#n*͝3w8 FE},ypD)z:sTDʛ!9_]]m4$B S iZ< 7%aE(JLJ*Ϥ!yPfC: |Z%tc]yYbgZke"~L.YkأdYkYkoݺ !ꪋY54iA$q{RUb񚨝?ǿCG_V2iM=iYei:M%y 1NgUfB1O鉲֒)Ar{Xvuw:ZK!eQ'V zkz* \E^_|t;???~;/cRJ)Le*eei*)z8 8I'IV>x>ɒ D$z%ZtAEIW=sRKO&Vs,8񴟅ywÿ(shhԒeRf̦N(qN,JE{3666:V1`)0Ccd{JEO"+XT2Uʃ9_YYُ{JqqX%&x<Ԟ{g^+__oXj94EW Tq1șAETټ跓M-pƍN6`V 4;"bHhœ82k z8!98gLs0.9 p'< 04OϬ[p=?ډ~8بn"ih әLP,VY⁵6*Rg=%zHaFhTxg_?%<>``r8-`KF Lx V{ܹs?ƣ_k6{G~O|#=VYTck1&S"I "z {CuZwv}\ VEwJvOΝ_|E#0:8' 4fprŔZ \X\,ƛ `20lC6Wa~X5kŵ筮>3>lRzje$4HF'qΗ*J1K/Lټ#aNZ 0X Lxɓs\KVkuuڵk{q3:܋>jfv| / "caʼn8`EbyT RJ#!σ+}0^TJɊ*|=kkk=$Ä13qs~ Zm4[n !D^?y:~.HFN|{ !~N{QL;``0$C~QT{XEEZkTDV\z<ӲT9ͦ,W,9=/^|vp0-#$qph%z<rTk-c58QY }PZ%ލ@Jzbtae~00n & At/]Bu$I8Va{IH+WܻqƁ8s]8?W>>(8. pZMwZ+mɄ(J4sIxK)}ߧR bݷYR|rݾGٽy22D?4$58;( MLZkW$ǏJ q|9XRaRQɓ~_kM(RPI%Ir{WjoGn|=>R*MS9t#o6*=ӲLI3\k *K=.KC)˞;TME *Mtڟ.|yy.]*KDX-xQݼysmm^ h%y6^ĐR~>>\eWHzl6Ivw3AOii 08^jV` 2b6QT(pLAh>15 +++d\Ih%YW\yGo@ ev[\|}8{-M *"Yk=[XXZZF]`Ɛ`,oc`0p~E;% *Z$iJ!o| ɮkieYBǏ|^V.Ss(c<[Mx<6ƴfYVK6/m+ VM s)NH/UK%toU6QPdE"k~r T̘ڙY2Z |˷|K}uIf]maaauulՖb8g\1KTD[ .DZX`‹?lH:[hД> FcccԑP]`3=0GKBG gևO>TJZ֊)};|q`[΅jl2'Đ%;q.ٸ3< dl6霳f\z˗|;އ#PqZ,̦4]\\%͖AnWVVz~oV1ܥG=5n:Kk9cW*0 sTT֮F6o6s.m_Pk֚fr$%w0:<]ȑQ1Vl/lShBVsDz ?,KsIQ=!}4AZ;8U(VbEKdHկ>wy!w]xgz)Ϻ$ZW =*p8$Ӈuƺ3|: + `gV1@WNOXx1d6/v[鍍 .ռ#ЬFk]Կ[k)C"А CbZ[VY>i ;%km)L:LLz2cR@&5zbrbd 1Ʈ_~̙# G yR @Zk4z;`~כL&zC5֒ǁ8r (fih.sN87rQB) ðlJ)!u(/Ь7k ]r km~fWxܫ'znvdo2_7ހcJxL=]h)#<ȟ*s:dY>5 BX=E ѝ\X8ɏJ\ ~d0ͽA$Rt:8LRj<;1ƴZ-[k(t`0!5ZT* ITb4Mb I($!H1e 1"sq(\& ꯹fG>"P[^ntaߧ QԺDcrgDBڨHogJ>J}*C;E-6L!!ܡ.@_tFv}(NiSJ+f&]\Sƍ/^<)}2DQ4k>r'r @ю^vwwwR Cד @^@EuR3sIf[cBr5M7gkk{G9,l^^3WI)T i+2wVRB fZk6Mv?hbArcbghab"=PQVȏK| ]|H4WZLJtLad ̂ _+υ=w -s~ٕǏ/..ү!~j"C1rȍ ðn?\}HBEf IDATf.0DgvڃsX!6W>gCAS mXk^z饗^zӥr!DRrXfaTv-7kmeNl !y#]󢛌;իWɍ(ǚ}֭[t@=e~=^Gigcۃ&G\("=2q`gFlrs!%tرMc B󶷷sG1f̠%_Tsao[ߘIgMYLa.uI1UH7 x7Fm-tucs˔&%H^/..lnn5\-F'n|d<#Ho/1Og. f‚M\=k2@\Ł9Tc,w-0 }ݗ׻믃|?( jJQ_]^]ʓE#b:ң-d?[9o"v}~wdZ+B&qH;+44@o^Roݺp0 n<x"J+vkscE ryn-[߳?7v~rL UYfDRSiMTaz%/}\|'$Q2 7[ &yNh$iFS~ǎAp {qw0wp?w{NOxᥗ\G",=CO)[7v/I)5LZZ%GAenT(,"{0?>W2^-my4q=OY{^@VJ5ocDŽ!$:T,Jicl-V7Gd44#~'fѓ8۝~?폶{Ýp7wzp4~7;V :P8U _C"d"'y){*ah2i2'Im{#ܹouanw}gϞްMqHZ&]CD3ƞyYe9uJtWB`1xŬ| Uo>~zWkC1IS a.u:IdNBY4h2i-=/~?=9z76wnl_Nb; R?sy|x RVo'J`<Alll.Fcp*eeXƱ\tYFOt~>P9xctL4iJt ;k!ιplm.zzmͫ7L:0gyYVlNRTafFyPr.КXPd jKùS[5ңKn? ߌ;cb՘ԣ~ndh\xӰl\>&&*{Nˀ3C V#R),Ulmmn FMCD#fv $*%S U|?"\PX kM`cp|? q8XX̓\F"ːMʚkkG6l"dpVەSR[+… ary&f7c8cw#V_@l|OebkU+7 /߮@r}kIMI<$$J/z%~;h R˜i|JqhMϕS1V#d,d,6U*vsA:(r> X:}iFepvR!%A*'Ǔkۗr@V& @Tk4?Ѫ4 ^n*SXo { {fPCFNA VZ6XdV[/ w@8tS7ZpmII2w`IdWosER1<=H"!3Pq񬍌d@d%JƔ}ߏu߯p~=nOK )+Z c8ů+Y)(_$NF`鏶:;p0rD?Rwu=ɓ'0,-&7_f~`Yao=?ߙ2ΖiFwYg8Nnt;A?dI$@Ȁ=;?`j@穵Y~-<J}o,on%q Ҵ.%U*ƴ(JJ?Z@KMhLvOGe)ib`jy<6,PEt#Ed 4unA0,1'^|w^fQ 6Q3Ɣ6i?wέNg7MW@!Gh݌LRTmX什j]zA͝<"<" }͹1VkU*PW1T2kc1F{Q@fP& `َPgIp\ͥ6 )A2vM}ZeѤŪp}%X,k>>;J"krQR׃R8>/ N!S@ƘA]&(JQR3p3/ΰ̰Pc =be0x˭{9rZf___W(G3Ysee%IUׅ>=-K̠Fq©IƮ3<<yOt&V,Vn; nyf) zNSmsy;;+؋!S@m=R4ah+%l,?>虋!Xja{]Jř> YXHʡ =xꩧvݭ8{k8k ܾ'gz,u9Kx׹#fU\$.J. ;:%9@ZKZb '.?Ԭ7i\kĹlgO_^ .muƒ<]\߃^PWK"2t!AV֨)tVp@s@mZ\r~_l.+ܮ)>qy.^^'.]4KB% 0,=smn \)UOt#=@Ih;#nS,p4`x~_\5z U^kkk{ x;7+Kϭ~Ÿx1ؘ1HlpF(f4w΄@6#EɚhAĚ $uz*vK<*Yi_s9{޽^LӃؿ$iM7//RXtn D/y3ҜWp l Kkgj3)H023zfx*+++?N4BIӚv})( 0O3?LLj%(V/r Z{oW땺HOmm\"#vPZZZ:4 O<1M3#G^)&$a+WXժ<=0Pt"reaD X>@R,n m۶m˲74ʕ+9nTa I666ݻ'^z2Hf.irZ?c^Y )X#+_TOhS'# RT>mp昊+qឋ-V>adhVfsggG4B$9$N޲zR$1nУtTҽc$O~K$IbjF!&{Dб,˶Dzŋ Ν{?E0(t`EL Bf?=ܠFV@HFrXT5Mqz:Dz,˲gY7668#j8@TX$HX).tfKL A".`{/4;)Ë q^$d Dmnu/buuu$}?i::E~;w"ۻpzDI F$+L!Mdϓ@mO7~ *D5{\˗>|HcRUa!`.f(҉I k0Q0F( zrw4硇4z\vVK etĶW.Ay*h*O;):8cR;xP #i&1Xx:{ ʁu X__wٳgTO1b IdLd+<@;!ا(A@>L;+1XV/2lիW\u<Iyݽ=?ER9Lj,8 Kl@(SGa]a _u=qzҊLz͛} ޺uΝ;_Nce Ĕ+ᅐP#҃z'e0`HVbxqRdȥ[FG]׷޽V+F~eG] ,M{1zݰV(,rG'q_!JQ#Cza1CJNOg| uuY NkokWӚqO}4U%C+Y{TGv2:c?ٶyHkHOdedY~Xs:f_홦)NG/~WWeb]8Cfx! v @jyzz*?uˮm~pBCd4^z].b3j׹srQD@Q?}u]0 U8! acv濙?8M9ݶ|_{XTax}<.zpr(ʍ70&:O*ضuz\NMMmmmr}̑$`vv0lT!NċQz1P*骉$zx2iBG\.ooo?xѣGv:E a(4Wu݌IG9Ʒ5I":^\H~on}zՂ0dz"2I()!lW h(@RƍgΜ_>Rhn߾wPzzrYwB,{XK)ժka%fw766ȕSUU777vMSmFR^,̤ivrXF6KH(51.LvWVV-ImlSeَCY Cot…hx& ,_""*4Dj4FCĨʊRIj@٥x>:f9ڥXơ mk(4 ow!J%˲Lvq avH$ h6.\8hv"x@~;??mT*˲| 2 ! f\ [Qj"41e,a>xyy9+JE::0 Wn,/g5{4F2nW;\!,ԩz uot01'{Ȳ IE5ZBQrNd4~>a|`J%=5rXuK +BHL0r 8(#@j!,$g'W5Diʣ44뿘$7 ˮcDa< Pt޴#_(3͔g&r:[j}8Np(P YNLF'<94(n ETǯ ȶ"EБGA&DN0]RHb(BRQy, O@yR1_$bca^Lֺ{ 8#*E]X1!&p%ZC6?^ *jj/v;anᱵ6@k“e'ϛF @XaԩHo5aMO @`5%Zh^Y4=]l]AJ,zy@WR¡.ٿW+`q|+9vM@Ug=l$ H[B*Z 0X,wnneBdyWDcq.,KQ̙c^& U%]ah3}V${A*OO D =+;Ο1Иu',O''@g^lJ)!=E@J1gc9=VWGxF!{4IENDB`skladnik-0.5.1/src/images/saveman.pov000066400000000000000000000002361457640636700175540ustar00rootroot00000000000000// Pov-ray image source for Skladnik // SPDX-FileCopyrightText: 1998-1999 Anders Widell #include "goal.pov" #include "man_common.inc" skladnik-0.5.1/src/images/starfield.png000066400000000000000000000226221457640636700200620ustar00rootroot00000000000000PNG  IHDRgAMA aPLTE NNT)*7:,H:< JRL 8"G 8QD',"D#f(G1*DP*dF\8N T . 7 ' L7#9, >><?41 , L )?T )  !^ KKzr;*G9K##% H*! g?0T JG R 5<`jb8 >2, 4,*\&I.7PJb / L )JL! 76 8fP6h_H=-_- _ #"O <$\^ W7=8 T&<  7A gAT_ VVZ|54HJ@ H U7/J v2TJfb"d4 b$#8 v1@ >&4 82V:l?" H f25:>l:6HbJdv^|VNnlJJ22d*:db^|<PP lPT XF`+W..,&KNP&`T*&DB$hl2.DW6W HTQ66|.41&BD G'N 1B\&8_NAf \*&82@2 *2 !2 K HN V& 32 62 h^:|~bV2\& K&72H&8VRtJ&p& lRNh?"=IDATxڅU߿I'7#wS;qoxp9{[xrtZLrs i=^BjJ#IA C%mq6V6Z,OFP" qٺ:e@'z] t5?޹3}>g{.8[޻f!XDDtmL eCDbjfp53UU(J}uP{X"P圻n6wvl6Mee=1@԰bP "b+0rs3Å Ql6k6cgWUPU3XPH"0TcebVv 8UUQEpLb kqu׽k1E 0G7Zڅ9/(Kq6[※[{hj\Dc1U3kJNb_)Zݎ #(1Q1fg#*"&}""p%Cw3{ DL\+s蘅l8z%S C2( 9S@ȫ-z̙KJ1|6wSQCdq ]ֆA־b2^`h\.N,T p7191wj w/"P); `&‹Ր;LSbr,g2k%ko4Ex[nsfUcunDt"`Ӛa"rb8ReakI[j*Zp"""IfP8cGw&r4b n6 !%&څ s/q 0;; + pqWb"rmgARe"(9̇n徒$TDlk|Ps'^",""NZuj@t#5K)`Qj+3r? CWFL(ɡmpb%b2Wr-VڥDPi}Ű6̇xb)ƅLP1#/ľڝݎf"j8֢J' {faX[g#-_T'br NT 1G*`0բL]?0ֺ!%[uL'"c!QTɩD20"S臾Psv:D @9"`91\+-8ͅ*3~9Tt @31u\+ /d;Ijy_;NF5@!G](J9x)f"cN -a=W1\+8ߴQR,?-!*1yLeyIJG &*}X@u'suM{Sx/HLvD5uս[[+w$l.SN|* mKKo|޸#QC X[qT o1泻0x+S%& T̖]Nt,GXxM}[ya!T PNuŝS%a>oJi]Mɉ>Jqw4lR)@U 1`^f*oii'x;o{xSDsC?%ٖ,~SZSglv/BșEUS℠P3hKbKK۷kt趫/W}y1)>JKKXD(N"puLq\[Wܥ@%` &Q߲kɊr|fsؑewj{uP Və(J$noMj"ajx1( o\Q]o˿f_Y]W?tg~ ,r;G(9pbKLACD|e̹BB#9 C@ބ]_7\z]O>ta9JnD1gJPws59< P)5WKQ|*zx;.9y WtzS_z;!$"j"̩v 3gJÝR.t}f&-cNp>/G9y:s3V_++S"+\%Q=հc"5|Nw0tRJklE@QؒIK?}g>sꡇ>uhI kJ(:EN1!"r+"%Hy߹gB_YVJ)P;Af_;w|ғgn|Ʒ9u(]_=rݝɝjɊ)u]~ITCMڏ 0]R/ǿ>tՇ̙ۯ:oIFTX{̡rg)Skg.r͇aȑjE` ҮK/\ɓ_|_ᰜJ1-}Oz"a6GfJ )Es<jRED & }n]WvЇNۿ ąs`s躮뺡˹J\ StUDds}W Noi>]zz#cO95|.Tj=]#8D!K}mcK唇eL LZ]}خ^ҍl~cw<÷tP$fNb))! L%CjɄBk)\sXPSJ ,)<mҾ_Ҿr;ޙӁG|g>mN^8+Pȕr1SkݬSǩ2]SQ(vX1Ҹ@D=z]7|cG=p뷼̳gVIщ <\s99 !t l6R*a2oP$~w[ *W_3Ň~>G9rm3f8(s`z6*BSJ)򐆾0Ry1WʱV}D1S-Q(<5Tu߮O^އ~~/'9v3~CqoLu$(^-99眇03\q<8~ܳ'ŔSrD1m b*ăK/S=|3';G~7|ΜZ]]?NN{PiO9C7^{*{~W33")ŔS>03t͔㺇TFH@Lİ&]ڷop񓇗x}u'o?1taHD0w_}TRRww)jJ̞ʢK@L&L';yMG~O<{fVcW0 =xW)Tܒ]q {0a>CWÿCRڰ6{p03`4Icv}-֯=^هO|S<q6kk|1ĵsOs"pr{ kaai"% @lC?zK-KVk{K/}'o~6lv{numBHD9 08Tk! 0:ubM NbB]x>S?p'_xzÙ/f8'ȭkk.B:v *ŔrÞ04@j&v}ㆪI{%HU4ݍӏ:С|E}ݻoa5ƘbtJ&R~J~< 0ն`' 8"K T%9o׻v/=k*چGXL"q\&%w}8ǂ` zƊԶ* o_w3'}/=]9ݯw~O=u_3.܅Xc1=C3t+[LlT 0=}O}~^ c,PʥdʕӐa)1,$Caz`'"Pc>{vˏ\ū 7ܲ9tu5y!5!E_7+Eup.`f+ @[m11Q)i3x+O=|hu3#;S1tZC增rC:ޅJ)LzLiQQUiyJ1I^x-wڽs͕XDʊ.L]&+R:J!,tb*2Dĉ,3'>-RJYM*19ı( <sɮm ӿ@K @"'##/IEXsJR Mr}%~^@K h)؀6xL~+9rds V'+qFW^y '512QQYh13QXYDٝϑ`e\LK!״ĕͰ}& AzysQwj }<_>GbrP.MQkm%J)\E@hD0<}+0#|~tIuLɳa0ko;a 9hc|RNsMk>]]%GkbX1=EӘn&\dVeuNT(WoJ9εc:v%231Sʼn&lMm^+D(7Nָ~t?s.يnGZ(6lbZܝ&%~RTHfw@Dȉ=ZUƜ3Y97}߿wǴyV 21lLpawW&I %}+ZDD#SR!Rӿg~M9h󘩊l$8!+yȪYY8cpn"}|s)}M`<+{tZ6t Zmvr* {cM 6l;➈)XlO=d9MG;d?f[vL #6Si;mESUmƗIq&>Ps7κzK-y[{4[gC. V|*@ lc4Mhtꔮ7&wZ]Ԭ"`cW#g#̮ ^ @$K1XQ)k dbΩURЏcbC2APm}>m.z!y L$G~J)ũ>RbL$nW`\x>.k6S|n*""q󊳇= ~s4lEu+Db)dx;.;0E&?\ e^Z%̀S<{СuB7q].BT+B j:䯈N{,66Z>ϩHqO?o-v0nO!T:]) &ۃuFF޵9գEg-n& lאH%*Wm阽Pe&OT"LvfkaNm.RrTTuc2sj^X;jL>=l ɥx)j&:@[~J):eD-GUNJDĩũ*+'rQ0+BVe 6l<f$URJq/AW7%*0vY*nL6*W/05ЄQw 7!RJ){.h(~f3 ՜`;V`ZLWaHRS5Y!"DM "ĢPH#0]֏L'y'1(. *޲%SEEpi6YS̕ DJͩQ7n9W&&^ &U`/d* jwDDjH:b~.#+TRZsJ2G^ieA&:j". jd؉dfR DNr߅sΙJAX@"Ap!Q~۹c9>gquxqL"ň(*ŤH+y\LlbNUq1'f>0dZ6c,^l ZՊ$#Xu@D?I殊 x+h9T恼xJŊ)SgP d+Ǝ-51i]yBEHd)޴r\O*xSuqE!b&6lkRZqEsNH]E=\yIRO1H6LWZ( )E$&w,hkdZ3;9eWpjdknkyD7-1nj!$DS1.bE|( <.[nټe=%K&JGЏ5BsJN+lj)/wT`jZOmFxCS)).P!8(ؖEH͑-()6Q.ۘ,|`9 "!u/s5"H)圇!Ɯ]JEvMR}%vMŅBsEcJ.{RʹNmUuv-4ow1i6hi%xL.s%"!L.ĎE>hGsC 5=b b5T2ug*~Br8uj=66vbb͆L[+L)9g+N2ŔR}v'w;pct:Kն6pZI0R C23q98{ Cu`w\[}z)hi&m Xp0L.\C$RC%aJO{TCw{xqB76dmMbb]7:NxJ8u]pc9Uf,s&m0BK9 }K} )rΕܹV0"7+TuY-,&-c΄π"F=h)^r,ĉ " E1N:W;$bbp_s+z&9Yغ%ZKĒ>d 1Zi ];ZL"&& O2[,.N'& XftqZ! N*Si EݹY6Cq Cϵ("$E{`2U]0$.`r˕b0.4 ]q90I]d0h"l-i$bk_Y)\Ib8!t3kQ4ټNm8jr^$ζ\L'؜ L\)+u!$ [6j)6 ;M/ljE (ݡ ǮZPk8S5!PQ6Df:ί`Щ[*""MLd#1|dk߇j&7•}y ChGO~7jZذh Z̙jWqjϻsfsvB_ @mhنExqb- +9njQ?_[3PNSW4|``Fo:cԋ-SS50{D5@ԍwƱzvvbL XlEA"V//f MjVKwTCav]c%Gl1mXi'lPvrVf[j㕇LGIENDB`skladnik-0.5.1/src/images/stone_1.png000066400000000000000000000567621457640636700174710ustar00rootroot00000000000000PNG  IHDR`ĢgAMA asRGBsBITO oFFs*tIME77$tEXtSoftwarePOV-Ray 3.7.0.10.unofficialqtY[tEXtCommentRender Date: 2022-08-22 18:05:55Z Platform: x86_64-suse-linux-gnu Compiler: g++ 12 M6V IDATxi$q&f{Duu1=Iߤգ]rj݇",q >̈p73}0`*++^@v1_,|Bl6l5#31CNq>_t.h!cb@PU/3+QUS53$"$}NcMg# 0ctL Z>_0]A` Hlj"@D9'U1diLDTԯDUsʢsY|8aT~??vaw0 0ho^^^^^nӓj4 fb"BT+{{`jf [TNDE8rZo5"A e4)%U9K)%SN)LUDa ޿OaX7ͦm#"jADc6m H"9f'"~<%K9z8^_߼yoyÇ6|??я>z"05M/90331Ϟ\0W ge{q9eaIBpoSy_~o=7v;{ fi[DRSBMMDQ!Ref@@$ٞ,W˕r61#0A TP9Ԫ>8 1ΗK!D9K׶z~bl?W{_f@7'`"O./_9I駟Ϳm`NJO.mC!zC`Pgjn{4攃#']y7|ѶJ` IFb&(Q)) CG"$!2}8}WUvgOkG~}}tqyyzvoכg?AF1FD qv]cl6zefG"m\ȣeD41s]mfڮ) 'Dʋ^&''.///>ږCDDc) GDĔ8gO>~zvq))̔n7ETr~L(&sO YSG5[zY.81JDcbƾ_.+tJ`GP kV%7m d1PELTD*X';рf&m83;T(*ӟ?vc@mͰ_~v~u4rf%QQb"%"~EӓrJ+1R5_ml~Esz(9q{~f{r^AE)1y6?ʒ%fiVB)-71`icL)Op3@$0 +T>^DۀD@T$Z@6 C1DyX\\\_?,k@_]̻n6r0ਙ$%Um!c<z'O/c$YȜȞQp翘했&w4ZٳuT=zJYu{PE d(D(NHWơ'n6s8ÉG$"٬98HN*!;"RQSRl PIHBLDB1˜.󳳳O?Wz?On㗷WW̜Rb mvd{l6OiWw^Q:z==}rX?˜c9SqL_}kv8 "rAVLDޒЪyr獄(B RJ8>jV|T5ƞ}BHICp?ibK&u }mZ&Fvl6 '57TCtp{Xoc^9! 3,! U4BfdfFā9+BX.O//_z _o~,gg/>jݶ Czsi쏭0r7 $ðofm{rzu*!;U3UQ;zu?dDdD8pG唈mAr1Fݾ+bG`əh8aXV?݀~_٬ % 0ut|c׻ }ٻl*` w"ޙr{b=Ԋ[1^wuIPLudE"ۅ;p)/c۶//Y h6~ӿڞl_~1]]m֒r*2 %"49'ɒRM)WWoΗq iD `~0M{NXcZ X 0B o΍M %0Hu ,iL)5n8=;K)#b۴BJ$9֒=)hLۇaOEC?_]6ۭ︇[(h!߂C:$F@!4 @5}1#bu!ɉ;606e%O4Z$&)ۊQ IK᳄4B:;=)mwPy!F ?_|l,XniU=*fbBtٔs1|~RJ j f42JνWvݘT(rf(W$Wͳg9D)/;Qxj貢zjA%c#f f"qUUm8C@f649'(z Ft9NZ  a);&!fn֫UKg*"JhD(X?z.ۯ~ͫVUӶKTė!a'ʽ:iuv 1'cf7_bn64 r4;SPTcwGc]gKf;MD^MA1'fD좞a׮Sն+l#uO-Hp%dBP 9dq{rYA4mۆmܣy~s3&H!K\z/SJNSZef!5cՒZK.٧jqǻØ G|P1E7lR3'a6ׯEܬ9vU9#%A13BU&MiT?a&&*2cQ")c!1LR&vPj RSS1< 2b!ifO/bU]aXʹ91A4#B@"1S\0t9SM))8 }߻iۦY@CuR.}bt,(b@2qPaq<^&K95mfyݻO?G#ްp{ *v1si>-NE3Xx"B&$? Y 8ƻvq`~cD!Z(yI5K;Q@XFf;жJN8u/9 "VDždcV/\mwTuf k7x4]bfdtʜr!6@DhJ)cbu !ҔDӒfߍhEẗC0P5T#B'{3tgaZ_.RG?%9~)4OsB:}NOu"2=mO5s~aU5=z"bu]lc~F*f#hq^]e&,,0d{Uj)ܳYI{\vKT DJ]s{b`4lrN8&6ǜlġ[,, *?m *`J1b1t][s9Ly2<12"r#  KϞ\ovp4MoJ風`Uo4aRJ^""0E=Bm S'oYU0f趐Lerv]{So_~ل+_5;A"Vr*F)R it狖sRv6{Gxٸ:OS@23P+U]yBf"ި4i/8tmnɒH`ńEM)8D"ԋQmbzThR~DgmL4sHNHJ7gìkSPUBU\Է@[f= κMc0ZzhK,|יaEKޖ3@F^Q7{|,6 2TţJ)b4Dj*ꗪ>߻Hzwz&DTB <1X~,&đ xr V|f*it/gHP_13cmMYqWۻۮM6i艃s3E/.ΑxZE7G?߻T͖}ǭ=(%2fW*C`T9(6M7甊~_M!^ B$D%!(Xn{x@d|[zmB"-MӄZLNDKS.qEhmpc(B>Pݪ*Qʼn^Up.L^R0@ bSRz8dFSqaD|^V kT#Bɳn>MG9 QU9dm6zj4mlڶRTWř"EoHL"5dd_`"&LguKktSen'lc?!ɴG_dpxxx>ťUO}L*+<^PiR7aP$Ơf'AĞT jD8gpx7,ExwthԀ{X勀^gggHmNB#HP#"mΛ*nsn>j5j<8~1bBY UC'2E1MWS" 5 YԲy#^IU*Bq+nzabSU<(41b_cߧqDSC?Ei[+Nข]%:#~]Ӭڶ !xdj+ IDATFUEqb 7>Bq۽k @H.1Cm׎[8pӴ>#M-nMQ0@w6"cZd\xs16{wߚ|~L͕ud!=0ߏb zjD*0rk70B.o Q--:9KNn'("dȩarc\\. y[mS-߯#A3 5OCiC`MS#n6Wզkכ O.DR3r*?nFUg]wv~> 36Pw1)%]'aR۶'?Ţ[,"ҵ8^tgC_2 Cu*%uWj챦UkEA.(ŗnn}M̐ .Hl*X@zVDT#*O13bv]<ĩr Bhbӵ!F0{uw]5g9f_X%\~Fq\r/֛JQ4>$r "M۪!|iv6rJ00[ɒ!LRbOhdWn>7 8 7T"e+B3{z\'iJд?tz~==S>n=9dQ9iLjvfs8J7D9Qp@ȕPvnHT0UTD>{wrzfñEHHlGal{=aO94Z+Y{UbhŸ I"n7 3\t],m5gVjXgYSSDsE^L w{dU[20p>|7M C^vI'l6:@q?i pssͻo􇃊4M=9a4"~aŏ*D,ٙF/)ejUm-+W ðڬs·~G$/)(xZBZ1iӵ{Wan?\˕V:wlj25{ze*`R$V: !*8j٘|@1*°pgh9n! DBxP,DTJ~0V`|/94OO[S&G!@)0@/~w޼~mO*f89'oؘgr>_#] 2~7ϟ?5IU-kSAlc5\.!"PpX( +*.WHT5󄻶Nb(VOWi03bl^}Ev118al6[>J w|6{OiQX(U x_w n$A0͋/fd.:Wߋgϟ>vyyu- a͛o4MٳbѴ-%*)t'SwZw8*|-ٵ\]5M3Ά6YbĦe栢'rAulu? \DU:DJJVV0~f[1a҅"bkU58 Y,#T!4YVsy@Uʩ}3ʘOrQMC YUv}^s}杪!~s1Ƹ^N'B`._ PzItŁ]W `;gZu7͗|>1E f!{o~jO?ߞlɀKqu&Ԛ!,9Rw77ww޼O۶u0Qdx^t9@iӳ:Y,EHP[?@lDۮMCZRgj*"#aBGuI_RGt<ƐhbXG9m(}5%tJh3.b,#UH MՠNܽ)9P+ɆX]ڴ1y{rf>|ޭj^N89gVR 7 ܴݐwog??njyd>W3k0C"+y|5t0pNi$ǩ N(8L$!+I X@U|F/?}m yd9ŗ!rOcŅzW֓@P^AQqaþ|)!D0.ѣ~YŒ!_clHpz *fۦ)ٖ倏<7ÒoN50)>{)̷!YkV]iZZo/DUc<|\ЏQ; kfz^}Q`Ռ8=^yD 59$g6ѫZ*9Nu`L[3m}8T䦥in8ϹEyCtW:4BT;c}~]6偪PN+q1Ȓ9@Ex8q7P]G(vBX׀8 믾/M":a=!ݞ|j!p#$fSRUĂ=¦ǵ)M(SaCD(b3#ѬNP.ku!һ)3QDXOb:_X[vﳈ Psy"Z"BOIہ&<TQ}Vz4DR4[馴)KKC!|W_w8C? }?z]BSqz#(3S!d2n {mYRDs$]5E(4eQI:|LVښG@\YI,VUݼV3˙ hyBQw\8 &0Z`Xanf [ R0 27[>jC4MbWo.7k$tϞtɍlV0Qe.ZCPI\NYc|8 CE~1&ɦbj0ԪmQlM( ?DMoN@p04%ۊ偂)TqR2M;,.U;=>m*U^m&n 1 &"&_.i2Rl|U~9n՗W귭gU5Oq~zTœ N !g٬W޼1|޴?Xɹf[8se{ڣs !Aq%`V][KfF(J= dI62 jGp5y 5[R5ECgiFӈ)uf<^j5R\x1@mKMwDZDAGu:jo 'gb[a2K_TǏ>ڮ/ʅQR ߋ[L $v6_,8od 1Fh<{<:!O Uԑ씛`^.qBd8 ,(PEsJZB!b*ɒ i@5j&-JN@j[^4 9$F+ ѝU~9e>/z2;0P5ch{ȳe3!$s`ULet]P:>^hCSFc6p|LfZ7 @GFG+ ǁь&]p&6 "r4Mv241 s(@ /$e4f+sd=wAR=09{F/rbNTyNģz]ZP|tsnkSTVZyZU V | OuXF&jG7}Vz| &SפjEGc$MZѽG,׆1{UfQap{s3̟m[v!bHqZtrHL8uOğkQMI`ӷq8䔠vCKNDMi*O8 fJ Pjڠ ̎ТÌR%Aӗ0Wǟʾye$jš"@ S(-:ܯǀ`yQV\֔sʔ9Vdf>=qD2$?<\{xxbb-m7+VR=3M}Ģa1Zb3KitAKyr.r9SIc\;CN.BM(ڒVwdʅZl\O@J  )%#@Ī!(QMA酦8/*(c*D-cN { k>  QGP ?ѿ!0<]cXUug0*Iq38N<ꗎᴓpN)ƪ@B `P5CdȖq{w9r8݁CSGψ28Z pG}! ) sN)Rˎ>|PuKiPfJ{':UrIU8pRG*s^ΔS^s:GP\'Z&$EBu 4*fBrɵ]M׎Gji7;շn(&qrn"Tsn$0 NRVաmwz"Ԯ43 M<JL> hzH)IN !'QeF}JW?IJnfhj (1q<};苘;K5Jܱz&SHt' mu%^*L&j/saPqơCUVZ  c|ܶK8ux* B朦j)*dNQ ̏!Dwށr z@KJ3zKe|(VO=9R} "Tgc6 ޣ`szT9lXR-""MX>E580~@ZΉ9"8fPP MG3Xe6+n\OZ:8魡ĀR 9ɔ}(GS4U*Uy2eUV!J-•R7[fM9B9=EQQ ɑ녓05,"|z=ONOc}ƻU'}idq]-ݳCP6,)WC dtBtOOwU'V $.FQDDd9`iDuqF98_\"֒՝4a`XsqaW3JJ1JTJi^S:+K^38'pDCDxƮH<ϓ%IMAyXJОJ>H6vQB(8Bd;tQ 4'^p1EYQdl@$yq.K)v}Ilvm1Db<N"2NSH`$q1cL) VJF)m\ǒs*"3C-9Z]iw2IDATTF"ȷ8BhS?=MrG3#w EIKT*3HL9[kֆL0Bɂga= p;v\wkg ٲJΪD!bBۖsERU56AC.vWTq>`S ĩe"E)Pk%R (ƤƬ%lK[cxADr||kY P-94b.b& ǛOk768LΫ'%HYeRU1>PsZ`pG[E6 >ǯNjFzzP#>/3Y }6:S_ЎGo MD@UK.Km" C)doPA{"_+} )\мiU ⭆ jyCs m]u=<>Bג`RYuk:2N] DlX!u靕ljK4x5:3y1stĮ"ڙp*VJK5835+dC l[}q R7]o^%gX3`tH_6?mXj # f2p $۶}wCϞ>E~18,vWwcNjgsdFxYyDZ[CHZeO*t-SCOi<1n~Y0nt.:4:{fAHHoK-k/.UҴ^iF\ԯD0e z8:"jͳ&@+Y>]OYB%^; qxsyyRr8،m Owmz<sliIUDj-Ic/_}:O tx@5&4bv VȆׅ==)Y"ԖE+j" 1ljI(tAsz!4Z]vLOI^[Dx1;v2&U)EH4ORKz/zCb! )#vȇ-Way\FNz0RZOlv<byO?Kq˶q)EDuHFXr2:$@&?>O>s'ٺ- ̤WhzZ? =*Kɂ}9s9Zm6bV:'`zt *5N5i4*:~ttVծo1R:OkMZ-59i?鳫i! S̺)C"ÇweP-Aam]C.eCqx痗-eMð-K2 CqPHSU(V-+vqZki34'4|[:)Jb\D¢m9-C+OU = w;eF楥8Q h'P/?9@L,Kw DݰZU }Bj iRjMþ*<͂!~l0ӧOˏ~?Z mDD]UrX'?3Clu@QdaPUxkBszbW""D)%۷1^q%4xOF\a zRʶy]#Kb8&6)!HkRV.vINo /%&bxs|3 2-˫f =nLrJTЈVL3^I5sNwwK(0+s D9CbϹUgɓ><?܋8O=ٟ<8q9ضvA`4DLwA7}S8!fVRÇuYc?Zꋗ/?a&,IG{]S`/ (z%u=bΆmQј†t*|[`*FIDS0vHB#ܗꁍ|qPF[ :NSp8s$RKzMuC. I}kysg 'OjTThݶDD_~/|ۺCJ1A!#A.K4_:7@3 `h]G*Z.[xCQ6,7o޽yqG *䜇q1b1pۍf=PAD&v!~ RkUR2:Vb* "{j7Ę4)JRKR WEg'ǰZUe{EtAjm@ RG!dfI)ĨJmyZkmږK)><<8_~示+Нl 5U5z'.=S/|:=-4!VJJ._Zr?~__^^8#R *JIE%-b®L[**Ur:\2gr,a^DZy˥d d{?FeiD -rT[m am(!)YFF*W`@X2'0uzq!J&"m[[ J)떗eUy 7Qc8b:Q/4%ؐl]e?784hW=Ĭgdh|ZPDqTj櫯'|2M3C+m<)A-4S1Ġp5H&؆ĪTKbCŗ7 Ť}EQk-ŨcADZ)9 r.<ʄD}*QKSUk-8VK* %hڛ֖uY5\[+l۶x<i޽5Zwͪ⮀ R|H;TjiO}ղm*Eh]ۻ'?T ! ^c ?ٖfR,k%qY|{{ O~y^pQGHLҧE$ͷ/<%~h0pޯ@z5(j1%m7_}}1_|ULODTL J AΤPcRr ^5Jĭ՜3;κV&Dx\m+9ny?R!Һ?/^ܐjs)?BQZY5BClZ`bE4:ie :0-<j)| &,55ٶa:66i>@6N )VNxjdefT4D뺉,TiMtYeYm[m8ݽr]]}/onU j)uDouH)Ք;uwҽN)rckXpVam5ā[Z훷Ϟ=/.jk5ƫ(i+l@i1bM1U0^*c4h-Ya¸! bt,1'bYfha، >.9Z m  "ؿ03B7Q#6$<)v˲>߿qXAS"B0 eFB\+jS<ǘD՚a& S]MQE5Ery../XtI Ģ>L8a 34l%mݔr7<_0d;:/69|u)9=rjiG,3|.@%<"x㛁JD ^TJFl qRrU!EeyRʲ,y~o' .4{:xтR)TH[T  97isyy vt0z;Dզy̥Z+y R'g>Fؖa9uq-w8'ȳ:: MZ˖/di 8s=BL)9вZKM$׌ ɺg]Wq?g@<{[܄4!yZ "فEJW `rk#mö.۲^_\^|vQ/ ޵:H̃b/a4ٛcJX; YSm˲䜥5&]SO[ IEf&Fd6YRJb06/(RbD 4 [k1~m xvmP:T}W_}wwϛǟ6 |RJϟ?ٓCEn|{} yv#Ǒ"Lg} qSJl\ !Zi9cȷ'+p MQL"=Ŕ餔B BITa9Ա b[6w[.+g\{<EgIcdGP#334""y%ZH _Hy,HZrA pןW9ƈl .y%r%MHSzCK§gs'p|D.jlvqpgxR:(yӻt.4@R| cJZ[e)FBp>yVȭ6%M1Zaօh6 K8o%gİmZVgIENDB`skladnik-0.5.1/src/images/stone_1.pov000066400000000000000000000005001457640636700174640ustar00rootroot00000000000000// Pov-ray image source for Skladnik // SPDX-FileCopyrightText: 1998-1999 Anders Widell #include "stone_common.inc" camera { orthographic location <0, 0, -50> look_at <0, 0, 0> right <1, 0, 0> up <0, 1/2, 0> } object { Stone texture { StoneTexture translate <1,0,0> } } skladnik-0.5.1/src/images/stone_2.png000066400000000000000000000571621457640636700174650ustar00rootroot00000000000000PNG  IHDR`ĢgAMA asRGBsBITO oFFs*tIMEw4$tEXtSoftwarePOV-Ray 3.7.0.10.unofficialqtY[tEXtCommentRender Date: 2022-08-22 18:06:01Z Platform: x86_64-suse-linux-gnu Compiler: g++ 12 b IDATxY$Kr&f{DdYҷv&53D < 7= HA~cU wN9ዙ3"iUdFFg#yðLf3M /.ΧqBic0㸙&@ǁ9"""bffVvBBB""T@UOTh/w"DHH욠*"UDU Z}""E}cJւ PK)D "ZKUUM)ٓ.kr^p8k˲,b~{W=}uu~~vq~800B@ĶS.. 1䒙YDe"nvg!UZ4ѱ/T@EkaE~ ٮc#P0Q*9uYyN)ZAxQ6qDM˓  Dj) C7S\D"J[>=U͹ww7oo޽{G O<쓧O<1BmqmENUlO!!p12S9u)L!y{vFĥZJVLD@UD]2}k @U!߫ p4cǭ?Ԝ.7RI% 1l7S1 4MHXl"x5GflhED_3u]e)qq Ӻ.2˲R֔7o={_y.}-n;v88 C10Yx=]0LM18 cݴHUR29%:DZi3m4Z,9%s* D!."N[#@d&ZsZӺRjHv"ZK-Uu]e0!p0JhF .]ܠ!!n*{ rB$8NTk92/PjZ~m9H9׿/~_:}?O780Dߠc1v BD'TFUa60 q0jR8qlwgHh"uuM̘a)楙@6 *y]ZKQmEDд : 8p|uEn#Yf&REľ6ELI٪VJiMb d&s2˲,|sNUt]e]noeoŋ|/wq!8hB2)TG?Rai bD"BRrNi]Zyn&((eD!Fb!!v94,*iYy$RE%7:>bvbq)-.KN,B (@:&GצKTI%1c֜ru&RJ벤üK)5K>᰻8ݻׯ^ٳ'!h[L!`RSp6ff"*gUZy6+a `ΐCvqZE 3BÀDqBqqq3cҬ yI%: 4MO+To9sҺVB!*(m/hcc]XERH-ˏG6[GV$6Gˈ$"`jG̡iѾ7MZfyg?or/_7~|m7qB` C "g127hvՔVEUbȈPk%c wO #"*PCRPPRTRT2Ȇm%aMuE~rٌHDv1x]7I1vcLF~ Q,Zxf`634NnwݝqJSJmɉ9AɓG=v#t0s*DP5ʠV)9ReI)\CDƇ"")8Yk˔b;,r5#ݱժ"1q6a%G5Tż-3uK)oF;,DJf|W<_ˇ=n7 3#~Ʃ4;sM0B+kj5o@&^hЪĨ{8 ӆ8"W[-9&7f}fHEHFfVNf)"<[D X(")9%AD_%"k˔*Un_%2'禑`Cn8e#t[,&qDZk0m6.ˢtAۛwJx?>'Oi!N-6ݔ-m:mQ6BKgo{`.bJH j:Nq@3U9HC#wgrB\L!(78N ɢ!Rba-u*V3fnS'uQZE)_]~j̾ 1H$*xydH3+ ڱ]-PkU4mҚuUD_Dbx,77i|ɯۣgi4 T96!F.:0 fv 0~%ȫ,kJk)%\:4QeZRK7r8f CQh$U6R̅!PHKĆCWRޫ cx,AkJhR#V381<6SL*Zfba8t枰6LfD,TAfbC !YEb裏rJ8~48hA;Ukd|hk8P<@du)RMMzJD0 DnOޜB dQUkUv2{dUyEEZ)6B"b24b2e@@""n/_0Ç_|YB@u-8Mӽ 5ɚrسNC)yDRh^WU6"UZ * )j-Y/D5N􈘶fۿ.%OZJ1a@9c.zfp:Y9Ҕ9YJ)9 -npC 2ZAzsf2DĒau]SyqYOTr w>cp:CO+ZgxH))T H{YA8Vb9*qӏD*fxH\ZJ\+rDd(ތHdzoj)!-\ >}S=i7a0aFl@Xk"`} DZ0䜫!Rk-R2aٞ.// \^\l7VlDā(=e_u]u-DDB{L12Vr1c5!D,@k)= qjI/?R)% (RUC(9RœZJɹ)1miZP]kK{U8Pܹ@DTiڝo[1"qS}CAf@Z+"C ^u*P  Ðֵ,R<c,<s2[1CK5gxU":D5XBTs*M=讧V'ZUIb!+ers^ZKkA h j)}JkLƖB&IBF*T)Rjtl8 URK.aw~>hŋVPKD <U"F:ݒ{Ӻnv{`ls~: PU.]v ݥ˺.9+| ZkK%+s 8tض_JN%gJ8uU lf ,Z1@'2χJ8mR ؋j-2w@i,z jZJN)"f uYD35gg1v!Z ^S{S.bI4%;o z&4ˋ TZ̆s@sƿMeYeN)EG{ƒ)PDRJ1cdVXNDJiYrJ)Uu9gf6`dw+D"@u: L0&2q `b "JťE4֒I_f&W9ʹ&`"[هuzHdG"!Zyvr280fbFc+TK;67v=sİlnc')v&;TJu~YeuI)R%w|ACȪbwՒfVኄTKI.!B"Be̡b׷L9)E"04ZgTfĜsNgp bӍ ~P8(9q4CG. "5m̞%b7"H~$ Zs-Ƃ{6^",ܕqv+H)QQ~QJ`6d{U-e0<PK%C{uRHƱ\jNC*Zjwͭϫe'#3poj,K021 *hNy]WGuK}RtLQo~'~prvC 0@E!$5A-aD90YiL9/t9tL 5)66{2*5iK)RIɸ3!)K3ztssϞsˋ/~uMl+CΥpf#:6!"$YTkM˜՟kX1gw@O憣[FE}% EĚ&|Z3"F">Qh+rXkz;@BCհ(Bw/JQO@2 B:)<sCB7ZAn08,@Ϟ=x~vvFD(<0=}~6&ۻ!,ab&e[<)9lPr[їڳ ?Mvt'eÖ5yPdإ%V!O -zx/];74G"!8dB0āR:ZBw77_ڿ=E뫂-;T!8 כ@La.)@9i4ӯSrn"0Dk%S8%(9HL)# Bu"*"hr3R]d0F6dKt]NJ8RG5ܠ#pW}{~g+:qJ%6n اvv08(8e80R'PD Q^WQ x D) #cH gzxR WW!V+-դ΍% q* SJ`j;oOm7-Gy]S4T9~=s @tU* ( 8 cC@¦M4Dn߾||G?;a&'ZkX-ݤigYiS@/o*""j17᨜!"* ih[]E#B7F!"kD1+XOJfJ4nHJ]$" D*#Hj.& 3mB{Z "] R79;ўVvBC:% bZK !b1 TPQY|2 G}XZl@@=%m~,8q7""1Fkq nЯi!3q༮%% E(m !**18 @Դs >Czsg@DݯSu]y"n<""#ٝRDлk-̄DV\e濎ʑ.QvZi7BMxi* S?%SzQT-ǁ9اf\7o4#f++)'[)Y!ڄZ쉽 %U#pt>]+3Iezc$b a"XY aV/)ĄB jS$*1ī4N&/k-`bw9j+!F&xo>Uy_j}^DA61C3 '}."Qoi{9i-H)T+͡EjOnϾvLs \+ Ֆ7$T&U9{s 3Ve7lOzL{ajuRLތTXlĉ۲i5A2izd߷KF3-`hXg!VIxBm_XcŮ5'nc_2Gp"==ld=m1 D^|Ͽާ񤖢\,o!ih}eԿ}7>$: }l-t{sDǙJo~6@: So5oHQ+8 =hH /X-UD'E,62!4@ӬJ)7[X D6̠?IDBA؊f}#zOH$ =ևV`BI}lWctR J-p_~Gmq[C`34Uj}eοW+ h:@$ ؼ:pX5_ZړC{u H&Ґ{.N!Js3lj&v$^lݹ!k4MCO7k[ MR%DjWmDdt86uub q\*̇|[_^iuZS^RvϽrƳoV]-oܹzaA&eG{Ҏ,3} J)Ӷc#cK%ɫgY~Z50n7ߦ0@>sB`}8ĵUYK%q.0x߇0Z^ YՆ~V9VlbNTf:n"`-O)3"b}iOсe9DDj֓KNbVłķ_G=`c^]1icG6oFzhxjgA- `ÖII֚R+R|͚'O1vSGdᓊ(RUR5zՋϿfnψO>\UҺj;v9vM6&Z&rBf$:\X >h48P|ik88RDs3x՜~^Kv:ߋcNՒ,9'U=痯nRwY=(Д!0ݾ{{s{}}0H݌^g詳h km'U>ȥtw{̳L)!jbb .W_߼ !ɓn ^kkS:jl;7ˁ155-JL~(M%n;櫄T佾'9n! BB+c' u]Zѽ~~V~߿w}bf5>qA[ q=ne&jn F#" k"jtDd뺚>,r2===Wo^'WPj1awrT+th"?"pV5KG4 5Sz ?VLGfDŧ"J-UtI࡮XM)9uH95jq)RTTaCdt8~ݺx35MVc'Bu+7z2OYsFya3]ݿw~yeiiR}5QپJa_| T?w@0z{h]vCiQG|jS$j7R"J`i:ik+^qkIEM@@ݺ7 R`NQPUeIUq^RJe/W|yV?{b3?.Ϡ!)s#fnN ?"LmtIR=%k*>m6)OiC A{wv흪ѣˋeiъ(k/b6Xdρ? EۛfB1vbozɽ#;F LXZȋSPnlfj^ UjR.i]eMRK;C@R%F>'Ov,o4aqTA {(ՂrcX`}{KV!𶝛qKTKPŲ{Ww11p02NӴ~YhxewE[O:v~W|Y:id먍7 j)1aT(qo"-%dOH5W-|`Glv;mۻ~O>?aҺ]t%Tz GPtНwi=noa\21?zz-#b퀬C]Unnn!lаSS=GDdf>Ս47J-@^ZTj?$N0DBD9nǠ;T5k/Z4j'<<1>}ᣏm3  ȑhD"3C R Ze"C9= \'wkQDuXZ_s*DĻsB;Dtvvvu윘mvjnFKZu9m|K$!][HN9N@e&D Ҫ*|P!DmWo W ?m xt  Qu颂H)!xb}ػbJ ek1Hp")jvRʨZ ښ>st1zVޣi mi3),˼iMa?yrf./ !]]_߻ dq" 4FϾճ4}{_z8zS oJj8>e/AH`SɏMj@Lv> O`o  V8L<4k'5"$ !L!R\䊆#̏ڬ6ȕzt @j*TvlCqmB"`'K95bZk h"R9GMbMj*fs⎭ ׶72nws>eX:Օ 1sꨀ_ 87ϟ=zqu5lH8>tQ5hªZVUx0}rD0a*Fz 0Z'v4(-nkS̉T*bb!ּh؝s5زܭXD 37மaFɶ*ς$`s S zD3sɹq: Vm:=-s!5" L^W7[fXMG?6 '3C(zMtv~> ?ȶD0HZӛ7_xq~u CLfD< Ԅ/樥I 7/6rJKr^եGU@OY@~Xf_ܲNKMf3zE "C%C!m_1˹ϙ;=}Qk3CCiB%5w:VZ1.*Swp ցUb.%kovnϗ>(,lNɇTm`XdmFE϶>4|:ZdG=6x]Y̬*Eۛq٬u-%zvivK!p'X/ ç{ XcrE `LO/Y4bUSjo."4~]yYTTA8*btCnZ|J[ 4@T+baSf\+0NWrMӒu=88ߜmOC;wRӿ֦h$Uc+Rx'O6גVqv^]]\^^C;#@TzTVz]j\~\ٮ;4my}IUug[{]}_uvk-5~ҹ*,MVT*GT5&pC5 Q͆ZZTѸH<%'(ΘZFZ+AEy(%Kdۙ!Uڜ_<O8Oc("~)U`:,d6F nZh)ƻ,䌁s=x:mG+\ercCNR ֙yiT]?'?Z}"ioދih}gܙ"2`mtN~>?`m;c <!M2л:DK꽳Lt<qd\8)Xec\uU>9$`CRrq#eqiwۛHgi~oĘO&!*"|*"WKu&bcM:ƜӽzBcPaU]E V 1B0+:?OÚ{jT!Z4ۄG}4((o]Uj&2ֆ1w< C/_]<~4Fcxsv}S*ɍ 3FU +%&C8ُl0סRy!5Ll ]7l6"2ǻ;%F*UfB^J^%%etty/~A'g ]?l6w`k&u#cB LS1·4,sQ* ~KnWDֽN)ǔ|ƤV7.>㷣R "(:k]f88إY1a=E=:<jigB;|di[{ iG@mZTlUl䔢'a^\\ ðLWOc)BY0 Y 궚*FT 1Fr.j9??l}a\.)af{潛ͫWo^<~W1Flf!HqKtcW֦6FUcMn;%K)l{]Φi>:@!UGN[(~f) jU7e)EUV883JmC -Zl%/Y0aNuFZ'Z*bYG-akh[G-ߪx"dN1R0L ]{|O%Q #"b0\Qfu]S&BB"zݘzba8^~p{e;!2ϥ4K{ct:.ӔK^",KRDfzy>r.1ę엸& MEl[cr)ht~Tj)&UVcT(յ/u)%ci<SJ9en{TsiFqWnfVBbyV6Q 6eH<f1*,uaH59dkjHJ^@ Rͺ>.t:?enpEl)yuUqDEJ)sDՋ_^Ʊ fy4D lm=RN ZU%Bֻ̹lw໮ cá~olJhp6<0m1A`K?Qwն:Ⱥ2̂m-0;L\-b\rU3R%6eو¼W%uDR\i,9sE2 v{mZf#r)V<e~p}}ORΤ%2ƂRfx K9P!ti߼zyJt8@=؞9gOahNR}*& 2UEd fH)bqRu-su^YWY讋ue&ѩ˨"Y (l%k)8EdFob*MQȑI1TV+Z]ܝ:"DY$Fl)*i EJ32u:)g@yVguA{e`DLcDuA}20lе.}.539RE7o^>0jfSZy^nt:g6]? PCY*yy"fB2eYy:Oq\b1 "Ϟ=K)"W/macr/u+*Gr&R^Eu= ѯd[17"^NFfE7SL/e6ET2X,3b],EaKj{oEdKnCnYk[Dt6S3ϳmtrmj! ^R9+dx:MAsq}/.>=~4|w\2*cA.˥e^LL6)2-ili)\So_RJqw9|ΙrJ%'W%c$DEzφ ,]S&Kk4l8M+C(*il)H{)Z0\:5B^NDDh)u1[kEa( oa%-BU5Ts)<œ)VRZkq)R:quSLg%R)A2/K]C]\l6۳nwq6>,ERJ8r榊gk[b  _U1.1Ntww8NKJHAD"~˧OlnGyMRJi*cr0ERRNO")c%bX0U )%%d""bk dc5ʨʐ 1bQ˻R)#>[uʌQdJ0yq6cJWRǐGK)u)Eˆ)%"{cG  6w] diH1ԋjeP5Qj8Mp`c~`of 9/?p.<'}Mnr9HRRR)ХsATs)cJh5&rΉT+C1VQ?+mIۡo5b-un,&X)R*TR!G %\ct)'<" 2cE*SNKEJKJ /r6i5u" RX1u]?0qJe~Sڞv<ܜ5OзC9Ɣs:Gm",pnwn髯ZO]__ۿ}f3l}ߋ?/.u]ރk K%C rL+U J.@Pr)}&f[{Vų[#əao'"f&6bӂn HuW[ȲVTІ*a2DĀng$7(+ܾ}r!RORؘr1:qk)rN$+؞4iRms9V*cZyF05q<4/<<1D̛ac=_~oooE""_|矟40oz1SNilw}?.xn?8/uc Ћn"YCB3LӒ`fC-@ڒP-;̵Ycz4X})GttFuv]E:½>:U<0lC9(eYfa5ƢmW!""4z#Ry^bL1b>8N<)w'׿@k*?'Oan(iZ)]!xqhw~a|:e)9{ﭳ1m0&DW>yTVhC4cSsW 1URS,HLnmeaYM$VU]Ig)4;g(3;@SP֟4X&_>tuf(Pe` eF。*44M<9YU_|7߼y$Zӏ?ӧ]u}o\X)8뺶@搟@'I)10xȍʘmfT9=F")j?@yhPYLSE<59kڬ2ZvP)yt|ァORg-0i爥= acmMa!DiVUpTnԒ@AERÿ:nw{"u|godmuߵSo6G`fK6ì@z;e, R6QeLcEV'z0mv5X]3l6XQ]ߝVÒ S|CRuyCepVSʥ1k adV:&3hLWWWWWW07_n/T?~wyXSrYr:iZV(К i8+e%>Kuu$~PfG> mwiY_o~ٺֈ1șrvPI 8H)9Z6]ߣGRvS+Bm% TTxss77772?rmfn->%Wm/ZiNT.f[ާXTh=θP-jMlBw(5gTUP:eN)}k]_Mgm=ۛ nw]i)…>5/*_j)eqi:Np8__ORfO#Y8k.Zzg%#=1׾&ڛ+tDzr}h"k>c,lUn׃du{iT GՏOZ#TkH!QW\˂D9sFJI Ą 9y^j=o1(IENDB`skladnik-0.5.1/src/images/stone_2.pov000066400000000000000000000005001457640636700174650ustar00rootroot00000000000000// Pov-ray image source for Skladnik // SPDX-FileCopyrightText: 1998-1999 Anders Widell #include "stone_common.inc" camera { orthographic location <0, 0, -50> look_at <0, 0, 0> right <1, 0, 0> up <0, 1/2, 0> } object { Stone texture { StoneTexture translate <2,0,0> } } skladnik-0.5.1/src/images/stone_3.png000066400000000000000000000545031457640636700174620ustar00rootroot00000000000000PNG  IHDR`ĢgAMA asRGBsBITO oFFs*tIMEPd$tEXtSoftwarePOV-Ray 3.7.0.10.unofficialqtY[tEXtCommentRender Date: 2022-08-22 18:06:06Z Platform: x86_64-suse-linux-gnu Compiler: g++ 12 u IDATxYdIrqN.w[]U]=3= (鑒Q&hԻL&>Hf2d(IY03饖[Uw<zp8Y@2739|n^yvv٤l'P)\J2ϳs)':3"rg]DAUA{y*30QU@U@DD)a`ȾDEE@TօHEsٟmۜKJ9Q{{P""",iiRJHULEDz*]D@XZo"R;w|8Zmpr;Fy~gϞ^___]^^]]3"@D a' "{ }DŶ [m^4M ̪j"'3%Z**DD)%"@a ff$dlk2-)x+dAH9'ShJSB3rJr))gIե.K](#/./gfTRr3CL|US)%D13~8=vԺ,wBܟmwvR꽧iy֪to߽z[󋋜KUTP$ Sn*rZaaUEUnoeiy__ |W9Rr)%/B$"M'S.%sFwr)LD""L)z9vDZ*&|z8<~d  ("%T*ͧs,޾=w~Ejj]bi4M{Z+sOO7mJi]^^C3?\Ҙn~|*+Z˲{px?/~l~yJ)fL4MS)%D"bJ@d1LRJ&S2)%UiZkb>/)?<< n?;۫m@yWr8~BUUaUDD @"RR2LccFDzuY^z??[om9{k&F¼?;g>$Dils)T[y|o޾~l?>;%_NTW׍nṆAt?KDEE BILeO箭Z=s3_zgp.nvlw۳}{|_?lݖR CR{dfD%oۜ jfFfVDS6KN)眙RJ4}Gvr7~?o ʽ%[ŋn"F[LJ*S"{ֹweYn߾ݟO fKDLM{#J9gByv_ٟۋ>,jZk*:o"DaBhD GA00?L]IP&s,2MfyjCINϞ>}__?zt}}~q眒y &D۶-S)IKn?Z{3}"!D¬*y}ιՊ)RJ.{GPBLD˲Vinˋ?(tyu؈SN)ԹݲO> $DeL)כi7&[rͯ|7vuUdÃy7c>lZLDQ V?D̢" *DbQf \S OKf _O77oN&㓏?{}uǏ=m9eRvq\rO'"Q2M\A*̽ T`Qє]D'bW4d  I)dkRefQyWf>{{'}O;"m&r2ŃR2ØRΔ@Y7?G1 bܚn뛛˫ͼ1C(,B  bFYm6 v圿}Y./.}Dm/-~yq4e *`"Hē [3R {?E=.׏?N)KSN "5J)LH5wf}᳜AĔ['J 3/~ ?܀Iج",;#"EcTCWH*,oKpX Ϣ"܅Q`DFcKq3*\ EP{'Orν Gw>>}394<yW*x:!>UTXFt.DZ[eݦZ8&@wDFDI3X2x?vmoUQкU`~?iUeMM|㡵RGٜҢ(lR(4TU T4C׿oP5dpKF-I2 ss"[حjrJ0|yϞp;NU9=QIuhj1{WPJ 5x{0 krw޵;Z@]p<~\vEץO.ΉuY "* l~b~y9dwONF(%"B)` E=[m҃ϚOPýA7zUaaFYUeZx<Ȳx 3D&$l..nޔ\@Xta6b̜+򗼤J{L,.BɃLQA" |x8|XJzx_\E*ݻws) ]vWWWl sՊw[wyQ],7_To]_ZnʪȄ-3Mckwww˲\\\<~ lS^"??{f *aTRJĽ?ߗiJ aNYUBQ/b6Dvms\ j`l5-E\wgc'rn3I)2Y$M*KEpPJT$wp2yN!;"ʴِ0JZ"S3Zmkb%3frRonܾ}gh&gJIUQ5%TbE*)ob^sv9wWy]~W[Sz\ьvl6z'J ̔8iRQAP_߿}GA $I)'^n2D#r_c@$҈GN Fӝ@ ՕV O)u l_g"*Fշ!#":⥔7o]=:;?/sinSc7IDP!AtЙ7o?w,F+uq0l5̩tʐE CPQLjCWSDNX WX+@ t_KU!~92Mn«̜FVV q92lQ)u%UR4M05@gwo߾~x8_\\\^xWNdj3v'-&QJsD3yٝRRN%`4MPzU6–`y ,QEs.)g$o_#^BfY!ZQ U,Eؒ :y%J9BBxHn`snwwiNdr FѣZoR.)yqc\pv;=6" s[e {X_qdR8;;SZ-ewzlo{`2(P"U`'̅ETԵEd"!Z wnwyBr|h6gAӼ4vcSі$0-C==-x(a\YJ :n+ r<>8DH9'Owo~_'ooKޤSi=}tgD(J4 v:;GwD$ECC{1V$v'Ш_MRl7WDԪEmlEF]j]MdF 7:!jr"~uN^pؙ5s7< vww{?>qyy3[Z>!n4<4m XVk C u9VEQQZ[~|ܘ\ABk2M)gbf@dB9%9ۭjS IDATw Pfie7s90*}`K,{LOoPl ЖQQj,uYq7۳G׏vp8woިxr<_~B||Ta`Sc*2e[9 3;r8,trGwB ceqH(/ ǔ'QxH"j΅R1ljT]$~86fq?짢Bۈ!Du4=zƉ9XQYvY1bhܘ͓]]__=xssW߀Ϟjキ: @)\j 3[Ž6*(#o@:"xoUj6oBEaDD2&[ם:g21aKFwHD V%ć_(dZz\4O8E9 ]qfOïP@q$m`wk pQU^MhNfJjh*ePJnIEz]i41skU<uGrGt5APc) G『Nc5L3&6_YVD]UO!*[k)}'I~nT\ѓ&5FleValbmhMb𫆡-A6Hn7&[c#`ƻqn.LDH^3KIUa9<.4mfUT6">6SO'n y'n#sm Z1ZIg:Rʹ*"(\(0?#^uQՔ)DOD*1b(Z>҃UԙLFV؁+YN;7(,+3@:Vl O t̿;"i=Sz{E*xMmjgDk 1-뢢 k=j)S1I9iz`~k_ܒuƒ , !̆@"Ĭ "ALvۀ §8%8_C ;4Yjp=5qj>4d  ״bHcBaY [ FiMΙDŽ92vC6Ì[()OdCO0 PuhTĪhfmJsQah2枰\aQi |0F$D u$S 9ْڽ5s֨k <ȫ]ȠIR2Jɶ$;pe,ˉڄXbUnF+ŷ11I&K.4ͳNUȠ |6zUH{oL>$Sk">(Y r)&SD!*HtԈ؄ Gr2\*8ШP0Wâ\Z[|f-G'~(ZtH +n 0%{$A8qbj rMCqv5c 5"D4qFɫXDPgWUxt Q o3L(pCD^0D)$,ܛ{FBUIVBDf4O"B)s)! F90I@/፸0*,}9i.ӄ#vjQ',U\ 6sH<':k9gf>y1'=- 蓺EU)gr)l\1ޮzk3,hGʀFBݧHtJLNslp , B>vނp^P#;?iEfE+*@Vk]6>Dd] @CPA1dh=g #cqg ,HXs_F6"/[QhL5`LO%/q:P9圧RKcSU44͛\-wFܽTDg dɟ2D#9S\&"'ձHߎ+ 4Y7 u\ )gmlBkՏ\a]U$f4xțD<= p_^2ĭ 8K[@JKZ]lˋF:p:fU1BD 2fZȱI&RZ2$*J{@WHψ̠ @mvNiT L@w4 }z/bw1x1pSɑc(,N<}S`lNwr[ax8G0' \ת?v Ҡ^̓dո`zm))iD'V YmRJYU^9\b}+dܛ Vϱ(DQ$sJbHh"j7+KZRZqӈ2&f }L UsK(,u*̮3S2mwG2紏!Maaަvlr.NN@T[;Q$1j9 :?/;d#6OVlr x(x FdV ӳ:\JQ "d767bb :-G^ w_]ޜ/8Ůb̴\WSVsB>d!&?"1lf7-2Q9,H)s̰:A~7ts 2QgTEiPm_ .կ"FLѵ3 YA#^O>`{r4,QM)yird1T?>i{]WҠ% O"!hTMnKԧ!ER6 >vműL3Dsl (J)O֬/eg1h&l6;'9jϱb!F+( yģ v @EzܻNY7t~nib^ЕV)ylyNADUq";-j&i&\` inKUUBdtܮo;< K>JDl ws-J;0[D̀iI)C\&쭶Z{o S AEleHUhK=7(,DB% sl (9M{Ci6RnNE0}q}]&?5*X!=~̒R) DC f`fsq4N֣!TQ1 "Q`AJE=XY>D !hX@Fkx\]WƟa"Pr;R)Vc_fxѾϒsl7D­6gdrfx v(LHhYZȮr\P̥AW'dnEo̐fXm XnDaS A3б`BRwQFV)8rE֧RCh/x}l ;Iz̯!\L,7:VUƖs?zhߜ" MΡQ"[k-cUb:2C,\U4>R; n #XGۀQ9fZkuT6ٞ%1 拟duPP1$4cu$TJ7 ܻH'Kؑԙs`D\E*j3qoH֕Z1d](P4F|ZRU]Sefn{JIGkS"JM(S7Xf$҂Ra5 6¶Նպ,ǃpuD6w !!RrW4ԩ᝕{Ǚ1@うfs%*DT$"6n0.Bfl^X '$"Dc]hk "QMXr))׌z-;7`#t$aBe¨8Hp)R&*0DO5Tj{"2ͳ݁ ay"QUaƯd3Z phua0,u9eQuۆF {ȒGvj.\0pk {gF "QF$EU!4~{F`[68#D*D )Ǿ^DѪy9{2Ͷ^;0WiuiqHH2bV*<̇Q#Z^fN^!,ZF(06*"e ўRf-8[4MfyR&@;BYժ-@)ZkkK$)RN,?)Mw3_3'P:X4CɊL'Zy0'!a'䗃6*Ve&XĎV=mEkΚ(m 4 GxAoL޻uH1G.g k #H9gqfɿbJ1͸j,VUTL>@P0R΀*dhZޚA~a*3{s9xĄPdĄZ8wQ=eXϸ' TuLv /[bl$֣ƻh$@1Va{p@D,@368FL Q "gfCz뽷֚DHY;u5?~avR+D1&2SnIg"*%RiɱHʨzZHüm)%WGm)%^V˙VDZRQMۨ'GZ*zba@" Y<G4d ln#d zCba;l"Ҽ G3oi #MO 9PA@#vA @d{RJl&:*R=>yɎ/so&y:hgI@FmNLr,b/dʂܹ#d]k>Ϙ*LX&Uc깛1hє)~΋x{p}cp}p~EXEE Ә= ZZj~ ("(btcB:kouY6 jUk}-lRQ{gϨٽ.aU퍅2n7l$ Vek5J$DMh ,RmݎP!vʖ* {0?cGAHwX񊑤AƸU[KXV+ϦxaQQml9NjQYI֒)@]U)eU.тpL)A֔.J uRu9hE`XdC (zzQRFjVJ`}=obRiP>̂1;nphߓb@Z8Sf <̑7(FDSBI'U a=BV\~1 ŎB!1G1c&ޭܰY;J ihwXfcG5<,pWf2-[GH%R!u,vK"H@QUևbΙ(f; QvڣUGIvӵU-{ *t g0 d' +|`*(Pb!=W2"%\5FxIDATg9sYjZxxlKk\RUŭ=.ck.NK # ̢SPDZJʢP;VT˙F\= :)X9:ܼ,t::!;~KfFty D3"RFx.áVO{W*!#n\e =12!3Toh{^.RlbOD:w{"fNLV0˄vgJםfSsT3LLN҉ϊvDLX"a~0y ڕ5IVoU]=3 p(`:E($``۷dd[`-*jor9yd$n6I w4/QdSɪTz!@Z]kdD\#C5nP 졋0Znu!˲Z%T]ޙ)FGPOHAFή)Z"6DE}m[ӫS2mC$]uk'8\ocm_nmfNDv ܰ)`Z+*z_d]%pʋ lٶ]*1 S2ӧ8*JXcG1wJ$G`-ZZJY繶FJ- P"BJ8ސDDz}C"X#1nc5M]ruu]&H5䤻n V^K-ki[-](2Vgp.:D6F1pa"T*ưFLǐE njV;9 Rʇ( +c"Xa %&ϣ@j]*\lve1Ɵ"*JĔDjE6""x^xM{YײbM9͛yYJ]3Eg%sxA\MB譕u 6Ӻmyr+Ey[]B5FiYx K3i;Ցm#i8ܻe"A3ᐇ|8l;Jm&TRC ,k[3t~ DロiY/Nקa1>}ۻ~ナj"<Nֆ#p'#!Fcֲ,sYWe^6- ۀ2EJtQ֘n5hzyRRW0 _\4[[DD&qD=ot:q<ژxu%8T[ !p8᰼~!#l׿Oonnnڅ9&Kc1wHr/u7;.7J6-N{3EH"^B^ ;B މY#E :M1ƈrB->s0ؔr 6U  Sʙ9t`z,0ZbFcYKkm];{"o'={= 1~bkiqy< p<$ɥڻ:( *.r83/͓s^Њ*QBBVk[FǺ.d`-|7D U$ݰ%Fd lW"!;FxG(r\Qzѭȕjn6ݻOGؠ-E9(܉h<4*30_B9Ŕ1IOKSUkn&^kUJ'+ X.W_\_ʲ=T{k-a{rmZ+ǜpLJ{ADȼ)_m͓aYzCk s;ƥBEE.ֲhU6?˪2q tg3uDS筴HuQk˵nE3j֍i;̜sFz "5kƴ .bM~kkBڡ=RxD#*emقsUq|{w?{,lRW 1h3Z0WS5(Tke !ڦi*[?Z+m>'YjS`RшL9Zi' %x!tKXv#& כIW>8R-.}7n,"c"zpԜ*fcQB"t9ڐsu.j=fxJaw;벬 BB ̵:{P$Pea0 Q+ڽYz b|ii*JL"se][Dqi# 03O?0df. y=Rq$걵6^F仗yP aZ%e^(rQFx 'J- ~pxpAcNye6^U$nM(~O FX=]TP{JXk) D3,4[аS utIwmOt͇?̢Jg \k9?<3< ]q4/2/4=>>N-髯{DD~˗/fK)a]arJ!23Rm58+*zkY‹yUJāJ $mQierB{:Ě6WgWK7=PNNDS+a۸v[ ĆRA.!{lͦ+[;Qaq"Rk[i&U )%mP1l=>>ݽ^1S e]hWPeqzzrR˼,<˚|?lvj?K^x< y6D ) b찖bAjmme،.r"i/0`-7O9Q"^M ~5\vD7J؎mvuH7YQTjw(u3H[oB`^2i&Ts y !ZK/?x;["1{F\|>OBk昡Rꩶ^[/\J1"W~Rf6{_Ϟ??:p< <>aIhL sDR 1IQ7 ߯἗w:VW(LhC Ύ@3VxhŘA {u@d8n=ji:U XS215Fm'٘Z<+.fZGP8t|)B0UUmq(Rk5q\<͛ovB?ͥЀɓO}0>B~ S2MKYz,j)9u" 1L$̍)*62j˲ ~Zi˲.VUde^/u'}-3x8OUCU4p9@4[oDm#zygޡj;xq:b"b[kumYFJ9`;T1kPX{8RX0ݨfV10=Sެq;KaF$>#xu:B*EmUa<;zta=uYk˲z-#mvYϿXӧ[ne  vX)FP@De\s n=c#7.~7ؐ`&,k͏As\Q^4 I .?]IBtTtY<}jp<R0Ía@lEc:O8 ۷u*2wI?ϯ_ߛl@xyٳ77v=N1!gW{Xo!P7Z{({xrwe> (甇˜aGl¸vS}"xvdu?}Jٜ0Zȭ+RNDl-D̬*0j-pJYuN"Hi^Z!ۛۛ'8"칈QN`z<<̛UU9k3TsF? 2,i,17K#"@VO,@Ҏ7^> fbKnZL@un`Đsh>"m(<v&y+r`Myg8NVDR:pu<>~v qM3TUS~nHiRoU=XcwgcJ e-%NJKU\oxَeJڿc^ d ${ͻr@_EL.z[uxYֵrG>__ojByr۔B )LȰXFvaƽ\ ?z,DEl!vy5RW&([֌Sq)>z.d3 lJϭ)a;Z-Z0pn"8VdVIENDB`skladnik-0.5.1/src/images/stone_3.pov000066400000000000000000000005001457640636700174660ustar00rootroot00000000000000// Pov-ray image source for Skladnik // SPDX-FileCopyrightText: 1998-1999 Anders Widell #include "stone_common.inc" camera { orthographic location <0, 0, -50> look_at <0, 0, 0> right <1, 0, 0> up <0, 1/2, 0> } object { Stone texture { StoneTexture translate <3,0,0> } } skladnik-0.5.1/src/images/stone_4.png000066400000000000000000000573771457640636700174770ustar00rootroot00000000000000PNG  IHDR`ĢgAMA asRGBsBITO oFFs*tIME $tEXtSoftwarePOV-Ray 3.7.0.10.unofficialqtY[tEXtCommentRender Date: 2022-08-22 18:06:12Z Platform: x86_64-suse-linux-gnu Compiler: g++ 12 ͂A IDATxY$ɑfWf]wuWuh`2ݕ]]AɿH b꣮#3"TAMͽl>fu]u#6drxxxw㓓tR os."l ~u:}bY!#u@TA@ێ?/QiQ>9XTij\].ɤ^+&DsvyYn6fn- 9c1ԇp{{{}=?,@>x;O>~h>&lL&o333Ҽ#3\_]K)ͦ3_UEHlwh",ba]($D@QE" {C4~ޗO~ϸXʒSL]^Zɝ n Z5T"0JDfn]vm DyG! 9}mnomRBr plI")W_|o驌?|蓏?~9"-d׵f\Vu-vlRMlfn&fxmH) 2)%$„Hnh[ cn 5-Gl E@ϳ~r<:>U5| A،^8@0X5s"&YxBݴmn1&ッ+缯*v}n}]9_L8B1}u]B߇w_~!>{??'?NuUMSWU]u]6uJi6gsrns @:GvnCwwb39:D+/Ϣl*Dt9$y6hv FI<'l'ُ ϞM uJl,Rpޣs9^ 9rS!}}ܴ-:ZWu]v۷['Sr.ƘbTc!}O}cC^}嗿ߞ ;OGM'Ӻ뺚Lu];G!vn7DTW5H3-Ev[M3[,vj7;w&Dr~Jq!@6 K DHv߸5DMRp(s":B<}{Bٵ˼XIED"V0sJz}3cv^B9_U3g;)D9S YtBB !؇w]u]w}m/7_wgӿl65u] a 1B}'ɹf:?O{+Y\_]vmX.}w_7 '9jonnWGGe4 hX1(m Sf@("D*6XL* @XJN*c#8Ab3rPo};92˦8u`DXEȞHD )Vkt@&󐥜9&^ӑy98PG3j֜wC9sf?=|?Νl6NfY]7ιkWf!߻t4r%\./׫MӜY5M\\%R$bAFr& Ck J+bt;"49F2`F`օ& @bvSMd' $fwMA3'Fa@a3R\ucUoST$pJ BHDޫ6:l98qK9G;H!O~ZV@sb>NL&UU)Bk&Niqnwoogߍ)zo뺮νb4uYF=%2f9ńYِi5H2xGy(E9DrCv.$B1 B8ҘNkqe߇;AkĠZZ=H iS(JR d+Gv_ )s)%r-0sJMbNu]bߞ>}g>MӦi0y:WWW(sg\]-;NtZUUQʼ\` @JMMRE@YFK߶y@al$ĔzX^gSb4V׫ߠyF{$X ?|Ck8D 麪Ywd~P&!VK{_*)~6kvNɇ~oЃl2i4"$꺮ooo77drxt_<ݧM :$@aU/fb\SHdK (P5~fbr)Lˆc ێMIqDhذX6.dg2c >9BA-@VV;e؋" E$X?˜̃#d3cD7u=L&Iޜ 応MSUrJA>&'O[}׮/~Oi p`ب qH1F쀜YB=0',|^I`s6ȂA,  $ r4`N:ܲ*h/ 1_ ,ȶ ]Kgza81 4'1'Deg}G蜫iꦮ7ӧO_djjz\qMu]l=}2^f;HtXD1F d"D$xUʉ<8@VdQQ2@a6晎MB р;;7 6`ǮEcPP? Af)>&%㬬SžO1ԓ)Hd+JM0,E2 _P;'B';ueTJR$1sf'OϚD?g)?BC2A,8Rr,4}-@|rdk4"* zF0w`,NII) }/οB߃2fX*vCsNmL ={GPQ|cԘַW'J| HSL1C1PR) rbasrE*J,lh업3JDD/qrBB#SJ1DC%vƑA4ӧCUG"'}׵Fkpk!\Pd,z,+McG0)cP﫣" K&DcږY;$c44TDwH(Ö.1잊QT AF0A퉙K4:%$]]^mlVUU I4G {( }WX \,N&m 1P9)[5MY}UU""bKuVƳ@D$BH%r[Qf%ƤSJNv͢8q)fS!pJ1Ɣr"0ZJe8elѰ tчCD"#*hpÒ8 ̧1SW/_^VU .# fjshꀈV%QʑCA!^++SLz2qVs}U" 0bX3!-4?9>v%M|}<.7 VEKhD )r ,eRm& *f,]vd)%J጗&.lTXqx=W~@:['(ե;5Xg1sAVd")Y=[XL!e e )gC%(@$Ύ?88 #G|,@6\vs %@LZ0ډW(RL1"Yx $8jV])8`4"l!,҃9@d(GB >Ul6ѶQڢ@K/Bq^pn%"‘$4"愌sa󑅙nf3g1_U=N*TkŖ)lK^js$/d:o~?pXq(;*dZK.SVc#`1*Es.7BfP2{F’K6d촚LӧFiʖbjRuZi"A4h ꁰcbY"ET`L NLQrRW-Ic58d?2 4w_.sQ=@]7Qm7˫C ;0꥛Ĭ=نcDY$"gE$:+"s07҃bbr|pt\7O4yLf.͖1JyWw͆S"bQQJh0xO1SLctln6jȑs^Uc^i1bV (UU|fb>by":A*䮥fDG Qg2Htkky 9"ң0hf4u,KdSeX)@`aLN͉8ϑv~\ ' R bA%-t̟0sIuܜR\Nd81-pQf f,k"\֠€ nT陫s+b3%>\7?+W0Tt@2c:Yz|O1 3#uF%1`o$ }f7iԩf% .6l:}yW# V 甾㔬 #C*W!X^ 0ʓ7 = xJQ&86ܔXAp.U3M;rvy ;竔ĘRUC41E8{41Į""gE,J`H+H9GΛ"Ҁ|ӡeNF 1>_@#0 @nnn^|d:}VG bF[EemHdΪA&BR }A  ٞ,ߏ8 N)W1J 7|]C?%gP6X#;TD,DOUUgiasЛwI!|Oݮn%M{].9J@3-9Bl=g+)&=28d\YW,:jjؒhEȊZH4006uWTxf\$?*@mWk,( ,dT2}u"Q3'N6ybқ1#GN<3 !nyswxrd*ʺH@\U @uDC?LErnNE=nK) 'f>&z}!sL {wVFm6G,zj̒T]3َ(~׏^>Rz9EܾEF˜Y$J -|fC#XG@F3E5jDtΥ%N :Уvjtesr1Yɼ, 8O6?/GpqLWj;90u-N{'K`L\NPP]9j&8SB *DLslm.*,0dNnjf dF`CnvaFŊS9}"0ұY[7>?8?4!!<@@f"i>c\eFVuSԈ ¢`:>]sɑY%+b[$h}SY,"ȉ /*=:͌I ׆6 jaRxY\ e\\*ަ`bP")0sNDE T!Pλ񮩶}"YbmcOyf5ʹfI{S>63#EDr3Yc1+PV.E'@"+3_07x+$KOr #ۉ׽W#ESz7!l]l$Ql4 k k+B{ Re(/4ċJxS4!y(9NIq;qADC((e#s&" x|כ(uZMlwι$BD9,I1σrW(PTP?8 "7t:-B緲o5Pd=׋eV_|䜮m% #Df)>bɐ+_yA>vf}1H1Uh=08JSqsJ⪮v8W48g=6IIRvNJ J\Z]JIk1 ެ\NOlrA]]%DD[k(8 \lyQE1 IDAT01wm#3n@ WX?a [U wvv;̣(tu5pU`;ձKWQgQ7DIYՙuBv4I]UH]7ﵪUFSDYȎNQ@8r󸕘#(\:"UU [vy)=xm7L&"MZ>)s@N1!V(='"C|nkΒ^BlPWP= CQHjD\ޞ_y߻a #C! 6gj?saɢ!$;GƨH31(",DDU>4PRUB2#Y)8YlaBWUb4DoZȐ./.?zϾΝD|d(SJ9OޤO!)uZkA2h35洿g ,(y|P<驟4~ݝɝ;DٹMxlw9Z KFI0Ѿ^@XY}UՍj3J9MSuSK-""D(I8H1NJ"u 1Enç?Y]`3fjئc4N9uyr& gfKa$\^bNFҌh^ L~rdgʹ>\^^>xWM]L5`9B2,o^1ǟ0' .L)WU-OuۭV+hH bR̩,!(83 Vu9 "@|׿z{_~ur"6"h C3% xmeˑ:#r4r8=2]`guSE 00Y,2Y}בtf|>T 4BLM@ SJe$q D"NW Wy] )9c)}%N?ȏyv~ݶy7w._<ɹmC ǔ3 caAm&D 6Yk5&,HQUvF!D.EW#[ᄈկUo(J M1eu}}vzz{{o=y2Dw"@A .&BNLRΠ{YڄbFJI)FeR12W]AV3-&t8[<ﺖS̙}?/.v*5cN>pQ:Y62-` *tR~FL:G?/.%*m+6Mɟ ܬ{X ۮyrlRW1f6uM[=Obg0l= #?U4+ml žַ$ dyS`aN9b  &1%F-H9Ɯ$"fuf=s,!kIrDZ Gsp.gP!f.v=d;O{Cmn|"جl;()l?mܽY,q8|?XC|a/Ϋ~mD:>q:I7žR%78[1#,5@"3r^}V|L9@2؅޳ZejV"%IQBb޹A{a$0s \)r HNGLABsPVȟȈqU?EEerN @p~{uݰ׳t6Zƺ@rdTXׯh2^]^~_,w^X)>Xk` ٟ1ր`1R^="9gQEJQuȨCZW9GXĀY}zy⋻wY::T~sN\YG&D"H 5nfwi/׆ky{7  d$!\V>//NOa)~Æaٮ777o1"׿A _-TzXc9y3n='N)"Pby-$qjDYDt&#`ɫ\]]w۝<C!8(RyKT( }MYl ^Y) >zno7KdC-AY./п.s!/8Zm;QBUc02ٲK`}% ovpnrghTUlN*b) !h'GOe6ipf՗sa1rL'Ms["EA}?VJ@ը1뫫kp:EthY Q1RkTY>|p}g_sJhwv4ۏ_݇?xYg_UnnXA7nChC,$ `J8%-77yW@.Y05=1i%HGAg4<ErQN!Ńu wmkk5- Pt&O,B8;K)'Ӊ>fcbqf^Т`Q3l".Ώ=sGDXlLWl6wgD^2?|1Wg>*Nﺞ4Qf2d,'\sc0U :^"`ǜC*Tr~{$?RqO1?xl0K8K`SE!oÛսwu+9bNv[nЌNR@ KXPp@m["n8_UnVt:LjShIr#dᕒjrJ)Fm1ܽXq~d`_eSv{zޣo=yqzg-wRDn6z!DL P5ch́g eݠ!2ˁYITK1"!,WĈp]*P>^q`Nx"{VSmj𘐒"YY1ܬn.ϯ+[.WWnl6/fP!ȉWiKQyG"BxURJ_GGhg\~O=@qJ*=櫺nfY4CP0%PE, (B5 ΐ#d }Cc faczN)ݶ}ץ<,A#ܔXGo12F~zC5 9r>Yw9"418c|m{y~~q~^jD }N!;դ !ެnݿ?Tzc3h-c<Ƙj _||λf\ի|^W8?zEm~WGihZ+;f"*#JܔLCzw>42ƒwb}b= ow6f;f"NftP|]UUPfixdVbg⫗//ooo]'9Mӷ-!ܻwCG~]?/i.q9+Z{N6^$N~}( IQWWu\]^7MuW\G Ddˋ/?W073fiFŘʂ]j̬@"Pb(jBR}+qб?vӵ[ HCI+Yhu&H[T,׾-N1Ե-S16X>:9n6|Vu%O~<~6Ogo՗Bt sʏīU'?Q!ƪL!WWoV+\BoǪ'ͳg/_ݽsW./|UM&U"BsgAċ/"Y1}"ZÞAJVYb A$}C}^bn"WBƉU*J,8dB !'Xs4 #+bGj@s9rc\W׮9իg_|m1;?|q]})חu݌HbFԋ%6?Zĩﻷ}:8%Gܜ>mo@Z߿w|y?o$Hv:jpj2'IfHmd=6vh,)kQ1鈈>>t]}ۆ3ı<ĺb! }NjB^zDRr/j8$d!G@Q$}i^]]m޻jwg^MDu~?h=aal]0EjB=}cJAܹ{G} NM ag\v#-g>w\_,wݥD=˽^|P4UUUuHRD;Oeߠ2b48o#+qyP}}cJQxWECwm?9 `*.~f]G$x3_Yr*=S]ׅ//.6. ]_]Q3OHla{7wsyzf1_r<nWWRr}}5r*1߻wCD{{vŋϟxRv{^4‰S:==ăzZ]Of3ڶLڶL&\S 9q! Ģ E)^yP\)ᐱ)ƾ&ObVfY'H!6 ﶛ<9-VMyF@n!R ` 1H aOqϰ=;;=[`fw< |$O}~4߰$4αx <|"ؼiѨL~3i&l>_uC9:sW"{L&a ݔi]޹BGb軺/ I`xd{bX ibI1tۭ#H)yPzZ$g!n({BtefW7$AB 4Zx#Y!8}2tmP*ۘQ4<3_|R{L9QN1C̹=U/yD%~ s !l7t_ms^C`tbT;:>fŸ?L& }ן~ckbϽtڵ[\U7'| (SBe*S+}Z*F`"tީ 1.c}&V3T䉘uY1D'c5S (9]\?xQ }L@`4W_)mF:x*6!uƑXF^m:._;8xu׶tY EWUUbg;:;= 1}1ƳׯChXLvYAD:@1f$۞Rr^tw6J t4Ї@(*%rɃmu~H.(\ܧF.4oFD>[Яzi۵|E 1n|btU{ݝ/" 6wTDo۔"1 \Jp7 9ٯ3[,f>˔K9?:>NffgwID׫gϪ>?;cfd6C|\^]\snJk((*&-B E{*UE|lBc؎;&\Tf7uplo݄\3>dAD >я~q]W:Ɏ5 A%]^\roX'ŧt>o\ 3kH,h6n0ܬV㷪Z! +MC9"fAbAd^?'M@UUżly!ul^Y̚1ʱ~8Ը]rM w9%$reBi%Be5cJ}]_]ݹwiƢ/1:9B1>zr+1o7bgguyyZzQGVUM!b iT69H"R} hn\ݢ5AbYu֪Jg%2j6o8r`Η<18TX-Bo t]wyyyG %ZJm[y}c.':"g|Ҹ vE4S ׍*ͥc1x:?;)MF '=WWd#r'ƦDfcG?~{yvDՕ0oַuU>j]_Ր~"jP*:L=ص L\r bS~qUU.#ȹF,P]j82P goxSJ15T@J+a`#aܬ;''p.QJ1nR4\3}S.wooooW ,h:Z+"ǜ wZB#$^]m7}}-Sb﫬nvM!}w]l~A< gٞEb7Ub%«j9>Su\^GN(?:X9p}$= _Di mIXIaF1wJ*X)sdﺀ ft3v{uu5x{娢H 2"2.Y#2};_9jO?"ᘫ| 漇;Fxmu!z_Vgu_4Ύ11BlFtGa}{ŋb[;F_z"}jM]מ~ݵuvՐ^Ho.qhONFf}`d". >`;*by0٘'DrU5Y02{EcV|6*8jg[(4v$eୈld03>ĮkriIruCod2Ѫo$$7{,VAvZA *??=fvo9޽6T/;{T=v\ɕw|[Wd-$-hm 1<|}F@ĭH\!* c? !^fd܈sNH).޽㣣U1 (ooo_;6)EgO˹p8ˋÇJsF1^@#R(0t*V>wS^ro5%صQ:B`aI.~&Xi jǺ.); өQH1*@4Pmܘ,$8unCC8|n*@)J9ko|7H1%!fL::NB"avL2 (dݻ@̓!OV+ԩ\{ {j}',^S|mϟ~Z-sNWW/Ɠӳ AK.཰ƈFզwJYHBdR2'^|oOykTl&P}ڎV)彗/^~WMs:YXb<MuGs1(۫lB pG'%i΄q#*ܮP"(| FI=!5нO}xڝef԰@TJ*rVi&FVKk7//ûMT=$f"B!5 CLqFI2%Ŕ////mѓ'JJY./>շJ)2RhNʘ1 GJL(yӥQ?ϞivW>\,|/ZC(Ss1Q!'hac1//^xӧG#/ZK;/3{)EޢBLx(D X1eRJib de|e&1X`>o|cA?disMհRa,0b,2[\LT:]S1j先ÇÓS턒J)!%eI:g)gb >Eâ"az&(4׶W14*uRl9f1i`wo?jGG|8aA3m6ϾgO @., 1ˋK!<8;}WGGsocJ* 8|c‚SENJwN)1)m޳;.e4_B,ǮRT6j e+d9, OOR1d%1Cs&SP1b RJZ*bb3"v{|zbs5Q#QKy^TRZ!l4Ky_*!7 \j>T)š;p/#)hC&JK%i} 1?J)W_m6z%e별O s^OeB!6yJ)Ŝ(*S]D$0\o+ dĒ# 2Gޔr.(SVcJ\ƹ;bJQm8Q G< uc>Q)$R!NXV9\u\.˅?۫_͚V-T;8hV)IRHL"%{zH"J)9qSRP_\~#pm!im6Ggo<8:ZOl_Y_]^"v>޵ǟ}Y48ncH%B۶PȒ&I?q´mp>R)Y[t*=J$1V<'R5@HTdQ汈;$(x?^u  ) EWL p8lwf=%(~M;MvbN9ØrzrPR2"_B8!6DI3aPD9%k c.^~5?Z=z jX.|D[m6!mkm^1Fm|89=Yo6 4:7Zs RJ1!{GlD9 L+Jld=dU8(g,[f\93sZv)܎Bi*M,TH>sb.6 %@DcR8 ~y!C~Z)5͖Uιf{zv& !%D!q)rqR)x$٘8«_~A)NΎaX{;iR; +,p̣)Ŧm'|>,`(KS΃)|$#bWob9 I >Hi&54,ʠrPq⣒r#, 𓉀RLqCrB|Jfy46S|CΎc?$.a[9}vtYkH quu ,3<>~pڶrWO=>nn5Vr.J"N &6,BHCC߹Ѧ(އv8k480 a~? 98hG)zlʄWH3fzX(m_XdȎ9SI2RqCR %'589JCp)88R㓫E|%,4{%bcߏ]ψ( RPL)%n?WS?v}?k۫Ҭm>:X;kgL)wWTUN)ĩ3sy9#Ӷ1"eMUD)ơ;xaDgmww9bqaŋo˷9}4mι:|>҇|hF/u[B1DURȜ(G? ۛBkc^46YU〘Rv43sJy+*XXRu1x1$YW/NmsYeu `1B)[@чahaa1hsWWW"'_on=y||zrmbmϿfw<|PkRʘ%3R('b(P9yE&81r]>x(u#1n?q>:=?mw߾1"vB̓gO?:o(Cմ(/knw\@99 1.Y1GGuӘ5^z{s׳oon>~v=" 641Ŋb@IA#ZVEʙR"qEr׆AݦSW0WI 8{;Z1%" H ><%}ꫀ)H3s&hm? w]w躮bʂ^ovy5Z n3CtY}sy}rzw SBe)RJcf4%i!^)P3nG) Y`_"J)i )1YS۶;t'gggT`EFݶǏΎ#/M;kڶʹ6*cQn\mBrmpF!pur_S]l ?U8(޹B9N?\g ?; 11 xrvv8tǏSe) JQQcb 9e1M jA즔7)F>R1yhb74z:{tzVZsƩ !u~`Z9"2ƴmkLcVZ+RZk^6+L19gc}߷(os"kPKN9%꾇I*PT4}88gh @in± cv82 c*3dH)9Fkha~~x4ю_^Las@1KK{|nooǮ{h--q0K^1Ub>H27UB;vDCD!;DVnZ,!ƜԊ'TbL8n'r9 u폀-v&L+ #+LIiiβH drSPcLu`^96f1"ҹQd\Qaav}oǑ+6ubbNa ,)8v(ge !rE.QDy뜵vmסq:2?0}RWGGRn۬7Re%0,/u&#ciڦi1R)mxL?18Gk-""3OXR='}IT|6JΝ)qoon?~TR11mLcQZB|JJmVZH(RJ)-d7HZ)U3mP* QH^Gz@9*"׀q .+A6 zRbF0J2}%ձDZQS  :w|D0BG;C}Oci_,볳f-Pq<;?o FJڈl1oaUʄ8={oX(VJ!Dq8an.V8 !1|t]w8 @dLCC< 4b0L>}J%+0`!`%<1ƨ5GbebpU>R1ZNWFDT0q^.)1ɥ"Xe`]ơ'2 JT9RNF{F}s8蜣Z9O?!@k>{|ZgmۦF`[|x3pM4mnTBkm)D SRU_pF'kd;0<{6*J3 LKVژ@:ZM )%)e;i8ŔXb.kVeQ=(a&/'J1(_vSXL]M_O;0TjȖ&?/9@n넔Sp)kpaygGMO |//^{'׿@ZV=y6rlMӴͬmZ+%eن۶mJA)FqER22 wlT.[ {|vb>8fbʹ@Dd@)R4Mu޺ba(ΈxO&‡g"RZK!I%t>,SZkm1>ENjQ7#3w%4RZH(]H Lܲ҈cp2|r=5R)_OOJ)qFR}ظ}O_ W0Z.ONN65k1ܛ(1@!1h%Z*x~|ؔS>/z_Ckִ-;x7M!&2~JS[ &O6b ١as9)?wE!!$\""?c1Xf$R&|H)9Ĺ3*X-;؍cbP)]^^yfi ~))7f^V "D(>$%.Ҹc)ŢHY4fe14FLc|vnMhE2[AчCE-P`\K=Y?R享&>sFX7 nH9+_,ʹ.LriLDMs1go3l_a'1^___]]_^|{hz !jf\+ jօRH]r=|2qWI_~'``.]*5ϙZgwRՠ4X}(A*^;'/:4ΑZ;Pɬb'XPT}TZqs4?Dλcl2ʒzj',YlLQQE.IQ1J ưn=_lfif6oۦi[^);Z((Qtf3`|"Vaty! m4k (PJ%7S/Lq*ڧ2S%.kct<\ eqdQʘfҥV(H)9kSlw)S8c:|鎵e;[os+am/PDƘR "Zi5*oT?hxUՀ2d$%SroԒr> ) UyB,_d,Hi& <C=X 32Er`!ᣙThV"@Lei*9BN,COʿ =BpIENDB`skladnik-0.5.1/src/images/stone_4.pov000066400000000000000000000005001457640636700174670ustar00rootroot00000000000000// Pov-ray image source for Skladnik // SPDX-FileCopyrightText: 1998-1999 Anders Widell #include "stone_common.inc" camera { orthographic location <0, 0, -50> look_at <0, 0, 0> right <1, 0, 0> up <0, 1/2, 0> } object { Stone texture { StoneTexture translate <4,0,0> } } skladnik-0.5.1/src/images/stone_5.png000066400000000000000000000614531457640636700174660ustar00rootroot00000000000000PNG  IHDR`ĢgAMA asRGBsBITO oFFs*tIMEm$tEXtSoftwarePOV-Ray 3.7.0.10.unofficialqtY[tEXtCommentRender Date: 2022-08-22 18:06:18Z Platform: x86_64-suse-linux-gnu Compiler: g++ 12 ± IDATxٲ$IsK-g_z_ f$t'%=M2^PF3ARzj̈pw]xD@s*3#=>%˼ڶ].b6 HtzvشMyׄ4ЄC*)syRޙSr5AD"r{s䈈 TUUEDUT@@3sVQEDqTжU9GH=IUIU)N" 9U~D\4!QQ$s~RfafrV9gQbf)s*0ačo|Z_Vk>xx7M㽷,1a8i)b..b7"amkBv/(":`iq9UfeHΙq4MHM/m9CU "*ϯYD9RS'kChz E( !RS9Ŕ9hhr*+#"v] *,َpiՀB77{矿{֠i~}]ׅ 6O;!QX'b'"UM) 33iL1dXaV8 nsD¬A ivVDB>U)SJ¢`H9"1mQ]Wgg2#sl%*9FUm>4-qALEE$3=sq]Ǿۮk;THXTSp8|z}z\-GDf9Ӡ9i|v93l?|xw݇ *g7r{?~ѵ-:''WggMBhQUs·a84 B9;?w#QyUay D!#dF@#aY *m9%䔙Y6!!YyٌxoPe ;,ª@D J!}N黦i aQE[V'ggm&}/64͙Smi򫯾??}PYׯ߼캎#\hD$ }M׶7^-9D0w;rnX?})'7o/As{\81d\JUn8LaKu4s1 "rqvqqqyX,wP6Z)?춠Cp!i,Vж9$CՒUDTy_}}mUMN46ߗR̙lkΙiߏXQE/mE]fQy8͗g̜RfnYD)__6W'??y{ߴ ի4M>8G Dl7oCnctDi]u7Map75A{CbE}"TAUGAU-%S&|; 7|iwޑ!G=9)zs HU@Uc~\]^.WbBPPUv.4_,<q1#2HΑ04ʇ)iB4]X]_123vׯn۶9#Ej " "z}3yoٟ}xf@_?;OOן{r캮iڊ"BDcarJ~߆Uq4M qU{ȵ]\;1nOOB3E"FX\!"N*9%u1S@qM׽m۶}@@D0_`{hB>>83"95]9GΙp>Ԭ@95M4.O)sNUU4rCh&0rJu]hz/!xQM1N㤪!i5ťauiE,4}u}߯'_|ſWsk7oOVo_u]oBUr΢$a!ˋ燇GC>` dbJ18E3ЄwBszqo9BIrFBh()3!&8Nj27Brh uo8T}4dhSfDCD !N#Ȝ]λ~Мs#.Wr->DH)M1eBݻw??iAOUXi2+sy™U1#Z.?||zxy348qL9}Z~:wUEE.8EDU9sNID9ݝo??^.%/lean78)&Y3ro^ZDٹv}v`hPSA«rqCGQQdG΁esZT09q^\9\8N)E0zmh:9i:svUy_?www-Wzنz}~yyr~*'DP<!UN@D ؗ_\]^}rKQ4qiS엋ڶmv:_UPrJ*0>|tnJ9b)HӧO?{!C/=n|n\^]^:r91Kq}_!r#tm0g!8 aG1=}ZV듓DXIL*:r nMoۇv__6дbPSb2efG͛ribiXt}'Bۉ1ڿ@TRJ"6l3n[4o߼X/MA9M. oF8j(do@iw8E圇n8a躮bX.iӳ"dm$ G /YJa>~]\; ߼0WW^]^^")e@q].vz3McFZE$NaES rjvC>?ye_|s@j-s 9%?|prvCW7]{9@0sf,n>މHӶ77bʞ#grWQawm]f7l QeIK0gQ:}4 L?}n6q4HbXVi cCDHㄚabJ}-?{{z~go4s4~plμ>%"wyV)jmi98 Q4r9#_^9"U)NZry`P)3??}G_pa_nnnۮ,s%j41(>9q!݇i?MvYvv麘~;=;  @TG:E"8M~~zz%"0>=<KaVӳx}L>4 " ΍*h{,BSŢ~lۣ.WjDjݴ`špΉB55~D1I?qنONNo^b@٨DX PU e ϏO>|'?}u_]]]+ixfUkJ# >4MP%7@9ƶO^vαthQfd6g&pΌsۇ{y ?|^26m0s]9z>9i Yth9O 39bΒsMu/G{ӟ/mG>BC(^E3D"%g5˿\_]ׇ!Mbm}77M xqy% pBqJ%Dla{vyՍ3v۷ǝ}5`fd)cdGDŵDqO BAܯV \uu+ٍ#bPr cpabiۛ㗿zxsKD" 듐S~X]GP1k窚R$$8@$NSВH gLiiۮk&R}߿~vxuwNUs ʀɉLj;9[`׷[vDTyw]MzCl(ڷs 4۫ۛ9S߼yk]M| )EU@+Ht7 v}Ea*A-Wc mKag$lUPUdM~ۉjӶmYSDu_'' :#,z\!,\Q͠ :,ьLrN)b!{oKg ߿?F4'Dj)ΣD.LM +f" c~~[VdT"D0cq 0Z?}-77S/~kf$|IMWC;0VU֩ 4==>_ݮON ff v9`1˝O5~Xz-"p8 b۶W7O߿~v~us { )'"X4r9g@/CZC,NR&K:E䜊\\tpuyY wnn8rh_k4??+ݧ~)N["03 l \UQIAA77vo~k"{QAAd`"!׌9C`qϯ.-ϊE{fqqۏ-l7M )0* 5DӧOw: yV\]߾Û7oW뵷2smD9Ϝ8{ DD%IsJib.;4X_R]^^_W]]\]i)B"Ri3@'h>8Lqvk,r*[YQßly+@QP-њ>~/g%["@(`cDdDDJDbÖ97q|z|@r} ";yQqQUD߾0cLjއ`5w>NO^y= #mk1~ۯ$W_w]7#C{D"GR@nD䔩mUA$p)̒b8̜2L=Gsie-)N53B}_‡9n0pq===1:%V®EPUeE*%kTTvrzM_/b9au* ҅5!Df[p> tv~|@aY%nl60}N 9q|*mYH!Ÿnɻ㗿-_^\]])(<><~WMS-92LBDrNA9$)UھI1NSܜ33,+*:kʯWsRQ+_1H49N#Dh|jw(<<<8SʉpDU8'"rXӥ`;V]PK3ϑ)_gW)N)NTjeXW/LCZ3Ɣ?Ï~W7Z3(Hh|68?|n6*bjip0UwNJy䔇!Ř'n/198M"7_}ոp /p{4yʹ- 1pVq@}@@*͹WU?sJ9MUê\.b0!j!)i)&Q4 ]ۺS'hphM*@|cTm\>&ΖX%6*(~K)?3OϿ΄*qSJDȬ,&EDJK(3o_%Z]##œY>z|x^E-6]X]^v] WW0dӗU7MXtO߼y/ 39pQllUxp,#b'Z88 X`\ŢM(Cy; 6M *p8LtzJx'4-vnovbZww~ƚRv EnC,q(Ð)߼}״mNQMHIDrL%EPPQ,P3t8;;8hs9?}~H1Nn_{Z.qzz||~zv*]u q>=mVy64XU٣,Zq R%833#2l:h,Q#̶M_"8 ڦ]ۅ9rΪ>4?><w>9;[Osƻvë7o]ӛ6OKD>PB`@";綛a_,sMw[]ɠ)̙*GE`чVb4tq{ )-CVg]*@uf\"$ U$9>0; @"Ӈn}zn'c K睰]^-Sʄon\l# n,*f -#&\sVm,^\H@%2shs*{\-w>xqN3jy}7ᐦ*lrNFe&]0 8r9#QJiOj}O޹3$|X|V:oCFU( VtNU_׶CtBPs)ƉHD Ѩ*ӧzuϑJ'!(_~o{rzڦ\Vt)9wsssyyeeרg>e'p9g^,Ti1R@VhQHQ6EsN DTsqbHH9{s>z+UxNiqr#8~ۯ8^E%?%)|aXV)8N\rN(va݇>9ULVG)q ɹRfT,lgd#MK};盦4RVCk\"1q3竳3+.5HTg||xW~Ņ)ZbD4M۶z,19!fE=p "3**Ԩ,ԇ1>d„Η\5؊,LI!W UsFmi4:>p(^yZ."R!4i]XڮweʜspoRL MYTJ> *@q[YMۜ9XnA]=Ds IDAT [kvZE$c|y}>9)  % j.OD&YYR]ޏJ`' HZ󾚃+o&hRENS1zU=֪\f.@]}zy9~ZW׷rJ6mӨ*YAiŢiZQa9圭;Ÿctݶatj.ӱr8XGeI*;;u}?oA!r<$B8RL9'f&˛MJF#]gc7(w}6jzy->PQwDY@sHUɕOZݙ9!A(sHRY ݍY"kuG"9g} Y 6YXU9c\I;Smrc)5!']BpDD}4伪ijzqDaMuYhU'K1Q! @ dnzʎk"S3I=*$4M9E@- KɀY3-հX| :[ZLD#GՂ kMpc8b)Uz 㜒 X@,69@ɮӢUBm|އ˯^z/^u#ՕWx X K)O}x}Qe'Ub"lռ˹:DOvϷ5@h` ղMAWըsiyY%]4r嚌2j9~ZXjR'"ETAm+b@F[ȩ*g3N8%މfu9'sNv|*rj)M(rF5R>"۶,R!ǸھV<fZ7(!*K%;@9)q"ɉsa^RJ:"$|toY7o޴]u VRUքѢ%."< 5@ji"9jnG{/P~H1rokB}5=I RR{*?T)Ó2$HiU`f@[CH9Kf,"I/ zUG16.VoKo./.PR\Eh{Q8@!g(bPfݻR("5MӅZi !\^]9"+UMi"n ۩8&.xg"PΠ`pv>5wt7̪j$87 ,:s$+Qͣ+h[9Vm|`3 3":}2Yl9rȜtM+<آ3sb;{2&ϊ,aa0P,|5 pCRN]LJn4ycs~Z.K)}**\ɁPQEA3)rFZй-HT䔁GNb:@B3BBNyU+ђ*,Pc;lAY[]P%B4Ʃzf)ds1NaZ! !pJGAAL("l$ڲ̗(h<3w]Z[o*<9E%4mP汲0d wĩY_}8 >91v)um׶]oМR)*sQ>Ej뒨WS94i8'tλҶBgE~srG.X +6uuH nt1 r.x@`nRe$ZF%1N^XEh$ M+9+3ǁCRhZ4a}[f餖gHY98M9' $K<!TWjj%;;w6.yq)F4M*?3_#<&BN K)hn/5#AL%B{>nRaZϜ@u8jC L`*icҎoQA>EUm8JFm ? X4})-~mnum-@3GsmfٿWS 趩c=ẏÞCӄ̼^t˫+EלpqKΌVR-U, _O_98fTaN)NY8}P-HUJ* Ԇ:WP{4 qkz@7`fZ_7x!&hʻAR-"+ B#%6à,D5 G/k;o814ݎ^g ` QNp"N[̕sh"=rݤU)K39[4vQIwiD;`zRDb,acxOjo(Pez9V P'xa[Tr9S?ӧo~իo5McXːofRƚsʖ95 sdz +LYTVk!PjB&%rnZ[kor屇⾦rWȎH*̐B;snqahޏ(/22~o}Jz"$,r>.GUД39%Z+1mP3buf9b׶ao;9X\V*R2?ݍR̡ھWU?t}V+7;\vFn6!5QGD-1'+0" Z%xV9,hX[fNgABR!ciOm[;?[_m>{srrRBY9hJnΕY>ZPي5$Y6g425\I>$Yf0wK/f: sN1N"KivTaB,ޢc6:SH.DtoqEU-pN%}>J5)X+:'&i {[O 7I)4:J F+ Ҧ>"-6[.6(~3 (rzR | kͦ,m(kݺ-"z4k hdΩ*"p`aZJW'МasZ>[6".rN~˟[ qqiB@ NrN*bg[U B"*E)^,%{Xe _s6ł* ԁT82gUǑv5! #BW LrQBMcAmST \Ty  }_BӤUJ'NsXS6epf;h^,D@QAD{Z,.i0Ok_%Iv%"2+E#Yí`)sDr[-ƍ~p3|cpTefDb_/^;@MHti>Z[+UDi_Zegۗ(&R Y=,ZJYu]:ayv.TTM00LӼ, R°7P1q!"BQ " &Gt7zxR&tpfM M4HnT$|!+NSnE寉'(!7.s5C4i> @ܠ@bDUx-2QeqUnEbAZDKv]ɹ%~&K7!D丮 ĴVss"{ys{N"VD ]r4KČBr? _FybtEjCZa+,gUs"/q%?e༨`9$:qe õ̆L rzzKs;[2S:vTM&IQCJ^k!*Z+T L(6-DBk1ZWBT HBC6ls Td{:r<j'}H1YRY^M`t4![#&1("}F .L D/6!H~&sLf R(`Y,f!0HI+ ? (9IhaY0%/~>{eP%^j4|ݔܛJEwt/ED$Ъc !E}.|P@Hzg/FĬ5 RגR):=Xk+;]!]j=\hRܞP_+9Nwl 411yLިWJm(V0'{,{Il#=HIЏ}noS  2j^1ƋPh>Oǃ( UklKjgun=ߓ9/E"Gy8ad ;Gޗ,9U]: |Ax$&$ F[W0g߶Oc%NfEfOB&{fwsfzΟơ^ IDAT- ˢ )&L BнDYr[).N1?L0hӱgf; 恋&3?(V=mkb^fy9ԚrbIqNZ>|Wk+-[AoFRc֪- ߶HF4Pz!I4`rhrP̬"dP)fVv6J!՘r]aŸwx؟G]B"W+aY+P#un p >a18WMh ZjP+:'; "UK)Vے"^|x|zzz.sl#Mua<+A(!`]*.g)>,*O `zz<ְ!JO E5āR1R\0CQl+JϾ13JyIL{c){&)-l@aYc]#8KT! ĎqE͖Z04j-9Ok,)ͳݣ .'c~\ls^ey*vu Ȕ1؟QX q;Bc)YBjRJy.Rd z!4jOۧ'T-(ٷ'"2SqGt<64**;ZIk*ťt̖Og8Vk*sOA{` ZKέB!,Q8:L$D4q!uߨN6":zj-ٚ}¤# =F hXH"gl{p!Zx3K.yI%"u(wuuըwQԷ.z WKJq"*ޠ٠ξ.P݊ݲ$"r)UX ZiF8+IZ.¯֪ϋLx罰db?/rZ0IYP5lϛ̓J&9(#3S0AZ+NSGI*s]@{$PkMdbBr7w.DRhh / MU .>x08Lt+,"YTx~pss߿K C kbrJ֊[ټ B*s87LԼkb нjqQq5QifH)}˧O/^_ls}|8y. 3Z+Vu)o9b_e4jeeDToA;&DвuΞ rFh)fdBCtKo2CV[U%h9*)L_R˜5bGM,"A,T\yjE8D ³"31TGhzTXud,qW8qB6W0e0Zŋq,P#09IU- T:i `hX/qF"-=['́5 mk#gŃ%7*v6dGD"5%,YAXژn]Y"sNq>m݋=31#H+A67BpV[mD98(#XbQJv$(]DfhD ld>`Cvoib`j- q2ιzZVѹwwq>ևWݕяjFi51;UL (91?+ΡPؐd#C7&G{c[IL9R5Mk"6*Gx꾔8Mb; R2F+Ng$u!RjI2J!:IL==u>}n״{5 ԦizjM^DCIڟυuZ;'.wZ@pe M`Z#R*XLi"#B 8TӦA{kuDFE-JJ Zj!8 9vgAw$ZrEAZm[7Z,;.pf>ѩ L+tη!&VFZGjD,r"̈́TYұx]Dysf"1̧Ӳ3027oTڀ߾17o.K"SSXd[]?L&gR2!Ԏ< '6*$wQ#(&{q͢D9'.ⷚ#D~lKVʿnZ΍ ~~ـ>؇`kιc$/mP7qA MG˴13aZ3lA#޾{ 1RBLK[##b.d#݊݁Zse3?I#gh`ϡR*יA @ ]̲-Y ㍃BԺZln;8ǤCZ's\ TgD"J~yTkzn6ͮCsKmj# *|#GʬkkA}m%__,@3P 'W UiDB-^o#. 01Tk˥%nG8xpv#@$&.5Z :1#Y^Im(! /DR ch isΉ$ 3a5c}U썙mDtX#l ! nkM|*F*oB*^ރuUmNn7O25˵8 1-X>rF撳Aj49v*kmR)O'"b]M@IGnI19gʉb3:! qT@䴾IdJ@p>W  q5,vJG{\(3X&#:B%"$oPC2d y''^;BذiY1q/9&uqGڰsB\ 3c$:hD35)Wvī,+иbya}*_<(4r`R˲$D\VDDZRjФ[tP;R(eaTbc `Yۉ{K&q([_]-TilHч'(?"EP\kZԟCDݴVvES[1ƨ)2@o8|V(Y#"0Ak,q0(Rkzb;D\[=O?z[Vg ?\RͧԺZ}sJqIz(bàG{Kȱn=BfѺ4`Vju"+z-ي9Om߄.r1'tSym\bS_.PX_[癈r)2F77Wt -;s ;S:jLr1 [O2yX}6`JĒc 6(Pj>=!.) ~Ou5,2ϧ|Ws.×[@,r1TF/F {ؚr~qzAAnkʯ` \5NEMYS ؑza@\@|G@r E)ѰCrVtvnzCv:97o߾VkRa0@Vqol1XE?@c(¬E"Z?}ؘnmIxQ/^x݆e!syMun&9o?iN }X8Q:uXgoh|!ZkɅ8Qq3 6 t{ju@ ^ʗ`[mUMӊZ0lniuɅ~,7&YW0%9%-7U,}xi6aF"9jv[TkkB:rZStusa/?r)3#nnn]k͡{~__Xk-9KV NC ,*g^uL8fm?>"q_湵U@\k`M;CD> *j6-4x(ٽ$r)ƪn=$C`ڃJAm0aW|:i!Rx8wwoիWzVFsTK)y^R*)I#j +@k;rfeLay7R\[RZ֛ͦ59w<t*%sJi^%/ 1~_kun_6Z P&r Db#Dp9Z;߿mכy>==<Cĉ9m%ZT7YN[/D?hYGI6(s3 9&xXel*l-$s2n04Lgb KBJu|9$\-MCʈo1vC HP[)nhs}=MS)ǏTonj^J|Y08~_`|ټ}vZ6˒ 8 -Vb:WFj=Rva.y/y߼{ZAsD]phhIReCC>wut4˒򒥣 D䴬1 4y_isge"n$slD#j˒S$ i}u%Θ.NeEXDvcYIQ4[PHVB1 N~/%-q/^MiIp<v+֧?j˿ ַL"bs I8v߼y-y >珟tjʲ:j,9·aZB߱UQk~+f3p9YR3k&SjIc*6 \q3)@ZcIHgҼ,E.KJYQG:#ҋ49ft߅e >BdR^}#5jyC (yۗRBDt<V\GL͎+wV˦ZgPsjJPiDBѭQ-V)8NORJ)]m),KJ)-KJt:#8|޽cK^XjeFc KMǫՖK^R"ۻ7n7*^Jx_y珟>~?8.e ѳj7պjk-9qKO )iIIl.eg1PJA0+vNxV说TZ+_~5u^,||I~ŋa$Ji(+ao]vf4k9/\ t: `$R t J$XklQ&y^Rj~vͲ~m7RXY.+!FӽUn!f&۲,R K.Z,IiI)-r<w}QQ ?/vݥܜG^oWiacԻ̖뙴QBaa>{rZt4wxDji8 2. ޻aqn4B̧c^2QKsjgKQi6f$6vCM~lӱ_oWIDm՛AZj bvI@Rnw8$E mK֨,T*!ʿ×8MR|:EC?*_?ǀ`y~|_Kڐ>j=N#:O:y<;!a!肐θVJ/,XMj1(Mg9)cjFL.̡2==<޽y_,Sg"tO4WmE /K)śLӝB)9eY<8 2ɀ :|||o H^/noӟ^\#0zZM8M8EEyFWsЉ8w~}|Qf1Ӵ^uu[u 8C6`)7^7l` tG[-^lҬ3bMl3*~%OP,'?j>~^ܮV.DHk<}ssi_m6>xNZ<8iRab@)%A! GFnnGF3 y}//^|$]>x?Z Ct 'L It9188iY9>f=?eq J)iNyYIniB 0&$x2cfo]s]ڶvOi6.Xu+QG4QH)}CeZMq!R@ᣈj\oϟ?|,ޮNq)%%ƁmkYR~to=>=}Yi0 ?G{"ZTJc)Jh+Fd !gŅZ4NҫSдfNzlZM8!>Vu q؃WM@";|zy&KC`p&j鶆0T8W/tx<>?>%\7֚snsssjI|Lt(.]v)/)/qh-˲t^IY*0CIuB^13IDATt~{@SH g.6q4F*nWwaq6,KRɹ|t@0 ! D_Ιk.J8=1+2{%/K^exIkq7͋/a!:7lx@@] ; 8C{NomjX7>h= [t@ȃ UП #include "stone_common.inc" camera { orthographic location <0, 0, -50> look_at <0, 0, 0> right <1, 0, 0> up <0, 1/2, 0> } object { Stone texture { StoneTexture translate <5,0,0> } } skladnik-0.5.1/src/images/stone_6.png000066400000000000000000000607631457640636700174720ustar00rootroot00000000000000PNG  IHDR`ĢgAMA asRGBsBITO oFFs*tIMED$tEXtSoftwarePOV-Ray 3.7.0.10.unofficialqtY[tEXtCommentRender Date: 2022-08-22 18:06:23Z Platform: x86_64-suse-linux-gnu Compiler: g++ 12 '' IDATxi,ˑVfHɌ>d$o (ʤ_(I6g Z[.Ul C]U'܏_横ڮ횦ΝVxrrRU TUsZw윷z1d ": b!03"c1Hd900 HDHDDcqzd"C'@@"&"'ED? $f"cSU]7"",1C"‰c)%f3~HRJ0D!a0!?+.Orgϟu3b" HHLDN1"5zspf r={ӧ/^<nnooO꺲ldRœb4֊B9 ujDJ)i !"11¬[_MuNיAb)qSL@ cmsc\77> x{})0CubѶ ̖!C[1ƼyMUT̜ œ8Y403 …S̉'a[vy"X?'ba ˗_}/V{bGϟ>4MS7w:眅wr';g 1"1S1"bU7͢EI)!0ck-"FCDzXk1"<uYk5Ɛ!"+Odfzx+a/6)F:l|UֹHXKH1*N%&,RtVK,̩5R5JebaI1rJq"CDWS1BAiB1W_~O?G 8riE5DD#k_}ͳ?:81 ~w1U4")f>HDd⇐1qJ1^~{qqB@b8~7g:Gu12^E$b)M~ˡu˓bwAOY?9}UWU5z~1Dtޓji;LԲELsJ"1$ PR,@D@"D}b91iqދ "H"<]nXCD%0!!RBBΥ,QՏşE i쿊VueU6WUU79D r2Xҥ/H`T-m e&?D4}c )iUU-ON?Q7Ч~տϺa [,rPcJw:fD3z_u4g.<ٮ77n_%]av-˪4ưaիzG "B2'"!J]7jk!""qI$b:{z?iG(Ƙ82}Wu]7:"r|TѼ9b"B/2)58XQAq<r–gdl po*MD4~ibʵ٦xugggz?'MqdܒM=:sVo("w]ݻw/_q$C]ׁ+9??ctu9RnθE-N@5lW%LJI YB1. DDhR!2V1oonڶ]VHd*+owc AHT~3bԭ@Yw0DٶTA!cB7 $ไi$dql6nv㪪],bz &Nb7uɧO?;SFny@PSJ(D:cLaV\ԡXk[]C~ϾzZ9ﭳ{ [$L!f,E.zo=I*(aBDHb8Ї0 3S"j81#'S/1$iT݂! F5P*VK$"UUYgR+,ʢ&`< /DpT"FȂ, Fn۾ߟ^\vFg7/˴fc!1Ohg_?ɿv_cg()]\A c )%э[lI~ b4u]vMbnEݴ9SČkle, edTLU;;n9%CI"/cBQ̀ӴnfvWN)ZA֐Ŭ'NQUX8E _pFRȪ8U|7J5Wۆ̲]? GggXavًo߼ymݞ!Ǐl6pCg1)sIu" oDU2q0& D 5dUUi" SiX F5k P ,$iv?*QK~p8iJh7wa cR/i 9`E; 0qJj\̠C.-3|7d]y' Vn 0Ŕ~?YNPbBZq9gۮn.7o!fO?>+nZgm˵2!1*P3 X"MC7N \,fR8@qޫTT#y)NR}#" ׯ_=z|YM,I( !}c1LSwwgڮ#Dc uN>,HC"h?4!@KXm^g9JRh)u#?*wǿjUv "ŒddZ.֘ι//ŗ}/kw@?Nqju]7MUגPg3coڶrw~ۮih8j2D 1*4t.@@V U"n~ ̼n^|usz80Ldɓ'uӸVX30;֘"DN[,f\ fSuϷBt< sX YHJ"I?Ņ58`HG){#$"ge5M_ ")$Jdu4$"@q .ţ*zڕǀޓz|S$4o>bf[UxeLĔ"*ɬ7_pw*=86Y4Y8,63:g12sQSHTU*ץzG9⊱\4rQa &k ̜u۫u>w/./q}Α(2roYA1DgWWo߽=?;-~׶zG궳VZ(fNz,o_q VAiTCVچjHE !o?:=]YP> Hwwa bowbrv Me(qcLZcHk' ` u5/9gƇ\ M*,1Yh'8{n[.yyH9\͊y" )doNO__["1[*T@\?K|՜_mGRb:| T Oﮯc)%Tb"Rbl,u[%l(")%uD9Yg1b)̪J_MQ3FU|)q kD$(1n[$z"@"c <^,Di@IMsW7]V’RBg25+J#"sB$a !t=GR\0M8Xw\ Tg*nM"W_<#c˥2fSID#&N2Ż>;;QC AM6UMVs5 `q"QӷZdXɄg{&:%+^TDLRJfC4(BqPb 3vۛ~'*ؒ1P$o2_#p0x`<Ue=zĜ8Ke3`L*Wgu13"C !&avi)j\ cZ'Ji~BʄS D:ٓR_-H)s!8Sa~g떫M$NM6M \UYF ӱ4'^ϔ|3 4Z}%LȈȪ bN+sMI48f,i/>C&!Ɂ;052<!!c9Mr)uQ-Tp%4Ch \c2f!&"~ !n :g}].;k9GZƑs_B8˟~M^"ź 4&K-:Ns6"2VIoXX.GW]ME =c@20RhqP?iqV0 >&9őUw)")0k)1 m8Kf.)8Arʩp)&fм(SMc~owHۏ4°ʟ]^6M"8:)[9_pau]7m߷m+"cRJ~ɳg68HD&k jYƐ1?=|xi kD 8x}uj? )8Ra~n|{W[kCMhTaF FMYkmbecVUpX jkr$ "4Nutj߈ڳ@ۛ1fYi'u8I"J9=;JRtio| E 4Dqh\cks5 h2dZPb9W"D)Q}IGht E4m֛qm $i-7ǪtсtMKޗ}٬^-^@n8X.YJyLJu'j^,D`cR*y !kM1m7Ej sfsHPcb 1 @ 0^pwrr~qvq-'9DAM)21uTC_ի/&ɉ>LSwaalOκg/c 9) $NZΌ4v`mJm;W84RB|")n}۬ac~/ gݢӕVU V+B.J"aY2:xD `^~m',}0!~1Ekmӵ/>t\h 3DŢj$apR"cSJ40 CvSm:trUM (nv}(pv~uTEduv/-PU֟ fQ -,i9QˇCh 0Nf4}b@cu|W^Tuq /r2UUOc0Ɗ&d$v040"tuvq^ i۝uT;@SY?riɻVh''uW/Jtq.bʙ8N4-3iaI5US_=rv~aaІ\YAf嫺)۷onnT\Ӷ"]oơ!M#"NujZ^}~nѝb~v$ieY BA#XVL^;(5} h,Qf﷛ TMӴ]X:Y?],'KBH)}=y{mۺi\[5 8mۻۛvbdQ\PZk춛zz|~ȼH?!Fin89=ynλt T7uv8}mSٓ󺩭scƑ9Yk1)z=EU,0˼N1nC~GBضmӶbi_e~`XZ󷭹3tE׵aơثf /./s'S94jEd?D b("PbֱHl3(ƉyG c,"/~xb4 JG[.*zs"xBD9"@IvLnիg_0M1F2fpޏ؇[+z"Z-W7|#+pLw0 4NuSV\[>R~HTYA9ֽP8%Bbd,Ȧ]e@W.qOQDq nln_mU]7|Yk 9#Ḧy)*U)s,o((FsLK gvG1jJ=,ŸwۭnY*_rq~yy~@?yU6qs:Sv)Iutܻ"D-CJȌ%:O%Z7bdN:Z Ȓeӯdc-P,6)[0#yD7~)Ln`h'"2$Tr`,|dP-(h<6"##Cft =.*XB?!@δ ۛI]OW_wz[o|/ndtjsڛ7/mw0>aoNm(-ws,Ac`cLR;a#\ Q;31(B"Fb=*BYiFDIov-gQًǡ1 h2E$P j^(w""=5. 6\c626h S "W)M! X@Н=Mׯm4˳ӳˋӓo-x4:p6zUoȸs "R!HQ 1ELvf2s`ib*Ps IC Ckn 8޼y?YV"buFs= l 2#\[I69BԄSqGx|O D̢*lVW Ju0qO_pUu;t{=Q="kmZXaӔbb7:po/b qJy ~ h+ys調eHĹR 8rc}7~; R2 *CfܠV"[& ED"39>sCƄ9f,g dH%JgiJ/1ꆈ8ZE "4v?ӕoњtk#D4 0pn\+TbΩJME밊-sd2t)1r愘$ё)y"+1no={\v2_qU,T.8w%.: ?XF!%ݜO>w{>wh!>"E.6Jo:q@hv!cEv{A;rSYJL[8)~CV-@@ha$܌Q?Α: *)i"RQ !a忑<̥ڟg.un^WMDXX/@@;K$2:j-j;ҳ H9y%@C-_` -~~J)F (jZzA1?`~y'[c8u[a 1NڍG@!t. sF_su0h08ܐxf>h @w?K9:xN),O.]b6#hѪ#yd˱Ak?!'nM'H0 KƧPvFc1ZP;R Q/fXյje ^w6 8w@xqy1}ACCåb֑15ۘ07N]aTZEc[PDfV6Xf3<6Z3\07ƛgliHWW)Y󆞟ֆ@@b:naIq#̂$aa cr^(- ɁZa/`Y2hc|Tᜲ!Ն;Nku*$8)!jq~>N1C[TФXFX0[Df;}F4.NɳlUa IPrz:%$^ ט5#),c:D2gZ!a>K)j2|f̼napMc\EKD˛k1D( 1aW3kP @J:+g$%2@2FU8tMXGL5*Pė]\`V"bVpF|v %ģ'Yx%Nݢ+L,m#$En8 R PK/2rLYFMely'iڪn);PO9_ &޼~.g͆ZhX+d3#"+P&~hNXZg?,}hQl n%? F"m6A)1sݴuxu@ۼBu|/O//NOW:'ȋ7'sXE2MH:kvlH^k>`BXB1$je)=R7ƥ*O䝥"1^Ă@)Q;s:b~ޱ1QAWfIcPO'e#d@IX,<DtbR2r%{|? r-axJYQJi`Y."i-b!hJKgypGK%c.uӐ ]¬_~ OnQYKTx_Uueͱ zi~0 aypVH/H%='sZ44[Y;g1BYi]Sϰ`n<+/!&y$+2XJ0/ƛ*;רּkijdI(G~H?P6 TZ1QWf~y_t!ӥi krE}+O>K(SgwYT`SJ)DCzz2,}oZXoCK O!T y"T6.qcoX3b x^eXS^=XgSҌF$,hVc`9E%/ThI9'`fBwMﻒƲ66 lsoF=%_y $LqrvzzVL2b8PrdV7a5XkYm͵o_|fRt-Z0*Ȇơ CƜBԇV!ĜX̓A3Cn='a$r?9NK),<D5~)=EF!.r|vi)GpODC?}X{zzVU!|<.\ D90P@kE<cYIEH:BCx#cQ//:I 6Vg0jΥlچ)LT׵s68Ca>GMILFa۩ukmUXK6q^)Otcѧ[ֶg/R Ù ۫tf9kN@]= ;_dRZ,0Z,l46`YQZeNa~mR΅;zr|ჟr0-v AjMmU׾_篾j^|ND͢~IAz퉨]tHnv8jWU4MCZeK̪)s.Vs8d0qfn6<CTkpwGa'ϟ/1>].P(),,Ζ@THaz̽Ԁ1o'2E#\zAUs">\}}(3k,HƢ3Dv߼l4┬susS:Mg;a|U-W+~v퇾aJ!nr:;=;;ӌ/Xrb4 \kaN:t"gO)'i R*>d8rB<ιkqBMUUc0M0Mvݣ+]rTI|VyULYJ yiSJ˗WW|i]"b`Mhpkyyߑ˦J: ;07΢4Mm_%Gvqʪ g0L<Ѵ#[! pZ]qoVJ8i42_,B)hOҼ\KcK)JݮlV!DRI%w.猋 >!v=ꋪY`t+p[fyDlƶ<1m9@ZK ^s$, N̯:U5u+?-i0|x]ۦR*VO&Bi^n^5jH:=gʐARBx|||⛯+mm >)*6xׁ?+77R܋[ax~> QH]'Ls1QbRaeRRJ˫K$ J[]^ZW&:Vt) IDATx/G* b 2uB #-8kciC:-O XTA"QsnR*Q`ΠV1۶)!BB( \ p^U &$ΥV_3B' EXm=9擿;52BJɋDoDt<~ӴԅyJicsf :Q7ﯯ_^\^n[Xe|:wuWK o+(FA^]RPִO%IƘTՍK!NS9@9}ABIJ>YNͩY31c<8/~4M)]1OC*c)h9k=TL''"Gp>TqdHTje15,PM3'tRJmڮk6,);(V!W1FDR4F9O0mwvMj"g1% 9IaADcuJ1v^cM~jo~`jZYJR4w\}OƔsf1pp*i[Qg /Z|ŗ_r 8i(p_^@]ȩτ"5ኚ̑(vVk-?ۛ%2&R[ 9֦iL}@Vkݴf5< $rw 1vEzVm4(`kzIi $BʕyYN$""Jj!UJG>(̩sJy(]mDd BB@&Lg-ܫCE L*R! qӶģʶ)%sNSY > '"]۶i*5ӑŜO6݉shUqU^eZc6v{62=?ఛb*wz~e h./Vo[Tde:XO1yY~,C!>~0{✐ŭq/>kyҧzQ9>9Xɾeע) R.w+r@*!x犭\'co_|s˲F!ʒF$BĔFŴ,zH@ iyO~ܓ+e^A0Cpn߲!DYSZe{7B1CL-n4)F|<뺦m8 1i(ͦ^ y}{s|~޳~W)Sq1[{[TK +/^1"íml><<<+@SJqroRis=QaqW_~m:N>j@E>{.!F +R*%ʣzOu\L1Ţ=(VLj(\E4ژ?&;t~I!Dv>!zc9S aym^__#b94GeTy?C$!RjG8bp2 o~;Q20Qԧ,yo$~FPgf;Fv޽o6Gat|WWd)yLJ+cfm7RJ**fmڶFCݝ[S|ܲeRZn"`2d~oڰzщhx93 !Rj_c|x]޾0S?CݼbnA_S46xf6sI!k;%9gm6vt)ԚB!ڬen\bR 'L%LlAP"eBRʜ* Fky|f=xayܲ0ʅyy<R)mCsMury%'Y1<Di6LarKyz1Ɇ`iB4{8.DnYT?l1%|勗/5ٗxzrY]5BL.鄒$pzJgnx19" 7v8X{玄9xQJyOQ哤8LL#~p˗_~qSܦ)<| D4k}R4UI+eZbvpv݋v(X.j5[hpR*n3 z(ɢ6j'3{X/RjVY~2OX׿͙[!&`(O(F] a"V\QOO߽/>!mR/_r< iV~`z_uY3JI۷>PN ~w q`/53q<+oWW*Ę),)qV&Jq<1&f004\20A^qF.v^z"۴B;U1NJrJ 1gCiE(X{₫uASaO) !yz~|{|~.m B1ƶ8>Ϗ 1$9ąyYf臮ŽRs%z"fw3õ{^E)e0i繬= 1:}]?<~/_RRj1'@XDj5bY̔Yw:R١SJ28!PskʰBK-Pklc`xxc5bxk@)R$@5Y5(Uxs箻w~Y-L}1 ?xr&" )$]̙eaMDR&C*R9֙r! AͦSC)1R,y L*ߘ"+[}MaCReQނO.Jkm1&hlE%_"ڦ<|N9u;88.nqO04ü,,wMzŷ߾R-C}?Xk1 J1yԜ19vSJ-,qDu֙Gx<SniYJBH?c !}tpuu$".=tUK#s.0]ͧԳbXKΪb!xc}QqLF _{Opؾ~3]?iH\Ӕ ,𾾛< ċW/w )D*)ԛdq>3Eu=ιy^qq-8q޴~cj=o@z7_zeif4m#ش嶂JITbZ圤,D@!EY'Ŏ;"U`Eyb`H@tv3MOp+CXw(\*}EZ"i"S΍\(mj1چ%8X:H)s޻[x8 J:b@9u.bl NS Qfa:c>v<9s޹%avw83̀_}5B4Mm;1627ZJGuW+@dWiJADU~q^C !VTtȉ2QQk#6b848pp圣MivkM܀q08?~\!Q۶f#4(خcŀdWlZC.\0*|blJZ ̈́Mlnzݯ~?j:񥔺RwYk/, KQOT:i-zhŪX4ʁ+^жqbQ9@)Rz9aM !:4;hͺY~˘ľqRd~}YUZ׮aY0 sq(ʯ2[̏+>J^VDzWpͦ>AÇ۷Z/!fnnxR*eel3R/T/8X pQpPƳp]m*OW3ǜS< 8SL%"}pnqRG\VJj^hZ ,Bd]Q)aR=/~F;3&,SggOeri<D?6.vmvlц|9ĸǨ|aDM)t QƸ -ֆLpZۀȩߚy?s5x.ׅuChɢL$.XRuȋ@њuMqjqV4dǓ EN^CY"Xo}潟y, aX qgX"IDAT}"jZޖ)cJa}T<؊xl">0#W 1gVgՐώ !WjgS-TNh+h3TM\킈J6d!bJIHNQ3ʠ弍rb09gLI ?S?iIENDB`skladnik-0.5.1/src/images/stone_6.pov000066400000000000000000000005001457640636700174710ustar00rootroot00000000000000// Pov-ray image source for Skladnik // SPDX-FileCopyrightText: 1998-1999 Anders Widell #include "stone_common.inc" camera { orthographic location <0, 0, -50> look_at <0, 0, 0> right <1, 0, 0> up <0, 1/2, 0> } object { Stone texture { StoneTexture translate <6,0,0> } } skladnik-0.5.1/src/images/stone_common.inc000066400000000000000000000011151457640636700205640ustar00rootroot00000000000000// Pov-ray image source for Skladnik // SPDX-FileCopyrightText: 1998-1999 Anders Widell #include "colors.inc" #include "stones.inc" #declare StoneTexture = T_Stone8 background { color rgb <0, 0, 0> } light_source { <-1000000/3, 1000000/3, -1000000> color rgb <0.625, 0.625, 0.625> } light_source { <-1000000/3, 1000000/3, -1000000> color rgb <0.625, 0.625, 0.625> } #declare Stone = object { superellipsoid { <1/3, 1/3> scale <1/2, 1/4, 1/4> } } #declare HalfStone = object { superellipsoid { <1/2, 1/3> scale <1/4, 1/4, 1/4> } } skladnik-0.5.1/src/images/treasure.png000066400000000000000000000501001457640636700177270ustar00rootroot00000000000000PNG  IHDRݾPgAMA asRGBsBITO oFFs*tIME%R,$#$tEXtSoftwarePOV-Ray 3.7.0.10.unofficialqtY[tEXtCommentRender Date: 2022-08-22 18:07:37Z Platform: x86_64-suse-linux-gnu Compiler: g++ 12  IDATxy%Gzcz r+]ZHoP"i$2%ML(dZ I6)$͠i$+X{X 螾]U̗` |Q^y3>OM[[[LP(x8RJ)Kf+VnnZFQ׷׃ G>rkp;ɽ$L=t:'Pue[Vw]OB7BkM:y˯wǁ9ĵA3]dX8лBqמ? kvnw{E[$p׹s28佾-es=iڍ7d8PRvyk;v8w>r>G9yf^%;snا0'?_Bp~aAI. Vl{@=k˸W'kJ, LjRh26{@=> "&M '仇P$~W`S'OQH SAhnfM\+ґ:jQLhxϑ O&YK}mO0t:xOz@W8w\:j;w#1/ܾR)n_uKr\tqRELhNf2oO9XzW77 }f]+/s:1qzrr3zT,Wf''Jh_;c|}?0 .pUHb>7-hٺOYCgύ'O]_]eЛ_zwWn|< 0 }vk#[ @DT( 7ϾV\caBI;g!Y~_By^6 0nv0KA:f61T'^~/f!RiTfð ƴb>k/Nff"B8|t:3[IxQX,JBq32P 33Xs3"=3 PP)&&__+JQ?~/SP@R uw:BLLLl682")%3|^){,jÊQ#rWN޷x_7bY8ZKQTx&&NN F?qcnj3 ύ v^fwBȝ "*j5 @P8GZ%ÿon.+hkyK뫫^lfB]M#j;\fƵuQb"eⶹ>V/VΉ߽R2HM֯,(;m[pYGFCF3+ Fv{ccc||Ԋ8r|>o57& v~*UXӍoaQX0os42 h ~/GOLӄoع*6gB2b2|X<>4>>>99i\Jmu.T7n=忀qx\ Ht|\^G)B,bCl|ckS`8(luW$Xq-*lNSVپQRT*ʓsĸN1Nu߻e=["CeT@hw>3H0fLf;> Z3Q˹٬)+T0rDŽ`4q^75婩;D%#$0JOĠ9Vѐu-"%L+Hx NJDE~3Yע @v\>Jxb,GA0Ri2P$-WX78}*cbmrym5dpfW FYrvvkkD&/rPX0psOhO$e=( / Fw0j57:<("2LLFU<#~bfR,rn'b聖\1آE~l1%J4t"x~=2cM0 0HfT'l8dm:҄BⲞ穊k<C1^D沥#GF 6)EO*n(՚+bB&R:^*&~AT.+Ɔv1tݝ4;CvR*>T(ܞ΃>U1555Ġc@ch6FC8R?^vRE$p=a$NʵkZ ERsq0PߘkQԎwڵ'N:mPRQ6W=1eytfQ{4;0 v U㥁o(2 deT޲ALp\b 2)[a2uDlzSfa*9I[4J`z6 񁉲C=-{.^b!5#ommN6L6q !DVvtccxO5-s׻DQqMZUgŻ>~,E~9 oW]2+9S )K|l}}]%*#0m֗mS8ZJ"ަt@ЧR&p}x z9-?h4vvvFRXu;]N1*秶c(fB˶uv05`e|i4fE"w?Nj8ODM|I@J%[Ic{LqǥsO቏1 c f.o`qq_gCi,Ivp3mrQhO[WZ vm#! mnn[.&&&bfWRI6ףzܧ_: 8$sصKː~u+?%yL1Di)m(Odvq(33RQ-#|ʕ-:(ϫ9ߘ3Aw>7sg,1V#ԧJҳC j\TGDɩkey)Z|Z~[,`=lYoJ冔=Zhe z΃?` @56C!7>c+ 79mёǹiP C2;;;ɡ)F@b1ug~>?zOq\c+-Ik|a1_VC‡I3Erjvx1bLb |>eyVUr]W /O1ُ.<1¯T|?o~ 5 T+? @d2U1[R>'Ԛ'ʡj3﮻bGR3 6RP[V9bF2,"mHMbΩiαi4sh{~5y/z7܇^M\.Wk7HU3G@:l]S(LMNJ;Js `W tLC 4-h4 .`iBkqyyh y<Ȁ3S swdK?k2wSC?RBbb<چS.Mj= ];6=&DD6Rh>)'F%z8i>9C"7p{ Qԗ~:uyV_C#mI$A%0}{J ES4vbtGH1۪f+++΄@ CO҆W1«p,/,ƛg>O?7=|GSSRHoIĚ10Uό4qݛXyAv]&y*:J?N {X{$S5w]ȇnm_ŵ+oOO(gauխ&SP3™1g'pR@|)&G#a@͛7;N #۹Q @"~#s`1F0ӧ:KN 07ZŐ&Ŕ&tCNIr&(jg/f/\X(l[ƍso"b6aمċRxb9ti"#]٭gH2ؽ!:@c?IeqƝکZ~{/骲y_Y,T*Jep@cHXT&qO^iZt59"3vKb6zl 5]_: gA+?-Tm{s'N{WG}_@(]y]|D~c; F)b湂;Le(M(ڑ ł\HNנmC9wLmtvJ/<[].#ŇcaqqGDA C'sE"غSov@~ Є2̵kE>I)yw4^m5|E~( !/PUQl淇jJUP+Ml;;*W`WVVV-8=*[+\1?r=S2rZ KM@E/8"`rznnOpvyGij_sf:ubJyĀƕ+W[HOӯ&9P1g73n#:ۿRf;@>D AaH[1pg1pzo7Z v(vةS 3͛7^Ԑ母T)D8 l=^@U7chKwDӓG&[D3%S-l))6Q?R5=htPI) YG+ٝrr~mcb`{c걧S*,n82Jw;XqO lA"̰$iT|뭔D 4&D1.8 /Ht?w-4#e_VN\Cbpf~Mo'+JEyŹ9Gv!rmKȺiJeI( ä*j(k\^qr7ClZ ,7 8JZ|>;8TkGkJSJ\oJ׌8;;DONCLEq @N'f07]1v:8S4=ًs"/"qn1mewSgb CAʺXҡiJtRVrfS/开hMM{4tDX'Gr2: ^fFoI{])vؖ k#d`?ɄJ۫]@hpI@(&&ʽ%TlxoO Ky@;pZ{RldD 2b|hsss_Oz,CJ e4/-CzОhאm^ hsԾ1+7c02;A8Q7&R)f&p0'hU tM8HCGbPGN@C_[׮}1$ rɓ'SWmAt:1d&Y㹁T}jQVH tfV@1V.O+cbܬC<ıkG$ zfLDtދcy 5J ӧe8#1Qnq, 1pg~rr- $2_+T^ IDAT̊1D1!?~齿G}K}QQgg9"Q`(=xN Ȁ] <`(]f8>F\κB^:{.ڡ$2O'aK/a0n!C9spާR.R6!" @1%\UsNJRx1P=d\T'ƇFaB؋]Ywt:[X_3~LFٸ Â*?mOsff2٬̈́lVtرӧOJ׻fVA4E@-nclDރݴfpKv *ϝ&!ڋCe-145O!Ÿ g{Z\'cȖ6F/tE^\(QDѥK z\M jrbv1@218´ЙyPYKMf 7AW+ {$71ؾf.858 5RAgoB_yM6}Ӂ455U(Lի[ׯ%@Dټg@ A` {@}?AV.C[(,ǺKھ^LW*r,' AdQ!A x֭67a>Rd&[翙zY@BkzOxԈ^bͬ]\$o9=dgs" X1. ++9+:zlUEIq~@ts@d2fb=tR,KxU2P-}\W_Ⱥ)%ۅo%J "ۜ>\,E扊Dwϝ1b:b8G LMh1Y`L~Fx `|V.yUMbliam31+b:HN%mCx5 m曲G*Z)0y "fqJR ;T|pC7F `,㕲m3 Dfhd;92x1`B2"w<@59ƼrOHBʈx?ݟ05P(T8yCDe^\ @x`yPe`tFR_T~2iP58Ӆ#ccczD#Y}wі:<P78X{Z O&xiSKZc<[l )]LWQ>h?RoG("ނs_S&FeE$y;DmFhIW&Vu + 7^ij\ZI}ͺsh@7V 7c@jOw=7̭J%iwDK>lIjehvLH$Sr`+%d@ 7MFztVO`\*O+rsh'*_:gQ"d@Fx(~] fv".e2> Ͽ1B7ri D.35>{J &-(K@:n}T ;{ϞғOfz썁eU̘ \-1^> ϧ+@ 1®_wh~Թ,-+a! 2Ў:;:d,uMD W)++eQ.EVo=-e&i]ƪK4ɖDv7+K\|mriV[Y[mA08I&A1 &3,@ [WWffG? 4FBA@ .stee1FA1ǣo7-B){mzdjFyId, 4Rm8 C;b\jr| &A/xhMB\; զY⭣>al;`},HctžkLΘ-``%I?l8Zre4g :k0] , R:.-SK"y :xhqNX@ urB[&v6l"2/=7_21=.>2r)<<̈́&ql2 =mleL*TN EyPuX]]8wŕL8I\'+C襬n.et]#Zɟ7%(`WrD J'5#qG[Q:KЬJeZaHd ԋ4#, NgQ=<%2z  (-~5)SJLXG[o!lzt|1b Oh54ʥzߎ`~AZoQu!o ®NUb#V{>m>]tN#h f)0X0e kR(.ͽHڮ~C?#e*W>֛(# HH}A@dA4&gAR ~tI [8 #@L$u0 \W1_ 8^# 'd볼"e@A! T@8~u9Of#,G+"g$iK$ `a`> \ ׄSԮzVs3EEzYhggi,>C*$0VBpA?'99fZJ7APaۯ Vff.&<Dy:oAp~Nxyr{@- &u'Os<ïp]wjv2 h8t#H{| Tz_%,Y5%B3%bz`ٗĚ[ošERAgkYUpc(zί8kT.$y{p N}3¸&*?x, IAnT`ѷvI# K ѵ9t>d"f6bJaݐ44"-0tIJ 97"*p~g"㐰# :Ň.ό @2n3`J!(Kԗ4Tnet!&gf űؠFl"y UPb4v@x Xjeda 25f0QcCǖ_m< %i9B*`2G.GUs- 痝ARH%=L q^:@{LOBѣO?+S8CT j2KblXR *eLn1@)!LpI5 >{z+YrDF):_W͠S/+.Ӗ ەƁ y^fICj JK OtTb *iT$ IηA{g 7 G9~\d Eۆ!%6l1|%ߌ4=rt"08NU`ۺCheE ~Rx 'Bd &J3y7K&R4" 3ǎuwFH,ѭaH= iu$}B!28j88k?IБ{ &}2ORˁukwT˘7(kl (O 'QvIF"EOOЃQtPp\w1lE" CbQAj < ` L \#u+ E64d;%t곮}\% zL32DŽNftI5YGRC;ΪH Ermvvcf~kPIQ!!YR?dD==mC .ѳ!ARo' *daH`"&784,J~}B:}M]pEy8A'KN}6tu$b(~{2s eӡ?A}k`f>A;DI-_A@ 2h2WH +'s\xpAڏL0,%!;wVapLq||cuFP`2g_ :*'$:<zjM~9LehoHv$W#mp<e'iDP*ztcġG<+.IٛgW:d)*=m'e Di 112h[%py[MA2@,;\~x0Y25B.r=ECaO_u|0i~Y. -?.pgc#fQ4!B3y[d}͢ڄ΁7 9TP c~ր7'bٍ\ 7,M'O]]MuppAdʪ4P'B2'j1r k7~{L0nQuj\0P9ʔȃ똴s07g1]UrID,;gW/^> ][ _/<ϠH1ԅe'it߽gvԁHQP=~bg{j,E.ȃz+Q*"5IDAT!2#( $p\ߴTq֑xO:$ڴb~PQRX>Gu߶v\?8ʚ[ 9~' ;;Ak 1GR6"ܤ';s?'gceSf ' G7VV>8?|=a ~92"6zz'$$zbNf0o/_o7n<빮}hޚm+ !N8vX CB`1|cƈ'wW =Sw$ pLt>@G:,dgjc֚뺏>m\ B;v,;uZ\ !a:R'\ϓpa4 _#)v#KL"9 ňS4!õG־X-c{鷮^mDq\ґ/1sz# t]!ܴa(d%¦b&eDgDKGRUif8CBz==͝o x~0F ݹ@DGZ^^ޮ7q(aҾ"*FpɕzU2>,$cV''=ةSFw4ϷZϸn2Ra(wB.#t5壎~F cm ӏ? 8qbrrryv9C#[t$Zi#\j1 (O4e=; +ukrRW|{sĖM )_\\ ҒY3پFrE҉6VDRռLc+u}Y';ij@-|&>'9s|;w_N!͵5qrpE> y8 8@Vݲֿ=+ 'x,m3!k Rkrr]wug2CZvc=3[\gfaTɮ0OE4 [?dF?@d*7έ7#߰]0\˗T/RZ5J ЧRUU$Cssi*{Ӈa]%7Mc e2~:sfΙsxs, OLLH(HܼysggQ.Gzs7F  PZU׸3\E=̈'Or-{E<Q|#%gd2Ͽz]8hthQ.zD|Ii]#D52-$9"?$~d]m> e٩6BG;qJ$Db'ew x .& bws8&z͡)ݸTӝ@=m'8_W5AOjhG'c_^y'ɮN0'bAq VFQՉKctP•K{;>: d?J¼;4"- 9eJ45&]lT{C:?twH(_߻p)ֽivm]ܞ\ZtYӼDN=b}f7,ãc@pp탰8XOKyďFT,,.b"ct oy=m{h,`\mcX="] !EF|QSȌi[,$S4KCF ; .L#h%"y.c _(t]HHɹCùwL` E {C^0R**]?^]SW7$\Zxycu`v`nOg<$TVMS[e)|ߴ0u/@re|L1 8@`DၡoWj,ngli1602_EᯢY8n(@@_/F?Ke!1 @T,ZE$zbn՚tP]r xc k:jjuF'ޏNgڶzoCspx yX G*)1~:O5xßɬ0@PBz>\ /*舣]s9o WūJwmٷ0lG;'| qHc#0tCt #include "goal.pov" object { intersection { plane {-z, 0.3 rotate < 30, 0, 0>} plane {-z, 0.3 rotate < 30, 60, 0>} plane {-z, 0.3 rotate < 30, 120, 0>} plane {-z, 0.3 rotate < 30, 180, 0>} plane {-z, 0.3 rotate < 30, 240, 0>} plane {-z, 0.3 rotate < 30, 300, 0>} plane {-z, 0.3 rotate <-50, 0, 0>} plane {-z, 0.3 rotate <-50, 60, 0>} plane {-z, 0.3 rotate <-50, 120, 0>} plane {-z, 0.3 rotate <-50, 180, 0>} plane {-z, 0.3 rotate <-50, 240, 0>} plane {-z, 0.3 rotate <-50, 300, 0>} } finish { ambient 0.1 diffuse 0.3 reflection .25 specular 1 roughness 0.02 } interior { ior 2.4 } pigment { color rgbf <1, 0.1, 0.2, 0.8>} translate <0, -0.1, 0> } skladnik-0.5.1/src/levels/000077500000000000000000000000001457640636700154205ustar00rootroot00000000000000skladnik-0.5.1/src/levels/level.data000066400000000000000000002054071457640636700173720ustar00rootroot00000000000000Sasquatch ### ## # #### ## ### # ## $ # # @$ # # ### $### # # #.. # ## ##.# ## # ## # ## ####### ## ##### ## ## . # # ## $. # ## $ # ## $@ ### # $ ## #.. ## ## # # ## ##### # ##### ## # # # #### # $ ## # ####$ $# # $ $ # ## ## $ $ $# # .# $ $ # # .# # ##### ######### #.... @ # #.... # ## ###### #### ########### ## # @# ### $ $$# # # ##$ $$ # # # $ # # ###### ###### #.. ..$ #*## # .. ### # ..##### ######### ########### ## # ## ### $ $#$ $ ### # #$ $ # $ $# # # $ ..#.. $ # # $...#...$ # # $ .. * .. $ # ###### @ ###### # $ .. .. $ # # $...#...$ # # $ ..#.. $ # # #$ $ # $ $# # ### $ $#$ $ ### ## # ## ########### ########### ###. .$. .### ## $ $ $ ## ## ..$.. ## ##$#$#$## #.$ $.# # @ # ### ### ## $ $ ## #. $ .# ### . ### ##### ###### #### ## # ### # # ## ### ### #### # $ # # $ @ ...*.. $ # # $ $ ## ### ### ### ### # ##### # ### # #### ##### ####### # ## ##### ### ## # # ## #@$***. ##$ # # # ## .# ## ## # $ # ## ####.$.# ## # ###### ## #### ######### #. . # #.$. . # ## ###@ # # $ ## # $$ ## # $ # # ### #### ###### # # # @ ### #### # # # ####..#.#$##### # $ $ ##... # # .....#$$ # ###### ##$## ##### # $ # #### #### # # # ##### ### $ # # $ $ # # #$# #### # # ####### #### ### #### # @ ## # #. .#.### # $$$ $$$ # ###.#.#.# # ## # #### ### #### ##### # # ##### # ####### # ##### # ..... # ##### # ## # # # # # # $ $ $ $ $ # ## ## $ # # # ##......#### ### $$ ### # ## * # # # $$ # ##########+$$ ## # # #.$ $# # ######## #.## # ######## ####### ### ## # ### # # # # ###$#@ # # # ##### # # # *. # ##$$# *.## # *..# #### #...## # #$$$ # # $ # ##### # #### ####### ## # # # *.$.# # *.#.### # #$@$$ # # ## # # ###### # ##### #### #@ # ## ## # .$##### #$. # # ###..$# # # # ..$ $ # # $ $ # ### ##### # # # # ###.# ### ###### ## # ### ## # # ## # # $.# # ## $ $.# # # #####. ## # $. @# # $. #### ### # #*# # ### #### .$ # # .$ # ## .##### # # #.$ $ ## # #.$ # # ## # # ## ### # ## ###### ########### ## . . . . ### # $$ $ $ $ # # ######## # ##### #### ## $ # # # # # $ $ # ### # # ## # # #### $ # #... ##### $ #### ### #... @ $ # # #...############ $ $ # ##### ##### # #### #### ##### # # # #$ $ $ # #.*.*.*# #*.*.*.# # $ $ $# #......# #.*.*.*# #$ $ $ # # $ $ $# #$ $ $ # # # #@ ##### #### ##### # ####### # $ ## ## ###### ## # # # # ######## # # ## $ ## # #. #@###### $ ## # #.# ### ## $ ## # #. # ## $ ## # #.# # ## ## $ ## ## #.# ## ### ## $ # # #.# # #*## ## # # .# # # ##*## ##### ###### # ###### ##### #### # # ######$.# # $ $.# # $@$...# # $$$..## # $ ..# ######## ##### ######## # ### . $ # # $ *.. #$ ## ## $# ..* $ @# # $ . ### # ######## ##### ##### #### #@ .### ### #### $$ $ # # # . . ## # # $ # . . ## # ## . $ $$ # # # # ###. # # # #### ##### # # # # ####### # #### # .$ # #### # ## ##### ### ####### ###### ###### # . ..$#$.. . # # $ $ . $ $ # ###$####@####$### # $ $ . $ $ # # . ..$#$.. . # ###### ###### ####### ###### # ## ####### $ # # $ $ $ #$ # # #. $ # ####.#.# $### # ..... # # $ ..##$# ### ## .. # # $.#$ # $# # $ # # ##@ # #### ## #### #### ##### ##### ##### # .#$ $ # # #. $$$ @ ## # .#$ $ # ###.# $ $ # #. ##$ ### #######*###.$ # # $ ....#### ## #$#$$....# # $ $ #..# # $ #..# # ########## ##### #### ########### # # $ $ $ $ ## # # # # # #$## ##. . . . . .# #$# # # # #$#### ###. . . . . . # ###$# # # # # @ # # $ $ $ $ ### # ########### #### ######## ###### ########## ## $ ### ## # $ $ ## # ######### # # $ # # # # $ $ # # ######### # # # $ # # #. . . . # # # $ $ # # . . . .## # # $ # # # . . . . # # ##$ $## # #### # # ## # #@ # # #### ###### ##### # # ## # # # ##### ## ## ## ## ###### ###### # ### ##### $ $ # #### #.# ## # $ #$#.##$##### # $$. .#.$ ## # $.#.#.##### #### ## ....... @# # ####$ #.### #$###$## ## $ . # $ $ $ # # $ ### # # # ############ ##### #### # # #### # ######## ####### # # ### ## $ # ##.###### ... #. # #.# # .# # $ # #$$$$#$$$ #.# ##. # #.# $ $ #.. ## #.# $ $ # # ## # # $$ # ##### #. ##$ ###### #. # $. # ##. @ ###.#$ # # # # # # ## ###### ###### ##### # # # # ###### ### ## ##### # ### # # ## #$$ # ##$ ########## $ $ # ### ## ..........$ #$$@# # # $$# ####### $ # # $ #...# ### #### # # $ ### ## #### ######## # # # # # ###### ##### # ##### # $$# ###### ###. . $ # # # .##.####### # # $. . # # # ##.##$$$$#$$$ ###### #... . # # #..##.####.### ##@# ## # $ $ $ # $ $ # # # # ### # #.##.#.###### # # $ # $. $ # # ###.## ###$## ###### # # ########## ##### # # ######### $ # ###### # # # # # # # $ $ #@# ### ## #### ### ## ### # $ $ # # # # $ $ # #$ # $$ $$ # ###### $ # # # # ## ## ############### # .# $ # # #.. # ###### #...#### # #....# #### #....# ###### ####### ## ## # ### # # ## $ #### # # .# $.#### # # * *###.$ # # # *# ### ##### # # @ * * # # # # # ### #*# * # # ## # * *.# # ####### # # # ....$ $ # # # ## $# $####$ # ###* * # ####### # ########## #### # # ## ############ #### ##### # ..######## # ......# # #.. ##$$ $# #####.## $ # # ....# $ $$# ##### ## # .. .#$ $ # # # # ##.### $$ $### # ### # ## # $ # # # @ #### # # # ###$ # # # # $ $ # # #### ### ####$$## # ## #### # # # # ## ###### # #### ## # # $ # ## # # # ###### ##### ##### # # ## # ##### # ## ####### # # $ #### # #### $ $$ # # ##### # $$$ $ #$ # # $ $ $ $ ###### ###$ #$ $ $ # # $ $$ ### @ ## # $ $$$$####... # # $ $ #. .#...# ### $$$$ ...... # # ##..#.....# ###### ##.....#### # .....# # ########## ##### #### # ###### # # # $ $ # # #### # $##$ ### # ######### # $ $ # # ..........# $ # ###### ##....@### # $$ # # # #####.## # ## $ # # # #$ $$ $ # #### # ##### # # $ # # # # # # ### #### # # # # ##### # # ##### ##### # ####### ##### ######### # # # # ### #$### ##### # # # ##### # $. . # # . . . . # # # # #$### # # # # # # #$# # . . . . $ $ $ $ . . # ###$# # #$###########$# #$# # . . ## # . # ###$# #$####### # #$# #$### # . .$ $ $ # # . . # #$# # # # # #####$# # # # # . . . . . $ . . . # ### # # # # # # # # # # # # $ $. . .$ $ $ $ $ $ # ##### # # ############# # @ # ####### #### #### ######## # ###@ ## # # # # # # ### $ $ # # ....########## # #..# # . # ## $ $ $# # #..# ### # $ $$$ # # $ $ # # ...# $ $$ # # # # # ..# $ $ $ # # ## # ##...# $ $$ $ #$# ##### # ## $ $ $ # # ### ###### ### # ### # . ## #### . . # ## . # # #.#.# # # . # # # # # # # . #### ######### # ## #### #### ##### # ####### #### # # @ $ #### $ # # ###.# # $$ # ###.## $ #$ # # ## # ..# $ ...# ### ## # $ ...$##.## ## ##.###$ $.. $$ ## #. #. .### $ $ # # $...## ## # # ## ###### # ## ## ## ##### # $$ # # $ # ### $ # # ## #### ####### #### # # # ### $$$ # # ....$ ##### # ..# $ # @# ###$##$#### # ###### #.*....$ $ ### ##### # ..##### ## $ $ # #....*.... # $$ # $ # ########## #$$ ## # # # $.### $ ## # $###$# # # ##### $ $ #### #### #### ###### ##### # # ### ######## ## *** # # # # * * ## # ##### ## *** ## # ## ## ### #### # # # # # # # # ####$ $### ## ## # ## $...$ ## ##### # ## .@. # # # # $...$ ## ########$ $### # # ##### #### # ###### # #### # $ $ # ##### ##### ### $ # # # $ # # # ##$###### # $### # ...# # ## #@#$ ##.#.# # # # #...# # # $ ##$ $#...##### ### ## #... # # # $ $ $ # # # # $### ###### # # # # # ############# # ##### #### ## ############# ## .......... # ## # ####$### ## # # # # ## # # # $$$ # # ##### ##### # . .# ### . . . ## # $. .# # $$ $ $ @# ####### ### # ####### # $ $ # ## ### # $ $ # # ## # #### # $### #### # # # ## #### # $ $$$ # ## # ## # ## # ## #### $$$ # ## ####### ..... ##### # $ ###### # # ###### ## #### ##### #### ############# ## # ### # $ $$$$$ # ### $ $ ### # # $ $ $### # # ## $ ## # ### #### #### # ### # ### #### #### # #@ $ ### #.# ##### # $ $ ## # .... # # $$ ## ####..... # ## $ # #..#.## # # $ $ ## #...... # # $ $ # # . ..# ## ## $ # ## ##.# # # ## # # ###### ######## #### ######## # ##### ## # # # $ ### $ $ # # $ # ## $ #### ### # # ###$## # ##### ### #### $ # # # $ $$## .. ##$ # # $$ # $ ## ## # $## #### # #### ### # ##$ ###..#..# # ###.. # .....### # # *.### # #.. # ##$$# *.##@ # # # # *. #### ### # ###### # # # ##### ## ### # ### #### #### ################### ##### ### .$ # ### $. #####$#### # # # $. #### # . ### .# # $ $.### ## # #### # $.# $# ### $.## # # # # # # $ # # ###### # ## #$ $ ## #. # # ##### #.#. # ### # # ##### # # ### ### # # ##*## # .# # #$$* ## #*### ### ## ## ## # .#. ## ###*# # .$ .# $.$.## ### # ##*## # #.#### # $. ## #*### # $$ ### ### ## ## ###*# # # . $@$ #######. # ##### # ### ####.# $ # # # ########### # ####### #### ######### # # ###### # $ ###### ### # #$#$ $ $ # $ # # $ $@$ $ $ $ $$ # # $ $# $ # $$$ # # $ $ ####### ##### ## ###....##### ..# ###$$# $$$$ #...* ..# # ## #.. # # # #$###....##*## # ##..$. .... # ### .* .#....# # ################## #### #### ## # # # ####### ### ###$ ## # ### # $ $ ### # # $ $ ###$ # # # ### ### # # # # # $ # ## ### # ### # $ # #@ ## # $# # ### ### # # # $ # # $ $ # # # # ## # $ # #. # ## # # ## #.. ### ## # # ## #... ## ### # #### #....## # $.*.## ############..## #### ######################### # # # # # # # # # # $#$ # $#$ # $#$ # $#$ # # # # # # # # # # ## # ### # ### # ### # ## # # # # # # # # # # # # # # ## ### # ### # ### # ### ## # # # # # # # # # # # # @ # # # ## # ### # ### # ### # ## # . . . . . . . . # ######################### # # # # # # # # # # # # # # # # # # # # # # # # # # .$ . $. . $ .$ # # $# #$# # # #$# # # # # # . . $. . .$ . . # # #$# # # # #$#$ $# #$# # # . .$ .$ . $. . # # $# # # # #@# # # # #$ # # . .$ . $. $. . # # #$# #$ $#$# # # # #$# # # . . $. . .$ . . # # # # # #$# # # #$# #$ # # $. $ . .$ . $. # # # # # # # # # # # # # # # # # # # # # # # # # # Mas Sasquatch ##### # ##### # $ $ $ # ### # # # # # # ## ### ## # .....@# # $ $ # # ### ### # # ####### #### ######..# # . # # # ..# # ## ### # $ ## # # #$ @# # # $ $ # # ## $ ## ##### # ##### ##### ## ## # ## # @ # ############ #. # # #.## # ############.# # .# ##$#$#$#$#$#$#.# # .# ############### ##### ### # #### # $$ #### # ### $ # # # ###$$ $ # # *# @ ## # # ## ##### #..# ## # ## #..# # ## $ # #.. # # ## $ # ..#### # ## # # # #### ## # ##### ##### #### # # . # ### # $. $ $ # # #.## $ # ###@#..#$ # # ##.# ## # $ $ .# $# ## ###.## # # # ##### ### #### ##### ## ###### # @ # # # # $ * # #### ###$#. # #.....# .## #.....# #$#. ### ### . ## # # ## ##$ ### #### # # # $ $ # # $$$# # $ $ # ##### # ###### # #$ # #### ## $ # # # $ # # ### ###### ##### ########## # #. ........ .## # #### # ## ## $ # # ## # $ # # # ## # $ $ # # # # # $ $ # @ # # $ $$ # # # $## ########### # # # # ## ###### ######### ##### # ## #### # # $ # @ *..*### # # # #.... # # #$# #.... # # $# # ##$### # # #$ ## ## $ $# #### ## $ #### ### $$ # # # # ### ###### #### #### ## ### #### $ # #*# #### ######## $ $ # ### # # # $ $ $ $ ## # # ## ## $ $ #### $ ####### # # $$ ##### $ ## # # # ## ## $ $ # # #.# $ # $ $ #### ## ## # #.# $ $ $ #### # # #.#.# $ # # # #.#. ### # ######## # #.#.###@#### ## # ## #............. # ###### # # .########### ## # #### ##### # # ###### #### ##### ##### ## ## ### ## ## * * . $ # @ ## # ## * ## ### # # # ## * # # $ # # # # * # # # # ## # ## # # ### # # ## # #. $ .## ## # #.# ## ## #.# ## # # $ #. $ .$ ## # #* $.# . ## ##### ## ## # ## # # $ # # # # # ## # #$## # ## ## ######## #### # #### # $ ######### # .# $ ## # # $# .## $ ## #### .### #$$ # ## ## # .. # $$ # # $ ...# $ # # $ #####... # ## # $# # .**@#### ### # # # # ##### #### # # ## ## ######## # ### ## ## #*.$ # # .$.$ .## # $.$.$ # # $.@.$ # # $.$.$ # ##. $.$. # # $.*# ## ## ### # ##### # ##### # # # # # # # #####.# ...##### # .$$ ###$# # # #.# $. # # # .# $$$ # # ### # $@$ # ### # # $$$ #. # # # .$ #.# # # #$### $$. # #####... #.##### # # # # # # # ##### # ##### ####### # ### # ###$ ## #....$ # ### ## # # ###@.$ # # ## # .*.$ ## # # $.$ #.$$# # ## ## # ##### # ### ### $ # ## # ##### ##### # ##### # $$# ##### # . $ # ##### ### ## . $ # ##### # ##.### ....$ # ##### # $$# ###.##. # $ # # # # $ # .##.### .$$ # ### ## .$$$# ###.## # # ##.### #$$$. ## ### # $$. ###.##. # $ # # # # $ # .##.### #$$ # ##### # $.... ###.## # ##### # $ . ## ### ##### # $ . # ##### #$$ # ##### @# ##### ############# # # # .$.$.$.$. # # $.$.$.$.$ # # .$.$.$.$. # # $.$.$.$.$ # # .$.$@$.$. # # $.$.$.$.$ # # .$.$.$.$. # # $.$.$.$.$ # # .$.$.$.$. # # # ############# ############################# # # # .$.$.$.$.$.$.$.$.$.$.$.$. # # $.$.$.$.$.$.$.$.$.$.$.$.$ # # .$.$.$.$.$.$.$.$.$.$.$.$. # # $.$.$.$.$.$.$.$.$.$.$.$.$ # # .$.$.$.$.$.$.$.$.$.$.$.$. # # $.$.$.$.$.$.$.$.$.$.$.$.$ # # .$.$.$.$.$.$@$.$.$.$.$.$. # # $.$.$.$.$.$.$.$.$.$.$.$.$ # # .$.$.$.$.$.$.$.$.$.$.$.$. # # $.$.$.$.$.$.$.$.$.$.$.$.$ # # .$.$.$.$.$.$.$.$.$.$.$.$. # # $.$.$.$.$.$.$.$.$.$.$.$.$ # # .$.$.$.$.$.$.$.$.$.$.$.$. # # # ############################# ##################### ## # # # # $ $ $ #$ $ $ $ $### # $##### $$ $## ## $ # # # ..# # # # # ##$ ... # # ...#$ ## ## $ ... #$ # ...$ ## # $####..# ##...##$ # # *.*..$$@$$..*.* # # $##...## #..####$ # ## $... # $# ... $ ## ## $#... # # ... $## # # # # #.. # # # $ ## ##$ $$ #####$ # ###$ $ $ $ $# $ $ $ # # # # ## ##################### ##### ##### # # # # # #.####.# # # .. .. # ##### ### #### ### # # # # # # # ## # #@## # # $ ## # # # ### ## $ ## # $ $.. # ## $ ### # #.# # ## $ ## ## # # ## $ # # ##### ## $ $ ## ##### ## #### ######### #### # # #### # # $ # # # ####.# # # $ $ .#### # # $#$## #.#....# ### # $ # #.#....# # $ $ # #..*....# # # ## $ # #### # # $ # # $# ## ## $ # ###### ## $ # $$$# ## $$@## # ## ## ######## ############# # # # # $ $ $ $ $ # ### ##### ### ####.$ $ $.#### # ...# $ # $ #... # # $##*#.#.#*##$ # ## . . @ . . ## # $##*#.#.#*##$ # # ...# $ # $ #... # ####.$ $ $.#### ### ##### ### # $ $ $ $ $ # # # # ############# ########## ## # ## ### ####### # $$ # $# # # # ### #$$ # # $$ # #$$# # # #### #$ # ## # ###.*. # ## # ## *.*.#..*.## ### # ***...**.### $$ # # #....#...# # # # # ## ##.*. $ # ### # ## # $ ..## $ # # ## # $$### $#$$ # # # @ # $ # # ##### ##$#### ## ###### ## ######## ############## ####### # # # #.########## #$##### # # # # # #*######## # ###### # # # # # # # #*###### # ####### # # # # # # # # # #*#### # ######## # # # # # # # # # # # #*## # ######### # # # # # # # # # # # # # #$ # ########## # # # # # # # # # # # # # # # # # ########### # # # # # # # #. @ $ * * * * * . # ############################## #### ####### # # $ ## ######## # ..## $ # ## ##.# # # ####### #.# $ $### ### #######.# # ## # ## # $. $$ # # ## #.# #@# #.# ## # # $$ .$ # ## # ## # #.####### ### ###$ $ #.# ####### # # #.## ## # $ ##.. # ######## ## $ # # ####### #### ###### ## ########### # $ $ $ # * ###### # .*.#..*.# .$ ## # * # $ $ * $#*.$ # ## #### # . # * # # $ #########.## .$ # #.*.. * #### ## #$ $ #$#.$$.*# # # # # #*.$$.#$# $ $# ## #### * ..*.# # $. ##.######### $ # # * # . # #### ## # $.*#$ * $ $ # .$ # ## $. #.*..# * @# ###### * # $ *.$ # ########### ## ###### ###### ####### # ..# # # # # ..###### $# # ## #. $ ## $ # # $$$ # ##$## #.#. #$ $ # # #.#.## ## $ # #.# $ # # # #. ## @# ##$# #. #### # #. $ $# # #. ######## # #### ##### ################ # # ## # # # .$. $ # . . # ## ### # $ #$ # # . # ### ##.## # $ .$ #. # # ### ## # $ $ # ## # ### ## # # ## ### # ## # $ $ # ## ### # # .# $. $ # ##.## ### # . # # $# $ # ### ## # . . #@ $ .$. # # # ## # # ################ ########## # # # # $ # # #### ##### ### $$ ####### #### # ## $ $ ### ## $ # # $ ### # # ## ##### ### # #$# ..### ## # # # # #.# #.. # # $ $ # ### $ $ #.# #.. # # ## ## # # #.# #### #### ## # ########.# # $ $ # # .. #.# ###### # # # #.$$$$.#.# # # #### #### #.$ @$.#.# # # # $ # #.$$$$.#.# # # #### # # .. . # #### ##### ############ ##### ####### # ##### ###### #.### # ## # ### #. * # # ###### ## # ### ## # ## $ ..$ # $ ## # # # $ *.$@##### # ## # # ..$ # $ # ## #####$#######$## # . # # $ . #### #### # $$# #########$## . # # # . .# . # $$*$$ # # . # $.$.# #... ...# ##### $ # ## ##### $$*$$ # #.# # . # ###################### #### ##### ########## # # # # # # .. ## $### # # ##.#. # $$$@ # # #. # $ # # # ######## $ # # ### $ ## # #.############ # #. ## ################ ##### ## # #### # ### # # # @# # ##$#### ###### # ... ## ## # ... # ## # #### # ##### # ## # # $# # # # $ $ $$ # # # ##### # # ## # # # ###### ### # ## ## ####### # ## ## # # # .$. # ## $.$ ## # .$.$.$. # # $.$+$.$ # # .$.$.$. # ## $.$$ ## # .$. # # # # # ## ## # # ### ##### # ## # $ ##### ## $ # # ## $ # $########### ## $ $ $ $ # #####$ # # # # # # # # # #######$####### ## #@# # # # # ## # # #..*.*.*...... # ########## # ## #### # ##### ##### ##### # #### # ## #$.*.$ # # # $.@.$ # # # $.*.$# ## # #### # ##### ##### ##### ########## # # $ $$$ # # $## # # # # # $ # # # # ##$## .#. # # ..... # # #$ ##.@.## $# # # ..... # # .#. ##$## # # # # $ # # # # # ##$ # # $$$ $ # # ########## ##### ####### ####### ## . ### ## # $$.$$ # .$.$. # # $ . $ # $.$.$ # #...#... .$@$. # # $ . $ # $.$.$ # # $$.$$ # .$.$. # ## . ### ## ### ### ### ### ## ### ## # .$.$. # .$$$. # # $.$.$ # $...$ # # .$ $. $.#.$ # # $.$.$ # $...$ # # .$.$. # .$$$. # ## ### ## ####### ####### ##### ##### ##### ##### # $ # ##### ##### # $$ $$ # ##### # #$$ . ##$## . $$# # # $$. ##### . ##### .$$ # # ##### ##.## ##### # ##$ # #.... . ....# # $## # . $ . # @ # . $ . # ##$ # #.... . ....# # $## # ##### ##.## ##### # # $$. ##### . ##### .$$ # # #$$ . ##$## . $$# # ##### # $$ $$ # ##### ##### # $ # ##### ##### ##### ##### ##### ##### # ################### # # # $ $ $ $ $ $ $ $ $ $ # # # $ # # # # $ # ## #.###.#.###.#.###.# ## #$ # . # * # . # $# # . # . # . # . # #$###.#.###.@.###.#.###$# # . # . # . # . # #$ # . # * # . # $# ## #.###.#.###.#.###.# ## # $ # # # # $ # # # $ $ $ $ $ $ $ $ $ $ # # # ################### # ##### ##### ################# # # ##$#.#.#.#.#.#.#$## # $.$.$.$.$.$.$ # # #$#$ $@$ $#$# # # $.$.$.$.$.$.$ # ##$#.#.#.#.#.#.#$## # # ################# ##### ############### ######## ## $ $ $ $ $ $ $ $ $ $ ## ### # # ### # #.##.#.##.#.##.#.##.#.## # # $# .$ $ $# .$ $ $# .$ # # . #$ $ $. #$ $ $. # # # $##.#.##.#.##.#.##.#.##.#$ # ## . # @ . # ## ## # . # . ## # $#.##.#.##.#.##.#.##.#.##$ # # # .$ $ $# .$ $ $# . # # $. #$ $ $. #$ $ $. #$ # # ##.#.##.#.##.#.##.#.##.# # ### # # ### ## $ $ $ $ $ $ $ $ $ $ ## ######## ############### ##### ########### ## # ## # $$*.$.*$$ # #... ...# # $$*.$.*$$ # ## * ## # $$*.$.*$$ # #... @ ...# # $$*.$.*$$ # ## # ## ########### ########### # # # $## ### ## ##### # # $ $ $ ##### ### # $ # # $. . # # ##$###$## # #...# # # $ # # #. .# ## ## # $ $ $## # #...# # # ## ### #. # #. . # # # $ # # # # # @######## ### # # #### # ### # # #### # ## # ## ### ##### ## ###### ####### ######## #. # # $ * ##### # ## ## #. # # #### ### # $ $$#$#. # # ######## # # $# # $ * #...... # # $ ### $#. # #### # ## # #$$ # $ .# # # ## # # # $ @## # ## ## ## # ## $$$ # ## ### ##### ## #.##.### # ## #*$.*... ## # # # ## ## ## ### ########### ##### ####### # @ # ###### ### ###### # # $ # # # $ # $ # ##$###*###*###$## # $ # $ # # # * # # ##$###*###*###$## # # $ # # # ..*...#...*.. # ###### ### ###### # # ####### #### #### .# #### # .#### ### #### ##.. ## # $ # #$ #... # # # # # #... # # #$ # $ $ # # #### $ # # @## # # #$$##### ## # $ $ # # ##### ###### # # #### # #### #### #### # ### # #### $ $ ####### # $ #$ ## #### # ### ### # # ## $ ###### # # # $ # ## ##### # # # # # # $$ # ## ### # # #$.## $ # # ###### $ # ### ## #....*.**.# # # # ## #### # ##### ##### ##$## ###$# ## # $ # ####### # $ ############# # $ ###### ## @ # # ......... # ############################## ##### # . # ##### . ##### # $ . $ # # $ ##.## $ # # # $ # # ###$## ##$### # # *** # # #....$ *@* $....# # # *** # # ###$## ##$### # # $ # # # $ ##.## $ # # $ . $ # ##### . ##### # . # ##### # # # ## ## # $.$ # # . . # ## $.$.$.$ ## # . # # . # # $.$# $ #$.$ # # . . $@$ . . # # $.$# $ #$.$ # # . # # . # ## $.$.$.$ ## # . . # # $.$ # ## ## # # # #### # ###### # $ $ ### #### # $ # ## # #####*#*#$$$ # ## $ # # $ $ $ # ## # # #$ $ $##### $$ ## ## # #### .....# ## # # $ **.## ### # # # $$ #.##. # ## # #.#+* # # # ######.##..$ # ####### # $..##.#### # # *..*.# # .#. # ######$# # # # ##### ############################# #. . . . . .# # ## # # # # # # # ## # # ## $ # $ # $ # $ # $ ## # # ##$$$#$$$#$$$#$$$#$$$## # # $...$...$...$...$...$ # # $$.#.$.#.$.#.$.#.$.#.$$ # # $...$...$...$...$...$ # #.###$$$#$$$#$@$#$$$#$$$###.# # $...$...$...$...$...$ # # $$.#.$.#.$.#.$.#.$.#.$$ # # $...$...$...$...$...$ # # ##$$$#$$$#$$$#$$$#$$$## # # ## $ # $ # $ # $ # $ ## # # ## # # # # # # # ## # #. . . . . .# ############################# Sasquatch III ####### # * # # @ # ##$#.## # # # # $#. # # # # ## ## ## # * * # # * # ### ## ##### #### ####### # # * .## # $$# * ## # $@ #* * ## ## $ # * * # ### #. * * # # . # .# # # ##### ######## #### ######### # # # # #*### # # # $ # # # #*#*## # # # $ # # # # *# # # # # $ # # # ## ###$. . . . # #@####### # # # ########### ############# ## # ## #########@### ## # * # # ## ########*# # # # $ $ $ $ # # # #$.. . . ..$# # # # .#######. # ## # $.#######.$# # ### . . . . . # # # $ $ $ $ $ # # ######### ## # # $ $ # # # ####### ########### ## # # #######$## # # $ ### # #...***.*.@ # # # $ # # # #######$# # ## $ ## ######## ## ##### #### ######### ### # . . . . # # $$.$# #$.$ # ## . .# #. . # # $ $# $ $ # # $ #* ##### ##### # ## # @ # ## # ##### ##### *# $ # # $ $ #$ $ # # . .# #. . ## # $.$# #$.$$ # # . . . . # ### ######### #### ##### # ##### ### # ## # * #### # # * ## # # # * ** # # # # # # #@#** * ## # ### #$ # # # .$ .* # # # # # # ## # ## ######### #### ########@ # # ...#$ # # $ $ $ * # ##### . # ##$#$. # ###. # .## # .$#$ # # .$ # ###.$# # # #### #### # ########### # # # # # $ #$ $ # #$.*.*.#* # # . $. # #$.$#. .$# ## .$ #* ## # .#.*##. # # $ $ $ # ### # # ##### ##@ # ###### # # # # # # ## ## # . # # .$. # # $.$ # .$ $. # # * @ $ * $ # # $.$ # .$ $. # # . # # .$. # # # ## ## # # # # # # # ## ## # . # # ## $.$.$ ## # # # $.$.$.$ # # . # # .$.$.$. # $.$ # # .$.$@$.$. * # # .$.$.$. # $.$ # # $.$.$.$ # # . # ## $.$.$ ## # # # . # # ## ## # # # ######## # . . # # $.$. # ##$#$# ## # . . # #$#$# @# # . . # ##$#$# ## # . . # # $#$# ### ## . . # ###$#$# # # . # #$# ### # # ##### #### ######## # #@ $ $ $$ ### # ....*.* # ## ### ..*# # #$$ # .* # # # $ #.*# # # $ #.. # ## $ ### ### #$#.# # $ $ # # ## ####### ##### ######### # ### $ $ $ $. # # .$.$ $.$.# # # #.*..@..*.# # # #.$.$ $.$. # # .$ $ $ $ ### # ######### ##### ##### ############ ####### # # # ## # # # # # # #$ $ # .$ $ # ## # ..*.** *@* **.*.. # ## # $ $. # $ $# # # # # # # ## # # # ####### ############ ##### ######### ## * ## # # # # # # #.$.$.# # # $.$.$ # #*#.$@$.#*# # $.$.$ # # #.$.$.# # # # # # # ## * ## ######### # # ##### ##### #### # ..$$ # # # $ $ .#@#$ ## #### # *## # # # * #$.# ## $## . . # # $.**.#.**.$ # # . . ##$ ## #.$# * # # # ##* # #### ## $# #. $ $ # # # $$.. # #### ##### ##### # # ############# ## # # ## # .##$$ $ . # # ...#.#.#.# # ## # $ $ .# # # $. # # #$.$ # # # $ $ #$## # .$# @ #$. # ##$# $ $ # # # $.$# # # .$ # # #. $ $ # ## # #.#.#.#... # # . $ $$##. # ## # # ## ############# ############# ## * ## # ##.# ##.# # # # $ $ $ $ # # # .$. ## .$# # # # # . # . # # #$ $.$ #$# # #* #..@..# *# # #$# $.$ $# # # . # . # # # # #$. ## .$. # # # $ $ $ $ # # # #.## #.## # ## * ## ############# ### ### ### ## # @ # ## # $#$ $#$ # # . . . . . # ##$#$ $#$## # . . . . . # # $ $#$ $ # # . . . . . # ##$#$ $#$## # . . . . . # # $#$ $#$ # ## # # ## ### ### ### ### ### # ### # # # # ## $$$.$$$ ## # .# . . #. # # . # $ # . # # .$ #.# $. # ##$ .$@$. $## # .$ #.# $. # # . # $ # . # # .# . . #. # ## $$$.$$$ ## # # # # ### # ### ### ########### # # ##$####.####$## # $. $ $.$ $ .$ # # # ... ... # # # #$.$ $.$ $.$# # # # . *#.#* . # # # #$ $# $ #$ $# # # .. ..$@$.. .. # # #$ $# $ #$ $# # # # . *#.#* . # # # #$.$ $.$ $.$# # # # ... ... # # # $. $ $.$ $ .$ # ##$####.####$## # # ########### #### ### #### # # # # # # # # # # # **$***$** # # * . . * # ##$.## ##.$## # * # # * # # * @ * # # * # # * # ##$.## ##.$## # * . . * # # **$***$** # # # # # # # # # # # #### ### #### ############### #. $ . $ .# # ##$# # #$## # # .* .#. *. # # # *$* # # ##$$* # *$$## # #. $. .$ .# # #@ #* * *# # # #. $. .$ .# # ##$$* # *$$## # # *$* # # # .* .#. *. # # ##$# # #$## # #. $ . $ .# ############### # #### # #### # # # # # # *. ### .* # # $# $ $ $ $ #$ # # # .* *. # # # . # $ # . # # $ ##$## $ # #.* # . # *.# # # ..$@$.. # # #.* # . # *.# # $ ##$## $ # # . # $ # . # # # .* *. # # # $# $ $ $ $ #$ # # *. ### .* # # # # # # #### # #### # ############### ## # ## # *$ $*$$$*$ $* # # $...$...$...$ # # .$.$.$.$.$. # # $...$...$...$ # # *$$$*$$$*$$$* # # $...$...$...$ # ##$.$.$.@.$.$.$## # $...$...$...$ # # *$$$*$$$*$$$* # # $...$...$...$ # # .$.$.$.$.$. # # $...$...$...$ # # *$ $*$$$*$ $* # ## # ## ############### ############# ## . . . ## ## $.$ $.$ $.$ ## # $ * $ * $ * $ # #..*.*.*.*.*.*..# # $ * $ * $ * $ # # $.$.$.$.$.$ # # $ * $ * $ * $ # #..*.*.*@*.*.*..# # $ * $ * $ * $ # # $.$.$.$.$.$ # # $ * $ * $ * $ # #..*.*.*.*.*.*..# # $ * $ * $ * $ # ## $.$ $.$ $.$ ## ## . . . ## ############# ##### #### . #### # ##$.$## # #### . #### # ## $$.$$ ## # ## ## . ## ## ### $##$.$##$ ### # $ $ $...$ $ $ # #.......@.......# # $ $ $...$ $ $ # ### $##$.$##$ ### ## ## . ## ## # ## $$.$$ ## # #### . #### # ##$.$## # #### . #### ##### ################# # . . . # # ##$###$###$## ############# #.## ## ## ##.# . . # # $ * * $ # ##$###$## # # ## # # # #.## ## ##.# # ##*###*###*## # $ * $ # # # # # ## # ## # # # #.$ * * $.@ ##*###*## # # ## # # # # # # ## # # ##*###*###*## # $ * $ # # # # # ## #.## ## ##.# # $ * * $ # ##$###$## # #.## ## ## ##.# . . # # ##$###$###$## ############# # . . . # ################# ############### ## ## # ##### ##### # ########### # # . . . . . # ### ## # #$ $ $ $ $ $# ### ### # # # .#.#.#.#. # ## # . . . # # # #$ $ $ $ $ $# ## #$ $ $ $# # # # .#.#.#.#. # ## # .#.#. # # # $ $ $@$ $ $ ## $ $ $ $ # # # .#.#.#.#. # ## # .#.#. # # # #$ $ $ $ $ $# ## #$ $ $ $# # # # .#.#.#.#. # ## # . . . # # # #$ $ $ $ $ $# ### ### # # # . . . . . # ### ## # ##### ##### # ########### ## ## ############### ##### ##### ### # @ #### ## # $ # ## # #..*.#*...# # # # . $# $ $# . # # .# # $.# # # #.$ #$ #* # #. * # $ # .$# # # $ #$ $$#$$ $# $ # # #$. # $ # * .# # *# $# $.# # # #.$ # #. # # . #$ $ #$ . # # # #...*#.*..# # ## # $ # ## #### # ### ##### ##### ###### ##### ## #### # # ## $ # # # # .# $# $ # # #$.$ # ####### # $. # ### # # ### .$. . # #.$.$ # # $. ###$#$# ## ## #### #$ # # # # $ ###@###. # # $ # #.. #..## ###### # ..# . # # $$ #..## ..# # $ $## # # # $$ # # # ############# #### #### ####### #### # $ ## ####$ ###.### ## # $ # #.# # # # # $ # . @ # # # # #..### # # # # $#.... # # # # # #...#$ # # # # #$ # ## $$ $ # # # # # .* ## # # #$$## # ## ## # # ### ### # ####$ ### ## ##### ######## #### ##### # ##### ## # # # # # ##### # # # # # $ $ $ $ # ## # # # # # # ######$## # # #### # * # # # # # $ # .. $ # # # # # # #*...# # # # # .***#. ..# ## ## ##*....*.* $ # # ##* ##.##### # $ # ## # $ # # # ##@ #.#$ $ $ $# # ## $ $ # # ## ########### #### #### #### ### # # ######### ..# # $ @ $ $ #..# # $# $ # # #..# # ##*##$#$#$#..# # $ #..#. ## # #*. .##$## # ##$ $#..#. # # ##$######### # $$ $ # ## # ######### ##### ## . ## ##.$ $.## # $ * $ # #. * * .# # $ * $ # ##.$ $.## ####### ## . ## ####### ## ## ## ## ## ## # .$.$. # # # # $.$.$ # # $.$.$ ##### ##### .$.$. # # .$ $. $.@.$ # # $.$.$ ########### .$.$. # # .$.$. # # $.$.$ # ## ## ##### ## ## ####### #***# ####### ##### ######### ####### # # ####### # # # .$. $ # . . # ## ### # # # $ $ #$ # # . # #.$ $.## ##.## # $ .$ .# #. #. # # ### ## #.$ $. $ $ # ## # ##$$ .## ## # # ## ##. $$## # ## # $ $ .$ $.# ## ### # # .# .# #. $. $ # ##.## ##.$ $.# # . # # $# $ $ # # # ### ## # . . # @ $ .$. # # # ####### # # ####### ######### ##### ### # ############### # $ * @ * # # # # * * * * # ## # * . * # ### # # * * * * # # # # * . * # # # # * * * * # # ## # * . * # ## ## ########### # # $ $ # # ########## # ##### ##### #### #### # ##### #### #### $ $ ## # $ ### ## ## #@### # ###.#..# # # $ # # .# # # $ # # # # . # ## # # ########### # ## $ $ $ # ###### #.#.#.### # # # # # # #.#.#.# # # # $ $ $ # # # # # # # # ## ### # # ## ### # #### ## ####### ####### ## ####### # ###### ## #.### ## . ## ## # . # $*# .# # # # #. ###.# *$ # ####### # $ * ### . # ## ###$# * $$ ##$ .######## # ## $ # * # # # . # # # # $$ $#. .# @ #. .#$ $$ # # # # . # # # * # $ ## # ########. $## $$ * #$### ## # . ### * $ # ####### # $* #.### .# # # # #. #*$ # . # ## ## . ## ###.# ## ###### # ####### ## ####### ############################## # ......... # # $ ###### ## @ # ####### # $ ############# ## # $ # ##$## ###$# #### ..# ##### ##### # ..*.**.# # # # ## # ######.. $ # ###$ ## # # #*. # $ # # # # # # $$ # ## ### # $ # ## ##### # ## $ ###### # # # ### ### $# # # $ #$ $ ## #### #### $ $ ###### # #### # #### #### ######################### # # # # # # # # $ # # # # # # # # # $ # # * * $ $ * * $ $ * * # ### # # # # # # # # # ### # * *...... ......* * # # # # ###### ###### # # # # $ .# $ #. $ # ### #$ $$$$ @ $$$$ $# ### # $ .# $ #. $ # # # # ###### ###### # # # # * *...... ......* * # ### # # # # # # # # # ### # * * $ $ * * $ $ * * # # $ # # # # # # # # # $ # # # # # # # # ######################### #### ## #### # $ .######## # $ # . $ $ # #### ### .#### # # # ....#$.# # # # # #. $ # .#$ # # # # ## $$$@$ # # # ## ## # # # # ### # ## # # # ### # ... # # #$* *$# ## # # ...$ ### # $$ # # # ###### ##### ##### ## ## # $ # ## $.$ ## ## $.*.$ ## ### $.*.*.$ ### ## $.*.$.*.$ ## # $.*.$ $.*.$ # # $.*.$ $.*.$ # # $.*.$ $.*.$ # ## $.*.$.*.$ ## ### $.*.*.$ ### ## $.*.$ ## ## $.$ ## # $ # ## @ ## ##### ##### # # ## $ ## ### $.$ ### # $.*.$ # ## $.*.*.$ ## ### $.*.$.*.$ ### # $.*.$ $.*.$ # # $.*.$ $.*.$ # # $.*.$ $.*.$ # ### $.*.$.*.$ ### ## $.*.*.$ ## # $.*.$ # ### $.$ ### ## $ ## # @ # ##### ##### ########### @ ########### # . . # . # # $$*$$$*$$ # .$ $$$.$. # #.....*.....#*$.$...*.$*# ## $$*$$$*$$ # .$.$$$ $. ## # . . # . # # ####################### # # . . . # . . . . # ## $$* $$* $ # $.$.$.$.$ ## #.*.* * *.*.#*$$$ * $$$*# # $ *$$ *$$ # $.$.$.$.$ # # . . . # . . . . # ########### * ########### ##### ##### ########### @ ########### # . . # .$. # # .$.$$$.$. #.$ $.$ $.# #.$$$.*.$$$.#$.*** ***.$# ## .$.$$$.$. #.$ $.$ $.## # . . # .$. # # ####################### # # $. .$ # $ . # ## * .$. * # .** **$ ## # $.$*$.$ # * *** * # # * .$. * # $** **. # # $. .$ # . $ # ########### * ########### ##### ######################### # # # # # # # # # # $#$ # $#$ # $#$ # $#$ # # # # # # # # # # # $#$ # $#$ # $#$ # $#$ # # # # # # # # # # ## # ### # ### # ### # ## # # # # # # # # # # $ # $ # $ # $ # ## ### # ### # ### # ### ## # # # # # # # # # # # $ # $ # $ # # ## # ### # ### # ### # ## #...........+...........# ######### # ######### # ### # #### #### ######################### # # # ###$$ $$ $$ $$.$$ $$ $$ $$### # $+.$..$..$..$..$..$..$..$ # # $..$..$..$..$..$..$..$..$ # # $$.$$.$$.$$.$$.$$.$$.$$ # # $..$..$..$..$..$..$..$..$ # # $..$..$..$..$..$..$..$..$ # ##.$$.$$.$$.$$ $$.$$.$$.$$.## # $..$..$..$..$..$..$..$..$ # # $..$..$..$..$..$..$..$..$ # # $$.$$.$$.$$.$$.$$.$$.$$ # # $..$..$..$..$..$..$..$..$ # # $..$..$..$..$..$..$..$..$ # ###$$ $$ $$ $$.$$ $$ $$ $$### # # # ######################### #### #### # ##################### # # ....... @ ....... # # # .###############. # # ### #. # # # .# ### # # $ # $ # # # ##$## ##$## # # ### # ##$## ##### ### # # # $ $ $ # # # # # # # # # # # # #####$######$## # # ## ## # # # ## ## ####### $ # $ ####### ##$## ##$## # ###### # ##### ##$## ###### # # # $ $ $ # # # ###### # # # # # ###### ############### Microban (easy) #### # .# # ### #*@ # # $ # # ### #### ###### # # # #@ # # $* # # .* # # # ###### #### ### #### # $ # # # #$ # # . .#@ # ######### ######## # # # .**$@# # # ##### # #### ####### # # # .$. # ## $@$ # # .$. # # # ######## ###### ##### # ### # # $$ #@# # $ #... # # ######## ##### ####### # # # .$. # # $.$ # # .$. # # $.$ # # @ # ####### ###### # ..@# # $$ # ## ### # # # # #### # # ## # # # # # # ### # ##### ##### #. ## #@$$ # ## # ## # ##.# ### ##### #. # #.# # #######.# # # @ $ $ $ # # # # # ### # # ######### ###### # # # ##@## ### # $ # # ..# $ # # # # ###### #### ##### # ## # $ # ## $ #### ###@. # # .# # # # ####### #### #. ## #.@ # #. $# ##$ ### # $ # # # # ### #### ####### # # # # # # #. $*@# # ### ##### ### ######@## # .* # # # # #####$# # # # ##### #### # #### # ## ## ## # #. .# @$## # # $$ # # .# # ########## ##### # @ # #...# #$$$## # # # # ###### ####### # # #. . # # ## ## # $ # ###$ # #@ # # # #### ######## # .. # # @$$ # ##### ## # # # # # # #### ####### # ### # @$$..# #### ## # # # # #### # # #### #### # #### # . . # # $$#@# ## # ###### ##### # ### #. . # # # # ## # # #@$$ # # # # ### #### ####### # * # # # ## # ## #$@.# # # ##### # ##### # # ###$$@# # ### # # # . . # ####### #### # ### # $$ # ##... # # @$ # # ### ##### ##### # @ # # # ###$ # # ...# # $$ # ### # #### ###### # .# # ## ## # $$@# # # # #. ### ##### ##### # # # @ # # $$### ##. . # # # ###### ##### # ## # # ###### # ## #. # # $ $ @ ## # ######.# # # ########## #### # ### # $$ # #... # # @$ # # ## ##### #### ## # ##@$.## # $$ # # . . # ### # ##### #### ## ### # # #.**$@# # ### ## # #### ####### #. # # # $ # #. $#@# # $ # #. # # ####### #### ### #### # # #@$***. # # # ######### #### ## # #. $# #.$ # #.$ # #.$ # #. $## # @# ## # ##### #### # ############ # $ $ $ $ $ @ # # ..... # ############### ### ##### #.# # ###.# # $ #.# # $ $ # #####@# # # # ##### ########## # # # ##.### # # # $$ . # # . @$## # ##### # ###### ##### # #### # # # .# # $ ### ### #$. # # #@ # # # ###### # # ##### ##### # # ## ## # $$$ # # .+. # ####### ####### # # #@$$$ ## # #...# ## ## ###### #### # # #@ # ####$.# # $.# # # $.# # ## ###### #### # @# # # ###### .# # $ .# # $$# .# # #### ### # #### ##### #@$.# ##### ###### #... # # $ # # #$## # $ # # @ # ###### ###### ## # # ## # # # $ # # * .# ## #@## # # ##### ####### ### # # $ $ # # ### ##### # @ . . # # ### # ##### ##### ###### # @ # # # ## # .# ## # .$$$ # # .# # #### # ##### ###### # @ # # $# # # $ # # $ ## ### #### # # # #... # # # ####### #### ### ##### # $ @..# # $ # # ### #### # # # ######## #### # ### # ### # $*@ # ### .# # # # ###### #### ### @# # $ # # *.# # *.# # $ # ### # #### ##### ##. .## # * * # # # # # $ $ # ## @ ## ##### ###### # # ##### . # ### ###. # # $ $ . ## # @$$ # . # ## ##### ###### ######## # @ # # # # #####$ # # ### ## #$ ..# ## # ### #### ##### # ### # $ # ##* . # # @# ###### #### # # #@ # # # ### #### # * # # $ # #####. # #### #### # #### #.*$ # # .$# # ## @ # # ## ##### ############ # # # ####### @## # # # # # $ # # # $$ ##### # ### # # ...# #### # # ###### ######### # # ##@##### # # # # # # # $.# # ##$##.# ##$## #.# # $ #.# # # ### ######## ######## # # # #### # # #...@# # ###$### # # # # $$ $ # #### ## #.### ### ########## #### ## # # $$$....$@# # ### # # #### #### ##### ##### #### # ##### .# # $ ######## ### #### .$ @ # # # # #### # #### #### ##### ###### ## # # $ # # $$ # ### .##### ##.# @ # #. $ # #. #### #### ###### # # # $ # ####$ # ## $ $ # #....# ## # @ # ## # # ######## ### #@# ###$### ## . ## # # # # # # # # # # # # # # # # # # # # ## $ $ ## ##. .## # # # # ##### ##### # ## # # # #@$*.## ## . # # $# # ## # ##### #### # ###### ## $ # # .# $ # # .#$##### # .@ # ###### #### #### # #### # # # # # # # $## # . .#$ # #@ ## # $ # # . # # ########### ##### # @ #### # # # $ $$ # ##$## # # #### # .. # ##.. # ### # #### ########### # # ### # $@$ # . .# # ## ### ## # # # # # # # # # # # ######### # # # ############# #### ## ##### # $ @ # # $# # #### ##### # # # # $ # # ..# # # .#### # ## #### #### # ##### # $$ $ # # # ## ## ## #...#@# # ### ## # # # # # ######## #### # ####### #$ @# .# ## #$$ .# # $ ##..# # # ##### ### # ##### ####### ## ....## # ###### # $ $ @# ### $ $ # ### # ###### ##### ## # # ##### # #.# # #@ #.# $ # # #.# ## # # # ## ##$$# ## # # #### #### ########## # @ .... # # ####$## ## # $ $ # # $ # # ###### ##### ####### ## ## # $ $ # # $ $ $ # ## ### #### #@ .....# ## ### ####### ######### # # # ## $#$# # # .$.@ # # .# # ########## #### # ####### # . ## .# # $# .# ## ## # .# # # # #### # # # @$ ### # $$ # # # ###### ##### # # # . # ## * # # *## # @## ## $ # # # ##### ##### # ### # . ## ##*#$ # # .# $ # # @## ## # # ####### ###### # ## # $ $ ## ## $$ # # # # # ## ## # . .# # @. .# # #### #### ######## # ... # # ### ## # # $ # ## #@$ # # # $ # # ### ##### # # # ### # ##### ##### #### ####### # # $ # # $ $ # # ######## ## # . # # # # # # @ . ## ## # # # # . # ####### #### ### ## ## $ # ## $ # # # @#$$ # # .. ### # ..### ##### #### ###### # # # # ... .# ##$###### # $ # # $### ## $ # ## @ # ###### #### # ### # # # # # # # # # #$ #.# # # # # # # #$ #.# # # # # # ####$ #.# # # @ # # # # ## # ######## ########## # ## # # $ $@# # #### # $ # #.# ## # #.# $# # #. # # #. # ###### ######## # @ # # $ $ # ### ## ### # $..$ # # .. # ########## ########### # .## # # $$@..$$ # # ##. # ########### #### # # ##### # # # # # ######.# # #### $ . # # $$# ###.# # # # # # # ######### #@ ## # # #### ######### ## # ## # # # # $ # $ # # *.* # ####.@.#### # *.* # # $ # $ # # # # ## # ## ######### ######### # @ # # # $ $ # ##$### ## # ... # # # # ###### # #### ######## #@ # # .$$. # # $..$ # # $..$ # # .$$. # # # ######## ###### # # # # ##### # # #.##### # $@$ # #####.# # ## ## ## # $.# # ### ##### #### # ######## #### $ $.....# # $ ###### #@### ### # $ # # $ # # ## # # # # ###### ##### # ## #### # $ ### .# # $ $ .# ## $#####.# #### # $ # # .### # # # # .# @ # ### # # # #### ## ## ####### ##### # # ####### ####### # # # # # # # # @ #### # #### # # ....## #### # # ##### ## $$ $ $ # ###### # # # ########## #### ####### # @# # #.$ # #. # $## #.$# # #. # $ # # # # ######## ##### # # # # ####### # * # # ## ## # # # #* # ### # # # ### # *#$+ # # # ## ## # # * # ####### # # # # ##### ########### #....# # # # $$ # # @ ## # # ##$ # ###### $ # # # ###### ##### # . ## ### $ # # . $#@# # #$ . # # $ ### ## . # ##### ##### ##### # # $ # # $#$#@# ### # # # ... # ### ## # # #### #### #### ## ### ## # # # # # *. .* # ###$ $### # @ # ###$ $### # *. .* # # # # # ## ### ## #### #### ######## # # #@ $ # ## ###$ # # .....### # $ $ $ # ###### # # # # ##### ######## # # # $*** # # * * # # * * # # ***. # # @# ######## #### ##### # ### # ## # # #$ $ # #..# ##### # # # @ # $ $ # #..# ## ## ######### ##### ####### # # # # # # # # # @ $ # ### ### # # ### # # $ ##.# ## $ #.# ## $ .# # ## $#.# ## ## #.# ### # # ### ##### #### # # # $#### ###. . # # $ # $ # # . .### ####$ # # @# #### ###### # #### # ...# # ...# ###### # # # # # $$ ## # @$ # # $$ # ## $# # # # ###### ##### ## #### # $$$ # # # $ # # $## ## ### #. # # # # ##### ### # # ## # @....# # # # # # ######## ##### ## # ### # # # . # # ## ##### # . . # ## # # @ $ ### #####. # $ # #### $ # ## $ ## # ## # # #### ###### # ### # # $ # # $ @ # ## ## ##### # #......# # $ $ $ $ # ## ###### ##### ##### ##### #### # # # # #..... # ## ## # ### #$$@$$$ # # ### ####### ##### ### # ####.....# # @$$$$$ # # # ## ##### # ##### #### #### # ### ## # @ # ##..### # # # # #...#$ # # # ## $$ $ # # $ ### #### ### #### ##### ## ## # $ ## # $ $ ## ###$# . ## # # . # ## ##. # # @ . ## # # # ######## ###### # ## ## ## # # $$ # # # @$ # # # # # #### # # # ... ## # ## ####### #### ####### # # $ ## # $##### # # @# # # ## ##.. # # # ..#### # $ ### # $### # # #### ###### # . # ##$.# # # * # # ..### ##$ # ##### ## ## # # # #### # # # @ $ $ # ## # # ########## ##### # ### # #$ # # $ # # $ $ # # $# # # @### ## ######## # ...# # # ########..# #### ######## # # # $ $$ ######## ##### @##. . # #$ # . # # #. . ## #$# ## # # # # # ### ## # # #### #### ############## # # # # $@$$ # . ..# ## ## ### ## # # # # # # # # # # # ######### # # # ############# ##### # ## # $ # ######## #@## # . # $ $ # # $# # #...##### # ##### ##### ########### ##....... # # $$$$$$$@ # # # # # ## # # # # # ####### ##### ## #### #### #### # $ $. # ## # .$ # # ##.### # $ . # # @ # # # ###### #### ######### ### # # # * $ . . # # $ ## ## ####*# # # @ ### # ### ##### ######### ### @ # # # * $ *.. # # $ # # ####*# ### # ## # ### ##### ##### ##### # ####.. # # $$$ # # $# .. # ### @# ## # # ## # ########## ##### # # # . # #.@.### ##.# # # $ # # $ # ##$$ # # ### # # #### #### # @### #.* ##### #..#$$ $ # ## # # # ## # # ##### ##### ####### # . .### # . . . # ### #### # # @$ $ # # $$ $ # #### ### ##### #### ######### # # ## $ # # $ ## # ### #. .# ## # #. .#$## # # # # # @ $ # # ####### #### ####### # ##### # $$#@##..# # # # # $ # # # #### $ ..# ######## ####### # # ## ###$## #.$ @ # # .. #$ # #.## $ # # #### ###### #### ## ### #### # $ # # #### $ $ # # ..# #$ # # # @ ### ## #..# ### # ## # # # # ######## #### ### # # ### # # . .# # @ ...#### # # # # ## # # $$ # ##### $ $ # ##$ # ## # # ###### #### ## #### # ...# # ...# # # ## # #@ #### #### ##### $ ### # # ##$ $ # ### $$ # # $ ## ### # ###### ###### ######## ##### # # ### # # ## $ # #.# @ ## $ ## #.# # $ ## #.# $ ## #. ## ##### ## # ###### ######## # # . # # .*.# # # * # ####$##.## # $ # # $ ## $ # # @# # ########## #### # # # #### ###$.$ # # .@. # # $.$### #### # # # #### #### # #### # $ # # .# # # $# ## # . # #### # # # ### ### # $ # ## #$# ## # $ @ $ # # ..#.. # ### ### ##### #### ### ##### # $$ # # # $ . .$$## # .. #. $ # ### #** . # # . **# ### # $ .# .. # ##$$.@. $ # # # $$ # ##### ### #### ##### # @ # ## ## ###.$$$.### # $...$ # # $.#.$ # # $...$ # ###.$$$.### ## ## # # ##### ####### ## . ## # .$$$. # # $. .$ # #.$ @ $.# # $. .$ # # .$$$. # ## . ## ####### ##### ######## # #. . @#.# # ### # ## $ # # # $ ##### # $# # ## # # # ## ##### ########### # . # # # #. @ # # #..# ####### ## ## $$ $ $ # ## # ############# #### ## ### #@$ # ### $ # # ###### # $....# # # #### ## # # # $# # # # # ### #### #### ##### # # $####### ## ## ..# ...# # $ $$#$ @ # # ### # ####### # #### #### #### # # ### # ## $ # # # # # #$$ ###### # # # .# # $ @ .# ### ####..# #### #### ###### #### # # # #.## #$## # # # # # #$ # ### # # # # # # # # # #### # # # #. @ $ * . # ############### ############# #.# @# # # #.#$$ # $ # #.# # $# # #.# $# # $## #.# # $# # #.# $# # $# #.. # $ # #.. # # # ############ ############################ # # # ######################## # # # # # # # #################### # # # # # # # # # # # ################ # # # # # # # # # # # # # # # ############ # # # # # # # # # # # # # # # # # # ############ # # # # # # # # # # # # # # # ################ # # # # # # # # ##$# # #################### # #. @ # # ############################# ###### #### #####*# ################# ## # ### # # ######## #### ## # ### #### # #### #### ## #*# # .# # # # # # # #*# # # # ## # ## ## # ### ### ### # ## # ## ## # # #*# # # # # # # ### ##### #### # # ##### ##### ####### ###### # # # #**# # ## # # #**# ####### ## # # ######### # ##### ### # # # $ #*# # ######### ### @##### #*# ##### #### #### ###### Sasquatch IV #### #### # # #### # $ # . ## # # . # ## #$$#. # ## ##### # @ ### # # ##### ##### ###### # # $ # # $### ## ##.$. . .# # $# # # @###### # # #### ##### #### # # @ $# # # #....# ##$ $ $ # # ### ## # # ##### # #### ###### # . ## # #* # # $.$ # ## *. # ## $.@ # ## # .$ # # $$.# # # ## ######## #### # # ## .### # .$ # #* * ## # $.$$ # # . # ###*#### #@# ### #### ### # # ..# ####### # #..# # #### # #. ### $ # # #. # $ $ $$ # # # @ ### $## # # ##### ## ######### #### ############### ## $. .$ ## # # ####### # # # # # # # .***$#$***. # ### # ### # ####@#### # # # ############# ####################### # # # # # # $@$$ # $ # .. ..# ## ## ### ### ### ## ## # # # # # # # # # # # # # ################# # # # ##################### ########### #@ # # # # $#$ $# ## #..# # # #..# # # #..# ## #$ $#$ # # # # # ########### ###### # # # .$ # # ** # ##$. # # #### # ## # # # # # # #.**$@# # # # ####### ######## ##.... @# # # . # ## # # ## # #$ # # # $ # ## ###$ ## # # $$ # # # # ######## ###### # # # ### ##*# # ## . ## # # # ## # #.# $ # # $.###$ # ### ## # # $$@# ##..## # # ##### # # ##### #### ##### # ###. #$ ## # * .*.# # $.$ #$ # ### ### # # ### ### # $# $.$ # #.*.@ * # ## $# .### # ##### #### ###### # ##### # $ *# # # * * $ # ###* . * # # * .@. * # # * . *### # $ * * # # #* $ # ##### # ###### ########### # * # # $$ ## $ # # $..#$$ # # ##*.*. # #*#..@..#*# # .*.*## # # $$#..$ # # $ ## $$ # # * # ########### ############# # $ . # #.$ $### *$ # # ** ## .* # # .$#..$ $ # # # .$.$### # #$##..@..##$# # ###$.$. # # # $ $..#$. # # *. ## ** # # $* ###$ $.# # . $ # ############# ############### # # # $.$.$.$.$.$ # # .$.$.#.$.$. # # $.$.$ $.$.$ # # .$.$.#.$.$. # # $.$.$ $.$.$ # # .# # @ # #. # # $.$.$ $.$.$ # # .$.$.#.$.$. # # $.$.$ $.$.$ # # .$.$.#.$.$. # # $.$.$.$.$.$ # # # ############### ############### ## # # # ## # **.. ..** # # * $$$ * # ##* .### ###. *## # * ## $@$ ## * # # . # # . # # .$#$ ### $#$. # ## $ # # $ ## # .$#$ ### $#$. # # . # # . # # * ## $ $ ## * # ##* .### ###. *## # * $$$ * # # **.. ..** # ## # # # ## ############### ######### # * # # ## ## # # * * # ### # ### # .$#$. # # # @ # # # .$#$. # ### # ### ####### #### # ######### # ## # # $$$# # ##...# #$$$# #...# #...# #$$$ #...## # ##$$$ # ####### @ # ###### ######### ## # # ## $# # #$### # #. .# # # $ *.@.* $ # # #. .# # ###$# # #$ ## # # ## ######### #### #### # #### #### ### $ $ # # # $ *...## # $ # #### #.. # ## # # # $$ $$@ #...## # # ####### #### # # ##### #### ###### # ## $ $ # ## $ #$ # # $ # $# # # ## ## ###$ ..# # # #*...@# # ..#### # #### #### #### # ### # # ########$$ # # $ ## # #### $$ ## ####....# $ # # ...# $$ # # #...# $ ### # @## ## $ # # ## # # ##### ####### ############### ## ....# ## # # # ### # # ....# # # # # # $ $ # # ## # $@$ # # ####### $ $ # # ##*# $ $ # # ### #### # # ## ### # ##### ## ####### ##### ##### # @ ### # # # $ # #### #$ $ #### # # $ $# # ### $ $ # #.......# ## #### ## # # # # # ###### # #### #### ### ### ### ## # $$#$$$@ ## # # # # ### #$$$# # # # # #### .## # ####.## ## ## .## # ##... # # .##### # .# ##### #### # ##### # $ $ # #* . . # # ######## # # # #### $ # # #$### # # @$# # #### # $$ $$ # # # # ## $ * # ## ###.....#. # #... ###$# . # # $ $ . # ######## ##### #### # ## #### ## # # ### # ##$ # #### # * # # # # * # # #### * # # ### . # # #@#.****$# # # # # # ##### # # # ## # ###### ## ###### ##### # ####### # ## ## #.# ### #####.# # ####### ## ##.####. ## ## ## .....@.# $ ### # ###.# #.# $ $ ## # #. # .# $ $ $ # # # #. ## #$ $ $ # ## # #. # $ $ $ #### ### #. # $ $ ## # # # $ $ # # # ######$## # #### # ## ####### ######## ############# # @ # #**.*****.**# # $ $ # # # ### # ##### ##### ######## ###### # # #**.*******.**# # $ $ # # ####### # ##### ##### #### ### # ######## $$ ## ### # .*.$ # # $$ # #....$ # # $.. # $ $ # ##$*. ## ###### # ..$## ### # ## . # $# # # #$ @# . ## # ### ##$.. # ###### ## .*$## # $ $ # ..$ # # $....# # $$ # # $.*. # ### ## $$ ######## # ### #### ####### ## ## # *.* # # #$ $# # ##### *.* ##### ## ## ## ## # # ###.### # # # *$* # $*$ # *$* # # . . ..$@$.. . . # # *$* # $*$ # *$* # # # ###.### # # ## ## ## ## ##### *.* ##### # #$ $# # # *.* # ## ## ####### ##### # @ # # $ # # $ # ## $ ## #####.*.*.##### # *. .* # # $$$. # .$$$ # # *. .* # #####.*.*.##### ## $ ## # $ # # $ # # # ##### ##### # # ## $ ## ## $.$ ## ## $ * $ ## ## $.*.*.$ ## ### $.*.#.*.$ ### # $ *.# #.* $ # # $.*.# #.*.$ # # $ *.# #.* $ # ### $.*.#.*.$ ### ## $.*.*.$ ## ## $ * $ ## ## $.$ ## ## $ ## # @ # ##### ##### ### ## ## $ ## ## $ *$ ## ## $.#.$.$ ## ## $.$. .$.$ ## ## $.$. . .$.$ ## # *$. * * .# $## # . . @ . . # ##$ #. * * .$* # ## $.$. . .$.$ ## ## $.$. .$.$ ## ## $.$.#.$ ## ## $* $ ## ## $ ## ## ### ##### ## ## ## # ## ## ## # *$#$* # # $...$ # # #.@.# # # $...$ # # *$#$* # ## ## ## # ## ## ## ## ## ## # ## # .$ $. # # * * # # .* #.# *. # # $ # $ # $ # # .$@$. # # $ # $ # $ # # .* #.# *. # # * * # # .$ $. # ## # ## ## ## ##### # ##### ## # ##### # ## # # # # # ## $* $ $ *$ ## # ..*# #*.. # ###*.. # ..*### # $ *$ # $* $ # # # * # # ### ###* *### ### # # * # # # $ *$ # $* $ # ###*.. # ..*### # ..*#@#*.. # ## $* $ $ *$ ## # # # # # ## # ##### # ## ##### # ##### ### ################# ###### ## ## ###### #### # $$ # $$ # #### # #$$ #.. ..# $$# # # ### #.###.# ### # #* ##### ### #*# ### ##### *# # ..@.. # #* ##### ### #*# ### ##### *# # ### #.###.# ### # # #$$ #.. ..# $$# # #### # $$ # $$ # #### ###### ## ## ###### ################# ### ############### # .. . . # # $##$ # $$##.# # # ### # # #.## # # ##$ # # $ $ $ $ # #.## # # # # #.## #@# ###.# # $ # ### # #.# # $ $ # #.### ### # # # # # # ###.# # $#$$###$# # # # . . . . # ############### #### ##### #### # ## # ##### # # $.# # $ $ # # .# # ##### # ## .#### ### ##$## #$. $ # $ # # ..### # # # #*..@#######$##### # ..#### # # #$. $ # # ## .######$## # # .# # ##$## # $.# # $ # # ## # # # #### ######## ################ ## ## # ############ # # # # # # # $$$ $ $ @# # # # ### $$# ## ## $ ## # $ $ # ## # # #### # ###.. # # ### ## .. # .# $ #### # #### ## .# #.# # # # ###* $ .# ## #### # .# #. # # ## .###.## # ###### # # # # # ############ ############################### # . . . . . . . . . # # $ $ # $ $ # $ $ # $ $ # $ $ # ###.#####.#####.#####.#####.### # $ $ # $ $ # $ $ # $ $ # $ $ # # . . # . . # ###.#####.###########.#####.### # $ # $ . *@# # * * $ # # $ * * # # * . $ # $ # ###.#####.###########.#####.### # . . # . . # # $ $ # $ $ # $ $ # $ $ # $ $ # ###.#####.#####.#####.#####.### # $ $ # $ $ # $ $ # $ $ # $ $ # # . . . . . . . . . # ############################### ##################### ## # # # # ## # * * * * * * * * * * # # # # # # # # # # # # # $.$ $.$ $.$ $.$ $.$ # ##. .#. .#. .#. .#. .## # $.$ $.$ $.$ $.$ $.$ # # # # # # # # # # # # # $.$ $.$ $.$ $.$ $.$ # ##. .#. .#.@.#. .#. .## # $.$ $.$ $.$ $.$ $.$ # # # # # # # # # # # # # * * * * * * * * * * # ## # # # # ## ##################### # # # # # ##################### ## # # # ## ### .$$. .$$. .$$. .$$. ### # .* *.* *.* *.* *. # # $ ## $ ## $ ## $ ## $ # # $ ## $ ## $ ## $ ## $ # # .* *.* *.* *.* *. # ### .$$. .$$.@.$$. .$$. ### # .* *.* *.* *.* *. # # $ ## $ ## $ ## $ ## $ # # $ ## $ ## $ ## $ ## $ # # .* *.* *.* *.* *. # ### .$$. .$$. .$$. .$$. ### ## # # # ## ##################### # # # # # ##### ############ @ ############ # # # #$.$ .$.$.$.#**.**$$$*.**# #.$.$.$.$.$.$# $. ..$.$ # #$.$.$.$.$.$.# $.$.. .$ # ##.$.$.$. $.$#**.*$$$**.**## # # # # ######################### # # .. .. # $ . $. $ . # ## $*$*$$$$*$ # $ $.$. . ## # *. .. .$.$ #.$.$. $.$.$# # $.$. .. .* #$.$.$ .$.$.# # $*$$$$*$*$ # . .$.$ $ # # .. .. # . $ .$ . $ # ############ * ############ ##### ############################# # # # # # # # # # # # # # # # # # # # .$*$.$*$.$*$.$*$.$*$. # ###.# # # # # # # # # # #.### # $ . . . . . . . . . $ # # *# #$#$#$#$#$#$#$#$# #* # # $ * . . . . . . . * $ # ###*..$ #$#$#$@$#$#$# $..*### # $ * . . . . . . . * $ # # *# #$#$#$#$#$#$#$#$# #* # # $ . . . . . . . . . $ # ###.# # # # # # # # # # #.### # .$*$.$*$.$*$.$*$.$*$. # # # # # # # # # # # # # # # # # # # ############################# ############################# # * * * # # $ ### $ ##### $ ### $ # # $ $ ### $ ### $ ### $ $ # #*# $ ### $ # $ ### $ #*# # ## .*.*.*.*.$.*.*.*.*. ## # # ###$ $ $ $ $.$ $ $ $ $### # ## ..*.....*...$...*.....*.. ## ## $ $ $ $ $ *@* $ $ $ $ $ ## ## ..*.....*...$...*.....*.. ## # ###$ $ $ $ $.$ $ $ $ $### # # ## .*.*.*.*.$.*.*.*.*. ## # #*# $ ### $ # $ ### $ #*# # $ $ ### $ ### $ ### $ $ # # $ ### $ ##### $ ### $ # # * * * # ############################# ############################## # .$ ## $. ## .$ ## $. ## .$ # #$ . . $##$ . . $##$ .# #. $##$ . . $##$ . . $# # $. ## .$ ## $. ## .$ ## $. # ### # # ## ## # # ## ## ## ### # # ## # . # # ## ## ## # $. ## .$ # $ # .$ ## $. # #. $##$ . .$## #$ . . $# #$ . . $# @#$. . $##$ .# # .$ ## $. # $ # $. ## .$ # ## ## ## # # . # ## # # ### ## ## ## # # ## ## # # ### # .$ ## $. ## .$ ## $. ## .$ # #$ . . $##$ . . $##$ .# #. $##$ . . $##$ . . $# # $. ## .$ ## $. ## .$ ## $. # ############################## skladnik-0.5.1/src/main.cpp000066400000000000000000000056231457640636700155640ustar00rootroot00000000000000/* SPDX-FileCopyrightText: 1998-2000 Anders Widell SPDX-License-Identifier: GPL-2.0-or-later */ #include "MainWindow.h" #include "version.h" #include #include #include #include #include #include int main(int argc, char **argv) { #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps); #endif QApplication app(argc, argv); KLocalizedString::setApplicationDomain("skladnik"); KAboutData aboutData(QStringLiteral("skladnik"), i18n("Skladnik"), QStringLiteral(SKLADNIK_VERSION_STRING), i18n("The japanese warehouse keeper game"), KAboutLicense::GPL, i18n("(c) 1998 Anders Widell \n(c) 2012 Lukasz Kalamlacki"), QString(), QStringLiteral("https://apps.kde.org/skladnik")); aboutData.addAuthor(i18n("Shlomi Fish"), i18n("For porting to Qt5/KF5 and doing other cleanups"), QStringLiteral("shlomif@cpan.org"), QStringLiteral("https://www.shlomifish.org/")); aboutData.addAuthor(i18n("Lukasz Kalamlacki"), i18n("For rewriting the original ksokoban game from kde3 to kde4"), QStringLiteral("kalamlacki@gmail.com"), QStringLiteral("https://sourceforge.net/projects/ksokoban/")); aboutData.addAuthor(i18n("Anders Widell"), i18n("For writing the original ksokoban game"), QStringLiteral("awl@hem.passagen.se"), QStringLiteral("http://hem.passagen.se/awl/ksokoban/")); aboutData.addCredit(i18n("David W. Skinner"), i18n("For contributing the Sokoban levels included in this game"), QStringLiteral("sasquatch@bentonrea.com"), QStringLiteral("http://users.bentonrea.com/~sasquatch/")); KAboutData::setApplicationData(aboutData); app.setWindowIcon(QIcon::fromTheme(QStringLiteral("skladnik"))); QCommandLineParser parser; parser.addPositionalArgument(QStringLiteral("URL"), i18n("Level collection file to load."), QStringLiteral("[URL}")); aboutData.setupCommandLine(&parser); parser.process(app); aboutData.processCommandLine(&parser); auto *widget = new MainWindow(); widget->show(); const QStringList positionalArguments = parser.positionalArguments(); if (!positionalArguments.isEmpty()) { const QString currentPath = QDir::currentPath(); const QUrl levelFileUrl = QUrl::fromUserInput(positionalArguments.first(), currentPath, QUrl::AssumeLocalFile); widget->openURL(levelFileUrl); } return app.exec(); } skladnik-0.5.1/src/org.kde.skladnik.desktop000066400000000000000000000032171457640636700206540ustar00rootroot00000000000000[Desktop Entry] Name=Skladnik Name[ca]=Skladnik Name[ca@valencia]=Skladnik Name[eo]=Skladnik Name[es]=Skladnik Name[eu]=Skladnik Name[fr]=Skladnik Name[it]=Skladnik Name[ka]=Skladnik Name[nl]=Skladnik Name[pt_BR]=Skladnik Name[sl]=Skladnik Name[sv]=Skladnik Name[tr]=Skladnik Name[uk]=Skladnik Name[x-test]=xxSkladnikxx GenericName=Sokoban Game GenericName[ar]=لعبة حارس المستودع GenericName[bs]=Sokoban igra GenericName[ca]=Joc del Sokoban -encarregat del magatzem- GenericName[ca@valencia]=Joc de Sokoban -encarregat del magatzem- GenericName[cs]=Hra Sokoban GenericName[de]=„Sokoban“-Spiel GenericName[en_GB]=Sokoban Game GenericName[eo]=Sokoban-ludo GenericName[es]=Juego Sokoban GenericName[et]=Sokobani mäng GenericName[eu]=«Sokoban» jokoa GenericName[fi]=Sokoban-peli GenericName[fr]=Jeu de Sokoban GenericName[ga]=Cluiche Sokoban GenericName[gl]=Xogo do Sokoban GenericName[hu]=Sokoban játék GenericName[it]=Gioco Sokoban GenericName[ka]=თამაში Sokoban GenericName[ko]=소코반 게임 GenericName[mr]=सोकोबान खेळ GenericName[nl]=Sokoban-spel GenericName[nn]=Sokoban-spel GenericName[pl]=Gra Sokoban GenericName[pt]=Jogo de Sokoban GenericName[pt_BR]=Jogo Sokoban GenericName[ro]=Joc Sokoban GenericName[sk]=Hra Sokoban GenericName[sl]=Igra KSokoban GenericName[sv]=Sokoban-spel GenericName[tr]=Sokoban Oyunu GenericName[uk]=Гра, подібна до гри Сокобан GenericName[x-test]=xxSokoban Gamexx GenericName[zh_TW]=推箱子遊戲 DocPath=skladnik/index.html Exec=skladnik -qwindowtitle %c Icon=skladnik Terminal=false Type=Application X-KDE-StartupNotify=true Categories=Qt;KDE;Game;StrategyGame; skladnik-0.5.1/src/org.kde.skladnik.metainfo.xml000066400000000000000000000316771457640636700216170ustar00rootroot00000000000000 org.kde.skladnik CC0-1.0 GPL-2.0+ Skladnik Skladnik Skladnik Skladnik Skladnik Skladnik Skladnik Skladnik Skladnik Skladnik Skladnik Skladnik Skladnik Skladnik Skladnik xxSkladnikxx

Sokoban Game لعبة أمين المستودع Joc del Sokoban Joc de Sokoban Hra Sokoban „Sokoban“-Spiel Sokoban Game Sokoban-ludo Juego Sokoban «Sokoban» jokoa Sokoban-peli Jeu Sokoban Xogo do Sokoban Gioco Sokoban თამაში Sokoban 소코반 게임 Sokoban-spel Sokoban-spel Gra Sokoban Jogo Sokoban Jogo Sokoban Hra Sokoban Igra Sokoban Sokoban-spel Sokoban Oyunu Гра «Сокобан» xxSokoban Gamexx

Skladnik is an implementation of the Japanese warehouse keeper game “sokoban”.

El Skladnik és una implementació del joc japonès «Sokoban» de l'encarregat de magatzem.

Skladnik és una implementació del joc japonés «Sokoban» de l'encarregat de magatzem.

Skladnik estas realigo de la japana magazenistoludo “sokoban”.

Skladnik es una implementación del juego japonés del encargado de almacén «sokoban».

Skladnik, "Sokoban" biltegizainaren joko japoniarraren inplementazio bat da.

Skladnik est une implémentation du jeu japonais « sokoban » de gardien d'entrepôt.

Skladnik è un'implementazione del gioco giapponese del magazziniere «sokoban».

Skladnik - იაპონური საწყობის უფროსის თამაშიზე, სოკობანზეა დაფუძნებული.

Skladnik is een implementatie van het Japanse magazijn-beheerder-spel “sokoban”.

Skladnik é uma implementação do jogo de almoxarife japonês “sokoban”.

Skladnik je izvedba japonske igre skrbnika skladišča "sokoban".

Skladnik är en implementering av det japanska lagerarbetarspelet "sokoban”.

Skladnik, Japon depo bekçisi oyunu "Sokoban"ın bir uyarlamasıdır.

Skladnik — реалізація японської гри у комірника, «сокобан».

xxSkladnik is an implementation of the Japanese warehouse keeper game “sokoban”.xx

The idea is that you are a warehouse keeper trying to push crates to their proper locations in a warehouse. The problem is that you cannot pull the crates or step over them. If you are not careful, some of the crates can get stuck in wrong places and/or block your way.

الفكرة هي أنك أمين مستودع تحاول دفع الصناديق إلى مواقعها الصحيحة في المستودع. التحدي أنه لا يمكنك سحب الصناديق أو تخطيها. إذا لم تكن حريصًا؛ فقد تعلق بعض الصناديق في أماكن خاطئة و/أو تسد طريقك.

La idea és que sou un encarregat de magatzem que intenta empènyer caixes a les seves ubicacions apropiades en un magatzem. El problema és que no podeu estirar les caixes ni trepitjar-les. Si no teniu cura, algunes de les caixes podrien quedar atrapades en llocs equivocats o bloquejar el camí.

La idea és que sou un encarregat de magatzem que intenta empényer caixes a les seues ubicacions apropiades en un magatzem. El problema és que no podeu estirar les caixes ni trepitjar-les. Si no teniu cura, algunes de les caixes podrien quedar atrapades en llocs equivocats o bloquejar el camí.

The idea is that you are a warehouse keeper trying to push crates to their proper locations in a warehouse. The problem is that you cannot pull the crates or step over them. If you are not careful, some of the crates can get stuck in wrong places and/or block your way.

La ideo estas, ke vi estas magazenisto provanta puŝi kestojn al siaj taŭgaj lokoj en magazeno. La problemo estas, ke vi ne povas tiri la kestojn aŭ paŝi super ili. Se vi ne zorgas, iuj el la kestoj povas blokiĝi en malĝustaj lokoj kaj/aŭ bloki vian vojon.

La idea es que usted es el encargado de un almacén que trata de empujar las cajas al lugar adecuado dentro del almacén. El problema es que no puede tirar de las cajas ni pasar por encima de ellas. Si no tiene cuidado, algunas de las cajas pueden atascarse en lugares equivocados bloqueando su camino.

Biltegian kaxak haien kokaleku egokietara bultzatzen saiatu behar duen biltegizaina zara. Arazoa da, kaxak ezin dituzula bultzatu ez eta haien gainean ipini ere. Kontuz ibiltzen ez bazara, kaxa batzuk ez dagozkien lekuetan atera ezinik gera daitezke eta/edo zure ibilbidea oztopa dezakete.

Ideana on, että olet varastotyöntekijä, joka yrittää työntää laatikot oikeille paikoilleen varastossa. Ongelmana on, ettei laatikoita voi vetää tai niiden yli astua. Ellet ole huolellinen, jotkin laatikoista jäävät jumiin vääriin paikkoihin ja mahdollisesti estävät kulkusi.

L'idée est que vous êtes un magasinier d'entrepôt, essayant de pousser des caisses à leurs emplacements corrects dans un entrepôt. Le problème est que vous ne pouvez pas tirer les caisses ni les enjamber. Si vous ne faites pas attention, certaines caisses peuvent se coincer au mauvais endroit et / ou vous bloquer le passage.

A idea é que estás a gardar un almacén, intentando empurrar as caixas ao seu lugar correcto no almacén. O problema é que non podes tirar das caixas ou pasar por riba delas. Se non tes coidado, algunhas caixas poderían quedar atrapadas en lugares incorrectos ou bloquearte o camiño.

L'idea è che sei un magazziniere che cerca di spingere le casse nelle loro posizioni corrette in un magazzino. Il problema è che non puoi tirare le casse o scavalcarle. Se non stai attento, alcune casse possono rimanere bloccate in posti sbagliati e/o bloccarti la strada.

თამაშის აზრია: თქვენ საწყობის მმართველი ბრძანდებით, რომლებიც ყუთებს თავის ადგილას ალაგებს. პრობლემა ისაა, რომ თქვენ ყუთს ვერ გამოქაჩავთ და ვერ გადააბიჯებთ. თუ ფრთხილად არ იქნებით, ზოგიერთი ყუთი შეიძლება არასწორ ადგილას დაგივარდეთ და გზა ჩაგიხერგოთ.

게임 플레이어는 창고지기 역할을 하며 각각 상자를 창고의 올바른 위치로 옮겨야 합니다. 상자는 밀어서만 옮길 수 있으며 상자를 당기거나 건너뛸 수는 없습니다. 주의하지 않으면 일부 상자가 잘못된 곳에 갇히거나 길을 막을 수도 있습니다.

Het idee is dat u een magazijnbeheerder bent die kratten op hun juiste locaties in een magazijn plaatst. Het probleem is dat u niet aan de kratten kan trekken of erover kan stappen. Als u niet voorzichtig bent, dan kunnen kratten in de verkeerde plaats vast komen te zitten en/of uw weg blokkeren.

Du spelar ein lagersjef som må flytta kassar til rett plass ved å skubba dei. Men du kan ikkje hala dei eller klatra over dei, så viss du ikkje passar på, kan dei verta setjande fast på feil stad, eller dei kan verta ståande og sperra vegen for deg.

Chodzi w tym o to, że jesteś magazynierem próbującym przesunąć skrzynie na ich właściwe miejsce w magazynie. Kłopotliwym jest to, że nie możesz ciągnąć skrzyń, czy na nie wchodzić. Jeśli nie będziesz ostrożny, to niektóre ze skrzyń mogą utknąć w złych miejscach i/lub zablokować ci drogę.

A ideia é que você é um arrumador de armazéns que tenta empurrar os caixotes para o seu local correcto num armazém. O problema é que não pode puxar os caixotes ou passar por cima deles. Se não tiver cuidado, alguns dos caixotes podem ficar presos em lugares errados e/ou bloquear a sua passagem.

A ideia é que você seja um almoxarife tentando empurrar caixotes para seus locais apropriados em um depósito. O problema é que você não pode puxar as caixas ou passar por cima delas. Se você não tomar cuidado, algumas das caixas podem ficar presas em lugares errados e/ou bloquear seu caminho.

Ideja je, da ste skrbnik skladišča, ki poskuša potiskati zaboje na ustrezne lokacije v skladišču. Težava je v tem, da ne morete zabojev vleči ali stopati čez njih. Če niste previdni, lahko nekateri zaboji obtičijo na napačnih mestih in/ali blokirajo vašo pot.

Idén är att du är en lagerarbetare som försöker knuffa lådor till sina riktiga platser i en lagerbyggnad. Problemet är att du inte kan dra lådorna eller kliva över dem. Om du inte är försiktig kan några av lådorna fastna på fel platser och/eller blockera vägen för dig.

Buradaki fikir, kasaları bir depodaki uygun yerlerine itmeye çalışan bir depo bekçisi olmanızdır. Sorun şu ki, kasaları çekemiyor veya üzerinden geçemezsiniz. Dikkatli olmazsanız bazı sandıklar yanlış yerlere takılabilir ve/veya yolunuzu kapatabilir.

Ви граєте за комірника, якому треба перетягти скриньки на складі у відповідні їм місця. Проблема полягає у тому, що ви не можете тягнути скриньки або переступати через них. Якщо ви не будете обережними, деякі скриньки може бути заблоковано у невідповідних місцях і/або вони можуть заблокувати вам дорогу.

xxThe idea is that you are a warehouse keeper trying to push crates to their proper locations in a warehouse. The problem is that you cannot pull the crates or step over them. If you are not careful, some of the crates can get stuck in wrong places and/or block your way.xx

https://apps.kde.org/skladnik https://bugs.kde.org/enter_bug.cgi?format=guided&product=skladnik https://docs.kde.org/?application=skladnik https://www.kde.org/community/donations/?app=skladnik&source=appdata https://cdn.kde.org/screenshots/skladnik/skladnik.png Game StrategyGame KDE skladnik org.kde.skladnik.desktop skladnik-0.5.1/src/skladnik.qrc000066400000000000000000000003701457640636700164350ustar00rootroot00000000000000 skladnikui.rc levels/level.data skladnik-0.5.1/src/skladnikui.rc000066400000000000000000000035701457640636700166170ustar00rootroot00000000000000 &Game &Animation &Bookmarks &Set Bookmark &Go to Bookmark skladnik-0.5.1/themes/000077500000000000000000000000001457640636700146245ustar00rootroot00000000000000skladnik-0.5.1/themes/CMakeLists.txt000066400000000000000000000017141457640636700173670ustar00rootroot00000000000000install( FILES skladnik_classic.svg skladnik_classic.desktop #skladnik_classic_preview.png DESTINATION ${KDE_INSTALL_DATADIR}/skladnik/themes ) function(install_classic_sprite_image) cmake_parse_arguments(ARGS "" "SOURCE_DIR;NAMESPACE" "IMAGES" ${ARGN}) foreach(image ${ARGS_IMAGES}) install(FILES "${ARGS_SOURCE_DIR}/${image}" RENAME "${ARGS_NAMESPACE}${image}" DESTINATION ${KDE_INSTALL_DATADIR}/skladnik/themes ) endforeach() endfunction() install_classic_sprite_image( NAMESPACE "skladnik_classic_" SOURCE_DIR "${CMAKE_SOURCE_DIR}/src/images" IMAGES goal.png man.png object.png saveman.png treasure.png halfstone_1.png halfstone_2.png halfstone_3.png halfstone_4.png stone_1.png stone_2.png stone_3.png stone_4.png stone_5.png stone_6.png starfield.png ) skladnik-0.5.1/themes/skladnik_classic.desktop000066400000000000000000000024021457640636700215160ustar00rootroot00000000000000[KGameTheme] Name=Classic Name[ca]=Clàssic Name[ca@valencia]=Clàssic Name[cs]=Klasický Name[eo]=Klasika Name[es]=Clásico Name[eu]=Klasikoa Name[fi]=Perinteinen Name[fr]=Classique Name[gl]=Clásico Name[it]=Classico Name[ka]=კლასიკური Name[ko]=고전 Name[nl]=Klassiek Name[pl]=Klasyczny Name[pt_BR]=Clássico Name[sl]=Klasična Name[sv]=Klassiskt Name[tr]=Klasik Name[uk]=Класична Name[x-test]=xxClassicxx Description=Classic theme Description[ca]=Tema clàssic Description[ca@valencia]=Tema clàssic Description[cs]=Klasický motiv Description[eo]=Klasika etoso Description[es]=Tema clásico Description[eu]=Gai klasikoa Description[fi]=Perinteinen teema Description[fr]=Thème classique Description[gl]=Tema clásico. Description[it]=Tema classico Description[ka]=კლასიკური თემა Description[ko]=고전 테마 Description[nl]=Klassiek thema Description[pl]=Wystrój klasyczny Description[pt_BR]=Tema clássico Description[sl]=Klasična tema Description[sv]=Klassiskt tema Description[tr]=Klasik tema Description[uk]=Класична тема Description[x-test]=xxClassic themexx VersionFormat=1 Author=Anders Widell AuthorEmail=awl@hem.passagen.se Type=SVG FileName=skladnik_classic.svg Preview=skladnik_classic_preview.png skladnik-0.5.1/themes/skladnik_classic.svg000066400000000000000000000050311457640636700206450ustar00rootroot00000000000000