- Removed debug_mode from the engine state

- Turned all SCIkwarn and SCIkdebug functions to ScummVM's debugC function
- Placed some debug code in appropriate defines: DEBUG_PARSER, DEBUG_AVOIDPATH and DEBUG_SOUND
- Removed the "debuglog" command and the "script_checkloads_flag" and "sci_debug_flags" variables

svn-id: r41033
This commit is contained in:
Filippos Karapetis 2009-05-30 15:40:49 +00:00
parent 69582f0179
commit 3490819a66
23 changed files with 288 additions and 503 deletions

View file

@ -93,20 +93,27 @@ reg_t kSaid(EngineState *s, int funct_nr, int argc, reg_t *argv) {
return NULL_REG;
}
if (s->debug_mode & (1 << SCIkPARSER_NR)) {
SCIkdebug(SCIkPARSER, "Said block:", 0);
#ifdef DEBUG_PARSER
debugC(2, kDebugLevelParser, "Said block:", 0);
vocab_decypher_said_block(s, said_block);
}
#endif
if (s->parser_event.isNull() || (GET_SEL32V(s->parser_event, claimed))) {
return NULL_REG;
}
new_lastmatch = said(s, said_block, (s->debug_mode & (1 << SCIkPARSER_NR)));
new_lastmatch = said(s, said_block,
#ifdef DEBUG_PARSER
1
#else
0
#endif
);
if (new_lastmatch != SAID_NO_MATCH) { /* Build and possibly display a parse tree */
if (s->debug_mode & (1 << SCIkPARSER_NR))
sciprintf("Match.\n");
#ifdef DEBUG_PARSER
sciprintf("Match.\n");
#endif
s->r_acc = make_reg(0, 1);
@ -150,7 +157,7 @@ reg_t kSetSynonyms(EngineState *s, int funct_nr, int argc, reg_t *argv) {
synonyms = s->seg_manager->getScript(seg)->getSynonyms();
if (synonyms) {
SCIkdebug(SCIkPARSER, "Setting %d synonyms for script.%d\n",
debugC(2, kDebugLevelParser, "Setting %d synonyms for script.%d\n",
synonyms_nr, script);
if (synonyms_nr > 16384) {
@ -173,7 +180,7 @@ reg_t kSetSynonyms(EngineState *s, int funct_nr, int argc, reg_t *argv) {
node = lookup_node(s, node->succ);
}
SCIkdebug(SCIkPARSER, "A total of %d synonyms are active now.\n", s->_synonyms.size());
debugC(2, kDebugLevelParser, "A total of %d synonyms are active now.\n", s->_synonyms.size());
return s->r_acc;
}
@ -207,12 +214,12 @@ reg_t kParse(EngineState *s, int funct_nr, int argc, reg_t *argv) {
s->r_acc = make_reg(0, 1);
if (s->debug_mode & (1 << SCIkPARSER_NR)) {
SCIkdebug(SCIkPARSER, "Parsed to the following blocks:\n", 0);
#ifdef DEBUG_PARSER
debugC(2, kDebugLevelParser, "Parsed to the following blocks:\n", 0);
for (ResultWordList::const_iterator i = words.begin(); i != words.end(); ++i)
SCIkdebug(SCIkPARSER, " Type[%04x] Group[%04x]\n", i->_class, i->_group);
}
debugC(2, kDebugLevelParser, " Type[%04x] Group[%04x]\n", i->_class, i->_group);
#endif
if (vocab_build_parse_tree(s->parser_nodes, words, s->_parserBranches[0],
s->parser_rules))
@ -226,13 +233,15 @@ reg_t kParse(EngineState *s, int funct_nr, int argc, reg_t *argv) {
invoke_selector(INV_SEL(s->game_obj, syntaxFail, 0), 2, s->parser_base, stringpos);
/* Issue warning */
SCIkdebug(SCIkPARSER, "Tree building failed\n");
debugC(2, kDebugLevelParser, "Tree building failed\n");
} else {
s->parser_valid = 1;
PUT_SEL32V(event, claimed, 0);
if (s->debug_mode & (1 << SCIkPARSER_NR))
vocab_dump_parse_tree("Parse-tree", s->parser_nodes);
#ifdef DEBUG_PARSER
vocab_dump_parse_tree("Parse-tree", s->parser_nodes);
#endif
}
} else {
@ -242,7 +251,7 @@ reg_t kParse(EngineState *s, int funct_nr, int argc, reg_t *argv) {
if (error) {
char *pbase_str = kernel_dereference_char_pointer(s, s->parser_base, 0);
strcpy(pbase_str, error);
SCIkdebug(SCIkPARSER, "Word unknown: %s\n", error);
debugC(2, kDebugLevelParser, "Word unknown: %s\n", error);
/* Issue warning: */
invoke_selector(INV_SEL(s->game_obj, wordFail, 0), 2, s->parser_base, stringpos);
@ -440,7 +449,7 @@ reg_t kFormat(EngineState *s, int funct_nr, int argc, reg_t *argv) {
source = kernel_lookup_text(s, position, index);
SCIkdebug(SCIkSTRINGS, "Formatting \"%s\"\n", source);
debugC(2, kDebugLevelStrings, "Formatting \"%s\"\n", source);
arguments = (int*)malloc(sizeof(int) * argc);