[Scummvm-cvs-logs] SF.net SVN: scummvm:[38618] scummvm/trunk/engines/sci/engine

aquadran at users.sourceforge.net aquadran at users.sourceforge.net
Fri Feb 20 21:17:58 CET 2009


Revision: 38618
          http://scummvm.svn.sourceforge.net/scummvm/?rev=38618&view=rev
Author:   aquadran
Date:     2009-02-20 20:17:57 +0000 (Fri, 20 Feb 2009)

Log Message:
-----------
formating

Modified Paths:
--------------
    scummvm/trunk/engines/sci/engine/said.cpp
    scummvm/trunk/engines/sci/engine/said.y

Modified: scummvm/trunk/engines/sci/engine/said.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/said.cpp	2009-02-20 20:11:12 UTC (rev 38617)
+++ scummvm/trunk/engines/sci/engine/said.cpp	2009-02-20 20:17:57 UTC (rev 38618)
@@ -1811,14 +1811,9 @@
 #line 251 "../../full-svn/scummvm/trunk/engines/sci/engine/said.y"
 
 
+int parse_yy_token_lookup[] = {YY_COMMA, YY_AMP, YY_SLASH, YY_PARENO, YY_PARENC, YY_BRACKETSO, YY_BRACKETSC, YY_HASH, YY_LT, YY_GT};
 
-int
-parse_yy_token_lookup[] = {YY_COMMA, YY_AMP, YY_SLASH, YY_PARENO, YY_PARENC, YY_BRACKETSO, YY_BRACKETSC,
-                           YY_HASH, YY_LT, YY_GT
-                          };
-
-static int
-yylex(void) {
+static int yylex(void) {
 	int retval = said_tokens[said_token++];
 
 	if (retval < SAID_LONG(SAID_FIRST)) {
@@ -1849,10 +1844,9 @@
 	return retval;
 }
 
-#define SAID_NEXT_NODE ((said_tree_pos == 0) || (said_tree_pos >= VOCAB_TREE_NODES))? said_tree_pos = 0 : said_tree_pos++
+#define SAID_NEXT_NODE ((said_tree_pos == 0) || (said_tree_pos >= VOCAB_TREE_NODES)) ? said_tree_pos = 0 : said_tree_pos++
 
-static inline int
-said_leaf_node(tree_t pos, int value) {
+static inline int said_leaf_node(tree_t pos, int value) {
 	said_tree[pos].type = PARSE_TREE_NODE_LEAF;
 
 	if (value != VALUE_IGNORE)
@@ -1861,8 +1855,7 @@
 	return pos;
 }
 
-static inline int
-said_branch_node(tree_t pos, int left, int right) {
+static inline int said_branch_node(tree_t pos, int left, int right) {
 	said_tree[pos].type = PARSE_TREE_NODE_BRANCH;
 
 	if (left != VALUE_IGNORE)
@@ -1874,47 +1867,27 @@
 	return pos;
 }
 
-
-static tree_t
-said_paren(tree_t t1, tree_t t2) {
+static tree_t said_paren(tree_t t1, tree_t t2) {
 	if (t1)
-		return said_branch_node(SAID_NEXT_NODE,
-		                        t1,
-		                        t2
-		                       );
+		return said_branch_node(SAID_NEXT_NODE, t1, t2);
 	else
 		return t2;
 }
 
-static tree_t
-said_value(int val, tree_t t) {
-	return said_branch_node(SAID_NEXT_NODE,
-	                        said_leaf_node(SAID_NEXT_NODE, val),
-	                        t
-	                       );
-
+static tree_t said_value(int val, tree_t t) {
+	return said_branch_node(SAID_NEXT_NODE, said_leaf_node(SAID_NEXT_NODE, val), t);
+			  
 }
 
-static tree_t
-said_terminal(int val) {
+static tree_t said_terminal(int val) {
 	return said_leaf_node(SAID_NEXT_NODE, val);
 }
 
-
-static tree_t
-said_aug_branch(int n1, int n2, tree_t t1, tree_t t2) {
+static tree_t said_aug_branch(int n1, int n2, tree_t t1, tree_t t2) {
 	int retval;
 
-	retval = said_branch_node(SAID_NEXT_NODE,
-	                          said_branch_node(SAID_NEXT_NODE,
-	                                           said_leaf_node(SAID_NEXT_NODE, n1),
-	                                           said_branch_node(SAID_NEXT_NODE,
-	                                                            said_leaf_node(SAID_NEXT_NODE, n2),
-	                                                            t1
-	                                                           )
-	                                          ),
-	                          t2
-	                         );
+	retval = said_branch_node(SAID_NEXT_NODE, said_branch_node(SAID_NEXT_NODE, said_leaf_node(SAID_NEXT_NODE, n1),
+				said_branch_node(SAID_NEXT_NODE, said_leaf_node(SAID_NEXT_NODE, n2), t1)), t2);
 
 #ifdef SAID_DEBUG
 	fprintf(stderr, "AUG(0x%x, 0x%x, [%04x], [%04x]) = [%04x]\n", n1, n2, t1, t2, retval);
@@ -1923,8 +1896,7 @@
 	return retval;
 }
 
-static tree_t
-said_attach_branch(tree_t base, tree_t attacheant) {
+static tree_t said_attach_branch(tree_t base, tree_t attacheant) {
 #ifdef SAID_DEBUG
 	fprintf(stderr, "ATT2([%04x], [%04x]) = [%04x]\n", base, attacheant, base);
 #endif
@@ -1935,31 +1907,28 @@
 		return attacheant;
 
 	if (!base)
-		return 0; /* Happens if we're out of space */
+		return 0; // Happens if we're out of space
 
 	said_branch_node(base, VALUE_IGNORE, attacheant);
 
 	return base;
 }
 
-static said_spec_t
-said_top_branch(tree_t first) {
+static said_spec_t said_top_branch(tree_t first) {
 #ifdef SAID_DEBUG
 	fprintf(stderr, "TOP([%04x])\n", first);
 #endif
 	said_branch_node(0, 1, 2);
-	said_leaf_node(1, 0x141); /* Magic number #1 */
+	said_leaf_node(1, 0x141); // Magic number #1
 	said_branch_node(2, 3, first);
-	said_leaf_node(3, 0x13f); /* Magic number #2 */
+	said_leaf_node(3, 0x13f); // Magic number #2
 
 	++said_blessed;
 
 	return 0;
 }
 
-
-int
-said_parse_spec(state_t *s, byte *spec) {
+int said_parse_spec(state_t *s, byte *spec) {
 	int nextitem;
 
 	said_parse_error = NULL;
@@ -2008,29 +1977,25 @@
 /**** Augmentation ****/
 /**********************/
 
+// primitive functions
 
-/** primitive functions **/
-
 #define AUG_READ_BRANCH(a, br, p) \
-  if (tree[p].type != PARSE_TREE_NODE_BRANCH) \
-    return 0; \
-  a = tree[p].content.branches[br];
+	if (tree[p].type != PARSE_TREE_NODE_BRANCH) \
+		return 0; \
+	a = tree[p].content.branches[br];
 
 #define AUG_READ_VALUE(a, p) \
-  if (tree[p].type != PARSE_TREE_NODE_LEAF) \
-    return 0; \
-  a = tree[p].content.value;
+	if (tree[p].type != PARSE_TREE_NODE_LEAF) \
+		return 0; \
+	a = tree[p].content.value;
 
 #define AUG_ASSERT(i) \
-  if (!i) return 0;
+	if (!i) return 0;
 
-static int
-aug_get_next_sibling(parse_tree_node_t *tree, int pos, int *first, int *second)
-/* Returns the next sibling relative to the specified position in 'tree',
-** sets *first and *second to its augment node values, returns the new position
-** or 0 if there was no next sibling
-*/
-{
+static int aug_get_next_sibling(parse_tree_node_t *tree, int pos, int *first, int *second) {
+	// Returns the next sibling relative to the specified position in 'tree',
+	// sets *first and *second to its augment node values, returns the new position
+	// or 0 if there was no next sibling
 	int seek, valpos;
 
 	AUG_READ_BRANCH(pos, 1, pos);
@@ -2038,12 +2003,12 @@
 	AUG_READ_BRANCH(seek, 0, pos);
 	AUG_ASSERT(seek);
 
-	/* Now retrieve first value */
+	// Now retreive first value
 	AUG_READ_BRANCH(valpos, 0, seek);
 	AUG_ASSERT(valpos);
 	AUG_READ_VALUE(*first, valpos);
 
-	/* Get second value */
+	// Get second value
 	AUG_READ_BRANCH(seek, 1, seek);
 	AUG_ASSERT(seek);
 	AUG_READ_BRANCH(valpos, 0, seek);
@@ -2053,13 +2018,9 @@
 	return pos;
 }
 
-
-static int
-aug_get_wgroup(parse_tree_node_t *tree, int pos)
-/* Returns 0 if pos in tree is not the root of a 3-element list, otherwise
-** it returns the last element (which, in practice, is the word group
-*/
-{
+static int aug_get_wgroup(parse_tree_node_t *tree, int pos) {
+	// Returns 0 if pos in tree is not the root of a 3-element list, otherwise
+	// it returns the last element (which, in practice, is the word group
 	int val;
 
 	AUG_READ_BRANCH(pos, 0, pos);
@@ -2073,25 +2034,19 @@
 	return val;
 }
 
-
-static int
-aug_get_base_node(parse_tree_node_t *tree) {
+static int aug_get_base_node(parse_tree_node_t *tree) {
 	int startpos = 0;
 	AUG_READ_BRANCH(startpos, 1, startpos);
+
 	return startpos;
 }
 
+// semi-primitive functions
 
-/** semi-primitive functions **/
-
-
-static int
-aug_get_first_child(parse_tree_node_t *tree, int pos, int *first, int *second)
-/* like aug_get_next_sibling, except that it recurses into the tree and
-** finds the first child (usually *not* Ayanami Rei) of the current branch
-** rather than its next sibling.
-*/
-{
+static int aug_get_first_child(parse_tree_node_t *tree, int pos, int *first, int *second) {
+	// like aug_get_next_sibling, except that it recurses into the tree and
+	// finds the first child (usually *not* Ayanami Rei) of the current branch
+	// rather than its next sibling.
 	AUG_READ_BRANCH(pos, 0, pos);
 	AUG_ASSERT(pos);
 	AUG_READ_BRANCH(pos, 1, pos);
@@ -2100,62 +2055,53 @@
 	return aug_get_next_sibling(tree, pos, first, second);
 }
 
-static void
-aug_find_words_recursively(parse_tree_node_t *tree, int startpos,
-                           int *base_words, int *base_words_nr,
-                           int *ref_words, int *ref_words_nr,
-                           int maxwords, int refbranch)
-/* Finds and lists all base (141) and reference (144) words */
-{
+static void aug_find_words_recursively(parse_tree_node_t *tree, int startpos, int *base_words, int *base_words_nr,
+			   int *ref_words, int *ref_words_nr, int maxwords, int refbranch) {
+	// Finds and lists all base (141) and reference (144) words */
 	int major, minor;
 	int word;
 	int pos = aug_get_first_child(tree, startpos, &major, &minor);
 
-	/*	if (major == WORD_TYPE_REF)
-		refbranch = 1;*/
+	//if (major == WORD_TYPE_REF)
+	//	refbranch = 1;
 
 	while (pos) {
-		if ((word = aug_get_wgroup(tree, pos))) { /* found a word */
-
-			if (!refbranch && major == WORD_TYPE_BASE) {
+		if ((word = aug_get_wgroup(tree, pos))) { // found a word
+			if (!refbranch && major == WORD_TYPE_BASE) {	
 				if ((*base_words_nr) == maxwords) {
 					sciprintf("Out of regular words\n");
-					return; /* return gracefully */
+					return; // return gracefully
 				}
 
-				base_words[*base_words_nr] = word; /* register word */
+				base_words[*base_words_nr] = word; // register word
 				++(*base_words_nr);
 
 			}
 			if (major == WORD_TYPE_REF || refbranch) {
 				if ((*ref_words_nr) == maxwords) {
 					sciprintf("Out of reference words\n");
-					return; /* return gracefully */
+					return; // return gracefully
 				}
 
-				ref_words[*ref_words_nr] = word; /* register word */
+				ref_words[*ref_words_nr] = word; // register word
 				++(*ref_words_nr);
 
 			}
 			if (major != WORD_TYPE_SYNTACTIC_SUGAR && major != WORD_TYPE_BASE && major != WORD_TYPE_REF)
 				sciprintf("aug_find_words_recursively(): Unknown word type %03x\n", major);
+    
+		} else // Did NOT find a word group: Attempt to recurse
+			aug_find_words_recursively(tree, pos, base_words, base_words_nr, 
+						   ref_words, ref_words_nr, maxwords, refbranch || major == WORD_TYPE_REF);
 
-		} else /* Did NOT find a word group: Attempt to recurse */
-			aug_find_words_recursively(tree, pos, base_words, base_words_nr,
-			                           ref_words, ref_words_nr, maxwords, refbranch || major == WORD_TYPE_REF);
-
 		pos = aug_get_next_sibling(tree, pos, &major, &minor);
 	}
 }
 
 
-static void
-aug_find_words(parse_tree_node_t *tree, int startpos,
-               int *base_words, int *base_words_nr,
-               int *ref_words, int *ref_words_nr,
-               int maxwords)
-/* initializing wrapper for aug_find_words_recursively() */
-{
+static void aug_find_words(parse_tree_node_t *tree, int startpos, int *base_words, int *base_words_nr,
+				int *ref_words, int *ref_words_nr, int maxwords) {
+	// initializing wrapper for aug_find_words_recursively()
 	*base_words_nr = 0;
 	*ref_words_nr = 0;
 
@@ -2163,9 +2109,9 @@
 }
 
 
-static inline int
-aug_contains_word(int *list, int length, int word) {
+static inline int aug_contains_word(int *list, int length, int word) {
 	int i;
+
 	if (word == ANYWORD)
 		return (length);
 
@@ -2177,19 +2123,13 @@
 }
 
 
-static int
-augment_sentence_expression(parse_tree_node_t *saidt, int augment_pos,
-                            parse_tree_node_t *parset, int parse_branch,
-                            int major, int minor,
-                            int *base_words, int base_words_nr,
-                            int *ref_words, int ref_words_nr);
+static int augment_sentence_expression(parse_tree_node_t *saidt, int augment_pos, parse_tree_node_t *parset,
+					int parse_branch, int major, int minor, int *base_words, int base_words_nr,
+					int *ref_words, int ref_words_nr);
 
-static int
-augment_match_expression_p(parse_tree_node_t *saidt, int augment_pos,
-                           parse_tree_node_t *parset, int parse_basepos,
-                           int major, int minor,
-                           int *base_words, int base_words_nr,
-                           int *ref_words, int ref_words_nr) {
+static int augment_match_expression_p(parse_tree_node_t *saidt, int augment_pos, parse_tree_node_t *parset,
+					int parse_basepos, int major, int minor,
+			   int *base_words, int base_words_nr, int *ref_words, int ref_words_nr) {
 	int cmajor, cminor, cpos;
 	cpos = aug_get_first_child(saidt, augment_pos, &cmajor, &cminor);
 	if (!cpos) {
@@ -2200,13 +2140,9 @@
 	scidprintf("Attempting to match (%03x %03x (%03x %03x\n", major, minor, cmajor, cminor);
 
 	if ((major == WORD_TYPE_BASE) && (minor == AUGMENT_SENTENCE_MINOR_RECURSE))
-		return augment_match_expression_p(saidt, cpos,
-		                                  parset, parse_basepos,
-		                                  cmajor, cminor,
-		                                  base_words, base_words_nr,
-		                                  ref_words, ref_words_nr);
+		return augment_match_expression_p(saidt, cpos, parset, parse_basepos, cmajor, cminor,
+						  base_words, base_words_nr, ref_words, ref_words_nr);
 
-
 	switch (major) {
 
 	case WORD_TYPE_BASE:
@@ -2218,22 +2154,17 @@
 				if (aug_contains_word(base_words, base_words_nr, word))
 					return 1;
 			} else if (cminor == AUGMENT_SENTENCE_MINOR_MATCH_PHRASE) {
-				if (augment_sentence_expression(saidt, cpos,
-				                                parset, parse_basepos,
-				                                cmajor, cminor,
-				                                base_words, base_words_nr,
-				                                ref_words, ref_words_nr))
+				if (augment_sentence_expression(saidt, cpos, parset, parse_basepos, cmajor, cminor,
+								base_words, base_words_nr, ref_words, ref_words_nr))
 					return 1;
 			} else if (cminor == AUGMENT_SENTENCE_MINOR_PARENTHESES) {
 				int gc_major, gc_minor;
 				int gchild = aug_get_first_child(saidt, cpos, &gc_major, &gc_minor);
 
 				while (gchild) {
-					if (augment_match_expression_p(saidt, cpos,
-					                               parset, parse_basepos,
-					                               major, minor,
-					                               base_words, base_words_nr,
-					                               ref_words, ref_words_nr))
+					if (augment_match_expression_p(saidt, cpos, parset, parse_basepos, major,
+									minor, base_words, base_words_nr,
+								       ref_words, ref_words_nr))
 						return 1;
 					gchild = aug_get_next_sibling(saidt, gchild, &gc_major, &gc_minor);
 				}
@@ -2254,22 +2185,17 @@
 				if (aug_contains_word(ref_words, ref_words_nr, word))
 					return 1;
 			} else if (cminor == AUGMENT_SENTENCE_MINOR_MATCH_PHRASE) {
-				if (augment_match_expression_p(saidt, cpos,
-				                               parset, parse_basepos,
-				                               cmajor, cminor,
-				                               base_words, base_words_nr,
-				                               ref_words, ref_words_nr))
+				if (augment_match_expression_p(saidt, cpos, parset, parse_basepos, cmajor, cminor,
+							       base_words, base_words_nr, ref_words, ref_words_nr))
 					return 1;
 			} else if (cminor == AUGMENT_SENTENCE_MINOR_PARENTHESES) {
 				int gc_major, gc_minor;
 				int gchild = aug_get_first_child(saidt, cpos, &gc_major, &gc_minor);
 
 				while (gchild) {
-					if (augment_match_expression_p(saidt, cpos,
-					                               parset, parse_basepos,
-					                               major, minor,
-					                               base_words, base_words_nr,
-					                               ref_words, ref_words_nr))
+					if (augment_match_expression_p(saidt, cpos, parset, parse_basepos, major,
+									minor, base_words, base_words_nr,
+									ref_words, ref_words_nr))
 						return 1;
 					gchild = aug_get_next_sibling(saidt, gchild, &gc_major, &gc_minor);
 				}
@@ -2282,11 +2208,8 @@
 		break;
 
 	case AUGMENT_SENTENCE_PART_BRACKETS:
-		if (augment_match_expression_p(saidt, cpos,
-		                               parset, parse_basepos,
-		                               cmajor, cminor,
-		                               base_words, base_words_nr,
-		                               ref_words, ref_words_nr))
+		if (augment_match_expression_p(saidt, cpos, parset, parse_basepos, cmajor, cminor,
+					       base_words, base_words_nr, ref_words, ref_words_nr))
 			return 1;
 
 		scidprintf("Didn't match subexpression; checking sub-bracked predicate %03x\n", cmajor);
@@ -2314,32 +2237,25 @@
 	}
 
 	scidprintf("Generic failure\n");
+
 	return 0;
 }
 
-static int
-augment_sentence_expression(parse_tree_node_t *saidt, int augment_pos,
-                            parse_tree_node_t *parset, int parse_branch,
-                            int major, int minor,
-                            int *base_words, int base_words_nr,
-                            int *ref_words, int ref_words_nr) {
+static int augment_sentence_expression(parse_tree_node_t *saidt, int augment_pos, parse_tree_node_t *parset,
+					int parse_branch, int major, int minor, int *base_words, int base_words_nr,
+					int *ref_words, int ref_words_nr) {
 	int check_major, check_minor;
 	int check_pos = aug_get_first_child(saidt, augment_pos, &check_major, &check_minor);
 	do {
-		if (!(augment_match_expression_p(saidt, check_pos, parset, parse_branch,
-		                                 check_major, check_minor, base_words, base_words_nr,
-		                                 ref_words, ref_words_nr)))
+		if (!(augment_match_expression_p(saidt, check_pos, parset, parse_branch, check_major, check_minor,
+						base_words, base_words_nr, ref_words, ref_words_nr)))
 			return 0;
 	} while ((check_pos = aug_get_next_sibling(saidt, check_pos, &check_major, &check_minor)));
+
 	return 1;
 }
 
-
-
-static int
-augment_sentence_part(parse_tree_node_t *saidt, int augment_pos,
-                      parse_tree_node_t *parset, int parse_basepos,
-                      int major, int minor) {
+static int augment_sentence_part(parse_tree_node_t *saidt, int augment_pos, parse_tree_node_t *parset, int parse_basepos, int major, int minor) {
 	int pmajor, pminor;
 	int parse_branch = parse_basepos;
 	int optional = 0;
@@ -2347,9 +2263,8 @@
 
 	scidprintf("Augmenting (%03x %03x\n", major, minor);
 
-	if (major == AUGMENT_SENTENCE_PART_BRACKETS) { /* '[/ foo]' is true if '/foo' or if there
-						       ** exists no x for which '/x' is true
-						       */
+	if (major == AUGMENT_SENTENCE_PART_BRACKETS) { // '[/ foo]' is true if '/foo' or if there
+						       // exists no x for which '/x' is true
 		if ((augment_pos = aug_get_first_child(saidt, augment_pos, &major, &minor))) {
 			scidprintf("Optional part: Now augmenting (%03x %03x\n", major, minor);
 			optional = 1;
@@ -2359,14 +2274,13 @@
 		}
 	}
 
-	if ((major < 0x141)
-	        || (major > 0x143)) {
+	if ((major < 0x141) || (major > 0x143)) {
 		scidprintf("augment_sentence_part(): Unexpected sentence part major number %03x\n", major);
 		return 0;
 	}
 
-	while ((parse_branch = aug_get_next_sibling(parset, parse_branch, &pmajor, &pminor)))
-		if (pmajor == major) { /* found matching sentence part */
+	while ((parse_branch = aug_get_next_sibling(parset, parse_branch, &pmajor, &pminor))) {
+		if (pmajor == major) { // found matching sentence part
 			int success;
 			int base_words_nr;
 			int ref_words_nr;
@@ -2377,8 +2291,7 @@
 #endif
 
 			scidprintf("Found match with pminor = %03x\n", pminor);
-			aug_find_words(parset, parse_branch, base_words, &base_words_nr,
-			               ref_words, &ref_words_nr, AUGMENT_MAX_WORDS);
+			aug_find_words(parset, parse_branch, base_words, &base_words_nr, ref_words, &ref_words_nr, AUGMENT_MAX_WORDS);
 			foundwords |= (ref_words_nr | base_words_nr);
 #ifdef SCI_DEBUG_PARSE_TREE_AUGMENTATION
 			sciprintf("%d base words:", base_words_nr);
@@ -2390,27 +2303,26 @@
 			sciprintf("\n");
 #endif
 
-			success = augment_sentence_expression(saidt, augment_pos,
-			                                      parset, parse_basepos, major, minor,
-			                                      base_words, base_words_nr,
-			                                      ref_words, ref_words_nr);
+			success = augment_sentence_expression(saidt, augment_pos, parset, parse_basepos, major, minor,
+							      base_words, base_words_nr, ref_words, ref_words_nr);
 
 			if (success) {
 				scidprintf("SUCCESS on augmenting (%03x %03x\n", major, minor);
 				return 1;
 			}
 		}
+	}
 
 	if (optional && (foundwords == 0)) {
 		scidprintf("Found no words and optional branch => SUCCESS on augmenting (%03x %03x\n", major, minor);
 		return 1;
 	}
 	scidprintf("FAILURE on augmenting (%03x %03x\n", major, minor);
+
 	return 0;
 }
 
-static int
-augment_parse_nodes(parse_tree_node_t *parset, parse_tree_node_t *saidt) {
+static int augment_parse_nodes(parse_tree_node_t *parset, parse_tree_node_t *saidt) {
 	int augment_basepos = 0;
 	int parse_basepos;
 	int major, minor;
@@ -2421,21 +2333,20 @@
 		sciprintf("augment_parse_nodes(): Parse tree is corrupt\n");
 		return 0;
 	}
-
+  
 	augment_basepos = aug_get_base_node(saidt);
 	if (!augment_basepos) {
 		sciprintf("augment_parse_nodes(): Said tree is corrupt\n");
 		return 0;
 	}
-	while ((augment_basepos = aug_get_next_sibling(saidt, augment_basepos, &major, &minor))) {
 
-		if ((major == 0x14b)
-		        && (minor == SAID_LONG(SAID_GT)))
-			dontclaim = 1; /* special case */
-		else /* normal sentence part */
+	while ((augment_basepos = aug_get_next_sibling(saidt, augment_basepos, &major, &minor))) {
+		if ((major == 0x14b) && (minor == SAID_LONG(SAID_GT)))
+			dontclaim = 1; // special case
+		else // normal sentence part
 			if (!(augment_sentence_part(saidt, augment_basepos, parset, parse_basepos, major, minor))) {
 				scidprintf("Returning failure\n");
-				return 0; /* fail */
+				return 0; // fail
 			}
 	}
 
@@ -2443,7 +2354,8 @@
 
 	if (dontclaim)
 		return SAID_PARTIAL_MATCH;
-	else return 1; /* full match */
+	else
+		return 1; // full match
 }
 
 
@@ -2451,14 +2363,12 @@
 /**** Main code ****/
 /*******************/
 
-int
-said(state_t *s, byte *spec, int verbose) {
+int said(state_t *s, byte *spec, int verbose) {
 	int retval;
 
 	parse_tree_node_t *parse_tree_ptr = s->parser_nodes;
 
 	if (s->parser_valid) {
-
 		if (said_parse_spec(s, spec)) {
 			sciprintf("Offending spec was: ");
 			vocab_decypher_said_block(s, spec);
@@ -2466,24 +2376,23 @@
 		}
 
 		if (verbose)
-			vocab_dump_parse_tree("Said-tree", said_tree); /* Nothing better to do yet */
+			vocab_dump_parse_tree("Said-tree", said_tree); // Nothing better to do yet
 		retval = augment_parse_nodes(parse_tree_ptr, &(said_tree[0]));
 
 		if (!retval)
 			return SAID_NO_MATCH;
 		else if (retval != SAID_PARTIAL_MATCH)
 			return SAID_FULL_MATCH;
-		else return SAID_PARTIAL_MATCH;
+		else
+			return SAID_PARTIAL_MATCH;
 	}
 
 	return SAID_NO_MATCH;
 }
 
 
-
 #ifdef SAID_DEBUG_PROGRAM
-int
-main(int argc, char *argv) {
+int main (int argc, char *argv) {
 	byte block[] = {0x01, 0x00, 0xf8, 0xf5, 0x02, 0x01, 0xf6, 0xf2, 0x02, 0x01, 0xf2, 0x01, 0x03, 0xff};
 	state_t s;
 	con_passthrough = 1;

Modified: scummvm/trunk/engines/sci/engine/said.y
===================================================================
--- scummvm/trunk/engines/sci/engine/said.y	2009-02-20 20:11:12 UTC (rev 38617)
+++ scummvm/trunk/engines/sci/engine/said.y	2009-02-20 20:17:57 UTC (rev 38618)
@@ -304,7 +304,7 @@
 				said_branch_node(SAID_NEXT_NODE, said_leaf_node(SAID_NEXT_NODE, n2), t1)), t2);
 
 #ifdef SAID_DEBUG
-	fprintf(stderr,"AUG(0x%x, 0x%x, [%04x], [%04x]) = [%04x]\n", n1, n2, t1, t2, retval);
+	fprintf(stderr, "AUG(0x%x, 0x%x, [%04x], [%04x]) = [%04x]\n", n1, n2, t1, t2, retval);
 #endif
 
 	return retval;
@@ -312,7 +312,7 @@
 
 static tree_t said_attach_branch(tree_t base, tree_t attacheant) {
 #ifdef SAID_DEBUG
-	fprintf(stderr,"ATT2([%04x], [%04x]) = [%04x]\n", base, attacheant, base);
+	fprintf(stderr, "ATT2([%04x], [%04x]) = [%04x]\n", base, attacheant, base);
 #endif
 
 	if (!attacheant)
@@ -514,7 +514,7 @@
 
 
 static void aug_find_words(parse_tree_node_t *tree, int startpos, int *base_words, int *base_words_nr,
-				int *ref_words, int *ref_words_nr, int maxwords)
+				int *ref_words, int *ref_words_nr, int maxwords) {
 	// initializing wrapper for aug_find_words_recursively()
 	*base_words_nr = 0;
 	*ref_words_nr = 0;


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