Rereading

3 views
Skip to first unread message

Gareth Rees

unread,
Dec 21, 1998, 3:00:00 AM12/21/98
to
Well-loved books get reread many times. What about well-loved IF?

Rereading is different from reading. You know roughly what's going to
happen. You can skip over the dull bits, or the bits that don't match
your mood. You can turn straight to the sex scenes if that's what
you're after.

This isn't really possible with IF. I can't pick up "Trinity", say, and
turn straight to the New Mexico scene. Or jump to Alexandria in
"Curses".

The best I can do is find a script from the IF archive (which is
unlikely, since few solutions are in the form of scripts) and feed
sections of it into the game using cut-and-paste. Usually the game goes
to some effort to foil this approach through random timing of events, or
random numbers/words that I have to write down and enter later.

It's much more likely that I'll say to myself that maybe I don't want to
play the ballroom scene from "Plundered Hearts" as much as all that, and
do something else instead.

This is a challenge to game authors: can you make games that support
rereading? Perhaps a menu of "chapters" (or similar dividing points in
the story) with an option to take the player to the start of each?

--
Gareth Rees

Stacy the Procrastinating

unread,
Dec 21, 1998, 3:00:00 AM12/21/98
to
On Mon, 21 Dec 1998, Gareth Rees wrote:

> Well-loved books get reread many times. What about well-loved IF?
>

<snip>

> This is a challenge to game authors: can you make games that support
> rereading? Perhaps a menu of "chapters" (or similar dividing points in
> the story) with an option to take the player to the start of each?

This would actually be a really cool feature for someone to implement.
When I really like games, I try to save at the beginning of each scene, so
I can hop in wherever. That tends to be a pain, and I end up with folders
full of dozens of cryptic save files. It would be awesome if there were
some way of 'bookmarking' passages. Authors could put in bookmarks where
they think the action breaks are, and players could add their own. The
bookmarks could be accessible through a menu, like the menu system
currently used for hints. It's not that different from saving games, but
it could make 'flipping through' a game easier.

-stacy

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bookbug of the brower's bookweb
http://bookweb.simplenet.com
* to reply to this message, cut the animal out of the address *


Erik Hetzner

unread,
Dec 21, 1998, 3:00:00 AM12/21/98
to
In article <siyao1c...@cre.canon.co.uk>, Gareth Rees
<gar...@cre.canon.co.uk> wrote:

>This isn't really possible with IF. I can't pick up "Trinity", say, and
>turn straight to the New Mexico scene. Or jump to Alexandria in
>"Curses".
>
>The best I can do is find a script from the IF archive (which is
>unlikely, since few solutions are in the form of scripts) and feed
>sections of it into the game using cut-and-paste. Usually the game goes
>to some effort to foil this approach through random timing of events, or
>random numbers/words that I have to write down and enter later.
>
>It's much more likely that I'll say to myself that maybe I don't want to
>play the ballroom scene from "Plundered Hearts" as much as all that, and
>do something else instead.
>

>This is a challenge to game authors: can you make games that support
>rereading? Perhaps a menu of "chapters" (or similar dividing points in
>the story) with an option to take the player to the start of each?

This is an interesting point. Saved games work, but are a pain to use.

I reply because I was thinking about putting together a plan and
teaching a "DeCal" class here at Berkeley on IF. That's a class taught by
undergraduates for undergraduates. I thought that the students would play
scenes and parts of different works of IF to get a feel for the genre and
the techniques. I would probably use saved games. Unfortunately, the only
way I can think of to allow students to play parts of commercial games is to
put them
on the web with saved games.

These are somewhat different issues than originally brought up, but they
kind of fit it. :)

-Erik


Bonnie Montgomery

unread,
Dec 21, 1998, 3:00:00 AM12/21/98
to
In article <75n4dd$ei6$1...@east44.supernews.com>,
har...@iu.net.idiotic.com.skip.idiotic.com (HarryH) wrote:

> In article <siyao1c...@cre.canon.co.uk>, gar...@cre.canon.co.uk says...


> >Well-loved books get reread many times. What about well-loved IF?

> [snip]


> >This isn't really possible with IF. I can't pick up "Trinity", say, and
> >turn straight to the New Mexico scene. Or jump to Alexandria in
> >"Curses".
>

> Sure you can. Just use saved games.
>
[snip]
>
> What's wrong with few sensible save games, anyway?
>

My thoughts exactly. Chris (Nebel) and I were separately intrigued today
reading Gareth's post, so we hashed out our best solution over dinner this
evening. Since rereading implies that the game has been played at least
once before, and since different player decisions would, in most games,
yield different game states at the end of the various chapters, we decided
that suggesting to the player that the game be saved at key points would
be the best way for a player to preserve sections of game play for
rereading.

To signal that a chapter was ending and to offer the player an opportunity
to save, in TADS, one may call a function such as the one shown below. It
was written by David Baggett as part of WorldClass, was included in The
Legend Lives!, and was also included a number of times in the game
Firebird. Here's how the code was modified in the Firebird source:


// DMB world.t. Warn the player that he should save if he hasn't recently.
//

warnsaveVersion: versionTag
id="$Id: warnsave() 1995/10/13 03:48:00 dmb Exp dmb $\n"
author='David M. Baggett, as part of WorldClass'
func='warn to save function'
;

savegame: function
{
local savefile;

savefile := askfile('File to save game in');
if (savefile = nil or savefile = '')
"Failed. ";
else if (save(savefile))
"Save failed. ";
else {
"Saved. ";
}
}

warnsave: function
{
"\bWould you like to save your soul? (YES or NO) > ";

if (yorn() = 1) {
"\n"; savegame();
}
else {
"\nYour soul will just have to take its chances. ";
}
"\b";
}

The initial text of warnsave() could be rewritten to meet the author's
goal of signaling a stopping point.

The TADS author could specify a saved file name, but that would perhaps
not give the author or the player sufficient naming flexibility, as naming
conventions differ so across platforms.

Bonnie

Neil K.

unread,
Dec 21, 1998, 3:00:00 AM12/21/98
to
lps...@rice.edu (Lucian Paul Smith) wrote:

> This is possible with Inform games with (I think) interpreters that
> support the Quetzal format; is it also possible with TADS games?

TADS save game format is fully portable between TADS interpreters, since
said terps share the same code base.

The only complication is that the save games are tied to specific game
compiles. When you compile a TADS game a unique version number based on
the current time is written to the game file. Save games will work with
that specific compiled game and no other game thanks to this serial
number. So if you revise your TADS game and recompile it, saved games
created with previous game files will not work.

- Neil K.

--
t e l a computer consulting + design * Vancouver, BC, Canada
web: http://www.tela.bc.ca/tela/ * email: tela @ tela.bc.ca

HarryH

unread,
Dec 22, 1998, 3:00:00 AM12/22/98
to
In article <siyao1c...@cre.canon.co.uk>, gar...@cre.canon.co.uk says...
>Well-loved books get reread many times. What about well-loved IF?
[snip]
>This isn't really possible with IF. I can't pick up "Trinity", say, and
>turn straight to the New Mexico scene. Or jump to Alexandria in
>"Curses".

Sure you can. Just use saved games.

>This is a challenge to game authors: can you make games that support


>rereading? Perhaps a menu of "chapters" (or similar dividing points in
>the story) with an option to take the player to the start of each?

This is no problem if the game is linear, which means any game features such
jumping points can easily marked linear. Alternatively, add a command along
with RESTART, QUIT, and AMUSING.

For example:

You have scored 450 out of 450. Do you want to
RESTART, AMUSING, JUMPPOINTS, or QUIT?

Where JUMPPOINTS leads to
(1)Dinner with Bob
(2)Murder on Roque
(3)Scandalous Affair!
(4)Shocking Conclusion
Enter your choice:_


Still, this is nothing more than automated save game, and I don't like my
games to automatically do session savings while I play.

Either that, or use password feature where different password leads you to
different scenes. Like I said, this password feature only works if the game
is linear, otherwise, how are you going to keep track the (presumably) large
game state in a string? Also, PASSWORD B245ASD24 is no better than LOAD
ALEXANDRIA.

I suppose if you don't mind having some changes, you can have a game that
starts from different starting points, but that's not the same as replaying.

What's wrong with few sensible save games, anyway?

My solution: Several small games containing one puzzle each, instead of one
big one. :)

-------------------------------------------------------
IFC1.0 --C --A R++ -P++ -I++ --T+


Lucian Paul Smith

unread,
Dec 22, 1998, 3:00:00 AM12/22/98
to
Gareth Rees (gar...@cre.canon.co.uk) wrote:
: Well-loved books get reread many times. What about well-loved IF?

We had a discussion on this on the MUD not so long ago; I have a
transcript up at http://www.bioc.rice.edu/~lpsmith/IF/replayability.html
and a summary of said transcript at
http://www.bioc.rice.edu/~lpsmith/IF/Replay.summary.html

We didn't really talk about what you bring up, though.

: This isn't really possible with IF. I can't pick up "Trinity", say, and


: turn straight to the New Mexico scene. Or jump to Alexandria in
: "Curses".

<snip>

: This is a challenge to game authors: can you make games that support


: rereading? Perhaps a menu of "chapters" (or similar dividing points in
: the story) with an option to take the player to the start of each?

This goes with an idea I had while playing this year's comp games. One
of them, whether by accident or choice, came with a saved game from a
position near the end game (I Didn't Know You Could Yodel). It was neat,
because I could do the book equivalent of 'skipping to the end' to see how
it turned out.

Since then, I've considered including saved games with a re-release of
'The Edifice', with saves for after you've completed each level. The
relatively unique way Edifice is structured would allow me to have the
three saved games be non-cumulative (i.e. three saved games, each with
one and only one level 'solved'). I thought it might be a good way for
people to 'reverse-engineer' puzzles they were stuck on, as well as
provide a way to skip portions they didn't find interesting. And you
bring up another point--if someone wanted to replay bits of it, all they'd
need to do is load up one of the saved games and they'd be off.

This is possible with Inform games with (I think) interpreters that
support the Quetzal format; is it also possible with TADS games?

This technique is more obviously suited to games with distinct sections,
but could probably be extended (with a little thought) to other games.
Yodel, for that matter, didn't have distinct sections and it still worked
OK for what it did.

Interestingly, though, the two reasons you would have for including saved
games (replayability and skipping hard puzzles) would have very different
schemes for naming/setting up the saved game files. If you wanted to
re-play level 2 of Edifice and loaded up the 'level2.sav' file, you would
be disappointed to find that I had set up level2.sav such that that was
the only level *solved*, not left.

Again, depending on motivation, saved game files could have very different
setups. Picture a saved game of Trinity, for example. Uh, spoilers
ahead,...


OK, suppose I set up a saved game file mars.sav. I might want to set it
up so that the player can play the mars scene upon restoring. But even
then, there are options. Do I want to let the player *keep* playing after
playing that bit? If not, perhaps they just darted in the mars door when
the shadow fell on it, without fixing it in place. Maybe the shadow is
fixed, but I entered the mars door first, thus rendering the game still
largely playable, but unwinnable (I don't recall if this is true or
not--you get the idea).

Anyway, that's my saved game idea.

Also, for what it's worth, I *did* make the walkthrough of the game a
script file you can feed back into the game. I dunno if anyone's used
this feature to 'get at' a certain section of the game (besides myself,
for testing purposes). Anyone?

-Lucian

Adam Cadre

unread,
Dec 22, 1998, 3:00:00 AM12/22/98
to
Lucian Smith wrote:
> Also, for what it's worth, I *did* make the walkthrough of the game a
> script file you can feed back into the game. I dunno if anyone's used
> this feature to 'get at' a certain section of the game (besides myself,
> for testing purposes). Anyone?

I did. And I left >REPLAY enabled in Photopia, mainly because I liked it
in The Edifice.

-----
Adam Cadre, Anaheim, CA
http://www.retina.net/~grignr

Michael Gaul

unread,
Dec 22, 1998, 3:00:00 AM12/22/98
to
Gareth Rees wrote:
>
> Well-loved books get reread many times. What about well-loved IF?
>
> Rereading is different from reading. You know roughly what's going to
> happen. You can skip over the dull bits, or the bits that don't match
> your mood. You can turn straight to the sex scenes if that's what
> you're after.

I don't know what others do, but I never reread single scenes.
I may, however, reread a whole story and just skip single
scenes that I know to have been tedious. In IF, I sometimes
wanted to replay a game, but I forgot the solution to one or
two difficult puzzles. Since solving them for the second time
wouldn't be half as much fun as the first time, I usually do
something else instead.


> This isn't really possible with IF. I can't pick up "Trinity", say, and
> turn straight to the New Mexico scene. Or jump to Alexandria in
> "Curses".

[snip]

> This is a challenge to game authors: can you make games that support
> rereading? Perhaps a menu of "chapters" (or similar dividing points in
> the story) with an option to take the player to the start of each?

I suggest a slightly different different approach: After
completing the game, the player gets a password, say,
"Aholibamah". In the game, this password activates a secret
mode, in which most puzzles can be solved by typing "solve
dragon", or "solve machine" etc.

In Inform, this wouldn't be hard to code for easy puzzles. You
could (probably, I haven't programmed in Inform for some months)
add a "Solve" action in the object's "before" that just consists
of the necessary chain of action, like <<set dial to 42>>; <<push
red button>>; <<get phiole>>;. Problems could be introduced if
you allow to "purloin" necessary objects (see "discipline"
paragraph below). Of course, if you don't allow it, you have
to check for the object's existence and give out a proper
message.

In a modularized game like "Jigsaw", you could even implement
something like "solve D3". The player were then given all objects
that he could take from there, and the chapter would be marked as
solved.

Of course this approach demands disciplined programming. You could
easily leave the game in a messed-up state using this technique.

The password could also activate verbs like "purloin" or "goto",
to give the player even more freedom - once he solved the game.


Anyone thinks this makes sense?

Michael

Lelah Conrad

unread,
Dec 22, 1998, 3:00:00 AM12/22/98
to
On Tue, 22 Dec 1998 10:04:30 +0100, Michael Gaul
<ga...@rz.uni-potsdam.de> wrote:


>
>I suggest a slightly different different approach: After
>completing the game, the player gets a password, say,
>"Aholibamah". In the game, this password activates a secret
>mode, in which most puzzles can be solved by typing "solve
>dragon", or "solve machine" etc.

...

>Anyone thinks this makes sense?


Yes. I had the same thought about an end of game password when first
reading this thread. One problem is though that someone might just
disseminate the password in lieu of hints or a walkthrough. Well,
maybe that's not a bad idea -- it might be easier for someone to use
..I don't know. I'm thinking out loud here.

I do know that it was frustrating awhile back to listen to that
Trinity thread about its ending and be unable to accurately verify
which way I had played it. This is a problem with IF in general --
you want to have an intelligent discussion about a game aspect or
problem, but you just can't flip to that section to do so.

Lelah

Erik Hetzner

unread,
Dec 22, 1998, 3:00:00 AM12/22/98
to
In article <siyao1c...@cre.canon.co.uk>, Gareth Rees
<gar...@cre.canon.co.uk> wrote:


>This is a challenge to game authors: can you make games that support
>rereading? Perhaps a menu of "chapters" (or similar dividing points in
>the story) with an option to take the player to the start of each?


I was thinking about this some more, and this morning I read a story about
the new "e-books"; little tiny palmtops that let you read books. I'm
not all that impressed, since I have tried reading things on a computer
screen, and it's a pain. But they have neat features: bookmarks,
underlining, notes. And I got to thinking:

A cool "next generation" z-machine interpreter could use these features
to make things more like reading a book for people. There's no
need to mess with the z-machine, just make a cooler interface. Rather
than worry about the save and restore opcodes, the reader could just
put in "bookmarks" (which would be really just saved games, but who
needs to know that?) The player could take notes in a "notebook",
mark up important passages (which could then be browsed later),
make lots of bookmarks, etc.

This is the only advantage I see to these "e-books". I love marking up
the text that I read; it helps me along (and helps me vent my anger when
reading people that I find offensive or stupid :), but I love books,
and hate ruining them.

And IF is a place where people really need to make notes; they really need
to think about what's going on.

Of course, I have also toyed with the idea of creating an "annotated
Jigsaw", with lots of notes about the historical events, little bits of
information, etc. I really do think that IF is, essentially, fiction
that is read in a different method than normal. It changes things, but
the text is, in many ways, the same.

So, what do you think? Am I off my rocker? (About this thing only, please!)
If I have some time and hone up my C skills, I may do this myself. (ha!)
-Erik


Jonadab the Unsightly One

unread,
Dec 23, 1998, 3:00:00 AM12/23/98
to
Gareth Rees <gar...@cre.canon.co.uk> wrote:

> This isn't really possible with IF. I can't pick up "Trinity", say, and
> turn straight to the New Mexico scene. Or jump to Alexandria in
> "Curses".

I can.

- jonadab

Jonadab the Unsightly One

unread,
Dec 23, 1998, 3:00:00 AM12/23/98
to
lps...@rice.edu (Lucian Paul Smith) wrote:

> Since then, I've considered including saved games with a re-release of
> 'The Edifice', with saves for after you've completed each level.

> This is possible with Inform games with (I think) interpreters that


> support the Quetzal format; is it also possible with TADS games?

Another possiblility would be magic cheat codes to zap the player
to a given point. This would have the disadvantage of being
just a little more work to implement and the advantage of
working on all interpreters.

>Sloskonvad

You say a sacred prayer to the implementors, and they hear
your cry.

"This will take you to a different time and place."

A small weathered parchment scrap floats down from
the sky and lands in your hand. It's a menu of
jump points!

[Your score has just gone down by ten points.]


- jonadab

Jonadab the Unsightly One

unread,
Dec 23, 1998, 3:00:00 AM12/23/98
to
Stacy the Procrastinating <sc...@okapi.columbia.edu> wrote:

> > This is a challenge to game authors: can you make games that support
> > rereading? Perhaps a menu of "chapters" (or similar dividing points in
> > the story) with an option to take the player to the start of each?
>

> This would actually be a really cool feature for someone to implement.

It would only work for linear games. Curses wouldn't
work that way.

Actually, I've thought about the password system.
Assign each significant piece of game state a bit
or bits, then the player can issue a PASSWORD
command to get a textual representation of all
the bits, which, if given back to the game as
an argument to the PASSWORD command, jump the
player to that point, complete with the
appropriate inventory, solved puzzles, et cetera.
The problem is, Curses has so much state (N
takeable objects with M possible locations for each,
P puzzles that can be solved or not, and so forth)
that the password would be really long.

Now, a game with distinct scenes, like Jigsaw,
might work a bit better. There'd still be a fair
amount of state, but I expect not quite as much.

As for cheating, just have one bit in each
character that is always set (or always unset)
and reject any password that gets it wrong.
With as few as 12 characters picking a valid
password at random would be unlikely.

Say, I'll bet Christminster would have lent
itself well to this kind of thing.

> When I really like games, I try to save at the beginning of each scene, so
> I can hop in wherever.

That's my approach. In the case of Curses I kept a text
file listing each saved game in order and where I was
in the game at that point.

- jonadab

Dylan O'Donnell

unread,
Dec 24, 1998, 3:00:00 AM12/24/98
to
jon...@zerospam.com (Jonadab the Unsightly One) writes:

[re: jumping to particular points in a game's narrative]

> Say, I'll bet Christminster would have lent
> itself well to this kind of thing.

So much so that Gareth implemented it for debugging :-) Look at
the Xgo command in the source on GMD...

--
: Dylan O'Donnell : "Go not to Usenet for counsel, for :
: Demon Internet Ltd : they will say both 'No' and 'Yes' :
: Resident, Forgotten Office : and 'Try another newsgroup.'" :
: http://www.fysh.org/~psmith/ : -- Usenet Rule 17. :

Jeff Hatch

unread,
Dec 24, 1998, 3:00:00 AM12/24/98
to
Gareth Rees wrote:

> This isn't really possible with IF. I can't pick up "Trinity", say, and
> turn straight to the New Mexico scene. Or jump to Alexandria in
> "Curses".

[snip]

This is a challenge to game authors: can you make games that support

> rereading? Perhaps a menu of "chapters" (or similar dividing points in
> the story) with an option to take the player to the start of each?

There's a simple solution. Implement (and save to disk) an unlimited
multi-turn Undo buffer, and then you can rewind your final save to any
previous scene. This wouldn't take as much disk space as you might think --
it'd only have to save the _changes_ in game state from one turn to the
next, and maybe the output transcript for convenience.

Of course "simple" doesn't mean "convenient for everyone" since many authors
don't have the time and technical expertise needed to add this one-time hack
to their existing IF authoring systems.

-JJH

Sarah E. Bergstrom

unread,
Dec 27, 1998, 3:00:00 AM12/27/98
to
Jeff Hatch (je...@hatch.net) wrote:
: Gareth Rees wrote:

: > This isn't really possible with IF. I can't pick up "Trinity", say, and
: > turn straight to the New Mexico scene. Or jump to Alexandria in
: > "Curses".

: [snip]

: This is a challenge to game authors: can you make games that support

: > rereading? Perhaps a menu of "chapters" (or similar dividing points in
: > the story) with an option to take the player to the start of each?

I don't write IF -- I just play it -- so I don't know how diffficult this
would be, or how helpful, but...

Could it be made so that a player who has finished the game (or finished some
section) gets a "password" that allows them to play at any point, perhaps
in that chapter setup mentioned?

Sarah

Matthew T. Russotto

unread,
Dec 28, 1998, 3:00:00 AM12/28/98
to
In article <qkg1a5o...@office.demon.net>,

Dylan O'Donnell <dyl...@demon.net> wrote:
}jon...@zerospam.com (Jonadab the Unsightly One) writes:
}
}[re: jumping to particular points in a game's narrative]
}
}> Say, I'll bet Christminster would have lent
}> itself well to this kind of thing.
}
}So much so that Gareth implemented it for debugging :-) Look at
}the Xgo command in the source on GMD...

Some versions of Curses contained the same thing (I used to have a 3
command "solution" to Curses v9 :-) ). As did some of Infocom's
debugging versions.


David The CyberGuineaPig Jacobs

unread,
Dec 29, 1998, 3:00:00 AM12/29/98
to
On Mon, 21 Dec 1998 21:41:46 GMT, Gareth Rees
<gar...@cre.canon.co.uk> wrote:

>Well-loved books get reread many times. What about well-loved IF?

<snip>

>It's much more likely that I'll say to myself that maybe I don't want to
>play the ballroom scene from "Plundered Hearts" as much as all that, and
>do something else instead.
>

>This is a challenge to game authors: can you make games that support
>rereading? Perhaps a menu of "chapters" (or similar dividing points in
>the story) with an option to take the player to the start of each?

Well, it's not exactly IF in the purest snese, but there was a game a
few years back (IIRC, it was called "Under A Killing Moon") that
allowed you to play the chapters in sequence, or allowed you to leap
ahead to whatever chapter you wanted to play.

It helped in those cases where the bit of the game you were in got
boring, or you got stumped and couldn't finish the puzzle you were on.
It's a good idea, extends the life of the game a little, especially if
the problems are a little hard.

David "The CyberGuineaPig" Jacobs
-- dmja...@zipworld.com.au --
Proudly subverting Australia's political
system in the name of the Mythos.

TenthStone

unread,
Dec 30, 1998, 3:00:00 AM12/30/98
to
Gareth Rees thus inscribed this day of Mon, 21 Dec 1998 21:41:46 GMT:

>This is a challenge to game authors: can you make games that support
>rereading? Perhaps a menu of "chapters" (or similar dividing points in
>the story) with an option to take the player to the start of each?

I'd like to say that Torin's Passage, the half-adorable little mundanity
from Al Lowe, creator of the Leisure Suit Larry series (for whatever
that's worth) does, in fact, have a "table of contents" as a main menu,
wherefrom you can start the game in any of six stages; however, since the
best parts of the game are the first and second parts anyway, this feature
is rather useless except as a way to bypass bugs, a utility I
unfortunately was forced to take advantage of.

On a more pertinent point, I think this "chapter" form would be very easy
to implement in a moderately-sized game (Spider & Web comes to mind).
To implement it on too small of a game, e.g. I-0, would be nearly
pointless.

There are three issues here:
1. How many important puzzles/events are there to consider?
2. How predictable is the order in which they occur?
3. How much relevant state does the game possess?

The higher the number of events, the more difficult such a system becomes:
it might be necessary to provide a "warp" to every event: think Lemmings.

If the game is perfectly linear, the warp is "simple". If it is almost
linear (that is, you can do the Towers of Hanoi puzzle or the Fifteen
puzzle first), do one before, one after. If the order of occurance is
completely unpredictable, you're in trouble.

If the game has too much state -- especially non-binary state, such as
Strength, Wisdom, and Dexterity in an RPG -- you might need some way to
econding it into the password or however you choose to do it.

-----------

The imperturbable TenthStone
tenth...@hotmail.com mcc...@erols.com mcc...@gsgis.k12.va.us

Reply all
Reply to author
Forward
0 new messages