r2804 - in branches/nexuiz-2.0/data: . models/sprites
DONOTREPLY at icculus.org
DONOTREPLY at icculus.org
Tue Sep 4 17:03:28 EDT 2007
Author: div0
Date: 2007-09-04 17:03:27 -0400 (Tue, 04 Sep 2007)
New Revision: 2804
Added:
branches/nexuiz-2.0/data/models/sprites/make-sprites.sh
branches/nexuiz-2.0/data/models/sprites/makespr32
Removed:
branches/nexuiz-2.0/data/models/sprites/bluebase.tga
branches/nexuiz-2.0/data/models/sprites/danger.tga
branches/nexuiz-2.0/data/models/sprites/flagcarrier.tga
branches/nexuiz-2.0/data/models/sprites/helpme.tga
branches/nexuiz-2.0/data/models/sprites/here.tga
branches/nexuiz-2.0/data/models/sprites/key-dropped.tga
branches/nexuiz-2.0/data/models/sprites/keycarrier-blue.tga
branches/nexuiz-2.0/data/models/sprites/keycarrier-finish.tga
branches/nexuiz-2.0/data/models/sprites/keycarrier-friend.tga
branches/nexuiz-2.0/data/models/sprites/keycarrier-pink.tga
branches/nexuiz-2.0/data/models/sprites/keycarrier-red.tga
branches/nexuiz-2.0/data/models/sprites/keycarrier-yellow.tga
branches/nexuiz-2.0/data/models/sprites/redbase.tga
branches/nexuiz-2.0/data/models/sprites/template.svg
branches/nexuiz-2.0/data/models/sprites/waypoint.tga
Modified:
branches/nexuiz-2.0/data/default.cfg
branches/nexuiz-2.0/data/models/sprites/bluebase.sp2
branches/nexuiz-2.0/data/models/sprites/danger.sp2
branches/nexuiz-2.0/data/models/sprites/flagcarrier.sp2
branches/nexuiz-2.0/data/models/sprites/helpme.sp2
branches/nexuiz-2.0/data/models/sprites/here.sp2
branches/nexuiz-2.0/data/models/sprites/key-dropped.sp2
branches/nexuiz-2.0/data/models/sprites/keycarrier-blue.sp2
branches/nexuiz-2.0/data/models/sprites/keycarrier-finish.sp2
branches/nexuiz-2.0/data/models/sprites/keycarrier-friend.sp2
branches/nexuiz-2.0/data/models/sprites/keycarrier-pink.sp2
branches/nexuiz-2.0/data/models/sprites/keycarrier-red.sp2
branches/nexuiz-2.0/data/models/sprites/keycarrier-yellow.sp2
branches/nexuiz-2.0/data/models/sprites/redbase.sp2
branches/nexuiz-2.0/data/models/sprites/waypoint.sp2
Log:
sprite updates merge
Modified: branches/nexuiz-2.0/data/default.cfg
===================================================================
--- branches/nexuiz-2.0/data/default.cfg 2007-09-04 21:02:55 UTC (rev 2803)
+++ branches/nexuiz-2.0/data/default.cfg 2007-09-04 21:03:27 UTC (rev 2804)
@@ -776,3 +776,5 @@
alias ban "sv_cmd ban $*" // usage: ban address(maybe incomplete, like 1.2.3) bantime(seconds)
alias kickban "sv_cmd kickban $*" // usage: kickban # playerno bantime(seconds) masksize(bytes)
alias unban "sv_cmd unban $*" // usage: unban 3 (number from bans)
+
+r_labelsprites_scale 0.40625 // labels sprites get displayed at 0.5x from 640x480 to 1280x1024, and at 1x from 1600x1200 onwards
Modified: branches/nexuiz-2.0/data/models/sprites/bluebase.sp2
===================================================================
(Binary files differ)
Deleted: branches/nexuiz-2.0/data/models/sprites/bluebase.tga
===================================================================
(Binary files differ)
Modified: branches/nexuiz-2.0/data/models/sprites/danger.sp2
===================================================================
(Binary files differ)
Deleted: branches/nexuiz-2.0/data/models/sprites/danger.tga
===================================================================
(Binary files differ)
Modified: branches/nexuiz-2.0/data/models/sprites/flagcarrier.sp2
===================================================================
(Binary files differ)
Deleted: branches/nexuiz-2.0/data/models/sprites/flagcarrier.tga
===================================================================
(Binary files differ)
Modified: branches/nexuiz-2.0/data/models/sprites/helpme.sp2
===================================================================
(Binary files differ)
Deleted: branches/nexuiz-2.0/data/models/sprites/helpme.tga
===================================================================
(Binary files differ)
Modified: branches/nexuiz-2.0/data/models/sprites/here.sp2
===================================================================
(Binary files differ)
Deleted: branches/nexuiz-2.0/data/models/sprites/here.tga
===================================================================
(Binary files differ)
Modified: branches/nexuiz-2.0/data/models/sprites/key-dropped.sp2
===================================================================
(Binary files differ)
Deleted: branches/nexuiz-2.0/data/models/sprites/key-dropped.tga
===================================================================
(Binary files differ)
Modified: branches/nexuiz-2.0/data/models/sprites/keycarrier-blue.sp2
===================================================================
(Binary files differ)
Deleted: branches/nexuiz-2.0/data/models/sprites/keycarrier-blue.tga
===================================================================
(Binary files differ)
Modified: branches/nexuiz-2.0/data/models/sprites/keycarrier-finish.sp2
===================================================================
(Binary files differ)
Deleted: branches/nexuiz-2.0/data/models/sprites/keycarrier-finish.tga
===================================================================
(Binary files differ)
Modified: branches/nexuiz-2.0/data/models/sprites/keycarrier-friend.sp2
===================================================================
(Binary files differ)
Deleted: branches/nexuiz-2.0/data/models/sprites/keycarrier-friend.tga
===================================================================
(Binary files differ)
Modified: branches/nexuiz-2.0/data/models/sprites/keycarrier-pink.sp2
===================================================================
(Binary files differ)
Deleted: branches/nexuiz-2.0/data/models/sprites/keycarrier-pink.tga
===================================================================
(Binary files differ)
Modified: branches/nexuiz-2.0/data/models/sprites/keycarrier-red.sp2
===================================================================
(Binary files differ)
Deleted: branches/nexuiz-2.0/data/models/sprites/keycarrier-red.tga
===================================================================
(Binary files differ)
Modified: branches/nexuiz-2.0/data/models/sprites/keycarrier-yellow.sp2
===================================================================
(Binary files differ)
Deleted: branches/nexuiz-2.0/data/models/sprites/keycarrier-yellow.tga
===================================================================
(Binary files differ)
Copied: branches/nexuiz-2.0/data/models/sprites/make-sprites.sh (from rev 2802, trunk/data/models/sprites/make-sprites.sh)
===================================================================
--- branches/nexuiz-2.0/data/models/sprites/make-sprites.sh (rev 0)
+++ branches/nexuiz-2.0/data/models/sprites/make-sprites.sh 2007-09-04 21:03:27 UTC (rev 2804)
@@ -0,0 +1,127 @@
+width=256
+height=64
+
+sprwidth=256
+sprheight=64
+
+sprite()
+{
+ name=$1
+ color=$2
+ bgcolor=$3
+ text=$4
+ svgwidth=512
+ svgheight=128
+
+ cat <<EOF >$name.svg
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="512"
+ height="128"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.45"
+ version="1.0"
+ inkscape:export-filename="bluebase.tga"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="template.svg"
+ sodipodi:docbase="/home/rpolzer/software/games/nexuiz/data/models/sprites"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ sodipodi:modified="true">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#$bgcolor"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.98994949"
+ inkscape:cx="375"
+ inkscape:cy="75.53288"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ width="512px"
+ height="128px"
+ showgrid="true"
+ gridspacingx="8px"
+ gridspacingy="8px"
+ gridempspacing="8"
+ inkscape:grid-points="true"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="849"
+ inkscape:window-height="590"
+ inkscape:window-x="198"
+ inkscape:window-y="66" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <path
+ style="opacity:1;fill:#$color;fill-opacity:1;stroke:#$bgcolor;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.75294119"
+ d="M 256,126 L 280,102 L 264,102 L 264,62 L 248,62 L 248,102 L 232,102 L 256,126 z "
+ id="path1872"
+ sodipodi:nodetypes="cccccccc" />
+ <text
+ xml:space="preserve"
+ style="font-size:56px;font-weight:bold;text-align:center;text-anchor:middle;opacity:1;fill:#$color;fill-opacity:1;stroke:#$bgcolor;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.75294118"
+ x="255.49414"
+ y="49.957031"
+ id="text1874"><tspan
+ sodipodi:role="line"
+ id="tspan1876"
+ x="255.49414"
+ y="49.957031">$text</tspan></text>
+ </g>
+</svg>
+EOF
+ enlargex=$(($sprwidth - $width))
+ enlargey=$(($sprheight - $height))
+
+
+
+ inkscape -z -w $sprwidth -h $sprheight \
+ -a "$((-$enlargex * $svgwidth / $width / 2)):0:$(($svgwidth + $enlargex * $svgwidth / $width / 2)):$(($svgheight + $enlargey * $svgheight / $height))" \
+ -e "$name.png" "$name.svg"
+ ./makespr32 -o "$name.sp2" -proj 5 "$name.png" $(($sprwidth / 2)) $(($sprheight - 1)) 0
+}
+
+sprite bluebase 0000ff 000000 "BLUE BASE"
+sprite danger ff0000 ffff00 "DANGER"
+sprite flagcarrier ffff00 000000 "FLAG CARRIER"
+sprite helpme ffff00 ff0000 "HELP ME"
+sprite here 00ff00 000000 "HERE"
+sprite key-dropped 00ffff 000000 "DROPPED KEY"
+sprite keycarrier-blue 0000ff 000000 "KEY CARRIER"
+sprite keycarrier-finish 00ffff 000000 "RUN HERE"
+sprite keycarrier-friend 00ff00 000000 "KEY CARRIER"
+sprite keycarrier-pink ff00ff 000000 "KEY CARRIER"
+sprite keycarrier-red ff0000 000000 "KEY CARRIER"
+sprite keycarrier-yellow ffff00 000000 "KEY CARRIER"
+sprite redbase ff0000 000000 "RED BASE"
+sprite waypoint 008080 000000 "WAYPOINT"
Copied: branches/nexuiz-2.0/data/models/sprites/makespr32 (from rev 2802, trunk/data/models/sprites/makespr32)
===================================================================
--- branches/nexuiz-2.0/data/models/sprites/makespr32 (rev 0)
+++ branches/nexuiz-2.0/data/models/sprites/makespr32 2007-09-04 21:03:27 UTC (rev 2804)
@@ -0,0 +1,247 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+use Image::Magick;
+
+# SPR32 file format:
+#
+# dsprite_s =
+# int ident = "IDSP"
+# int version = 32
+# int type = {projection type enum}
+# float boundingradius
+# int width = width of largest frame
+# int height = height of largest frame
+# int numframes
+# float beamlength
+# int synctype = {ST_SYNC=0, ST_RAND=1}
+#
+# Shared Setup:
+# for 1..numframes:
+# int type = {SPR_SINGLE=0, SPR_GROUP=1}
+# if type == SPR_GROUP:
+# int numframes_thisgroup
+# for 1..numframes_thisgroup:
+# float interval
+# for 1..numframes_thisgroup:
+# dspriteframe_s =
+# int origin_x
+# int origin_y
+# int width
+# int height
+# width*height*4 bytes of image data, RGBA
+
+my $magick = Image::Magick->new();
+
+sub checkmagick($)
+{
+ my ($e) = @_;
+ die $e if $e;
+ return $e;
+}
+
+sub writesprite($$)
+{
+ my ($spritestruct, $filename) = @_;
+ open my $fh, '>', $filename;
+ binmode $fh;
+ syswrite $fh, "IDSP";
+ syswrite $fh, pack 'V', 32;
+ syswrite $fh, pack 'V', $spritestruct->{type};
+
+ my $radius_x = abs(abs($spritestruct->{x0}) > abs($spritestruct->{x1}) ? $spritestruct->{x0} : $spritestruct->{x1});
+ my $radius_y = abs(abs($spritestruct->{y0}) > abs($spritestruct->{y1}) ? $spritestruct->{y0} : $spritestruct->{y1});
+
+ syswrite $fh, pack 'f', sqrt($radius_x * $radius_x + $radius_y * $radius_y);
+ syswrite $fh, pack 'V', $spritestruct->{x1} - $spritestruct->{x0};
+ syswrite $fh, pack 'V', $spritestruct->{y1} - $spritestruct->{y0};
+ syswrite $fh, pack 'V', scalar @{$spritestruct->{groups}};
+ syswrite $fh, pack 'f', $spritestruct->{beamlength};
+ syswrite $fh, pack 'V', $spritestruct->{synctype};
+
+ for my $g(@{$spritestruct->{groups}})
+ {
+ my $f = $g->{frames};
+ if(@$f == 1)
+ {
+ # no group
+ syswrite $fh, pack 'V', 0;
+ }
+ else
+ {
+ # group
+ syswrite $fh, pack 'V', 1;
+ syswrite $fh, pack 'V', scalar @$f;
+ syswrite $fh, pack 'f', $_->{interval} for @$f;
+ }
+ for(@$f)
+ {
+ syswrite $fh, pack 'V', -$_->{orgx};
+ syswrite $fh, pack 'V', $_->{orgy};
+ syswrite $fh, pack 'V', $_->{width};
+ syswrite $fh, pack 'V', $_->{height};
+ syswrite $fh, $_->{data};
+ }
+ }
+}
+
+sub spritestruct($$$)
+{
+ my ($type, $beamlength, $synctype) = @_;
+ return {
+ type => $type,
+ beamlength => $beamlength,
+ synctype => $synctype,
+ x0 => 0,
+ y0 => 0,
+ x1 => 0,
+ y1 => 0,
+ groups => [
+ # {
+ # frames => [
+ # {
+ # width => ...,
+ # height => ...,
+ # orgx => ...,
+ # orgy => ...,
+ # data => ...,
+ # interval => ...,
+ # },
+ # ]
+ # },
+ ],
+ };
+}
+
+sub spriteframe($$$$$)
+{
+ my ($spritestruct, $imagefile, $orgx, $orgy, $interval) = @_;
+ checkmagick $magick->Read($imagefile);
+ my ($width, $height) = $magick->Get('columns', 'rows');
+ my $data = $magick->ImageToBlob(depth => 8, magick => 'RGBA');
+ die "Size mismatch"
+ if length $data != 4 * $width * $height;
+ my $g = ($spritestruct->{groups}->[-1]);
+ push @{$g->{frames}}, my $s = {};
+ $s->{width} = $width;
+ $s->{orgx} = $orgx;
+ $s->{orgy} = $orgy;
+ $s->{width} = $width;
+ $s->{height} = $height;
+ $s->{data} = $data;
+ $s->{interval} = $interval;
+
+ my $x0 = 0 - $orgx;
+ my $y0 = 0 - $orgy;
+ my $x1 = $width - $orgx;
+ my $y1 = $height - $orgy;
+
+ $spritestruct->{x0} = $x0 if $width > $spritestruct->{x0};
+ $spritestruct->{y0} = $y0 if $width > $spritestruct->{y0};
+ $spritestruct->{x1} = $x1 if $width > $spritestruct->{x1};
+ $spritestruct->{y1} = $y1 if $width > $spritestruct->{y1};
+}
+
+sub spritegroup($)
+{
+ my ($spritestruct) = @_;
+ push @{$spritestruct->{groups}}, my $g = {};
+}
+
+sub usage()
+{
+ die <<EOF;
+Usage: $0
+ -o outfile.spr
+ [-proj projectiontype]
+ [-beam beamlength]
+ [-rand]
+ [-group]
+ -sprite filename.tga orgx orgy interval
+ [-sprite filename.tga orgx orgy interval [...]]
+ [-group
+ -sprite filename.tga orgx orgy interval
+ [-sprite filename.tga orgx orgy interval [...]] [...]]
+EOF
+}
+
+my $proj = 2; # SPR_VP_PARALLEL
+my $beam = 0;
+my $synctype = 0;
+my $outfile = undef;
+
+for(;;)
+{
+ usage()
+ unless @ARGV;
+ my $s = shift @ARGV;
+ if($s eq '-proj')
+ {
+ $proj = shift @ARGV;
+ }
+ elsif($s eq '-beam')
+ {
+ $beam = shift @ARGV;
+ }
+ elsif($s eq '-rand')
+ {
+ $synctype = 1;
+ }
+ elsif($s eq '-o')
+ {
+ $outfile = shift @ARGV;
+ }
+ elsif($s eq '-group')
+ {
+ last;
+ }
+ elsif($s eq '-sprite')
+ {
+ unshift @ARGV, $s;
+ last;
+ }
+ else
+ {
+ unshift @ARGV, $s;
+ unshift @ARGV, '-sprite';
+ last;
+ }
+}
+
+usage() unless defined $outfile;
+
+my $spritestruct = spritestruct($proj, $beam, $synctype);
+print "created sprite with projection $proj, beam length $beam, sync type $synctype\n";
+
+spritegroup($spritestruct);
+print " created sprite group\n";
+
+for(;;)
+{
+ last
+ unless @ARGV;
+ my $s = shift @ARGV;
+ if($s eq '-sprite')
+ {
+ my ($filename, $orgx, $orgy, $interval) = splice @ARGV, 0, 4;
+ usage() if not defined $interval;
+ spriteframe($spritestruct, $filename, $orgx, $orgy, $interval);
+ print " created sprite frame $filename, origin at $orgx|$orgy, interval $interval\n";
+ }
+ elsif($s eq '-group')
+ {
+ spritegroup($spritestruct);
+ print " created sprite group\n";
+ }
+ else
+ {
+ my ($orgx, $orgy, $interval) = splice @ARGV, 0, 3;
+ usage() if not defined $interval;
+ spriteframe($spritestruct, $s, $orgx, $orgy, $interval);
+ print " created sprite frame $s, origin at $orgx|$orgy, interval $interval\n";
+ }
+}
+
+writesprite($spritestruct, $outfile);
+print "written to $outfile\n";
Modified: branches/nexuiz-2.0/data/models/sprites/redbase.sp2
===================================================================
(Binary files differ)
Deleted: branches/nexuiz-2.0/data/models/sprites/redbase.tga
===================================================================
(Binary files differ)
Deleted: branches/nexuiz-2.0/data/models/sprites/template.svg
===================================================================
--- branches/nexuiz-2.0/data/models/sprites/template.svg 2007-09-04 21:02:55 UTC (rev 2803)
+++ branches/nexuiz-2.0/data/models/sprites/template.svg 2007-09-04 21:03:27 UTC (rev 2804)
@@ -1,83 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://web.resource.org/cc/"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- width="512"
- height="128"
- id="svg2"
- sodipodi:version="0.32"
- inkscape:version="0.44"
- version="1.0"
- inkscape:export-filename="bluebase.tga"
- inkscape:export-xdpi="90"
- inkscape:export-ydpi="90"
- sodipodi:docname="template.svg"
- sodipodi:docbase="/home/rpolzer/software/games/nexuiz/data/models/sprites">
- <defs
- id="defs4" />
- <sodipodi:namedview
- id="base"
- pagecolor="black"
- bordercolor="#666666"
- borderopacity="1.0"
- gridtolerance="10000"
- guidetolerance="10"
- objecttolerance="10"
- inkscape:pageopacity="0"
- inkscape:pageshadow="2"
- inkscape:zoom="0.98994949"
- inkscape:cx="375"
- inkscape:cy="75.53288"
- inkscape:document-units="px"
- inkscape:current-layer="layer1"
- width="512px"
- height="128px"
- showgrid="true"
- gridspacingx="8px"
- gridspacingy="8px"
- gridempspacing="8"
- inkscape:grid-points="true"
- showguides="true"
- inkscape:guide-bbox="true"
- inkscape:window-width="849"
- inkscape:window-height="579"
- inkscape:window-x="198"
- inkscape:window-y="66" />
- <metadata
- id="metadata7">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <g
- inkscape:label="Layer 1"
- inkscape:groupmode="layer"
- id="layer1">
- <path
- style="opacity:1;fill:blue;fill-opacity:1;stroke:black;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.75294119"
- d="M 256,126 L 280,102 L 264,102 L 264,62 L 248,62 L 248,102 L 232,102 L 256,126 z "
- id="path1872"
- sodipodi:nodetypes="cccccccc" />
- <text
- xml:space="preserve"
- style="font-size:56px;font-weight:bold;text-align:center;text-anchor:middle;opacity:1;fill:blue;fill-opacity:1;stroke:black;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.75294119"
- x="253.97656"
- y="49.957031"
- id="text1874"><tspan
- sodipodi:role="line"
- id="tspan1876"
- x="253.97656"
- y="49.957031">BLUE BASE</tspan></text>
- </g>
-</svg>
Modified: branches/nexuiz-2.0/data/models/sprites/waypoint.sp2
===================================================================
(Binary files differ)
Deleted: branches/nexuiz-2.0/data/models/sprites/waypoint.tga
===================================================================
(Binary files differ)
More information about the nexuiz-commits
mailing list