[Scummvm-cvs-logs] SF.net SVN: scummvm:[53650] scummvm/trunk/tools/sci

thebluegr at users.sourceforge.net thebluegr at users.sourceforge.net
Wed Oct 20 22:46:52 CEST 2010


Revision: 53650
          http://scummvm.svn.sourceforge.net/scummvm/?rev=53650&view=rev
Author:   thebluegr
Date:     2010-10-20 20:46:52 +0000 (Wed, 20 Oct 2010)

Log Message:
-----------
SCI tools: Removing the now obsolete sciunpack tool, after discussing with lskovlun. We got a more advanced functionality in ScummVM now

Removed Paths:
-------------
    scummvm/trunk/tools/sci/sciunpack.cpp
    scummvm/trunk/tools/sci/sciunpack.h

Deleted: scummvm/trunk/tools/sci/sciunpack.cpp
===================================================================
--- scummvm/trunk/tools/sci/sciunpack.cpp	2010-10-20 20:39:08 UTC (rev 53649)
+++ scummvm/trunk/tools/sci/sciunpack.cpp	2010-10-20 20:46:52 UTC (rev 53650)
@@ -1,473 +0,0 @@
-/* ScummVM - Graphic Adventure Engine
- *
- * ScummVM is the legal property of its developers, whose names
- * are too numerous to list here. Please refer to the COPYRIGHT
- * file distributed with this source distribution.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
-
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
-
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * $URL$
- * $Id$
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif /* HAVE_CONFIG_H */
-
-#include "sciunpack.h"
-
-#include <sciresource.h>
-#include <engine.h>
-#include <console.h>
-
-/* #define DRAW_GRAPHICS */
-
-#undef HAVE_OBSTACK_H
-
-#ifdef _MSC_VER
-#  include <direct.h>
-#  define extern __declspec(dllimport) extern
-#endif
-
-#ifdef HAVE_GETOPT_H
-#	ifndef WIN32
-#		include <getopt.h>
-#	else
-#		include <win32/getopt.h>
-#	endif
-#endif /* HAVE_GETOPT_H */
-
-#ifdef DRAW_GRAPHICS
-#  ifdef HAVE_LIBPNG
-#    include "graphics_png.h"
-#  endif /* HAVE_LIBPNG */
-#endif /* DRAW_GRAPHICS */
-
-#if defined (_MSC_VER) || defined (__BEOS__) || defined(__amigaos4__)
-/* [DJ] fchmod is not in Visual C++ RTL - and probably not needed,anyway */
-/* [RS] (see comment above, but read MS-DOS instead of Visual C++ RTL) */
-#  define fchmod(file,mode)
-#  define CREAT_OPTIONS O_BINARY
-#endif
-
-#ifndef CREAT_OPTIONS
-#  define CREAT_OPTIONS 0x640
-#endif
-
-
-#define ACT_UNPACK 0
-#define ACT_WORDS 1
-#define ACT_LIST 2
-#define ACT_SCRIPTDUMP 3
-#define ACT_VOCABDUMP 4
-
-#define ACT_DEFAULT ACT_UNPACK
-
-static int conversion = 0;
-static int list = 0;
-static int verbose = 0;
-static int with_header = 1;
-static int color_mode = 0;
-static int action = ACT_DEFAULT;
-static guint8 midimask = 0x01;  /* MT-32 */
-
-resource_mgr_t *resmgr;
-
-#ifdef WIN32
-#define fchmod(arg1, arg2)
-#endif
-
-void
-print_resource_filename(FILE* file, int type, int number) {
-	if (resmgr->sci_version < SCI_VERSION_1)
-		fprintf(file, "%s.%03d", sci_resource_types[type], number);
-	else
-		fprintf(file, "%d.%s", number, sci_resource_type_suffixes[type]);
-}
-
-void
-sprint_resource_filename(char* buf, int type, int number) {
-	if (resmgr->sci_version < SCI_VERSION_1)
-		sprintf(buf, "%s.%03d", sci_resource_types[type], number);
-	else
-		sprintf(buf, "%d.%s", number, sci_resource_type_suffixes[type]);
-}
-
-#ifdef HAVE_GETOPT_LONG
-static struct option options[] = {
-	{"conversion", no_argument, &conversion, 1},
-	{"version", no_argument, 0, 256},
-	{"verbose", no_argument, &verbose, 1},
-	{"help", no_argument, 0, 'h'},
-	{"output-file", required_argument, 0, 'o'},
-	{"unpack", no_argument, &action, ACT_UNPACK},
-	{"list", no_argument, &action, ACT_LIST},
-	{"words", no_argument, &action, ACT_WORDS},
-	{"vocab", no_argument, &action, ACT_VOCABDUMP},
-	{"objects", no_argument, &action, ACT_SCRIPTDUMP},
-	{"with-header", no_argument, &with_header, 1},
-	{"without-header", no_argument, &with_header, 0},
-	{"sort-alpha", no_argument, &vocab_sort, SORT_METHOD_ALPHA},
-	{"sort-group", no_argument, &vocab_sort, SORT_METHOD_GROUP},
-#ifdef DRAW_GRAPHICS
-	{"palette-dither", no_argument, &color_mode, SCI_COLOR_DITHER},
-	{"palette-interpolate", no_argument, &color_mode, SCI_COLOR_INTERPOLATE},
-	{"palette-dither256", no_argument, &color_mode, SCI_COLOR_DITHER256},
-#endif /* DRAW_GRAPHICS */
-	{"gamedir", required_argument, 0, 'd'},
-	{"midimask", required_argument, 0, 'M'},
-	{0, 0, 0, 0}
-};
-
-#endif /* HAVE_GETOPT_LONG */
-
-
-void unpack_resource(int stype, int snr, char *outfilename);
-
-
-int main(int argc, char** argv) {
-	int retval = 0;
-	int i;
-	int stype = -1;
-	int snr;
-	char *resourcenumber_string = 0;
-	char *outfilename = 0;
-	int optindex = 0;
-	int c;
-	char *gamedir = sci_getcwd();
-	int res_version = SCI_VERSION_AUTODETECT;
-
-#ifdef HAVE_GETOPT_LONG
-	while ((c = getopt_long(argc, argv, "WOVUvhLcr:o:d:M:", options, &optindex)) > -1) {
-#else /* !HAVE_GETOPT_LONG */
-	while ((c = getopt(argc, argv, "WOVUvhLcr:o:d:M:")) > -1) {
-#endif /* !HAVE_GETOPT_LONG */
-
-		switch (c) {
-		case 256:
-			printf("sciunpack ("PACKAGE") "VERSION"\n");
-			printf("This program is copyright (C) 1999, 2000, 2001 Christoph Reichenbach,\n"
-			       " Lars Skovlund, Magnus Reftel\n"
-			       "It comes WITHOUT WARRANTY of any kind.\n"
-			       "This is free software, released under the GNU General Public License.\n");
-			exit(0);
-
-		case 'h': {
-			char *gcc_3_0_can_kiss_my_ass =
-			    "Usage: sciunpack [options] [-U] <resource.number>\n"
-			    "       sciunpack [options] [-U] <resource> <number>\n"
-			    "Unpacks resource data\n"
-			    "If * is specified instead of <number>, \n"
-			    "all resources of given type will be unpacked.\n\n"
-			    "       sciunpack [options] -W\n"
-			    "Lists vocabulary words\n\n"
-			    "       sciunpack [options] -O\n"
-			    "Dumps the complete object hierarchy\n\n"
-			    "       sciunpack [options] -V\n"
-			    "Prints selector names, opcodes, kernel names, and classes\n\n"
-			    "\nAvalable operations:\n"
-			    " --unpack      -U       Decompress resource\n"
-			    " --list        -L       List all resources\n"
-			    " --words       -W       List all vocabulary words\n"
-			    " --objects     -O       Print all objects\n"
-			    " --vocab       -V       Lists the complete vocabulary\n"
-			    "\nAvailable options:\n"
-			    "General:\n"
-			    " --version              Prints the version number\n"
-			    " --verbose     -v       Enables additional output\n"
-			    " --help        -h       Displays this help message\n"
-			    " --midimask    -M       What 'play mask' to use.  Defaults to MT-32 (0x01)\n"
-
-			    "Listing words:\n"
-			    " --sort-alpha		sort in alphabetical order\n"
-			    " --sort-group		sort in group order\n"
-			    "Unpacking:\n"
-			    " --convert     -c       Converts selected resources\n"
-			    " --output-file -o       Selects output file\n"
-			    " --gamedir     -d       Read game resources from dir\n"
-			    " --with-header          Forces the SCI header to be written (default)\n"
-			    " --without-header       Prevents the two SCI header bytes from being written\n"
-#ifdef DRAW_GRAPHICS
-			    " --palette-dither       Forces colors in 16 color games to be dithered\n"
-			    " --palette-interpolate  Does color interpolation when drawing picture resources\n"
-			    " --palette-dither256    Does dithering in 256 colors\n"
-#endif /* DRAW_GRAPHICS */
-			    "\nAs a default, 'resource.number' is the output filename.\n"
-			    "If conversion is enabled, the following resources will be treated specially:\n"
-			    "  sound resources:   Will be converted to MIDI, stored in <number>.midi\n"
-			    "  script resources:  Will be dissected and  stored in <number>.script\n"
-#ifdef DRAW_GRAPHICS
-			    "  picture resources: Will be converted to PNG, stored in <number>.png\n"
-
-#endif /* DRAW_GRAPHICS */
-			    ;
-
-			printf(gcc_3_0_can_kiss_my_ass);
-			exit(0);
-		}
-
-		case 'v':
-			verbose = 1;
-			break;
-
-		case 'L':
-			action = ACT_LIST;
-			break;
-
-		case 'W':
-			action = ACT_WORDS;
-			break;
-
-		case 'V':
-			action = ACT_VOCABDUMP;
-			break;
-
-		case 'O':
-			action = ACT_SCRIPTDUMP;
-			break;
-
-		case 'o':
-			outfilename = optarg;
-			break;
-
-		case 'd':
-			if (gamedir) sci_free(gamedir);
-			gamedir = sci_strdup(optarg);
-			break;
-
-		case 'r':
-			res_version = atoi(optarg);
-			break;
-
-		case 'c':
-			conversion = 1;
-			break;
-
-		case 'M':
-			midimask = (guint8) strtol(optarg, NULL, 0);
-			break;
-
-		case 0: /* getopt_long already did this for us */
-		case '?':
-			/* getopt_long already printed an error message. */
-			break;
-
-		default:
-			return -1;
-		}
-	}
-
-	if (action == ACT_UNPACK) {
-		char *resstring = argv[optind];
-
-		if (optind == argc) {
-			fprintf(stderr, "Resource identifier required\n");
-			return 1;
-		}
-
-		if ((resourcenumber_string = (char *) strchr(resstring, '.'))) {
-			*resourcenumber_string++ = 0;
-		} else if (optind + 1 == argc) {
-			fprintf(stderr, "Resource number required\n");
-			return 1;
-		} else resourcenumber_string = argv[optind+1];
-
-		for (i = 0; i < 18; i++)
-			if ((strcmp(sci_resource_types[i], resstring) == 0)) stype = i;
-		if (stype == -1) {
-			printf("Could not find the resource type '%s'.\n", resstring);
-			return 1;
-		}
-	} /* ACT_UNPACK */
-
-	if (gamedir)
-		if (chdir(gamedir)) {
-			printf("Error changing to game directory '%s'\n", gamedir);
-			exit(1);
-		}
-
-	if (!(resmgr = scir_new_resource_manager(gamedir, res_version,
-	               0, 1024 * 128))) {
-		fprintf(stderr, "Could not find any resources; quitting.\n");
-		exit(1);
-	}
-
-	if (verbose) printf("Autodetect determined: %s\n",
-		                    sci_version_types[resmgr->sci_version]);
-
-
-	switch (action) {
-
-	case ACT_LIST: {
-		int i;
-
-		if (verbose) {
-			for (i = 0; i < resmgr->resources_nr; i++) {
-				printf("%i: ", i);
-				print_resource_filename(stdout,
-				                        resmgr->resources[i].type,
-				                        resmgr->resources[i].number);
-				printf("   has size %i\n", resmgr->resources[i].size);
-			}
-
-			fprintf(stderr, " Reading complete. Actual resource count is %i\n",
-			        resmgr->resources_nr);
-		} else {
-			for (i = 0; i < resmgr->resources_nr; i++) {
-				print_resource_filename(stdout,
-				                        resmgr->resources[i].type,
-				                        resmgr->resources[i].number);
-				printf("\n");
-			}
-		}
-		break;
-	}
-
-	case ACT_UNPACK: {
-
-		if (!strcmp(resourcenumber_string, "*")) {
-			int i;
-			for (i = 0; i < resmgr->resources_nr; i++)
-				if (resmgr->resources[i].type == stype)
-					unpack_resource(stype, resmgr->resources[i].number, NULL);
-		} else {
-			snr = atoi(resourcenumber_string);
-			unpack_resource(stype, snr, outfilename);
-		}
-		break;
-	}
-
-	case ACT_WORDS:
-		retval = vocab_print();
-		break;
-
-	case ACT_SCRIPTDUMP:
-		retval = script_dump();
-		break;
-
-	case ACT_VOCABDUMP:
-		retval = vocab_dump();
-		break;
-
-	default:
-		fprintf(stderr, "Invalid action %d- internal error!\n", action);
-		return 1;
-	}
-
-
-	scir_free_resource_manager(resmgr);
-	return retval;
-}
-
-
-void unpack_resource(int stype, int snr, char *outfilename) {
-	char fnamebuffer[12]; /* stores default file name */
-	resource_t *found;
-
-	if ((stype == sci_sound) && conversion && (resmgr->sci_version > SCI_VERSION_0)) {
-		fprintf(stderr, "MIDI conversion is only supported for SCI version 0\n");
-		conversion = 0;
-	}
-
-	if (!outfilename) {
-		outfilename = fnamebuffer;
-		if ((stype == sci_sound) && conversion) {
-#ifdef HAVE_OBSTACK_H
-			map_MIDI_instruments(resmgr);
-#endif
-			sprintf(outfilename, "%03d.midi", snr);
-		}
-#ifdef DRAW_GRAPHICS
-		else if ((stype == sci_pic) && conversion)
-			sprintf(outfilename, "%03d.png", snr);
-#endif /* DRAW_GRAPHICS */
-		else
-			sprint_resource_filename(outfilename, stype, snr);
-	}
-
-	if (verbose) {
-		printf("seeking ");
-		print_resource_filename(stdout, stype, snr);
-		printf("...\n");
-	}
-
-	if ((found = scir_find_resource(resmgr, stype, snr, 0))) {
-
-#ifdef DRAW_GRAPHICS
-		if ((stype == sci_pic) && conversion) {
-			int i;
-			picture_t pic = alloc_empty_picture(SCI_RESOLUTION_320X200, SCI_COLORDEPTH_8BPP);
-			draw_pic0(pic, 1, 0, found->data);
-			if ((i = write_pic_png(outfilename, pic->maps[0]))) {
-				fprintf(stderr, "Writing the png failed (%d)\n", i);
-			} else if (verbose) printf("Done.\n");
-			free_picture(pic);
-		} else
-#endif /* DRAW_GRAPHICS */
-			if ((stype == sci_script) && conversion) {
-				sprintf(outfilename, "%03d.script", snr);
-				open_console_file(outfilename);
-				script_dissect(resmgr, snr, NULL, 0);
-				close_console_file();
-			} else {
-
-				/* Visual C++ doesn't allow to specify O_BINARY with creat() */
-#ifdef _MSC_VER
-				int outf = open(outfilename, _O_CREAT | _O_BINARY | _O_RDWR);
-#else
-				int outf = creat(outfilename, CREAT_OPTIONS);
-#endif
-
-#ifdef HAVE_OBSTACK_H
-				if ((stype == sci_sound) && conversion) {
-					int midilength;
-					guint8 *outdata = makeMIDI0(found->data, &midilength, midimask);
-					if (!outdata) {
-						fprintf(stderr, "MIDI conversion failed. Aborting...\n");
-						return;
-					}
-					if (verbose) printf("MIDI conversion from %d bytes of sound resource"
-						                    " to a %d bytes MIDI file.\n",
-						                    found->size, midilength);
-					write(outf, outdata, midilength);
-					free(outdata);
-				} else {
-#endif /* HAVE_OBSTACK_H */
-					guint8 header = 0x80 | found->type;
-
-					if (with_header) {
-						write(outf, &header, 1);
-						header = 0x00;
-						write(outf, &header, 1);
-					}
-
-					write(outf,  found->data, found->size);
-#ifdef HAVE_OBSTACK_H
-				}
-#endif /* HAVE_OBSTACK_H */
-
-				fchmod(outf, 0644);
-				close(outf);
-				fchmod(outf, 0644);
-
-				if (verbose) printf("Done.\n");
-			}
-
-	} else printf("Resource not found.\n");
-}
-
-
-

Deleted: scummvm/trunk/tools/sci/sciunpack.h
===================================================================
--- scummvm/trunk/tools/sci/sciunpack.h	2010-10-20 20:39:08 UTC (rev 53649)
+++ scummvm/trunk/tools/sci/sciunpack.h	2010-10-20 20:46:52 UTC (rev 53650)
@@ -1,68 +0,0 @@
-/* ScummVM - Graphic Adventure Engine
- *
- * ScummVM is the legal property of its developers, whose names
- * are too numerous to list here. Please refer to the COPYRIGHT
- * file distributed with this source distribution.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
-
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
-
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * $URL$
- * $Id$
- *
- */
-
-#ifndef SCI_UNPACK_H_
-#define SCI_UNPACK_H_
-
-#include <sciresource.h>
-
-#define SORT_METHOD_ALPHA 0
-#define SORT_METHOD_GROUP 1
-
-#define DEFAULT_SORTING SORT_METHOD_ALPHA
-
-extern int vocab_sort; /* Sorting strategy for vocab */
-extern resource_mgr_t *resmgr;
-
-int
-vocab_print(void);
-/* Prints vocab data
-** Parameters: (void)
-** Returns   : (int) 0 on success, 1 on failure
-** Controlled by vocab_sort
-*/
-
-int
-script_dump(void);
-/* Prints all object information
-** Parameters: (void)
-** Returns   : (int) 0 on success, 1 on failure
-*/
-
-int
-vocab_dump(void);
-/* Prints full vocabulary information
-** Parameters: (void)
-** Returns   : (int) 0 on success, 1 on failure
-*/
-
-int
-print_classes(void);
-/* Prints full class information
-** Parameters: (void)
-** Returns   : (int) 0 on success, 1 otherwise
-*/
-
-#endif


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list