obsolete.computer

vermiculate-standalone/.

Standalone version of Vermiculate, the XScreenSaver hack.

Directory Listing

total 84K
drwxr-xr-x 3 4.0K Nov 18 2022 ./
drwxr-xr-x 7 4.0K Oct 3 08:36 ../
-rw-r--r-- 1 24 Nov 16 2022 .gitignore
-rw-r--r-- 1 718 Nov 17 2022 LICENSE
-rw-r--r-- 1 585 Nov 16 2022 Makefile
-rw-r--r-- 1 4.0K Nov 17 2022 README.md
-rw-r--r-- 1 58 Nov 16 2022 summary.md
-rw-r--r-- 1 1.6K Nov 15 2022 usleep.c
-rw-r--r-- 1 763 Nov 15 2022 usleep.h
-rw-r--r-- 1 29K Nov 17 2022 vermiculate.c
-rw-r--r-- 1 4.2K Nov 15 2022 yarandom.c
-rw-r--r-- 1 2.1K Nov 15 2022 yarandom.h

Download

Readme

Standalone version of Vermiculate, the XScreenSaver hack.

Rescued from the depths of the internet from an old XScreenSaver release, found here.

Added a skeleton of a makefile. Tweaked some defaults. Played around. Put it on the internet. Enjoy.

Building & Running

  1. Get the code
  2. cd into the code directory
  3. make
  4. ./vermiculate -instring "bmn1111#" -speed 50 (an instring is required until I can figure out why the defaults don't work)

I'm not really interested in adding an install target, so just run it from the code directory.

Key Command / Instring Reference

This is a work in progress, as I decipher the source code.

Main Keys

  • B - Toggle bounce at border (default is to bounce)
  • C - Bank Select Mode
  • T/Y/N - Bank property set mode
  • E - Toggle erasing of worm trails
  • M - Make worms mode.
  • G - Grid (maze) mode.
  • R - Rotate border (border is only visible when 'bounce at border' is enabled)
  • 1-9 - Set mode of all worms
  • P - Randomize pallette
  • A - Auto pallette (randomizes pallette when screen is cleared)
  • [ or ] - Create or destroy worms
  • + or - - Increase or decrease speed
  • * or / - Increase or decrease curviness (affects type 5 worms)
  • [space] - Clear the screen (useful after turning off 'erase')
  • Esc - Quit

Bank Select Mode Keys

  • 1-9 - Select worm thread #1-9
  • + or - - Cycle through selected worms
  • T[1-9] - Select all worms of type 1-9
  • A - Select all active worms
  • E - Select all worm threads, including ones not currently active
  • [space] - Add worms to selection, starting at #1
  • I - invert current selection
  • # or Enter - Exit select

Bank Property Set Mode Keys

This mode initiates a bank select like pressing C, but will then toggle, set, or unset properties of the selected bank respectively. Instead of pressing enter after the bank select, it accepts one additional key after the bank select, to indicate which property to modify:
- S - Self-bounce
- V - VHFollow
- R - Realbounce
- L - Little
- T - Tailfollow
- K - Killwalls

Make Worms Mode Keys

  • A will add worms to the existing
  • N starts adding them from scratch.
  • Follow either A or N with the mode of each worm, [1-9] or r for randomly chosen mode. Will keep consuming key presses until you press # or enter.
  • Example: Mn1111rrrrr# creates 4 mode-1 worms and 5 worms with random modes.

Grid Mode Keys

  • [ or ] - Increase or decrease grid density
  • + or - - Increase or decrease grid square size

Worm Modes

  • 1 - Basic, straight-but squiggly worms
  • 2 - Angular worms that turn based on a set angle
  • 3 - Worms that go in a circle of a randomly-chosen size
  • 4 - Spirally-worms
  • 5 - Basic squiggly worms, but they honor the 'curviness' setting which controls how tightly they turn
  • 6 - These seem to alternate between going straight and turning in a circle, making for random-looking spiral shapes
  • 7 - Cloverleaf-shape worms
  • 8 - Unused (worms just go straight)
  • 9 - Unused (worms just go straight)

  • prey - The above modes are ignored if 'prey' is enabled for a worm. If prey is turned on,

Feeding the worms a startup sequence

Currently the default settings (i.e. when run with no parameters) don't seem to work right... Fortunately you can feed any of the above keystrokes into the -instring command line parameter. When interpreting strings, the # character is used in place of pressing enter. For example, the following will start up with 5 randomly-generated worms, and turn off border-bounce:

./vermiculate -instring "bMnrrrrr#" -speed 50

Other startup parameters

You can also supply a window geometry or use the root window by adding -geometry WIDTHxHEIGHT or -root, respectively. (The latter doesn't seem to work, probably because this uses old Xorg code. Patches welcome.)

Recent Changes

  • [1620986] 2022-11-17: readme
  • [3919d34] 2022-11-17: Updated readme, license
  • [ef17c7c] 2022-11-16: Updated license, readme
  • [ad89922] 2022-11-16: Added summary
  • [95e6cac] 2022-11-16: Updated readme

License

Here is the license as presented in the original source file.

/
@(#) vermiculate.c
@(#) Copyright (C) 2001 Tyler Pierce (email redacted)
The full program, with documentation, is available at:
http://freshmeat.net/projects/fdm

Permission to use, copy, modify, distribute, and sell this software and its
documentation for any purpose is hereby granted without fee, provided that
the above copyright notice appear in all copies and that both that
copyright notice and this permission notice appear in supporting
documentation. No representations are made about the suitability of this
software for any purpose. It is provided "as is" without express or
implied warranty.
/

Meta