[Scummvm-cvs-logs] CVS: scummvm/sky compact.cpp,1.4,1.5 compact.h,1.2,1.3 struc.h,1.9,1.10

Oliver Kiehl olki at users.sourceforge.net
Tue Apr 29 15:34:04 CEST 2003


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

Modified Files:
	compact.cpp compact.h struc.h 
Log Message:
adapt code to compact restructure


Index: compact.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sky/compact.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- compact.cpp	27 Apr 2003 22:04:52 -0000	1.4
+++ compact.cpp	29 Apr 2003 22:33:12 -0000	1.5
@@ -40,10 +40,13 @@
 #define COMPACT_SIZE (sizeof(compactOffsets)/sizeof(uint32))
 #define EXTCOMPACT_SIZE (sizeof(extCompactOffsets)/sizeof(uint32))
 #define MEGASET_SIZE (sizeof(megaSetOffsets)/sizeof(uint32))
+#define TURNTABLE_SIZE (sizeof(turnTableOffsets)/sizeof(uint32))
 
 #define OFFS(type,item) (((uint32)(&((type*)0)->item)))
 #define MK32(type,item) OFFS(type, item),0,0,0
 #define MK16(type,item) OFFS(type, item),0
+#define MK32_A5(type, item) MK32(type, item[0]), MK32(type, item[1]), \
+	MK32(type, item[2]), MK32(type, item[3]), MK32(type, item[4])
 
 namespace SkyCompact {
 
@@ -122,6 +125,13 @@
 	MK32(MegaSet, standTalk),
 };
 
+static const uint32 turnTableOffsets[] = {
+	MK32_A5(TurnTable, turnTableUp),
+	MK32_A5(TurnTable, turnTableDown),
+	MK32_A5(TurnTable, turnTableLeft),
+	MK32_A5(TurnTable, turnTableRight),
+	MK32_A5(TurnTable, turnTableTalk),
+};
 
 void *getCompactElem(Compact *cpt, uint32 off) {
 	if (off < COMPACT_SIZE)
@@ -136,33 +146,33 @@
 		return((uint8 *)(cpt->extCompact->megaSet0) + megaSetOffsets[off]);
 
 	off -= MEGASET_SIZE;
-	if (off < 5*5*4)
-		return ((void **)(cpt->extCompact->megaSet0->turnTable))[off/4];
+	if (off < TURNTABLE_SIZE)
+		return ((uint8 *)(cpt->extCompact->megaSet0->turnTable) + turnTableOffsets[off]);
 
-	off -= 5*5*4;
+	off -= TURNTABLE_SIZE;
 	if (off < MEGASET_SIZE)
 		return((uint8 *)(cpt->extCompact->megaSet1) + megaSetOffsets[off]);
 
 	off -= MEGASET_SIZE;
-	if (off < 5*5*4)
-		return ((void **)(cpt->extCompact->megaSet1->turnTable))[off/4];
+	if (off < TURNTABLE_SIZE)
+		return ((uint8 *)(cpt->extCompact->megaSet0->turnTable) + turnTableOffsets[off]);
 
-	off -= 5*5*4;
+	off -= TURNTABLE_SIZE;
 	if (off < MEGASET_SIZE)
 		return((uint8 *)(cpt->extCompact->megaSet2) + megaSetOffsets[off]);
 
 	off -= MEGASET_SIZE;
-	if (off < 5*5*4)
-		return ((void **)(cpt->extCompact->megaSet2->turnTable))[off/4];
+	if (off < TURNTABLE_SIZE)
+		return ((uint8 *)(cpt->extCompact->megaSet0->turnTable) + turnTableOffsets[off]);
 
-	off -= 5*5*4;
+	off -= TURNTABLE_SIZE;
 	if (off < MEGASET_SIZE)
 		return((uint8 *)(cpt->extCompact->megaSet3) + megaSetOffsets[off]);
 
 	off -= MEGASET_SIZE;
-	if (off < 5*5*4)
-		return ((void **)(cpt->extCompact->megaSet3->turnTable))[off/4];
-	off -= 5*5*4;
+	if (off < TURNTABLE_SIZE)
+		return ((uint8 *)(cpt->extCompact->megaSet0->turnTable) + turnTableOffsets[off]);
+	off -= TURNTABLE_SIZE;
 
 	error("Offset %X out of bounds of compact", off + COMPACT_SIZE + EXTCOMPACT_SIZE + 4 * MEGASET_SIZE + 4 * 5*5*4);
 }

Index: compact.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sky/compact.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- compact.h	27 Apr 2003 21:45:28 -0000	1.2
+++ compact.h	29 Apr 2003 22:33:12 -0000	1.3
@@ -912,7 +912,6 @@
 	extern uint16 burke_st_down[];
 	extern uint16 burke_u_to_r[];
 	extern uint16 burke_d_to_r[];
-	extern uint16 *burke_turnTable[5][5];
 	extern ExtCompact burke_ext;
 	extern Compact burke;
 	extern uint16 shake_seq[];
@@ -1318,7 +1317,6 @@
 	extern uint16 babs_t_to_d[];
 	extern uint16 babs_t_to_l[];
 	extern uint16 babs_t_to_r[];
-	extern uint16 *sc36_babs_turnTable[5][5];
 	extern ExtCompact sc36_babs_ext;
 	extern Compact sc36_babs;
 	extern uint16 sc36_col_down4[];
@@ -1536,7 +1534,6 @@
 	extern uint16 spu_d_to_r[];
 	extern uint16 spu_down[];
 	extern uint16 spu_st_up[];
-	extern uint16 *spunky_turnTable[5][5];
 	extern ExtCompact spunky_ext;
 	extern Compact spunky;
 	extern uint16 sc38_video_anim[];
@@ -1601,7 +1598,6 @@
 	extern uint16 shades_l_to_d[];
 	extern uint16 shades_r_to_u[];
 	extern uint16 shades_r_to_l[];
-	extern uint16 *shades_turnTable[5][5];
 	extern ExtCompact shades_ext;
 	extern Compact shades;
 	extern uint16 liftc2_down[];
@@ -2123,7 +2119,6 @@
 	extern uint16 medi_r_to_u[];
 	extern uint16 medi_r_to_d[];
 	extern uint16 medi_r_to_l[];
-	extern uint16 *medi_turnTable[5][5];
 	extern ExtCompact medi_ext;
 	extern Compact medi;
 	extern uint16 sc71_mouse_list[];
@@ -2215,7 +2210,6 @@
 	extern uint16 wit_u_to_r[];
 	extern uint16 wit_r_to_u[];
 	extern uint16 wit_t_to_l[];
-	extern uint16 *witness_turnTable[5][5];
 	extern ExtCompact witness_ext;
 	extern Compact witness;
 	extern uint16 sc72_logic_list[];
@@ -2246,7 +2240,6 @@
 	extern uint16 gal_r_to_u[];
 	extern uint16 gal_r_to_d[];
 	extern uint16 gal_r_to_l[];
-	extern uint16 *gallagher_turnTable[5][5];
 	extern ExtCompact gallagher_ext;
 	extern Compact gallagher;
 	extern uint16 sc73_joey_fight1[];
@@ -2386,7 +2379,6 @@
 	extern uint16 ken_r_to_u[];
 	extern uint16 ken_r_to_d[];
 	extern uint16 ken_r_to_l[];
-	extern uint16 *ken_turnTable[5][5];
 	extern ExtCompact ken_ext;
 	extern Compact ken;
 	extern uint16 sc76_floor_table[];
@@ -2992,7 +2984,6 @@
 	extern uint16 lamb_r_to_u[];
 	extern uint16 lamb_r_to_d[];
 	extern uint16 lamb_r_to_l[];
-	extern uint16 *lamb_turnTable[5][5];
 	extern ExtCompact lamb_ext;
 	extern Compact lamb;
 	extern uint16 bfoster_left[];

Index: struc.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sky/struc.h,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -d -r1.9 -r1.10
--- struc.h	29 Apr 2003 19:52:23 -0000	1.9
+++ struc.h	29 Apr 2003 22:33:13 -0000	1.10
@@ -48,6 +48,14 @@
 	uint16 s_compressed_size;
 };
 
+struct TurnTable {
+	uint16 *turnTableUp[5];
+	uint16 *turnTableDown[5];
+	uint16 *turnTableLeft[5];
+	uint16 *turnTableRight[5];
+	uint16 *turnTableTalk[5];
+};
+
 struct MegaSet {
 	uint16 gridWidth;
 	uint16 colOffset;
@@ -64,7 +72,7 @@
 	uint16 *standLeft;
 	uint16 *standRight;
 	uint16 *standTalk;
-	void *turnTable;
+	TurnTable *turnTable;
 };
 
 struct ExtCompact {





More information about the Scummvm-git-logs mailing list