ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/utils/cfutil.in
(Generate patch)

Comparing deliantra/server/utils/cfutil.in (file contents):
Revision 1.122 by root, Sun Nov 11 02:24:51 2012 UTC vs.
Revision 1.124 by root, Sun Nov 11 05:53:12 2012 UTC

1106 } 1106 }
1107} 1107}
1108 1108
1109 print "processing resources...\n" if $VERBOSE; 1109 print "processing resources...\n" if $VERBOSE;
1110 my $enc = JSON::XS->new->utf8->canonical->relaxed; 1110 my $enc = JSON::XS->new->utf8->canonical->relaxed;
1111 while (my ($k, $v) = each %RESOURCE) { 1111 for my $k (sort keys %RESOURCE) {
1112 my $v = $RESOURCE{$k};
1112 1113
1113 if ($v->{meta} && $v->{meta}{datadir}) { 1114 if ($v->{meta} && $v->{meta}{datadir}) {
1114 delete $RESOURCE{$k}; 1115 delete $RESOURCE{$k};
1115 1116
1116 $k =~ s/^res\/// or die "$k: datadir files must be in res/"; 1117 $k =~ s/^res\/// or die "$k: datadir files must be in res/";
1135 1136
1136 make_hash $k, $v->{data}, $v->{hash}, 6; # 6 for the benefit of existing clients 1137 make_hash $k, $v->{data}, $v->{hash}, 6; # 6 for the benefit of existing clients
1137 } 1138 }
1138 } 1139 }
1139 1140
1141 printf "writing facedata...\n" if $VERBOSE;
1142
1143 {
1144 open my $fh, ">:perlio", "$DATADIR/facedata~"
1145 or die "$DATADIR/facedata~: $!";
1146
1147 print $fh "FACEDATA";
1148 my $fofs = 8;
1149
1150 my $put = sub {
1151 my $len = length $_[0];
1152 my $ofs = $fofs;
1153
1154 print $fh $_[0];
1155 $fofs += $len;
1156
1157 ($len, $ofs)
1158 };
1159
1160 for (values %FACEINFO) {
1161 ($_->{size32}, $_->{fofs32}) = $put->(delete $_->{data32});
1162 ($_->{size64}, $_->{fofs64}) = $put->(delete $_->{data64});
1163 }
1164
1165 for (values %RESOURCE) {
1166 ($_->{size}, $_->{fofs}) = $put->(delete $_->{data});
1167 }
1168
1169 close $fh;
1170 }
1171
1140 printf "writing facedata (%d faces, %d anims, %d resources)...\n", 1172 printf "writing faceinfo (%d faces, %d anims, %d resources)...\n",
1141 scalar keys %FACEINFO, 1173 scalar keys %FACEINFO,
1142 scalar keys %ANIMINFO, 1174 scalar keys %ANIMINFO,
1143 scalar keys %RESOURCE 1175 scalar keys %RESOURCE
1144 if $VERBOSE; 1176 if $VERBOSE;
1145 1177
1146 open my $fh, ">:perlio", "$DATADIR/facedata~" 1178 open my $fh, ">:perlio", "$DATADIR/faceinfo~"
1147 or die "$DATADIR/facedata~: $!"; 1179 or die "$DATADIR/faceinfo~: $!";
1148 1180
1149 print $fh nfreeze { 1181 print $fh nfreeze {
1150 version => 2, 1182 version => 2,
1151 faceinfo => \%FACEINFO, 1183 faceinfo => \%FACEINFO,
1152 animinfo => \%ANIMINFO, 1184 animinfo => \%ANIMINFO,
1154 }; 1186 };
1155 } 1187 }
1156 1188
1157 print "committing files...\n" if $VERBOSE; 1189 print "committing files...\n" if $VERBOSE;
1158 1190
1159 for (qw(archetypes facedata treasures), @COMMIT) { 1191 for (qw(archetypes faceinfo facedata treasures), @COMMIT) {
1160 chmod 0644, "$DATADIR/$_~"; 1192 chmod 0644, "$DATADIR/$_~";
1161 rename "$DATADIR/$_~", "$DATADIR/$_" 1193 rename "$DATADIR/$_~", "$DATADIR/$_"
1162 or die "$DATADIR/$_: $!"; 1194 or die "$DATADIR/$_: $!";
1163 } 1195 }
1164 1196

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines