@database 076a5868-0
@master TMP:IGC --- Ambassador/Ambassador.guide
@$VER: 1.92ß
@author "Jarkko Lindblad"
@(c) "1998-1999 Jarkko Lindblad"
@remark 2000/0406

@node "Main" "No title"


              Ambassador V1.92ß - Amiga Internet Go Client
    

                Copyright © 1998-1999 Jarkko Lindblad


     Ambassador is a program that allows relatively easy access to the
     Internet Go Server, IGS.  At this stage the program is still in
     developement, however, due to certain developements in my life, I will
     no longer have an internet account.  I will eventually regain
     connection to this alternative universe, but that will take some time.
     So I decided to release this program now so that the remaining
     few Amiga using go players can enjoy their favourite board game on the
     internet.
 
               @{fg shine}This manual is slightly out of date, so beware!@{fg text}



                        @{"       IMPORTANT       " link "important" 0}
                        @{" Contacting the author " link "author" 0}
                        @{"Background information " link "takatieto" 0}
                        @{"Ambassador vs. AmigaIGC" link "AvsA" 0}

                        @{"     Requirements      " link "vaatimukset" 0}
                        @{"     Installation      " link "vaatimukset" 13}
                        @{"    Troubleshooting    " link "vaatimukset" 52}
                        @{"        Netlag         " link "vaatimukset" 103}
                        @{"        Usage          " link "vaatimukset" 119}

                        @{fg shine}Game Windows:@{fg text}

                        @{"         Main          " link "pääikkuna" 0} 
                        @{"        Board          " link "lautaikkuna" 0}
                        @{"         Talk          " link "juttelu" 0}
                        @{"        Match          " link "matsi" 0}
                        @{"      Player List      " link "kukakohan" 0}
                        @{"        Games          " link "pelit" 0}
                        
                        @{"      About Sound      " link "äänestä" 0}
                        @{"       Technical       " link "tekniikka" 0}
                        @{"        BUGS!!!        " link "pukit" 0}
                        @{"         Todo          " link "tehtävää" 0}
                        @{"        History        " link "historia" 0}
                        @{"        Thanks         " link "kiitoksia" 0}

               Please notice that this documentation is _way_ out of date.


@endnode

@node "important" "IMPORTANT"


                      I M P O R T A N T


@{b}Ambassador is freely distributable product Copyright © 1998 Jarkko Lindblad.@{ub} I am in
no way responsible for any damage or loss of data in any system that uses this
product. The program may still have bugs that crash your system or melt the next
door nuclear reactor, so beware. This version is a beta version.

In this archive there is also a sound daemon, @{b}Upd 1.40@{ub} - it is not copyrighted by
me, instead it's @{b}© 1991-1994 Jonas Petersson & Absolut Software (aka Sirius Soft)@{ub}.

Even though this program is both unfinished and freely distributable, it is also a
program I'd like to get money from.  It is not realistic for me to cripple this
software in any way or even make it shareware, but I wish that everyone who uses
this product at regular basis would @{b}send me money - any currency, any amount, no
coins@{ub} - so that I would be more motivated to distribute the next version.  Thank
you, have fun with the program!



@{"Back to the main page" link "Main" 0}
@endnode

@node "author" "Contacting the author"
If you know any bugs or have ideas for features, please do not hesitate to contact
me. The easiest way is to send me some mail:

				jarkkojpl@kolumbus.fi

In order to send me money or beer, use the following snail mail address:

                Jarkko Lindblad
                Helsinginkatu 14 A 26
                00500 Helsinki
                Finland

I also accept telephone calls and GSM-telephone messages (those can be sent often
for free from several internet sites as well as GSM-mobile phones).

Phone number:  +358-50-5704072.

My IGS account is 'perkele' - I visit the server almost daily, so I can be
reached form over there also.


@{"Back to the main page" link "Main" 0}
@endnode

@node "takatieto" "Background information"


        Backgroud information

I used AmigaIGC a lot for a few years, played thousands of games, but always found
it lacking in capability. It is a good basic client, but try to observe two games at
once with it.... 
    So, once I knew my internet account would ceace to exist in a short time some
while a go, I decided to write a new IGS client for Amiga.  And here it is.
    It has multiple board windows, lots of gadgets and stuff, and at least at the
time I write this, a whole bunch of bugs and some missing features. But at the
moment it basicly works.

The work name for this masterpiece of programming was AIGC - I much rather have a
real name for a program than a stupid acronym, so the name had to change: first I
though of a stone related game, after all, the game of go is played with stones. The
problem with name like "Stone Age" or "Stonehenge" or "Blackstone" is that none of
those starts with an 'A'. This is after all an Amiga program in a field where most
programs are not Amiga programs. So I needed an A. The next thing I knew was that I
browsed through my "Webster" for wrds starting with "Am"....and there it was -
Ambassador - a high ranking diplomat negotiating with foreign servers for the user.


@{"Back to the main page" link "Main" 0}
@endnode

@node "AvsA" "Ambassador vs. AmigaIGC"
    Advantages over AmigaIGC:

    - Uses bsdsocket library (AmiTCP or compatible), not serial device
    - Multiple board windows (observe 42 games at a time and pray for guru
      meditation)
    - A good scoring mode - it is hard to make an error here
    - Multiple talk windows & multiple match request windows
    - Working and intuitive games- & player list-windows
    - The above windows are automatically updating
    - Much more easy to use
    - Many more features
    - Better looks (at least if you have 32+ color, 800*600 screen)
    - Speech option (or is it crash option...well, speech should be quite
      stable now as I threw asyncronism away...) 
    - Developement continues
    - Score estimation mode
    - All kind of fancy windows, gadgets and stuff...

    Disadvantages over AmigIGC:

    - Likely to be less stable under for example low memory situations
    - Ambassador is less likely to survive changes in IGS protocols or
      transfer errors
    - Only supports boardsize 19
    - Ambassador only works with OS3.x or better
	- Uses a whole damn lot more memory


@{"Back to the main page" link "Main" 0}
@endnode

@node "vaatimukset" "Requirements"

    @{u}Requirements@{uu}

    - OS3.0 or newer required
    - Internet connection via AmiTCP/IP or compatible
    - Fast CPU, AGA/GFX-card, hard disk, etc. recommended
    - if you want sounds, you also need @{i}Upd@{ui}-daemon. You can find it from
      both @{i}Aminet@{ui} and this archive.
    - Xen-font. This is hardcoded into the program. This is likely to change in
      the future. Xen-font can be found from @{i}Aminet@{ui}. Size 9 needed.
    - XHelvetica-font. Also hardcoded. Sizes 11 and 13 needed.


    @{u}Installation@{uu}

    Just drag the program and other files into a directory of your choice.
    Remember to set stack to at least 10kB - I use a 100kB stack!

    Copy the needed fonts into your FONTS: directory - you must get them
    yourself frm the Aminet. As far as I know, they are within the
    MagicWb-package.

   @{i}In order to hear other sounds than DisplayBeeps, you must also install
    Upd daemon. Unpack file Upd140.lha and follow the instructions in that
    archive.@{ui}


    New to IGS?
    -----------

    Before you connect to IGS for the very first time with this client, I
    would use telnet to connect there and read some help files over there.
    Try typing the following command: "help register" - now register an
    account to yourself. After you've received the password, use telnet
    again (always remember the correct port number, which is either 6969 or
    7777 at the time this document is written) and type in the following
    commands:

        toggle client 1
        toggle quiet 0

    Now log out and start the Ambassador with correct parameters and drink
    some good beer or something.

    IMPORTANT: The above information for new users may or may not be needed
    - you can try to use Ambassador from the very start, however I do not
    quarantee that Ambassador does handle everything fine if "toggle client
    1" command has not been previously issued on the IGS. I am just too
    lazy to check if everything is ok.


    @{u}Troubleshooting@{uu}

    There are not too many error messages available so if the program does
    not start up too well, you're probably missing some fonts (Xen 9 and
    XHelvetica 11 & 13) or are out of ram (actually that might crash the
    machine :) or something...

    If the program seems to start up properly, but you see no text on the
    window that opens, then there are net problems. Try again later.
    If your computer is very slow, it can take several seconds before
    Ambassador has performed all the initialization procedures, so don't
    worry about that.

    If you seem to have random problems, try increasing the stack - I've no
    clue about the stack requirements, but 10kB should be enough. I would
    play it safe myself and set it at 50kB or more, as there is some
    recursion in the code, so the program may need a larger stack than usual
    applications.

    One problem can always be memory. Ambassador currently does not do too
    much checking if allocation of memory failed or not, so try to avoid
    low memory condition when usign Ambassador. Be careful if in shortage of
    either kind of memory (chip & fast). A new board window can eat up
    suprisingly large amounts of chip memory, so beware.

    If the games and player list windows do not automatically update themselves
    when you're connected to IGS, you probably do not have correct items
    selected. Try toggling quiet off. See if anything is
    different. You can do this from IGS prefs window. Although, it is also
    possible that there is something wrong with my code since it has not
    been tested too much.

    There are problems with the player list window: usually if the net is
    ok, it seems to work relatively well, however, especially if the net is
    bad, the list may not be totally correct. Also if someone decides not
    to accept games and does "toggle open 0" command (see IGS help files
    for more info on toggle-command), there is no way for your client to
    know about it unless you refresh the whole player list.

    If you try NNGS or some other non-IGS go-server, everytnign may or may
    not work just fine - this program is intended to be used with IGS, so
    if you're a NNGS user, you may or may not be out of luck.

    If your commands to not seem to have any effect (you press some gadget
    and nothing happens), one possible cause is netlag. Even slight netlag
    may be a problem if you have full autoupdating in use, ie. at this time
    you have the IGS flag quiet set false (ie. toggle quiet 0) and have the
    player list open. You have to options: close the window or toggle quiet
    1. Or you can keep going as you are - just click the buttons or
    whatever again and again.


    @{u}Netlag@{uu}

    Netlag is a bigger problem for the Ambassador than it is for some
    simple IGS clients due to it's complexity. The main problem is slowness
    - in addition to slow net, Ambassador will ask IGS to send some data
    more than once, and in some cases, like for example when one begins to 
    observe a game, it is likely that Ambassador will send possibly several
    moves- and status-commands and their output can be very long and very
    very slow if under moderate netlag.

    Also some players/games may not be included in your player list and/or game
    list. In any case, you can always open the RawIO-window from the main
    window's menu to see what's happening if anything. The solution is to
    refresh the player list window every now and then.


    @{u}Usage@{uu}

    At the moment you can only use Ambassador from Shell or Cli and you
    must always provide several (4) parameters.

    @{i}Ambassador <login> <password> <server> <port>@{ui}

    <login>     = your login name. If you've never been to IGS, use guest.
    <password>  = your password. If you're new to IGS, use guest.
    <server>    = igs.joyjoy.net (or whatever the address of the server you
                  plan to use).
    <port>      = 6969 (or whatever the port of the server you plan to use
                  is).

    Example: Ambassador guest guest igs.joyjoy.net 6969


@{"Back to the main page" link "Main" 0}
@endnode

@node "pääikkuna" "Main Window"
This window is the one you see first when you run the program.  The string gadget
in this window is used to send direct commands manually to IGS. If you close this
window, you will quit the program.

@{u}There are the following menus available:@{uu}

@{i}Project/@{ui}
    Connect:        If for some reason you get disconnected from IGS, this
                    will get you back there. At the moment Ambassador quits
                    if the connection suddenly dies.

    Disconnect:     Disconnect from IGS.


    Debug:          Toggles a flag. When the flag is set, everything you
                    write with the gadget in the mainwindow is actually not
                    sent to IGS as usually, but instead it is sent to the
                    internal IGS parser. No normal user should ever need
                    this menu item - actually checking this item can be
                    dangerous.

    Capture:        Toggles a flag. When the flag is set, everything the
                    program reads from the user or from IGS is stored on
                    two files. One file has only the data IGS sends (mainly
                    for local debugging purpouses), the other one has both
                    input and output. This item is not really useful for
                    normal users. If you encounter problems with the IGS
                    parser or something, you can take a snapshot of the
                    problem with this and mail it to me with the bug report.

    Run Capture:    Searches for file "ram:igs.data" and acts as if IGS had
                    sent it. This item is not really useful for normal
                    users, although you can use this and the previous two
                    items to track down bugs if you like to.

    About Ambassador: The most important menu item.

    Quit:           Exits the program.


@{i}Commands/@{ui}
    Player List:    Opens a player list window. You can also open this
                    window by a who command manually from the main window
                    by typing for example "who 3k-5k o". This is however
                    NOT recommended as the internal player list handler can
                    take care of the needs of most users.

    Game List:      Opens a game list window. Can also be open manually
                    just like the player list window.

    Channel List:   Opens a channel list window showing all the channels
                    existing at the moment.

    Help Index:     Tries to open IGS Help Index ("help commands"). You can
                    take advantage of this index by double clicking on
                    commands you'd like to see more information on.
                    Browsing through IGS help files should be relatively easy
                    this way. Help key should also perform the same
                    function.

    Read messages:  You can read messages by selecting this menu item.


@{i}Preferences/@{ui}
    Player List Prefs:
                    Selecting this item allows you to modify the contents
                    of the Player List window.

    Local Prefs:    This item will open a preferences window.

    IGS Prefs:      Select this item to configure your IGS settings. You
                    can only do this if you're connected to IGS. You MUST
                    set these settings. When setting these items, do not
                    hurry as there is little or no buffering in IGS (or in
                    the client) - if you click lots of gadgets in a short
                    period of time, the settings in IGS may end up being
                    different than what you'd think.

    Screen mode:    You can change the screen mode here. You must quit and
                    restart to use the new screen mode. Also you need to
                    save the preferences if you want this to happen.

    Snapshot Windows:
                    In the submenu you can choose which windows you want to
                    snapshot. You must have that kind of window open. If you
                    have multiple such windows, the last one opened is the
                    one that is used by the snapshot routine. Please
                    remember to save the setting after the changes if you
                    want to use them in the future as well. If you snapshot
                    the match window, the contents of it will also be
                    snapped.

    Sounds:         Here you can toggle what kind of sounds you want to hear.
                    If an item is toggled, it is played, if not, then no
                    sound is made when this event happens.

                    Some sound options may not yet be implemented, so don't
                    be surprised if you don't hear some option. Please
                    inform me if you find such item.



            Below are all the sound events explained

            - Talk               : Someone is talking to you with 'tell'
            - Newtalk            : Someone talks to you for the first time
            - Beep               : IGS Beep sound
            - Match              : 
            - Move               : When a move is made, this is played
            - Game Lost          : If you lose a game, this sound gets played
            - Game Won           : If you win a game,...
            - Game Adjourn       : When the game is adjourned, you'll hear this one
            - Say                : If your opponent says something to you...
            - Pass               : When the move is pass, this sound is played
            - Done               :
            - Kibitz             : Sound to play when one 
            - Time Trouble       : If you are in time trouble, you'll hear this
            - Shout              : Regular shout messages play this sound
            - System Shout       : IGS server shouts cause this sound to be played
            - Notify             : All user definable notify events play this
                                   sound when the notify condition is fullfilled
            - Yell               : Sound to play when someone yells.



    Choose Sounds:  Choose sound samples for different sounds. If not set,
                    DisplayBeep() routine is used instead. See
                    @{i}Upd@{ui}-documentation for information on what kind of
                    Samples are ok. After you've chosen a sample, it will
                    be played once to let you choose suitable sounds with
                    ease.

    Speech Options: You can force the program to speak up a bit. Enabling
                    these options may endanger the stability of your
                    computer (even more).

    Use Bad Code:   If you want to have a neat addition to the functionality
                    of string gadgets in the board windows, toggle this
                    option on. However, by doing so, you allow the program
                    to break the conding standards set by Commodore ages ago.
                    If you have problems with some future OS version, turn
                    this one off. At the moment is should be turned on all the time.

    Auto String Activation:
                    If this item is enabled, clicking on a window with the
                    left mouse button will activate the windows string
                    gadget if one exists in the window.

    Word Wrap:      Enables or disables word wrapping for all buffered text
                    output (except for help-window)

    Help Line:      Enables or disables a small help area in the bottom of
                    the window.

    Kill Filtering: If enabled, no one you have defined as "Killed" in the
                    player information window (stats window) will be heard
                    from again.

    Match-Match-Close: If enabled, pressing the Match-button in the Match
                       request window will also close the window. Otherwise
                       the window will stay open.

    Save Settings:  Saves the settings into file "s:ambassador.prefs"

    Save Settings As:
                    Saves the settings into any file. ".prefs" will be
                    appended to the end of the filename if needed.

    Load Settings:  Loads the settings file. Loading settings may cause
                    Ambassador to do something silly in some extreme cases.



@{"Back to the main page" link "Main" 0}
@endnode

@node "lautaikkuna" "Board Window"
This is the window you'll probably use the most. You can observe any number of
games - although at the moment Board window is a SMARTREFRESH-window and chews
up some graphics memory...

You can also play numerous games at the same time if IGS supports it.

Playing a game while observing several others is supported by Ambassador.
It may or may not be supported by IGS.

There are several gadgets and menus in this window as well as some information
areas.

If you do not like the way the gadgets, chat area and the board are laid
out, you can try the other lay out the program provides you with. Try
changing the window size so that the window is wider than it's tall. By
doing that the chat area moves from the bottom of the window to the right
hand side of the window. The positioning of some gadgets also change
depending on which lay out system is used.

The looks of the board window depend on the depth of the screen. With 8
colors you get only simple stones and board, with 16 colors you'll get
slightly better looking board & stones. If you can use 32 colors or more,
the board will be as colourful as possible and the stones will look ok as
well. More colors will only have little effect on how the stones look, and
none on how the board looks.


@{u}Information Areas:@{uu}

Just below the bord there are up to 5 boxes with text or numeric
information.  The first one has the players names in it, second shows how
much time is left, the third one shows how many byo yomi stones there are
to play, or a short line if the player is not yet in byo yomi.  The fourth
one shows number of prisoners, and the fifth one is supposed to show
handicap and komi. If the handicap and/or komi is shown incorrectly, you
can try to set them manually by sending "status <game number>" command to
IGS from the main window.
    If your board window is not wide enough, there will be only 4
information boxes shown.


@{u}Gadgets:@{uu}

In the bottom of the window there is a string gadget - if you are playing,
everything you write here is say'ed to your opponent. In the area above you'll see
what he says. If you're observing a game, the same gadget is used to make kibitzes.
Kibitzes are also shown in the area above the gadget. If you were playing a
game and just finnished it, the same gadget can still be used to talk with
your ex-opponent.

Pass/Done-gadget: if you're scoring a game, this gadget will be a "Done" gadget to
press after you've removed the stones. Above the pass/done-gadget there are three
more gadgets. The slider is used to see the history of this game (you know, the
moves). One of the two gadgets with numbers is used to show the current move, the
other one shows what is the last move shown on the board (=slider position).
You can view the move history not only by using the gadgets, but also by
usign the cursor keys with or without @{i}Shift@{ui} and @{i}Ctrl-keys@{ui}.

The scroller gadget can be used to scroll around the kibitz/say buffer. You
can also use the keyboard for this. Unlike for the other text buffers, you
need to press the @{i}alt@{ui}-key as an extra qualifier with the cursor
keys. Pressing @{i}Shift@{ui}- or @{i}Ctrl@{ui}-keys while pressing the
@{i}Alt@{ui}-key and a cursor key allows you to move arpound the buffer
faster.

If you're observing game, and close the window, you will automatically be removed
from the observation list. The game window may at the moment still pop up
after you've closed the window. Just close it again (...and again and
again...:) or type the unobserve-command manually in the main window before
closing the window.


@{u}Menus:@{uu}

There are thee menus with several items and submenus. Most items are self
explaining, like @{i}Addtime@{ui} which adds time to the opponent. @{i}Show observers@{ui} just sends
'all' command and shows who are the observers of this game. @{i}Ayt@{ui} is used to send
ayt-message ("Are you there") to see if there's lag. If there is no lag, you should
see a simple 'yes' appearing on the bottom of the main window almost
immediately.

@{i}Command Menu@{ui}

Selecting @{i}Thank the opponent@{ui} item sends your opponent a message
you've defines in the Local Preferences window.

@{i}Refresh Board@{ui} refreshes the board. You should not need this. It does not send a
moves-command or anything like that to IGS, but instead just refreshes all the moves
made so far from internal buffer.

@{i}Score Estimation@{ui} toggle score estimation mode on or off. If
toggled on, you will see the board divided into spheres of influence, and
you will be informed of the current score (or what Ambassador estimates it
to be - sometimes it is 100% correct, sometimes not. Life is tough.

@{i}Force win on time@{ui} sends command "refresh" to IGS - if you or your oponent in on
negative time, the game will end with this command. If not, nothing will
happen.

@{i}Adjourn@{ui} asks for adjourning. @{i}Undo@{ui} undoes, and @{i}resign@{ui} is for those times you don't
think you're going to win.

@{i}Save Game@{ui} is used if you'd like to save the game as a SGF-file.
You can investigate these files afterwards by using for example Primiview
(© by Arno Hollosi and me).



@{i}The Black & White Menus@{ui} have sevral items with which you can
easily get information on the players playing the game.


@{u}Board:@{uu}

Moves are made by clicking on the board.

If you're observing, clicking adds the coordinates into the string gadget. If you
have allowed bad programming, the cursor will also move to reflect this. To do this
certain programming guideline is violated, so future OS versions may not be compatible
with this kludge.  When playing, you need to press shift while you press the left
mouse button.

If you're observing and make shift-click, a bet-command with the
coordinates is send to IGS - see IGS help file 'bet'.


@{"Back to the main page" link "Main" 0}
@endnode

@node "juttelu" "Talk Window"
This is for chatting with friends. It opens whenever someone talks to you or if you
select someone in the player list-window and decide to talk.

The string gadget sends your messages to the opponent in question, the small buttons
'M', 'A' and '?' are there to make your life a bit easier.

The 'M' button opens a match window and gives you a chance to match the opponent
with the parameters you decide.

The 'A' button challenges your opponents with the 'automatch' command.

The last button at the moment only asks for the players stats - after it
has received the information from IGS, it opens a stats window.
will open an information window.


@{"Back to the main page" link "Main" 0}
@endnode

@node "matsi" "Match Window"
This window is opened when you challenge someone to match you by pressing a button,
or if someone else matches you.  If someone automatches you an automatch (of course
unimplemented as of now) window will open. At the moment automatches, tem games etc.
must be started manually.

You can change the parameters by clicking on the gadgets. The one parameter you can
not change is the board size since Ambassador so far only supports board size of
19x19.

After you've set the parameters you can set (time, byo yomi time, color), you can do
three of four things. You can close the window which essentially is a quiet decline
- your opponent will receive no messages from this. If you select the @{i}match gadget@{ui},
you will either ask for a match or accept a match offer. If you press the @{i}info
button@{ui}, you'll see stats of the opponent. (in the future a player information window
will open.) If the @{i}decline button@{ui} is not shadowed, you can decline a match offer of
somebody.

@{"Back to the main page" link "Main" 0}
@endnode

@node "kukakohan" "Player List Window"
The Player List window can be opened in two different ways. You can either type a who
command manually in the main window, or you can select menuitem from the main
menu. The latter method is recommended.

In the window you see a big list of names - for explanations of the symbols next to
the names, please see IGS documentation for the who command (type "help who"). If
you press the left mousebutton on this list, you'll select a player, and afer that
you can press any of the buttons on the bottom of the window. The buttons are quite
self explaining. You can challenge someone too a match, open a talk window to talk
to someone, or you can get some information on the person in question. Please always
ask for a game before matching if the opponent seems to understand any
language you write.

If you want to see only only for example those players who are open for
match requests and are between 4 kyu and 17 kyu, you should open the Player
List Prefs window using the main window's manu.


@{"Back to the main page" link "Main" 0}
@endnode


@node "pelit" "Games Window"
The Game window is very simple one. You can open it from a menu or by typing a
games command manually in the main window

The window itself has one one big list of games and if you click your mouse over one
of them, a board window will open and you'll start observing the game.


@{"Back to the main page" link "Main" 0}
@endnode


@node "äänestä" "About Sound"
I suggest you install @{i}Upd@{ui}. Without @{i}Upd@{ui} you will only hear DisplayBeeps (unless you
disable all sound, of course). With @{i}Upd@{ui} you can easily set which samples should be
used for what actions. As far as I know @{i}Upd@{ui} only understands 8SVX samples. The sound
samples you must get by yourselves.

If several sounds are to be played at the same time, only one of them will
be played. If a new sound is to be played, and another one is playing, the
old sound will be interrupted. Sound playing is totally asyncrnous to the
rest of the program, so you can play big samples w/o stopping the program.

You will find @{i}Upd@{ui} archive in this archive.  Some suitable samples can be found from
ftp.nuri.net in AmigaIGC's add-on archive. You can also find @{i}Upd@{ui} from
@{i}Aminet@{ui}.

@{b}Upd is © 1991-1994 Jonas Petersson & Absolut Software (aka Sirius Soft).@{ub} Ask
him/them if you want to know more about it.

Ambassador is also capable of producing speech output if you have both the
translator.library and the narrator.device. Any version should be ok. You
can select the speech options from the main menu, however, speech is mainly
there for kicks, and is likely to be buggy, so beware...



@{"Back to the main page" link "Main" 0}
@endnode

@node "pukit" "Bugs"
There are bugs in this program.

Some bugs I know

    - One has to activate the window of which gadgets one want help on. With
      V39 WA_HelpGroup one should be able to group many windows into a
      common help group so that activating any of those windows would be
      enough to enable getting help from any gadget on any window belonging
      to that group. However.... the damn OS3.x is buggy. In principle all
      this works nicely, but activating a string gadget and moving mouse
      over another window in the same help group "transfers" the editing of
      the string into another window! Relly annoying...

    - When you do a 'time' command and are in negative time (for example a
      player is just going to byo yomi for the first time), the contets of
      the time information area are not updated properly. This is not
      serious since the next move will correct things. I have no idea why
      you'd like to use the 'time' command as it is totally unnecessary, so
      this will probably never be fixed.

    - String gadget clears up when a window is resized. Probably will not
      fix this one any time soon unless someone asks me to :)

    - If you have very large board window with v-e-r-y large stones and
      you use deeper than 8 color screen, rendering of the stones will fail.
      This will probably be fixed someday, but since this problem can only
      occur if you use screen with more than about 2000 pixels in either
      direction, I probably won't be in any hurry to fix it. If you'd like
      to use such screen mode, let me know and I'll fix the bug.

    - If you are running under low memory conditions, anything can happen.
      I have added some support for low memory situations, but still, as I
      said, anything can (and usually will) happen. If you have a pathetic
      system you can always use AmigaIGC instead...:)

    - At least the compilers resource tracking features dislike using
      translator.library, possibly narrator.device as well, so don't
      be surprised if something breaks. Seech output is at the moment
      syncronous as the machine seems to became very unstable is I enable
      asyncronous speech. 2.0 narrator might work better, but as I don't
      have it, I don't dare to enable asyncronous speech. (in the future I
      may launch a separatetask to take care of this, but I am so lazy...)

    - I would not try to exit Ambassador while some other utilities have
      windows open on the same screen. I have no idea what will happen if
      you do this.

    - If you have activated the Player list window's listview-gadget (ie.
      chosen a player), and (s)he suddenly logs out, instead of
      deactivating the gadget, the active item will now be the topmost item
      in the list.

    - Player information storing and statistics code have a serious bug. It
      thinks that players PERKELE ja perkele are the same. I'll fix this
      someday.


If you find others (it @{u}is@{uu} likely), you can try to @{"contact me" link "author" 0} although I know it is
hard.

@{"Back to the main page" link "Main" 0}
@endnode

@node "tehtävää" "Todo"

    From now on I will put this project into freezer for a while - I will
    only do bug fixing and possibly add some features I need myself or
    if I really like some idea tossed at me.

    o Bugfixing
        * This I will try to do when ever I get bug reports

    o History for string gadgets
        * I don't need this - I use a snapping program if I need to repeat
          some strings. Low priority.

    o Buffer for the main window
        * Is this really needed? I don't need it. Low priority.

    o More items for local preferences window
        * I will try to add some minor graphics options page

    o Font independend windows
        * Low priority - although most if not all rendering is already font
          sensitive, there is still some work left (defining window sizes),
          and I really have more interesting projects to do than this.

    o Wb compability
        * Icon compability (tool types?)
        * Ability to open the windows on WB-screen.
        * Neither is important to me, so....

    o ARexx
        * This is the most interesting ToDo-item, however it is a heck of a
          lot work and studying for me and I am very lazy, so it has a low
          priority.


If you have any ideas, I'd like to hear about them. @{"Contact me" link "author" 0} if you feel like
you're missing some features or some nasty (Ambassador related :) bug is
bothering you.

@{"Back to the main page" link "Main" 0}
@endnode

@node "historia" "History"


        @{u}History@{uu}


What is new in 1.92ß:
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
o fixed a irritating little bug in the statistics code - now it *should* work.
o fixed (hopefully the last) statistics bug.
o when escaper/dead person tries to match, there will be no more the match sound and match text in the main window
o fixed a new match requester bug
o opponents says are now always visible during scoring as they always should have been
o when someone undos while scoring, the board is automatically refreshed.
o adjourned games are now removed from the game list I hope.
o if a game you were observing suddenly continues, it is automaticaly reobserved if the window is
  still open. An informative message will be viewed as well, even if the window has been closed (absolutely untested)
o whenever you set someone to be an idiot/escaper/killed, a find-command is executed to view all the acconts of this email account
o When scoring a game, you will see the running point count on the wndow title bar if your window is wide enough.
o finally the title of a teaching game is only echoed once. And it is written to the board window this time.
o fixed bugs related to _personal_ statistics.
o the sgf & stored-windows can finally be closed with esc-key (untested)
o there is a new sound: Scoring. When a stne is removed in scoring or an undo
  happens during scoring, the new sound will be echoed. (untested)
o If the tell window to your opponent is open and the game is over and you use the string gadget
  of the board widow to talk, all you tell is echoed to the talk window if one exists for that person.
o Added some functionality for the personal statistics collection
o added a new menuitem, refresh stats, for stats-window.
o fixed a small sound menu preferences related bug.
o bugfix: observe-menu item in the player list window  works better now
o match requester now activates the by-time integer gadget when you press enter in the time integer gadget
o stats perkele will now refresh the contents of the perkele-status window if open. (refresh staatus works in stats window)
o it is now possible to greet the opponent from the board window.
o the logins of profressionals not tagged in representing stats-window are now echoed
o some very small improvements in look & feel.
o fixed a silly bug in the Observe-game-menuitem of the playerlist window. Now observing should start a bit faster (argh, the damn thing is still buggy....)
o professional players not already in notify-list will be added there when seen by the client
o version number bumbed to 1.91 and the copyright string was also altered a bit (2000)
o When observing, the useless menuitems are now disabled
o After the scoring ends (ie. game ends), the score calculated by the Ambassador will still be visible on the top of the window.
o the results of uptime command are output into the Help/Info-window
o uptime-menuitem in the main window
o IGS changed the syntax of who-list slightly (due to a bug?), fixed Ambassador to be 100% compatible again.
o bugfix: info-line is now viewed even if there are nonprintable characters in there (at the moment they are converted into spaces, but this may change)
o added a couple menuitems to the player list menu and player stats menu
o Fixed a SERIOUS bug in .statistics loading. Now opponent playing as NR or ??? rating should work ok.
o *** PASS *** -text is now written in the color of the player passing
o Primiview can now be launched directly from the board window in case you want to analyze the game.
	(NEW file: REXX/p_open.rexx) Notice that you need to have file "sys:rexxc/rx" if primiview is already loaded before invoking this option.
o You can now limit the games anaylzed in the staistics window based on color used and rank of the opponents
o You can no more run multiple Ambassadors at the same time (to prevent trashing the statistics)
o Statistics are no longer written to the disk unless you have actually been to IGS (or whatever server you are using).
o Version number bumber up to 1.92beta.



What is new in this 1.8ß:
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
o some internal bug fixes
o fixed the local time control to work well for the 2nd, 3rd,... etc. clicks.
o players names are now used in Board windows menu titles instead of Black & White.
  (there seems to be a bug somewhere in menu layouting though (in OS))
o an undocumented, classified, top secret feature added :) 
o the selection in the player list should now remain as it is when players log in/out.
o beginning observation now works better. However, ...
o the limited client command buffering (lccb) was improved (?) slightly (minimum of 1s between each client sent command)
o fixed the player list bug concerning game numbers
o a small bug fixed in user buffering 
o one can now lauch the player list from the game list windows menus and vice versa.
o fixed the problem with player colors when a match dispution occures
o status window (player information window, piw) can now view the whole info-line of players.
o small prompting improvements
o when scoring starts, chatting gadget resets into say-mode, instead of kibitz-mode.
o in the windows with string gadgets, pressing tabulator activates the gadget
o rawio-window has a close gadget now
o fixed the problem with the checkmark of the main menus capture-menu item
o the title of the game will show only once in teaching games (or not :)
o changed the shade of the board slightly
o added a couple of menu items into the player and game list windows
o fixed a small notify related bug - now the player list does not have to stay open fornotifying to work properly.
o when a game is reloaded and the board window for the game is still open, it will be used instead of opening a new window
o the game name is no longer repeated when observing teaching games.
o player information menus in the board windows work fine when observing teaching games.
o Game titles are now really only shown once per game.
o Added some shorcuts into the board window (& changed the name of one item)
o The channel window can now be smaller than before.
o Fixed (hopefully) a problem with games that are adjourned very early.
o Added buffering to tells, says, kibitzes, chatters and yells. Commands entered from the
  main window will still not be buffered in any way.
o Fixed a buf in SGF vindow whenb only one SGF file was there to be shown
o Escapers are no longer shown in the player list unless kill filtering is disabled
o Fixed the problem with undo-menu
o Menus of the player list window have changed clightly
o If you select observe game from player list window menu, the client will first try to observe the
  game selected player is playing, if one is not playing, game one is observing is used
o got rid of yell/say/kibitz/chatter buffering, only tells are now buffered (in an improved way as well)
o away-flag and a new item in the string page of Local Preferences.
o fixed problems with yell-sound
o automatch support w/ a new page in the local preferences
o fixed an away-flag bug
o fixed a problem w/ automatch
o fixed a small bug in tell buffering.
o fixed a stupid little bug in some string/integer gadgets...
o fixed an old bug in reading number of prisoners
o fixed a small bug w/ the cycle gadget in the board window (I hope)
o changed the title of the player list window
o player information is no longer saved unless it is changed
o the scroller of help window should now be updated correctly in all situations
o notifying should work better now, if your opponent loses connection and relogs to the server (w/o quitting)
  - there is a known bug here - if the opponent sometimes later logs into IGS (after the game for example),
    there will again be a notify message even if here npo longer is a game being played betwen the 2 of u)
o fixed a small bug in the player counter in the player list.
o the player list window now has more keyboard support
o pressing tabultor in the match window now activates one of the integer string gadgets.
o setting playter status flag to killed/idiot/escaper will now also send IGS a find-command to check if there are other accounts by the player as well (status of those accounts must be changed manually)
o small bugfix in gfx rendering code
o white stones can now have a black circle around them
o There are now two different "standard thank you strings", one for victories, one for defeats.
o fixed small bug in the player list windows controls
o resign-menuitem in the stored games window.



What is new in the old1.8ß:
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
o All game commentary can now be saved into a single textfile.
o Game commentary is now also saved in the SGF file.
o When changing local preferences pages, there is less flicker now
o Find all account-menuitem now works...
o Fixed several small bugs, some fatal.
o Moves are shown much faster now if one reloads an old game or starts observing a game.
o Fixed the above to work properly :)
o If your opponent disappears and game adjourns, you should now get notified when the opponent reappears
o IGS Preferences widnow is more usable as the IGS responses to mouse clicks are reported in the main window
o Ambassador should now re-observe automatically if the board window is still open
o Trying to open a game list in a low chip ram condition should no more cause problems.
o The above should also be true for the player list window.
o Both player and game list output should revert to main window if suffering from a low-chip memory condition
o After unobserving a game by closing the window, there should be less accidental reopenings of ao. game window performed.
o Look-command works again
o The player list now has more menu items
o Fixed the SGF command syntax of stats-window menu
o Observe-command is now sent when one starts observing
o Player list is now buffered, ie. normally ALL logins/logouts should be visible on the player list
o User list should now correctly do minimal updates if autoupdating is disabled.
o Stone cursor should now work properly again.
o Stored window now has menus
o Talk windows now have menus
o Changed debug menu - Auto Update Lists now has effect on both the player and the games lists
o Game result message is slightly changed
o Statistic collection should now work even if quiet flag has been toggled on.
o Rawio-window is now always compiled to the code - a new menu item in the main menu
o Match dispute messages are now handled
o Fixed a couple of irritating small bugs
o Fixed the good old games bug which used to freeze the program when one tried to view games
  manually
o Games list should no more pop up after closing it (under normal conditions)
o The guide was again slightly updated. It is still relatively out of date though.


What is new in 1.7ß:
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
o Find Other Accounts -menuitem in the stats-window.
o Added menus to main window and games window
o Added a game list preferences window
o Game list can now be sorted in several different ways.
o Player statistics should now work fully.
o Win/Lose sounds should now be always correct.
o Statistics can now be resetted (only all statistics)


What is new in 1.6ß:
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
o support for chatter
o less nonsense of different kinds when a board window is updated in some cases
o prompting should be much better now
o time counter should no more run in teaching games
o more shortcuts in board window menus
o automatic refreshing of the player list can now be disabled
  (recommended if there is netlag or if you are irritaded by the fact that sometimes your
  commands are not processed by IGS because Ambassador sends a refreshing command right after
  one has send something to IGS)
o player list has a new menu item, and the other items should also now work...
o talk window can now be smaller
o fixed some enforcer hits, old and new ones...
o the status of singlegame-gadget (in IGS preferences) is now relavent for the client as well.
o fixed a small bug in game status parser
o the title of the talk window is now shorter
o login process should now be a bit cleaner
o statistics should now work fully (...no they didn't...:))
o fixed a bug in stored-parsing
o done button works again :)
o improved the functionality of the string gadget of the board window


What is new in 1.5ß:
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
o sgf/stored/results commands now have a minus sign before the name.
o if observing a game, shift-click on board will send a bet-command to server.
o a status command is issued for new board windows -> komi & handicap should work now
o fixed a small bug in the player list
o adjourn comamnds syntax depends on the IGS Preferences singlegame-setting


What is new in 1.4ß:
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
o more information when game ends
o support for look-command and improved stored-window
o player list is now sorted alphabetically.
o player list places friends etc. before other players if selected for notifying in local prefs.
  (will probably change into something player list specific in the future).
o player list has now some coloring...
o Guest  players will no longer show in the player list window.
o Fixed a couple of bugs (mostly player/gamelist related)
o hopefully the player list will now react to game start/end-messages
o more bugfixes concerning the player list and match widows menus.
o added one more menu into the match window
o yell-sound defination and yell-sound toggling should now work
o added a possibility to prevent match-window from closing when you press the match-gadget.
o looking at unfinnshed games is now possible
o double clicking in the player list window gives the stats of a player,
  shift dbl-click opens a talk window.
o <escape> key can be used to close windows.
o game list now highlites games with professional player(s).
o fixed a bug in shout interpreter


What is new in 1.3ß:
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
o there should be better prompting now (not by much though)
o fiexed a small bug in time trouble alarm code
o improved the time control - now the time stamp is taken from the first mouse click in case you try to send the same move number of times through netlag...
o snapshotting match window now also snapshots the parameters of the window as default parameters
o Added notify-sound.
o board window will now tell the user how long this board window has been open.
o stats-window should now have a color code depending on players status
o if an escaper tries to match you, you should see/hear nothing


What is new in 1.2ß:
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
o recompiled to fix kibitz-buffer 
o removed a debug printf
o say, kibtz and after-the-game-tell now work again in the board windows
o the board windows now have more menu items
o one can snapshot SGF & Stored-windows now
o small bug fixes
o in help help-window shift-doubleclick uses "mail me" command instead of
  help command
o help key gives you the help index of IGS
o menus for the match window
o kill-filter on/off
o statistic cllection _should_ work better now.
o guests will not cause lag no more
o will not ask for game/player list updates if the lists are closed
o channel window works better now...
o sounds work if run from compiler, otherwise they do not...
o client side time control is now in effect
o playing/observing multiple games at the same time is now fully supported AFAIK
o the client should now act more friendly if you log in for the first time (ie. when client mode is off)


981209 v.1.1ß pre-release
    o Simple hypertext capability now in the help-window (double click on
      words you'd like to see more information)
    o Some only partially working kludges to go around the string gadget
      bug. I really do hope OS3.5 will fix this damn bug.
    o Toggline 'Help Line' off now really turns al the help system off
    o Improved pen allocation slightly. Everything is still ungly in 16
      colours
    o more local preferences
    o stats window
    o statistics of played games are collected
    o more sound output enabled
    o notify system is now functional (although might be buggy)
    o lots of small bugfixes and minor improvements



98xxxx  v1.0ß pre-release:

    o Score estimation mode
    o SGF file window
    o Stored games window
    o CustomWho bugfixed - still a temporary solution
    o More IGS commands and messages understood
    o Handling of different preferences versions
    o IGS Prefs window
    o Better and more userfriendly when executed for the first time
    o Help window
    o Channel window - due to lack of information I'm not sure if it works.
      Also Channel window does not open itself too easily :-/
    o automatic string gadget activation now optional
    o SGF file saving of games (time stamps and comments not yet implemented)
    o Timer.device is used for time keeping
    o Speed optimizations for deeper displays w/o gfx card
    o Time troube sound generation implemented
    o Local Prefs Window
    o Sound processing has now it's own task to speed up things
    o Optional word wrapping implemented into all buffered windows
    o Turned the screen into a public screen
    o With 16 or more colors both the board and the stones are (much) better looking
      The more colors, the better looks.
    o User can now set the position of the chat area of the board window
    o Most I/O is now buffered and reviewable.
    o Games & Who windows no longer have stupid maximum player/game limits
    o The games list now automatically updates itself if 'toggle quiet' is
      not checked in the IGS Preferences Window
    o The Player list window should also update itself automatically.
    o Player list preferences window
    o Bugfixes and some small improvements



981026  v0.93   Hopefully fixed font problems

981025  v0.92   Fixed crashing caused by match-window

981025  v0.91   Several small bug fixes. Should crash a lot less.

981023  v0.9    First release. I lose net connection, so I must dump an
                unfinished and definately buggy program out...

@{"Back to the main page" link "Main" 0}
@endnode

@node "tekniikka" "Techical information"

If you would like to see for example better looking board and stone
graphics, mail me your alternatives and I'll see what I can do. However,
Ambassador always allocates 8 colors for gadgets, text, etc., so if you
want to have pretty board & stones on a 16 color screen, you can only set 8
colors into whatever you wish to. 

The board data should be 159 pixels wide, and the height should be 290 pixels.
The stones are both 101*101 pixels in size. The board data should be
seamless.


@{"Back to the main page" link "Main" 0}
@endnode

@node "kiitoksia" "Thank's to..."

I'd like to thank Bob Carter for being a patient beta tester - I hope
his machine hasn't crashed too often with these never ending betas.


@{"Back to the main page" link "Main" 0}
@endnode