[Scummvm-cvs-logs] CVS: scummvm/sky logic.cpp,1.49,1.50 compact.cpp,1.8,1.9 compact.h,1.5,1.6

Oliver Kiehl olki at users.sourceforge.net
Mon May 26 12:56:08 CEST 2003


Update of /cvsroot/scummvm/scummvm/sky
In directory sc8-pr-cvs1:/tmp/cvs-serv21522

Modified Files:
	logic.cpp compact.cpp compact.h 
Log Message:
cleanup (add supportive function getTurnTable() )


Index: logic.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sky/logic.cpp,v
retrieving revision 1.49
retrieving revision 1.50
diff -u -d -r1.49 -r1.50
--- logic.cpp	26 May 2003 19:38:44 -0000	1.49
+++ logic.cpp	26 May 2003 19:55:28 -0000	1.50
@@ -301,8 +301,7 @@
 		// ok, setup turning
 		_compact->extCompact->dir = *(sequence + 1);
 
-		uint16 **tt = (uint16 **)SkyCompact::getCompactElem(_compact,
-				C_TURN_TABLE + _compact->extCompact->megaSet + dir * 20);
+		uint16 **tt = SkyCompact::getTurnTable(_compact,_compact->extCompact->megaSet, dir);
 		if (tt[_compact->extCompact->dir]) {
 			_compact->extCompact->turnProg = tt[_compact->extCompact->dir];
 			_compact->logic = L_AR_TURNING;
@@ -1247,11 +1246,10 @@
 uint32 SkyLogic::fnTurnTo(uint32 dir, uint32 b, uint32 c) {
 	// turn compact to direction dir
 
-	uint16 curDir = _compact->extCompact->dir * 20; // get current direction
+	uint16 curDir = _compact->extCompact->dir; // get current direction
 	_compact->extCompact->dir = (uint16)(dir & 0xffff); // set new direction
 
-	uint16 **tt = (uint16 **)SkyCompact::getCompactElem(_compact,
-			C_TURN_TABLE + _compact->extCompact->megaSet + curDir);
+	uint16 **tt = SkyCompact::getTurnTable(_compact, _compact->extCompact->megaSet, curDir);
 
 	if (!tt[dir])
 		return 1; // keep going

Index: compact.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sky/compact.cpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -d -r1.8 -r1.9
--- compact.cpp	26 May 2003 19:38:48 -0000	1.8
+++ compact.cpp	26 May 2003 19:55:28 -0000	1.9
@@ -65,6 +65,24 @@
 	}
 }
 
+uint16 **getTurnTable(Compact *cpt, uint16 megaSet, uint16 dir) {
+	MegaSet *m = getMegaSet(cpt, megaSet);
+	switch (dir) {
+	case 0:
+		return m->turnTable->turnTableUp;
+	case 1:
+		return m->turnTable->turnTableDown;
+	case 2:
+		return m->turnTable->turnTableLeft;
+	case 3:
+		return m->turnTable->turnTableRight;
+	case 4:
+		return m->turnTable->turnTableTalk;
+	default:
+		error("No TurnTable (%d) in MegaSet (%d)", dir, megaSet);
+	}
+}
+
 uint16 *getSub(Compact *cpt, uint16 mode) {
 	switch (mode) {
 	case 0:

Index: compact.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sky/compact.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- compact.h	26 May 2003 19:38:48 -0000	1.5
+++ compact.h	26 May 2003 19:55:28 -0000	1.6
@@ -28,6 +28,7 @@
 
 namespace SkyCompact {
 	MegaSet *getMegaSet(Compact *cpt, uint16 megaSet);
+	uint16 **getTurnTable(Compact *cpt, uint16 megaSet, uint16 dir);
 	uint16 *getSub(Compact *cpt, uint16 mode);
 	void *getCompactElem(Compact *cpt, uint32 off);
 





More information about the Scummvm-git-logs mailing list