ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/ext/setup.ext
(Generate patch)

Comparing deliantra/server/ext/setup.ext (file contents):
Revision 1.4 by root, Tue Jul 24 04:55:34 2007 UTC vs.
Revision 1.16 by root, Tue Oct 5 21:40:05 2010 UTC

9 9
10 return unless $ns->extcmd; 10 return unless $ns->extcmd;
11 11
12 $ns->ext_msg (capabilities => 12 $ns->ext_msg (capabilities =>
13 # id, name, flags (1 == 2d), edge length 13 # id, name, flags (1 == 2d), edge length
14 tileset => [[1, "default 64x64 faceset", 1, 64], [0, "default 32x32 faceset", 1, 32]], 14 tileset => [[1, "default 64x64 faceset", 1, 64], [0, "default 32x32 faceset", 1, 32], [2, "default text faceset", 2, 1]],
15 ); 15 );
16} 16}
17 17
18cf::client->attach (on_setup => sub { 18cf::client->attach (on_setup => sub {
19 my ($ns, $args) = @_; 19 my ($ns, $args) = @_;
34 34
35 } elsif ($k eq "spellmon") { 35 } elsif ($k eq "spellmon") {
36 $ns->monitor_spells ($v); 36 $ns->monitor_spells ($v);
37 37
38 } elsif ($k eq "darkness") { 38 } elsif ($k eq "darkness") {
39 $ns->darkness ($v); 39 $setup{$k} = 1;
40 40
41 } elsif ($k eq "map1cmd") { 41 } elsif ($k eq "map1cmd") {
42 $ns->mapmode (cf::Map1Cmd) if $v > 0; 42 $ns->mapmode (cf::Map1Cmd) if $v > 0;
43 43
44 } elsif ($k eq "map1acmd") { 44 } elsif ($k eq "map1acmd") {
45 $ns->mapmode (cf::Map1aCmd) if $v > 0; 45 $ns->mapmode (cf::Map1aCmd) if $v > 0;
46
47 } elsif ($k eq "map2cmd") {
48 # gcfclient bug, map1acmd is sent too late
49 $ns->mapmode (cf::Map1aCmd);
50 $setup{$k} = "FALSE";
51 46
52 } elsif ($k eq "newmapcmd") { 47 } elsif ($k eq "newmapcmd") {
53 $ns->newmapcmd ($v); 48 $ns->newmapcmd ($v);
54 49
55 } elsif ($k eq "mapinfocmd") { 50 } elsif ($k eq "mapinfocmd") {
58 } elsif ($k eq "extcmd") { 53 } elsif ($k eq "extcmd") {
59 $ns->extcmd (min 2, $v); 54 $ns->extcmd (min 2, $v);
60 send_capabilities $ns; 55 send_capabilities $ns;
61 56
62 } elsif ($k eq "extmap") { 57 } elsif ($k eq "extmap") {
63 $ns->extmap ($v); 58 $setup{$k} = 1;
64 59
65 } elsif ($k eq "facecache") { 60 } elsif ($k eq "facecache") {
66 if (!$v) {
67 $v = 1;
68 $setup{$k} = $v; 61 $setup{$k} = 1;
69 $ns->send_drawinfo ("(trying to forcefully enable facecaching)", cf::NDI_RED);
70 }
71
72 $ns->facecache ($v);
73 62
74 } elsif ($k eq "faceset") { 63 } elsif ($k eq "faceset") {
64 $v = cf::clamp $v, 0, 2;
75 $ns->faceset (0); 65 $ns->faceset ($v);
76 $setup{$k} = 0; 66 $setup{$k} = $v;
77 # $ns->image2 (1) 67 # $ns->image2 (1)
78 68
79 } elsif ($k eq "tileset") { 69 } elsif ($k eq "tileset") {
80 $setup{$k} = $ns->faceset ($v & 1); 70 $setup{$k} = $ns->faceset ($v & 1);
81 71
88 $setup{$k} = $ns->itemcmd; 78 $setup{$k} = $ns->itemcmd;
89 79
90 } elsif ($k eq "mapsize") { 80 } elsif ($k eq "mapsize") {
91 my ($x, $y) = split /x/, $v; 81 my ($x, $y) = split /x/, $v;
92 82
83 # we *need* to make sure we use an odd map size, as the remaining
84 # code relies on this.
93 $ns->mapx ($x = max 9, min cf::MAP_CLIENT_X, ($x - 1) | 1); 85 $ns->mapx ($x = max 9, min +(cf::MAP_CLIENT_X - 1) | 1, ($x - 1) | 1);
94 $ns->mapy ($y = max 9, min cf::MAP_CLIENT_Y, ($y - 1) | 1); 86 $ns->mapy ($y = max 9, min +(cf::MAP_CLIENT_Y - 1) | 1, ($y - 1) | 1);
95 87
96 $setup{$k} = "${x}x${y}"; 88 $setup{$k} = "${x}x${y}";
97
98 } elsif ($k eq "extendedMapInfos") {
99 $ns->ext_mapinfos ($v);
100 89
101 } elsif ($k eq "extendedTextInfos") { 90 } elsif ($k eq "extendedTextInfos") {
102 $ns->has_readable_type ($v); 91 $ns->has_readable_type ($v);
103 92
104 } elsif ($k eq "smoothing") { # cfplus-style smoothing 93 } elsif ($k eq "smoothing") { # cfplus-style smoothing
105 $ns->smoothing ($v); 94 $ns->smoothing ($v);
106 95
107 } elsif ($k eq "fxix") { 96 } elsif ($k eq "fxix") {
108 $ns->fxix ($setup{$k} = min 3, $v); 97 $setup{$k} = 3;
109 98
110 } elsif ($k eq "msg") { 99 } elsif ($k eq "msg") {
111 $ns->can_msg ($setup{$k} = min 2, $v); 100 $setup{$k} = 1;
112 101
113 } elsif ($k eq "ywidget") { 102 } elsif ($k eq "widget") {
114 # eXperimental server-side widgets 103 # server-side widgets
104 $v = $v > 1;
115 $ns->{can_widget} = 1; 105 $ns->{can_widget} = $v;
106 $ns->fx_want (6 => 1); # need support for RSRC
107 $setup{$k} = $v ? 2 : 0;
108
109 } elsif ($k eq "lzf") {
110 # the lzf packet simply contains an lzf-compressed packet as argument
111 $ns->{can_lzf} = $v == 1;
112
113 } elsif ($k eq "frag") {
114 # the frag packet contains data which gets appended to the existing packet buffer.
115 # empty frag packet means end of packet.
116 $ns->{can_frag} = $v == 1;
116 117
117 } elsif ($k eq "excmd") { 118 } elsif ($k eq "excmd") {
118 # we support it 119 # we support it
119 120
120 } else { 121 } else {
129 $ns->send_packet (join " ", setup => %setup); 130 $ns->send_packet (join " ", setup => %setup);
130 131
131 cf::datalog setup => 132 cf::datalog setup =>
132 request => $args, 133 request => $args,
133 reply => \%setup, 134 reply => \%setup,
134 client => $ns->version,
135 ; 135 ;
136}); 136});
137 137
138

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines