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

fingolfin at users.sourceforge.net fingolfin at users.sourceforge.net
Sun May 10 22:13:43 CEST 2009


Revision: 40434
          http://scummvm.svn.sourceforge.net/scummvm/?rev=40434&view=rev
Author:   fingolfin
Date:     2009-05-10 20:13:43 +0000 (Sun, 10 May 2009)

Log Message:
-----------
SCI: Changed EngineState::pics to a Common::Array

Modified Paths:
--------------
    scummvm/trunk/engines/sci/engine/game.cpp
    scummvm/trunk/engines/sci/engine/kgraphics.cpp
    scummvm/trunk/engines/sci/engine/state.cpp
    scummvm/trunk/engines/sci/engine/state.h

Modified: scummvm/trunk/engines/sci/engine/game.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/game.cpp	2009-05-10 20:13:12 UTC (rev 40433)
+++ scummvm/trunk/engines/sci/engine/game.cpp	2009-05-10 20:13:43 UTC (rev 40434)
@@ -174,7 +174,7 @@
 	// but this is correct
 	s->picture_port = gfxw_new_port(s->visual, NULL, s->gfx_state->pic_port_bounds, s->ega_colors[0], transparent);
 
-	s->pics_drawn_nr = 0;
+	s->_pics.clear();
 
 	s->visual->add(GFXWC(s->visual), s->wm_port);
 	s->visual->add(GFXWC(s->visual), s->titlebar_port);
@@ -214,8 +214,7 @@
 	s->dyn_views = NULL;
 	s->port = NULL;
 
-	free(s->pics);
-	s->pics = NULL;
+	s->_pics.clear();
 }
 
 int game_init_sound(EngineState *s, int sound_flags) {
@@ -469,8 +468,7 @@
 	sciprintf("Engine initialized\n");
 
 	s->pic_priority_table = NULL;
-	s->pics = NULL;
-	s->pics_nr = 0;
+	s->_pics.clear();
 
 	return 0;
 }

Modified: scummvm/trunk/engines/sci/engine/kgraphics.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/kgraphics.cpp	2009-05-10 20:13:12 UTC (rev 40433)
+++ scummvm/trunk/engines/sci/engine/kgraphics.cpp	2009-05-10 20:13:43 UTC (rev 40434)
@@ -975,13 +975,15 @@
 int sci01_priority_table_flags = 0;
 
 reg_t kDrawPic(EngineState *s, int funct_nr, int argc, reg_t *argv) {
-	int pic_nr = SKPV(0);
+	drawn_pic_t dp;
 	int add_to_pic = 1;
-	int palette = SKPV_OR_ALT(3, 0);
 	gfx_color_t transparent = s->wm_port->_bgcolor;
 
 	CHECK_THIS_KERNEL_FUNCTION;
 
+	dp.nr = SKPV(0);
+	dp.palette = SKPV_OR_ALT(3, 0);
+
 	if (s->version < SCI_VERSION_FTU_NEWER_DRAWPIC_PARAMETERS) {
 		if (!SKPV_OR_ALT(2, 0))
 			add_to_pic = 0;
@@ -1000,24 +1002,13 @@
 
 	SCIkdebug(SCIkGRAPHICS, "Drawing pic.%03d\n", SKPV(0));
 
-	if (!s->pics) {
-		s->pics = (drawn_pic_t*)sci_malloc(sizeof(drawn_pic_t) * (s->pics_nr = 8));
-		s->pics_drawn_nr = 0;
-	}
-
 	if (add_to_pic) {
-		if (s->pics_nr == s->pics_drawn_nr) {
-			s->pics_nr += 4;
-			s->pics = (drawn_pic_t*)sci_realloc(s->pics, sizeof(drawn_pic_t) * s->pics_nr);
-		}
-		s->pics[s->pics_drawn_nr].palette = palette;
-		s->pics[s->pics_drawn_nr++].nr = pic_nr;
-		GFX_ASSERT(gfxop_add_to_pic(s->gfx_state, pic_nr, 1, palette));
+		s->_pics.push_back(dp);
+		GFX_ASSERT(gfxop_add_to_pic(s->gfx_state, dp.nr, 1, dp.palette));
 	} else {
-		s->pics_drawn_nr = 1;
-		s->pics[0].nr = pic_nr;
-		s->pics[0].palette = palette;
-		GFX_ASSERT(gfxop_new_pic(s->gfx_state, pic_nr, 1, palette));
+		s->_pics.clear();
+		s->_pics.push_back(dp);
+		GFX_ASSERT(gfxop_new_pic(s->gfx_state, dp.nr, 1, dp.palette));
 	}
 
 	delete s->wm_port;

Modified: scummvm/trunk/engines/sci/engine/state.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/state.cpp	2009-05-10 20:13:12 UTC (rev 40433)
+++ scummvm/trunk/engines/sci/engine/state.cpp	2009-05-10 20:13:43 UTC (rev 40434)
@@ -96,10 +96,6 @@
 	priority_first = 0;
 	priority_last = 0;
 
-	pics_drawn_nr = 0;
-	pics_nr = 0;
-	pics = 0;
-
 	last_wait_time = 0;
 
 	version_lock_flag = 0;

Modified: scummvm/trunk/engines/sci/engine/state.h
===================================================================
--- scummvm/trunk/engines/sci/engine/state.h	2009-05-10 20:13:12 UTC (rev 40433)
+++ scummvm/trunk/engines/sci/engine/state.h	2009-05-10 20:13:43 UTC (rev 40434)
@@ -188,9 +188,7 @@
 	int priority_first; /**< The line where priority zone 0 ends */
 	int priority_last; /**< The line where the highest priority zone starts */
 
-	int pics_drawn_nr;
-	int pics_nr;
-	drawn_pic_t *pics;
+	Common::Array<drawn_pic_t> _pics;
 
 	uint32 game_start_time; /**< The time at which the interpreter was started */
 	uint32 last_wait_time; /**< The last time the game invoked Wait() */


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