1 |
#! perl # mandatory |
2 |
|
3 |
# check client version and string for old clients and possibly issue warnings for them |
4 |
|
5 |
cf::client->attach ( |
6 |
on_addme => sub { |
7 |
my ($ns) = @_; |
8 |
|
9 |
my $client = $ns->version; |
10 |
|
11 |
my $is_cf = $client =~ /^(?:GTK2?|X11) (?:Unix|Win32) Client ([.0-9]+)/ |
12 |
? join "", map chr, split /\./, $1 |
13 |
: undef; |
14 |
|
15 |
my $is_jx = $client =~ /^JCrossclient 1.0 alpha-(\d+)/ |
16 |
? join "", map chr, split /\./, $1 |
17 |
: undef; |
18 |
|
19 |
$ns->enable_bg_scrub (1); |
20 |
|
21 |
if ($is_cf) { # && $is_cf lt v1.9.2) { |
22 |
$ns->send_drawinfo ("(disabling bg image scrub because of buggy client)", cf::NDI_RED); |
23 |
$ns->enable_bg_scrub (0); |
24 |
|
25 |
$ns->send_drawinfo ("(enabling workaround for client buffer overflow on scroll)", cf::NDI_RED); |
26 |
$ns->buggy_mapscroll (1); |
27 |
|
28 |
$ns->send_drawinfo ("(enabling workaround for map redraw bug)", cf::NDI_RED); |
29 |
$ns->force_image_newmap (1); |
30 |
|
31 |
$ns->send_drawinfo ("(enabling workaround for broken face caching in client)", cf::NDI_RED); |
32 |
$ns->force_bad_checksum (1); |
33 |
} |
34 |
|
35 |
if ($is_jx) { |
36 |
$ns->send_drawinfo ("(enabling workaround for map redraw bug)", cf::NDI_RED); |
37 |
$ns->force_image_newmap (1); |
38 |
|
39 |
$ns->send_drawinfo ("(enabling buggy map scroll workaround)", cf::NDI_RED); |
40 |
$ns->buggy_mapscroll (1); |
41 |
|
42 |
$ns->send_drawinfo ("You are using a known to be buggy client (an alpha version, too). " |
43 |
. "If you encounter map freezes or other bugs, consider using a more stable client " |
44 |
. "such as CFPlus or gcfclient or gcfclient2", cf::NDI_RED); |
45 |
} |
46 |
|
47 |
if ($is_cf && $is_cf lt v1.9.1) { |
48 |
$ns->send_drawinfo (<<EOF, cf::NDI_RED); |
49 |
|
50 |
*** *** *** *** *** *** *** *** *** *** *** *** *** *** |
51 |
*** *** *** *** *** *** *** *** *** *** *** *** *** *** |
52 |
*** WARNING: Your client is BUGGY |
53 |
*** *** *** *** *** *** *** *** *** *** *** *** *** *** |
54 |
*** *** *** *** *** *** *** *** *** *** *** *** *** *** |
55 |
|
56 |
Your client ($client) is known to be buggy. Upgrading is highly recommended, otherwise you may experience crashes, strange lockups or other problems. |
57 |
|
58 |
EOF |
59 |
} |
60 |
}, |
61 |
); |
62 |
|