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