home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Datafile PD-CD 3
/
PDCD_3.iso
/
utilities
/
utilsm
/
newerlook
/
NewerBits
/
DragHelp
< prev
Wrap
Text File
|
1994-02-17
|
11KB
|
207 lines
<============================================================================
D R A G A S P R I T E +
Version 2.02, 15 Feb 1994
© Andrew Clover of DoggySoft
============================================================================>
If you have been using version 1.09, you might like a quick summary of the
updates. Skip this if you are a new user.
===> Changes from 1.09 to 1.10
--> Fix of bug that stopped the dragging of sprites within window work area.
I was not able to test this previously as I couldn't find a program
which did it. (Thanks to Thomas Olsson for spotting this one.)
===> Changes from 1.10 to 2.02 - TOTAL RECODE
--> New *DragType command provides much greater configurability than the old
*SemiDrags. Drop-shadows are now supported, because the new *DragType
command enables them to be at a different solidity than the sprite, so
they actually look good. Distance of shadows changeable.
--> Applications can choose whether to have drop-shadows themselves, or you
can force them to use whatever setting you like.
--> Five-fold algorithm for speed. It's now about as fast as is possible.
There shouldn't be any flicker at all. It's certainly smoother than RISC
OS 3 DragASprite.
--> New method in the draw code when bbox is not in graphics window - doesn't
change the graphics window like RISC OS 3 DragASprite (PRMs say you
shouldn't anyway).
--> Demessification of error handling
--> Demessification of memory management
--> Disadvantage: All the new code means its length has increased to a
(comparatively) whopping 6K!
<============================================================================
This program is Freeware. You are allowed to copy it and hand it around to
your friends as much as you like, but you must supply the module with this
help file, unedited. If you are a PD library, please write to us for the
latest versions of all our programs.
===> Introduction
DragASprite+ is an improved version of Acorn's DragASprite module that is
supplied in ROM on RISC OS 3. The main advantages of this module over that
in RISC OS 3 are:
-> You can run it on any version of RISC OS. Acorn's DragASprite will not
run if soft-loaded on RISC OS 2. Actually, I haven't tested it on RISC OS
2, but the old version worked, and I haven't used any RISC OS 3 only bits.
-> It is quicker, providing a faster screen update and smoother movement of
icons.
-> It fixes a minor bug present in unusual modes such as 22, and a strange
bug that popped up in StrongEd for some reason.
-> It allows dragging of 256 colour sprites, unlike Acorn's which fails
either by producing incorrect colours or not letting you drag at all.
-> It allows semi-transparent sprite drags, and instead of just masking out
every other pixel, it creates an alternating pattern providing no loss of
detail. The alternation also stops dithered icons looking completely
useless.
-> It gives you the facility to set the CMOS flag to use solid drags by the
use of a star command.
-> It is configurable to give many types of sprite drags. Either the sprite
or the shadow can be semi-transparent or solid, or shadows can be forced
off if you don't like them. The distance of the shadow from the sprite
may also be configured.
===> Use
After you have loaded the new DragASprite module, the first thing to do is to
make sure the DragASprite flag in battery-backed RAM is set on your computer.
To do this enter the following command:
*Configure SpriteDrags On
If you decide that solid drags are not for you then you can turn it off by
using the above command with "Off".
Now it's time to choose what sort of sprite drags you want. The default is
to have semi-transparent sprites with drop-shadows forced off, but there are
many options. Enter *Help DragType to find out what they are, and *DragType
to see the current settings. Some combinations to try:
*DragType -Sprite 2 -Shadow 2 -Offset 8 -ForceOff
This command sets DragASprite to emulate the RISC OS 3 ROM DragASprite
module, with a solid sprite and shadow 8 OS units away from it. It also
allows applications to choose whether to have a drop-shadow themselves.
This, however, is not recommended, as some applications will use them and
some not, which leads to an inconsistent desktop.
*DragType -Sprite 1 -Shadow 1 -Offset 8 -ForceOff
This command emulates the patched DragASprites that come from Acorn User,
Acorn Computing, various PD programs, and certain other sources (ahem).
Both the sprite and the shadow are semi-transparent, which doesn't look all
that good, but it is better than the others with its alternating dither
pattern.
*DragType -Sprite 1 -Shadow 0 -Offset 12 -ForceOn
This command is the default setup, a semi-transparent sprite with no
shadow. Looks good and has the useful advantage of allowing you to see the
icon you are dropping the sprite on to.
*DragType -Sprite 2 -Shadow 1 -Offset 12 -ForceOn
This command gives a solid sprite with a semi-transparent shadow, which
looks good (IMHO better than the default) if you don't mind more
icon-obscuring. The shadow is also further away from the sprite than RISC
OS has it, I think it looks clearer at this distance.
Feel free to experiment with the DragType settings, but I don't recommend
solid shadows with semi-transparent sprites, or huge shadow offsets! If you
always work in high-resolution modes, you may prefer an offset of 10.
Once you've decided what you like, we recommend you put DragASprite+ in your
boot sequence, if you have one. If your favourite DragType is not the default
put the new command in to. If you have no boot sequence, it's a bit of a pain
double-clicking on DragASprite and maybe entering a command every time you
turn on, so make a boot sequence today!
Some applications will ignore the setting of the battery-backed RAM
DragASprite flags, and either use sprite drags when they shouldn't, or use
an old-style dash-box when they should drag a sprite. The first case is
easy to deal with - Just enter *DragType -Sprite 0, and all sprite drags will
get a dash-box instead. The second case is not so easy - applications built
for RISC OS 2, including Acorn's applications, will not know about
DragASprite, and will make a dash-box themselves. This will also happen with
applications that decide whether or not to use sprite drags by looking at the
OS version number, if you are running RISC OS 2 - they assume that
DragASprite is only available on RISC OS 3, and of course it used to be.
To get these programs to use sprite drags, you'll have to get one of those
programs that forces sprite drags on everything. I think there's one called
WIMPPatch. Another thing that might be a good idea is a patch to make the
filer and pinboard use sprite drags. Ahem.
===> Interesting(ish) miscellany
Acorn decided that they would not allow people to soft-load a copy of RISC OS
3's DragASprite module into RISC OS 2 for some unknown reason. They did this
by having an unnecessary SWI call at the start that crashed RISC OS 2. This
implementation (which is, after all, a FULL re-code, no Acorn code has been
used - actually, you wouldn't like to know what RISC OS 3 does when the
sprite doesn't fit within graphics window, it's completely horrible :-6 )
does not include this call and therefore you can use this module on all
known operating systems to date.
For 256 colour sprites this version of DragASprite will correctly handle them
in 256 colour modes, but in 16 colour modes it will produce a black 'ghost'
sprite to represent the icon - the best you can do without using ColourTrans.
I may produce a version that does use ColourTrans, if anyone cares.
This module is VIDC20 aware, but not VIDC20 tested. It should work properly
with 16- and 32-bit colour modes, but I haven't got a machine that runs in
these modes ...yet... so I can't test it.
Semi-transparent sprites look much better in high-res modes (although still
looking fine, and much better than completely solid drags, in TV-res modes)
because the gap between each pixel is