diff options
-rw-r--r-- | engines/sci/engine/klists.cpp | 4 | ||||
-rw-r--r-- | engines/sci/engine/kscripts.cpp | 2 | ||||
-rw-r--r-- | engines/sci/include/kdebug.h | 22 | ||||
-rw-r--r-- | engines/sci/include/kernel.h | 68 | ||||
-rw-r--r-- | engines/sci/include/resource.h | 11 | ||||
-rw-r--r-- | engines/sci/scicore/resource_patch.cpp | 14 | ||||
-rw-r--r-- | engines/sci/scicore/tools.cpp | 56 |
7 files changed, 42 insertions, 135 deletions
diff --git a/engines/sci/engine/klists.cpp b/engines/sci/engine/klists.cpp index 66216fe813..0e17b3a083 100644 --- a/engines/sci/engine/klists.cpp +++ b/engines/sci/engine/klists.cpp @@ -91,10 +91,6 @@ list_t *lookup_list(state_t *s, reg_t addr, const char *file, int line) { return _lookup_list(s, addr, file, line, 0); } -int listp(state_t *s, reg_t addr) { - return (s->seg_manager.heap[addr.segment]->type == MEM_OBJ_LISTS && ENTRY_IS_VALID(&(s->seg_manager.heap[addr.segment]->data.lists), addr.offset)); -} - #ifdef DISABLE_VALIDATIONS #define sane_nodep(a, b) 1 diff --git a/engines/sci/engine/kscripts.cpp b/engines/sci/engine/kscripts.cpp index eb00bb9573..560c9d6b8b 100644 --- a/engines/sci/engine/kscripts.cpp +++ b/engines/sci/engine/kscripts.cpp @@ -104,7 +104,7 @@ int invoke_selector(state_t *s, reg_t object, int selector_id, int noinvalid, in return 0; } -int is_object(state_t *s, reg_t object) { +bool is_object(state_t *s, reg_t object) { return obj_get(s, object) != NULL; } diff --git a/engines/sci/include/kdebug.h b/engines/sci/include/kdebug.h index 1fa839b573..68a9e51755 100644 --- a/engines/sci/include/kdebug.h +++ b/engines/sci/include/kdebug.h @@ -77,31 +77,15 @@ struct _state; -#ifdef __GNUC__XXX - -#define SCIkwarn(arguments...) _SCIGNUkdebug(__PRETTY_FUNCTION__, ## arguments) - -#else /* !__GNUC__ */ - -#define SCIkwarn _SCIkwarn - -#endif /* !__GNUC__ */ - /* Internal functions */ -void -_SCIkwarn(struct _state *s, const char *file, int line, int area, const char *format, ...); -void -_SCIkdebug(struct _state *s, const char *file, int line, int area, const char *format, ...); -void -_SCIGNUkdebug(const char *funcname, struct _state *s, const char *file, int line, int area, const char *format, ...); +void _SCIkdebug(struct _state *s, const char *file, int line, int area, const char *format, ...); +void _SCIGNUkdebug(const char *funcname, struct _state *s, const char *file, int line, int area, const char *format, ...); /* If mode=1, enables debugging for specified areas. If mode=0, disables ** debugging for specified areas. ** Valid area characters: ulgcmfbad */ - -void -set_debug_mode(struct _state *s, int mode, const char *areas); +void set_debug_mode(struct _state *s, int mode, const char *areas); extern int sci_debug_flags; diff --git a/engines/sci/include/kernel.h b/engines/sci/include/kernel.h index 071aee7b46..587582d9b7 100644 --- a/engines/sci/include/kernel.h +++ b/engines/sci/include/kernel.h @@ -83,21 +83,17 @@ typedef struct { */ -reg_t -read_selector(struct _state *s, reg_t object, selector_t selector_id, const char *fname, int line); -void -write_selector(struct _state *s, reg_t object, selector_t selector_id, reg_t value, +reg_t read_selector(struct _state *s, reg_t object, selector_t selector_id, const char *fname, int line); +void write_selector(struct _state *s, reg_t object, selector_t selector_id, reg_t value, const char *fname, int line); -int -invoke_selector(struct _state *s, reg_t object, int selector_id, int noinvalid, int kfunct, +int invoke_selector(struct _state *s, reg_t object, int selector_id, int noinvalid, int kfunct, stack_ptr_t k_argp, int k_argc, const char *fname, int line, int argc, ...); /******************** Text functionality ********************/ -char * -kernel_lookup_text(struct _state *s, reg_t address, int index); +char *kernel_lookup_text(struct _state *s, reg_t address, int index); /* Looks up text referenced by scripts ** Parameters: (state_t *s): The current state ** (reg_t) address: The address to look up @@ -133,16 +129,7 @@ kernel_lookup_text(struct _state *s, reg_t address, int index); #endif /* !SCI_KERNEL_DEBUG */ -int -listp(struct _state *s, reg_t address); -/* Determines whether the object at <address> is a list -** Parameters: (state_t *) s: The state to use -** (reg_t) address: The address to check -** Returns : (int) 0 if not, non-zero if it is a list. -*/ - -int -is_object(struct _state *s, reg_t obj); +bool is_object(struct _state *s, reg_t obj); /* Checks whether a heap address contains an object ** Parameters: (state_t *) s: The current state ** (reg_t) obj: The address to check @@ -150,15 +137,6 @@ is_object(struct _state *s, reg_t obj); */ -/* Functions for internal macro use */ -void -_SCIkvprintf(FILE *file, const char *format, va_list args); -void -_SCIkprintf(FILE *file, const char *format, ...) GCC_PRINTF(2, 3); - - - - /******************** Kernel function parameter macros ********************/ @@ -175,10 +153,8 @@ _SCIkprintf(FILE *file, const char *format, ...) GCC_PRINTF(2, 3); #define SKPV_OR_ALT(x,a) KP_SINT(KP_ALT(x, make_reg(0, a))) #define UKPV_OR_ALT(x,a) KP_UINT(KP_ALT(x, make_reg(0, a))) -reg_t * -kernel_dereference_reg_pointer(struct _state *s, reg_t pointer, int entries); -byte * -kernel_dereference_bulk_pointer(struct _state *s, reg_t pointer, int entries); +reg_t *kernel_dereference_reg_pointer(struct _state *s, reg_t pointer, int entries); +byte *kernel_dereference_bulk_pointer(struct _state *s, reg_t pointer, int entries); #define kernel_dereference_char_pointer(state, pointer, entries) (char*)kernel_dereference_bulk_pointer(state, pointer, entries) /* Dereferences a heap pointer ** Parameters: (state_t *) s: The state to operate on @@ -202,8 +178,7 @@ kernel_dereference_bulk_pointer(struct _state *s, reg_t pointer, int entries); -int -kernel_oops(struct _state *s, const char *file, int line, const char *reason); +int kernel_oops(struct _state *s, const char *file, int line, const char *reason); /* Halts script execution and informs the user about an internal kernel error or failed assertion ** Paramters: (state_t *) s: The state to use ** (const char *) file: The file the oops occured in @@ -220,16 +195,14 @@ struct _state; extern int sci01_priority_table_flags; /* 1: delete, 2: print */ -int -_find_priority_band(struct _state *s, int band); +int _find_priority_band(struct _state *s, int band); /* Finds the position of the priority band specified ** Parameters: (state_t *) s: State to search in ** (int) band: Band to look for ** Returns : (int) Offset at which the band starts */ -int -_find_view_priority(struct _state *s, int y); +int _find_view_priority(struct _state *s, int y); /* Does the opposite of _find_priority_band ** Parameters: (state_t *) s: State ** (int) y: Coordinate to check @@ -257,16 +230,14 @@ _find_view_priority(struct _state *s, int y); /******************** Dynamic view list functions ********************/ -abs_rect_t -set_base(struct _state *s, reg_t object); +abs_rect_t set_base(struct _state *s, reg_t object); /* Determines the base rectangle of the specified view object ** Parameters: (state_t *) s: The state to use ** (reg_t) object: The object to set ** Returns : (abs_rect) The absolute base rectangle */ -extern abs_rect_t - get_nsrect(struct _state *s, reg_t object, byte clip); +extern abs_rect_t get_nsrect(struct _state *s, reg_t object, byte clip); /* Determines the now-seen rectangle of a view object ** Parameters: (state_t *) s: The state to use ** (reg_t) object: The object to check @@ -276,11 +247,9 @@ extern abs_rect_t ** now-seen area. */ -void -_k_dyn_view_list_prepare_change(struct _state *s); +void _k_dyn_view_list_prepare_change(struct _state *s); /* Removes all views in anticipation of a new window or text */ -void -_k_dyn_view_list_accept_change(struct _state *s); +void _k_dyn_view_list_accept_change(struct _state *s); /* Redraws all views after a new window or text was added */ @@ -288,14 +257,12 @@ _k_dyn_view_list_accept_change(struct _state *s); /******************** Misc functions ********************/ -void -process_sound_events(struct _state *s); /* Get all sound events, apply their changes to the heap */ +void process_sound_events(struct _state *s); /* Get all sound events, apply their changes to the heap */ #define LOOKUP_NODE(addr) lookup_node(s, (addr), __FILE__, __LINE__) #define LOOKUP_LIST(addr) lookup_list(s, addr, __FILE__, __LINE__) -node_t * -lookup_node(struct _state *s, reg_t addr, const char *file, int line); +node_t *lookup_node(struct _state *s, reg_t addr, const char *file, int line); /* Resolves an address into a list node ** Parameters: (state_t *) s: The state to operate on ** (reg_t) addr: The address to resolve @@ -305,8 +272,7 @@ lookup_node(struct _state *s, reg_t addr, const char *file, int line); */ -list_t * -lookup_list(struct _state *s, reg_t addr, const char *file, int line); +list_t *lookup_list(struct _state *s, reg_t addr, const char *file, int line); /* Resolves a list pointer to a list ** Parameters: (state_t *) s: The state to operate on ** (reg_t) addr: The address to resolve diff --git a/engines/sci/include/resource.h b/engines/sci/include/resource.h index ebaa23f642..8db6ef9185 100644 --- a/engines/sci/include/resource.h +++ b/engines/sci/include/resource.h @@ -260,15 +260,10 @@ int is_print_str(char *str); # define sci_unlink unlink # define sci_rmdir rmdir -#ifndef HAVE_FFS -int sci_ffs(int _mask); -#else -#define sci_ffs ffs -#endif +/** Find first set bit in bits and return its index. Returns 0 if bits is 0. */ +int sci_ffs(int bits); - -void -sci_sched_yield(void); +void sci_sched_yield(void); /* Yields the running process/thread to the scheduler ** Parameters: (void) ** Returns : after a while. diff --git a/engines/sci/scicore/resource_patch.cpp b/engines/sci/scicore/resource_patch.cpp index 1ba016a9cd..c861bd9adc 100644 --- a/engines/sci/scicore/resource_patch.cpp +++ b/engines/sci/scicore/resource_patch.cpp @@ -104,11 +104,6 @@ static void process_patch(ResourceSource *source, int sci0_read_resource_patches(ResourceSource *source, resource_t **resource_p, int *resource_nr_p) { - // FIXME: Use only one specific dir, instead of SearchMan? - //chdir(source->location_dir_name.c_str()); - //sci_init_dir(&dir); - //entry = sci_find_first(&dir, "*.???"); - Common::ArchiveMemberList files; SearchMan.listMatchingMembers(files, "*.???"); @@ -119,7 +114,6 @@ int sci0_read_resource_patches(ResourceSource *source, resource_t **resource_p, int i; unsigned int resname_len; char *endptr; -printf("sci0_read_resource_patches: scanning '%s'\n", name.c_str()); for (i = sci_view; i < sci_invalid_resource; i++) if (scumm_strnicmp(sci_resource_types[i], name.c_str(), @@ -148,13 +142,7 @@ printf("sci0_read_resource_patches: scanning '%s'\n", name.c_str()); return 0; } -int -sci1_read_resource_patches(ResourceSource *source, resource_t **resource_p, int *resource_nr_p) { - // FIXME: Use only one specific dir, instead of SearchMan? - //chdir(source->location_dir_name.c_str()); - //sci_init_dir(&dir); - //entry = sci_find_first(&dir, "*.*"); - +int sci1_read_resource_patches(ResourceSource *source, resource_t **resource_p, int *resource_nr_p) { Common::ArchiveMemberList files; SearchMan.listMatchingMembers(files, "*.*"); diff --git a/engines/sci/scicore/tools.cpp b/engines/sci/scicore/tools.cpp index b7a2327d75..ae1c343336 100644 --- a/engines/sci/scicore/tools.cpp +++ b/engines/sci/scicore/tools.cpp @@ -96,7 +96,8 @@ int sci_debug_flags = 0; /* Special flags */ int sci_ffs(int _mask) { int retval = 0; - if (!_mask) return 0; + if (!_mask) + return 0; retval++; while (!(_mask & 1)) { retval++; @@ -109,45 +110,22 @@ int sci_ffs(int _mask) { /******************** Debug functions ********************/ -void -_SCIkvprintf(FILE *file, const char *format, va_list args) { - vfprintf(file, format, args); - if (con_file) vfprintf(con_file, format, args); -} -void -_SCIkprintf(FILE *file, const char *format, ...) { - va_list args; - - va_start(args, format); - _SCIkvprintf(file, format, args); - va_end(args); -} +/* Functions for internal macro use */ +void _SCIkvprintf(FILE *file, const char *format, va_list args); +void _SCIkprintf(FILE *file, const char *format, ...) GCC_PRINTF(2, 3); -void -_SCIkwarn(state_t *s, const char *file, int line, int area, const char *format, ...) { - va_list args; - - if (area == SCIkERROR_NR) - _SCIkprintf(stderr, "ERROR: "); - else - _SCIkprintf(stderr, "Warning: "); - - va_start(args, format); - _SCIkvprintf(stderr, format, args); - va_end(args); - fflush(NULL); - - if (sci_debug_flags & _DEBUG_FLAG_BREAK_ON_WARNINGS) script_debug_flag = 1; +void _SCIkvprintf(FILE *file, const char *format, va_list args) { + vfprintf(file, format, args); + if (con_file) vfprintf(con_file, format, args); } -void -_SCIkdebug(state_t *s, const char *file, int line, int area, const char *format, ...) { +void _SCIkdebug(state_t *s, const char *file, int line, int area, const char *format, ...) { va_list args; if (s->debug_mode & (1 << area)) { - _SCIkprintf(stdout, " kernel: (%s L%d): ", file, line); + fprintf(stdout, " kernel: (%s L%d): ", file, line); va_start(args, format); _SCIkvprintf(stdout, format, args); va_end(args); @@ -155,22 +133,22 @@ _SCIkdebug(state_t *s, const char *file, int line, int area, const char *format, } } -void -_SCIGNUkdebug(const char *funcname, state_t *s, const char *file, int line, int area, const char *format, ...) { +void _SCIGNUkdebug(const char *funcname, state_t *s, const char *file, int line, int area, const char *format, ...) { va_list xargs; int error = ((area == SCIkWARNING_NR) || (area == SCIkERROR_NR)); if (error || (s->debug_mode & (1 << area))) { /* Is debugging enabled for this area? */ - _SCIkprintf(stderr, "FSCI: "); + fprintf(stderr, "FSCI: "); if (area == SCIkERROR_NR) - _SCIkprintf(stderr, "ERROR in %s ", funcname); + fprintf(stderr, "ERROR in %s ", funcname); else if (area == SCIkWARNING_NR) - _SCIkprintf(stderr, "%s: Warning ", funcname); - else _SCIkprintf(stderr, funcname); + fprintf(stderr, "%s: Warning ", funcname); + else + fprintf(stderr, funcname); - _SCIkprintf(stderr, "(%s L%d): ", file, line); + fprintf(stderr, "(%s L%d): ", file, line); va_start(xargs, format); _SCIkvprintf(stderr, format, xargs); |