Complete.Org: Mailing Lists: Archives: freeciv-dev: August 2002:
[Freeciv-Dev] Re: At endyear map in not displayed (PR#1883)
Home

[Freeciv-Dev] Re: At endyear map in not displayed (PR#1883)

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: Davide Pagnin <nightmare@xxxxxxxxxx>
Cc: freeciv-dev@xxxxxxxxxxx, bugs@xxxxxxxxxxxxxxxxxxx
Subject: [Freeciv-Dev] Re: At endyear map in not displayed (PR#1883)
From: Raimar Falke <rf13@xxxxxxxxxxxxxxxxx>
Date: Tue, 6 Aug 2002 15:39:22 +0200

On Tue, Aug 06, 2002 at 01:23:23AM -0700, Davide Pagnin wrote:
> On Mon, 2002-08-05 at 18:40, Per I. Mathisen wrote:
> > On Mon, 5 Aug 2002 nightmare@xxxxxxxxxx wrote:
> > > As well known, 1.13.0 release and further development code (1.13.1-devel)
> > > doesn't display the full world map at the end of a game.
> > 
> > Yes, this looks unintentional.
> 
> Absolutely, IMHO, because the cvs entry relative to the change that has
> introduced the new client state, talks about refreshing the screen and
> nothing else, and moreover, the relevant code that sends the disclosed
> map to every client is in is place in the server.
> 
> from srv_main.c:
> 
>   main_loop();
> 
>   send_game_state(&game.est_connections, CLIENT_GAME_OVER_STATE);
> 
>   report_scores(TRUE);
>   show_map_to_all();
> --^^^^^^^^^^^^^^^^^^
> 
>   notify_player(NULL, _("Game: The game is over..."));
>   gamelog(GAMELOG_NORMAL, _("The game is over!"));
>   if (game.save_nturns > 0) save_game_auto();
> 
>   while (server_state == GAME_OVER_STATE) {
>     force_end_of_sniff = FALSE;
>     sniff_packets();
>   }

To clarify: disabling the show-whole-map was never the intend of the
patch which added the CLIENT_GAME_OVER_STATE. CLIENT_GAME_OVER_STATE
was added to allow a final freeze since the client has no idea when a
game has ended in a turn done. Sadly I didn't catch it during the
testing since the player had apollo.

I would propose a smaller patch. Attached. Untested but compiles.

> > Note that you can cheat with this feature, however:
> > 
> > Connect as player A.
> > ...
> > Fire up another client. Connect it as player Z. (If anyone asks about
> > your IP, say you are on a local net or behind a proxy with someone. Or
> > you can use an IP bouncer.)
> > ...
> > Game starts.
> > As Z, die. You now see entire map and can conquer more easily with A.
> > 
> > But, you can do the same with posing-as-human AI clients or (much easier)
> > posing-as-enemy-real-life-friends ganging up on everyone else, so it isn't
> > something we can guarantee the game against anyway, I suppose...
> 
> If you look at my "proof of concept" patch, you'll see that I've
> modified only the code of the client, thus "cheating" can be done by
> anyone with a little change of the code.

> A good solution, IMHO, is that a client receive the whole map *ONLY* if
> the game has ended (not if his game is over). I've not checked the code
> and I'm not sure if this is the actual case or not. 

Thats another issue.

        Raimar

-- 
 email: rf13@xxxxxxxxxxxxxxxxx
 "Many of my assistants were fans of Tolkien, who wrote 'Lord of the Rings'
  and a number of other children's stories for adults.  The first character
  alphabet that was programmed for my plotter was Elvish rather than Latin."
    -- from SAIs "life as a computer for a quarter of a century"

Attachment: 1883_fix1.diff
Description: Text document


[Prev in Thread] Current Thread [Next in Thread]