home *** CD-ROM | disk | FTP | other *** search
- <============================================================================
-
- 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 smaller. You may find that dithered
- sprites appear to 'flash' a bit, as the colours displayed will go from one to
- the other - but it looks a lot better than non-alternating dithered sprites,
- which take up just one colour.
-
- The reason for the configure option is because until now you had to use two
- calls to OS_Byte to set the configure bit and usually you cannot remember
- what location to alter. This call is purely a quick way of doing the above.
- NB: When you configure the option, the action might not take effect
- immediately. This is because it is not DragASprite you are telling to not
- do solid drags but the tasks on the desktop, and some will only check to see
- if the configure option is set when they first load.
-
- The reason for a higher version number, 2.01, as opposed to 1.01 (only one
- recode so far) which is the real version number, is to avoid confusion with
- Acorn's original DragASprite module. It is conceivable that Acorn will
- release a new OS with a new DragASprite built in version number higher than
- 0.05 but lower than 2.01, and if they widen the specification (a new SWI
- possibly, or service calls issued?), it may muck things up - that's a risk
- I'll have to take, I don't think it's very likely myself.
-
- Note that this version does not support system sprite area sprites - this
- shouldn't be a problem as using the system sprite area is not allowed
- generally, and no-one does it. This is because I need to find the actual
- address of a sprite (which is not possible in the system sprite area), to use
- a fast mask poking method - it takes a VERY long time to get the sprites
- ready if you use the standard SpriteOp calls.
-
- ==> Contacts
-
- To contact me, for example to tell me your favourite DragType, to persuade
- me to change the default, or to suggest new bits to add, or, heaven forbid,
- to report a bug, please write to:
-
- Andrew Clover
- DoggySoft,
- 7 Blackhorse Crescent,
- Amersham,
- Bucks.,
- HP6 6HP.
-
- You may phone me if you are one of those sad people who seem to phone me for
- no reason on 0494-431916, send a fax on 0494-675878, or even telex me on
- 83675 Brit G.
-
- If you have a modem, you can download the latest version of this and other
- programs of DoggySoft, as well as talk to us, play silly games, and
- buy non-PD software, by ringing 0494-681711, 24hrs & all speeds to 14k4
- (ANSI 8N1). You might like to send me mail on Arcade BBS, Digital Databank
- or The World of Cryton. Finally, e-mail:
- ajc@doggysft.demon.co.uk
-
- <============================================================================