mirror of
https://github.com/aseprite/aseprite.git
synced 2025-03-20 04:20:49 +00:00
Moved everything to trunk
This commit is contained in:
commit
57e978b102
136
AUTHORS.txt
Normal file
136
AUTHORS.txt
Normal file
@ -0,0 +1,136 @@
|
||||
===================================
|
||||
AUTHOR
|
||||
===================================
|
||||
|
||||
David A. Capello <dacap@users.sourceforge.net>
|
||||
Programmer, design, graphics, tester, and the maintainer of the package.
|
||||
Releases the DOS, Windows, and source distributions.
|
||||
|
||||
===================================
|
||||
THANKFULNESS
|
||||
===================================
|
||||
|
||||
Some people don't contribute to this project in a directly way but
|
||||
their work are indispensable:
|
||||
------------------------------------------------------------------
|
||||
|
||||
Álvaro González: For the other routine to generate optimised
|
||||
palettes (used in old versions of ASE).
|
||||
|
||||
Angelo Mottola: For the routines to load/save JPEG files with
|
||||
JPGalleg (alternative use instead of libjpeg).
|
||||
|
||||
Ben Davis: For his optimised palette generation routine.
|
||||
|
||||
Billy Biggs and Lauris Kaplinski: For the help with the alpha
|
||||
blending routines.
|
||||
|
||||
Csaba Biegl: For his ellipse routine in the GRX library (used in old
|
||||
versions of ASE).
|
||||
|
||||
David Turner, Robert Wilhelm, and Werner Lemberg: For the FreeType
|
||||
project.
|
||||
<http://www.freetype.org/>
|
||||
|
||||
Derek Liauw Kie Fa and Robert J Ohannessian for 2xSaI.
|
||||
|
||||
DJ Delorie: For the DJGPP port to DOS of the GNU software.
|
||||
<http://www.delorie.com/djgpp/>
|
||||
|
||||
Elias Pschernig: For his excelent bresenham ellipse algorithm and to
|
||||
report some nasty keyboard bugs. And his patch to load/save GIF files.
|
||||
|
||||
Elver Loho: For port ASE to BeOS.
|
||||
|
||||
Gary Oberbrunner: For his code to quantize RGB images with ordered
|
||||
dither method.
|
||||
|
||||
Javier Gonzalez: For his AllegroFont wrapper.
|
||||
|
||||
Jens Ch. Restemeier: For GFLI, his code to save FLI files is just
|
||||
"amazing".
|
||||
|
||||
Jerry Coffin and HenkJan Wolthuis: For the hash table routines.
|
||||
|
||||
Johan Halmén and Anders "Trezker" Andersson for mapgen.
|
||||
<http://edu.loviisa.fi/~lg/jh/mapgen/>
|
||||
<http://www.angelfire.com/art/dumlesoft/Projects.html>
|
||||
|
||||
Jordan Russell and Martijn Laan: For Inno Setup.
|
||||
<http://www.innosetup.com/>
|
||||
|
||||
Juraj Michalek: For the support to ASE in his portal.
|
||||
<http://games.linux.sk/>
|
||||
|
||||
Matthew Leverton: For his Allegro portal.
|
||||
<http://www.allegro.cc/>
|
||||
|
||||
Max Maischein: For the documents about various file formats of the
|
||||
Animator and Animator Pro.
|
||||
|
||||
Mike Haaland: For his documentation about the FLI/FLC, COL, PIC, and
|
||||
MSK files format.
|
||||
|
||||
Paúl Andrés Jiménez (Ceniza): For his help in the translation of
|
||||
FULL-SCREEN.txt document.
|
||||
|
||||
Peter Wang: For his Red Pixel II game, it was very helpful for the
|
||||
scripting routines.
|
||||
<http://redpixel.sourceforge.net/>
|
||||
|
||||
Raph Levien: For his excelent work with the libart library.
|
||||
<http://www.levien.com/libart/>
|
||||
|
||||
Richard M. Stallman: For the Free Software Foundation, GNU and
|
||||
Emacs, and everyone who contributed with free software.
|
||||
<http://www.fsf.org/>
|
||||
<http://www.gnu.org/>
|
||||
<http://www.emacs.org/>
|
||||
|
||||
Robert Höhne: For the RHIDE enviroment.
|
||||
<http://www.lanet.lv/~pavenis/rhide.html>
|
||||
|
||||
Salvador Eduardo Tropea: For the SETEdit editor (although I don't
|
||||
use it anymore, but the first months in Linux without it would be
|
||||
impossible :-)
|
||||
<http://setedit.sourceforge.net/>
|
||||
|
||||
Shawn Hargreaves: And hundreds of people who helped in the Allegro
|
||||
library.
|
||||
<http://alleg.sourceforge.net/>
|
||||
|
||||
Spencer Kimball and Peter Mattis: And a lot of people who
|
||||
contributed with The GIMP and GTK+. I personally "borrow" source
|
||||
code for differents task in the program.
|
||||
<http://www.gimp.org/>
|
||||
<http://www.gtk.org/>
|
||||
|
||||
The Independent JPEG Group: For the JPEG library to load/save Jpeg
|
||||
files.
|
||||
<ftp://ftp.uu.net/graphics/jpeg/>
|
||||
|
||||
The Open Group: For XFree86.
|
||||
<http://www.x.org/>
|
||||
|
||||
Waldemar Celes, Roberto Ierusalimschy, and Luiz Henrique de
|
||||
Figueiredo: For their excelent work with Lua.
|
||||
<http://www.lua.org/>
|
||||
|
||||
And thanks for all the ideas and bugs report of:
|
||||
Álvaro González (Kronoman X)
|
||||
Angelo Mottola
|
||||
Ben Davis (entheh)
|
||||
Carl Olsson
|
||||
Christer Sandberg
|
||||
Elias Pschernig (networm)
|
||||
Elio Cuevas Gómez
|
||||
Emmanuel Rousseau (God_Cells)
|
||||
Hernán Echegoyemberry
|
||||
Jonathan Taylor
|
||||
Jorge Ramírez Flores
|
||||
Juraj Michalek
|
||||
Manuel De Miguel Moreno
|
||||
Mateusz Czaplinski
|
||||
Nathan Smith (whitedoor)
|
||||
Peter Wang (tjaden)
|
||||
Robert J Ohannessian (Bob)
|
340
COPYING
Normal file
340
COPYING
Normal file
@ -0,0 +1,340 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 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 Library 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.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
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 a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 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
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Library General
|
||||
Public License instead of this License.
|
57
FAQ.txt
Normal file
57
FAQ.txt
Normal file
@ -0,0 +1,57 @@
|
||||
========================================
|
||||
Frequently Asked Questions
|
||||
========================================
|
||||
|
||||
1. ¿How I can add new convolutions matrices?
|
||||
2. ¿How I can change the screen layout?
|
||||
3. ¿How I can load my palette in ASE that are in a 768 bytes file?
|
||||
4. ¿How I can add a new frame?
|
||||
|
||||
|
||||
1. ¿How I can add new convolutions matrices?
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Add a "convmatr.usr" file in the configuration directory
|
||||
("ase/data" for Windows or "~/.ase" for Unix) with the same format
|
||||
of "convmatr.def" (you'll find it in the data directory too). When
|
||||
ASE start it loads all "convmatr.usr", "convmatr.gen", and
|
||||
"convmatr.def" files ("user", "generated", and "default" matrices
|
||||
respectively).
|
||||
|
||||
|
||||
2. ¿How I can change the screen layout?
|
||||
----------------------------------------------------------------------
|
||||
|
||||
If you want to try other screen layout (other organization for the
|
||||
controls (widgets) in the main window), you can modify the
|
||||
"data/jids/main.jid" file. I recommend you make a backup copy so
|
||||
you can back to the original layout. Also, there are some
|
||||
alternative layouts already, to try them, you should modify:
|
||||
|
||||
<window noborders desktop text="Main Window" name="main_window">
|
||||
|
||||
By:
|
||||
|
||||
<window noborders desktop text="Main Window" name="main_window_old">
|
||||
|
||||
And then (for example) modify some name="main_window_alt1" to
|
||||
name="main_window".
|
||||
|
||||
|
||||
3. ¿How I can load my palette in ASE that are in a 768 bytes file?
|
||||
----------------------------------------------------------------------
|
||||
|
||||
If you palette is in a raw binary file of 768 bytes, the entries
|
||||
are in order RGB and the range of each entry is 0-63, you can
|
||||
rename it with the .col extension, and load like an original .col
|
||||
Animator file.
|
||||
|
||||
|
||||
4. ¿How I can add a new frame?
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Press <Ctrl+Shift+N> (or "Frame/New" menu).
|
||||
|
||||
|
||||
----------------------------------------------------------------------
|
||||
Copyright (C) 2003-2005 by David A. Capello
|
103
HACKING.txt
Normal file
103
HACKING.txt
Normal file
@ -0,0 +1,103 @@
|
||||
======================================================================
|
||||
ASE Hacking Notes
|
||||
======================================================================
|
||||
|
||||
Add a new file to compile
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Remember that if you add a new file to compile, it should have a
|
||||
different name of any other file name in the source code tree. Also,
|
||||
you must add it in the ASE_SOURCES variable of the makefile.lst.
|
||||
|
||||
|
||||
Add a new load/save file type
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Look at the "src/file/" directory. You have two options to make a
|
||||
new load/save routines:
|
||||
- Use the sequence API (src/file/file.h);
|
||||
- Use directly the sprite API (src/raster/sprite.h);
|
||||
|
||||
The sequence API should be used only for images that don't support
|
||||
animation and that are plain images (don't have layers), like BMP,
|
||||
PCX, TGA, or JPEG format. This is useful to handle sequences of
|
||||
bitmaps like spr00.pcx, spr01.pcx, spr02.pcx automatically (you
|
||||
don't worry about that, you just write the code to load/save one
|
||||
file).
|
||||
|
||||
In the other hand, you should use directly the raster API
|
||||
(src/raster/) if your format support animation or layers, like FLI,
|
||||
or GIF formats.
|
||||
|
||||
|
||||
Hook palette's changes
|
||||
----------------------------------------------------------------------
|
||||
|
||||
With the routines (from "src/modules/palette.c"):
|
||||
|
||||
void hook_palette_changes(void (*proc)(void));
|
||||
void unhook_palette_changes(void (*proc)(void));
|
||||
|
||||
The hooks are installed in the tail (it's important see the order of
|
||||
modules in "src/core/modules.c").
|
||||
|
||||
Then when you use "set_current_palette", the routine
|
||||
"call_palette_hooks" will call the hooks from the first to the last
|
||||
one.
|
||||
|
||||
|
||||
Update the icon of buttons when the bitmap is destroyed in palette changes
|
||||
----------------------------------------------------------------------
|
||||
|
||||
NOTE: This is only for buttons with a BITMAP
|
||||
from "get_gfx()" (src/modules/gfx.c).
|
||||
|
||||
When the palette changes, all graphics from "src/modules/gfx.c" are
|
||||
regenerated. If one button was using one of these BITMAP, that will
|
||||
be a problem, because that pointer is pointing to a freed memory
|
||||
area.
|
||||
|
||||
To update this icon pointer, you can use this is routine:
|
||||
|
||||
void add_gfxicon_to_button(JWidget button, int gfx_id, int icon_align);
|
||||
|
||||
This routine save in "user_data[3]" of "button" the "gfx_id", and
|
||||
when the palette changes, the icon will be restored making a:
|
||||
|
||||
jbutton_set_icon(button, get_gfx(gfx_id));
|
||||
|
||||
Also, the routine will hook the destroy signal to remove
|
||||
automatically this button from the "list of buttons to fixup"
|
||||
("icon_buttons" in "src/modules/gui.c").
|
||||
|
||||
|
||||
Reload the fonts
|
||||
----------------------------------------------------------------------
|
||||
|
||||
The routine "reload_default_font" in "src/modules/gui.c" reloads the
|
||||
font indicated in the configuration string "/options/default_font",
|
||||
also if it doesn't exist, the routine will try to load the
|
||||
"data/fonts/default.pcx" font (finally, ASE uses the Allegro font if
|
||||
no one was found).
|
||||
|
||||
This routine uses the "_ji_set_font_of_all_widgets" to change the
|
||||
"text_font" property of EVERY widget.
|
||||
|
||||
|
||||
Undo
|
||||
----------------------------------------------------------------------
|
||||
|
||||
NOTE.1: Every undo action must be added in the "sprite.undo"
|
||||
structure before to do the operation in the sprite. E.g:
|
||||
|
||||
undo_remove_layer(sprite.undo, sprite.layer);
|
||||
layer_remove_layer(sprite.layer.parent, sprite.layer);
|
||||
|
||||
The only exception for this is "undo_add_image":
|
||||
|
||||
stock_add_image(stock, image);
|
||||
undo_add_image(undo, stock, image);
|
||||
|
||||
|
||||
----------------------------------------------------------------------
|
||||
Copyright (C) 2003-2005 by David A. Capello
|
31
INSTALL.txt
Normal file
31
INSTALL.txt
Normal file
@ -0,0 +1,31 @@
|
||||
===================================
|
||||
COMPILATION
|
||||
===================================
|
||||
|
||||
Before compile, you must configure what ASE should use, what
|
||||
libraries are available, etc. You can run the fix.sh script, answer
|
||||
some questions and done: the main makefile is created. Or you could
|
||||
edit the makefile.cfg, uncomment CONFIGURED=1 and uncomment the
|
||||
necessary options, and then run "makefile -f makefile.lnx".
|
||||
|
||||
|
||||
===================================
|
||||
INSTALLATION
|
||||
===================================
|
||||
|
||||
After compilation, you have two options:
|
||||
|
||||
1) Running ASE from its source directory.
|
||||
|
||||
2) Install ASE in the directory that you specify in the fix.sh question:
|
||||
"Where do you want install ASE by default?" (generally "/usr/local")
|
||||
(in the makefile.cfg, it's the DEFAULT_PREFIX variable)
|
||||
|
||||
Run "make install" (it only works in Unix like systems)
|
||||
|
||||
|
||||
===================================
|
||||
UNINSTALLATION
|
||||
===================================
|
||||
|
||||
Run "make uninstall".
|
19
LEGAL.txt
Normal file
19
LEGAL.txt
Normal file
@ -0,0 +1,19 @@
|
||||
===================================
|
||||
LEGAL ISSUES
|
||||
===================================
|
||||
|
||||
- ASE is distributed under GPL license.
|
||||
- Allegro and Jinete are gift-ware (doesn't have restrictions).
|
||||
- ALFONT is under LGPL terms.
|
||||
- quantize.c is copyright by Ben Davis (you need his authorization to
|
||||
use his code in your own program).
|
||||
- quantize2.c is distributed under the MIT License.
|
||||
- Lua-5.0 is distributed under the MIT license.
|
||||
- GIMP is distributed under GPL license.
|
||||
- GLib and GTK+ are distributed under LGPL license.
|
||||
- GFLI-1.3 is distributed under GPL license.
|
||||
- Libart 2.3.3 is distributed under LGPL license.
|
||||
- Libintl is distributed under LGPL license.
|
||||
- The FreeType Project is distributed under FTL license.
|
||||
|
||||
You can find all these licenses in the "docs/licenses" directory.
|
255
NEWS-es.txt
Normal file
255
NEWS-es.txt
Normal file
@ -0,0 +1,255 @@
|
||||
===================================
|
||||
NOTICIAS
|
||||
===================================
|
||||
|
||||
0.5
|
||||
---
|
||||
|
||||
- Se agregaron funcionalidades solicitadas por Carl Olsson:
|
||||
+ mejor soporte cuando "Ajustar a Grilla" está activado para
|
||||
las herramientas de dibujo que se controlan con cajas (como
|
||||
rectángulo, elipse, etc).
|
||||
+ al manejar una selección flotante (al pegar el portapapeles)
|
||||
la opción "Ajustar a Grilla" tiene efecto sobre el movimiento
|
||||
de la imagen.
|
||||
+ agregado movimiento a nivel de subpixel para los cursores con
|
||||
demasiado zoom en el editor, para saber dónde estamos dentro
|
||||
del pixel.
|
||||
- Soporte para grabar archivos GIF por defecto.
|
||||
- Arreglada la compilación con Allegro 4.2.1 (y arreglado un bug en
|
||||
Allegro con key_shifts).
|
||||
- Ahora el estado ventana/pantalla-completa es guardado por
|
||||
la aplicación (gracias a Manuel De Miguel Moreno por reportarlo).
|
||||
|
||||
0.4
|
||||
---
|
||||
|
||||
- Modo consola ya no existe.
|
||||
- Cambiado el atajo de teclado para el Editor de Película: tecla TAB.
|
||||
- Nueva característica: Cada cuadro de animación tiene duración.
|
||||
- Nuevo Editor de Paleta (tecla F4).
|
||||
- Ahora los sprites soportan multiples paletas: Cada cuadro puede
|
||||
tener su propia palette de colores.
|
||||
- Agregado soporte para cargar archivos GIF (por Elias Pschernig).
|
||||
- Agregado una combo-box al cuadro de selección de archivos para
|
||||
manejar bookmarks ("Favoritos").
|
||||
- Hay rotación!!! Ahora puede rotar y escalar al pegar desde el
|
||||
clipboard (portapapeles).
|
||||
|
||||
0.3.1
|
||||
-----
|
||||
|
||||
- Arreglada la creación de archivos de sesión cuando una excepción
|
||||
(error fatal) ocurre bajo Windows.
|
||||
- Agregados los ficheros es.po y tips.es.
|
||||
|
||||
0.3
|
||||
---
|
||||
|
||||
- Agregado la administración de sesiones (si ocurre algún fallo la
|
||||
sesión es guardada automáticamente).
|
||||
- Se agregó una herramienta para dibujar texto (finalmente).
|
||||
- Más documentación y tips.
|
||||
- Mejorado el proceso para agregar cuadros de animación.a
|
||||
- Se arreglaron algunos bugs importantes.
|
||||
- Se agregó la utilidad mapgen (código original por Johan Halmén y
|
||||
Anders Andersson).
|
||||
- Soporte para el lenguage Español (ahora funciona en Windows también).
|
||||
- Código interno mejorado (principalmente las partes de la GUI, y los
|
||||
nombres de las funciones).
|
||||
|
||||
0.2.4
|
||||
-----
|
||||
|
||||
- Undo más estable: con límites y sin el extraño comportamiento del
|
||||
rehacer-después-de-sobreescribir-el-deshacer.
|
||||
- Nueveo filtro por mediana para reducir el ruido de las imágenes.
|
||||
- Actualizado el soporte alternativo para leer y escribir archivos
|
||||
JPEG mediante la librería JPGalleg 2.3, gracias a Angelo Mottola por esto.
|
||||
- Se arreglaron algunos problemas con el teclado: la tecla Alt ya no puede
|
||||
ser utilizada para atajos del teclado. Alguna combinaciones cambiaron:
|
||||
+ <~> a <`> (abre el editor de película)
|
||||
+ <Ctrl+/> a <?> (enmascara por color)
|
||||
+ <Ctrl+~> a <Ctrl+4> (cierra el editor actualx)
|
||||
- Agregado Cortar, Copiar, Pegar!
|
||||
- Agregado AutoCrop (antes conocido como Trim).
|
||||
|
||||
0.2.3
|
||||
-----
|
||||
|
||||
- Se arregló la rutina para grabar archivos JPG.
|
||||
- Arregladas y mejoradas varias partes de la GUI.
|
||||
|
||||
0.2.2
|
||||
-----
|
||||
|
||||
- Se agregó algo de documentación para escribir scripts en Lua.
|
||||
- El Editor de Película (The Film Editor) fue mejorado.
|
||||
- Arreglados algunos errores con el cursor gráfico, algunons problemas
|
||||
con el teclado y varios bugs menores.
|
||||
- Nuevos tips con texto e imágenes. Esto será muy útil para los
|
||||
principiantes.
|
||||
- La función del papel cebolla (onionskin) está lista.
|
||||
- Agregado (de modo opcional) el fusionado de colores ordenado para
|
||||
dibujar imágenes RGB en 8 bpp.
|
||||
- Nuevas acciones: Merge Down, New Frame, Copy Frame, cambiar Image
|
||||
Type!, Load Script File.
|
||||
- Optimizado la velocidad de dibujado en modo alicatado (tiled).
|
||||
|
||||
0.2.1
|
||||
-----
|
||||
|
||||
- Arreglada la versión de Windows: el spray y algunos errores
|
||||
guardando nombres de ficheros en el archivo de configuración.
|
||||
- Agregado soporte libintl y la traducción al Español del programa
|
||||
(sólo para Linux, pero tengo planes de hacer esto andar en Windows).
|
||||
- Más soporte undo: insertar/remover capas y modificaciones en la
|
||||
máscara.
|
||||
- Los filtros Matriz de Convolución y Curva de Color están de vuelta.
|
||||
- Se agregaron más operaciones básicas (con soporte de undo): aplanar
|
||||
capas, duplicar capa, duplicar sprite, flip horizontal/vertical,
|
||||
recortar cuadro.
|
||||
- Nuevo formato .ASE (en estado alpha, por favor pruébelo!).
|
||||
- Rutinas para script más simples: ahora hay una capa de rutinas de
|
||||
alto nivel (fáciles de usar y comprender), y un juego de rutinas de
|
||||
bajo nivel (para scripts internos o trabajos más específicos).
|
||||
- Se removió todo el código relacionado con interpolación entre
|
||||
key-frames (cuadros claves): sí, luego de estar pensando un largo
|
||||
rato, esto hace muy complicada la edición de la animación (así la
|
||||
"elegante interpolación spline" fue eliminada).
|
||||
- El editor de sprites fue optimizado para ser más rápido al mover el
|
||||
scroll.
|
||||
- El Editor de Película (The Film Editor) está casi listo para
|
||||
controlar capas y cuadros.
|
||||
- Arreglados los filtros usando máscaras con capas desplazadas.
|
||||
- Soporte para aplicar filtros a varias cuadros/capas al mismo tiempo.
|
||||
- Diferentes disposiciones de la pantalla fueron agregadas en main.jid
|
||||
(mire FAQ.txt para saber como cambiar entre ellas).
|
||||
- La barra de herramientas está devuelta!
|
||||
|
||||
0.2
|
||||
---
|
||||
|
||||
- Arreglados varios bugs.
|
||||
- Soporte opcional para archivos JPEG con la librería JPGalleg 2.0.
|
||||
- Agregados modos de dibujado: Opaque (opaco/normal), Glass
|
||||
(vidrio/transparente), Semi (patrón).
|
||||
- Agregados los tipos de brochas: Circle (círculo), Square (cuadrado),
|
||||
Line (línea).
|
||||
- Implementado un sistema de "paleta-falsa" para hacer al GUI
|
||||
utilizable con cualquier paleta de colores (principalmente para
|
||||
evitar las situaciones de "pantalla negra" al abrir sprites con
|
||||
paletas "feas").
|
||||
- El editor de la paleta de colores tiene mejoras (como la posibilidad
|
||||
de mover los colores seleccionados).
|
||||
- El archivo "menus" cambió un poco. Algunos atajos del teclado se
|
||||
modificaron (y otro nuevos se agregaron), puede verlos en el archivo
|
||||
"docs/QuickHelp.html". De todos modos, intenté dejar la
|
||||
compatibilidad con los comandos más usados.
|
||||
- Soporte completo de scripts con Lua-5.0. Los sprites y el GUI son
|
||||
controlables desde los mismos scripts, para darle una idea, varias
|
||||
acciones en los menús están programadas directamente con scripts.
|
||||
- Control de selección completo (regiones de máscara). Puede
|
||||
seleccionar areas irregulares (agregar, substraer, cruzar, y
|
||||
seleccionar por color), guardar y cargarlas en el viejo formato .MSK
|
||||
del Animator Pro.
|
||||
- Soporte para editores multiples. Ahora puede editar una imágen con
|
||||
zoom y ver los resultados en otros editores (actualizados en tiempo
|
||||
real). - Nuevo núcleo de para controlar gráficos. Todo lo
|
||||
relacionado a sprite/imágenes/capas/propiedades/key fue
|
||||
reprogramado. El cambio más importante, se hizo al nivel de
|
||||
propiedad/keyframes (cada propiedad puede tener interpolación lineal
|
||||
o con curvas beziers, además de una bandera de finalización de la
|
||||
curva para hacer movimientos circulares o patrones de movimientos).
|
||||
- Nuevo GUI. Tanto los gráficos como el código interno fueron
|
||||
reestructurados completamente, hice una nueva librería de GUI:
|
||||
Jinete.
|
||||
|
||||
0.1.2
|
||||
-----
|
||||
|
||||
- Nuevo efecto RLE Gaussian Blur (desde el código de The GIMP).
|
||||
- Los modos de mezcla (blender modes) están devuelta: Normal,
|
||||
Multiply, Screen, Overlay, Hard Light, Darken, Lighten, Addition,
|
||||
Subtract, Difference, Hue, Saturation, Color, Luminosity.
|
||||
- Mejor GUI: con colores, ahora debería de ser menos aburrido :-)
|
||||
- Agregado un diálogo para seleccionar *cualquier* modo de video
|
||||
gráfico (esto podría ser útil para modos de video con ventanas).
|
||||
- Nuevamente se volvió a los makefiles al estilo Allegro. Bueno,
|
||||
bueno, el estilo GNU fue el peor cambio en ASE, pero ahora está
|
||||
arreglado :-)
|
||||
- Eliminada la capacidad de cargar archivos .DLL o .so de
|
||||
plug-ins. Luego de semanas pensándolo, decidí por sacar esta
|
||||
característica ya que es muy complicado de hacer un buen sistema
|
||||
para agregar nuevos plug-ins con la implementación del menú
|
||||
actual. La mayoría de usuarios son solo "usuarios" y no copiarán el
|
||||
plug-in y modificarán luego el archivo "menus" para agregar el
|
||||
script que llame a la acción del plug-in. Además, esto me salva de
|
||||
miles de dolores de cabezas :-)
|
||||
- Agregada la aplicación de filtros multiples: Ahora, se puede aplicar
|
||||
los efectos a cada capa, a cada cuadro de animación, o ambos.
|
||||
- Agregado la lista de archivos usados recientemente ("Recent Files").
|
||||
- Nuevas rutinas en los scripts para manejar "paths" (rutas).
|
||||
- Nuevo tipo de selección: "shrink", para encoger la selección a los
|
||||
límites de la capa bitmap actual.
|
||||
- Nueva acción "trim_sprite".
|
||||
|
||||
0.1.0
|
||||
-----
|
||||
|
||||
- Eliminada la herramienta `move' para mover capas (era redundante).
|
||||
- Nueva interface para cargar Plug-Ins en forma dinámica (DLL, .so).
|
||||
- Nuevo soporte completo para cargar/guardar archivos JPEG (RGB/grayscale):
|
||||
a través de la Independent JPEG Group's JPEG Library.
|
||||
- Nuevas acciones:
|
||||
+ trim_layer_bitmap: recorta la capa actual por los límites de la selección.
|
||||
+ merge_down: para mezclar la capa activa con la próxima.
|
||||
+ make_undo_animation: para crear una animación desde la operaciones
|
||||
para deshacer (para ver la progresión del gráfico).
|
||||
+ undo_history: para deshacer/rehacer varias operaciones a la vez.
|
||||
+ color_curve: para hacer efectos de conversión de color pixel por pixel.
|
||||
- Mejorado el comando `Reemplazar Color' (con `tolerancia' y `vista previa').
|
||||
- Una nueva barra-de-capas optimizada, para manejar sobre todo
|
||||
las propiedades y los cuadros claves.
|
||||
- Varias cosas reescritas a Plug-Ins:
|
||||
+ los formatos de archivos,
|
||||
+ las acciones de los menús (también, ahora estas acciones pueden ser
|
||||
utilizadas desde los "guiones" o "scripts").
|
||||
- Reemplazado el viejo sistema de "profundidad de color" por el nuevo
|
||||
"tipo de imagen". Desde ahora, una imagen puede ser:
|
||||
RGB (rojo, verde, azul), Grayscale (escala de grises), o Indexed
|
||||
(256 colores).
|
||||
- Nueva Libreria ASE, con un nuevo diseño para manejar:
|
||||
imágenes, capas, bitmaps, propiedades, cuadros claves, etc.
|
||||
- Código fuente al estilo GNU: con configure.in, Makefile.am, etc.
|
||||
|
||||
0.0.7
|
||||
-----
|
||||
|
||||
- Nuevas rutinas para "guionado" (script): request(), apply_filter(),
|
||||
load_sprite(), y save_sprite().
|
||||
- Soporte para cargar archivos FLI/FLC y guardar FLC. Sí! Ahora con ASE
|
||||
puede hacer animaciones FLC con un buen rendimiento de compresión.
|
||||
- Agregada la posibilidad de cargar/guardar secuencias de bitmaps:
|
||||
como por ejemplo ani00.pcx, ani01.pcx, ani02.pcx, etc.
|
||||
- Más funcionalidad para `deshacer'. Reescribí todo el sistem de `undo'
|
||||
por completo.
|
||||
- Nueva herramienta de selección rectangular. Ahora puede cortar, copiar,
|
||||
pegar, y borrar.
|
||||
- Nueva compresión RLE para 8 bpp en los archivos .ase.
|
||||
- Soporte para cargar ficheros .ase de las versiones `0.0.6' y
|
||||
`0.0.7 CVS (fases importante)': Le recomiendo que actualice todos sus
|
||||
archivos .ase a la nueva versión `0.0.7' release.
|
||||
- Nuevas propiedades para los cuadros claves (keyframes): ahora cada keyframe
|
||||
tiene su propia posición y valor alpha, con esto puede hacer animaciones de
|
||||
objetos moviendo sólo los keyframes (todos los cuadros intermedios serán
|
||||
calculados automáticamente).
|
||||
- Ahora el programa recuerda la configuración (a través de `ase.cfg').
|
||||
- Agregado un nuevo modo para dibujar "mosaicado" (tiled).
|
||||
- Nuevo modo de edición en pantalla completa. Con la barra de capas
|
||||
(layer-bar) a la que se le puede cambiar el tamaño.
|
||||
- Agregada la opción para dibujar un cuadro previo en modo transparente.
|
||||
- Eliminada la propiedad de `fondo' de las capas: desde ahora, una capa
|
||||
será transparente siempre. Con esto son arreglados una tonelada de problemas
|
||||
con las rutinas para cargar/guardar archivos de las versiones anteriores.
|
||||
- Nuevo comando `reload_menus' (para recargar los menús).
|
306
NEWS.txt
Normal file
306
NEWS.txt
Normal file
@ -0,0 +1,306 @@
|
||||
===================================
|
||||
NEWS
|
||||
===================================
|
||||
|
||||
0.5
|
||||
---
|
||||
|
||||
- Added features-requested by Carl Olsson:
|
||||
+ better "snap to grid" support for box-like tools (rectangle,
|
||||
ellipse, etc.).
|
||||
+ floating selection now "snap to grid" also.
|
||||
+ added a subpixel movement for zoomed-cursors in the editor, to
|
||||
known where we are inside the pixel.
|
||||
- Better support for the mouse wheel and middle button in the
|
||||
sprite-editor (to scroll and zoom).
|
||||
- GIF support to save file fully supported by default.
|
||||
- Fixed compilation with Allegro 4.2.3 SVN (and fixed a bug in Allegro
|
||||
with key_shifts).
|
||||
- Now the full-screen or windowed state is remembered (thanks
|
||||
to Manuel De Miguel Moreno to report it).
|
||||
|
||||
0.4
|
||||
---
|
||||
|
||||
- Removed the console mode.
|
||||
- Changed Film Editor shortcut: TAB key.
|
||||
- New feature: Each animation frame has duration.
|
||||
- New Palette Editor (F4 key).
|
||||
- Now sprites support multiple palettes: Each frame can has its own
|
||||
color palette.
|
||||
- Added support to load GIF files (by Elias Pschernig).
|
||||
- Added a combobox to file-selection to handle the bookmarks.
|
||||
- Added rotation!!! Now you can scale and rotate what you paste from
|
||||
the clipboard.
|
||||
|
||||
0.3.1
|
||||
-----
|
||||
|
||||
- Fixed the creation of session files when an exception (fatal error)
|
||||
happens in Windows.
|
||||
- Added es.po and tips.es files.
|
||||
|
||||
0.3
|
||||
---
|
||||
|
||||
- Added session manager (if the program crashes the session is saved
|
||||
automatically).
|
||||
- Added a tool to draw text (finally).
|
||||
- More documentation and tips.
|
||||
- Improved the frame adding process.
|
||||
- Fixed important bugs.
|
||||
- Added a mapgen utility (original code by Johan Halmén and Anders
|
||||
Andersson).
|
||||
- Spanish language support (now works in Windows too).
|
||||
- Internal code improved (mainly GUI parts, and functions names).
|
||||
|
||||
0.2.4
|
||||
-----
|
||||
|
||||
- More stable undo: with limit and without the strange
|
||||
redo-after-overwrite-undo feature.
|
||||
- New median filter to despeckle images.
|
||||
- Updated alternative support to load/save JPEG files with JPGalleg 2.3
|
||||
library, thanks to Angelo Mottola for this.
|
||||
- Fixed problems with non-US keyboards: the Alt key can't be used for
|
||||
shortcuts. Some combinations changes:
|
||||
+ <~> to <`> (open film editor)
|
||||
+ <Ctrl+/> to <?> (mask by color)
|
||||
+ <Ctrl+~> to <Ctrl+4> (close current editor)
|
||||
- Added Cut, Copy, Paste!
|
||||
- Added AutoCrop (before known as Trim).
|
||||
|
||||
0.2.3
|
||||
-----
|
||||
|
||||
- Fixed routine to save JPG files.
|
||||
- Fixed and improved various parts of GUI.
|
||||
|
||||
0.2.2
|
||||
-----
|
||||
|
||||
- Added some documentation to write Lua scripts.
|
||||
- Film Editor was improved.
|
||||
- Fixed errors with the graphics cursor, some keyboard problems, and
|
||||
various minor bugs.
|
||||
- New tips with text and images. This will be very useful for
|
||||
beginners.
|
||||
- Onionskin feature is done.
|
||||
- Added (optional) ordered dithering to render RGB images in 8 bpp.
|
||||
- New actions: Merge Down, New Frame, Copy Frame, change Image Type!,
|
||||
Load Script File.
|
||||
- Optimized the drawing speed with tiled mode.
|
||||
|
||||
0.2.1
|
||||
-----
|
||||
|
||||
- Fixed in Windows version: spray and some errors saving file-names in
|
||||
the configuration file.
|
||||
- Added libintl support and the Spanish translation (only for Linux,
|
||||
but I have planned make this usable in Windows).
|
||||
- More undo support: insert/remove layers and mask modifications.
|
||||
- Filters Convolution Matrix and Color Curve are back.
|
||||
- Added more basic operations (with undo support): flatten layers,
|
||||
duplicate layer, duplicate sprite, horizontal/vertical flip, crop
|
||||
frame.
|
||||
- New .ASE format (in alpha status, please test it!).
|
||||
- Easy script routines: now are a high-level layer of routines (easy
|
||||
to use and understand), and the low-level routine's set (for
|
||||
internal or more specific works).
|
||||
- Removed all the interpolation stuff between key-frames: yes, after
|
||||
thinking, this make too hard the animation edition (so the "fancy
|
||||
spline interpolation" was removed).
|
||||
- Optimized the editor's speed in scroll movements.
|
||||
- The Film Editor is almost done for layers and frames handle.
|
||||
- Fixed filters using mask with displaced layers.
|
||||
- Support to apply filters to various frames/layers at the same time.
|
||||
- Added differents screen layouts in main.jid (see FAQ.txt to see how
|
||||
change between them).
|
||||
- The tool bar is back!
|
||||
|
||||
0.2
|
||||
---
|
||||
|
||||
- Fixed a lot of bugs.
|
||||
- Added optional support for JPEG with JPGalleg 2.0 library.
|
||||
- Added draw mode: Opaque (normal), Glass (transparent), Semi
|
||||
(pattern).
|
||||
- Added brush types: Circle, Square, Line.
|
||||
- Implemented a fake-palette system to make the GUI usable with any
|
||||
sprite palette (mainly to avoid "black-screen" situations when open
|
||||
sprites with ugly palettes).
|
||||
- The palette editor has more improvements (like the possibility to
|
||||
move the selection range).
|
||||
- "menus" file modified a bit. Some keyboard bindings have change
|
||||
(and new ones added), you can see the "docs/QuickHelp.html" file for
|
||||
more help. Anyway, I try to leave the compability in the more used
|
||||
commands.
|
||||
- Full scripting support with Lua-5.0. Sprites and GUI controllable
|
||||
from same scripts, to give you an idea, various of menus actions are
|
||||
programmed directly with scripts.
|
||||
- Complete selection handle (mask regions). You can select irregular
|
||||
areas (add, subtract, intersect, by color), save and load them in
|
||||
the .MSK Animator Pro format.
|
||||
- Multiple editors. Now you will be able to edit an image with zoom
|
||||
and see the results in other editors (updated in real-time).
|
||||
- New Gfx-core. All sprite/image/layer/prop/key stuff was
|
||||
reprogrammed. The more big change, was to property/keyframe level
|
||||
(the properties can be with lineal or spline interpolation, also,
|
||||
have a ending flag to make circular movements or patterns of movement).
|
||||
- New GUI. The look and the internal code was reestructured
|
||||
completelly, I made a new GUI library: Jinete (rider).
|
||||
|
||||
0.1.2
|
||||
-----
|
||||
|
||||
- New RLE Gaussian Blur effect (from The GIMP source code).
|
||||
- Blender modes are back!: Normal, Multiply, Screen, Overlay,
|
||||
Hard Light, Darken, Lighten, Addition, Subtract, Difference, Hue,
|
||||
Saturation, Color, Luminosity.
|
||||
- Better the GUI look: With colors, this should be less boring :-)
|
||||
- Added a graphics selection dialog where you can specify any
|
||||
resolution (this could be useful for windowed modes).
|
||||
- Back again to the good-and-peaceful-allegro-like makefiles. Ok, ok,
|
||||
the GNU style was the worst change in ASE, but now is fixed :-)
|
||||
- Removed the .DLL or .so capability for plug-ins. After some weeks of
|
||||
thinking, I decide to strip off this feature because is too hard to
|
||||
do a good system to attach new plug-ins with the current menu
|
||||
implementation. The most user are just "user" and don't will copy
|
||||
the plug-in and modify the `menus' to add a new entry with a little
|
||||
script-string to call the new plug-in action. Also, this save me a
|
||||
lot of headaches :-)
|
||||
- Added multiple filter application: Now, you can apply effects to
|
||||
every layer, to every animation frame, or both.
|
||||
- Added the "Recent Files" list.
|
||||
- A complete set of scripts routines to handle paths.
|
||||
- New selection type: "shrink", to shrink the selection to the current
|
||||
layer bitmap bounds.
|
||||
- New "trim_sprite" action.
|
||||
|
||||
0.1.0
|
||||
-----
|
||||
|
||||
- Removed the `move' tool to displace layers (it was redundant).
|
||||
- New interface to load Plug-Ins in a dynamic way (DLL, .so).
|
||||
- Complete new support for JPEG files (RGB/grayscale) load/save:
|
||||
athwart the Independent JPEG Group's JPEG Library.
|
||||
- New actions:
|
||||
+ trim_layer_bitmap: trim the current layer to the selection bounds.
|
||||
+ merge_down: to merge the current layer with the next one.
|
||||
+ make_undo_animation: to make an animation from the undo
|
||||
operations (to see all the progression of the graphics).
|
||||
+ undo_history: to undo/redo various operations.
|
||||
+ color_curve: to make color conversion effects pixel by pixel.
|
||||
- Improved the `Color Replace' command (with `tolerance' and `preview').
|
||||
- A new optimized layer-bar, to handle all the keyframe/properties stuff.
|
||||
- Various things rewritten to Plug-Ins:
|
||||
+ file formats,
|
||||
+ actions for menus (also, now these actions can be used from scripts).
|
||||
- Replaced the old `color depth' system to the new `image types':
|
||||
From now, an image can be: RGB, Grayscale, or Indexed type.
|
||||
- New ASE Library, with a complete new design to handle:
|
||||
images, layers, bitmaps, properties, keyframes, etc.
|
||||
- Source code to GNU style: with configure.in, Makefile.am, etc.
|
||||
|
||||
0.0.7
|
||||
-----
|
||||
|
||||
- New scripts routines: request(), apply_filter(), load_sprite(),
|
||||
and save_sprite().
|
||||
- Support to load FLI/FLC and to save FLC files. Yes! Now with ASE
|
||||
you can make FLC animations with a good compression performance.
|
||||
- Added the posibility to load/save sequences of bitmaps: like ani00.pcx,
|
||||
ani01.pcx, ani02.pcx, etc.
|
||||
- More undo functionality. I re-wrote the entire `undo' system.
|
||||
- New rectangular-selection tool: Now you can cut, copy, paste and clear.
|
||||
- New RLE compression for 8 bpp in .ase files.
|
||||
- Support to load .ase files of `0.0.6' and `0.0.7 CVS (important stage)':
|
||||
I recommend you upgrade all your .ase files to the `0.0.7 release' version.
|
||||
- New properties for keyframes: now each keyframe has its position and alpha,
|
||||
with this you can make animations of objects moving only the keyframes
|
||||
(all the intermediate frames will be calculate automatically).
|
||||
- Now the program remember the configuration (through `ase.cfg').
|
||||
- Added a new draw-tiled mode.
|
||||
- New full-screen editing mode. With resizable layer-bar.
|
||||
- Added an options to draw the previous frame in transparent mode.
|
||||
- Removed the `background' properties of layers: from now, a layer
|
||||
will be transparent (masked-blitting) ever. With this are fixed
|
||||
a lot of problems with load/save routines in old versions.
|
||||
- New `reload_menus' command.
|
||||
|
||||
0.0.6
|
||||
-----
|
||||
|
||||
- I still don't recommend you the .ase format (just for temporary usage):
|
||||
there are planes to change it.
|
||||
- Scripting capability athwart Lua language (http://www.lua.org/):
|
||||
now, you can make automatic tasks programming your own scripts
|
||||
(included some scripts as example).
|
||||
- Independent `alpha' (global transparency) and `blender-mode' for
|
||||
each layer (like in GIMP and Adobe Photoshop).
|
||||
- Improved the layer/frame-control:
|
||||
Now add/remove/move/copy layer and frames are really-very-easy
|
||||
with the new layer-panel (like in Macromedia Flash).
|
||||
- More easy tool-configuration.
|
||||
- New drawing tool: real-pencil, with a unique and original algorithm.
|
||||
- Removed all the use of the Allegro GUI.
|
||||
- New original (and ugly) GUI look:
|
||||
now, the colors are in harmony for the eyes.
|
||||
|
||||
0.0.5
|
||||
-----
|
||||
|
||||
- More facilities to handle colors with different `alpha'.
|
||||
- New animation control: need test (see `bugs.txt' to report errors).
|
||||
- Optimized the color-selection dialog: now you can make gammas
|
||||
between *four* colors.
|
||||
- Added a `preview' in the apply-filter dialog.
|
||||
- New improved gui system (for the users and for the developers).
|
||||
- New `tile' and `reload' option for the filters.
|
||||
- New view-tile option in tool-menu (for make tileable patterns).
|
||||
|
||||
0.0.4
|
||||
-----
|
||||
|
||||
- Modificable draw properties:
|
||||
thickness, alpha color, spray random factor, and spray radius.
|
||||
- Undo support for all tools.
|
||||
- Multiple drawing tools support:
|
||||
pixel, pencil, fill, spray, line, rectangle, and ellipse;
|
||||
- New improved layer control.
|
||||
- A lot of optimizations in the status bar.
|
||||
- New duplicate sprite option.
|
||||
- New session manager, for load and save your work. Other utility of this,
|
||||
is if the program crash for any reason, it auto-backups your data.
|
||||
- Bad news: the old .ase format is incompatible with the new one:
|
||||
I recommend you don't save in .ase until the 0.1 release.
|
||||
- New "visible" property for hide and show the layers.
|
||||
- New change color-depth function.
|
||||
- Added a set-gfx-mode option in the system-menu.
|
||||
- New duplicate layer support.
|
||||
|
||||
0.0.3
|
||||
-----
|
||||
|
||||
- New .ase format (for save the layers).
|
||||
- More keyboard shorcuts (with a new `keys.txt').
|
||||
- New layers operations: insert, move and remove.
|
||||
- RGBA (alpha channel) bitmaps support.
|
||||
- New filter capability, with some examples of filters.
|
||||
- An incredible new way to create dialogs (for programmers only).
|
||||
- More "Windows friendly" text files.
|
||||
- New optimized status bar.
|
||||
- New improved look of the GUI.
|
||||
|
||||
0.0.2
|
||||
-----
|
||||
|
||||
- New "infinite" Undo & Redo support.
|
||||
- Some importants bug fixed.
|
||||
|
||||
0.0.1
|
||||
-----
|
||||
|
||||
- One tool: interactive line.
|
||||
- Color selection support.
|
||||
- Poor palette modification capability.
|
180
README-es.txt
Normal file
180
README-es.txt
Normal file
@ -0,0 +1,180 @@
|
||||
|
||||
ase -- allegro-sprite-editor: the ultimate sprites factory
|
||||
Copyright (C) 2001-2005, 2007 por David A. Capello
|
||||
------------------------------------------------------------------------
|
||||
Mire el fichero "AUTHORS.txt" para la lista completa de colaboradores
|
||||
|
||||
|
||||
===================================
|
||||
COPYRIGHT
|
||||
===================================
|
||||
|
||||
Este programa es software libre. Puede redistribuirlo y/o modificarlo bajo
|
||||
los términos de la Licencia Pública General GNU según es publicada por la
|
||||
Free Software Foundation, bien de la versión 2 de dicha Licencia o bien
|
||||
(según su elección) de cualquier versión posterior.
|
||||
|
||||
Este programa es distribuido con la esperanza de que sea útil, pero SIN
|
||||
GARANTIA ALGUNA, incluso sin la garantía implícita de COMERCIALIZACIÓN o
|
||||
IDONEIDAD PARA UN PROPÓSITO PARTICULAR. Véase la Licencia Pública General
|
||||
de GNU para más detalles.
|
||||
|
||||
Debería haber recibido una copia de la Licencia Pública General junto con
|
||||
este programa. Si no ha sido así, escriba a la Free Software Foundation,
|
||||
Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
|
||||
===================================
|
||||
INTRODUCCIÓN
|
||||
===================================
|
||||
|
||||
ASE es un programa especialmente diseñado para crear sprites
|
||||
animados con mucha facilidad y que luego puedan ser utilizados en un
|
||||
video juego. Este programa le permitirá crear desde imágenes
|
||||
estáticas, a personajes con movimiento, texturas, patrones, fondos,
|
||||
logos, paletas de colores, y cualquier otra cosa que se le ocurra.
|
||||
|
||||
|
||||
===================================
|
||||
CARACTERÍSTICAS
|
||||
===================================
|
||||
|
||||
ASE le ofrece la posibilidad de:
|
||||
|
||||
- Editar sprites con capas y cuadros de animación.
|
||||
|
||||
- Editar imágenes RGB (con Alpha), escala de grises (también con
|
||||
Alpha), e imágenes con paleta de 256 colores o "indexadas".
|
||||
|
||||
- Controlar paletas de 256 colores completamente.
|
||||
|
||||
- Aplicar filtros para diferentes efectos (matriz de convolución,
|
||||
curva de color, etc.).
|
||||
|
||||
- Cargar y guardar sprites en los formatos .BMP, .PCX, .TGA, .JPG,
|
||||
.GIF, .FLC, .FLI, .ASE (el formato especial de ASE).
|
||||
|
||||
- Utilizar secuencia de bitmaps (ani00.pcx, ani01.pcx, etc.) para
|
||||
guardar las animaciones.
|
||||
|
||||
- Herramientas de dibujo (puntos, pincel, brocha real, relleno, línea,
|
||||
rectángulo, elipse), modos de dibujo (opaco, vidrio), y tipos de
|
||||
brochas (círculo, cuadrado, línea).
|
||||
|
||||
- Soporte de máscaras (selecciones).
|
||||
|
||||
- Soporte para deshacer/rehacer cada operación.
|
||||
|
||||
- Soporte para editores multiples.
|
||||
|
||||
- Dibujar con una rejilla personalizable.
|
||||
|
||||
- Único modo de dibujo alicatado para dibujar patrones y texturas en
|
||||
segundos.
|
||||
|
||||
- Guardar y cargar sesiones completas de trabajo (en ficheros `.ses').
|
||||
|
||||
- Capacidad de hacer `scripts' (guiones) con el lenguaje Lua
|
||||
(http://www.lua.org).
|
||||
|
||||
|
||||
===================================
|
||||
CONFIGURACIÓN
|
||||
===================================
|
||||
|
||||
En plataformas Windows y DOS:
|
||||
|
||||
ase.cfg - Configuración
|
||||
data/matrices - Matrices de convolución
|
||||
data/menus - Menús
|
||||
data/scripts/* - Scripts o "guiones"
|
||||
|
||||
En plataformas Unix, el archivo de configuratión es ~/.aserc, y los
|
||||
archivos de datos (en data/) son buscados en estos lugares (por
|
||||
orden de preferencia):
|
||||
|
||||
$HOME/.ase/
|
||||
/usr/local/share/ase/
|
||||
data/
|
||||
|
||||
Mire "src/core/dirs.c" para más información.
|
||||
|
||||
|
||||
===================================
|
||||
MODO VERBOSO
|
||||
===================================
|
||||
|
||||
Cuando ejecuta "ase" con el parámetro "-v", en las plataformas
|
||||
Windows y DOS los errores son escritos en STDERR y un archivo
|
||||
"logXXXX.txt" en el directorio "ase/" es creado con el mismo
|
||||
contenido.
|
||||
|
||||
En otras plataformas (como Unix), ese archivo de registro no es
|
||||
creado, ya que la utilización de STDERR es mucho más común.
|
||||
|
||||
Mire "src/core/core.c" para más información.
|
||||
|
||||
|
||||
===================================
|
||||
ACTUALIZACIONES
|
||||
===================================
|
||||
|
||||
Los últimos paquetes tanto binarios como el de código fuente, los
|
||||
puede encontrar desde:
|
||||
|
||||
http://sourceforge.net/project/showfiles.php?group_id=20848
|
||||
|
||||
También, si desea obtener la última versión en desarrollo de ASE desde el
|
||||
repositorio CVS, la cual por sierto es la más propensa a tener errores pero
|
||||
es la que más actualizada está con respecto a las herramientas, la puede
|
||||
explorar archivo por archivo en esta dirección:
|
||||
|
||||
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/ase
|
||||
|
||||
O la puede bajar completamente a su disco con un programa que controle CVS,
|
||||
de la siguiente forma:
|
||||
|
||||
1) Debemos ingresar al repositorio de forma anónima (cuando le pregunte
|
||||
por la contraseña, solamente presione <enter>):
|
||||
|
||||
cvs -d :pserver:anonymous@cvs.ase.sourceforge.net:/cvsroot/ase login
|
||||
|
||||
2) Realizamos el primer checkout, lo que significa que sacaremos una
|
||||
copia "fresca" de ASE:
|
||||
|
||||
cvs -z3 -d :pserver:anonymous@cvs.ase.sourceforge.net:/cvsroot/ase checkout gnuase
|
||||
|
||||
3) Una vez esto, cada vez que quiera actualizar la copia local con la
|
||||
del repositorio, deberá ejecutar en el directorio gnuase/:
|
||||
|
||||
cvs update -Pd
|
||||
|
||||
AVISO: Cuando obtenga la versión CVS, no borre los directorios CVS
|
||||
ni el contenido dentro de ellos, ya que es para uso interno del
|
||||
programa cvs.
|
||||
|
||||
|
||||
===================================
|
||||
CRÉDITOS
|
||||
===================================
|
||||
|
||||
Mire el archivo "AUTHORS.txt".
|
||||
|
||||
|
||||
===================================
|
||||
INFORMACIÓN DE CONTACTO
|
||||
===================================
|
||||
|
||||
Para pedir ayuda, reportar bugs, mandar parches, etc., utilice la
|
||||
lista de correo ase-help:
|
||||
|
||||
ase-help@lists.sourceforge.net
|
||||
http://lists.sourceforge.net/lists/listinfo/ase-help/
|
||||
|
||||
Para más información visite la página oficial del proyecto:
|
||||
|
||||
http://ase.sourceforge.net
|
||||
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2001-2005 por David A. Capello
|
175
README.txt
Normal file
175
README.txt
Normal file
@ -0,0 +1,175 @@
|
||||
|
||||
ase -- allegro-sprite-editor: the ultimate sprites factory
|
||||
Copyright (C) 2001-2005, 2007 by David A. Capello
|
||||
--------------------------------------------------------------
|
||||
See the "AUTHORS.txt" file for a complete list of contributors
|
||||
|
||||
|
||||
===================================
|
||||
COPYRIGHT
|
||||
===================================
|
||||
|
||||
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., 59
|
||||
Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
|
||||
===================================
|
||||
INTRODUCTION
|
||||
===================================
|
||||
|
||||
ASE is a program specially designed with facilities to create
|
||||
animated sprites that can be used in some video game. This program
|
||||
let you create from static images, to characters with movement,
|
||||
textures, patterns, backgrounds, logos, color palettes, and any
|
||||
other thing that you think.
|
||||
|
||||
|
||||
===================================
|
||||
FEATURES
|
||||
===================================
|
||||
|
||||
ASE gives to you the possibility to:
|
||||
|
||||
- Edit sprites with layers and animation frames.
|
||||
|
||||
- Edit RGB (with Alpha), Grayscale (with Alpha also) and Indexed
|
||||
images.
|
||||
|
||||
- Control 256 color palettes completely.
|
||||
|
||||
- Apply filters for different color effects (convolution matrix,
|
||||
color curve, etc.).
|
||||
|
||||
- Load and save sprites in these formats: .BMP, .PCX, .TGA, .JPG,
|
||||
.GIF, .FLC, .FLI, and .ASE (ASE's special format).
|
||||
|
||||
- Use bitmap's sequences (ani00.pcx, ani01.pcx, etc.) to save
|
||||
animations.
|
||||
|
||||
- Drawing tools (dots, pencil, real-brush, floodfill, line, rectangle,
|
||||
ellipse), drawing modes (opaque, glass), and brushes types (circle,
|
||||
square, line).
|
||||
|
||||
- Mask (selections) support.
|
||||
|
||||
- Undo/Redo support for every operation.
|
||||
|
||||
- Multiple editor support.
|
||||
|
||||
- Draw with a customizable grid.
|
||||
|
||||
- Unique tiled drawing mode to draw patterns and textures in seconds.
|
||||
|
||||
- Save and load entire work's sessions (in `.ses' files).
|
||||
|
||||
- Scripting capabilities with Lua language (http://www.lua.org).
|
||||
|
||||
|
||||
===================================
|
||||
CONFIGURATION FILES
|
||||
===================================
|
||||
|
||||
In Windows and DOS platforms:
|
||||
|
||||
ase.cfg - Configuration
|
||||
data/matrices - Convolutions matrices
|
||||
data/menus - Menus
|
||||
data/scripts/* - Scripts
|
||||
|
||||
In Unix platforms, the configuration file is ~/.aserc, and the data/
|
||||
files are searched in these locations (in order of preference):
|
||||
|
||||
$HOME/.ase/
|
||||
/usr/local/share/ase/
|
||||
data/
|
||||
|
||||
See "src/core/dirs.c" for more information.
|
||||
|
||||
|
||||
===================================
|
||||
VERBOSE MODE
|
||||
===================================
|
||||
|
||||
When run "ase" with "-v" parameter, in Windows and DOS platforms the
|
||||
errors will be written in STDERR and a "logXXXX.txt" file in "ase/"
|
||||
directory is created with the same content.
|
||||
|
||||
In others platforms (like Unix), that log file isn't created,
|
||||
because the use of STDERR is more common.
|
||||
|
||||
See "src/core/core.c" for more information.
|
||||
|
||||
|
||||
===================================
|
||||
UPDATES
|
||||
===================================
|
||||
|
||||
The last packages of binaries and source code, you can found them
|
||||
from:
|
||||
|
||||
http://sourceforge.net/project/showfiles.php?group_id=20848
|
||||
|
||||
Also, if you want to get the last development version of ASE from
|
||||
the CVS repository, which is the version more prone to have errors,
|
||||
but is the more updated in the tools area, you can browse it file by
|
||||
file in this address:
|
||||
|
||||
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/ase
|
||||
|
||||
Or you can download it completelly to your disk with a program which
|
||||
control CVS, as follow-up:
|
||||
|
||||
1) We must input to the repository in anonymous form (when you be
|
||||
asked for the password, just press <enter>):
|
||||
|
||||
cvs -d :pserver:anonymous@cvs.ase.sourceforge.net:/cvsroot/ase login
|
||||
|
||||
2) We make the first checkout, which means that we fetch a "fresh"
|
||||
copy of ASE:
|
||||
|
||||
cvs -z3 -d :pserver:anonymous@cvs.ase.sourceforge.net:/cvsroot/ase checkout gnuase
|
||||
|
||||
3) Then, whenever you want update your copy with the repository
|
||||
one, you will must execute in the gnuase/ directory:
|
||||
|
||||
cvs update -Pd
|
||||
|
||||
WARNING: When you obtain the CVS version, don't remove the CVS
|
||||
directories, they are for exclusive use of the cvs program.
|
||||
|
||||
|
||||
===================================
|
||||
CREDITS
|
||||
===================================
|
||||
|
||||
See the "AUTHORS.txt" file.
|
||||
|
||||
|
||||
===================================
|
||||
CONTACT INFO
|
||||
===================================
|
||||
|
||||
To request help, report bugs, send patches, etc., you can use the
|
||||
ase-help mailing list:
|
||||
|
||||
ase-help@lists.sourceforge.net
|
||||
http://lists.sourceforge.net/lists/listinfo/ase-help/
|
||||
|
||||
For more information, visit the official page of the project:
|
||||
|
||||
http://ase.sourceforge.net
|
||||
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Copyright (C) 2001-2005 by David A. Capello
|
79
TODO.txt
Normal file
79
TODO.txt
Normal file
@ -0,0 +1,79 @@
|
||||
High priority work
|
||||
------------------
|
||||
|
||||
- GUI using double buffering.
|
||||
- add support for PNG files.
|
||||
- ver por el nuevo load_font de Allegro.
|
||||
- borrar src/core/config.c
|
||||
- search for XXX (XXXX is supposed to be high priority);
|
||||
- complete palette operations, and palette editor (it needs a slider
|
||||
or something to move between palette changes);
|
||||
- fix undo of big chunks (more than limit):
|
||||
+ how to reproduce the error? create an RGB image of 800x600, add a
|
||||
layer, add a frame, move the new frame to the other layer, undo,
|
||||
there is the bug.
|
||||
- fix quantize (one palette for all frames, one palette per frame)
|
||||
- fix Jinete examples:
|
||||
+ 05fsel
|
||||
+ 09lists
|
||||
+ 20combo
|
||||
+ 21manage
|
||||
- fix "tiled mode" when it's used in frames that doesn't have the same
|
||||
size of the sprite;
|
||||
- add "size" to GUI font (for TTF fonts);
|
||||
- layer movement (between sets) in filmeditor;
|
||||
- quick swap;
|
||||
+ the regions mustn't be overlapped;
|
||||
- options to change the curve type (in curedit.c);
|
||||
- canvas size;
|
||||
+ with the current crop this isn't necessary anymore;
|
||||
+ anyway, it's a good way to expand the graphics
|
||||
- gauss blur;
|
||||
- pal-operations (sort, quantize, gamma by color-curves, etc.);
|
||||
- RGB and HSV effects;
|
||||
- color-curve stock;
|
||||
- fix algo_ellipsefill;
|
||||
- view_tiled() should support animation playback (partial support:
|
||||
with left and right keys).
|
||||
- when press Plus/Minus pad in the editor and the configuration tool
|
||||
window is active, the slider of the "Brush Size" must be updated.
|
||||
- make keys like 9, 0, + Pad, - Pad configurable.
|
||||
- drawing tools:
|
||||
+ real-spray;
|
||||
+ Animator Pro like: oval, petal, rpoly, star, poly, spiral;
|
||||
- Add suppport to load old .ase files:
|
||||
+ I don't think so, nobody tell me "I need load an old .ase file!!!"
|
||||
|
||||
Wish-list
|
||||
---------
|
||||
|
||||
- Mateusz Czaplinski ideas:
|
||||
+ when move selections, will be good the possibility to see relative
|
||||
position from the starting point of movement;
|
||||
+ make drawing the 'marching-ants-rectangle' a prioritaire thing to
|
||||
draw (when move it).
|
||||
- default Windowed mode? (idea from Robert J Ohannessian);
|
||||
+ I don't think so: ASE was, is and will be better in FULL-SCREEN modes;
|
||||
+ Maybe a recordable "card" in the configuration file will be enough;
|
||||
+ See docs/FULLSCR.txt;
|
||||
+ if double buffering is implemented, that is the answer (double buffering
|
||||
with a backbuffer of 320x240 and a realscreen of 640x480).
|
||||
- for Jinete:
|
||||
+ add columns handle to list-boxes;
|
||||
+ add icons handle to all widgets (mainly button, list-items, and labels);
|
||||
+ add tree widget;
|
||||
|
||||
Low priority stuff
|
||||
------------------
|
||||
|
||||
- test routines: load/save_pic_file, load/save_msk_file,
|
||||
load/save_col_file.
|
||||
- fix the fli reader (both Allegro and Gfli): when a frame hasn't
|
||||
chunks means that it's looks like the last frame;
|
||||
- talk with Ben Davis, his "quantize.c" has memory leaks (test it
|
||||
more, I don't think so);
|
||||
- talk with Elias Pschernig, his "do_ellipse_diameter" (algo_ellipse)
|
||||
has a bug with ellipses of some dimensions (I made a test, and a
|
||||
various sizes have errors).
|
||||
- optimize the *_to_allegro image methods (I profiled ASE, and these
|
||||
are the more slow routines in all the program);
|
23
WARNING.txt
Normal file
23
WARNING.txt
Normal file
@ -0,0 +1,23 @@
|
||||
======================================================================
|
||||
ALLEGRO-SPRITE-EDITOR WARNING
|
||||
======================================================================
|
||||
|
||||
THIS PROGRAM IS DISTRIBUTED WITHOUT ANY WARRANTY !!!
|
||||
|
||||
See README.txt and COPYING files for more information.
|
||||
Remember to report "bugs" and errors to:
|
||||
|
||||
ase-help@lists.sourceforge.net
|
||||
|
||||
======================================================================
|
||||
ADVERTENCIA SOBRE ALLEGRO-SPRITE-EDITOR
|
||||
======================================================================
|
||||
|
||||
ESTE PROGRAMA ES DISTRIBUIDO SIN GARANTIA ALGUNA !!!
|
||||
|
||||
Mire los ficheros README-es.txt y COPYING para mayor
|
||||
información. Recuerde reportar errores y "bugs" a:
|
||||
|
||||
ase-help@lists.sourceforge.net
|
||||
|
||||
======================================================================
|
170
all.h
Normal file
170
all.h
Normal file
@ -0,0 +1,170 @@
|
||||
#include "allegro.h"
|
||||
#include "allegro/internal/aintern.h"
|
||||
#include "console/console.h"
|
||||
#include "core/app.h"
|
||||
#include "core/cfg.h"
|
||||
#include "core/core.h"
|
||||
#include "core/dirs.h"
|
||||
#include "core/modules.h"
|
||||
#include "core/shutdown.h"
|
||||
#include "dialogs/about.h"
|
||||
#include "dialogs/canvasze.h"
|
||||
#include "dialogs/colsel.h"
|
||||
#include "dialogs/dfrlen.h"
|
||||
#include "dialogs/dmapgen.h"
|
||||
#include "dialogs/dpaledit.h"
|
||||
#include "dialogs/drawtext.h"
|
||||
#include "dialogs/effect.h"
|
||||
#include "dialogs/filesel.h"
|
||||
#include "dialogs/filmedit.h"
|
||||
#include "dialogs/gfxsel.h"
|
||||
#include "dialogs/maskcol.h"
|
||||
#include "dialogs/maskrepo.h"
|
||||
#include "dialogs/minipal.h"
|
||||
#include "dialogs/options.h"
|
||||
#include "dialogs/playfli.h"
|
||||
#include "dialogs/quick.h"
|
||||
#include "dialogs/repo.h"
|
||||
#include "dialogs/scrsaver.h"
|
||||
#include "dialogs/tips.h"
|
||||
#include "dialogs/toolconf.h"
|
||||
#include "dialogs/vectmap.h"
|
||||
#include "dialogs/viewspr.h"
|
||||
#include "effect/colcurve.h"
|
||||
#include "effect/convmatr.h"
|
||||
#include "effect/effect.h"
|
||||
#include "effect/invrtcol.h"
|
||||
#include "effect/median.h"
|
||||
#include "effect/replcol.h"
|
||||
#include "file/ase.h"
|
||||
#include "file/file.h"
|
||||
#include "file/gif/format.h"
|
||||
#include "file/gif/lzw.h"
|
||||
#include "gfli.h"
|
||||
#include "intl/intl.h"
|
||||
#include "intl/msgids.h"
|
||||
#include "jinete.h"
|
||||
#include "jinete/alert.h"
|
||||
#include "jinete/base.h"
|
||||
#include "jinete/box.h"
|
||||
#include "jinete/button.h"
|
||||
#include "jinete/draw.h"
|
||||
#include "jinete/entry.h"
|
||||
#include "jinete/hook.h"
|
||||
#include "jinete/intern.h"
|
||||
#include "jinete/label.h"
|
||||
#include "jinete/list.h"
|
||||
#include "jinete/listbox.h"
|
||||
#include "jinete/manager.h"
|
||||
#include "jinete/menu.h"
|
||||
#include "jinete/message.h"
|
||||
#include "jinete/rect.h"
|
||||
#include "jinete/region.h"
|
||||
#include "jinete/sep.h"
|
||||
#include "jinete/slider.h"
|
||||
#include "jinete/system.h"
|
||||
#include "jinete/textbox.h"
|
||||
#include "jinete/theme.h"
|
||||
#include "jinete/view.h"
|
||||
#include "jinete/widget.h"
|
||||
#include "jinete/window.h"
|
||||
#include "lauxlib.h"
|
||||
#include "libart_lgpl/libart-features.h"
|
||||
#include "libart_lgpl/libart.h"
|
||||
#include "lua.h"
|
||||
#include "lualib.h"
|
||||
#include "modules/chkmthds.h"
|
||||
#include "modules/color.h"
|
||||
#include "modules/editors.h"
|
||||
#include "modules/gfx.h"
|
||||
#include "modules/gui.h"
|
||||
#include "modules/palette.h"
|
||||
#include "modules/recent.h"
|
||||
#include "modules/render.h"
|
||||
#include "modules/rootmenu.h"
|
||||
#include "modules/sprites.h"
|
||||
#include "modules/tools.h"
|
||||
#include "modules/tools2.h"
|
||||
#include "raster/algo.h"
|
||||
#include "raster/blend.h"
|
||||
#include "raster/brush.h"
|
||||
#include "raster/dirty.h"
|
||||
#include "raster/frame.h"
|
||||
#include "raster/gfxobj.h"
|
||||
#include "raster/image.h"
|
||||
#include "raster/layer.h"
|
||||
#include "raster/mask.h"
|
||||
#include "raster/path.h"
|
||||
#include "raster/quant.h"
|
||||
#include "raster/raster.h"
|
||||
#include "raster/rotate.h"
|
||||
#include "raster/sprite.h"
|
||||
#include "raster/stock.h"
|
||||
#include "raster/undo.h"
|
||||
#include "script/bindings.h"
|
||||
#include "script/import.h"
|
||||
#include "script/script.h"
|
||||
#include "util/autocrop.h"
|
||||
#include "util/boundary.h"
|
||||
#include "util/clipbrd.h"
|
||||
#include "util/col_file.h"
|
||||
#include "util/crop.h"
|
||||
#include "util/filetoks.h"
|
||||
#include "util/flip.h"
|
||||
#include "util/frmove.h"
|
||||
#include "util/hash.h"
|
||||
#include "util/mapgen.h"
|
||||
#include "util/misc.h"
|
||||
#include "util/msk_file.h"
|
||||
#include "util/pic_file.h"
|
||||
#include "util/quantize.h"
|
||||
#include "util/recscr.h"
|
||||
#include "util/scrshot.h"
|
||||
#include "util/session.h"
|
||||
#include "util/setgfx.h"
|
||||
#include "util/thmbnail.h"
|
||||
#include "widgets/colbar.h"
|
||||
#include "widgets/colbut.h"
|
||||
#include "widgets/colview.h"
|
||||
#include "widgets/curvedit.h"
|
||||
#include "widgets/editor.h"
|
||||
#include "widgets/groupbut.h"
|
||||
#include "widgets/menu.h"
|
||||
#include "widgets/paledit.h"
|
||||
#include "widgets/preview.h"
|
||||
#include "widgets/statebar.h"
|
||||
#include "widgets/target.h"
|
||||
#include "widgets/toolbar.h"
|
||||
#include <allegro.h>
|
||||
#include <allegro/base.h>
|
||||
#include <allegro/color.h>
|
||||
#include <allegro/config.h>
|
||||
#include <allegro/draw.h>
|
||||
#include <allegro/file.h>
|
||||
#include <allegro/gfx.h>
|
||||
#include <allegro/internal/aintern.h>
|
||||
#include <allegro/keyboard.h>
|
||||
#include <allegro/system.h>
|
||||
#include <allegro/unicode.h>
|
||||
#include <ctype.h>
|
||||
#include <errno.h>
|
||||
#ifdef HAVE_LIBJPEG
|
||||
#include <jpeglib.h>
|
||||
#endif
|
||||
#ifdef HAVE_JPGALLEG
|
||||
#include <jpgalleg.h>
|
||||
#endif
|
||||
#include <limits.h>
|
||||
#include <math.h>
|
||||
#include <setjmp.h>
|
||||
#include <signal.h>
|
||||
#include <stdarg.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <time.h>
|
||||
|
||||
#if 0
|
||||
#include "ft2build.h"
|
||||
#include FT_FREETYPE_H
|
||||
#endif
|
49
config.h
Normal file
49
config.h
Normal file
@ -0,0 +1,49 @@
|
||||
/* ase -- allegro-sprite-editor: the ultimate sprites factory
|
||||
* Copyright (C) 2001-2005, 2007 David A. Capello
|
||||
*
|
||||
* 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#ifdef __ASE_CONFIG_H
|
||||
# error You cannot use config.h two times
|
||||
#endif
|
||||
|
||||
#define __ASE_CONFIG_H
|
||||
|
||||
/* general information */
|
||||
#define PACKAGE "ase"
|
||||
#define VERSION "0.5"
|
||||
#define WEBSITE "http://ase.sourceforge.net/"
|
||||
#define BUGREPORT "ase-help@lists.sourceforge.net"
|
||||
#define COPYRIGHT "Copyright (C) 2001-2005, 2007 David A. Capello"
|
||||
|
||||
#define PRINTF verbose_printf
|
||||
|
||||
/* include everything headers files to precompile */
|
||||
#ifdef USE_PRECOMPILED_HEADER
|
||||
#include "all.h"
|
||||
#endif
|
||||
|
||||
/* defined in src/core/core.c */
|
||||
void verbose_printf(const char *format, ...);
|
||||
|
||||
/* strings */
|
||||
const char *msgids_get(const char *id); /* src/intl/msgids.[ch] */
|
||||
|
||||
#define _(msgid) (msgids_get(msgid))
|
||||
|
||||
#include <math.h>
|
||||
#undef PI
|
||||
#define PI 3.14159265358979323846
|
BIN
data/aseicon.ico
Normal file
BIN
data/aseicon.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.2 KiB |
BIN
data/aseicon.pcx
Normal file
BIN
data/aseicon.pcx
Normal file
Binary file not shown.
324
data/convmatr.def
Normal file
324
data/convmatr.def
Normal file
@ -0,0 +1,324 @@
|
||||
# allegro-sprite-editor convolution matrices -*- Shell-script -*-
|
||||
# Copyright (C) 2001-2005 by David A. Capello
|
||||
#
|
||||
# Loader in "plug-ins/action/convmatr.c".
|
||||
#
|
||||
# Format:
|
||||
#
|
||||
# matrix-name w h cx cy { data } div bias target
|
||||
#
|
||||
# References:
|
||||
#
|
||||
# w = 1 ... N
|
||||
# h = 1 ... N
|
||||
# width and height of the matrix
|
||||
#
|
||||
# cx = 0 ... w-1
|
||||
# cy = 0 ... h-1
|
||||
# center of the matrix
|
||||
#
|
||||
# data = N0 N1 ... N(w*h)
|
||||
# the multiplicity factors
|
||||
#
|
||||
# div = N != 0 | auto
|
||||
# final division factor
|
||||
#
|
||||
# bias = -N ... +N | auto
|
||||
# final shift
|
||||
#
|
||||
# target = rgba
|
||||
# [r]ed, [g]reen, [b]lue, [a]lpha
|
||||
#
|
||||
|
||||
alpha-maximum 1 1 0 0 { 1 } 1 255 a
|
||||
|
||||
rgb-brightness 1 1 0 0 { 1 } 1 +8 rgb
|
||||
rgb-contrast 1 1 0 0 { 1 } 1 -8 rgb
|
||||
rgb-negative 1 1 0 0 { -1 } auto auto rgb
|
||||
rgb-remap-colors 1 1 0 0 { 1 } 1 0 rgb
|
||||
|
||||
edges-find 3 3 1 1
|
||||
{ -1 -1 -1
|
||||
-1 8 -1
|
||||
-1 -1 -1 } 1 0 rgb
|
||||
|
||||
edges-find-horizontal 3 3 1 1
|
||||
{ -1 -2 -1
|
||||
0 0 0
|
||||
1 2 1 } 1 0 rgb
|
||||
|
||||
edges-find-vertical 3 3 1 1
|
||||
{ -1 0 1
|
||||
-2 0 2
|
||||
-1 0 1 } 1 0 rgb
|
||||
|
||||
misc-contour 3 3 1 1
|
||||
{ 1 1 1
|
||||
1 -8 1
|
||||
1 1 1 } 1 255 rgb
|
||||
|
||||
misc-texturize 3 3 1 1
|
||||
{ -2 -2 1
|
||||
-2 1 2
|
||||
-1 2 2 } 1 0 rgb
|
||||
|
||||
misc-emboss 3 3 1 1
|
||||
{ -4 -2 -1
|
||||
-2 1 2
|
||||
1 2 4 } 1 0 rgb
|
||||
|
||||
misc-marmolize 3 3 1 1
|
||||
{ -1 -1 1
|
||||
-1 0 1
|
||||
-1 1 1 } 2 128 rgb
|
||||
|
||||
misc-rock 3 3 1 1
|
||||
{ -4 -2 -1
|
||||
-2 0 2
|
||||
1 2 4 } auto auto rgb
|
||||
|
||||
misc-rock-edges 3 3 1 1
|
||||
{ -1 -1 -1
|
||||
-1 8 -1
|
||||
-1 -1 -1 } auto auto rgb
|
||||
|
||||
drunk-3x3_x 3 3 1 1
|
||||
{ 1 0 1
|
||||
0 1 0
|
||||
1 0 1 } auto auto rgba
|
||||
|
||||
drunk-3x3_+ 3 3 1 1
|
||||
{ 0 1 0
|
||||
1 1 1
|
||||
0 1 0 } auto auto rgba
|
||||
|
||||
drunk-5x5_x 5 5 2 2
|
||||
{ 1 0 0 0 1
|
||||
0 0 0 0 0
|
||||
0 0 1 0 0
|
||||
0 0 0 0 0
|
||||
1 0 0 0 1 } auto auto rgba
|
||||
|
||||
drunk-5x5_+ 5 5 2 2
|
||||
{ 0 0 1 0 0
|
||||
0 0 0 0 0
|
||||
1 0 1 0 1
|
||||
0 0 0 0 0
|
||||
0 0 1 0 0 } auto auto rgba
|
||||
|
||||
drunk-7x7_x 7 7 3 3
|
||||
{ 1 0 0 0 0 0 1
|
||||
0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0
|
||||
0 0 0 1 0 0 0
|
||||
0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0
|
||||
1 0 0 0 0 0 1 } auto auto rgba
|
||||
|
||||
drunk-7x7_+ 7 7 3 3
|
||||
{ 0 0 0 1 0 0 0
|
||||
0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0
|
||||
1 0 0 1 0 0 1
|
||||
0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0
|
||||
0 0 0 1 0 0 0 } auto auto rgba
|
||||
|
||||
drunk-9x9_x 9 9 4 4
|
||||
{ 1 0 0 0 0 0 0 0 1
|
||||
0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 1 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0
|
||||
1 0 0 0 0 0 0 0 1 } auto auto rgba
|
||||
|
||||
drunk-9x9_+ 9 9 4 4
|
||||
{ 0 0 0 0 1 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0
|
||||
1 0 0 0 1 0 0 0 1
|
||||
0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 1 0 0 0 0 } auto auto rgba
|
||||
|
||||
drunk-17x17_x 17 17 8 8
|
||||
{ 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 } auto auto rgba
|
||||
|
||||
drunk-17x17_+ 17 17 8 8
|
||||
{ 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 } auto auto rgba
|
||||
|
||||
drunk-17x17_o 17 17 8 8
|
||||
{ 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0
|
||||
0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0
|
||||
0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0
|
||||
0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0
|
||||
0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
|
||||
0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
|
||||
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
|
||||
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
|
||||
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
|
||||
0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
|
||||
0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
|
||||
0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0
|
||||
0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0
|
||||
0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0
|
||||
0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 } auto auto rgba
|
||||
|
||||
sharpen-3x3 3 3 1 1
|
||||
{ -1 -1 -1
|
||||
-1 16 -1
|
||||
-1 -1 -1 } 8 0 rgb
|
||||
|
||||
sharpen-5x5 5 5 2 2
|
||||
{ 0 -1 -2 -1 0
|
||||
-1 -2 -4 -2 -1
|
||||
-2 -4 48 -4 -2
|
||||
-1 -2 -4 -2 -1
|
||||
0 -1 -2 -1 0 } 8 0 rgb
|
||||
|
||||
sharpen-7x7 7 7 3 3
|
||||
{ 0 -1 -2 -4 -2 -1 0
|
||||
-1 -2 -4 -8 -4 -2 -1
|
||||
-2 -4 -8 -16 -8 -4 -2
|
||||
-4 -8 -16 224 -16 -8 -4
|
||||
-2 -4 -8 -16 -8 -4 -2
|
||||
-1 -2 -4 -8 -4 -2 -1
|
||||
0 -1 -2 -4 -2 -1 -0 } 16 0 rgb
|
||||
|
||||
smooth-3x3 3 3 1 1
|
||||
{ 1 2 1
|
||||
2 4 2
|
||||
1 2 1 } auto auto rgba
|
||||
|
||||
smooth-3x3-hard 3 3 1 1
|
||||
{ 0 1 0
|
||||
1 8 1
|
||||
0 1 0 } auto auto rgba
|
||||
|
||||
smooth-5x5 5 5 2 2
|
||||
{ 1 2 3 2 1
|
||||
2 3 4 3 2
|
||||
3 4 5 4 3
|
||||
2 3 4 3 2
|
||||
1 2 3 2 1 } auto auto rgba
|
||||
|
||||
smooth-7x7 7 7 3 3
|
||||
{ 1 2 3 4 3 2 1
|
||||
2 3 4 5 4 3 2
|
||||
3 4 5 6 5 4 3
|
||||
4 5 6 7 6 5 4
|
||||
3 4 5 6 5 4 3
|
||||
2 3 4 5 4 3 2
|
||||
1 2 3 4 3 2 1 } auto auto rgba
|
||||
|
||||
smooth-9x9 9 9 4 4
|
||||
{ 1 2 3 4 5 4 3 2 1
|
||||
2 3 4 5 6 5 4 3 2
|
||||
3 4 5 6 7 6 5 4 3
|
||||
4 5 6 7 8 7 6 5 4
|
||||
5 6 7 8 9 8 7 6 5
|
||||
4 5 6 7 8 7 6 5 4
|
||||
3 4 5 6 7 6 5 4 3
|
||||
2 3 4 5 6 5 4 3 2
|
||||
1 2 3 4 5 4 3 2 1 } auto auto rgba
|
||||
|
||||
smooth-17x17 17 17 8 8
|
||||
{ 1 2 3 4 5 6 7 8 9 8 7 6 5 4 3 2 1
|
||||
2 3 4 5 6 7 8 9 10 9 8 7 6 5 4 3 2
|
||||
3 4 5 6 7 8 9 10 11 10 9 8 7 6 5 4 3
|
||||
4 5 6 7 8 9 10 11 12 11 10 9 8 7 6 5 4
|
||||
5 6 7 8 9 10 11 12 13 12 11 10 9 8 7 6 5
|
||||
6 7 8 9 10 11 12 13 14 13 12 11 10 9 8 7 6
|
||||
7 8 9 10 11 12 13 14 15 14 13 12 11 10 9 8 7
|
||||
8 9 10 11 12 13 14 15 16 15 14 13 12 11 10 9 8
|
||||
9 10 11 12 13 14 15 16 17 16 15 14 13 12 11 10 9
|
||||
8 9 10 11 12 13 14 15 16 15 14 13 12 11 10 9 8
|
||||
7 8 9 10 11 12 13 14 15 14 13 12 11 10 9 8 7
|
||||
6 7 8 9 10 11 12 13 14 13 12 11 10 9 8 7 6
|
||||
5 6 7 8 9 10 11 12 13 12 11 10 9 8 7 6 5
|
||||
4 5 6 7 8 9 10 11 12 11 10 9 8 7 6 5 4
|
||||
3 4 5 6 7 8 9 10 11 10 9 8 7 6 5 4 3
|
||||
2 3 4 5 6 7 8 9 10 9 8 7 6 5 4 3 2
|
||||
1 2 3 4 5 6 7 8 9 8 7 6 5 4 3 2 1 } auto auto rgba
|
||||
|
||||
smooth-5x3-left 5 3 0 1
|
||||
{ 2 3 2 1 0
|
||||
6 4 3 2 1
|
||||
2 3 2 1 0 } auto auto rgba
|
||||
|
||||
smooth-17x3-left 17 3 0 1
|
||||
{ 14 16 13 12 10 8 6 4 3 2 1 0 0 0 0 0 0
|
||||
24 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
|
||||
14 16 13 12 10 8 6 4 3 2 1 0 0 0 0 0 0 } auto auto rgba
|
||||
|
||||
smooth-3x17-top 3 17 1 0
|
||||
{ 14 24 14
|
||||
16 16 16
|
||||
13 15 13
|
||||
12 14 12
|
||||
10 13 10
|
||||
8 12 8
|
||||
6 11 6
|
||||
4 10 4
|
||||
3 9 3
|
||||
2 8 2
|
||||
1 7 1
|
||||
0 6 0
|
||||
0 5 0
|
||||
0 4 0
|
||||
0 3 0
|
||||
0 2 0
|
||||
0 1 0 } auto auto rgba
|
||||
|
||||
smooth-5x5-diagonal(\) 5 5 2 2
|
||||
{ 1 1 1 0 0
|
||||
1 2 2 1 0
|
||||
1 2 3 2 1
|
||||
0 1 2 2 1
|
||||
0 0 1 1 1 } auto auto rgba
|
||||
|
||||
smooth-5x5-diagonal(/) 5 5 2 2
|
||||
{ 0 0 1 1 1
|
||||
0 1 2 2 1
|
||||
1 2 3 2 1
|
||||
1 2 2 1 0
|
||||
1 1 1 0 0 } auto auto rgba
|
BIN
data/fonts/allegro.pcx
Normal file
BIN
data/fonts/allegro.pcx
Normal file
Binary file not shown.
BIN
data/fonts/anipro.pcx
Normal file
BIN
data/fonts/anipro.pcx
Normal file
Binary file not shown.
BIN
data/fonts/anipro2.pcx
Normal file
BIN
data/fonts/anipro2.pcx
Normal file
Binary file not shown.
BIN
data/fonts/default.pcx
Normal file
BIN
data/fonts/default.pcx
Normal file
Binary file not shown.
BIN
data/fonts/default2.pcx
Normal file
BIN
data/fonts/default2.pcx
Normal file
Binary file not shown.
BIN
data/fonts/lcd8.pcx
Normal file
BIN
data/fonts/lcd8.pcx
Normal file
Binary file not shown.
BIN
data/fonts/mssansserif8.pcx
Normal file
BIN
data/fonts/mssansserif8.pcx
Normal file
Binary file not shown.
BIN
data/fonts/mssansserif8bold.pcx
Normal file
BIN
data/fonts/mssansserif8bold.pcx
Normal file
Binary file not shown.
BIN
data/fonts/tahoma8.pcx
Normal file
BIN
data/fonts/tahoma8.pcx
Normal file
Binary file not shown.
BIN
data/fonts/terminal10.pcx
Normal file
BIN
data/fonts/terminal10.pcx
Normal file
Binary file not shown.
BIN
data/fonts/terminal8.pcx
Normal file
BIN
data/fonts/terminal8.pcx
Normal file
Binary file not shown.
BIN
data/fonts/verdana10.pcx
Normal file
BIN
data/fonts/verdana10.pcx
Normal file
Binary file not shown.
BIN
data/fonts/verdana8.pcx
Normal file
BIN
data/fonts/verdana8.pcx
Normal file
Binary file not shown.
BIN
data/fonts/verdana8bold.pcx
Normal file
BIN
data/fonts/verdana8bold.pcx
Normal file
Binary file not shown.
BIN
data/fonts/verdana9.pcx
Normal file
BIN
data/fonts/verdana9.pcx
Normal file
Binary file not shown.
18
data/jids/colcurv.jid
Normal file
18
data/jids/colcurv.jid
Normal file
@ -0,0 +1,18 @@
|
||||
<!-- ase -- allegro-sprite-editor: the ultimate sprites factory -->
|
||||
<!-- Copyright (C) 2001-2005 by David A. Capello -->
|
||||
|
||||
<!-- Read "LEGAL.txt" for more information. -->
|
||||
|
||||
<window text=_("Color Curve") name="color_curve">
|
||||
<box vertical>
|
||||
<box horizontal expansive>
|
||||
<view expansive name="curve" /><!-- custom widget -->
|
||||
<box vertical>
|
||||
<button text=_("&OK") name="button_ok" magnetic />
|
||||
<button text=_("&Cancel") />
|
||||
<box name="target" />
|
||||
<check text=_("&Preview") name="preview" />
|
||||
</box>
|
||||
</box>
|
||||
</box>
|
||||
</window>
|
47
data/jids/colsel.jid
Normal file
47
data/jids/colsel.jid
Normal file
@ -0,0 +1,47 @@
|
||||
<!-- ase -- allegro-sprite-editor: the ultimate sprites factory -->
|
||||
<!-- Copyright (C) 2001-2005 by David A. Capello -->
|
||||
|
||||
<!-- Read "LEGAL.txt" for more information. -->
|
||||
|
||||
<window text=_("Color Selection") name="color_selection">
|
||||
<!-- <box horizontal> -->
|
||||
<box vertical expansive>
|
||||
<box horizontal>
|
||||
<box vertical homogeneous>
|
||||
<label text="R" />
|
||||
<label text="G" />
|
||||
<label text="B" />
|
||||
</box>
|
||||
<box vertical homogeneous expansive>
|
||||
<slider min="0" max="255" name="red" />
|
||||
<slider min="0" max="255" name="green" />
|
||||
<slider min="0" max="255" name="blue" />
|
||||
</box>
|
||||
<box vertical homogeneous>
|
||||
<label text="H" />
|
||||
<label text="S" />
|
||||
<label text="V" />
|
||||
</box>
|
||||
<box vertical homogeneous expansive>
|
||||
<slider min="0" max="255" name="hue" />
|
||||
<slider min="0" max="255" name="saturation" />
|
||||
<slider min="0" max="255" name="value" />
|
||||
</box>
|
||||
</box>
|
||||
<box horizontal>
|
||||
<label text="A" />
|
||||
<slider min="0" max="255" expansive name="alpha" />
|
||||
</box>
|
||||
<view name="palette_editor" expansive /> <!-- custom-widget -->
|
||||
<box name="color_viewer" expansive /> <!-- custom-widget -->
|
||||
<box horizontal homogeneous>
|
||||
<button text=_("&OK") name="button_ok" magnetic />
|
||||
<button text=_("&Cancel") />
|
||||
</box>
|
||||
</box>
|
||||
<!-- <box vertical> -->
|
||||
<!-- <view name="palette_editor" expansive /> <\!-- custom-widget -\-> -->
|
||||
<!-- <box name="color_viewer" expansive /> <\!-- custom-widget -\-> -->
|
||||
<!-- </box> -->
|
||||
<!-- </box> -->
|
||||
</window>
|
66
data/jids/convmatr.jid
Normal file
66
data/jids/convmatr.jid
Normal file
@ -0,0 +1,66 @@
|
||||
<!-- ase -- allegro-sprite-editor: the ultimate sprites factory -->
|
||||
<!-- Copyright (C) 2001-2005 by David A. Capello -->
|
||||
|
||||
<!-- Read "LEGAL.txt" for more information. -->
|
||||
|
||||
<window text=_("Convolution Matrix") name="convolution_matrix">
|
||||
<box vertical>
|
||||
<box horizontal expansive>
|
||||
<view expansive name="view" /><!-- custom widget -->
|
||||
<box vertical>
|
||||
<button text=_("&OK") name="button_ok" magnetic />
|
||||
<button text=_("&Cancel") />
|
||||
<box name="target" />
|
||||
<check text=_("&Preview") name="preview" />
|
||||
<check text=_("&Tiled") name="tiled" />
|
||||
</box>
|
||||
</box>
|
||||
<box horizontal>
|
||||
<button text=_("&Reload Stock") name="reload" />
|
||||
<button text=_("&Generate") name="generate" />
|
||||
</box>
|
||||
</box>
|
||||
</window>
|
||||
|
||||
<window text=_("Generate New Matrix") name="generate_convolution_matrix">
|
||||
<box vertical>
|
||||
<box horizontal expansive homogeneous>
|
||||
<box vertical expansive>
|
||||
<label text=_("X axis") />
|
||||
<view expansive name="view_x" /><!-- custom widget -->
|
||||
</box>
|
||||
<box vertical expansive>
|
||||
<label text=_("Y axis") />
|
||||
<view expansive name="view_y" /><!-- custom widget -->
|
||||
</box>
|
||||
</box>
|
||||
<box horizontal homogeneous>
|
||||
<box horizontal>
|
||||
<box vertical homogeneous>
|
||||
<label text=_("Width:") />
|
||||
<label text=_("Height:") />
|
||||
</box>
|
||||
<box vertical homogeneous expansive>
|
||||
<slider min="1" max="31" name="width" />
|
||||
<slider min="1" max="31" name="height" />
|
||||
</box>
|
||||
<box vertical homogeneous>
|
||||
<label text=_("Div:") />
|
||||
<label text=_("Bias:") />
|
||||
</box>
|
||||
<box vertical homogeneous expansive>
|
||||
<entry maxsize=32 name="div" />
|
||||
<entry maxsize=32 name="bias" />
|
||||
</box>
|
||||
<box vertical homogeneous>
|
||||
<check text=_("Auto") name="div_auto" />
|
||||
<check text=_("Auto") name="bias_auto" />
|
||||
</box>
|
||||
</box>
|
||||
</box>
|
||||
<box horizontal homogeneous>
|
||||
<button text=_("&OK") name="button_ok" magnetic />
|
||||
<button text=_("&Cancel") />
|
||||
</box>
|
||||
</box>
|
||||
</window>
|
37
data/jids/drawtext.jid
Normal file
37
data/jids/drawtext.jid
Normal file
@ -0,0 +1,37 @@
|
||||
<!-- ase -- allegro-sprite-editor: the ultimate sprites factory -->
|
||||
<!-- Copyright (C) 2001-2005 by David A. Capello -->
|
||||
|
||||
<!-- Read "LEGAL.txt" for more information. -->
|
||||
|
||||
<window text=_("Draw Text") name="drawtext_window">
|
||||
<box vertical>
|
||||
<box horizontal>
|
||||
<box vertical homogeneous>
|
||||
<label text=_("Font:") />
|
||||
<label text=_("Size:") />
|
||||
</box>
|
||||
<box vertical homogeneous expansive>
|
||||
<button text="" name="font" />
|
||||
<entry maxsize=8 name="size"/>
|
||||
</box>
|
||||
</box>
|
||||
<!-- <label text=_("Fixed Size:") /> -->
|
||||
<!-- <view expansive> -->
|
||||
<!-- <listbox /> -->
|
||||
<!-- </view> -->
|
||||
<separator horizontal />
|
||||
<box horizontal>
|
||||
<box vertical homogeneous>
|
||||
<label text=_("Text:") />
|
||||
<label text=_("Color:") />
|
||||
</box>
|
||||
<box vertical homogeneous expansive name="color_box">
|
||||
<entry maxsize=256 name="text" expansive />
|
||||
</box>
|
||||
</box>
|
||||
<box horizontal homogeneous>
|
||||
<button text=_("&OK") name="ok" magnetic />
|
||||
<button text=_("&Cancel") />
|
||||
</box>
|
||||
</box>
|
||||
</window>
|
24
data/jids/dupspr.jid
Normal file
24
data/jids/dupspr.jid
Normal file
@ -0,0 +1,24 @@
|
||||
<!-- ase -- allegro-sprite-editor: the ultimate sprites factory -->
|
||||
<!-- Copyright (C) 2001-2005 by David A. Capello -->
|
||||
|
||||
<!-- Read "LEGAL.txt" for more information. -->
|
||||
|
||||
<window text=_("Duplicate Sprite") name="duplicate_sprite">
|
||||
<box vertical>
|
||||
<box horizontal expansive>
|
||||
<box vertical homogeneous>
|
||||
<label text=_("Duplicate:") />
|
||||
<label text=_("As:") />
|
||||
</box>
|
||||
<box vertical homogeneous expansive>
|
||||
<label text="" name="src_name" />
|
||||
<entry maxsize="256" name="dst_name" />
|
||||
</box>
|
||||
</box>
|
||||
<check text=_("Duplicate merged layers only") name="flatten" />
|
||||
<box horizontal homogeneous>
|
||||
<button text=_("&OK") name="ok" magnetic />
|
||||
<button text=_("&Cancel") />
|
||||
</box>
|
||||
</box>
|
||||
</window>
|
23
data/jids/frlen.jid
Normal file
23
data/jids/frlen.jid
Normal file
@ -0,0 +1,23 @@
|
||||
<!-- ase -- allegro-sprite-editor: the ultimate sprites factory -->
|
||||
<!-- Copyright (C) 2001-2005 by David A. Capello -->
|
||||
|
||||
<!-- Read "LEGAL.txt" for more information. -->
|
||||
|
||||
<window text=_("Frame Duration") name="frame_duration">
|
||||
<box vertical>
|
||||
<box horizontal expansive>
|
||||
<box vertical homogeneous>
|
||||
<label text=_("Frame position:") />
|
||||
<label text=_("Frame duration (msecs):") />
|
||||
</box>
|
||||
<box vertical homogeneous expansive>
|
||||
<label text="" name="frpos" />
|
||||
<entry maxsize=32 name="frlen" />
|
||||
</box>
|
||||
</box>
|
||||
<box horizontal homogeneous>
|
||||
<button text=_("&OK") name="ok" magnetic />
|
||||
<button text=_("&Cancel") />
|
||||
</box>
|
||||
</box>
|
||||
</window>
|
27
data/jids/frmprop.jid
Normal file
27
data/jids/frmprop.jid
Normal file
@ -0,0 +1,27 @@
|
||||
<!-- ase -- allegro-sprite-editor: the ultimate sprites factory -->
|
||||
<!-- Copyright (C) 2001-2005 by David A. Capello -->
|
||||
|
||||
<!-- Read "LEGAL.txt" for more information. -->
|
||||
|
||||
<window text=_("Frame Properties") name="frame_properties">
|
||||
<box vertical>
|
||||
<box horizontal expansive>
|
||||
<box vertical homogeneous>
|
||||
<label text=_("Frame position:") />
|
||||
<label text=_("X position:") />
|
||||
<label text=_("Y position:") />
|
||||
<label text=_("Opacity:") />
|
||||
</box>
|
||||
<box vertical homogeneous expansive>
|
||||
<entry maxsize=32 name="frpos" />
|
||||
<entry maxsize=32 name="xpos" />
|
||||
<entry maxsize=32 name="ypos" />
|
||||
<slider min=0 max=255 name="opacity" />
|
||||
</box>
|
||||
</box>
|
||||
<box horizontal homogeneous>
|
||||
<button text=_("&OK") name="ok" magnetic />
|
||||
<button text=_("&Cancel") />
|
||||
</box>
|
||||
</box>
|
||||
</window>
|
26
data/jids/imgtype.jid
Normal file
26
data/jids/imgtype.jid
Normal file
@ -0,0 +1,26 @@
|
||||
<!-- ase -- allegro-sprite-editor: the ultimate sprites factory -->
|
||||
<!-- Copyright (C) 2001-2005 by David A. Capello -->
|
||||
|
||||
<!-- Read "LEGAL.txt" for more information. -->
|
||||
|
||||
<window text=_("Convert Image Type") name="image_type">
|
||||
<box vertical>
|
||||
<box vertical expansive>
|
||||
<box horizontal>
|
||||
<label text=_("From:") />
|
||||
<label text="" name="from" />
|
||||
</box>
|
||||
<label text=_("To:") />
|
||||
<radio name="imgtype1" text=_("&RGB") group=1 />
|
||||
<radio name="imgtype2" text=_("&Grayscale") group=1 />
|
||||
<radio name="imgtype3" text=_("&Indexed") group=1 />
|
||||
<separator horizontal />
|
||||
<radio name="dither1" text=_("&No Dithering") group=2 />
|
||||
<radio name="dither2" text=_("&Ordered Dither") group=2 />
|
||||
</box>
|
||||
<box horizontal expansive homogeneous>
|
||||
<button text=_("&OK") name="ok" magnetic />
|
||||
<button text=_("&Cancel") />
|
||||
</box>
|
||||
</box>
|
||||
</window>
|
15
data/jids/invrtcol.jid
Normal file
15
data/jids/invrtcol.jid
Normal file
@ -0,0 +1,15 @@
|
||||
<!-- ase -- allegro-sprite-editor: the ultimate sprites factory -->
|
||||
<!-- Copyright (C) 2001-2005 by David A. Capello -->
|
||||
|
||||
<!-- Read "LEGAL.txt" for more information. -->
|
||||
|
||||
<window text=_("Invert Color") name="invert_color">
|
||||
<box vertical>
|
||||
<box vertical expansive name="target" />
|
||||
<check text=_("&Preview") name="preview" />
|
||||
<box horizontal homogeneous>
|
||||
<button text=_("&OK") name="button_ok" magnetic />
|
||||
<button text=_("&Cancel") />
|
||||
</box>
|
||||
</box>
|
||||
</window>
|
58
data/jids/main.jid
Normal file
58
data/jids/main.jid
Normal file
@ -0,0 +1,58 @@
|
||||
<!-- ase -- allegro-sprite-editor: the ultimate sprites factory -->
|
||||
<!-- Copyright (C) 2001-2005 by David A. Capello -->
|
||||
|
||||
<!-- Read "LEGAL.txt" for more information. -->
|
||||
|
||||
<!-- default 0.2 layout -->
|
||||
<window noborders desktop text="Main Window" name="main_window">
|
||||
<box noborders vertical>
|
||||
<box noborders horizontal name="menu_bar" />
|
||||
<box noborders horizontal expansive>
|
||||
<box noborders vertical name="color_bar" />
|
||||
<box noborders horizontal name="editor" expansive />
|
||||
<box noborders vertical name="tool_bar" />
|
||||
</box>
|
||||
<box noborders horizontal name="status_bar" />
|
||||
</box>
|
||||
</window>
|
||||
|
||||
<!-- old 0.1.2 layout -->
|
||||
<window noborders desktop text="Main Window" name="main_window_alt1">
|
||||
<box noborders vertical>
|
||||
<box noborders horizontal name="menu_bar" />
|
||||
<box noborders horizontal expansive>
|
||||
<box noborders vertical name="color_bar" />
|
||||
<box noborders vertical expansive>
|
||||
<box noborders horizontal expansive>
|
||||
<box noborders horizontal name="editor" expansive />
|
||||
<box noborders vertical name="tool_bar" />
|
||||
</box>
|
||||
<box noborders horizontal name="status_bar" />
|
||||
</box>
|
||||
</box>
|
||||
</box>
|
||||
</window>
|
||||
|
||||
<!-- alternative layout like Windows apps -->
|
||||
<window noborders desktop text="Main Window" name="main_window_alt2">
|
||||
<box noborders vertical>
|
||||
<box noborders horizontal name="menu_bar" />
|
||||
<box noborders horizontal name="tool_bar" />
|
||||
<box noborders horizontal name="editor" expansive />
|
||||
<box noborders horizontal name="color_bar" />
|
||||
<box noborders horizontal name="status_bar" />
|
||||
</box>
|
||||
</window>
|
||||
|
||||
<!-- alternative layout like Corel -->
|
||||
<window noborders desktop text="Main Window" name="main_window_alt3">
|
||||
<box noborders vertical>
|
||||
<box noborders horizontal name="menu_bar" />
|
||||
<box horizontal expansive>
|
||||
<box noborders vertical name="tool_bar" />
|
||||
<box noborders horizontal name="editor" expansive />
|
||||
</box>
|
||||
<box noborders horizontal name="color_bar" />
|
||||
<box noborders horizontal name="status_bar" />
|
||||
</box>
|
||||
</window>
|
42
data/jids/mapgen.jid
Normal file
42
data/jids/mapgen.jid
Normal file
@ -0,0 +1,42 @@
|
||||
<!-- ase -- allegro-sprite-editor: the ultimate sprites factory -->
|
||||
<!-- Copyright (C) 2001-2005 by David A. Capello -->
|
||||
|
||||
<!-- Read "LEGAL.txt" for more information. -->
|
||||
|
||||
<window text=_("Map Generator") name="mapgen">
|
||||
<panel horizontal>
|
||||
<view name="mapview" expansive /><!-- custom-widget -->
|
||||
<box vertical>
|
||||
|
||||
<box horizontal>
|
||||
<box horizontal expansive>
|
||||
<box vertical homogeneous>
|
||||
<label text=_("Width:") />
|
||||
<label text=_("Height:") />
|
||||
</box>
|
||||
<box vertical homogeneous expansive>
|
||||
<entry expansive name="width" maxsize=8 />
|
||||
<entry expansive name="height" maxsize=8 />
|
||||
</box>
|
||||
</box>
|
||||
</box>
|
||||
|
||||
<label text=_("Seed:") />
|
||||
<box horizontal>
|
||||
<entry expansive name="seed" maxsize=32 />
|
||||
<button text="&Random" name="random_seed" />
|
||||
</box>
|
||||
|
||||
<label text=_("Fractal Factor:") />
|
||||
<box horizontal>
|
||||
<entry expansive name="fractal_factor" maxsize=32 />
|
||||
<button text="sqrt2" name="sqrt2_factor" />
|
||||
</box>
|
||||
|
||||
<check text=_("&Preview") name="preview" />
|
||||
<check text=_("&Tiled") name="tiled" />
|
||||
<button text=_("&OK") name="button_ok" magnetic />
|
||||
<button text=_("&Cancel") />
|
||||
</box>
|
||||
</box>
|
||||
</window>
|
30
data/jids/median.jid
Normal file
30
data/jids/median.jid
Normal file
@ -0,0 +1,30 @@
|
||||
<!-- ase -- allegro-sprite-editor: the ultimate sprites factory -->
|
||||
<!-- Copyright (C) 2001-2005 by David A. Capello -->
|
||||
|
||||
<!-- Read "LEGAL.txt" for more information. -->
|
||||
|
||||
<window text=_("Median Blur") name="median">
|
||||
<box vertical>
|
||||
<box horizontal>
|
||||
<box horizontal expansive>
|
||||
<box vertical homogeneous>
|
||||
<label text=_("Width:") />
|
||||
<label text=_("Height:") />
|
||||
</box>
|
||||
<box vertical homogeneous expansive>
|
||||
<entry expansive name="width" maxsize=4 />
|
||||
<entry expansive name="height" maxsize=4 />
|
||||
</box>
|
||||
</box>
|
||||
<box vertical>
|
||||
<box name="target" />
|
||||
<check text=_("&Preview") name="preview" />
|
||||
<check text=_("&Tiled") name="tiled" />
|
||||
</box>
|
||||
</box>
|
||||
<box horizontal homogeneous expansive>
|
||||
<button text=_("&OK") name="button_ok" magnetic />
|
||||
<button text=_("&Cancel") />
|
||||
</box>
|
||||
</box>
|
||||
</window>
|
38
data/jids/newlay.jid
Normal file
38
data/jids/newlay.jid
Normal file
@ -0,0 +1,38 @@
|
||||
<!-- ase -- allegro-sprite-editor: the ultimate sprites factory -->
|
||||
<!-- Copyright (C) 2001-2005 by David A. Capello -->
|
||||
|
||||
<!-- Read "LEGAL.txt" for more information. -->
|
||||
|
||||
<window text=_("New Image Layer") name="new_layer">
|
||||
<box vertical>
|
||||
<box horizontal>
|
||||
<box vertical homogeneous>
|
||||
<label text=_("Name:") />
|
||||
<label text=_("Width:") />
|
||||
<label text=_("Height:") />
|
||||
</box>
|
||||
<box vertical homogeneous>
|
||||
<entry maxsize=256 text=_("New Layer") name="name" />
|
||||
<entry maxsize=4 name="width" />
|
||||
<entry maxsize=4 name="height" />
|
||||
</box>
|
||||
</box>
|
||||
<box horizontal homogeneous>
|
||||
<button text=_("&OK") name="ok" magnetic />
|
||||
<button text=_("&Cancel") />
|
||||
</box>
|
||||
</box>
|
||||
</window>
|
||||
|
||||
<window text=_("New Layer Set") name="new_layer_set">
|
||||
<box vertical>
|
||||
<box horizontal>
|
||||
<label text=_("Name:") />
|
||||
<entry maxsize=256 text=_("New Set") name="name" />
|
||||
</box>
|
||||
<box horizontal homogeneous>
|
||||
<button text=_("&OK") name="ok" magnetic />
|
||||
<button text=_("&Cancel") />
|
||||
</box>
|
||||
</box>
|
||||
</window>
|
48
data/jids/newspr.jid
Normal file
48
data/jids/newspr.jid
Normal file
@ -0,0 +1,48 @@
|
||||
<!-- ase -- allegro-sprite-editor: the ultimate sprites factory -->
|
||||
<!-- Copyright (C) 2001-2005 by David A. Capello -->
|
||||
|
||||
<!-- Read "LEGAL.txt" for more information. -->
|
||||
|
||||
<window text=_("New Sprite") name="new_sprite">
|
||||
<box vertical>
|
||||
<box horizontal>
|
||||
<box vertical expansive>
|
||||
<separator text=_("Size:") left horizontal />
|
||||
<box vertical expansive>
|
||||
<box horizontal>
|
||||
<box vertical homogeneous>
|
||||
<label text=_("Width:") />
|
||||
<label text=_("Height:") />
|
||||
</box>
|
||||
<box vertical homogeneous expansive>
|
||||
<entry expansive name="width" maxsize=8 />
|
||||
<entry expansive name="height" maxsize=8 />
|
||||
</box>
|
||||
</box>
|
||||
</box>
|
||||
</box>
|
||||
<box vertical>
|
||||
<separator text=_("Type:") left horizontal />
|
||||
<box vertical homogeneous>
|
||||
<radio name="radio1" text=_("&RGB") group=1 />
|
||||
<radio name="radio2" text=_("&Grayscale") group=1 />
|
||||
<radio name="radio3" text=_("&Indexed") group=1 />
|
||||
</box>
|
||||
</box>
|
||||
</box>
|
||||
<separator text=_("Background:") left horizontal />
|
||||
<view maxsize expansive>
|
||||
<listbox name="bg_box">
|
||||
<listitem text=_("Transparent (mask color)") />
|
||||
<listitem text=_("Black") />
|
||||
<listitem text=_("White") />
|
||||
<listitem text=_("Bright Pink") />
|
||||
<listitem text=_("Custom") />
|
||||
</listbox>
|
||||
</view>
|
||||
<box horizontal homogeneous>
|
||||
<button text=_("&OK") name="ok_button" magnetic />
|
||||
<button text=_("&Cancel") />
|
||||
</box>
|
||||
</box>
|
||||
</window>
|
54
data/jids/options.jid
Normal file
54
data/jids/options.jid
Normal file
@ -0,0 +1,54 @@
|
||||
<!-- ase -- allegro-sprite-editor: the ultimate sprites factory -->
|
||||
<!-- Copyright (C) 2001-2005 by David A. Capello -->
|
||||
|
||||
<!-- Read "LEGAL.txt" for more information. -->
|
||||
|
||||
<window text=_("Options") name="options">
|
||||
<box vertical>
|
||||
<box horizontal>
|
||||
<box vertical>
|
||||
|
||||
<label text=_("Mouse Speed:") />
|
||||
<box horizontal>
|
||||
<box vertical homogeneous>
|
||||
<label text=_("X:") />
|
||||
<label text=_("Y:") />
|
||||
</box>
|
||||
<box vertical homogeneous expansive>
|
||||
<slider min="-8" max="8" name="mouse_x" />
|
||||
<slider min="-8" max="8" name="mouse_y" />
|
||||
</box>
|
||||
</box>
|
||||
<check text=_("Lock X/Y") name="lock_axis" />
|
||||
|
||||
<separator horizontal />
|
||||
|
||||
<label text=_("Movement Delay (milliseconds):") />
|
||||
<slider min="0" max="1000" name="move_delay" />
|
||||
<check text=_("Smooth auto-scroll") name="smooth" />
|
||||
<check text=_("Real-time ordered dithering") name="dither" />
|
||||
|
||||
</box>
|
||||
<separator vertical />
|
||||
<box vertical>
|
||||
|
||||
<label text="" name="label_font" />
|
||||
<button text=_("Change GUI Font") name="button_font" />
|
||||
<button text=_("Change Language") name="button_lang" />
|
||||
<separator horizontal />
|
||||
<check text=_("2 Click Movement") name="move_click2" />
|
||||
<check text=_("2 Click Drawing") name="draw_click2" />
|
||||
|
||||
</box>
|
||||
</box>
|
||||
|
||||
<separator horizontal />
|
||||
<check text=_("Ask to load backed up sessions") name="askbkpses" />
|
||||
|
||||
<box horizontal homogeneous>
|
||||
<button text=_("&OK") name="button_ok" magnetic />
|
||||
<button text=_("&Save") name="button_save" />
|
||||
<button text=_("&Cancel") />
|
||||
</box>
|
||||
</box>
|
||||
</window>
|
60
data/jids/paledit.jid
Normal file
60
data/jids/paledit.jid
Normal file
@ -0,0 +1,60 @@
|
||||
<!-- ase -- allegro-sprite-editor: the ultimate sprites factory -->
|
||||
<!-- Copyright (C) 2001-2005 by David A. Capello -->
|
||||
|
||||
<!-- Read "LEGAL.txt" for more information. -->
|
||||
|
||||
<window text=_("Palette Editor") name="palette_editor">
|
||||
<box vertical>
|
||||
<box horizontal expansive>
|
||||
<box vertical>
|
||||
<view name="palette_editor" expansive /> <!-- custom-widget -->
|
||||
<slider min="1" max="256" name="columns" />
|
||||
</box>
|
||||
<box vertical expansive>
|
||||
<box horizontal>
|
||||
<box vertical homogeneous>
|
||||
<label text="R" />
|
||||
<label text="G" />
|
||||
<label text="B" />
|
||||
</box>
|
||||
<box vertical homogeneous expansive>
|
||||
<slider min="0" max="255" name="red" />
|
||||
<slider min="0" max="255" name="green" />
|
||||
<slider min="0" max="255" name="blue" />
|
||||
</box>
|
||||
<box vertical homogeneous>
|
||||
<label text="H" />
|
||||
<label text="S" />
|
||||
<label text="V" />
|
||||
</box>
|
||||
<box vertical homogeneous expansive>
|
||||
<slider min="0" max="255" name="hue" />
|
||||
<slider min="0" max="255" name="saturation" />
|
||||
<slider min="0" max="255" name="value" />
|
||||
</box>
|
||||
</box>
|
||||
<box name="color_viewer" expansive /> <!-- custom-widget -->
|
||||
<button text=_("Select &All") name="select_all" />
|
||||
<box vertical>
|
||||
<box horizontal homogeneous>
|
||||
<button text=_("&Undo") name="undo" />
|
||||
<button text=_("&Redo") name="redo" />
|
||||
</box>
|
||||
<box horizontal homogeneous>
|
||||
<button text=_("&Load") name="load" />
|
||||
<button text=_("&Save") name="save" />
|
||||
</box>
|
||||
<box horizontal homogeneous>
|
||||
<button text=_("&Ramp") name="ramp" />
|
||||
<button text=_("&Quantize") name="quantize" />
|
||||
</box>
|
||||
</box>
|
||||
</box>
|
||||
</box>
|
||||
<slider min="0" max="1" name="frpos" />
|
||||
<box horizontal homogeneous>
|
||||
<button text=_("&OK") name="button_ok" magnetic />
|
||||
<button text=_("&Cancel") />
|
||||
</box>
|
||||
</box>
|
||||
</window>
|
16
data/jids/playfli.jid
Normal file
16
data/jids/playfli.jid
Normal file
@ -0,0 +1,16 @@
|
||||
<!-- ase -- allegro-sprite-editor: the ultimate sprites factory -->
|
||||
<!-- Copyright (C) 2001-2005 by David A. Capello -->
|
||||
|
||||
<!-- Read "LEGAL.txt" for more information. -->
|
||||
|
||||
<window text=_("Play FLI/FLC") name="play_fli">
|
||||
<box vertical>
|
||||
<check text=_("Loop") name="loop" />
|
||||
<check text=_("Fullscreen") name="fullscreen" />
|
||||
<button text=_("&Open") name="button_open" />
|
||||
<box horizontal homogeneous expansive>
|
||||
<button text=_("&Play") name="button_play" magnetic />
|
||||
<button text=_("&Close") />
|
||||
</box>
|
||||
</box>
|
||||
</window>
|
23
data/jids/pntprop.jid
Normal file
23
data/jids/pntprop.jid
Normal file
@ -0,0 +1,23 @@
|
||||
<!-- ase -- allegro-sprite-editor: the ultimate sprites factory -->
|
||||
<!-- Copyright (C) 2001-2005 by David A. Capello -->
|
||||
|
||||
<!-- Read "LEGAL.txt" for more information. -->
|
||||
|
||||
<window text=_("Point Properties") name="point_properties">
|
||||
<box vertical>
|
||||
<box horizontal expansive>
|
||||
<box vertical homogeneous>
|
||||
<label text=_("X:") />
|
||||
<label text=_("Y:") />
|
||||
</box>
|
||||
<box vertical homogeneous expansive>
|
||||
<entry maxsize="32" name="x" />
|
||||
<entry maxsize="32" name="y" />
|
||||
</box>
|
||||
</box>
|
||||
<box horizontal homogeneous>
|
||||
<button text=_("&OK") name="button_ok" magnetic />
|
||||
<button text=_("&Cancel") />
|
||||
</box>
|
||||
</box>
|
||||
</window>
|
38
data/jids/replcol.jid
Normal file
38
data/jids/replcol.jid
Normal file
@ -0,0 +1,38 @@
|
||||
<!-- ase -- allegro-sprite-editor: the ultimate sprites factory -->
|
||||
<!-- Copyright (C) 2001-2005 by David A. Capello -->
|
||||
|
||||
<!-- Read "LEGAL.txt" for more information. -->
|
||||
|
||||
<window text=_("Replace Color") name="replace_color">
|
||||
<box horizontal>
|
||||
<box vertical expansive>
|
||||
<box horizontal expansive>
|
||||
<box vertical homogeneous>
|
||||
<label text=_("Get:") />
|
||||
<label text=_("Put:") />
|
||||
</box>
|
||||
<box vertical homogeneous expansive>
|
||||
<box horizontal expansive>
|
||||
<box vertical homogeneous expansive name="color_buttons_box" />
|
||||
<box vertical homogeneous>
|
||||
<button text="1" name="button1_1" />
|
||||
<button text="1" name="button2_1" />
|
||||
</box>
|
||||
<box vertical homogeneous>
|
||||
<button text="2" name="button1_2" />
|
||||
<button text="2" name="button2_2" />
|
||||
</box>
|
||||
</box>
|
||||
</box>
|
||||
</box>
|
||||
<label text=_("Fuzziness:") />
|
||||
<slider min=0 max=255 name="fuzziness" />
|
||||
</box>
|
||||
<box vertical>
|
||||
<button text=_("&OK") name="button_ok" magnetic />
|
||||
<button text=_("&Cancel") />
|
||||
<box name="target" />
|
||||
<check text=_("&Preview") name="preview" />
|
||||
</box>
|
||||
</box>
|
||||
</window>
|
28
data/jids/sprprop.jid
Normal file
28
data/jids/sprprop.jid
Normal file
@ -0,0 +1,28 @@
|
||||
<!-- ase -- allegro-sprite-editor: the ultimate sprites factory -->
|
||||
<!-- Copyright (C) 2001-2005 by David A. Capello -->
|
||||
|
||||
<!-- Read "LEGAL.txt" for more information. -->
|
||||
|
||||
<window text=_("Sprite Properties") name="sprite_properties">
|
||||
<box vertical>
|
||||
<box horizontal expansive>
|
||||
<box vertical homogeneous>
|
||||
<label text=_("File name:") />
|
||||
<label text=_("Type:") />
|
||||
<label text=_("Size:") />
|
||||
<label text=_("Frames:") />
|
||||
</box>
|
||||
<box vertical homogeneous expansive>
|
||||
<entry maxsize=256 name="name" />
|
||||
<label text="" name="type" />
|
||||
<label text="" name="size" />
|
||||
<entry maxsize=4 name="frames" />
|
||||
</box>
|
||||
</box>
|
||||
<button text=_("Constant Frame-Rate Speed") name="speed" />
|
||||
<box horizontal homogeneous>
|
||||
<button text=_("&OK") name="ok" magnetic />
|
||||
<button text=_("&Cancel") />
|
||||
</box>
|
||||
</box>
|
||||
</window>
|
55
data/jids/toolconf.jid
Normal file
55
data/jids/toolconf.jid
Normal file
@ -0,0 +1,55 @@
|
||||
<!-- ase -- allegro-sprite-editor: the ultimate sprites factory -->
|
||||
<!-- Copyright (C) 2001-2005, 2007 by David A. Capello -->
|
||||
|
||||
<!-- Read "LEGAL.txt" for more information. -->
|
||||
|
||||
<window text=_("Tools Setup") name="configure_tool">
|
||||
<box vertical>
|
||||
<box horizontal expansive>
|
||||
<box vertical>
|
||||
<separator text=_("General:") horizontal left />
|
||||
<check text=_("Filled") name="filled" />
|
||||
<check text=_("Tiled") name="tiled" />
|
||||
<check text=_("Onionskin") name="onionskin" />
|
||||
<separator text=_("Grid:") horizontal left />
|
||||
<check text=_("Snap to Grid") name="use_grid" />
|
||||
<check text=_("View Grid") name="view_grid" />
|
||||
<button text=_("Set &Grid") name="set_grid" />
|
||||
<separator text=_("Cursor:") horizontal left />
|
||||
<box name="cursor_color_box" /><!-- custom widget -->
|
||||
</box>
|
||||
<box vertical expansive>
|
||||
<separator text=_("Brush:") horizontal left />
|
||||
<box horizontal>
|
||||
<box vertical homogeneous>
|
||||
<label text=_("Size:") />
|
||||
<label text=_("Angle:") />
|
||||
</box>
|
||||
<box vertical homogeneous expansive>
|
||||
<slider min=1 max=32 name="brush_size" />
|
||||
<slider min=0 max=180 name="brush_angle" />
|
||||
</box>
|
||||
<box vertical homogeneous>
|
||||
<box name="brush_type_box" /><!-- custom widget -->
|
||||
<box name="brush_mode_box" /><!-- custom widget -->
|
||||
</box>
|
||||
<box name="brush_preview_box" /><!-- custom widget -->
|
||||
</box>
|
||||
<separator text=_("Glass Dirty:") horizontal left />
|
||||
<slider min=0 max=255 name="glass_dirty" />
|
||||
<separator text=_("Spray:") horizontal left />
|
||||
<box horizontal>
|
||||
<box vertical homogeneous>
|
||||
<label text=_("Spray Width:") />
|
||||
<label text=_("Air Speed:") />
|
||||
</box>
|
||||
<box vertical homogeneous expansive>
|
||||
<slider min=1 max=32 name="spray_width" />
|
||||
<slider min=1 max=100 name="air_speed" />
|
||||
</box>
|
||||
</box>
|
||||
</box>
|
||||
</box>
|
||||
<button text=_("&Close") />
|
||||
</box>
|
||||
</window>
|
272
data/menus.en
Normal file
272
data/menus.en
Normal file
@ -0,0 +1,272 @@
|
||||
# allegro-sprite-editor menus -*- Shell-script -*-
|
||||
# Copyright (C) 2001-2005, 2007 by David A. Capello
|
||||
#
|
||||
# Loader in "src/modules/rootmenu.c"
|
||||
# Check methods in "src/modules/chkmthds.c"
|
||||
#
|
||||
# See "src/script/bindings.src" for the list of available script routines
|
||||
#
|
||||
# Format:
|
||||
# -------
|
||||
#
|
||||
# # <- comment
|
||||
# sub-menu {
|
||||
# menu-item = check_method script_expression [keyboard_bindings...] ;
|
||||
# sprite-list-menu SPRITE_LIST ;
|
||||
# recent-list-menu RECENT_LIST ;
|
||||
# ----
|
||||
# layer-menu LAYER_POPUP {
|
||||
# ...
|
||||
# }
|
||||
# frame-menu FRAME_POPUP {
|
||||
# ...
|
||||
# }
|
||||
# undo-action UNDO_ACCEL = ... ;
|
||||
# redo-action REDO_ACCEL = ... ;
|
||||
# open-film-editor-action FILMEDITOR_ACCEL = ... ;
|
||||
# screenshot-action SCREENSHOT_ACCEL = ... ;
|
||||
# ...
|
||||
# }
|
||||
#
|
||||
# References:
|
||||
# -----------
|
||||
#
|
||||
# script_expression:
|
||||
# The script string to be run.
|
||||
#
|
||||
# keyboard_bindings:
|
||||
# Keys shorcuts for the menu (must be between <...>).
|
||||
# The characters between <...> can not have spaces.
|
||||
# The first key shortcut will be showed in the program.
|
||||
#
|
||||
# ----:
|
||||
# Is a separator
|
||||
#
|
||||
# check_method:
|
||||
# A name of a method to check when this options should be available
|
||||
# on interactive mode:
|
||||
#
|
||||
# always - always is enabled
|
||||
# has_sprite - only when we are editing a sprite
|
||||
# has_layer - only when we are editing a layer
|
||||
# has_layerimage - only when we are editing a layer (of "image" type)
|
||||
# has_image - only when we are editing a image
|
||||
# can_undo - only when we can undo
|
||||
# can_redo - only when we can redo
|
||||
# has_path - sprite has a working path
|
||||
# has_mask - sprite has a region marked
|
||||
# has_imagemask - sprite has a region marked in a image layer
|
||||
# has_clipboard - only when the clipboard can be used in
|
||||
# the current sprite
|
||||
#
|
||||
# menu_bar - menu bar visibility
|
||||
# status_bar - status bar visibility
|
||||
# color_bar - color bar visibility
|
||||
# tool_bar - tool bar visibility
|
||||
#
|
||||
# tool_marker - current tool is marker?
|
||||
# tool_dots - current tool is dots?
|
||||
# tool_pencil - current tool is pencil?
|
||||
# tool_brush - current tool is brush?
|
||||
# tool_floodfill - current tool is floodfill?
|
||||
# tool_spray - current tool is spray?
|
||||
# tool_line - current tool is line?
|
||||
# tool_rectangle - current tool is rectangle?
|
||||
# tool_ellipse - current tool is ellipse?
|
||||
#
|
||||
# is_rec - controls the check status if is recording-screen on/off
|
||||
# is_movingframe - when the user moves a frame in the film editor
|
||||
#
|
||||
|
||||
- {
|
||||
"&Tips" = always "GUI_Tips(true)" <F1> ;
|
||||
"&About" = always "GUI_About()" ;
|
||||
"&Refresh" = always "app_refresh_screen()" <F5> ;
|
||||
----
|
||||
"&Screen Saver" = always "GUI_ScreenSaver()" ;
|
||||
"Set &Graphics Mode" {
|
||||
"&Select" = always "set_gfx(\"interactive\", 0, 0, 0)" ;
|
||||
----
|
||||
"320x200 8" = always "set_gfx(\"autodetect\", 320, 200, 8)" ;
|
||||
"320x240 8" = always "set_gfx(\"autodetect\", 320, 240, 8)" ;
|
||||
"640x480 8" = always "set_gfx(\"autodetect\", 640, 480, 8)" ;
|
||||
"800x600 8" = always "set_gfx(\"autodetect\", 800, 600, 8)" ;
|
||||
----
|
||||
"320x200 16" = always "set_gfx(\"autodetect\", 320, 200, 16)" ;
|
||||
"320x240 16" = always "set_gfx(\"autodetect\", 320, 240, 16)" ;
|
||||
"640x480 16" = always "set_gfx(\"autodetect\", 640, 480, 16)" ;
|
||||
"800x600 16" = always "set_gfx(\"autodetect\", 800, 600, 16)" ;
|
||||
}
|
||||
----
|
||||
"Screen Sh&ot" SCREENSHOT_ACCEL = always "screen_shot()" <F12> ;
|
||||
"Recording Screen" = is_rec "GUI_SwitchREC()" ;
|
||||
----
|
||||
"Reload &Menus" = always "GUI_ReloadMenus()" ;
|
||||
----
|
||||
"Load Session" = always "GUI_LoadSession()" ;
|
||||
"Save Session" = always "GUI_SaveSession()" ;
|
||||
}
|
||||
|
||||
&File {
|
||||
"&New" = always "GUI_NewSprite()" <Ctrl+N> ;
|
||||
"&Open" = always "GUI_OpenSprite()" <Ctrl+O> <F3> ;
|
||||
"Open &Recent" RECENT_LIST ;
|
||||
----
|
||||
"&Save" = has_sprite "GUI_SaveSprite()" <Ctrl+S> <F2> ;
|
||||
"&Close" = has_sprite "GUI_CloseSprite()" <Ctrl+W> ;
|
||||
----
|
||||
"E&xit" = always "GUI_Exit()" <Ctrl+Q> <Esc> ;
|
||||
}
|
||||
|
||||
&Edit {
|
||||
"&Undo" UNDO_ACCEL = can_undo "GUI_Undo()" <Ctrl+Z> <Ctrl+U> ;
|
||||
"&Redo" REDO_ACCEL = can_redo "GUI_Redo()" <Ctrl+R> ;
|
||||
----
|
||||
"Cu&t" = has_imagemask "cut_to_clipboard()" <Ctrl+X> <Shift+Del> ;
|
||||
"&Copy" = has_imagemask "copy_to_clipboard()" <Ctrl+C> <Ctrl+Ins> ;
|
||||
"&Paste" = has_clipboard "paste_from_clipboard(true, 0, 0, 0, 0)" <Ctrl+V> <Shift+Ins> ;
|
||||
"C&lear" = has_image "GUI_EditClear()" <Ctrl+B> <Ctrl+Del> ;
|
||||
----
|
||||
"Quick &Move" = has_imagemask "quick_move()" <Shift+M> ;
|
||||
"Quick C&opy" = has_imagemask "quick_copy()" <Shift+C> ;
|
||||
# "Quick S&wap" = has_imagemask "quick_swap()" <Shift+S> ;
|
||||
----
|
||||
"Flip &Horizontal" = has_image "GUI_FlipHorizontal()" <Shift+H> ;
|
||||
"Flip &Vertical" = has_image "GUI_FlipVertical()" <Shift+V> ;
|
||||
----
|
||||
"R&eplace Color" = has_image "GUI_ReplaceColor()" </> ;
|
||||
"&Invert" = has_image "GUI_InvertColor()" <Ctrl+I> ;
|
||||
}
|
||||
|
||||
&Sprite {
|
||||
"&Properties" = has_sprite "GUI_SpriteProperties()" <Ctrl+P> ;
|
||||
----
|
||||
"&Duplicate" = has_sprite "GUI_DuplicateSprite()" ;
|
||||
"Image &Type" = has_sprite "GUI_ImageType()" ;
|
||||
----
|
||||
#"&Image Resize" = has_sprite "print(\"Unavailable\")" ;
|
||||
#"&Canvas Resize" = has_sprite "canvas_resize()" ;
|
||||
"Cr&op" = has_mask "crop_sprite()" ;
|
||||
"&Auto Crop" = has_sprite "autocrop_sprite()" ;
|
||||
}
|
||||
|
||||
&Layer LAYER_POPUP {
|
||||
"&Properties" = has_layer "GUI_LayerProperties()" <Shift+P> ;
|
||||
----
|
||||
"&New" = has_sprite "GUI_NewLayer()" <Shift+N> ;
|
||||
"New &Set" = has_sprite "GUI_NewLayerSet()" ;
|
||||
"&Remove" = has_layer "GUI_RemoveLayer()" ;
|
||||
----
|
||||
"&Duplicate" = has_layer "GUI_DuplicateLayer()" ;
|
||||
"&Merge Down" = has_layer "GUI_MergeDown()" ;
|
||||
"&Flatten" = has_layer "FlattenLayers()" ;
|
||||
"Cr&op" = has_mask "crop_layer()" ;
|
||||
}
|
||||
|
||||
F&rame FRAME_POPUP {
|
||||
"&Properties" = has_image "GUI_FrameProperties()" <Ctrl+Shift+P> ;
|
||||
"&Remove" = has_image "GUI_RemoveFrame()" ;
|
||||
----
|
||||
"&New" = has_layerimage "new_frame()" <Ctrl+Shift+N> ;
|
||||
"&Move" = is_movingframe "move_frame()" ;
|
||||
"&Copy" = is_movingframe "copy_frame()" ;
|
||||
"&Link" = is_movingframe "link_frame()" ;
|
||||
----
|
||||
"Cr&op" = has_imagemask "crop_frame()" ;
|
||||
}
|
||||
|
||||
&Mask {
|
||||
"&All" = has_sprite "MaskAll()" <Ctrl+A> ;
|
||||
"&Deselect" = has_mask "DeselectMask()" <Ctrl+D> ;
|
||||
"&Reselect" = has_sprite "ReselectMask()" <Shift+Ctrl+D> ;
|
||||
"&Invert" = has_sprite "InvertMask()" <Shift+Ctrl+I> ;
|
||||
# "&Shrink" = has_imagemask "selection(current_sprite, SEL_SHRINK)" ;
|
||||
----
|
||||
"&Color" = has_image "GUI_MaskColor()" <?> ;
|
||||
"S&pecial" {
|
||||
"Stretch &Bottom" = has_mask "StretchMaskBottom()" ;
|
||||
}
|
||||
----
|
||||
"Repositor&y" = has_sprite "GUI_MaskRepository()" <Shift+Ctrl+M> ;
|
||||
"&Load" = has_sprite "GUI_LoadMask()" ;
|
||||
"&Save" = has_mask "GUI_SaveMask()" ;
|
||||
}
|
||||
|
||||
# XXX
|
||||
# &Path {
|
||||
# "&Repository" = has_sprite "print(\"Unavailable\")" <Shift+Ctrl+P> ;
|
||||
# "&Load" = has_sprite "print(\"Unavailable\")" ;
|
||||
# "&Save" = has_path "print(\"Unavailable\")" ;
|
||||
# }
|
||||
|
||||
&Tool {
|
||||
"&Drawing Tool" {
|
||||
"&Configure" = always "GUI_ToolsConfiguration()" <C> ;
|
||||
----
|
||||
"&Marker" = tool_marker "select_tool(\"Marker\")" <M> ;
|
||||
"&Dots" = tool_dots "select_tool(\"Dots\")" <D> ;
|
||||
"&Pencil" = tool_pencil "select_tool(\"Pencil\")" <P> ;
|
||||
"&Brush (real pencil)" = tool_brush "select_tool(\"Brush\")" <B> ;
|
||||
"&Floodfill" = tool_floodfill "select_tool(\"Floodfill\")" <F> ;
|
||||
"&Spray" = tool_spray "select_tool(\"Spray\")" <S> ;
|
||||
"&Line" = tool_line "select_tool(\"Line\")" <L> ;
|
||||
"&Rectangle" = tool_rectangle "select_tool(\"Rectangle\")" <R> ;
|
||||
"&Ellipse" = tool_ellipse "select_tool(\"Ellipse\")" <E> ;
|
||||
# "&Oval" = tool_path "select_tool(\"Oval\")" <O> ;
|
||||
}
|
||||
&Filters FILTERS_POPUP {
|
||||
"Convolution &Matrix" = has_image "GUI_ConvolutionMatrix()" <F9> ;
|
||||
"&Color Curve" = has_image "GUI_ColorCurve()" <Ctrl+M> <F10> ;
|
||||
#"&Gaussian Blur" = has_image "gaussian_blur(current_sprite)" ;
|
||||
#"&Vector Map" = has_image "GUI_VectorMap()" ;
|
||||
----
|
||||
"&Despeckle (median filter)" = has_image "GUI_MedianFilter()" ;
|
||||
}
|
||||
# "Make &Undo Animation" = has_sprite
|
||||
# "sprite = make_undo_animation(current_sprite)
|
||||
# if sprite ~= nil then select_sprite(sprite) end" ;
|
||||
&Scripts {
|
||||
"Load script &file" = always "GUI_LoadScriptFile()" <Ctrl+0> ;
|
||||
----
|
||||
"aselogo.lua" = always "include(\"examples/aselogo.lua\")" ;
|
||||
"cosy.lua" = always "include(\"examples/cosy.lua\")" ;
|
||||
"dacap.lua" = always "include(\"examples/dacap.lua\")" ;
|
||||
"shell.lua" = always "include(\"examples/shell.lua\")" ;
|
||||
"spiral.lua" = always "include(\"examples/spiral.lua\")" ;
|
||||
"terrain.lua" = always "include(\"examples/terrain.lua\")" ;
|
||||
}
|
||||
----
|
||||
"Draw &Text" = has_sprite "GUI_DrawText()" ;
|
||||
"&MapGen" = always "GUI_MapGen()" ;
|
||||
"&Play FLI/FLC File" = always "GUI_PlayFLI()" ;
|
||||
# ----
|
||||
# "Test &JID File" = always "GUI_TestJID()" ;
|
||||
----
|
||||
"&Options" = always "GUI_Options()" <Shift+Ctrl+O> ;
|
||||
}
|
||||
|
||||
&View {
|
||||
"&Tiled" = has_sprite "view_tiled()" <F8> ;
|
||||
"&Normal" = has_sprite "view_normal()" <F7> ;
|
||||
"&Fullscreen" = has_sprite "view_fullscreen()" ;
|
||||
----
|
||||
"&Menu Bar" = menu_bar "app_switch(app_get_menu_bar())" <Ctrl+F1> ;
|
||||
"&Status Bar" = status_bar "app_switch(app_get_status_bar())" <Ctrl+F2> ;
|
||||
"&Color Bar" = color_bar "app_switch(app_get_color_bar())" <Ctrl+F3> ;
|
||||
"T&ool Bar" = tool_bar "app_switch(app_get_tool_bar())" <Ctrl+F4> ;
|
||||
----
|
||||
&Editor {
|
||||
"Make &Unique" = always "make_unique_editor(current_editor)" <Ctrl+1> ;
|
||||
----
|
||||
"Split &Vertically" = always "split_editor(current_editor, JI_VERTICAL)" <Ctrl+2> ;
|
||||
"Split &Horizontally" = always "split_editor(current_editor, JI_HORIZONTAL)" <Ctrl+3> ;
|
||||
----
|
||||
"&Close" = always "close_editor(current_editor)" <Ctrl+4> ;
|
||||
}
|
||||
"Fi&lm Editor" FILMEDITOR_ACCEL = has_sprite "switch_between_film_and_sprite_editor()" <Tab> ;
|
||||
"&Palette Editor" = always "show_palette_editor()" <F4> ;
|
||||
----
|
||||
"F&ilters Popup Menu" = always "show_filters_popup_menu()" <X> ;
|
||||
}
|
||||
|
||||
L&ist SPRITE_LIST ;
|
189
data/menus.es
Normal file
189
data/menus.es
Normal file
@ -0,0 +1,189 @@
|
||||
# allegro-sprite-editor menus -*- Shell-script -*-
|
||||
# Copyright (C) 2001-2005, 2007 by David A. Capello
|
||||
#
|
||||
# Spanish menus (see menus.en for more information)
|
||||
|
||||
- {
|
||||
"&Tips" = always "GUI_Tips(true)" <F1> ;
|
||||
"&Acerca de" = always "GUI_About()" ;
|
||||
"&Refrescar" = always "app_refresh_screen()" <F5> ;
|
||||
----
|
||||
"&Protector de Pantalla" = always "GUI_ScreenSaver()" ;
|
||||
"Cambiar Modo &Gráfico" {
|
||||
"&Seleccionar" = always "set_gfx(\"interactive\", 0, 0, 0)" ;
|
||||
----
|
||||
"320x200 8" = always "set_gfx(\"autodetect\", 320, 200, 8)" ;
|
||||
"320x240 8" = always "set_gfx(\"autodetect\", 320, 240, 8)" ;
|
||||
"640x480 8" = always "set_gfx(\"autodetect\", 640, 480, 8)" ;
|
||||
"800x600 8" = always "set_gfx(\"autodetect\", 800, 600, 8)" ;
|
||||
----
|
||||
"320x200 16" = always "set_gfx(\"autodetect\", 320, 200, 16)" ;
|
||||
"320x240 16" = always "set_gfx(\"autodetect\", 320, 240, 16)" ;
|
||||
"640x480 16" = always "set_gfx(\"autodetect\", 640, 480, 16)" ;
|
||||
"800x600 16" = always "set_gfx(\"autodetect\", 800, 600, 16)" ;
|
||||
}
|
||||
----
|
||||
"Screen Sh&ot" SCREENSHOT_ACCEL = always "screen_shot()" <F12> ;
|
||||
"G&rabar Pantalla" = is_rec "GUI_SwitchREC()" ;
|
||||
----
|
||||
"Recargar los &Menus" = always "GUI_ReloadMenus()" ;
|
||||
----
|
||||
"Cargar Sesión" = always "GUI_LoadSession()" ;
|
||||
"Guardar Sesión" = always "GUI_SaveSession()" ;
|
||||
}
|
||||
|
||||
&Archivo {
|
||||
"&Nuevo" = always "GUI_NewSprite()" <Ctrl+N> ;
|
||||
"&Abrir" = always "GUI_OpenSprite()" <Ctrl+O> <F3> ;
|
||||
"Abrir &Reciente" RECENT_LIST ;
|
||||
----
|
||||
"&Guardar" = has_sprite "GUI_SaveSprite()" <Ctrl+S> <F2> ;
|
||||
"&Cerrar" = has_sprite "GUI_CloseSprite()" <Ctrl+W> ;
|
||||
----
|
||||
"&Salir" = always "GUI_Exit()" <Ctrl+Q> <Esc> ;
|
||||
}
|
||||
|
||||
&Edit {
|
||||
"&Deshacer" UNDO_ACCEL = can_undo "GUI_Undo()" <Ctrl+Z> <Ctrl+U> ;
|
||||
"&Rehacer" REDO_ACCEL = can_redo "GUI_Redo()" <Ctrl+R> ;
|
||||
----
|
||||
"Cortar" = has_imagemask "cut_to_clipboard()" <Ctrl+X> <Shift+Del> ;
|
||||
"Copiar" = has_imagemask "copy_to_clipboard()" <Ctrl+C> <Ctrl+Ins> ;
|
||||
"Pegar" = has_clipboard "paste_from_clipboard(true, 0, 0, 0, 0)" <Ctrl+V> <Shift+Ins> ;
|
||||
"Borrar" = has_image "GUI_EditClear()" <Ctrl+B> <Ctrl+Del> ;
|
||||
----
|
||||
"Movimiento Rápido" = has_imagemask "quick_move()" <Shift+M> ;
|
||||
"Copia Rápida" = has_imagemask "quick_copy()" <Shift+C> ;
|
||||
# "Intercambio Rápido" = has_imagemask "quick_swap()" <Shift+S> ;
|
||||
----
|
||||
"Flip &Horizontal" = has_image "GUI_FlipHorizontal()" <Shift+H> ;
|
||||
"Flip &Vertical" = has_image "GUI_FlipVertical()" <Shift+V> ;
|
||||
----
|
||||
"Reemplazar Color" = has_image "GUI_ReplaceColor()" </> ;
|
||||
"Invertir" = has_image "GUI_InvertColor()" <Ctrl+I> ;
|
||||
}
|
||||
|
||||
&Sprite {
|
||||
"&Propiedades" = has_sprite "GUI_SpriteProperties()" <Ctrl+P> ;
|
||||
----
|
||||
"&Duplicar" = has_sprite "GUI_DuplicateSprite()" ;
|
||||
"&Tipo de Imagen" = has_sprite "GUI_ImageType()" ;
|
||||
----
|
||||
#"Tamaño de &Imagen" = has_sprite "print(\"Unavailable\")" ;
|
||||
#"&Canvas Resize" = has_sprite "canvas_resize()" ;
|
||||
"Rec&ortar" = has_mask "crop_sprite()" ;
|
||||
"Recortar &Automáticamente" = has_sprite "autocrop_sprite()" ;
|
||||
}
|
||||
|
||||
&Layer LAYER_POPUP {
|
||||
"&Propiedades" = has_layer "GUI_LayerProperties()" <Shift+P> ;
|
||||
----
|
||||
"&Nueva Capa" = has_sprite "GUI_NewLayer()" <Shift+N> ;
|
||||
"Nuevo Con&junto" = has_sprite "GUI_NewLayerSet()" ;
|
||||
"&Remover" = has_layer "GUI_RemoveLayer()" ;
|
||||
----
|
||||
"&Duplicar" = has_layer "GUI_DuplicateLayer()" ;
|
||||
"&Mezclar Abajo" = has_layer "GUI_MergeDown()" ;
|
||||
"&Aplanar" = has_layer "FlattenLayers()" ;
|
||||
"Rec&ortar" = has_mask "crop_layer()" ;
|
||||
}
|
||||
|
||||
F&rame FRAME_POPUP {
|
||||
"&Propiedades" = has_layer "GUI_FrameProperties()" <Ctrl+Shift+P> ;
|
||||
"&Remover" = has_image "GUI_RemoveFrame()" ;
|
||||
----
|
||||
"&Nuevo" = has_layerimage "new_frame()" <Ctrl+Shift+N> ;
|
||||
"&Mover" = is_movingframe "move_frame()" ;
|
||||
"&Copiar" = is_movingframe "copy_frame()" ;
|
||||
"En&lazar" = is_movingframe "link_frame()" ;
|
||||
----
|
||||
"Rec&ortar" = has_imagemask "crop_frame()" ;
|
||||
}
|
||||
|
||||
&Mask {
|
||||
"&Todo" = has_sprite "MaskAll()" <Ctrl+A> ;
|
||||
"&Deseleccionar" = has_mask "DeselectMask()" <Ctrl+D> ;
|
||||
"&Reseleccionar" = has_sprite "ReselectMask()" <Shift+Ctrl+D> ;
|
||||
"&Invertir" = has_sprite "InvertMask()" <Shift+Ctrl+I> ;
|
||||
----
|
||||
"&Color" = has_image "GUI_MaskColor()" <?> ;
|
||||
"&Especial" {
|
||||
"Estirar &Fondo" = has_mask "StretchMaskBottom()" ;
|
||||
}
|
||||
----
|
||||
"Repositorio" = has_sprite "GUI_MaskRepository()" <Shift+Ctrl+M> ;
|
||||
"Cargar" = has_sprite "GUI_LoadMask()" ;
|
||||
"Guardar" = has_mask "GUI_SaveMask()" ;
|
||||
}
|
||||
|
||||
# XXX
|
||||
# &Path {
|
||||
# "Repositorio" = has_sprite "print(\"Unavailable\")" <Shift+Ctrl+P> ;
|
||||
# "Cargar" = has_sprite "print(\"Unavailable\")" ;
|
||||
# "Guardar" = has_path "print(\"Unavailable\")" ;
|
||||
# }
|
||||
|
||||
&Tool {
|
||||
"&Herramientas de Dibujo" {
|
||||
"&Configurar" = always "GUI_ToolsConfiguration()" <C> ;
|
||||
----
|
||||
"&Marcador" = tool_marker "select_tool(\"Marker\")" <M> ;
|
||||
"Puntos" = tool_dots "select_tool(\"Dots\")" <D> ;
|
||||
"Pincel" = tool_pencil "select_tool(\"Pencil\")" <P> ;
|
||||
"&Brocha (pincel real)" = tool_brush "select_tool(\"Brush\")" <B> ;
|
||||
"Relleno" = tool_floodfill "select_tool(\"Floodfill\")" <F> ;
|
||||
"&Spray" = tool_spray "select_tool(\"Spray\")" <S> ;
|
||||
"&Línea" = tool_line "select_tool(\"Line\")" <L> ;
|
||||
"&Rectángulo" = tool_rectangle "select_tool(\"Rectangle\")" <R> ;
|
||||
"&Elipse" = tool_ellipse "select_tool(\"Ellipse\")" <E> ;
|
||||
}
|
||||
&Filtros FILTERS_POPUP {
|
||||
"&Matriz de Convolución" = has_image "GUI_ConvolutionMatrix()" <F9> ;
|
||||
"&Curva de Color" = has_image "GUI_ColorCurve()" <Ctrl+M> <F10> ;
|
||||
# "Mapa de &Vectores" = has_image "GUI_VectorMap()" <F11> ;
|
||||
----
|
||||
"&Reducción de ruido (filtrado por mediana)" = has_image "GUI_MedianFilter()" ;
|
||||
}
|
||||
&Scripts {
|
||||
"Cargar script desde &archivo" = always "GUI_LoadScriptFile()" <Ctrl+0> ;
|
||||
----
|
||||
"aselogo.lua" = always "include(\"examples/aselogo.lua\")" ;
|
||||
"cosy.lua" = always "include(\"examples/cosy.lua\")" ;
|
||||
"dacap.lua" = always "include(\"examples/dacap.lua\")" ;
|
||||
"shell.lua" = always "include(\"examples/shell.lua\")" ;
|
||||
"spiral.lua" = always "include(\"examples/spiral.lua\")" ;
|
||||
"terrain.lua" = always "include(\"examples/terrain.lua\")" ;
|
||||
}
|
||||
----
|
||||
"Dibujar &Texto" = has_sprite "GUI_DrawText()" ;
|
||||
"&MapGen" = always "GUI_MapGen()" ;
|
||||
"&Reproducir Archivo FLI/FLC" = always "GUI_PlayFLI()" ;
|
||||
----
|
||||
"&Opciones" = always "GUI_Options()" <Shift+Ctrl+O> ;
|
||||
}
|
||||
|
||||
&Ver {
|
||||
"&Alicatado" = has_sprite "view_tiled()" <F8> ;
|
||||
"&Normal" = has_sprite "view_normal()" <F7> ;
|
||||
"Pantalla c&ompleta" = has_sprite "view_fullscreen()" ;
|
||||
----
|
||||
"Barra de &Menu" = menu_bar "app_switch(app_get_menu_bar())" <Ctrl+F1> ;
|
||||
"Barra de E&stado" = status_bar "app_switch(app_get_status_bar())" <Ctrl+F2> ;
|
||||
"Barra de &Colores" = color_bar "app_switch(app_get_color_bar())" <Ctrl+F3> ;
|
||||
"Barra de &Herramientas" = tool_bar "app_switch(app_get_tool_bar())" <Ctrl+F4> ;
|
||||
----
|
||||
&Editor {
|
||||
"Hacer &Único" = always "make_unique_editor(current_editor)" <Ctrl+1> ;
|
||||
----
|
||||
"Dividir &Verticalmente" = always "split_editor(current_editor, JI_VERTICAL)" <Ctrl+2> ;
|
||||
"Dividir &Horizontalmente" = always "split_editor(current_editor, JI_HORIZONTAL)" <Ctrl+3> ;
|
||||
----
|
||||
"&Cerrar" = always "close_editor(current_editor)" <Ctrl+4> ;
|
||||
}
|
||||
"E&ditor de Película" FILMEDITOR_ACCEL = has_sprite "switch_between_film_and_sprite_editor()" <TAB>
|
||||
"&Paleta de Colores" = always "show_palette_editor()" <F4> ;
|
||||
----
|
||||
"Popup Menu de &Filtros" = always "show_filters_popup_menu()" <X> ;
|
||||
}
|
||||
|
||||
L&ista SPRITE_LIST ;
|
BIN
data/palettes/default.col
Normal file
BIN
data/palettes/default.col
Normal file
Binary file not shown.
BIN
data/palettes/grayramp.col
Normal file
BIN
data/palettes/grayramp.col
Normal file
Binary file not shown.
BIN
data/palettes/terrain1.col
Normal file
BIN
data/palettes/terrain1.col
Normal file
Binary file not shown.
1445
data/po/es.po
Normal file
1445
data/po/es.po
Normal file
File diff suppressed because it is too large
Load Diff
28
data/scripts/closespr.lua
Normal file
28
data/scripts/closespr.lua
Normal file
@ -0,0 +1,28 @@
|
||||
-- ase -- allegro-sprite-editor: the ultimate sprites factory
|
||||
-- Copyright (C) 2001-2005 by David A. Capello
|
||||
|
||||
function GUI_CloseSprite()
|
||||
if not current_sprite then return end
|
||||
|
||||
-- see if the sprite has changes
|
||||
while sprite_is_modified(current_sprite) do
|
||||
-- ask what want to do the user with the changes in the sprite
|
||||
local ret = jalert(_("Warning")..
|
||||
"<<".._("Saving changes in:")..
|
||||
"<<"..get_filename(current_sprite.filename)..
|
||||
"||".._("&Save||&Discard||&Cancel"))
|
||||
|
||||
if ret == 1 then
|
||||
-- "save": save the changes
|
||||
GUI_SaveSprite() -- call this routine from savespr.lua
|
||||
elseif ret != 2 then
|
||||
-- "cancel" or <esc>
|
||||
return -- we back doing nothing
|
||||
else
|
||||
-- "discard"
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
CloseSprite()
|
||||
end
|
71
data/scripts/confjpeg.lua
Normal file
71
data/scripts/confjpeg.lua
Normal file
@ -0,0 +1,71 @@
|
||||
-- ase -- allegro-sprite-editor: the ultimate sprites factory
|
||||
-- Copyright (C) 2001-2005 by David A. Capello
|
||||
|
||||
-- shows the JPEG configuration dialog
|
||||
function ConfigureJPEG()
|
||||
-- configuration parameters
|
||||
local quality = get_config_int("JPEG", "Quality", 100)
|
||||
local smooth = get_config_int("JPEG", "Smooth", 0)
|
||||
local method = get_config_int("JPEG", "Method", 0)
|
||||
-- widgets
|
||||
local window = jwindow_new(_("Configure JPEG Compression"))
|
||||
local box1 = jbox_new(JI_VERTICAL)
|
||||
local box2 = jbox_new(JI_HORIZONTAL)
|
||||
local box3 = jbox_new(JI_VERTICAL + JI_HOMOGENEOUS)
|
||||
local box4 = jbox_new(JI_VERTICAL + JI_HOMOGENEOUS)
|
||||
local box5 = jbox_new(JI_HORIZONTAL + JI_HOMOGENEOUS)
|
||||
local label_quality = jlabel_new(_("Quality:"), JI_LEFT)
|
||||
local label_smooth = jlabel_new(_("Smooth:"), JI_LEFT)
|
||||
local label_method = jlabel_new(_("Method:"), JI_LEFT)
|
||||
local slider_quality = jslider_new(0, 100, quality)
|
||||
local slider_smooth = jslider_new(0, 100, smooth)
|
||||
local view_method = jview_new()
|
||||
local list_method = jlistbox_new()
|
||||
local button_ok = jbutton_new(_("&OK"))
|
||||
local button_cancel = jbutton_new(_("&Cancel"))
|
||||
local ret
|
||||
|
||||
jwidget_add_child (list_method, jlistitem_new(_("Slow")))
|
||||
jwidget_add_child (list_method, jlistitem_new(_("Fast")))
|
||||
jwidget_add_child (list_method, jlistitem_new(_("Float")))
|
||||
jlistbox_select_index(list_method, method)
|
||||
|
||||
jview_attach(view_method, list_method)
|
||||
jview_maxsize(view_method)
|
||||
|
||||
jwidget_expansive(box4, true)
|
||||
jwidget_expansive(view_method, true)
|
||||
|
||||
jwidget_add_child (box3, label_quality)
|
||||
jwidget_add_child (box3, label_smooth)
|
||||
jwidget_add_child (box4, slider_quality)
|
||||
jwidget_add_child (box4, slider_smooth)
|
||||
jwidget_add_child (box2, box3)
|
||||
jwidget_add_child (box2, box4)
|
||||
jwidget_add_child (box1, box2)
|
||||
jwidget_add_child (box1, label_method)
|
||||
jwidget_add_child (box1, view_method)
|
||||
jwidget_add_child (box5, button_ok)
|
||||
jwidget_add_child (box5, button_cancel)
|
||||
jwidget_add_child (box1, box5)
|
||||
jwidget_add_child (window, box1)
|
||||
|
||||
jwindow_open_fg(window)
|
||||
|
||||
if jwindow_get_killer(window) == button_ok then
|
||||
ret = true
|
||||
|
||||
quality = jslider_get_value(slider_quality)
|
||||
smooth = jslider_get_value(slider_smooth)
|
||||
method = jlistbox_get_selected_index(list_method)
|
||||
|
||||
set_config_int("JPEG", "Quality", quality)
|
||||
set_config_int("JPEG", "Smooth", smooth)
|
||||
set_config_int("JPEG", "Method", method)
|
||||
else
|
||||
ret = false
|
||||
end
|
||||
|
||||
jwidget_free(window)
|
||||
return ret
|
||||
end
|
42
data/scripts/duplay.lua
Normal file
42
data/scripts/duplay.lua
Normal file
@ -0,0 +1,42 @@
|
||||
-- ase -- allegro-sprite-editor: the ultimate sprites factory
|
||||
-- Copyright (C) 2001-2005 by David A. Capello
|
||||
|
||||
function DuplicateLayer()
|
||||
local sprite = current_sprite
|
||||
|
||||
if not sprite or not sprite.layer then
|
||||
return nil
|
||||
end
|
||||
|
||||
local layer_copy = layer_new_copy(sprite.layer)
|
||||
if not layer_copy then
|
||||
print("Not enough memory")
|
||||
return nil
|
||||
end
|
||||
|
||||
layer_set_name(layer_copy, layer_copy.name .. " Copy")
|
||||
|
||||
if undo_is_enabled(sprite.undo) then
|
||||
undo_open(sprite.undo)
|
||||
undo_add_layer(sprite.undo, sprite.layer.parent, layer_copy)
|
||||
end
|
||||
|
||||
layer_add_layer(sprite.layer.parent, layer_copy)
|
||||
|
||||
if undo_is_enabled(sprite.undo) then
|
||||
undo_move_layer(sprite.undo, layer_copy)
|
||||
undo_set_layer(sprite.undo, sprite)
|
||||
undo_close(sprite.undo)
|
||||
end
|
||||
|
||||
layer_move_layer(sprite.layer.parent, layer_copy, sprite.layer)
|
||||
sprite_set_layer(sprite, layer_copy)
|
||||
|
||||
return layer_copy
|
||||
end
|
||||
|
||||
function GUI_DuplicateLayer()
|
||||
if DuplicateLayer() then
|
||||
GUI_Refresh(current_sprite)
|
||||
end
|
||||
end
|
49
data/scripts/dupspr.lua
Normal file
49
data/scripts/dupspr.lua
Normal file
@ -0,0 +1,49 @@
|
||||
-- ase -- allegro-sprite-editor: the ultimate sprites factory
|
||||
-- Copyright (C) 2001-2005 by David A. Capello
|
||||
|
||||
function GUI_DuplicateSprite()
|
||||
local sprite = current_sprite
|
||||
if not sprite then return end
|
||||
|
||||
-- load the window widget
|
||||
local window = ji_load_widget("dupspr.jid", "duplicate_sprite")
|
||||
if not window then return end
|
||||
|
||||
local src_name, dst_name, flatten
|
||||
= jwidget_find_name(window, "src_name"),
|
||||
jwidget_find_name(window, "dst_name"),
|
||||
jwidget_find_name(window, "flatten")
|
||||
|
||||
jwidget_set_text(src_name, get_filename(sprite.filename))
|
||||
jwidget_set_text(dst_name, sprite.filename .. " Copy")
|
||||
|
||||
if get_config_bool("DuplicateSprite", "Flatten", false) then
|
||||
jwidget_select(flatten)
|
||||
end
|
||||
|
||||
-- open the window
|
||||
jwindow_open_fg(window)
|
||||
|
||||
if jwindow_get_killer(window) == jwidget_find_name(window, "ok") then
|
||||
set_config_bool("DuplicateSprite", "Flatten",
|
||||
jwidget_is_selected(flatten))
|
||||
|
||||
local sprite_copy
|
||||
|
||||
if jwidget_is_selected(flatten) then
|
||||
sprite_copy = sprite_new_flatten_copy(sprite)
|
||||
else
|
||||
sprite_copy = sprite_new_copy(sprite)
|
||||
end
|
||||
|
||||
if sprite_copy then
|
||||
sprite_set_filename(sprite_copy, jwidget_get_text(dst_name))
|
||||
|
||||
sprite_mount(sprite_copy)
|
||||
set_current_sprite(sprite_copy)
|
||||
sprite_show(sprite_copy)
|
||||
end
|
||||
end
|
||||
|
||||
jwidget_free(window)
|
||||
end
|
14
data/scripts/edit.lua
Normal file
14
data/scripts/edit.lua
Normal file
@ -0,0 +1,14 @@
|
||||
-- ase -- allegro-sprite-editor: the ultimate sprites factory
|
||||
-- Copyright (C) 2001-2005 by David A. Capello
|
||||
|
||||
function GUI_EditClear()
|
||||
-- get current sprite
|
||||
local sprite = current_sprite
|
||||
if not sprite then return end
|
||||
|
||||
-- clear the mask
|
||||
ClearMask()
|
||||
|
||||
-- refresh the sprite
|
||||
GUI_Refresh(sprite)
|
||||
end
|
126
data/scripts/effect.lua
Normal file
126
data/scripts/effect.lua
Normal file
@ -0,0 +1,126 @@
|
||||
-- ase -- allegro-sprite-editor: the ultimate sprites factory
|
||||
-- Copyright (C) 2001-2005 by David A. Capello
|
||||
|
||||
----------------------------------------------------------------------
|
||||
-- Convolution Matrix
|
||||
|
||||
-- you should use set_tiled_mode() before
|
||||
function ConvolutionMatrix(name, r, g, b, k, a, index)
|
||||
local image, x, y = GetImage2 (current_sprite)
|
||||
if image then
|
||||
local effect = effect_new(current_sprite, "convolution_matrix")
|
||||
if effect then
|
||||
local convmatr = get_convmatr_by_name(name)
|
||||
if convmatr then
|
||||
set_convmatr(convmatr)
|
||||
effect_set_target(effect, r, g, b, k, a, index)
|
||||
effect_apply_to_image(effect, image, x, y)
|
||||
end
|
||||
effect_free(effect)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function ConvolutionMatrixRGB(name)
|
||||
ConvolutionMatrix(name, true, true, true, false, false, false)
|
||||
end
|
||||
|
||||
function ConvolutionMatrixRGBA(name)
|
||||
ConvolutionMatrix(name, true, true, true, false, true, false)
|
||||
end
|
||||
|
||||
function ConvolutionMatrixGray(name)
|
||||
ConvolutionMatrix(name, false, false, false, true, false, false)
|
||||
end
|
||||
|
||||
function ConvolutionMatrixGrayA(name)
|
||||
ConvolutionMatrix(name, false, false, false, true, true, false)
|
||||
end
|
||||
|
||||
function ConvolutionMatrixIndex(name)
|
||||
ConvolutionMatrix(name, false, false, false, false, false, true)
|
||||
end
|
||||
|
||||
function ConvolutionMatrixAlpha(name)
|
||||
ConvolutionMatrix(name, false, false, false, false, true, false)
|
||||
end
|
||||
|
||||
----------------------------------------------------------------------
|
||||
-- Color Curve
|
||||
|
||||
function _ColorCurve(curve, r, g, b, k, a, index)
|
||||
local image, x, y = GetImage2 (current_sprite)
|
||||
if image then
|
||||
local effect = effect_new(current_sprite, "color_curve")
|
||||
if effect then
|
||||
set_color_curve(curve)
|
||||
effect_set_target(effect, r, g, b, k, a, index)
|
||||
effect_apply_to_image(effect, image, x, y)
|
||||
effect_free(effect)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function _ColorCurveRGB(curve)
|
||||
_ColorCurve(curve, true, true, true, false, false, false)
|
||||
end
|
||||
|
||||
function _ColorCurveRGBA(curve)
|
||||
_ColorCurve(curve, true, true, true, false, true, false)
|
||||
end
|
||||
|
||||
function _ColorCurveGray(curve)
|
||||
_ColorCurve(curve, false, false, false, true, false, false)
|
||||
end
|
||||
|
||||
function _ColorCurveGrayA(curve)
|
||||
_ColorCurve(curve, false, false, false, true, true, false)
|
||||
end
|
||||
|
||||
function _ColorCurveIndex(curve)
|
||||
_ColorCurve(curve, false, false, false, false, false, true)
|
||||
end
|
||||
|
||||
function _ColorCurveAlpha(curve)
|
||||
_ColorCurve(curve, false, false, false, false, true, false)
|
||||
end
|
||||
|
||||
----------------------------------------------------------------------
|
||||
-- Color Curve(with array)
|
||||
|
||||
function ColorCurve(array, r, g, b, k, a, index)
|
||||
local curve = curve_new(CURVE_LINEAR)
|
||||
local c
|
||||
|
||||
for c in array do
|
||||
curve_add_point(curve, curve_point_new(array[c], array[c+1]))
|
||||
c = c+1
|
||||
end
|
||||
|
||||
_ColorCurve(curve, r, g, b, k, a, index)
|
||||
curve_free(curve)
|
||||
end
|
||||
|
||||
function ColorCurveRGB(array)
|
||||
ColorCurve(array, true, true, true, false, false, false)
|
||||
end
|
||||
|
||||
function ColorCurveRGBA(array)
|
||||
ColorCurve(array, true, true, true, false, true, false)
|
||||
end
|
||||
|
||||
function ColorCurveGray(array)
|
||||
ColorCurve(array, false, false, false, true, false, false)
|
||||
end
|
||||
|
||||
function ColorCurveGrayA(array)
|
||||
ColorCurve(array, false, false, false, true, true, false)
|
||||
end
|
||||
|
||||
function ColorCurveIndex(array)
|
||||
ColorCurve(array, false, false, false, false, false, true)
|
||||
end
|
||||
|
||||
function ColorCurveAlpha(array)
|
||||
ColorCurve(array, false, false, false, false, true, false)
|
||||
end
|
123
data/scripts/examples/aselogo.lua
Normal file
123
data/scripts/examples/aselogo.lua
Normal file
@ -0,0 +1,123 @@
|
||||
-- ase -- allegro-sprite-editor: the ultimate sprites factory
|
||||
-- Copyright (C) 2001-2005 by David A. Capello
|
||||
|
||||
-- create an rectangle in the path
|
||||
local function path_rectangle(path, x, y, w, h)
|
||||
path_moveto(path, x, y)
|
||||
path_lineto(path, x+w, y)
|
||||
path_lineto(path, x+w, y+h)
|
||||
path_lineto(path, x, y+h)
|
||||
path_close(path)
|
||||
end
|
||||
|
||||
-- create an ellipse in the path
|
||||
local function path_ellipse(path, x, y, a, b)
|
||||
a = a - 1
|
||||
b = b - 1
|
||||
path_moveto(path, x, y-b)
|
||||
path_curveto(path, x-a*4/3, y-b, x-a*4/3, y+b, x, y+b)
|
||||
path_curveto(path, x+a*4/3, y+b, x+a*4/3, y-b, x, y-b)
|
||||
path_close(path)
|
||||
end
|
||||
|
||||
function MakeASELogo(color_bg, color_a, color_s, color_e)
|
||||
local image_a, image_s, image_e, image_bg
|
||||
local layer_a, layer_s, layer_e
|
||||
local layer_A, layer_S, layer_E
|
||||
local sprite = NewSprite(IMAGE_RGB, 128, 72)
|
||||
|
||||
undo_disable(sprite.undo)
|
||||
|
||||
image_bg = GetImage()
|
||||
layer_a = NewLayer("A", 0, 0, 0, 0) image_a = GetImage()
|
||||
layer_s = NewLayer("S", 0, 0, 0, 0) image_s = GetImage()
|
||||
layer_e = NewLayer("E", 0, 0, 0, 0) image_e = GetImage()
|
||||
|
||||
-- clear the images
|
||||
image_clear(image_bg, get_color_for_image(sprite.imgtype, color_bg))
|
||||
|
||||
-- "A" letter shape, a triangle
|
||||
local path_a = path_new("A")
|
||||
path_moveto(path_a, 19, 48)
|
||||
path_lineto(path_a, 49, 48)
|
||||
path_lineto(path_a, 34, 19)
|
||||
path_close(path_a)
|
||||
|
||||
-- "S" letter shape, a circle
|
||||
local path_s = path_new("S")
|
||||
path_ellipse(path_s, 63, 34, 17, 17)
|
||||
|
||||
-- "E" letter shape, a rectangle
|
||||
local path_e = path_new("E")
|
||||
path_rectangle(path_e, 82, 20, 24, 29)
|
||||
|
||||
-- we fill the paths
|
||||
path_fill(path_a, image_a, get_color_for_image(sprite.imgtype, color_a))
|
||||
path_fill(path_s, image_s, get_color_for_image(sprite.imgtype, color_s))
|
||||
path_fill(path_e, image_e, get_color_for_image(sprite.imgtype, color_e))
|
||||
|
||||
path_free(path_a)
|
||||
path_free(path_s)
|
||||
path_free(path_e)
|
||||
|
||||
-- clean some areas of the paths(some slits in letters shapes)
|
||||
|
||||
image_rectfill(image_a, 21, 41, 33, 41, 0) -- for A
|
||||
image_rectfill(image_s, 64, 27, 79, 27, 0) -- for S
|
||||
image_rectfill(image_s, 48, 41, 63, 41, 0)
|
||||
image_rectfill(image_e, 96, 29, 109, 29, 0) -- for E
|
||||
image_rectfill(image_e, 96, 38, 109, 38, 0)
|
||||
|
||||
-- duplicate layers
|
||||
|
||||
sprite_set_layer(sprite, layer_a) layer_A = DuplicateLayer()
|
||||
sprite_set_layer(sprite, layer_s) layer_S = DuplicateLayer()
|
||||
sprite_set_layer(sprite, layer_e) layer_E = DuplicateLayer()
|
||||
|
||||
-- smooth parts
|
||||
|
||||
sprite_set_layer(sprite, layer_a) ConvolutionMatrixRGBA("smooth-7x7")
|
||||
sprite_set_layer(sprite, layer_s) ConvolutionMatrixRGBA("smooth-7x7")
|
||||
sprite_set_layer(sprite, layer_e) ConvolutionMatrixRGBA("smooth-7x7")
|
||||
|
||||
local curve = { 0,0, 86,0, 100,64, 137,212, 217,0, 255,136 }
|
||||
|
||||
sprite_set_layer(sprite, layer_a) ColorCurveAlpha(curve)
|
||||
sprite_set_layer(sprite, layer_s) ColorCurveAlpha(curve)
|
||||
sprite_set_layer(sprite, layer_e) ColorCurveAlpha(curve)
|
||||
|
||||
-- outlines
|
||||
|
||||
sprite_set_layer(sprite, layer_A) ConvolutionMatrixRGBA("smooth-3x3")
|
||||
sprite_set_layer(sprite, layer_S) ConvolutionMatrixRGBA("smooth-3x3")
|
||||
sprite_set_layer(sprite, layer_E) ConvolutionMatrixRGBA("smooth-3x3")
|
||||
|
||||
local curve = { 0,0, 232,128, 255,0 }
|
||||
|
||||
sprite_set_layer(sprite, layer_A) ColorCurveAlpha(curve)
|
||||
sprite_set_layer(sprite, layer_S) ColorCurveAlpha(curve)
|
||||
sprite_set_layer(sprite, layer_E) ColorCurveAlpha(curve)
|
||||
|
||||
-- final makeup
|
||||
autocrop_sprite()
|
||||
FlattenLayers()
|
||||
|
||||
sprite_set_filename(sprite, "ASE logo")
|
||||
|
||||
undo_enable(sprite.undo)
|
||||
|
||||
-- returns the new sprite
|
||||
return sprite
|
||||
end
|
||||
|
||||
local sprite = MakeASELogo("rgb{255,255,255}",
|
||||
"rgb{255,0,0}", "rgb{0,100,0}", "rgb{0,0,255}")
|
||||
|
||||
undo_disable(sprite.undo)
|
||||
sprite_quantize(sprite)
|
||||
use_sprite_rgb_map(sprite)
|
||||
sprite_set_imgtype(sprite, IMAGE_INDEXED, DITHERING_NONE)
|
||||
restore_rgb_map()
|
||||
undo_enable(sprite.undo)
|
||||
|
||||
sprite_show(sprite)
|
26
data/scripts/examples/cosy.lua
Normal file
26
data/scripts/examples/cosy.lua
Normal file
@ -0,0 +1,26 @@
|
||||
-- ase -- allegro-sprite-editor: the ultimate sprites factory
|
||||
-- Copyright (C) 2001-2005 by David A. Capello
|
||||
|
||||
local x, y, points, sprite
|
||||
|
||||
ResetConfig()
|
||||
|
||||
sprite = NewSprite(IMAGE_RGB, 128, 128)
|
||||
undo_disable(sprite.undo)
|
||||
ClearMask()
|
||||
|
||||
points = ""
|
||||
for y = 0, 128 do
|
||||
x = 64 + cos(PI*y/128) * 63
|
||||
points = points .. " " .. x .. "," .. y
|
||||
end
|
||||
ToolTrace("pencil " .. points)
|
||||
ToolTrace("floodfill 127,127")
|
||||
|
||||
ConvolutionMatrixRGBA("smooth-5x5")
|
||||
ColorCurveRGBA({ 0,0, 128-32,16, 128+32,256-16, 255,255 })
|
||||
|
||||
undo_enable(sprite.undo)
|
||||
sprite_show(sprite)
|
||||
|
||||
RestoreConfig()
|
59
data/scripts/examples/dacap.lua
Normal file
59
data/scripts/examples/dacap.lua
Normal file
@ -0,0 +1,59 @@
|
||||
-- ase -- allegro-sprite-editor: the ultimate sprites factory
|
||||
-- Copyright (C) 2001-2005 by David A. Capello
|
||||
|
||||
local function MakeDacap()
|
||||
local x, y, sprite, image, render
|
||||
local w, h = 256, 128
|
||||
|
||||
sprite = sprite_new_with_layer(IMAGE_RGB, w, h)
|
||||
sprite_mount(sprite)
|
||||
set_current_sprite(sprite)
|
||||
|
||||
-- disable undo
|
||||
undo_disable(sprite.undo)
|
||||
|
||||
sprite_set_filename(sprite, "dacap")
|
||||
|
||||
-- Background layer
|
||||
image = GetImage()
|
||||
image_clear(image, _rgba(255, 255, 255, 255))
|
||||
|
||||
render = RenderText("verdana10.pcx", 22, _rgba(255,0,0,255), "David A. Capello")
|
||||
if render then
|
||||
x = image.w/2-render.w/2+2
|
||||
y = image.h/2-render.h/2+2
|
||||
image_merge(image, render, x, y, 255, BLEND_MODE_NORMAL)
|
||||
ConvolutionMatrixRGB("smooth-3x3")
|
||||
image_free(render)
|
||||
end
|
||||
|
||||
-- Foreground layer
|
||||
NewLayer("Foreground", 0, 0, 0, 0)
|
||||
|
||||
image = GetImage()
|
||||
image_clear(image, _rgba(0,0,0,0))
|
||||
|
||||
render = RenderText("verdana10.pcx", 22, _rgba(0,0,0,255), "David A. Capello")
|
||||
if render then
|
||||
x = image.w/2-render.w/2
|
||||
y = image.h/2-render.h/2
|
||||
image_merge(image, render, x, y, 255, BLEND_MODE_NORMAL)
|
||||
image_free(render)
|
||||
end
|
||||
|
||||
-- flatten both layers
|
||||
FlattenLayers()
|
||||
|
||||
-- enable undo
|
||||
undo_enable(sprite.undo)
|
||||
return sprite
|
||||
end
|
||||
|
||||
local sprite = MakeDacap()
|
||||
if sprite then
|
||||
sprite_quantize(sprite)
|
||||
use_sprite_rgb_map(sprite)
|
||||
sprite_set_imgtype(sprite, IMAGE_INDEXED, DITHERING_NONE)
|
||||
restore_rgb_map()
|
||||
sprite_show(sprite)
|
||||
end
|
30
data/scripts/examples/shell.lua
Normal file
30
data/scripts/examples/shell.lua
Normal file
@ -0,0 +1,30 @@
|
||||
-- ase -- allegro-sprite-editor: the ultimate sprites factory
|
||||
-- Copyright (C) 2001-2005 by David A. Capello
|
||||
|
||||
ResetConfig()
|
||||
|
||||
sprite = NewSprite(IMAGE_RGB, 128, 96)
|
||||
undo_disable(sprite.undo)
|
||||
ClearMask()
|
||||
|
||||
local points = ""
|
||||
local x, y, angle
|
||||
|
||||
SetBrush("circle 2 0")
|
||||
SetDrawMode("glass 32")
|
||||
|
||||
for angle = 0, 360 do
|
||||
x = 48 + cos(PI*angle/180) * (64*angle/360)
|
||||
y = 64 + sin(PI*angle/180) * (64*angle/360)
|
||||
points = points .. " " .. x .. "," .. y
|
||||
|
||||
ToolTrace("line 48,64 "..x..","..y)
|
||||
end
|
||||
|
||||
ConvolutionMatrixRGBA("smooth-3x3")
|
||||
ColorCurveRGBA({ 0,0, 132,41, 187,131, 211,251, 255,255 })
|
||||
|
||||
undo_enable(sprite.undo)
|
||||
sprite_show(sprite)
|
||||
|
||||
RestoreConfig()
|
64
data/scripts/examples/spiral.lua
Normal file
64
data/scripts/examples/spiral.lua
Normal file
@ -0,0 +1,64 @@
|
||||
-- ase -- allegro-sprite-editor: the ultimate sprites factory
|
||||
-- Copyright (C) 2001-2005 by David A. Capello
|
||||
|
||||
local function MakeSpiral(bg_color, fg_color)
|
||||
local sprite, layer, frame, image, frpos
|
||||
local w, h = 256, 256
|
||||
|
||||
sprite = sprite_new(IMAGE_RGB, w, h)
|
||||
sprite_mount(sprite)
|
||||
set_current_sprite(sprite)
|
||||
|
||||
-- disable undo
|
||||
undo_disable(sprite.undo)
|
||||
|
||||
sprite_set_filename(sprite, "spiral")
|
||||
sprite_set_frames(sprite, 16)
|
||||
sprite_set_speed(sprite, 10)
|
||||
|
||||
layer = layer_new(sprite.imgtype)
|
||||
layer_set_name(layer, _("Background"))
|
||||
layer_set_blend_mode(layer, BLEND_MODE_NORMAL)
|
||||
layer_add_layer(sprite.set, layer)
|
||||
sprite_set_layer(sprite, layer)
|
||||
|
||||
-- draw the graphics
|
||||
local a, a2, len, dlen, max
|
||||
local lastpos = sprite.frames-1
|
||||
|
||||
add_progress(sprite.frames)
|
||||
for frpos = 0, lastpos do
|
||||
image = image_new(sprite.imgtype, w, h)
|
||||
image_clear(image, bg_color)
|
||||
stock_add_image(layer.stock, image)
|
||||
frame = frame_new(frpos, stock_add_image(layer.stock, image))
|
||||
layer_add_frame(layer, frame)
|
||||
|
||||
path = path_new(nil)
|
||||
path_moveto(path, w/2, h/2)
|
||||
max = 2*PI*8
|
||||
len = 0
|
||||
dlen = 0.75*w/(max/0.05)
|
||||
for a = 0, max, 0.05 do
|
||||
a2 = a - PI*2*frpos/(lastpos+1)
|
||||
path_lineto(path,
|
||||
w/2 + cos(a2)*len,
|
||||
h/2 - sin(a2)*len)
|
||||
len = len + dlen
|
||||
end
|
||||
path_stroke(path, image, fg_color, 1)
|
||||
path_free(path)
|
||||
|
||||
sprite_set_frpos(sprite, frpos)
|
||||
do_progress(frpos)
|
||||
end
|
||||
sprite_set_frpos(sprite, 0)
|
||||
del_progress()
|
||||
|
||||
-- enable undo
|
||||
undo_enable(sprite.undo)
|
||||
return sprite
|
||||
end
|
||||
|
||||
local sprite = MakeSpiral(_rgba(255,255,255,255), _rgba(0,0,0,255))
|
||||
sprite_show(sprite)
|
59
data/scripts/examples/terrain.lua
Normal file
59
data/scripts/examples/terrain.lua
Normal file
@ -0,0 +1,59 @@
|
||||
-- ase -- allegro-sprite-editor: the ultimate sprites factory
|
||||
-- Copyright (C) 2001-2005 by David A. Capello
|
||||
|
||||
local function MakeTerrain()
|
||||
local sprite, layer, frame, image, frpos, first_image
|
||||
local w, h = 256, 256
|
||||
|
||||
sprite = sprite_new(IMAGE_INDEXED, w, h)
|
||||
sprite_mount(sprite)
|
||||
set_current_sprite(sprite)
|
||||
|
||||
-- disable undo
|
||||
undo_disable(sprite.undo)
|
||||
|
||||
sprite_set_filename(sprite, "terrain")
|
||||
sprite_set_frames(sprite, 64)
|
||||
sprite_set_speed(sprite, 100)
|
||||
|
||||
layer = layer_new(sprite.imgtype)
|
||||
layer_set_name(layer, _("Background"))
|
||||
layer_set_blend_mode(layer, BLEND_MODE_NORMAL)
|
||||
layer_add_layer(sprite.set, layer)
|
||||
sprite_set_layer(sprite, layer)
|
||||
|
||||
-- draw the graphics
|
||||
local lastpos = sprite.frames-1
|
||||
|
||||
add_progress(sprite.frames)
|
||||
for frpos = 0, lastpos do
|
||||
image = image_new(sprite.imgtype, w, h)
|
||||
stock_add_image(layer.stock, image)
|
||||
frame = frame_new(frpos, stock_add_image(layer.stock, image))
|
||||
layer_add_frame(layer, frame)
|
||||
|
||||
if frpos == 0 then
|
||||
mapgen(image, 3, sqrt(2))
|
||||
first_image = image
|
||||
else
|
||||
image_copy(image, first_image, 0, 0)
|
||||
ColorCurveIndex({ 0,0,
|
||||
128,MID(0, 128+128*sin(2*PI*frpos/lastpos), 255),
|
||||
255,255 })
|
||||
end
|
||||
|
||||
sprite_set_frpos(sprite, frpos)
|
||||
do_progress(frpos)
|
||||
end
|
||||
sprite_set_frpos(sprite, 0)
|
||||
del_progress()
|
||||
|
||||
LoadPalette("terrain1.col")
|
||||
|
||||
-- enable undo
|
||||
undo_enable(sprite.undo)
|
||||
return sprite
|
||||
end
|
||||
|
||||
local sprite = MakeTerrain()
|
||||
sprite_show(sprite)
|
24
data/scripts/exit.lua
Normal file
24
data/scripts/exit.lua
Normal file
@ -0,0 +1,24 @@
|
||||
-- ase -- allegro-sprite-editor: the ultimate sprites factory
|
||||
-- Copyright (C) 2001-2005 by David A. Capello
|
||||
|
||||
function GUI_Exit()
|
||||
local sprite = get_first_sprite()
|
||||
local clipboard = get_clipboard_sprite()
|
||||
|
||||
while sprite do
|
||||
-- check if this sprite is modified
|
||||
if sprite_is_modified(sprite)
|
||||
and (not clipboard
|
||||
or sprite.id != clipboard.id) then
|
||||
if jalert(_("Warning<<There are sprites with changes.<<Do you want quit anyway?||&Yes||&No"))
|
||||
!= 1 then
|
||||
return
|
||||
end
|
||||
break
|
||||
end
|
||||
sprite = get_next_sprite(sprite)
|
||||
end
|
||||
|
||||
-- close the window
|
||||
jwindow_close(app_get_top_window(), 0)
|
||||
end
|
63
data/scripts/flatten.lua
Normal file
63
data/scripts/flatten.lua
Normal file
@ -0,0 +1,63 @@
|
||||
-- ase -- allegro-sprite-editor: the ultimate sprites factory
|
||||
-- Copyright (C) 2001-2005 by David A. Capello
|
||||
|
||||
function FlattenLayers()
|
||||
local sprite = current_sprite
|
||||
if not sprite then
|
||||
return
|
||||
end
|
||||
|
||||
-- generate the flat_layer
|
||||
local flat_layer = layer_flatten(sprite.set,
|
||||
sprite.imgtype, 0, 0, sprite.w, sprite.h,
|
||||
0, sprite.frames-1)
|
||||
if not flat_layer then
|
||||
print("Not enough memory")
|
||||
return nil
|
||||
end
|
||||
|
||||
-- open undo, and add the new layer
|
||||
if undo_is_enabled(sprite.undo) then
|
||||
undo_open(sprite.undo)
|
||||
undo_add_layer(sprite.undo, sprite.set, flat_layer)
|
||||
end
|
||||
|
||||
layer_add_layer(sprite.set, flat_layer)
|
||||
|
||||
-- select the new layer
|
||||
if undo_is_enabled(sprite.undo) then
|
||||
undo_set_layer(sprite.undo, sprite)
|
||||
end
|
||||
|
||||
sprite_set_layer(sprite, flat_layer)
|
||||
|
||||
-- remove old layers
|
||||
local it = sprite.set.layers
|
||||
local next
|
||||
|
||||
while it do
|
||||
next = it.next
|
||||
|
||||
if it.id != flat_layer.id then
|
||||
-- undo
|
||||
if undo_is_enabled(sprite.undo) then
|
||||
undo_remove_layer(sprite.undo, it)
|
||||
end
|
||||
|
||||
-- remove and destroy "it" layer
|
||||
layer_remove_layer(sprite.set, it)
|
||||
layer_free(it)
|
||||
end
|
||||
|
||||
it = next
|
||||
end
|
||||
|
||||
-- close the undo
|
||||
if undo_is_enabled(sprite.undo) then
|
||||
undo_close(sprite.undo)
|
||||
end
|
||||
|
||||
GUI_Refresh(sprite)
|
||||
|
||||
return flat_layer
|
||||
end
|
16
data/scripts/flip.lua
Normal file
16
data/scripts/flip.lua
Normal file
@ -0,0 +1,16 @@
|
||||
-- ase -- allegro-sprite-editor: the ultimate sprites factory
|
||||
-- Copyright (C) 2001-2005 by David A. Capello
|
||||
|
||||
function GUI_FlipHorizontal()
|
||||
if current_sprite then
|
||||
flip_horizontal()
|
||||
GUI_Refresh(current_sprite)
|
||||
end
|
||||
end
|
||||
|
||||
function GUI_FlipVertical()
|
||||
if current_sprite then
|
||||
flip_vertical()
|
||||
GUI_Refresh(current_sprite)
|
||||
end
|
||||
end
|
77
data/scripts/frmprop.lua
Normal file
77
data/scripts/frmprop.lua
Normal file
@ -0,0 +1,77 @@
|
||||
-- ase -- allegro-sprite-editor: the ultimate sprites factory
|
||||
-- Copyright (C) 2001-2005 by David A. Capello
|
||||
|
||||
function GUI_FrameProperties()
|
||||
-- get current sprite
|
||||
local sprite = current_sprite
|
||||
if not sprite then return end
|
||||
|
||||
-- get selected layer
|
||||
local layer = sprite.layer
|
||||
if not layer then return end
|
||||
|
||||
-- get current frame
|
||||
local frame = layer_get_frame(layer, sprite.frpos)
|
||||
if not frame then return end
|
||||
|
||||
local window = ji_load_widget("frmprop.jid", "frame_properties")
|
||||
if not window then return end
|
||||
|
||||
local entry_frpos = jwidget_find_name(window, "frpos")
|
||||
local entry_xpos = jwidget_find_name(window, "xpos")
|
||||
local entry_ypos = jwidget_find_name(window, "ypos")
|
||||
local slider_opacity = jwidget_find_name(window, "opacity")
|
||||
local button_ok = jwidget_find_name(window, "ok")
|
||||
|
||||
jwidget_set_text(entry_frpos, tostring(frame.frpos))
|
||||
jwidget_set_text(entry_xpos, tostring(frame.x))
|
||||
jwidget_set_text(entry_ypos, tostring(frame.y))
|
||||
jslider_set_value(slider_opacity, frame.opacity)
|
||||
|
||||
repeat
|
||||
jwindow_open_fg(window)
|
||||
|
||||
if jwindow_get_killer(window) == button_ok then
|
||||
local new_frpos = MID(0, tonumber(jwidget_get_text (entry_frpos)),
|
||||
sprite.frames-1)
|
||||
local existent_frame = layer_get_frame(layer, new_frpos)
|
||||
|
||||
if new_frpos != frame.frpos and existent_frame then
|
||||
jalert("Error<<You can't change frpos to " .. new_frpos ..
|
||||
"<<Already there is a frame in that pos.||&OK")
|
||||
else
|
||||
-- WE MUST REMOVE THE FRAME BEFORE CALL frame_set_frpos()
|
||||
if undo_is_enabled(sprite.undo) then
|
||||
undo_open(sprite.undo)
|
||||
undo_remove_frame(sprite.undo, layer, frame)
|
||||
end
|
||||
|
||||
layer_remove_frame(layer, frame)
|
||||
|
||||
-- change frame properties
|
||||
frame_set_frpos(frame, new_frpos)
|
||||
frame_set_position(frame,
|
||||
MID(-9999, tonumber(jwidget_get_text(entry_xpos)), 9999),
|
||||
MID(-9999, tonumber(jwidget_get_text(entry_ypos)), 9999))
|
||||
frame_set_opacity(frame, jslider_get_value(slider_opacity))
|
||||
|
||||
-- add again the same frame
|
||||
if undo_is_enabled(sprite.undo) then
|
||||
undo_add_frame(sprite.undo, layer, frame)
|
||||
undo_close(sprite.undo)
|
||||
end
|
||||
|
||||
layer_add_frame(layer, frame)
|
||||
|
||||
-- set the sprite position, refresh and break the loop
|
||||
sprite_set_frpos(sprite, new_frpos)
|
||||
GUI_Refresh(sprite)
|
||||
break
|
||||
end
|
||||
else
|
||||
break
|
||||
end
|
||||
until false
|
||||
|
||||
jwidget_free(window)
|
||||
end
|
69
data/scripts/imgtype.lua
Normal file
69
data/scripts/imgtype.lua
Normal file
@ -0,0 +1,69 @@
|
||||
-- ase -- allegro-sprite-editor: the ultimate sprites factory
|
||||
-- Copyright (C) 2001-2005 by David A. Capello
|
||||
|
||||
function GUI_ImageType()
|
||||
if not current_sprite then
|
||||
return
|
||||
end
|
||||
|
||||
-- load the window widget
|
||||
local window = ji_load_widget("imgtype.jid", "image_type")
|
||||
if not window then return end
|
||||
|
||||
local from, radio1, radio2, radio3, dither1, dither2 =
|
||||
jwidget_find_name(window, "from"),
|
||||
jwidget_find_name(window, "imgtype1"),
|
||||
jwidget_find_name(window, "imgtype2"),
|
||||
jwidget_find_name(window, "imgtype3"),
|
||||
jwidget_find_name(window, "dither1"),
|
||||
jwidget_find_name(window, "dither2")
|
||||
|
||||
if current_sprite.imgtype == IMAGE_RGB then
|
||||
jwidget_set_text(from, _("RGB"))
|
||||
jwidget_disable(radio1)
|
||||
jwidget_select(radio3) -- to Indexed by default
|
||||
elseif current_sprite.imgtype == IMAGE_GRAYSCALE then
|
||||
jwidget_set_text(from, _("Grayscale"))
|
||||
jwidget_disable(radio2)
|
||||
jwidget_select(radio1) -- to RGB by default
|
||||
elseif current_sprite.imgtype == IMAGE_INDEXED then
|
||||
jwidget_set_text(from, _("Indexed"))
|
||||
jwidget_disable(radio3)
|
||||
jwidget_select(radio1) -- to RGB by default
|
||||
end
|
||||
|
||||
if get_config_bool("Options", "Dither", false) then
|
||||
jwidget_select(dither2)
|
||||
else
|
||||
jwidget_select(dither1)
|
||||
end
|
||||
|
||||
-- open the window
|
||||
jwindow_open_fg(window)
|
||||
|
||||
if jwindow_get_killer(window) == jwidget_find_name(window, "ok") then
|
||||
local destimgtype, dithermethod
|
||||
|
||||
if jwidget_is_selected(radio1) then
|
||||
destimgtype = IMAGE_RGB
|
||||
elseif jwidget_is_selected(radio2) then
|
||||
destimgtype = IMAGE_GRAYSCALE
|
||||
elseif jwidget_is_selected(radio3) then
|
||||
destimgtype = IMAGE_INDEXED
|
||||
end
|
||||
|
||||
if jwidget_is_selected(dither1) then
|
||||
dithermethod = DITHERING_NONE
|
||||
elseif jwidget_is_selected(dither2) then
|
||||
dithermethod = DITHERING_ORDERED
|
||||
end
|
||||
|
||||
use_current_sprite_rgb_map()
|
||||
sprite_set_imgtype(current_sprite, destimgtype, dithermethod)
|
||||
restore_rgb_map()
|
||||
|
||||
app_refresh_screen()
|
||||
end
|
||||
|
||||
jwidget_free(window)
|
||||
end
|
166
data/scripts/layer.lua
Normal file
166
data/scripts/layer.lua
Normal file
@ -0,0 +1,166 @@
|
||||
-- ase -- allegro-sprite-editor: the ultimate sprites factory
|
||||
-- Copyright (C) 2001-2005 by David A. Capello
|
||||
|
||||
-- internal routine
|
||||
local function count_layers(layer)
|
||||
local count
|
||||
|
||||
if layer.parent.type == GFXOBJ_SPRITE then
|
||||
count = 0
|
||||
else
|
||||
count = 1
|
||||
end
|
||||
|
||||
if layer_is_set(layer) then
|
||||
local it = layer.layers
|
||||
while it do
|
||||
count = count + count_layers(it)
|
||||
it = it.next
|
||||
end
|
||||
end
|
||||
|
||||
return count
|
||||
end
|
||||
|
||||
-- const char *GetUniqueLayerName()
|
||||
function GetUniqueLayerName()
|
||||
local sprite = current_sprite
|
||||
if sprite then
|
||||
return _("Layer") .. " " .. count_layers(sprite.set)
|
||||
else
|
||||
return nil
|
||||
end
|
||||
end
|
||||
|
||||
-- Layer *NewLayer(const char *name, int x, int y, int w, int h)
|
||||
-- creates a new layer with the "name" in the current sprite(in the
|
||||
-- current frame) with the specified position and size(if w=h=0 the
|
||||
-- routine will use the sprite dimension)
|
||||
function NewLayer(name, x, y, w, h)
|
||||
local sprite = current_sprite
|
||||
local layer = nil
|
||||
local image, frame, index
|
||||
|
||||
if sprite and name then
|
||||
if not w or w == 0 then w = sprite.w end
|
||||
if not h or h == 0 then h = sprite.h end
|
||||
|
||||
-- new image
|
||||
image = image_new(sprite.imgtype, w, h)
|
||||
if not image then
|
||||
return nil
|
||||
end
|
||||
|
||||
-- new layer
|
||||
layer = layer_new(sprite.imgtype)
|
||||
if not layer then
|
||||
image_free(image)
|
||||
return nil
|
||||
end
|
||||
|
||||
-- clear with mask color
|
||||
image_clear(image, 0)
|
||||
|
||||
-- configure layer name and blend mode
|
||||
layer_set_name(layer, name)
|
||||
layer_set_blend_mode(layer, BLEND_MODE_NORMAL)
|
||||
|
||||
-- add image in the layer stock
|
||||
index = stock_add_image(layer.stock, image)
|
||||
|
||||
-- create a new frame in the current frpos
|
||||
frame = frame_new(sprite.frpos, index)
|
||||
frame_set_position(frame, x, y)
|
||||
|
||||
-- add frame
|
||||
layer_add_frame(layer, frame)
|
||||
|
||||
-- undo stuff
|
||||
if undo_is_enabled(sprite.undo) then
|
||||
undo_open(sprite.undo)
|
||||
undo_add_layer(sprite.undo, sprite.set, layer)
|
||||
undo_set_layer(sprite.undo, sprite)
|
||||
undo_close(sprite.undo)
|
||||
end
|
||||
|
||||
-- add the layer in the sprite set
|
||||
layer_add_layer(sprite.set, layer)
|
||||
|
||||
-- select the new layer
|
||||
sprite_set_layer(sprite, layer)
|
||||
end
|
||||
|
||||
return layer
|
||||
end
|
||||
|
||||
-- Layer *NewLayerSet(const char *name)
|
||||
-- creates a new layer set with the "name" in the current sprite
|
||||
function NewLayerSet(name)
|
||||
local sprite = current_sprite
|
||||
local layer = nil
|
||||
|
||||
if sprite and name then
|
||||
-- new layer
|
||||
layer = layer_set_new()
|
||||
if not layer then
|
||||
return nil
|
||||
end
|
||||
|
||||
-- configure layer name and blend mode
|
||||
layer_set_name(layer, name)
|
||||
|
||||
-- add the layer in the sprite set
|
||||
layer_add_layer(sprite.set, layer)
|
||||
|
||||
-- select the new layer
|
||||
sprite_set_layer(sprite, layer)
|
||||
end
|
||||
|
||||
return layer
|
||||
end
|
||||
|
||||
-- removes the current selected layer
|
||||
function RemoveLayer()
|
||||
local sprite = current_sprite
|
||||
if sprite and sprite.layer then
|
||||
local layer = sprite.layer
|
||||
local parent = layer.parent
|
||||
local layer_select
|
||||
|
||||
-- select: previous layer, or next layer, or parent(if it is not
|
||||
-- the main layer of sprite set)
|
||||
if layer.prev then
|
||||
layer_select = layer.prev
|
||||
elseif layer.next then
|
||||
layer_select = layer.next
|
||||
elseif parent != sprite.set then
|
||||
layer_select = parent
|
||||
else
|
||||
layer_select = nil
|
||||
end
|
||||
|
||||
-- undo stuff
|
||||
if undo_is_enabled(sprite.undo) then
|
||||
undo_open(sprite.undo)
|
||||
undo_set_layer(sprite.undo, sprite)
|
||||
undo_remove_layer(sprite.undo, layer)
|
||||
undo_close(sprite.undo)
|
||||
end
|
||||
|
||||
-- select other layer
|
||||
sprite_set_layer(sprite, layer_select)
|
||||
|
||||
-- remove the layer
|
||||
layer_remove_layer(parent, layer)
|
||||
|
||||
-- destroy the layer
|
||||
layer_free(layer)
|
||||
end
|
||||
end
|
||||
|
||||
function GUI_RemoveLayer()
|
||||
if current_sprite then
|
||||
RemoveLayer()
|
||||
GUI_Refresh(current_sprite)
|
||||
end
|
||||
end
|
85
data/scripts/layprop.lua
Normal file
85
data/scripts/layprop.lua
Normal file
@ -0,0 +1,85 @@
|
||||
-- ase -- allegro-sprite-editor: the ultimate sprites factory
|
||||
-- Copyright (C) 2001-2005 by David A. Capello
|
||||
|
||||
function GUI_LayerProperties()
|
||||
-- get current sprite
|
||||
local sprite = current_sprite
|
||||
if not sprite then
|
||||
return
|
||||
end
|
||||
|
||||
-- get selected layer
|
||||
local layer = sprite.layer
|
||||
if not layer then
|
||||
return
|
||||
end
|
||||
|
||||
local window = jwindow_new(_("Layer Properties"))
|
||||
local box1 = jbox_new(JI_VERTICAL)
|
||||
local box2 = jbox_new(JI_HORIZONTAL)
|
||||
local box3 = jbox_new(JI_HORIZONTAL + JI_HOMOGENEOUS)
|
||||
local label_name = jlabel_new(_("Name:"))
|
||||
local entry_name = jentry_new(256, layer.name)
|
||||
local button_ok = jbutton_new(_("&OK"))
|
||||
local button_cancel = jbutton_new(_("&Cancel"))
|
||||
local label_bm, view_bm, list_bm
|
||||
|
||||
if layer.type == GFXOBJ_LAYER_IMAGE then
|
||||
label_bm = jlabel_new(_("Blend mode:"))
|
||||
view_bm = jview_new()
|
||||
list_bm = jlistbox_new()
|
||||
|
||||
jwidget_add_child(list_bm, jlistitem_new(_("Normal")))
|
||||
jwidget_add_child(list_bm, jlistitem_new(_("Dissolve")))
|
||||
jwidget_add_child(list_bm, jlistitem_new(_("Multiply")))
|
||||
jwidget_add_child(list_bm, jlistitem_new(_("Screen")))
|
||||
jwidget_add_child(list_bm, jlistitem_new(_("Overlay")))
|
||||
jwidget_add_child(list_bm, jlistitem_new(_("Hard Light")))
|
||||
jwidget_add_child(list_bm, jlistitem_new(_("Dodge")))
|
||||
jwidget_add_child(list_bm, jlistitem_new(_("Burn")))
|
||||
jwidget_add_child(list_bm, jlistitem_new(_("Darken")))
|
||||
jwidget_add_child(list_bm, jlistitem_new(_("Lighten")))
|
||||
jwidget_add_child(list_bm, jlistitem_new(_("Addition")))
|
||||
jwidget_add_child(list_bm, jlistitem_new(_("Subtract")))
|
||||
jwidget_add_child(list_bm, jlistitem_new(_("Difference")))
|
||||
jwidget_add_child(list_bm, jlistitem_new(_("Hue")))
|
||||
jwidget_add_child(list_bm, jlistitem_new(_("Saturation")))
|
||||
jwidget_add_child(list_bm, jlistitem_new(_("Color")))
|
||||
jwidget_add_child(list_bm, jlistitem_new(_("Luminosity")))
|
||||
|
||||
jlistbox_select_index(list_bm, layer.blend_mode)
|
||||
|
||||
jview_attach(view_bm, list_bm)
|
||||
jwidget_set_static_size(view_bm, 128, 64)
|
||||
jwidget_expansive(view_bm, true)
|
||||
end
|
||||
|
||||
jwidget_expansive(entry_name, true)
|
||||
|
||||
jwidget_add_child(box2, label_name)
|
||||
jwidget_add_child(box2, entry_name)
|
||||
jwidget_add_child(box1, box2)
|
||||
if layer.type == GFXOBJ_LAYER_IMAGE then
|
||||
jwidget_add_child(box1, label_bm)
|
||||
jwidget_add_child(box1, view_bm)
|
||||
end
|
||||
jwidget_add_child(box3, button_ok)
|
||||
jwidget_add_child(box3, button_cancel)
|
||||
jwidget_add_child(box1, box3)
|
||||
jwidget_add_child(window, box1)
|
||||
|
||||
jwidget_magnetic(button_ok, true)
|
||||
|
||||
jwindow_open_fg(window)
|
||||
|
||||
if jwindow_get_killer(window) == button_ok then
|
||||
layer_set_name(layer, jwidget_get_text(entry_name))
|
||||
if layer.type == GFXOBJ_LAYER_IMAGE then
|
||||
layer_set_blend_mode(layer, jlistbox_get_selected_index(list_bm))
|
||||
end
|
||||
|
||||
GUI_Refresh(sprite)
|
||||
end
|
||||
|
||||
jwidget_free(window)
|
||||
end
|
9
data/scripts/loadfile.lua
Normal file
9
data/scripts/loadfile.lua
Normal file
@ -0,0 +1,9 @@
|
||||
-- ase -- allegro-sprite-editor: the ultimate sprites factory
|
||||
-- Copyright (C) 2001-2005 by David A. Capello
|
||||
|
||||
function GUI_LoadScriptFile()
|
||||
local filename = ji_file_select(_("Load Script File(.lua)"), "", "lua")
|
||||
if filename then
|
||||
dofile(filename)
|
||||
end
|
||||
end
|
229
data/scripts/mask.lua
Normal file
229
data/scripts/mask.lua
Normal file
@ -0,0 +1,229 @@
|
||||
-- ase -- allegro-sprite-editor: the ultimate sprites factory
|
||||
-- Copyright (C) 2001-2005 by David A. Capello
|
||||
|
||||
function MaskAll()
|
||||
local sprite = current_sprite
|
||||
if not sprite then return end
|
||||
|
||||
-- undo
|
||||
if undo_is_enabled(sprite.undo) then
|
||||
undo_set_mask(sprite.undo, sprite)
|
||||
end
|
||||
|
||||
-- change the selection
|
||||
mask_replace(sprite.mask, 0, 0, sprite.w, sprite.h)
|
||||
|
||||
sprite_generate_mask_boundaries(sprite)
|
||||
GUI_Refresh(sprite)
|
||||
end
|
||||
|
||||
function DeselectMask()
|
||||
local sprite = current_sprite
|
||||
if not sprite or mask_is_empty(sprite.mask) then return end
|
||||
|
||||
-- destroy the *deselected* mask
|
||||
local mask = sprite_request_mask(sprite, "*deselected*")
|
||||
if mask then
|
||||
sprite_remove_mask(sprite, mask)
|
||||
mask_free(mask)
|
||||
end
|
||||
|
||||
-- save the selection in the repository
|
||||
local mask = mask_new_copy(sprite.mask)
|
||||
mask_set_name(mask, "*deselected*")
|
||||
sprite_add_mask(sprite, mask)
|
||||
|
||||
-- undo
|
||||
if undo_is_enabled(sprite.undo) then
|
||||
undo_set_mask(sprite.undo, sprite)
|
||||
end
|
||||
|
||||
-- deselect the mask
|
||||
mask_none(sprite.mask)
|
||||
|
||||
sprite_generate_mask_boundaries(sprite)
|
||||
GUI_Refresh(sprite)
|
||||
end
|
||||
|
||||
function ReselectMask()
|
||||
local sprite = current_sprite
|
||||
if not sprite then return end
|
||||
|
||||
-- request *deselected* mask
|
||||
local mask = sprite_request_mask(sprite, "*deselected*")
|
||||
if mask then
|
||||
-- undo
|
||||
if undo_is_enabled(sprite.undo) then
|
||||
undo_set_mask(sprite.undo, sprite)
|
||||
end
|
||||
|
||||
-- set the mask
|
||||
sprite_set_mask(sprite, mask)
|
||||
|
||||
-- remove the *deselected* mask
|
||||
sprite_remove_mask(sprite, mask)
|
||||
mask_free(mask)
|
||||
|
||||
sprite_generate_mask_boundaries(sprite)
|
||||
GUI_Refresh(sprite)
|
||||
end
|
||||
end
|
||||
|
||||
function InvertMask()
|
||||
local sprite = current_sprite
|
||||
if not sprite then return end
|
||||
|
||||
-- change the selection
|
||||
|
||||
if not sprite.mask.bitmap then
|
||||
MaskAll()
|
||||
else
|
||||
-- undo
|
||||
if undo_is_enabled(sprite.undo) then
|
||||
undo_set_mask(sprite.undo, sprite)
|
||||
end
|
||||
|
||||
-- create a new mask
|
||||
local mask = mask_new()
|
||||
|
||||
-- select all the sprite area
|
||||
mask_replace(mask, 0, 0, sprite.w, sprite.h)
|
||||
|
||||
-- remove in the new mask the current sprite marked region
|
||||
image_rectfill(mask.bitmap,
|
||||
sprite.mask.x, sprite.mask.y,
|
||||
sprite.mask.x + sprite.mask.w-1,
|
||||
sprite.mask.y + sprite.mask.h-1, 0)
|
||||
|
||||
-- invert the current mask in the sprite
|
||||
mask_invert(sprite.mask)
|
||||
if sprite.mask.bitmap then
|
||||
-- copy the inverted region in the new mask
|
||||
image_copy(mask.bitmap, sprite.mask.bitmap,
|
||||
sprite.mask.x, sprite.mask.y)
|
||||
end
|
||||
|
||||
-- we need only need the area inside the sprite
|
||||
mask_intersect(mask, 0, 0, sprite.w, sprite.h)
|
||||
|
||||
-- set the new mask
|
||||
sprite_set_mask(sprite, mask)
|
||||
mask_free(mask)
|
||||
|
||||
sprite_generate_mask_boundaries(sprite)
|
||||
GUI_Refresh(sprite)
|
||||
end
|
||||
end
|
||||
|
||||
function StretchMaskBottom()
|
||||
local sprite = current_sprite
|
||||
if not sprite or not sprite.mask.bitmap then return end
|
||||
|
||||
-- undo
|
||||
if undo_is_enabled(sprite.undo) then
|
||||
undo_set_mask(sprite.undo, sprite)
|
||||
end
|
||||
|
||||
local x, y, bitmap, modified
|
||||
|
||||
bitmap = sprite.mask.bitmap
|
||||
|
||||
for y = 0, bitmap.h-2 do
|
||||
modified = false
|
||||
|
||||
for x = 0, bitmap.w-1 do
|
||||
if image_getpixel(bitmap, x, y) == 1 and
|
||||
image_getpixel(bitmap, x, y+1) == 0 then
|
||||
image_putpixel(bitmap, x, y+1, 1)
|
||||
modified = true
|
||||
end
|
||||
end
|
||||
if modified then
|
||||
y = y+1
|
||||
end
|
||||
end
|
||||
|
||||
mask_union(sprite.mask,
|
||||
sprite.mask.x, sprite.mask.y+sprite.mask.h, sprite.mask.w, 1)
|
||||
|
||||
bitmap = sprite.mask.bitmap -- the bitmap could change in the union operation
|
||||
y = bitmap.h-2
|
||||
for x = 0, bitmap.w-1 do
|
||||
if image_getpixel(bitmap, x, y) == 0 then
|
||||
image_putpixel(bitmap, x, y+1, 0)
|
||||
end
|
||||
end
|
||||
|
||||
sprite_generate_mask_boundaries(sprite)
|
||||
GUI_Refresh(sprite)
|
||||
end
|
||||
|
||||
function GUI_LoadMask()
|
||||
-- get current sprite
|
||||
local sprite = current_sprite
|
||||
if not sprite then
|
||||
return
|
||||
end
|
||||
|
||||
local filename = ji_file_select(_("Load .msk File"), "", "msk")
|
||||
if filename then
|
||||
local mask = load_msk_file(filename)
|
||||
if not mask then
|
||||
jalert(_("Error<<Error loading .msk file").."<<"
|
||||
..filename.."||".._("&Close"))
|
||||
return
|
||||
end
|
||||
|
||||
-- undo
|
||||
if undo_is_enabled(sprite.undo) then
|
||||
undo_set_mask(sprite.undo, sprite)
|
||||
end
|
||||
|
||||
sprite_set_mask(sprite, mask)
|
||||
mask_free(mask)
|
||||
|
||||
sprite_generate_mask_boundaries(sprite)
|
||||
GUI_Refresh(sprite)
|
||||
end
|
||||
end
|
||||
|
||||
function GUI_SaveMask()
|
||||
-- get current sprite
|
||||
local sprite = current_sprite
|
||||
if not sprite then
|
||||
return
|
||||
end
|
||||
|
||||
local filename = "default.msk"
|
||||
local ret
|
||||
|
||||
while true do
|
||||
filename = ji_file_select(_("Save .msk File"), filename, "msk")
|
||||
if not filename then
|
||||
return
|
||||
end
|
||||
|
||||
-- does the file exist?
|
||||
if file_exists(filename) then
|
||||
-- ask if the user wants overwrite the file?
|
||||
ret = jalert(_("Warning").."<<".._("File exists, overwrite it?")
|
||||
.."<<"..get_filename(filename)
|
||||
.."||".._("&Yes||&No||&Cancel"))
|
||||
else
|
||||
break
|
||||
end
|
||||
|
||||
-- "yes": we must continue with the operation...
|
||||
if ret == 1 then
|
||||
break
|
||||
-- "cancel" or <esc> per example: we back doing nothing
|
||||
elseif ret != 2 then
|
||||
return
|
||||
end
|
||||
-- "no": we must back to select other file-name */
|
||||
end
|
||||
|
||||
if save_msk_file(sprite.mask, filename) != 0 then
|
||||
jalert("Error<<Error saving .msk file<<"..filename.."||&Close")
|
||||
end
|
||||
end
|
98
data/scripts/mergedwn.lua
Normal file
98
data/scripts/mergedwn.lua
Normal file
@ -0,0 +1,98 @@
|
||||
-- ase -- allegro-sprite-editor: the ultimate sprites factory
|
||||
-- Copyright (C) 2001-2005 by David A. Capello
|
||||
|
||||
function GUI_MergeDown()
|
||||
local sprite, frpos, index
|
||||
local src_layer, dst_layer
|
||||
local src_frame, dst_frame
|
||||
local src_image, dst_image
|
||||
local old_id
|
||||
|
||||
sprite = current_sprite
|
||||
if not sprite then return end
|
||||
|
||||
src_layer = sprite.layer
|
||||
if not src_layer or not layer_is_image(src_layer) then return end
|
||||
|
||||
dst_layer = sprite.layer.prev
|
||||
if not dst_layer or not layer_is_image(dst_layer) then return end
|
||||
|
||||
if undo_is_enabled(sprite.undo) then
|
||||
undo_open(sprite.undo)
|
||||
end
|
||||
|
||||
for frpos = 0, sprite.frames-1 do
|
||||
-- get frames
|
||||
src_frame = layer_get_frame(src_layer, frpos)
|
||||
dst_frame = layer_get_frame(dst_layer, frpos)
|
||||
|
||||
-- get images
|
||||
if src_frame then
|
||||
src_image = stock_get_image(src_layer.stock, src_frame.image)
|
||||
else
|
||||
src_image = nil
|
||||
end
|
||||
|
||||
if dst_frame then
|
||||
dst_image = stock_get_image(dst_layer.stock, dst_frame.image)
|
||||
else
|
||||
dst_image = nil
|
||||
end
|
||||
|
||||
-- with source image?
|
||||
if src_image then
|
||||
-- no destination image
|
||||
if not dst_image then
|
||||
-- copy this frame to the destination layer
|
||||
dst_image = image_new_copy(src_image)
|
||||
index = stock_add_image(dst_layer.stock, dst_image)
|
||||
if undo_is_enabled(sprite.undo) then
|
||||
undo_add_image(sprite.undo, dst_layer.stock, dst_image)
|
||||
end
|
||||
dst_frame = frame_new(frpos, index)
|
||||
frame_set_position(dst_frame, src_frame.x, src_frame.y)
|
||||
frame_set_opacity(dst_frame, src_frame.opacity)
|
||||
if undo_is_enabled(sprite.undo) then
|
||||
undo_add_frame(sprite.undo, dst_layer, dst_frame)
|
||||
end
|
||||
layer_add_frame(dst_layer, dst_frame)
|
||||
-- with destination
|
||||
else
|
||||
local x1 = MIN(src_frame.x, dst_frame.x)
|
||||
local y1 = MIN(src_frame.y, dst_frame.y)
|
||||
local x2 = MAX(src_frame.x+src_image.w-1, dst_frame.x+dst_image.w-1)
|
||||
local y2 = MAX(src_frame.y+src_image.h-1, dst_frame.y+dst_image.h-1)
|
||||
local new_image = image_crop(dst_image,
|
||||
x1-dst_frame.x,
|
||||
y1-dst_frame.y,
|
||||
x2-x1+1, y2-y1+1)
|
||||
|
||||
-- merge src_image in new_image
|
||||
image_merge(new_image, src_image,
|
||||
src_frame.x-x1,
|
||||
src_frame.y-y1,
|
||||
src_frame.opacity, src_layer.blend_mode)
|
||||
|
||||
frame_set_position(dst_frame, x1, y1)
|
||||
if undo_is_enabled(sprite.undo) then
|
||||
undo_replace_image(sprite.undo, dst_layer.stock, dst_frame.image)
|
||||
end
|
||||
stock_replace_image(dst_layer.stock, dst_frame.image, new_image)
|
||||
|
||||
image_free(dst_image)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if undo_is_enabled(sprite.undo) then
|
||||
undo_set_layer(sprite.undo, sprite)
|
||||
undo_remove_layer(sprite.undo, src_layer)
|
||||
undo_close(sprite.undo)
|
||||
end
|
||||
|
||||
sprite_set_layer(sprite, dst_layer)
|
||||
layer_remove_layer(src_layer.parent, src_layer)
|
||||
layer_free(src_layer)
|
||||
|
||||
GUI_Refresh(sprite)
|
||||
end
|
60
data/scripts/newlay.lua
Normal file
60
data/scripts/newlay.lua
Normal file
@ -0,0 +1,60 @@
|
||||
-- ase -- allegro-sprite-editor: the ultimate sprites factory
|
||||
-- Copyright (C) 2001-2005 by David A. Capello
|
||||
|
||||
function GUI_NewLayer()
|
||||
-- get current sprite
|
||||
local sprite = current_sprite
|
||||
if not sprite then return end
|
||||
|
||||
-- load the window widget
|
||||
local window = ji_load_widget("newlay.jid", "new_layer")
|
||||
if not window then return end
|
||||
|
||||
jwidget_set_text(jwidget_find_name(window, "name"), GetUniqueLayerName())
|
||||
jwidget_set_text(jwidget_find_name(window, "width"), tostring(sprite.w))
|
||||
jwidget_set_text(jwidget_find_name(window, "height"), tostring(sprite.h))
|
||||
|
||||
jwindow_open_fg(window)
|
||||
|
||||
if jwindow_get_killer(window) == jwidget_find_name(window, "ok") then
|
||||
local name = jwidget_get_text(jwidget_find_name(window, "name"))
|
||||
local w = MID(1, tonumber(jwidget_get_text(jwidget_find_name(window, "width"))), 9999)
|
||||
local h = MID(1, tonumber(jwidget_get_text(jwidget_find_name(window, "height"))), 9999)
|
||||
local layer = NewLayer(name, 0, 0, w, h)
|
||||
if not layer then
|
||||
jalert(_("Error<<Not enough memory||&Close"))
|
||||
return
|
||||
end
|
||||
|
||||
GUI_Refresh(sprite)
|
||||
end
|
||||
|
||||
jwidget_free(window)
|
||||
end
|
||||
|
||||
function GUI_NewLayerSet()
|
||||
-- get current sprite
|
||||
local sprite = current_sprite
|
||||
if not sprite then
|
||||
return
|
||||
end
|
||||
|
||||
-- load the window widget
|
||||
local window = ji_load_widget("newlay.jid", "new_layer_set")
|
||||
if not window then return end
|
||||
|
||||
jwindow_open_fg(window)
|
||||
|
||||
if jwindow_get_killer(window) == jwidget_find_name(window, "ok") then
|
||||
local name = jwidget_get_text(jwidget_find_name(window, "name"))
|
||||
local layer = NewLayerSet(name)
|
||||
if not layer then
|
||||
jalert(_("Error<<Not enough memory||&Close"))
|
||||
return
|
||||
end
|
||||
|
||||
GUI_Refresh(sprite)
|
||||
end
|
||||
|
||||
jwidget_free(window)
|
||||
end
|
113
data/scripts/newspr.lua
Normal file
113
data/scripts/newspr.lua
Normal file
@ -0,0 +1,113 @@
|
||||
-- ase -- allegro-sprite-editor: the ultimate sprites factory
|
||||
-- Copyright (C) 2001-2005 by David A. Capello
|
||||
|
||||
local _sprite_counter = 0
|
||||
|
||||
function NewSprite(imgtype, w, h)
|
||||
-- new sprite
|
||||
local sprite = sprite_new_with_layer(imgtype, w, h)
|
||||
if not sprite then return nil end
|
||||
|
||||
sprite_mount(sprite)
|
||||
set_current_sprite(sprite)
|
||||
return sprite
|
||||
end
|
||||
|
||||
-- shows the "New Sprite" dialog
|
||||
function GUI_NewSprite()
|
||||
-- load the window widget
|
||||
local window = ji_load_widget("newspr.jid", "new_sprite")
|
||||
if not window then return end
|
||||
|
||||
local width = jwidget_find_name(window, "width")
|
||||
local height = jwidget_find_name(window, "height")
|
||||
local radio1 = jwidget_find_name(window, "radio1")
|
||||
local radio2 = jwidget_find_name(window, "radio2")
|
||||
local radio3 = jwidget_find_name(window, "radio3")
|
||||
local button_ok = jwidget_find_name(window, "ok_button")
|
||||
local bg_box = jwidget_find_name(window, "bg_box")
|
||||
local imgtype, w, h, bg
|
||||
|
||||
-- default values: Indexed, 320x200, Transparent
|
||||
imgtype = get_config_int("NewSprite", "Type", IMAGE_INDEXED)
|
||||
imgtype = MID(IMAGE_RGB, imgtype, IMAGE_INDEXED)
|
||||
w = get_config_int("NewSprite", "Width", 320)
|
||||
h = get_config_int("NewSprite", "Height", 200)
|
||||
bg = get_config_int("NewSprite", "Background", 0)
|
||||
|
||||
jwidget_set_text(width, w)
|
||||
jwidget_set_text(height, h)
|
||||
|
||||
-- select image-type
|
||||
if imgtype == IMAGE_RGB then
|
||||
jwidget_select(radio1)
|
||||
elseif imgtype == IMAGE_GRAYSCALE then
|
||||
jwidget_select(radio2)
|
||||
elseif imgtype == IMAGE_INDEXED then
|
||||
jwidget_select(radio3)
|
||||
end
|
||||
|
||||
-- select background color
|
||||
jlistbox_select_index(bg_box, bg)
|
||||
|
||||
-- open the window
|
||||
jwindow_open_fg(window)
|
||||
|
||||
if jwindow_get_killer(window) == button_ok then
|
||||
-- get the options
|
||||
if jwidget_is_selected(radio1) then
|
||||
imgtype = IMAGE_RGB
|
||||
elseif jwidget_is_selected(radio2) then
|
||||
imgtype = IMAGE_GRAYSCALE
|
||||
elseif jwidget_is_selected(radio3) then
|
||||
imgtype = IMAGE_INDEXED
|
||||
end
|
||||
|
||||
w = tonumber(jwidget_get_text(width))
|
||||
h = tonumber(jwidget_get_text(height))
|
||||
bg = jlistbox_get_selected_index(bg_box)
|
||||
|
||||
w = MID(1, w, 9999)
|
||||
h = MID(1, h, 9999)
|
||||
|
||||
-- select the color
|
||||
local color = nil
|
||||
|
||||
if bg >= 0 and bg <= 3 then
|
||||
local bg_table = {
|
||||
"mask",
|
||||
"rgb{0,0,0}",
|
||||
"rgb{255,255,255}",
|
||||
"rgb{255,0,255}" }
|
||||
color = bg_table[bg+1]
|
||||
else
|
||||
local default_color = get_config_string("NewSprite", "BackgroundCustom",
|
||||
"rgb{0,0,0}")
|
||||
|
||||
color = ji_color_select(imgtype, default_color)
|
||||
if color then
|
||||
set_config_string("NewSprite", "BackgroundCustom", color)
|
||||
end
|
||||
end
|
||||
|
||||
if color then
|
||||
-- save the configuration
|
||||
set_config_int("NewSprite", "Type", imgtype)
|
||||
set_config_int("NewSprite", "Width", w)
|
||||
set_config_int("NewSprite", "Height", h)
|
||||
set_config_int("NewSprite", "Background", bg)
|
||||
|
||||
-- create the new sprite
|
||||
local sprite = NewSprite(imgtype, w, h)
|
||||
|
||||
_sprite_counter = _sprite_counter + 1
|
||||
sprite_set_filename(sprite, "Sprite-" .. _sprite_counter)
|
||||
|
||||
image_clear(GetImage(), get_color_for_image(imgtype, color))
|
||||
|
||||
sprite_show(sprite)
|
||||
end
|
||||
end
|
||||
|
||||
jwidget_free(window)
|
||||
end
|
22
data/scripts/openspr.lua
Normal file
22
data/scripts/openspr.lua
Normal file
@ -0,0 +1,22 @@
|
||||
-- ase -- allegro-sprite-editor: the ultimate sprites factory
|
||||
-- Copyright (C) 2001-2005 by David A. Capello
|
||||
|
||||
function sprite_recent_load(filename)
|
||||
local sprite = sprite_load(filename)
|
||||
if sprite then
|
||||
recent_file(filename)
|
||||
sprite_mount(sprite)
|
||||
sprite_show(sprite)
|
||||
else
|
||||
unrecent_file(filename)
|
||||
end
|
||||
return sprite
|
||||
end
|
||||
|
||||
function GUI_OpenSprite()
|
||||
local filename = ji_file_select(_("Open Sprite"), "",
|
||||
get_readable_extensions())
|
||||
if filename then
|
||||
sprite_recent_load(filename)
|
||||
end
|
||||
end
|
49
data/scripts/playfli.lua
Normal file
49
data/scripts/playfli.lua
Normal file
@ -0,0 +1,49 @@
|
||||
-- ase -- allegro-sprite-editor: the ultimate sprites factory
|
||||
-- Copyright (C) 2001-2005 by David A. Capello
|
||||
|
||||
local function file_select_fli()
|
||||
return ji_file_select(_("Open a FLI/FLC file"), "", "fli,flc")
|
||||
end
|
||||
|
||||
function GUI_PlayFLI()
|
||||
local filename = file_select_fli()
|
||||
if filename then
|
||||
-- load the window widget
|
||||
local window = ji_load_widget("playfli.jid", "play_fli")
|
||||
if not window then return end
|
||||
|
||||
local loop = jwidget_find_name(window, "loop")
|
||||
local fullscreen = jwidget_find_name(window, "fullscreen")
|
||||
local button_open = jwidget_find_name(window, "button_open")
|
||||
local button_play = jwidget_find_name(window, "button_play")
|
||||
|
||||
if get_config_bool("PlayFLI", "Loop", true) then
|
||||
jwidget_select(loop)
|
||||
end
|
||||
if get_config_bool("PlayFLI", "FullScreen", false) then
|
||||
jwidget_select(fullscreen)
|
||||
end
|
||||
|
||||
while true do
|
||||
jwindow_open_fg(window)
|
||||
|
||||
if jwindow_get_killer(window) == button_play then
|
||||
set_config_bool("PlayFLI", "Loop", jwidget_is_selected(loop))
|
||||
set_config_bool("PlayFLI", "FullScreen", jwidget_is_selected(fullscreen))
|
||||
|
||||
play_fli_animation(filename,
|
||||
jwidget_is_selected(loop),
|
||||
jwidget_is_selected(fullscreen))
|
||||
elseif jwindow_get_killer(window) == button_open then
|
||||
local filename2 = file_select_fli()
|
||||
if filename2 then
|
||||
filename = filename2
|
||||
end
|
||||
else
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
jwidget_free(window)
|
||||
end
|
||||
end
|
10
data/scripts/rec.lua
Normal file
10
data/scripts/rec.lua
Normal file
@ -0,0 +1,10 @@
|
||||
-- ase -- allegro-sprite-editor: the ultimate sprites factory
|
||||
-- Copyright (C) 2001-2005 by David A. Capello
|
||||
|
||||
function GUI_SwitchREC()
|
||||
if is_rec_screen() then
|
||||
rec_screen_off()
|
||||
else
|
||||
rec_screen_on()
|
||||
end
|
||||
end
|
47
data/scripts/remfrm.lua
Normal file
47
data/scripts/remfrm.lua
Normal file
@ -0,0 +1,47 @@
|
||||
-- ase -- allegro-sprite-editor: the ultimate sprites factory
|
||||
-- Copyright (C) 2001-2005 by David A. Capello
|
||||
|
||||
function RemoveFrame(layer, frame)
|
||||
local sprite = current_sprite
|
||||
local frpos, it, used, image
|
||||
|
||||
if sprite and layer_is_image(layer) and frame then
|
||||
-- find if the image that use the frame to remove, is used by
|
||||
-- another frames
|
||||
used = false
|
||||
for frpos = 0, sprite.frames-1 do
|
||||
it = layer_get_frame(layer, frpos)
|
||||
if it and it.id != frame.id and it.image == frame.image then
|
||||
used = true
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
undo_open(sprite.undo)
|
||||
if not used then
|
||||
-- if the image is only used by this frame, we can remove the
|
||||
-- image from the stock
|
||||
image = stock_get_image(layer.stock, frame.image)
|
||||
undo_remove_image(sprite.undo, layer.stock, image)
|
||||
stock_remove_image(layer.stock, image)
|
||||
image_free(image)
|
||||
end
|
||||
undo_remove_frame(sprite.undo, layer, frame)
|
||||
undo_close(sprite.undo)
|
||||
|
||||
-- remove the frame
|
||||
layer_remove_frame(layer, frame)
|
||||
frame_free(frame)
|
||||
end
|
||||
end
|
||||
|
||||
function GUI_RemoveFrame()
|
||||
local sprite = current_sprite
|
||||
if sprite then
|
||||
local frame = layer_get_frame(sprite.layer, sprite.frpos)
|
||||
if frame then
|
||||
RemoveFrame(sprite.layer, frame)
|
||||
GUI_Refresh(sprite)
|
||||
end
|
||||
end
|
||||
end
|
9
data/scripts/rootmenu.lua
Normal file
9
data/scripts/rootmenu.lua
Normal file
@ -0,0 +1,9 @@
|
||||
-- ase -- allegro-sprite-editor: the ultimate sprites factory
|
||||
-- Copyright (C) 2001-2005 by David A. Capello
|
||||
|
||||
function GUI_ReloadMenus()
|
||||
if jalert(_("Warning<<If you try to reload the root-menu<<you will lost the current one.<<Do you want continue?||&Load||&Cancel"))
|
||||
== 1 then
|
||||
rebuild_root_menu()
|
||||
end
|
||||
end
|
50
data/scripts/savespr.lua
Normal file
50
data/scripts/savespr.lua
Normal file
@ -0,0 +1,50 @@
|
||||
-- ase -- allegro-sprite-editor: the ultimate sprites factory
|
||||
-- Copyright (C) 2001-2005 by David A. Capello
|
||||
|
||||
function GUI_SaveSprite()
|
||||
if not current_sprite then
|
||||
return
|
||||
end
|
||||
|
||||
local filename = current_sprite.filename
|
||||
local ret
|
||||
|
||||
while true do
|
||||
filename = ji_file_select(_("Save Sprite"), filename,
|
||||
get_writeable_extensions())
|
||||
if not filename then
|
||||
return
|
||||
end
|
||||
|
||||
-- does the file exist?
|
||||
if file_exists(filename) then
|
||||
-- ask if the user wants overwrite the file?
|
||||
ret = jalert(_("Warning")..
|
||||
"<<".._("File exists, overwrite it?")..
|
||||
"<<"..get_filename(filename)..
|
||||
"||".._("&Yes||&No||&Cancel"))
|
||||
else
|
||||
break
|
||||
end
|
||||
|
||||
-- "yes": we must continue with the operation...
|
||||
if ret == 1 then
|
||||
break
|
||||
-- "cancel" or <esc> per example: we back doing nothing
|
||||
elseif ret != 2 then
|
||||
return
|
||||
end
|
||||
-- "no": we must back to select other file-name */
|
||||
end
|
||||
|
||||
sprite_set_filename(current_sprite, filename)
|
||||
rebuild_sprite_list()
|
||||
|
||||
if sprite_save(current_sprite) == 0 then
|
||||
recent_file(filename)
|
||||
sprite_was_saved(current_sprite)
|
||||
else
|
||||
unrecent_file(filename)
|
||||
print(_("Error saving sprite file: ")..current_sprite.filename)
|
||||
end
|
||||
end
|
29
data/scripts/selspr.lua
Normal file
29
data/scripts/selspr.lua
Normal file
@ -0,0 +1,29 @@
|
||||
-- ase -- allegro-sprite-editor: the ultimate sprites factory
|
||||
-- Copyright (C) 2001-2005 by David A. Capello
|
||||
|
||||
-- shows a sprite by its ID
|
||||
function ShowSpriteByID(sprite_id)
|
||||
local sprite = nil
|
||||
|
||||
-- is not the null sprite?
|
||||
if sprite_id != 0 then
|
||||
local clipboard = get_clipboard_sprite()
|
||||
|
||||
-- the clipboard?
|
||||
if clipboard and sprite_id == clipboard.id then
|
||||
sprite = clipboard
|
||||
-- some sprite in the list?
|
||||
else
|
||||
sprite = get_first_sprite()
|
||||
|
||||
while sprite do
|
||||
if sprite.id == sprite_id then
|
||||
break
|
||||
end
|
||||
sprite = get_next_sprite(sprite)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
set_sprite_in_current_editor(sprite)
|
||||
end
|
39
data/scripts/session.lua
Normal file
39
data/scripts/session.lua
Normal file
@ -0,0 +1,39 @@
|
||||
-- ase -- allegro-sprite-editor: the ultimate sprites factory
|
||||
-- Copyright (C) 2001-2005 by David A. Capello
|
||||
|
||||
function GUI_LoadSession()
|
||||
local filename = ji_file_select(_("Load .ses File"), "", "ses")
|
||||
if filename then
|
||||
if load_session(filename) then
|
||||
jalert(_("Session Manager<<Session loaded succefully<<Go to the \"List\" menu to see the loaded sprites||&OK"))
|
||||
else
|
||||
jalert(_("Session Manager<<Error loading session||&OK"))
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function GUI_SaveSession()
|
||||
local filename = ji_file_select(_("Save .ses File"), "", "ses")
|
||||
if filename then
|
||||
if save_session(filename) then
|
||||
jalert(_("Session Manager<<Session saved succefully||&OK"))
|
||||
else
|
||||
jalert(_("Session Manager<<Error saving session||&OK"))
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if is_interactive() and
|
||||
is_backup_session() and
|
||||
get_config_bool("Options", "AskBkpSes", true) then
|
||||
local ret = jalert(_("Session Manager<<There is a backed up session(maybe a previous crash).<<Do you want to load it?||Never &ask||&No||&Yes"))
|
||||
|
||||
-- never ask again
|
||||
if ret == 1 then
|
||||
set_config_bool("Options", "AskBkpSes", false)
|
||||
-- try to load it
|
||||
elseif ret == 3 then
|
||||
set_config_string("FileSelect", "CurrentDirectory", "data/session")
|
||||
GUI_LoadSession()
|
||||
end
|
||||
end
|
11
data/scripts/sprite.lua
Normal file
11
data/scripts/sprite.lua
Normal file
@ -0,0 +1,11 @@
|
||||
-- ase -- allegro-sprite-editor: the ultimate sprites factory
|
||||
-- Copyright (C) 2001-2005 by David A. Capello
|
||||
|
||||
-- closes the current sprite
|
||||
function CloseSprite()
|
||||
local sprite = current_sprite
|
||||
if sprite then
|
||||
sprite_unmount(sprite)
|
||||
sprite_free(sprite)
|
||||
end
|
||||
end
|
70
data/scripts/sprprop.lua
Normal file
70
data/scripts/sprprop.lua
Normal file
@ -0,0 +1,70 @@
|
||||
-- ase -- allegro-sprite-editor: the ultimate sprites factory
|
||||
-- Copyright (C) 2001-2005 by David A. Capello
|
||||
|
||||
function GUI_SpriteProperties()
|
||||
-- get current sprite
|
||||
local sprite = current_sprite
|
||||
if not sprite then return end
|
||||
|
||||
-- load the window widget
|
||||
local window = ji_load_widget("sprprop.jid", "sprite_properties")
|
||||
if not window then return end
|
||||
|
||||
-- update widgets values
|
||||
do
|
||||
local imgtype_text
|
||||
|
||||
if sprite.imgtype == IMAGE_RGB then
|
||||
imgtype_text = "RGB"
|
||||
elseif sprite.imgtype == IMAGE_GRAYSCALE then
|
||||
imgtype_text = "Grayscale"
|
||||
elseif sprite.imgtype == IMAGE_INDEXED then
|
||||
imgtype_text = "Indexed"
|
||||
else
|
||||
imgtype_text = "Unknown"
|
||||
end
|
||||
|
||||
jwidget_set_text(jwidget_find_name(window, "name"), sprite.filename)
|
||||
jwidget_set_text(jwidget_find_name(window, "type"), imgtype_text)
|
||||
jwidget_set_text(jwidget_find_name(window, "size"),
|
||||
sprite.w .. "x" .. sprite.h)
|
||||
jwidget_set_text(jwidget_find_name(window, "frames"),
|
||||
tostring(sprite.frames))
|
||||
end
|
||||
|
||||
jwindow_remap(window)
|
||||
jwindow_center(window)
|
||||
|
||||
while true do
|
||||
load_window_pos(window, "SpriteProperties")
|
||||
jwindow_open_fg(window)
|
||||
save_window_pos(window, "SpriteProperties")
|
||||
|
||||
local killer = jwindow_get_killer(window)
|
||||
|
||||
if killer == jwidget_find_name(window, "ok") then
|
||||
local filename = jwidget_get_text(jwidget_find_name(window, "name"))
|
||||
local frames = tonumber(jwidget_get_text(jwidget_find_name(window, "frames")))
|
||||
|
||||
frames = MID(1, frames, 9999)
|
||||
|
||||
-- does filename change?
|
||||
if filename != sprite.filename then
|
||||
sprite_set_filename(sprite, filename)
|
||||
rebuild_sprite_list()
|
||||
end
|
||||
|
||||
sprite_set_frames(sprite, frames)
|
||||
|
||||
-- update sprite in editors
|
||||
GUI_Refresh(sprite)
|
||||
break
|
||||
elseif killer == jwidget_find_name(window, "speed") then
|
||||
GUI_FrameLength(-1)
|
||||
else
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
jwidget_free(window)
|
||||
end
|
54
data/scripts/testjid.lua
Normal file
54
data/scripts/testjid.lua
Normal file
@ -0,0 +1,54 @@
|
||||
-- ase -- allegro-sprite-editor: the ultimate sprites factory
|
||||
-- Copyright (C) 2001-2005 by David A. Capello
|
||||
|
||||
function GUI_TestJID()
|
||||
local filename = ji_file_select(_("Open a JID file"), "", "jid")
|
||||
if filename then
|
||||
local window, box1, box2, box3, label, entry, button_ok, button_cancel
|
||||
|
||||
window = jwindow_new(_("Test Widget"))
|
||||
box1 = jbox_new(JI_VERTICAL)
|
||||
box2 = jbox_new(JI_HORIZONTAL)
|
||||
box3 = jbox_new(JI_HORIZONTAL + JI_HOMOGENEOUS)
|
||||
label = jlabel_new(_("Widget Name:"))
|
||||
entry = jentry_new(256, get_config_string("TestJid", "Name", "my_widget"))
|
||||
button_ok = jbutton_new(_("&OK"))
|
||||
button_cancel = jbutton_new(_("&Cancel"))
|
||||
|
||||
jwidget_magnetic(button_ok, true)
|
||||
jwidget_expansive(box2, true)
|
||||
jwidget_expansive(entry, true)
|
||||
|
||||
jwidget_add_child (box2, label)
|
||||
jwidget_add_child (box2, entry)
|
||||
jwidget_add_child (box1, box2)
|
||||
jwidget_add_child (box3, button_ok)
|
||||
jwidget_add_child (box3, button_cancel)
|
||||
jwidget_add_child (box1, box3)
|
||||
jwidget_add_child (window, box1)
|
||||
|
||||
jwindow_open_fg(window)
|
||||
|
||||
if jwindow_get_killer(window) == button_ok then
|
||||
local widget_name = jwidget_get_text(entry)
|
||||
local loaded_widget = ji_load_widget(filename, widget_name)
|
||||
|
||||
if not loaded_widget then
|
||||
jalert(_("Error<<Error loading widget:") .. "<<"
|
||||
.. widget_name .. "||" .. _("&OK"))
|
||||
else
|
||||
set_config_string("TestJid", "Name", widget_name)
|
||||
|
||||
if jwidget_get_type(loaded_widget) == JI_WINDOW then
|
||||
jwindow_open_bg(loaded_widget)
|
||||
else
|
||||
local aux_window = jwindow_new("Widget: "..widget_name)
|
||||
jwidget_add_child (aux_window, loaded_widget)
|
||||
jwindow_open_bg(aux_window)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
jwidget_free(window)
|
||||
end
|
||||
end
|
18
data/scripts/undo.lua
Normal file
18
data/scripts/undo.lua
Normal file
@ -0,0 +1,18 @@
|
||||
-- ase -- allegro-sprite-editor: the ultimate sprites factory
|
||||
-- Copyright (C) 2001-2005 by David A. Capello
|
||||
|
||||
function GUI_Undo()
|
||||
if current_sprite and undo_can_undo(current_sprite.undo) then
|
||||
undo_undo(current_sprite.undo)
|
||||
sprite_generate_mask_boundaries(current_sprite)
|
||||
GUI_Refresh(current_sprite)
|
||||
end
|
||||
end
|
||||
|
||||
function GUI_Redo()
|
||||
if current_sprite and undo_can_redo(current_sprite.undo) then
|
||||
undo_redo(current_sprite.undo)
|
||||
sprite_generate_mask_boundaries(current_sprite)
|
||||
GUI_Refresh(current_sprite)
|
||||
end
|
||||
end
|
1
data/session/README.txt
Normal file
1
data/session/README.txt
Normal file
@ -0,0 +1 @@
|
||||
If the program crashes, a session file is created here.
|
BIN
data/tips/aselogo.pcx
Normal file
BIN
data/tips/aselogo.pcx
Normal file
Binary file not shown.
BIN
data/tips/colcurv.pcx
Normal file
BIN
data/tips/colcurv.pcx
Normal file
Binary file not shown.
BIN
data/tips/dither.pcx
Normal file
BIN
data/tips/dither.pcx
Normal file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user