[Scummvm-cvs-logs] CVS: scummvm/saga actionmap.cpp,1.8,1.9 actionmap.h,1.4,1.5 actor.cpp,1.12,1.13 actor.h,1.4,1.5 animation.cpp,1.10,1.11 animation.h,1.7,1.8 cvar.cpp,1.6,1.7 cvar.h,1.4,1.5 cvar_mod.h,1.4,1.5 objectmap.cpp,1.9,1.10 objectmap.h,1.4,1.5 render.cpp,1.14,1.15 saga.cpp,1.23,1.24 scene.cpp,1.13,1.14 scene.h,1.4,1.5 script.cpp,1.8,1.9 script.h,1.5,1.6

Eugene Sandulenko sev at users.sourceforge.net
Sat Jul 31 16:34:00 CEST 2004


Update of /cvsroot/scummvm/scummvm/saga
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13113

Modified Files:
	actionmap.cpp actionmap.h actor.cpp actor.h animation.cpp 
	animation.h cvar.cpp cvar.h cvar_mod.h objectmap.cpp 
	objectmap.h render.cpp saga.cpp scene.cpp scene.h script.cpp 
	script.h 
Log Message:
Extended CVAR_RegisterFunc with callback object parameter.
Got rid of static structure in animation.cpp


Index: actionmap.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/actionmap.cpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -d -r1.8 -r1.9
--- actionmap.cpp	5 May 2004 13:05:30 -0000	1.8
+++ actionmap.cpp	31 Jul 2004 23:33:14 -0000	1.9
@@ -37,7 +37,7 @@
 
 int ACTIONMAP_Register(void) {
 	CVAR_RegisterFunc(CF_action_info,
-					  "action_info", NULL, R_CVAR_NONE, 0, 0);
+					  "action_info", NULL, R_CVAR_NONE, 0, 0, NULL);
 	return R_SUCCESS;
 }
 
@@ -159,7 +159,7 @@
 	return R_SUCCESS;
 }
 
-void CF_action_info(int argc, char *argv[]) {
+void CF_action_info(int argc, char *argv[], void *refCon) {
 	R_POINT *pt;
 
 	int i;

Index: actionmap.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/actionmap.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- actionmap.h	1 May 2004 06:16:57 -0000	1.4
+++ actionmap.h	31 Jul 2004 23:33:14 -0000	1.5
@@ -47,7 +47,7 @@
 	size_t exmap_res_len;
 };
 
-void CF_action_info(int argc, char *argv[]);
+void CF_action_info(int argc, char *argv[], void *refCon);
 
 } // End of namespace Saga
 

Index: actor.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/actor.cpp,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -d -r1.12 -r1.13
--- actor.cpp	25 Jun 2004 20:11:46 -0000	1.12
+++ actor.cpp	31 Jul 2004 23:33:14 -0000	1.13
@@ -52,12 +52,12 @@
 };
 
 int ACTOR_Register() {
-	CVAR_RegisterFunc(CF_actor_add, "actor_add", "<Actor id> <lx> <ly>", R_CVAR_NONE, 3, 3);
-	CVAR_RegisterFunc(CF_actor_del, "actor_del", "<Actor id>", R_CVAR_NONE, 1, 1);
-	CVAR_RegisterFunc(CF_actor_move, "actor_move", "<Actor id> <lx> <ly>", R_CVAR_NONE, 3, 3);
-	CVAR_RegisterFunc(CF_actor_moverel, "actor_moverel", "<Actor id> <lx> <ly>", R_CVAR_NONE, 3, 3);
-	CVAR_RegisterFunc(CF_actor_seto, "actor_seto", "<Actor id> <Orientation>", R_CVAR_NONE, 2, 2);
-	CVAR_RegisterFunc(CF_actor_setact, "actor_setact", "<Actor id> <Action #>", R_CVAR_NONE, 2, 2);
+	CVAR_RegisterFunc(CF_actor_add, "actor_add", "<Actor id> <lx> <ly>", R_CVAR_NONE, 3, 3, NULL);
+	CVAR_RegisterFunc(CF_actor_del, "actor_del", "<Actor id>", R_CVAR_NONE, 1, 1, NULL);
+	CVAR_RegisterFunc(CF_actor_move, "actor_move", "<Actor id> <lx> <ly>", R_CVAR_NONE, 3, 3, NULL);
+	CVAR_RegisterFunc(CF_actor_moverel, "actor_moverel", "<Actor id> <lx> <ly>", R_CVAR_NONE, 3, 3, NULL);
+	CVAR_RegisterFunc(CF_actor_seto, "actor_seto", "<Actor id> <Orientation>", R_CVAR_NONE, 2, 2, NULL);
+	CVAR_RegisterFunc(CF_actor_setact, "actor_setact", "<Actor id> <Action #>", R_CVAR_NONE, 2, 2, NULL);
 
 	return R_SUCCESS;
 }
@@ -1051,7 +1051,7 @@
 	return R_SUCCESS;
 }
 
-static void CF_actor_add(int argc, char *argv[]) {
+static void CF_actor_add(int argc, char *argv[], void *refCon) {
 	R_ACTOR actor;
 
 	if (argc < 3)
@@ -1067,7 +1067,7 @@
 	return;
 }
 
-static void CF_actor_del(int argc, char *argv[]) {
+static void CF_actor_del(int argc, char *argv[], void *refCon) {
 	int id;
  
 	if (argc < 0)
@@ -1080,7 +1080,7 @@
 	return;
 }
 
-static void CF_actor_move(int argc, char *argv[]) {
+static void CF_actor_move(int argc, char *argv[], void *refCon) {
 	int id;
 	R_POINT move_pt;
 
@@ -1097,7 +1097,7 @@
 	return;
 }
 
-static void CF_actor_moverel(int argc, char *argv[]) {
+static void CF_actor_moverel(int argc, char *argv[], void *refCon) {
 	int id;
 	R_POINT move_pt;
 
@@ -1114,7 +1114,7 @@
 	return;
 }
 
-static void CF_actor_seto(int argc, char *argv[]) {
+static void CF_actor_seto(int argc, char *argv[], void *refCon) {
 	int id;
 	int orient;
 
@@ -1129,7 +1129,7 @@
 	return;
 }
 
-static void CF_actor_setact(int argc, char *argv[]) {
+static void CF_actor_setact(int argc, char *argv[], void *refCon) {
 	int index = 0;
 	int action_n = 0;
 

Index: actor.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/actor.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- actor.h	1 May 2004 06:16:57 -0000	1.4
+++ actor.h	31 Jul 2004 23:33:14 -0000	1.5
@@ -171,12 +171,12 @@
 int HandleSpeakIntent(R_ACTOR *actor, R_SPEAKINTENT *a_speakint, int *complete_p, int msec);
 int ACTOR_SetPathNode(R_WALKINTENT *walk_int, R_POINT *src_pt, R_POINT *dst_pt, R_SEMAPHORE *sem);
 int LoadActorSpriteIndex(R_ACTOR *actor, int si_rn, int *last_frame_p);
-static void CF_actor_add(int argc, char *argv[]);
-static void CF_actor_del(int argc, char *argv[]);
-static void CF_actor_move(int argc, char *argv[]);
-static void CF_actor_moverel(int argc, char *argv[]);
-static void CF_actor_seto(int argc, char *argv[]);
-static void CF_actor_setact(int argc, char *argv[]);
+static void CF_actor_add(int argc, char *argv[], void *refCon);
+static void CF_actor_del(int argc, char *argv[], void *refCon);
+static void CF_actor_move(int argc, char *argv[], void *refCon);
+static void CF_actor_moverel(int argc, char *argv[], void *refCon);
+static void CF_actor_seto(int argc, char *argv[], void *refCon);
+static void CF_actor_setact(int argc, char *argv[], void *refCon);
 
 } // End of namespace Saga
 

Index: animation.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/animation.cpp,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -d -r1.10 -r1.11
--- animation.cpp	31 Jul 2004 23:00:48 -0000	1.10
+++ animation.cpp	31 Jul 2004 23:33:14 -0000	1.11
@@ -35,29 +35,27 @@
 
 namespace Saga {
 
-static void CF_anim_info(int argc, char *argv[]);
-
-static R_ANIMINFO AnimInfo;
+static void CF_anim_info(int argc, char *argv[], void *refCon);
 
 int Anim::reg() {
-	CVAR_RegisterFunc(CF_anim_info, "anim_info", NULL, R_CVAR_NONE, 0, 0);
+	CVAR_RegisterFunc(CF_anim_info, "anim_info", NULL, R_CVAR_NONE, 0, 0, this);
 	return R_SUCCESS;
 }
 
 Anim::Anim(void) {
-	AnimInfo.anim_limit = R_MAX_ANIMATIONS;
-	AnimInfo.anim_count = 0;
-	AnimInfo.initialized = 1;
+	_anim_limit = R_MAX_ANIMATIONS;
+	_anim_count = 0;
+	_initialized = true;
 }
 
 Anim::~Anim(void) {
 	uint16 i;
 
 	for (i = 0; i < R_MAX_ANIMATIONS; i++) {
-		free(AnimInfo.anim_tbl[i]);
+		free(_anim_tbl[i]);
 	}
 
-	AnimInfo.initialized = 0;
+	_initialized = false;
 }
 
 int Anim::load(const byte *anim_resdata, size_t anim_resdata_len, uint16 *anim_id_p) {
@@ -66,13 +64,13 @@
 	uint16 anim_id = 0;
 	uint16 i;
 
-	if (!AnimInfo.initialized) {
+	if (!_initialized) {
 		return R_FAILURE;
 	}
 
 	// Find an unused animation slot
 	for (i = 0; i < R_MAX_ANIMATIONS; i++) {
-		if (AnimInfo.anim_tbl[i] == NULL) {
+		if (_anim_tbl[i] == NULL) {
 			anim_id = i;
 			break;
 		}
@@ -124,11 +122,11 @@
 	new_anim->link_flag = 0;
 	new_anim->link_id = 0;
 
-	AnimInfo.anim_tbl[anim_id] = new_anim;
+	_anim_tbl[anim_id] = new_anim;
 
 	*anim_id_p = anim_id;
 
-	AnimInfo.anim_count++;
+	_anim_count++;
 
 	return R_SUCCESS;
 }
@@ -137,12 +135,12 @@
 	R_ANIMATION *anim1;
 	R_ANIMATION *anim2;
 
-	if ((anim_id1 >= AnimInfo.anim_count) || (anim_id2 >= AnimInfo.anim_count)) {
+	if ((anim_id1 >= _anim_count) || (anim_id2 >= _anim_count)) {
 		return R_FAILURE;
 	}
 
-	anim1 = AnimInfo.anim_tbl[anim_id1];
-	anim2 = AnimInfo.anim_tbl[anim_id2];
+	anim1 = _anim_tbl[anim_id1];
+	anim2 = _anim_tbl[anim_id2];
 
 	if ((anim1 == NULL) || (anim2 == NULL)) {
 		return R_FAILURE;
@@ -174,7 +172,7 @@
 
 	R_GAME_DISPLAYINFO disp_info;
 
-	if (anim_id >= AnimInfo.anim_count) {
+	if (anim_id >= _anim_count) {
 		return R_FAILURE;
 	}
 
@@ -183,7 +181,7 @@
 	_vm->_render->getBufferInfo(&buf_info);
 	display_buf = buf_info.r_bg_buf;
 
-	anim = AnimInfo.anim_tbl[anim_id];
+	anim = _anim_tbl[anim_id];
 	if (anim == NULL) {
 		return R_FAILURE;
 	}
@@ -228,7 +226,7 @@
 			anim->current_frame = 1;
 
 			link_anim_id = anim->link_id;
-			link_anim = AnimInfo.anim_tbl[link_anim_id];
+			link_anim = _anim_tbl[link_anim_id];
 
 			if (link_anim != NULL) {
 				link_anim->current_frame = 1;
@@ -277,7 +275,7 @@
 		freeId(i);
 	}
 
-	AnimInfo.anim_count = 0;
+	_anim_count = 0;
 
 	return R_SUCCESS;
 }
@@ -285,11 +283,11 @@
 int Anim::setFlag(uint16 anim_id, uint16 flag) {
 	R_ANIMATION *anim;
 
-	if (anim_id > AnimInfo.anim_count) {
+	if (anim_id > _anim_count) {
 		return R_FAILURE;
 	}
 
-	anim = AnimInfo.anim_tbl[anim_id];
+	anim = _anim_tbl[anim_id];
 	if (anim == NULL) {
 		return R_FAILURE;
 	}
@@ -302,11 +300,11 @@
 int Anim::setFrameTime(uint16 anim_id, int time) {
 	R_ANIMATION *anim;
 
-	if (anim_id > AnimInfo.anim_count) {
+	if (anim_id > _anim_count) {
 		return R_FAILURE;
 	}
 
-	anim = AnimInfo.anim_tbl[anim_id];
+	anim = _anim_tbl[anim_id];
 	if (anim == NULL) {
 		return R_FAILURE;
 	}
@@ -319,11 +317,11 @@
 int Anim::freeId(uint16 anim_id) {
 	R_ANIMATION *anim;
 
-	if (anim_id > AnimInfo.anim_count) {
+	if (anim_id > _anim_count) {
 		return R_FAILURE;
 	}
 
-	anim = AnimInfo.anim_tbl[anim_id];
+	anim = _anim_tbl[anim_id];
 	if (anim == NULL) {
 		return R_FAILURE;
 	}
@@ -334,8 +332,8 @@
 	}
 
 	free(anim);
-	AnimInfo.anim_tbl[anim_id] = NULL;
-	AnimInfo.anim_count--;
+	_anim_tbl[anim_id] = NULL;
+	_anim_count--;
 
 	return R_SUCCESS;
 }
@@ -352,7 +350,7 @@
 
 	int x;
 
-	if (!AnimInfo.initialized) {
+	if (!_initialized) {
 		return R_FAILURE;
 	}
 
@@ -414,7 +412,7 @@
 
 	uint16 i;
 
-	if (!AnimInfo.initialized) {
+	if (!_initialized) {
 		return R_FAILURE;
 	}
 
@@ -788,7 +786,7 @@
 
 	int i;
 
-	if (!AnimInfo.initialized) {
+	if (!_initialized) {
 		return R_FAILURE;
 	}
 
@@ -890,7 +888,7 @@
 	return R_SUCCESS;
 }
 
-static void CF_anim_info(int argc, char *argv[]) {
+void Anim::animInfo(int argc, char *argv[]) {
 	uint16 anim_ct;
 	uint16 i;
 	uint16 idx;
@@ -898,19 +896,21 @@
 	(void)(argc);
 	(void)(argv);
 
-	anim_ct = AnimInfo.anim_count;
+	anim_ct = _anim_count;
 
 	CON_Print("There are %d animations loaded:", anim_ct);
 
 	for (idx = 0, i = 0; i < anim_ct; idx++, i++) {
-		while (AnimInfo.anim_tbl[idx] == NULL) {
+		while (_anim_tbl[idx] == NULL) {
 			idx++;
 		}
 
-		CON_Print("%02d: Frames: %u Flags: %u", i, AnimInfo.anim_tbl[idx]->n_frames, AnimInfo.anim_tbl[idx]->flags);
+		CON_Print("%02d: Frames: %u Flags: %u", i, _anim_tbl[idx]->n_frames, _anim_tbl[idx]->flags);
 	}
+}
 
-	return;
+static void CF_anim_info(int argc, char *argv[], void *refCon) {
+	((Anim *)refCon)->animInfo(argc, argv);
 }
 
 } // End of namespace Saga

Index: animation.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/animation.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- animation.h	31 Jul 2004 19:10:47 -0000	1.7
+++ animation.h	31 Jul 2004 23:33:14 -0000	1.8
@@ -86,13 +86,6 @@
 	uint16 flags;
 };
 
-struct R_ANIMINFO {
-	int initialized;
-	uint16 anim_count;
-	uint16 anim_limit;
-	R_ANIMATION *anim_tbl[R_MAX_ANIMATIONS];
-};
-
 enum ANIM_FLAGS {
 	ANIM_LOOP = 0x01,
 	ANIM_ENDSCENE = 0x80	// When animation ends, dispatch scene end event
@@ -110,12 +103,21 @@
 	int setFlag(uint16 anim_id, uint16 flag);
 	int setFrameTime(uint16 anim_id, int time);
 	int reset(void);
+	void animInfo(int argc, char *argv[]);
+
 private:
 	int getNumFrames(const byte *anim_resource, size_t anim_resource_len, uint16 *n_frames);
 	int ITE_DecodeFrame(const byte *anim_resource, size_t anim_resource_len, size_t frame_offset, byte *buf, size_t buf_len);
 	int IHNM_DecodeFrame(byte *decode_buf, size_t decode_buf_len, const byte *thisf_p,
 					size_t thisf_len, const byte **nextf_p, size_t *nextf_len);
 	int getFrameOffset(const byte *anim_resource, size_t anim_resource_len, uint16 find_frame, size_t *frame_offset);
+
+	bool _initialized;
+
+	uint16 _anim_count;
+	uint16 _anim_limit;
+	R_ANIMATION *_anim_tbl[R_MAX_ANIMATIONS];
+
 };
 
 } // End of namespace Saga

Index: cvar.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/cvar.cpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- cvar.cpp	5 May 2004 13:05:30 -0000	1.6
+++ cvar.cpp	31 Jul 2004 23:33:14 -0000	1.7
@@ -160,7 +160,7 @@
 	}
 
 	// Call function
-	(cvar_func->t.func.func_p) (cf_argc, cf_argv);
+	(cvar_func->t.func.func_p) (cf_argc, cf_argv, cvar_func->refCon);
 
 	if (cf_argv)
 		free(cf_argv);
@@ -334,13 +334,14 @@
 // Registers a console function 'cvar' 
 // (could think of a better place to put these...?)
 int CVAR_RegisterFunc(cv_func_t func, const char *func_name,
-					 const char *func_argstr, uint16 flags, int min_args, int max_args) {
+		  const char *func_argstr, uint16 flags, int min_args, int max_args, void *refCon) {
 	R_CVAR new_cvar;
 	int hash;
 
 	new_cvar.name = func_name;
 	new_cvar.type = R_CVAR_FUNC;
 	new_cvar.section = NULL;
+	new_cvar.refCon = refCon;
 	new_cvar.flags = flags;
 	new_cvar.t.func.func_p = func;
 	new_cvar.t.func.func_argstr = func_argstr;

Index: cvar.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/cvar.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- cvar.h	1 May 2004 06:35:06 -0000	1.4
+++ cvar.h	31 Jul 2004 23:33:14 -0000	1.5
@@ -66,6 +66,7 @@
 	const char *name;
 	const char *section;
 	uint16 flags;
+	void *refCon;
 
 	union {
 		R_SUBCVAR_INT i;

Index: cvar_mod.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/cvar_mod.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- cvar_mod.h	1 May 2004 06:35:06 -0000	1.4
+++ cvar_mod.h	31 Jul 2004 23:33:14 -0000	1.5
@@ -37,7 +37,7 @@
 typedef unsigned int cv_uint16_t;
 typedef float cv_float_t;
 typedef char cv_char_t;
-typedef void (*cv_func_t) (int cv_argc, char *cv_argv[]);
+typedef void (*cv_func_t) (int cv_argc, char *cv_argv[], void *refCon);
 /******************************************/
 
 typedef struct R_CVAR_tag *R_CVAR_P;	// opaque typedef
@@ -70,7 +70,7 @@
 int CVAR_IsFunc(R_CVAR_P cvar_func);
 int CVAR_Exec(R_CVAR_P cvar_func, char *r_value);
 int CVAR_RegisterFunc(cv_func_t func, const char *func_name,
-						const char *func_argstr, uint16 flags, int min_args, int max_args);
+		  const char *func_argstr, uint16 flags, int min_args, int max_args, void *refCon);
 int CVAR_Register_I(cv_int_t * var_p, const char *var_name,
 					const char *section, uint16 flags, cv_int_t lbound, cv_int_t ubound);
 int CVAR_Register_UI(cv_uint16_t * var_p, const char *var_name,

Index: objectmap.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/objectmap.cpp,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -d -r1.9 -r1.10
--- objectmap.cpp	5 May 2004 13:05:30 -0000	1.9
+++ objectmap.cpp	31 Jul 2004 23:33:14 -0000	1.10
@@ -42,7 +42,7 @@
 static R_OBJECTMAP_INFO OMInfo;
 
 int OBJECTMAP_Register() {
-	CVAR_RegisterFunc(CF_object_info, "object_info", NULL, R_CVAR_NONE, 0, 0);
+	CVAR_RegisterFunc(CF_object_info, "object_info", NULL, R_CVAR_NONE, 0, 0, NULL);
 
 	return R_SUCCESS;
 }
@@ -426,7 +426,7 @@
 	return R_FAILURE;
 }
 
-static void CF_object_info(int argc, char *argv[]) {
+static void CF_object_info(int argc, char *argv[], void *refCon) {
 	int i;
 
 	(void)(argc);

Index: objectmap.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/objectmap.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- objectmap.h	1 May 2004 13:04:31 -0000	1.4
+++ objectmap.h	31 Jul 2004 23:33:14 -0000	1.5
@@ -56,7 +56,7 @@
 	const char **names;
 };
 
-static void CF_object_info(int argc, char *argv[]);
+static void CF_object_info(int argc, char *argv[], void *refCon);
 
 } // End of namespace Saga
 

Index: render.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/render.cpp,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -d -r1.14 -r1.15
--- render.cpp	31 Jul 2004 23:00:48 -0000	1.14
+++ render.cpp	31 Jul 2004 23:33:14 -0000	1.15
@@ -96,6 +96,8 @@
 Render::~Render(void) {
 	free(_bg_buf);
 	free(_tmp_buf);
+
+	_initialized = false;
 }
 
 bool Render::initialized() {

Index: saga.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/saga.cpp,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -d -r1.23 -r1.24
--- saga.cpp	31 Jul 2004 23:00:48 -0000	1.23
+++ saga.cpp	31 Jul 2004 23:33:14 -0000	1.24
@@ -82,8 +82,8 @@
 	int music_enabled;
 };
 
-static void CF_quitfunc(int argc, char *argv[]);
-static void CF_testfunc(int argc, char *argv[]);
+static void CF_quitfunc(int argc, char *argv[], void *refCon);
+static void CF_testfunc(int argc, char *argv[], void *refCon);
 
 static R_MAIN_DATA MainData;
 
@@ -128,13 +128,13 @@
 	MainData.sound_enabled = 1;
 	MainData.music_enabled = 1;
 
-	CVAR_RegisterFunc(CF_testfunc, "testfunc", "foo [ optional foo ]", R_CVAR_NONE, 0, -1);
+	CVAR_RegisterFunc(CF_testfunc, "testfunc", "foo [ optional foo ]", R_CVAR_NONE, 0, -1, this);
 
 	CVAR_Register_I(&MainData.sound_enabled, "sound", NULL, R_CVAR_CFG, 0, 1);
 
 	CVAR_Register_I(&MainData.music_enabled, "music", NULL, R_CVAR_CFG, 0, 1);
 
-	CVAR_RegisterFunc(CF_quitfunc, "quit", NULL, R_CVAR_NONE, 0, 0);
+	CVAR_RegisterFunc(CF_quitfunc, "quit", NULL, R_CVAR_NONE, 0, 0, this);
 
 	// Process config file
 	// FIXME
@@ -254,12 +254,12 @@
 	_system->quit();
 }
 
-static void CF_quitfunc(int argc, char *argv[]) {
-	_vm->shutdown();
+static void CF_quitfunc(int argc, char *argv[], void *refCon) {
+	((SagaEngine *)refCon)->shutdown();
 	exit(0);
 }
 
-static void CF_testfunc(int argc, char *argv[]) {
+static void CF_testfunc(int argc, char *argv[], void *refCon) {
 	int i;
 
 	CON_Print("Test function invoked: Got %d arguments.", argc);

Index: scene.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/scene.cpp,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -d -r1.13 -r1.14
--- scene.cpp	31 Jul 2004 23:00:48 -0000	1.13
+++ scene.cpp	31 Jul 2004 23:33:14 -0000	1.14
@@ -51,8 +51,8 @@
 
 int SCENE_Register() {
 	CVAR_Register_I(&SceneModule.scene_number, "scene", NULL, R_CVAR_READONLY, 0, 0);
-	CVAR_RegisterFunc(CF_scenechange, "scene_change", "<Scene number>", R_CVAR_NONE, 1, 1);
-	CVAR_RegisterFunc(CF_sceneinfo, "scene_info", NULL, R_CVAR_NONE, 0, 0);
+	CVAR_RegisterFunc(CF_scenechange, "scene_change", "<Scene number>", R_CVAR_NONE, 1, 1, NULL);
+	CVAR_RegisterFunc(CF_sceneinfo, "scene_info", NULL, R_CVAR_NONE, 0, 0, NULL);
 
 	return R_SUCCESS;
 }
@@ -806,7 +806,7 @@
 	return R_SUCCESS;
 }
 
-void CF_scenechange(int argc, char *argv[]) {
+void CF_scenechange(int argc, char *argv[], void *refCon) {
 	int scene_num = 0;
 
 	if ((argc == 0) || (argc > 1)) {
@@ -829,7 +829,7 @@
 	}
 }
 
-void CF_sceneinfo(int argc, char *argv[]) {
+void CF_sceneinfo(int argc, char *argv[], void *refCon) {
 	const char *fmt = "%-20s %d";
 
 	CON_Print(fmt, "Scene number:", SceneModule.scene_number);

Index: scene.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/scene.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- scene.h	1 May 2004 13:48:01 -0000	1.4
+++ scene.h	31 Jul 2004 23:33:14 -0000	1.5
@@ -142,8 +142,8 @@
 int LoadSceneDescriptor(uint32 res_number);
 int LoadSceneResourceList(uint32 res_number);
 int ProcessSceneResources();
-void CF_scenechange(int argc, char *argv[]);
-void CF_sceneinfo(int argc, char *argv[]);
+void CF_scenechange(int argc, char *argv[], void *refCon);
+void CF_sceneinfo(int argc, char *argv[], void *refCon);
 
 int IHNM_StartProc();
 

Index: script.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/script.cpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -d -r1.8 -r1.9
--- script.cpp	27 Jun 2004 21:30:32 -0000	1.8
+++ script.cpp	31 Jul 2004 23:33:14 -0000	1.9
@@ -43,9 +43,9 @@
 R_SCRIPT_MODULE ScriptModule;
 
 int SCRIPT_Register() {
-	CVAR_RegisterFunc(CF_script_info, "script_info", NULL, R_CVAR_NONE, 0, 0);
-	CVAR_RegisterFunc(CF_script_exec, "script_exec", "<Script number>", R_CVAR_NONE, 1, 1);
-	CVAR_RegisterFunc(CF_script_togglestep, "script_togglestep", NULL, R_CVAR_NONE, 0, 0);
+	CVAR_RegisterFunc(CF_script_info, "script_info", NULL, R_CVAR_NONE, 0, 0, NULL);
+	CVAR_RegisterFunc(CF_script_exec, "script_exec", "<Script number>", R_CVAR_NONE, 1, 1, NULL);
+	CVAR_RegisterFunc(CF_script_togglestep, "script_togglestep", NULL, R_CVAR_NONE, 0, 0, NULL);
 
 	return R_SUCCESS;
 }
@@ -490,7 +490,7 @@
 	return voice_lut;
 }
 
-void CF_script_info(int argc, char *argv[]) {
+void CF_script_info(int argc, char *argv[], void *refCon) {
 	uint32 n_entrypoints;
 	uint32 i;
 	char *name_ptr;
@@ -514,7 +514,7 @@
 	}
 }
 
-void CF_script_exec(int argc, char *argv[]) {
+void CF_script_exec(int argc, char *argv[], void *refCon) {
 	uint16 ep_num;
 
 	if (argc < 1) {
@@ -540,7 +540,7 @@
 	STHREAD_Execute(ScriptModule.dbg_thread, ep_num);
 }
 
-void CF_script_togglestep(int argc, char *argv[]) {
+void CF_script_togglestep(int argc, char *argv[], void *refCon) {
 	ScriptModule.dbg_singlestep = !ScriptModule.dbg_singlestep;
 }
 

Index: script.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/script.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- script.h	4 May 2004 03:33:03 -0000	1.5
+++ script.h	31 Jul 2004 23:33:14 -0000	1.6
@@ -111,9 +111,9 @@
 R_DIALOGUE_LIST *SCRIPT_LoadDialogue(const byte *dialogue_p, size_t dialogue_len);
 R_VOICE_LUT *SCRIPT_LoadVoiceLUT(const byte *voicelut_p, size_t voicelut_len, R_SCRIPTDATA *script);
 int SCRIPT_Disassemble(R_SCRIPT_BYTECODE *script_list, R_DIALOGUE_LIST *diag_list);
-void CF_script_info(int argc, char *argv[]);
-void CF_script_exec(int argc, char *argv[]);
-void CF_script_togglestep(int argc, char *argv[]);
+void CF_script_info(int argc, char *argv[], void *refCon);
+void CF_script_exec(int argc, char *argv[], void *refCon);
+void CF_script_togglestep(int argc, char *argv[], void *refCon);
 
 } // End of namespace Saga
 





More information about the Scummvm-git-logs mailing list