aboutsummaryrefslogtreecommitdiff
path: root/engines/sci
diff options
context:
space:
mode:
authorMax Horn2009-02-21 18:39:53 +0000
committerMax Horn2009-02-21 18:39:53 +0000
commit9f2c0dcc6f5c278fa06be8d0fdfaf69c27b40282 (patch)
treede775932246061d6548a790d9f2cb5bc6fd46dd9 /engines/sci
parent0d41ca8d38ce6c604a2a7c9c763b9bf92dd5a9c9 (diff)
downloadscummvm-rg350-9f2c0dcc6f5c278fa06be8d0fdfaf69c27b40282.tar.gz
scummvm-rg350-9f2c0dcc6f5c278fa06be8d0fdfaf69c27b40282.tar.bz2
scummvm-rg350-9f2c0dcc6f5c278fa06be8d0fdfaf69c27b40282.zip
SCI: Tons of cleanup
svn-id: r38721
Diffstat (limited to 'engines/sci')
-rw-r--r--engines/sci/engine/game.cpp2
-rw-r--r--engines/sci/engine/kernel.cpp3
-rw-r--r--engines/sci/engine/savegame.cfsml1
-rw-r--r--engines/sci/engine/savegame.cpp71
-rw-r--r--engines/sci/include/engine.h8
-rw-r--r--engines/sci/include/gfx_resmgr.h4
-rw-r--r--engines/sci/include/sciresource.h18
-rw-r--r--engines/sci/module.mk2
-rw-r--r--engines/sci/tools.cpp36
-rw-r--r--engines/sci/tools.h48
10 files changed, 55 insertions, 138 deletions
diff --git a/engines/sci/engine/game.cpp b/engines/sci/engine/game.cpp
index 768e307bd9..9be70390ce 100644
--- a/engines/sci/engine/game.cpp
+++ b/engines/sci/engine/game.cpp
@@ -634,7 +634,7 @@ int game_init(EngineState *s) {
s->debug_mode = 0x0; // Disable all debugging
s->onscreen_console = 0; // No onscreen console unless explicitly requested
- srand(time(NULL)); // Initialize random number generator
+ srand(g_system->getMillis()); // Initialize random number generator
// script_dissect(0, s->selector_names, s->selector_names_nr);
game_obj = script_lookup_export(s, 0, 0);
diff --git a/engines/sci/engine/kernel.cpp b/engines/sci/engine/kernel.cpp
index ef730824bd..54ff61dab7 100644
--- a/engines/sci/engine/kernel.cpp
+++ b/engines/sci/engine/kernel.cpp
@@ -29,6 +29,9 @@
# undef ARRAYSIZE
#endif
+
+#include <time.h> // FIXME: For struct tm
+
#include "common/system.h"
#include "sci/sci.h"
diff --git a/engines/sci/engine/savegame.cfsml b/engines/sci/engine/savegame.cfsml
index 6eb2385785..97083e5625 100644
--- a/engines/sci/engine/savegame.cfsml
+++ b/engines/sci/engine/savegame.cfsml
@@ -30,6 +30,7 @@
*/
#include <stdarg.h>
+#include <time.h> // FIXME: For struct tm
#include "sci/include/sci_memory.h"
#include "sci/include/gfx_operations.h"
#include "sci/include/sfx_engine.h"
diff --git a/engines/sci/engine/savegame.cpp b/engines/sci/engine/savegame.cpp
index cc7cc4ea63..bc77dfb9d9 100644
--- a/engines/sci/engine/savegame.cpp
+++ b/engines/sci/engine/savegame.cpp
@@ -30,6 +30,7 @@
*/
#include <stdarg.h>
+#include <time.h> // FIXME: For struct tm
#include "sci/include/sci_memory.h"
#include "sci/include/gfx_operations.h"
#include "sci/include/sfx_engine.h"
@@ -3991,7 +3992,7 @@ _cfsml_read_script_t(Common::SeekableReadStream *fh, script_t* save_struc, const
// Auto-generated CFSML declaration and function block ends here
// Auto-generation performed by cfsml.pl 0.8.2
-#line 446 "engines/sci/engine/savegame.cfsml"
+#line 447 "engines/sci/engine/savegame.cfsml"
void write_songlib_t(Common::WriteStream *fh, songlib_t *songlib) {
song_t *seeker = *(songlib->lib);
@@ -4008,7 +4009,7 @@ void write_songlib_t(Common::WriteStream *fh, songlib_t *songlib) {
_cfsml_write_song_t(fh, seeker);
WSprintf(fh, "\n");
// End of auto-generated CFSML data writer code
-#line 458 "engines/sci/engine/savegame.cfsml"
+#line 459 "engines/sci/engine/savegame.cfsml"
seeker = seeker->next;
}
WSprintf(fh, "]\n");
@@ -4054,7 +4055,7 @@ int read_songlib_t(Common::SeekableReadStream *fh, songlib_t *songlib, const cha
}
}
// End of auto-generated CFSML data reader code
-#line 482 "engines/sci/engine/savegame.cfsml"
+#line 483 "engines/sci/engine/savegame.cfsml"
song_lib_add(*songlib, newsong);
}
l = fh->readLine(); // "]"
@@ -4095,7 +4096,7 @@ void write_int_hash_map_tp(Common::WriteStream *fh, int_hash_map_t **foo) {
_cfsml_write_int_hash_map_t(fh, *foo);
WSprintf(fh, "\n");
// End of auto-generated CFSML data writer code
-#line 518 "engines/sci/engine/savegame.cfsml"
+#line 519 "engines/sci/engine/savegame.cfsml"
}
void write_song_tp(Common::WriteStream *fh, song_t **foo) {
@@ -4104,7 +4105,7 @@ void write_song_tp(Common::WriteStream *fh, song_t **foo) {
_cfsml_write_song_t(fh, *foo);
WSprintf(fh, "\n");
// End of auto-generated CFSML data writer code
-#line 522 "engines/sci/engine/savegame.cfsml"
+#line 523 "engines/sci/engine/savegame.cfsml"
}
song_iterator_t *build_iterator(EngineState *s, int song_nr, int type, songit_id_t id);
@@ -4136,7 +4137,7 @@ int read_song_tp(Common::SeekableReadStream *fh, song_t **foo, const char *lastv
}
}
// End of auto-generated CFSML data reader code
-#line 532 "engines/sci/engine/savegame.cfsml"
+#line 533 "engines/sci/engine/savegame.cfsml"
(*foo)->delay = 0;
(*foo)->it = NULL;
(*foo)->next_playing = (*foo)->next_stopping = (*foo)->next = NULL;
@@ -4167,7 +4168,7 @@ int read_int_hash_map_tp(Common::SeekableReadStream *fh, int_hash_map_t **foo, c
}
}
// End of auto-generated CFSML data reader code
-#line 541 "engines/sci/engine/savegame.cfsml"
+#line 542 "engines/sci/engine/savegame.cfsml"
(*foo)->holes = NULL;
return 0;
}
@@ -4183,7 +4184,7 @@ void write_int_hash_map_node_tp(Common::WriteStream *fh, int_hash_map_t::node_t
write_int_hash_map_node_tp(fh, &((*foo)->next));
WSprintf(fh, "\n");
// End of auto-generated CFSML data writer code
-#line 552 "engines/sci/engine/savegame.cfsml"
+#line 553 "engines/sci/engine/savegame.cfsml"
} else
WSprintf(fh, "L");
WSprintf(fh, "]");
@@ -4233,7 +4234,7 @@ void write_menubar_tp(Common::WriteStream *fh, menubar_t **foo) {
_cfsml_write_menubar_t(fh, (*foo));
WSprintf(fh, "\n");
// End of auto-generated CFSML data writer code
-#line 597 "engines/sci/engine/savegame.cfsml"
+#line 598 "engines/sci/engine/savegame.cfsml"
} else { // Nothing to write
WSprintf(fh, "\\null\\");
}
@@ -4267,7 +4268,7 @@ int read_menubar_tp(Common::SeekableReadStream *fh, menubar_t **foo, const char
}
}
// End of auto-generated CFSML data reader code
-#line 609 "engines/sci/engine/savegame.cfsml"
+#line 610 "engines/sci/engine/savegame.cfsml"
}
return *hiteof;
}
@@ -4279,7 +4280,7 @@ void write_mem_obj_t(Common::WriteStream *fh, mem_obj_t *foo) {
_cfsml_write_int(fh, &foo->segmgr_id);
WSprintf(fh, "\n");
// End of auto-generated CFSML data writer code
-#line 616 "engines/sci/engine/savegame.cfsml"
+#line 617 "engines/sci/engine/savegame.cfsml"
switch (foo->type) {
case MEM_OBJ_SCRIPT:
#line 814 "engines/sci/engine/savegame.cfsml"
@@ -4287,7 +4288,7 @@ void write_mem_obj_t(Common::WriteStream *fh, mem_obj_t *foo) {
_cfsml_write_script_t(fh, &foo->data.script);
WSprintf(fh, "\n");
// End of auto-generated CFSML data writer code
-#line 619 "engines/sci/engine/savegame.cfsml"
+#line 620 "engines/sci/engine/savegame.cfsml"
break;
case MEM_OBJ_CLONES:
#line 814 "engines/sci/engine/savegame.cfsml"
@@ -4295,7 +4296,7 @@ void write_mem_obj_t(Common::WriteStream *fh, mem_obj_t *foo) {
_cfsml_write_clone_table_t(fh, &foo->data.clones);
WSprintf(fh, "\n");
// End of auto-generated CFSML data writer code
-#line 622 "engines/sci/engine/savegame.cfsml"
+#line 623 "engines/sci/engine/savegame.cfsml"
break;
case MEM_OBJ_LOCALS:
#line 814 "engines/sci/engine/savegame.cfsml"
@@ -4303,7 +4304,7 @@ void write_mem_obj_t(Common::WriteStream *fh, mem_obj_t *foo) {
_cfsml_write_local_variables_t(fh, &foo->data.locals);
WSprintf(fh, "\n");
// End of auto-generated CFSML data writer code
-#line 625 "engines/sci/engine/savegame.cfsml"
+#line 626 "engines/sci/engine/savegame.cfsml"
break;
case MEM_OBJ_SYS_STRINGS:
#line 814 "engines/sci/engine/savegame.cfsml"
@@ -4311,7 +4312,7 @@ void write_mem_obj_t(Common::WriteStream *fh, mem_obj_t *foo) {
_cfsml_write_sys_strings_t(fh, &foo->data.sys_strings);
WSprintf(fh, "\n");
// End of auto-generated CFSML data writer code
-#line 628 "engines/sci/engine/savegame.cfsml"
+#line 629 "engines/sci/engine/savegame.cfsml"
break;
case MEM_OBJ_STACK:
#line 814 "engines/sci/engine/savegame.cfsml"
@@ -4319,7 +4320,7 @@ void write_mem_obj_t(Common::WriteStream *fh, mem_obj_t *foo) {
_cfsml_write_int(fh, &foo->data.stack.nr);
WSprintf(fh, "\n");
// End of auto-generated CFSML data writer code
-#line 631 "engines/sci/engine/savegame.cfsml"
+#line 632 "engines/sci/engine/savegame.cfsml"
break;
case MEM_OBJ_HUNK:
break;
@@ -4329,7 +4330,7 @@ void write_mem_obj_t(Common::WriteStream *fh, mem_obj_t *foo) {
_cfsml_write_list_table_t(fh, &foo->data.lists);
WSprintf(fh, "\n");
// End of auto-generated CFSML data writer code
-#line 636 "engines/sci/engine/savegame.cfsml"
+#line 637 "engines/sci/engine/savegame.cfsml"
break;
case MEM_OBJ_NODES:
#line 814 "engines/sci/engine/savegame.cfsml"
@@ -4337,7 +4338,7 @@ void write_mem_obj_t(Common::WriteStream *fh, mem_obj_t *foo) {
_cfsml_write_node_table_t(fh, &foo->data.nodes);
WSprintf(fh, "\n");
// End of auto-generated CFSML data writer code
-#line 639 "engines/sci/engine/savegame.cfsml"
+#line 640 "engines/sci/engine/savegame.cfsml"
break;
case MEM_OBJ_DYNMEM:
#line 814 "engines/sci/engine/savegame.cfsml"
@@ -4345,7 +4346,7 @@ void write_mem_obj_t(Common::WriteStream *fh, mem_obj_t *foo) {
_cfsml_write_dynmem_t(fh, &foo->data.dynmem);
WSprintf(fh, "\n");
// End of auto-generated CFSML data writer code
-#line 642 "engines/sci/engine/savegame.cfsml"
+#line 643 "engines/sci/engine/savegame.cfsml"
break;
}
}
@@ -4380,7 +4381,7 @@ int read_mem_obj_t(Common::SeekableReadStream *fh, mem_obj_t *foo, const char *l
}
}
// End of auto-generated CFSML data reader code
-#line 654 "engines/sci/engine/savegame.cfsml"
+#line 655 "engines/sci/engine/savegame.cfsml"
switch (foo->type) {
case MEM_OBJ_SCRIPT:
// Auto-generated CFSML data reader code
@@ -4406,7 +4407,7 @@ int read_mem_obj_t(Common::SeekableReadStream *fh, mem_obj_t *foo, const char *l
}
}
// End of auto-generated CFSML data reader code
-#line 657 "engines/sci/engine/savegame.cfsml"
+#line 658 "engines/sci/engine/savegame.cfsml"
break;
case MEM_OBJ_CLONES:
// Auto-generated CFSML data reader code
@@ -4432,7 +4433,7 @@ int read_mem_obj_t(Common::SeekableReadStream *fh, mem_obj_t *foo, const char *l
}
}
// End of auto-generated CFSML data reader code
-#line 660 "engines/sci/engine/savegame.cfsml"
+#line 661 "engines/sci/engine/savegame.cfsml"
break;
case MEM_OBJ_LOCALS:
// Auto-generated CFSML data reader code
@@ -4458,7 +4459,7 @@ int read_mem_obj_t(Common::SeekableReadStream *fh, mem_obj_t *foo, const char *l
}
}
// End of auto-generated CFSML data reader code
-#line 663 "engines/sci/engine/savegame.cfsml"
+#line 664 "engines/sci/engine/savegame.cfsml"
break;
case MEM_OBJ_SYS_STRINGS:
// Auto-generated CFSML data reader code
@@ -4484,7 +4485,7 @@ int read_mem_obj_t(Common::SeekableReadStream *fh, mem_obj_t *foo, const char *l
}
}
// End of auto-generated CFSML data reader code
-#line 666 "engines/sci/engine/savegame.cfsml"
+#line 667 "engines/sci/engine/savegame.cfsml"
break;
case MEM_OBJ_LISTS:
// Auto-generated CFSML data reader code
@@ -4510,7 +4511,7 @@ int read_mem_obj_t(Common::SeekableReadStream *fh, mem_obj_t *foo, const char *l
}
}
// End of auto-generated CFSML data reader code
-#line 669 "engines/sci/engine/savegame.cfsml"
+#line 670 "engines/sci/engine/savegame.cfsml"
break;
case MEM_OBJ_NODES:
// Auto-generated CFSML data reader code
@@ -4536,7 +4537,7 @@ int read_mem_obj_t(Common::SeekableReadStream *fh, mem_obj_t *foo, const char *l
}
}
// End of auto-generated CFSML data reader code
-#line 672 "engines/sci/engine/savegame.cfsml"
+#line 673 "engines/sci/engine/savegame.cfsml"
break;
case MEM_OBJ_STACK:
// Auto-generated CFSML data reader code
@@ -4562,7 +4563,7 @@ int read_mem_obj_t(Common::SeekableReadStream *fh, mem_obj_t *foo, const char *l
}
}
// End of auto-generated CFSML data reader code
-#line 675 "engines/sci/engine/savegame.cfsml"
+#line 676 "engines/sci/engine/savegame.cfsml"
foo->data.stack.entries = (reg_t *)sci_calloc(foo->data.stack.nr, sizeof(reg_t));
break;
case MEM_OBJ_HUNK:
@@ -4592,7 +4593,7 @@ int read_mem_obj_t(Common::SeekableReadStream *fh, mem_obj_t *foo, const char *l
}
}
// End of auto-generated CFSML data reader code
-#line 682 "engines/sci/engine/savegame.cfsml"
+#line 683 "engines/sci/engine/savegame.cfsml"
break;
}
@@ -4606,7 +4607,7 @@ void write_mem_obj_tp(Common::WriteStream *fh, mem_obj_t **foo) {
write_mem_obj_t(fh, (*foo));
WSprintf(fh, "\n");
// End of auto-generated CFSML data writer code
-#line 691 "engines/sci/engine/savegame.cfsml"
+#line 692 "engines/sci/engine/savegame.cfsml"
} else { // Nothing to write
WSprintf(fh, "\\null\\");
}
@@ -4639,7 +4640,7 @@ int read_mem_obj_tp(Common::SeekableReadStream *fh, mem_obj_t **foo, const char
}
}
// End of auto-generated CFSML data reader code
-#line 702 "engines/sci/engine/savegame.cfsml"
+#line 703 "engines/sci/engine/savegame.cfsml"
return *hiteof;
}
return 0;
@@ -4693,13 +4694,13 @@ int gamestate_save(EngineState *s, Common::WriteStream *fh, const char* savename
_cfsml_write_SavegameMetadata(fh, meta);
WSprintf(fh, "\n");
// End of auto-generated CFSML data writer code
-#line 751 "engines/sci/engine/savegame.cfsml"
+#line 752 "engines/sci/engine/savegame.cfsml"
#line 814 "engines/sci/engine/savegame.cfsml"
// Auto-generated CFSML data writer code
_cfsml_write_EngineState(fh, s);
WSprintf(fh, "\n");
// End of auto-generated CFSML data writer code
-#line 752 "engines/sci/engine/savegame.cfsml"
+#line 753 "engines/sci/engine/savegame.cfsml"
delete meta;
@@ -5002,7 +5003,7 @@ EngineState *gamestate_restore(EngineState *s, Common::SeekableReadStream *fh) {
}
}
// End of auto-generated CFSML data reader code
-#line 1026 "engines/sci/engine/savegame.cfsml"
+#line 1027 "engines/sci/engine/savegame.cfsml"
if ((meta->savegame_version < FREESCI_MINIMUM_SAVEGAME_VERSION) ||
(meta->savegame_version > FREESCI_CURRENT_SAVEGAME_VERSION)) {
if (meta->savegame_version < FREESCI_MINIMUM_SAVEGAME_VERSION)
@@ -5054,7 +5055,7 @@ EngineState *gamestate_restore(EngineState *s, Common::SeekableReadStream *fh) {
}
}
// End of auto-generated CFSML data reader code
-#line 1049 "engines/sci/engine/savegame.cfsml"
+#line 1050 "engines/sci/engine/savegame.cfsml"
sfx_exit(&s->sound);
_gamestate_unfrob(retval);
@@ -5178,7 +5179,7 @@ bool get_savegame_metadata(Common::SeekableReadStream* stream, SavegameMetadata*
}
}
// End of auto-generated CFSML data reader code
-#line 1144 "engines/sci/engine/savegame.cfsml"
+#line 1145 "engines/sci/engine/savegame.cfsml"
if (read_eof)
return false;
diff --git a/engines/sci/include/engine.h b/engines/sci/include/engine.h
index aed9040ac5..2abcf2f4da 100644
--- a/engines/sci/include/engine.h
+++ b/engines/sci/include/engine.h
@@ -33,12 +33,6 @@ namespace Common {
class WriteStream;
}
-// FIXME. Remove after transiton to File class
-#include <sys/stat.h>
-
-// FIXME. Remove this eventually
-#include <time.h>
-
#include "sci/tools.h"
#include "sci/include/sciresource.h"
#include "sci/include/script.h"
@@ -76,7 +70,7 @@ namespace Sci {
#define MAX_GAMEDIR_SIZE 32 /* Used for subdirectory inside of "~/.freesci/" */
#define MAX_SAVEGAME_NR 20 /* Maximum number of savegames */
-#define MAX_SAVE_DIR_SIZE MAX_HOMEDIR_SIZE + STRLEN_FREESCI_GAMEDIR + MAX_GAMEDIR_SIZE + 4
+#define MAX_SAVE_DIR_SIZE MAXPATHLEN + STRLEN_FREESCI_GAMEDIR + MAX_GAMEDIR_SIZE + 4
/* +4 for the three slashes and trailing \0 */
/* values for EngineState.restarting_flag */
diff --git a/engines/sci/include/gfx_resmgr.h b/engines/sci/include/gfx_resmgr.h
index 7794800db8..6ba34b8815 100644
--- a/engines/sci/include/gfx_resmgr.h
+++ b/engines/sci/include/gfx_resmgr.h
@@ -53,7 +53,7 @@ typedef enum {
#define GFXR_RES_NR(id) (id & 0xffff)
-typedef struct gfx_resource_struct {
+struct gfx_resource_t {
int ID; /* Resource ID */
int lock_sequence_nr; /* See description of lock_counter in gfx_resstate_t */
int mode; /* A mode type hash */
@@ -72,7 +72,7 @@ typedef struct gfx_resource_struct {
gfxr_pic_t *pic;
} unscaled_data;
-} gfx_resource_t;
+};
struct _gfx_options;
diff --git a/engines/sci/include/sciresource.h b/engines/sci/include/sciresource.h
index 67205665b5..74b6d33a2b 100644
--- a/engines/sci/include/sciresource.h
+++ b/engines/sci/include/sciresource.h
@@ -40,15 +40,6 @@ namespace Sci {
#define SCI_MAX_RESOURCE_SIZE 0x0400000
/* The maximum allowed size for a compressed or decompressed resource */
-#ifdef WIN32
-# define DIR_SEPARATOR_STR "\\"
-# define PATH_SEPARATOR_STR ";"
-#else
-# define DIR_SEPARATOR_STR "/"
-# define PATH_SEPARATOR_STR ":"
-#endif
-
-
/*** RESOURCE STATUS TYPES ***/
#define SCI_STATUS_NOMALLOC 0
#define SCI_STATUS_ALLOCATED 1
@@ -146,7 +137,8 @@ struct resource_altsource_t {
};
-typedef struct _resource_struct {
+/** Struct for storing resources in memory */
+struct resource_t {
unsigned char *data;
unsigned short number;
@@ -161,11 +153,11 @@ typedef struct _resource_struct {
unsigned char status;
unsigned short lockers; /* Number of places where this resource was locked */
- struct _resource_struct *next; /* Position marker for the LRU queue */
- struct _resource_struct *prev;
+ resource_t *next; /* Position marker for the LRU queue */
+ resource_t *prev;
resource_altsource_t *alt_sources; /* SLL of alternative resource data sources */
-} resource_t; /* for storing resources in memory */
+};
struct ResourceManager {
diff --git a/engines/sci/module.mk b/engines/sci/module.mk
index 75293d6d7d..be8d7374a4 100644
--- a/engines/sci/module.mk
+++ b/engines/sci/module.mk
@@ -88,7 +88,7 @@ MODULE_OBJS = \
# Generate savegame.cpp
$(srcdir)/engines/sci/engine/savegame.cpp: $(srcdir)/engines/sci/engine/savegame.cfsml $(srcdir)/tools/cfsml.pl
- cat $< | perl $(srcdir)/tools/cfsml.pl -f $(<) > $@
+ cat $< | perl $(srcdir)/tools/cfsml.pl -f engines/sci/engine/savegame.cfsml > $@
# This module can be built as a plugin
ifeq ($(ENABLE_SCI), DYNAMIC_PLUGIN)
diff --git a/engines/sci/tools.cpp b/engines/sci/tools.cpp
index b1d0829bd6..95b5dd1275 100644
--- a/engines/sci/tools.cpp
+++ b/engines/sci/tools.cpp
@@ -37,6 +37,7 @@
#ifdef UNIX
#include <fnmatch.h>
+#include <sys/stat.h>
#endif
#include "common/archive.h"
@@ -315,41 +316,6 @@ void sci_finish_find(sci_dir_t *dir) {
#endif
-int sci_mkpath(const char *path) {
- const char *path_position = path;
- char *next_separator = NULL;
-
- if (chdir(G_DIR_SEPARATOR_S)) { // Go to root
- sciprintf("Error: Could not change to root directory '%s'", G_DIR_SEPARATOR_S);
- return -1;
- }
-
- do {
- if (next_separator)
- *next_separator = G_DIR_SEPARATOR_S[0];
- next_separator = (char *)strchr(path_position, G_DIR_SEPARATOR_S[0]);
-
- if (next_separator)
- *next_separator = 0;
-
- if (*path_position) { // Unless we're at the first slash...
- if (chdir(path_position)) {
- if (scimkdir(path_position, 0700) || chdir(path_position)) {
- sciprintf("Error: Could not create subdirectory '%s' in", path_position);
- if (next_separator)
- *next_separator = G_DIR_SEPARATOR_S[0];
- sciprintf(" '%s'!\n", path);
- return -2;
- }
- }
- }
- path_position = next_separator + 1;
-
- } while (next_separator);
-
- return 0;
-}
-
/* Returns the case-sensitive filename of a file.
** Expects *dir to be uninitialized and the caller to free it afterwards.
diff --git a/engines/sci/tools.h b/engines/sci/tools.h
index 9f84ee8cd1..478e79f5e2 100644
--- a/engines/sci/tools.h
+++ b/engines/sci/tools.h
@@ -27,6 +27,7 @@
#define SCI_TOOLS_H
#include "common/scummsys.h"
+#include "common/endian.h"
/** This header file defines (mostly) generic tools and utility functions.
** It also handles portability stuff, in cooperation with scitypes.h
@@ -40,13 +41,6 @@
#define SCI_INVALID_FD -1
#define IS_VALID_FD(a) ((a) != SCI_INVALID_FD) /* Tests validity of a file descriptor */
-#ifdef WIN32
-# ifndef _Win32
-# define _Win32
-/* Work around problem with some versions of flex */
-# endif
-#endif
-
/*#define _SCI_RESOURCE_DEBUG */
/*#define _SCI_DECOMPRESS_DEBUG*/
@@ -85,8 +79,6 @@
-#define MAX_HOMEDIR_SIZE 255
-
#ifdef WIN32
# define FO_BINARY "b"
#else
@@ -107,32 +99,10 @@ namespace Sci {
/**** FUNCTION DECLARATIONS ****/
-#ifdef WIN32
-# define scimkdir(arg1,arg2) mkdir(arg1)
-#else
-# define scimkdir(arg1,arg2) mkdir(arg1,arg2)
-#endif
-
-static inline gint16 getInt16(byte *d) {
- return (gint16)(*d | (d[1] << 8));
-}
-
-#define getUInt16(d) (guint16)(getInt16(d))
-
-/* Turns a little endian 16 bit value into a machine-dependant 16 bit value
-** Parameters: d: Pointer to the memory position from which to read
-** Returns : (gint16) The (possibly converted) 16 bit value
-** getUInt16 returns the int unsigned.
-*/
+#define getInt16 (int16)READ_UINT16
+#define getUInt16 READ_UINT16
+#define putInt16 WRITE_UINT16
-static inline void putInt16(byte* dest, int src) {
- dest[0] = (byte)src & 0xff;
- dest[1] = (byte)(src >> 8) & 0xff;
-}
-/* Converse of getInt16()
-** Parameters: (byte *) dest: The position to write to
-** (int) src: value to write
-*/
/* --- */
@@ -220,13 +190,6 @@ char *sci_getcwd();
** Returns : (char *) a malloc'd cwd, or NULL if it couldn't be determined.
*/
-int sci_mkpath(const char *path);
-/* Asserts that the specified path is available
-** Parameters: (const char *) path: Path to verify/create
-** Returns : (int) 0 on success, <0 on error
-** This function will create any directories that couldn't be found
-*/
-
int sci_fd_size(int fd);
/* Returns the filesize of an open file
** Parameters: (int) fd: File descriptor of open file
@@ -244,9 +207,6 @@ It uses StrAt() to read the individual elements, so we must determine
whether a string is really a string or an array. */
int is_print_str(char *str);
-# define sci_unlink unlink
-# define sci_rmdir rmdir
-
/** Find first set bit in bits and return its index. Returns 0 if bits is 0. */
int sci_ffs(int bits);