ERACC wrote:
On Sunday 05 June 2005 01:40 pm
Todd Mitchell wrote:
The current Java Editor does not seem to be very stable. Especially it
tends to have a problem with really big maps (can't open them) and
eventually won't open maps and has to be restarted. Behaves like a
Memory leak? Also
Mitch Obrian wrote:
Perhapse it's time to PUMP (THE SPELL) UP!
...
and maybe make circular spells talked about earlier...
please...
What do you mean by circular spells?
Cone spells can already be cast in a 'circular' fashion if you fire on your
own position (shift .) and not a specific
Brendan Lally wrote:
On Friday 10 June 2005 06:27, Mark Wedel wrote:
A few more notes/thoughts:
For the server, switching to tcp is perhaps a good thing. What I'd
actually think is the best thing is there to be a small helper program that
the server executes, and then talks to that helper
After playing a bit I noticed a cone oddity - it turns out if you are right
next to the caster, you take less damage than if you are far away.
Through experimentation, I quickly found that if you are 2 or more spaces
away, you will take 3 times as much damage than if you are right next to
As per some others comments, I don't quite as much see the point of solo in
games, but I suppose if players find them interesting and it doesn't complicate
things too much, no real issue not to add them (but those could be big if's,
especially if it requires additional client and protocol
Kari Pahula wrote:
This was already discussed on irc, but for record, I'll repeat this to
the mailing list too.
File lib/adm/map_check in crossfire has the following license:
#!/usr/bin/perl
#
# (C) Copyright Markus Weber, 1994. All rights reserved.
# Permission is granted to use, copy, and
I personally don't have an issue if a character can get straight 30 stats.
Unless the odds are really low, I think that even a cap of 35 would be reached
at some point. My character probably has 100+ stat potions stashed away, but
OTOH, I'm not actively looking for them. If I really had
Alex Schultz wrote:
Mark Wedel [EMAIL PROTECTED] writes:
The server is arguably behaving properly - as said, the design is that the
server basically just sends what changes. The event that causes those changes
isn't a concern to the server
If one calls properly, to the spec of the doc
Todd Mitchell wrote:
The latter. I don't want to mess with the system python but I do have
another python installed for programming and to run Zope. Zope has a
--with-python option in the config since it is fairly version dependent
and I thought that might be good for the CF server as well
Alex Schultz wrote:
Ok, because I've used the same logic block in a couple places I've
separated into a separate function, and I've now split it into many if
statements and such which should be much much more readable. I've also
added many safeguards in the process that should get rid of the
I'd be more concerned about this if there were lots of commits going on,
or there was a real desire to have a stable branch (eg, significant changes in
main branch that may make it real unstable or incompatible, and thus you want to
retain an older branch for compatibility reasons.
But the
Nicolas Weeger wrote:
What will be the next server version? 1.7.1 or 1.8.0?
If no one object, i'll put a tag for the release candidate tomorrow or
friday, so people can again break cvs with commits :)
Got my system stable again, and upload 1.8.0 right now. So feel free to
commit away.
tchize wrote:
Joining thread a bit late, trolling a bit perhaps :)
I personnaly would enjoy a branch policy on crossfire cvs (whatever it is, a
bad decision is always better than no decision).
I don't think we need branching at each release (unless we
want to keep a few weeks after release a
If memory serves, garbled actually put in code that did sort of the supply and
demand thing. IIRC, prices to buy stuff were basically nothing.
The most basic is that there is little stuff that players buy in stores.
My personal experience:
Spellbooks (especially at low levels where
I should probably preface that I'm responsible for the 'nopopup' mode in the
gtk client (v1).
But does anyone else find the sign display code in the client really annoying?
To me, these are the major issues:
1) No way to turn it off, save for code modification.
2) It centers it on the
In my mind, the news file should contain broader/bigger changes.
Grabbing all the data from the Changelog is likely to be more data/detail than
most people care about. Are players really going to care that the global arrays
are now consts, or that pointers have been fixed up? Probably
Amorya North wrote:
I've got somewhere. Common files compile in now, and work fine. I've
got a vague event loop up and running, and some of the callbacks work.
I've got as far as displaying text sent to the console, and displaying
a list of current stats.
Here's a screenshot:
Kevin Rudat wrote:
Crossedit - which of these would you accept, please?
* Fix: not drawing floor at weird times.
* Fix: large faces
* Fix: regions
* Fix: Map attribute editor
* Fix(?): Using window manager's close functions closes the window rather
than stopping crossedit.
* Feature:
ERACC wrote:
Greetings y'all,
It has come to the attention of DMs on Metalforge that some players
are abusing item renaming and inscription to get around the no foul
language rule on Metalforge. For example an item was renamed to a
rude phrase and dropped in Scorn where kiddies would see it.
Amorya North wrote:
Ah, ok - so I can store a pointer to an NSImage in the cache entry?
That would help a lot. I was wondering where I'd be able to do the
conversion.
You might want to double check the gtk code/image.c - I'm not sure if your
client would need to store anything else. At
Kevin Rudat wrote:
I didn't mean to imply that I'd give a bunch of changes in one monolithic
patch. :(
Which patches is it worth making, for inclusion in CVS?
At the moment all the changes are in one source tree. It's a bit more work
to extract them into separate diffs.
I wanted to know if
Lalo Martins wrote:
And so says Kevin Rudat on 21/08/05 14:26...
On Sat, Aug 20, 2005 at 09:53:43PM -0700, Mark Wedel wrote:
On the one hand, crossedit is basically obsoleted, so I don't want to
spend a bunch of time and resources maintaining it.
On the other, if people want to do so, who
[EMAIL PROTECTED] wrote:
Personally I prefer the java editor's interface, though issues with java have
caused me very major headaches (i.e. on one 2GHZ computer it runs unuseably slow
for no apparent reason, whereas it runs perfectly fine on a very similarly set
up 400MHZ computer). In the past
Brendan Lally wrote:
updating the maps isn't too hard, in fact the following is a diff that
does just that. (I haven't included much context here, partially for
brevity, partially because anyone playing with these maps in the
editor will probably break this diff anyway.)
I'm tempted to reduce
Andreas Kirschbaum wrote:
There are some inconsistencies in how crossfire/crossedit and
CFJavaEditor handle the map headers reset_timeout and
enter_x/enter_y:
- CFJavaEditor uses the default value 0 for missing headers. It saves
the headers only if the current value is positive.
-
Brendan Lally wrote:
On 8/27/05, Mark Wedel [EMAIL PROTECTED] wrote:
You are probably correct, it is certainly easier to let Moore's law do
the work instead. It is likely that if there ever were a compelling
reason to split load across servers it would be to reduce bandwidth
usage from each
Preston Crow wrote:
On Thu, 2005-08-25 at 18:57, Anton Oussik wrote:
When the server comes across maps containing large amounts of items it
takes a long time to load. While it is loading the whole server
freezes for other players, and on very large maps (like the scorn sale
shop or some
Nicolas Weeger wrote:
All fields below use a bitmask to represent value, similar
to how the attacktype
works. These would be defined like:
MOVE_WALK 0x1
MOVE_FLY0x2
MOVE_SWIM 0x4
etc
Sounds like a great proposal.
I'd tweak it slightly, having MOVE_FLY_LOW and
The basic premise is to add more visible layers on the map, so more than 3
objects can be displayed on a space.
One other fix is to also more hard assign what layers objects show up in. One
problem with current protocol is that objects can move layers, and this is one
thing that would be
tchize wrote:
5) To convey some of these changes to the client, a new protocol command is
needed. But no reason to write that until we have data to actually send to
it.
I'll opt for a complete rework of whole client/server protocol in a branch.
This way we can easily tweak new protocol
[EMAIL PROTECTED] wrote:
From: Mark Wedel [EMAIL PROTECTED]
Unless a race has native flying, the player would have to do something to
start flying (wear those boots, ready the skill, cast a spell).
The question was really want to do once that has happened. Eg, player has
applied the boots
tchize wrote:
You get fatigue by doing strenous things (swimming, flying via skill,
attacking, moving a lot).
Or just being awake ? or it will not be fatigue but stamina :)
Idea was more physical fatigue not mental. I personally don't want to have to
rest my character if I'm still
adam ashenfelter wrote:
How about 11: rooftops. When player is not under one, client displays
them. When the player walks under one, they disappear, and the player
can see the interior.
I don't see how this really works much with the current system.
All the houses that players enter
On thinking this over some more, there is also another complication/issue with
lighting.
As said in the original message, instead of the server communicating darkness
of each space, it communicates the location of the lightsources and color of
those sources.
However, what do we do when
David Delbecq wrote:
Le Mardi 6 Septembre 2005 09:38, Mark Wedel a écrit :
You don't get it, i meant, use the old code for that :) It's working so why change it.
Your problem is to get old client to receive old style message. Aswar is easy, call
old functions :)
Yes, but right now
Todd Mitchell wrote:
Alex Schultz wrote:
What do you mean by hostile? Do you mean like flying over a goblin or
something?
I meant landing on terrain that causes damage like cold or fire damage -
also for things like wasteland which or very high mountains which might
do damage too. I
tchize wrote:
Le Mardi 6 Septembre 2005 06:37, Mark Wedel a écrit :
Agree: physical activity, right now, is the only main component not needing
recharging.
I think we can consider mental fatigue is already taken into account in the
fact you need
to reload your mana or pray for your grace
Mitch Obrian wrote:
I was also thinking maybe we should have a /backup
branch of cvs where we can upload tarballs of
in-progress projects we are working on?
CVS isn't designed, nor a good place, to use as an upload/storage site. And
ftp server for that matter would be better. I'd have to
Alex Schultz wrote:
Mark Wedel wrote:
So if you fire across the world maps, there will only be a few objects
on each space the meteor has to check against.
In comparison, in the director loop, it has to check on all the
objects on the space, which is considerable (all the other meteors
Benjamin Lerman wrote:
Hi all,
And at least, I have a question, does there exists a way to force the
client to wear a particular holy symbol whenever possible. Right now,
whenever I change skill, even if I do not need any object to get my new
skill, my holy symbol is unapplied, which is
***
*** 1190,1199
*/
if (m-difficulty) fprintf(fp,difficulty %d\n, m-difficulty);
if (m-region) fprintf(fp,region %s\n, m-region-name);
! if (m-shopgreed) {
print_shop_string(m, shop);
fprintf(fp,shopitems %s\n, shop);
}
if
Benjamin Lerman wrote:
But there are also some other possible considerations - I think you'd want
to make sure that a character doesn't have the same skill equipped through
both methods (holy symbol and actual praying skill) - I think that may
cause some issues - probably more see with the
Andrew Fuchs wrote:
In the archetypes, the color_fg and color_bg parameters appear
repeatedly. However it seems as both are now unused, except for
color_fg being used for the magicmap color if one is not specified.
Should these be removed, and color_fg changed to magicmap, where
appropriate?
My personal thought is that using soemthing like other_arch (or if needed, a
new field like other_arch) is probably the better way to go. This simplifies a
lot of the work (problems you describe).
Using the inventory to me seems like an odd way to handle this. I'm sure at
some point we
But all this doesn't really answer the question - when should something be in
python, and when should it be coded in C?
I haven't looked at the python code really closely, but what I gather is that
a badly written python script is as dangerous for the server as badly written C
code (eg,
Andrew Fuchs wrote:
There has been a discussion on IRC about Crossfire's band with usage.
One suggestion, is to store the information about static objects in
maps, client side.
One problem is to try to define what is static and what isn't.
Every time an animation changes state, data is
Andrew Fuchs wrote:
On 10/13/05, Rick Tanner [EMAIL PROTECTED] wrote:
...
On a somehwat similar thought, what about map entrances that vary based on
time of day or other event?
For instance, during the day a castle contains royal guards, no wondering
monsters, etc. But at night, interior map
So I finished up the new movement code and did some basic testing, and it
seems to work.
In basic terms, now multiple move types (walking, fly_low, fly_high,
swimming). Spaces can block some or all of those.
For compatibility, no_pass 1 blocks all of those.
My basic test shows this
Has anyone looked at how the commercial games do this?
I'd basically imagine you want to shrink the sleep time to be short enough to
correspond for each pixel the object will move.
In that way, each time the objects move, you check to see if it is too close
to another.
Thus, two
My personal thoughts:
doing this should be based on gameplay, not sorcery vs witchcraft or any of
that type of things.
I'm a little reluctant to do it food based - for some characters, it is enough a
pain just to find enough food on some maps, if I now have to worry that I'm
eating the
Alberto Sáez Lodeiros wrote:
Mark Wedel wrote:
2) PRices for reagants, especially for high level spells, could be quite costly.
1000 pp to cast comet?
I think instead set an high price to the high level spells reagents, i
think it's better to set those reagents not buyable. This is, those
Brendan Lally wrote:
On 10/16/05, Todd Mitchell [EMAIL PROTECTED] wrote:
I would advocate that only the shallow sea should be swimmable.
Could seas use the same approach as swamps? That when a player starts
walking into them, they stand a chance to sink slightly, and if they
keep going, they
Todd Mitchell wrote:
I just tried it out, fantastic! - just having the ability to block
walking but allow missiles will add greatly to the game. There is now
quite a bit of map work ahead to take advantage of this. Whole groups
of monsters just got a new lease on life. I am drooling over
Mitch Obrian wrote:
You can crash the server with old sockets mode :(.
There were bugs with this in the past, but I haven't heard of any recently on
this.
--- Andrew Fuchs [EMAIL PROTECTED] wrote:
On 10/20/05, Joshua Wilson [EMAIL PROTECTED]
wrote:
...
Unless the server implemented a
Andrew Fuchs wrote:
As I write this, several characters on metalforge are performing
alchemy in places like, the Hall of Sellection, /start/Nexus, and in
the middle of scorn.
Basicly, I think we could really use a tile, that prevents the use of alchemy.
Probably simplest to just make it that
Brendan Lally wrote:
And, I say -ish, because in the store, each one has a
different price... for my character, 239-265 or so. That seems bizarre. Why
would the price not be the same for the same item in the same store?
This is because there is an arbitrary adjustment to price based on the
Brendan Lally wrote:
On 11/11/05, Anton Oussik [EMAIL PROTECTED] wrote:
On 11/11/05, Lalo Martins [EMAIL PROTECTED] wrote:
Hmm. Maybe bigworld is not big at all :-P Brendan's calculations
still make sense to me generally, except that now I'm thinking about
one-chain-wide mountains and finding
Brendan Lally wrote:
On 11/12/05, Mark Wedel [EMAIL PROTECTED] wrote:
Crossfire
is somewhat limited by only 1 aspect of terrain is available (we don't have
forested mountains for example).
Forested mountains could exist in principle, it just requires someone
to be able to draw alpine trees
Brendan Lally wrote:
On 11/12/05, Mark Wedel [EMAIL PROTECTED] wrote:
I believe there are other projects out there (not related to crossfire) about
mimicing a planet creation process. If we were really serious, we should look
at those.
I just noticed this
http://www.kde-apps.org/content
That could work, particularly if canals were added later, so that
boats could travel across much of the continent (your movement code
reworking could make it possible then to have narrowboats to travel
between cities).
I'd personally think that canals on that scale would be more modern than
Going back to the original topic:
1) I never envisioned the current scorn continent to be the entire world. To
say it is 1/4 of the world, or perhaps even less than that, would be reasonable.
Until going off the map wraps you around, no reason to ever say exactly
what/where it is. For
Lalo Martins wrote:
And so says Yann Chachkoff on 11/20/05 20:55...
- Every complex action generates an amount of fatigue proportional to its
difficulty;
...
A cauldron is made of metal. You put it on fire, throw ingredients that react
sometimes very savagely inside and apply magical forces
Nicolas Weeger wrote:
Btw, it could be used for secondary skills (alchemy, woodsman, ...)
skills only, not main combat ones. This way no penalty for
fighters/wizards, just for players wanting to do other things than combat :)
But I then wonder if an actual cap on exp/skills is needed, or if
Mitch Obrian wrote:
bump
Just tried this. crossedit didn't strip out any shop headers for me. is your
crossedit (and more importantly, the common directory it is building with)
latest CVS?
That the crossedit seems to write the headers in different order than say the
java edit (or
Mitch Obrian wrote:
Mine isn't the latest CVS, CVS doesn't compile on my
laptop system anymore so Cave had to compile it for
me. Could you test changing some things in the map and
saving? It might strip it out then?
Then update to latest CVS, as it works there. Running old versions,
As far as alchemy is concerned, an easy first pass would be to extend the
general store (maybe rename it grocery store or something) to include raw food
items, eg, wheat, milk, hunks of meat, etc. That still requires graphics, but
but doesn't a whole set of farms, etc, where one can go and
Anton Oussik wrote:
Yes, in the short run this is a much better idea. However, a long term
goal of a self-supporting economy based on inter-player interaction
(where government-owned shops do not exist except to maybe provide
some very basic food and weapons at time of war/famine/natural
Alex Schultz wrote:
Nicolas Weeger wrote:
One thing that I also thought would be needed is to add some slow decay
factor to most all flesh items like there are for a few special ones
(demon ichor). You shouldn't be able to carry around the orc corpse for
3 months and expect it to still be
Quick thoughts:
1) Why not just go for a straight push approach, eg, have the server send
updates whenever needed?
It seems as written now, you'll get the case like:
S-C: stats ... spells have changed
C-S: requestinfo spell_list
S-C: spell_list ...
I just don't really see what we get by
Brendan Lally wrote:
I just don't really see what we get by having to do it via a purely request
basis. I can't really see the client not sending a request when things change.
I can, that's why I started off with the status values. If a client
only shows spell names, or only names and
Quick question - does this mean the only way a wraith gets food is by life
stealing attacks?
If so, I'd think they need to get given a very high sustenance type of value -
otherwise, I'd think you'd get a lot of starving wraiths at certain times, eg,
you're hauling your loot of the
Brendan Lally wrote:
On 12/17/05, Mark Wedel [EMAIL PROTECTED] wrote:
Brendan Lally wrote:
This could work, but requires a new command in the protocol.
I don't know why it would require a new command. the setup command is not
true/false values, it is setting some variable to whatever value
Brendan Lally wrote:
On 12/24/05, Anton Oussik [EMAIL PROTECTED] wrote:
Thinking about lalo's patch, an interesting idea would be to make a
patch that makes the banking system more useful by introducing the
following changes to the banks:
- Gain interest on money deposited
[snip]
What I was against is the introduction of super-expensive items to
make use of the coins. 5,000 jade coins should remain to be worth a
small fortune.
I think the other potential problem is map makers seeing this high valued
coins and start to place these in maps instead of the lower value
Anton Oussik wrote:
On 24/12/05, Mark Wedel [EMAIL PROTECTED] wrote:
At some level, it becomes a question of why not just make money a 'stat'.
Instead of gold pieces, silver, platinum, etc, floating in your inventory,
something just says you have 123456 gold pieces.
All this starts
A random thought is that if bank cards are used, and the shops can
automatically add/debit them, then the question becomes how much different is
that than just adding a stat. Although, I suppose a good case can be made the
coins found in the dungeon would have to remain coins until you do
My point about dropping money in the shop is more a convenience thing, not
realism (using the 'r' word with crossfire is never a good idea).
But my general thought is that if a bankkeeper is willing to accept usage of
the check card (or whatever its called), it just makes it easier for
ERACC wrote:
While you guys are looking at stuff like this could you please adjust
the payment altars to accept more than 32767? I wanted to use a 5
diamond altar in my Lone Town apartment map (for the various alchemy
benches in the basement) but could not due to this limitation.
The
Lalo Martins wrote:
Local currencies
=
As a note, while having local currencies add flavors, I'm not really sure if
it is worth the complication/confusion it is likely to cause. This will likely
be somewhat related to how many regions we have. But one can certainly see a
Anton Oussik wrote:
Another thing that could be done is to reduce the feding speed. What
is the proper way of reducing weapon speed of a skill? I looked around
briefly, but could not find it.
I don't know if there is actually a way to do this - it may be hardcoded right
now, but there must
Miguel Ghobangieno wrote:
I like the idea (note it shouldn't be that a lvl 115
player can usually steal an artifact item (or
something of similar value) from a shop, that should
still be ultra hard).
But this is also where the max steal value comes in. Unless there are shops
which let the
Miguel Ghobangieno wrote:
I suggest an addum to the mappers handbook don't put
jade and amber coins in you duengons as rewards. Then
will come the question why have them then! Well then
why have most of the things we have in CF? We could
probably chuck most of our archtypes.. why even have
CF?
Miguel Ghobangieno wrote:
Any ideas? How do I make it do damage. Lava does
damage...
Other than probably scripting, I don't think there is any way for a carryable
object to do damage to a player.
--- Miguel Ghobangieno [EMAIL PROTECTED] wrote:
Here is the current object's important
Brendan Lally wrote:
On 1/6/06, Mark Wedel [EMAIL PROTECTED] wrote:
All looks good - just a one minor question:
+ name (1 (non-zero) length byte, followed by that many bytes
of ascii text)
+ This is the name of the spell, and should be sent to the server
Miguel Ghobangieno wrote:
I noticed that the edges of the puddles archen were
alpha blended (THOUSANDS OF EXCLAIMATION POINTS AND
ONES). It displayed correctly in the GTK-Too(?) client
on my box. I wish to make the puddles more transparent
so you can see the floor better (as it is a puddle..).
Nicolas Weeger wrote:
Hello.
Currently, a plugin can easily crash the server, which doesn't check
parameters (just call a function with a NULL pointer, nice crash
guaranteed). Also, server doesn't checks parameters and such, which can
lead to invalid values (Str of 50 for a player...).
So
Sorry, in the initial post I presumed it would be python, but a C plugin seems
like a reasonable idea. For one thing, I can't imagine a C plugin ever not
being able to be installed (unlike python where people could be lacking the
libraries)
That said, trying to figure out what is
Yann Chachkoff wrote:
Well, it really depends on what the C code requires as dependencies - the
Python plugin has one with the python libs for example. But stuff that was
initially in the server code would have no such external dependencies indeed.
True. I imagine dependencies to be fairly
Gros wrote:
It actually depends on the level of control you want to grant to the plugins.
The most extreme case would be to export all the functions currently in the
code - to do that, you'll have to provide a wrapper for each function you
want to export. That's a lot of functions, but let's
Anton Oussik wrote:
Yes, it asks you something like
Are you sure you want want to quit the character?,
not
WARNING: You are about to delete the character!
Are you sure you want to completely delete the character and entirely
and irreversably remove all evidence that the character ever existed
Brendan Lally wrote:
On 1/19/06, Anton Oussik [EMAIL PROTECTED] wrote:
I did not necessarily mean more powerful spells. Some existing spells
can get moved up the chain, and intermediate interesting spells can
be added to fill the gaps, so a player always has a new spell just
within reach.
tchize wrote:
And for everyone out there currently using grep - download cscope and use
that
- it is a vastly superior solution (even going to plugins or whatever else,
cscope is a very handy tool - just run 'cscope -R' in the top level
directory.
Am not sure it's a good idea to
tchize wrote:
much about removing code removed
I agree that removing/disabling code is a valuable feature. I'm just not sure
that any of the methods either of us have talked about is really a good method.
From my point of view, making it really easy/convenient for developers to
disable code
Brendan Lally wrote:
On 1/26/06, Anton Oussik [EMAIL PROTECTED] wrote:
Is there anything that can be done to improve movement on laggy
connections? Could the server send the client a matrix of what tiles
on the map can be moved to, and send updates of that as they change
for example? Any
Anton Oussik wrote:
On 26/01/06, Mark Wedel [EMAIL PROTECTED] wrote:
Brendan Lally wrote:
On 1/26/06, Anton Oussik [EMAIL PROTECTED] wrote:
Is there anything that can be done to improve movement on laggy
connections? Could the server send the client a matrix of what tiles
on the map can
Yann Chachkoff wrote:
Of course, you may object that this is pure conjecture, that would get only
results on the long-term, if they ever get any. Sure - this is an important
change. I think that it all comes down to asking the question: do we want to
polish the current infrastructure, keeping
Brendan Lally wrote:
the map command and map1 commands (map1a could be used exclusively)
the item1 command (the C clients have long since used item2)
spell conversion from the old spell system
support for the old skill system.
support for oldsocket mode (pippijn recently made a textmode
Yann Chachkoff wrote:
(and maybe include some metaserver filter to stop servers older than this
being included too).
If protocol compatibility is to get broken, it is probably better to change
the metaserver URL, so that versions 1.x and 2.x don't overlap.
When there was the metaserver
With the current discussion regarding modularization, the topic of new
features also came up.
For 2.0, it was mentioned do a general code cleanup to removed old crufty
code
that is only there for compatibility reasons. Fair enough.
but relatively to players and developers, what do
Crossedit still works to some degree.
However, when new things are added, it does break and fixes are needed.
Anyone remember regions?
Also, I haven't looked lately, but I'm not sure sure if crossedit actually
supports all needed features - is there an interface to map tiling
1 - 100 of 736 matches
Mail list logo