[Scummvm-cvs-logs] SF.net SVN: scummvm: [24092] scummvm/trunk/engines/agos

kirben at users.sourceforge.net kirben at users.sourceforge.net
Tue Oct 3 12:01:20 CEST 2006


Revision: 24092
          http://svn.sourceforge.net/scummvm/?rev=24092&view=rev
Author:   kirben
Date:     2006-10-03 03:01:08 -0700 (Tue, 03 Oct 2006)

Log Message:
-----------
Remove blocks/tiles related code for PP, which was only required by unreleased game

Modified Paths:
--------------
    scummvm/trunk/engines/agos/agos.cpp
    scummvm/trunk/engines/agos/agos.h
    scummvm/trunk/engines/agos/event.cpp
    scummvm/trunk/engines/agos/items.cpp
    scummvm/trunk/engines/agos/module.mk
    scummvm/trunk/engines/agos/vga.cpp

Removed Paths:
-------------
    scummvm/trunk/engines/agos/rules.cpp

Modified: scummvm/trunk/engines/agos/agos.cpp
===================================================================
--- scummvm/trunk/engines/agos/agos.cpp	2006-10-03 00:31:24 UTC (rev 24091)
+++ scummvm/trunk/engines/agos/agos.cpp	2006-10-03 10:01:08 UTC (rev 24092)
@@ -296,7 +296,6 @@
 	_vgaWaitFor = 0;
 	_lastVgaWaitFor = 0;
 
-	_overlayAnimationZone = 0;
 	_vgaCurZoneNum = 0;
 	_vgaCurSpriteId = 0;
 	_vgaCurSpritePriority = 0;
@@ -387,15 +386,6 @@
 	_oracleMaxScrollY = 0;
 	_noOracleScroll = 0;
 
-	_droppingBlockAnim = 0;
-	_droppingBlockLength = 0;
-	_droppingBlockCount = 0;
-	_droppingBlockLand = 0;
-	_droppingBlockType = 0;
-	_droppingBlockX = 0;
-	_droppingBlockY = 0;
-	_droppingBlockZ = 0;
-
 	_sdlMouseX = 0;
 	_sdlMouseY = 0;
 

Modified: scummvm/trunk/engines/agos/agos.h
===================================================================
--- scummvm/trunk/engines/agos/agos.h	2006-10-03 00:31:24 UTC (rev 24091)
+++ scummvm/trunk/engines/agos/agos.h	2006-10-03 10:01:08 UTC (rev 24092)
@@ -302,15 +302,6 @@
  	uint16 _oracleMaxScrollY, _noOracleScroll;
  	uint16 _interactY;
 
-	uint16 _droppingBlockAnim;
-	uint16 _droppingBlockLength;
-	uint16 _droppingBlockCount;
-	uint16 _droppingBlockLand;
-	uint16 _droppingBlockType;
-	uint16 _droppingBlockX;
-	uint16 _droppingBlockY;
-	uint16 _droppingBlockZ;
-
 	int16 _scriptVerb, _scriptNoun1, _scriptNoun2;
 	int16 _scriptAdj1, _scriptAdj2;
 
@@ -405,7 +396,6 @@
 
 	uint16 _zoneNumber;
 	uint16 _vgaWaitFor, _lastVgaWaitFor;
-	uint16 _overlayAnimationZone;
 	uint16 _vgaCurSpriteId, _vgaCurZoneNum;
 	uint16 _vgaCurSpritePriority;
 
@@ -654,19 +644,6 @@
 	void mouseOff();
 	void mouseOn();
 
-	bool block0Supported(int i, int y);
-	bool block1Supported(int i, int y);
-	void checkTiles();
-	void moveBlocks();
-	void dropBlock(int id, int priority, int num);
-	void droppingBlock();
-	void stopBlock(int id, int num);
-	void remove0Block(int i);
-	void remove1Block(int i);
-	void pairCheck();
-	void gravityCheck();
-	bool hasBlockLanded(int16 yofs, int16 block, int16 priority, int16 type, int16 x, int16 y, int16 z);
-
 	bool loadTablesIntoMem(uint subr_id);
 	bool loadTablesOldIntoMem(uint subr_id);
 	bool loadTablesNewIntoMem(uint subr_id);
@@ -1090,11 +1067,9 @@
 	// Opcodes, Puzzle Pack only
 	void o4_iconifyWindow();
 	void o4_restoreOopsPosition();
-	void o4_checkTiles();
 	void o4_loadMouseImage();
 	void o4_message();
 	void o4_setShortText();
-	void o4_animate();
 	void o4_loadHiScores();
 	void o4_checkHiScores();
 	void o4_sync();
@@ -1128,8 +1103,6 @@
 
 	void startOverlayAnims();
 	void startAnOverlayAnim();
-	void startBlock(uint windowNum, uint vga_res, uint vga_sprite_id, uint x, uint y, uint priority);
-	void checkIfClickedOnBlock();
 
 	bool itemIsSiblingOf(uint16 val);
 	bool itemIsParentOf(uint16 a, uint16 b);

Modified: scummvm/trunk/engines/agos/event.cpp
===================================================================
--- scummvm/trunk/engines/agos/event.cpp	2006-10-03 00:31:24 UTC (rev 24091)
+++ scummvm/trunk/engines/agos/event.cpp	2006-10-03 10:01:08 UTC (rev 24092)
@@ -326,18 +326,6 @@
 			_syncFlag2 ^= 1;
 			if (!_syncFlag2) {
 				processVgaEvents();
-				if (getBitFlag(98)) {
-					if (!getBitFlag(97)) {
-						pairCheck();
-						gravityCheck();
-					}
-					if (_leftButtonDown || _rightButtonDown)
-						checkIfClickedOnBlock();
-					if (getBitFlag(99)) {
-						moveBlocks();
-					}
-					droppingBlock();
-				}
 			} else {
 				if (_scrollCount == 0) {
 					_lockWord &= ~2;

Modified: scummvm/trunk/engines/agos/items.cpp
===================================================================
--- scummvm/trunk/engines/agos/items.cpp	2006-10-03 00:31:24 UTC (rev 24091)
+++ scummvm/trunk/engines/agos/items.cpp	2006-10-03 10:01:08 UTC (rev 24092)
@@ -440,14 +440,13 @@
 	op[23] = &AGOSEngine::o3_chance;
 	op[30] = &AGOSEngine::o4_iconifyWindow;
 	op[32] = &AGOSEngine::o4_restoreOopsPosition;
-	op[37] = &AGOSEngine::o4_checkTiles;
 	op[38] = &AGOSEngine::o4_loadMouseImage;
 	op[63] = &AGOSEngine::o4_message;
 	op[65] = &AGOSEngine::o3_addTextBox;
 	op[66] = &AGOSEngine::o4_setShortText;
 	op[70] = &AGOSEngine::o3_printLongText;
 	op[83] = &AGOSEngine::o2_rescan;
-	op[98] = &AGOSEngine::o4_animate;
+	op[98] = &AGOSEngine::o2_animate;
 	op[99] = &AGOSEngine::o2_stopAnimate;
 	op[105] = &AGOSEngine::o4_loadHiScores;
 	op[106] = &AGOSEngine::o4_checkHiScores;
@@ -2479,12 +2478,6 @@
 	}
 }
 
-void AGOSEngine::o4_checkTiles() {
-	// 37: for MahJongg game
-	getVarOrByte();
-	checkTiles();
-}
-
 void AGOSEngine::o4_loadMouseImage() {
 	// 38: load mouse image
 	getNextItemPtr();
@@ -2515,22 +2508,6 @@
 	}
 }
 
-void AGOSEngine::o4_animate() {
-	// 98: start vga
-	uint vga_res = getVarOrWord();
-	uint vgaSpriteId = getVarOrWord();
-	uint windowNum = getVarOrByte();
-	uint x = getVarOrWord();
-	uint y = getVarOrWord();
-	uint palette = getVarOrWord();
-
-	if (getBitFlag(96)) {
-		startBlock(windowNum, vga_res, vgaSpriteId, x, y, palette);
-	} else {
-		loadSprite(windowNum, vga_res, vgaSpriteId, x, y, palette);
-	}
-}
-
 void AGOSEngine::o4_loadHiScores() {
 	// 105: load high scores
 	getVarOrByte();

Modified: scummvm/trunk/engines/agos/module.mk
===================================================================
--- scummvm/trunk/engines/agos/module.mk	2006-10-03 00:31:24 UTC (rev 24091)
+++ scummvm/trunk/engines/agos/module.mk	2006-10-03 10:01:08 UTC (rev 24092)
@@ -17,7 +17,6 @@
 	oracle.o \
 	res.o \
 	rooms.o \
-	rules.o \
 	saveload.o \
 	sound.o \
 	string.o \

Deleted: scummvm/trunk/engines/agos/rules.cpp
===================================================================
--- scummvm/trunk/engines/agos/rules.cpp	2006-10-03 00:31:24 UTC (rev 24091)
+++ scummvm/trunk/engines/agos/rules.cpp	2006-10-03 10:01:08 UTC (rev 24092)
@@ -1,841 +0,0 @@
-/* ScummVM - Scumm Interpreter
- * Copyright (C) 2001  Ludvig Strigeus
- * Copyright (C) 2001-2006 The ScummVM project
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
-
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
-
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * $URL$
- * $Id: vga.cpp 24023 2006-09-30 02:15:02Z kirben $
- *
- */
-
-#include "common/stdafx.h"
-
-#include "common/system.h"
-
-#include "agos/agos.h"
-
-namespace AGOS {
-
-static const byte tileDefs[] = {
-	2,0,0,0,
-	3,0,0,0,
-	2,0,4,0,
-	3,0,5,0,
-	4,0,6,0,
-	5,0,7,0,
-	6,0,8,0,
-	7,0,9,0,
-	8,0,10,0,
-	9,0,11,0,
-	10,0,0,0,
-	11,0,0,0,
-	14,85,0,0,
-	15,86,0,0,
-	14,85,16,87,
-	15,86,17,88,
-	16,87,18,89,
-	17,88,19,90,
-	18,89,0,0,
-	19,90,0,0,
-	22,0,0,0,
-	23,91,0,0,
-	22,0,24,92,
-	23,91,25,93,
-	24,92,26,94,
-	25,93,27,95,
-	26,94,28,96,
-	27,95,29,0,
-	28,96,0,0,
-	29,0,0,0,
-	32,0,0,0,
-	31,0,33,0,
-	32,0,34,97,
-	33,0,35,98,
-	34,97,36,99,
-	35,98,37,100,
-	36,99,38,101,
-	37,100,39,102,
-	38,101,40,0,
-	39,102,41,0,
-	40,0,42,0,
-	41,0,0,0,
-	44,0,0,0,
-	43,0,45,0,
-	44,0,46,103,
-	45,0,47,104,
-	46,103,48,105,
-	47,104,49,106,
-	48,105,50,107,
-	49,106,51,108,
-	50,107,52,0,
-	51,108,53,0,
-	52,0,54,0,
-	53,0,0,0,
-	56,0,0,0,
-	57,109,0,0,
-	56,0,58,110,
-	57,109,59,111,
-	58,110,60,112,
-	59,111,61,113,
-	60,112,62,114,
-	61,113,63,0,
-	62,114,0,0,
-	63,0,0,0,
-	66,115,0,0,
-	67,116,0,0,
-	66,115,68,117,
-	67,116,69,118,
-	68,117,70,119,
-	69,118,71,120,
-	70,119,0,0,
-	71,120,0,0,
-	74,0,0,0,
-	75,0,0,0,	
-	74,0,76,0,
-	75,0,77,0,
-	76,0,78,0,
-	77,0,79,0,
-	78,0,80,0,
-	79,0,81,0,
-	80,0,82,0,
-	81,0,83,0,
-	82,0,0,0,
-	83,0,0,0,
-	86,0,0,0,
-	87,0,0,0,
-	86,0,88,0,
-	87,0,89,0,
-	88,0,0,0,
-	89,0,0,0,	
-	92,121,0,0,
-	93,122,0,0,
-	92,121,94,123,
-	93,122,95,124,
-	94,123,0,0,
-	95,124,0,0,
-	98,125,0,0,
-	99,126,0,0,
-	98,125,100,127,
-	99,126,101,128,
-	100,127,0,0,
-	101,128,0,0,
-	104,129,0,0,
-	105,130,0,0,
-	104,129,106,131,
-	105,130,107,132,
-	106,131,0,0,
-	107,132,0,0,
-	110,133,0,0,
-	111,134,0,0,
-	110,133,112,135,
-	111,134,113,136,
-	112,135,0,0,
-	113,136,0,0,
-	116,0,0,0,
-	117,0,0,0,
-	116,0,118,0,
-	117,0,119,0,
-	118,0,0,0,
-	119,0,0,0,
-	122,0,0,0,
-	123,0,0,0,			
-	122,0,0,0,	
-	123,0,0,0,
-	126,137,0,0,
-	127,138,0,0,
-	126,137,0,0,
-	127,138,0,0,
-	130,139,0,0,
-	131,140,0,0,
-	130,139,0,0,
-	131,140,0,0,
-	134,0,0,0,
-	135,0,0,0,
-	134,0,0,0,
-	135,0,0,0,
-	0,0,0,0,
-	0,0,0,0,
-	0,0,0,0,
-	0,0,0,0,
-	0,0,0,0,	
-	31,0,43,0,
-	42,0,54,0,
-	143,0,0,0,
-};
-
-static const byte tileDefs1[] = {
-	14,13,14,15,0,0,0,0,
-	15,14,15,16,0,0,0,0,
-	16,15,16,17,0,0,0,0,
-	17,16,17,18,0,0,0,0,
-	18,17,18,19,0,0,0,0,
-	19,18,19,20,0,0,0,0,
-	23,22,23,24,0,0,0,0,
-	24,23,24,25,0,0,0,0,
-	25,24,25,26,0,0,0,0,
-	26,25,26,27,0,0,0,0,
-	27,26,27,28,0,0,0,0,
-	28,27,28,29,0,0,0,0,
-	34,33,34,35,0,0,0,0,
-	35,34,35,36,0,0,0,0,
-	36,35,36,37,0,0,0,0,
-	37,36,37,38,0,0,0,0,
-	38,37,38,39,0,0,0,0,
-	39,38,39,40,0,0,0,0,
-	46,45,46,47,0,0,0,0,
-	47,46,47,48,0,0,0,0,
-	48,47,48,49,0,0,0,0,
-	49,48,49,50,0,0,0,0,
-	50,49,50,51,0,0,0,0,
-	51,50,51,52,0,0,0,0,
-	57,56,57,58,0,0,0,0,
-	58,57,58,59,0,0,0,0,
-	59,58,59,60,0,0,0,0,
-	60,59,60,61,0,0,0,0,
-	61,60,61,62,0,0,0,0,
-	62,61,62,63,0,0,0,0,
-	66,65,66,67,0,0,0,0,
-	67,66,67,68,0,0,0,0,
-	68,67,68,69,0,0,0,0,
-	69,68,69,70,0,0,0,0,
-	70,69,70,71,0,0,0,0,
-	71,70,71,72,0,0,0,0,
-	92,91,92,93,0,0,0,0,
-	93,92,93,94,0,0,0,0,
-	94,93,94,95,0,0,0,0,
-	95,94,95,96,0,0,0,0,
-	98,97,98,99,0,0,0,0,
-	99,98,99,100,0,0,0,0,
-	100,99,100,101,0,0,0,0,
-	101,100,101,102,0,0,0,0,
-	104,103,104,105,0,0,0,0,
-	105,104,105,106,0,0,0,0,
-	106,105,106,107,0,0,0,0,
-	107,106,107,108,0,0,0,0,
-	110,109,110,111,0,0,0,0,
-	111,110,111,112,0,0,0,0,
-	112,111,112,113,0,0,0,0,
-	113,112,113,114,0,0,0,0,
-	126,125,126,127,0,0,0,0,
-	127,126,127,128,0,0,0,0,
-	130,129,130,131,0,0,0,0,
-	131,130,131,132,0,0,0,0,
-	137,0,138,0,139,0,140,0,
-	0,0,0,0,0,0,0,0,
-	0,0,0,0,0,0,0,0,
-};
-
-bool AGOSEngine::block0Supported(int i, int y) {
-	if (y == 0) {
-		// Always supported at bottom level
-		return true;
-	}
-
-	int a = _variableArray[i];
-
-	while(1) {
-		if (_variableArray[i - 8] != 0) {
-			// Supported
-			return true;
-		}
-
-		i++;
-
-		if (_variableArray[i] != a) {
-			// Got to end of block and found no support
-			return false;
-		}
-	}
-}
-
-bool AGOSEngine::block1Supported(int i, int y) {
-	if (y == 0) {
-		// Always supported at bottom level
-		return true;
-	}
-
-	int a = _variableArray[i];
-
-	while(1) {
-		if(_variableArray[i - 8] != 0) {
-			// Supported
-			return true;
-		}
-
-		i += 128;
-
-		if (_variableArray[i] != a) {
-			// Got to end of block and found no support
-			return false;
-		}
-	}
-}
-
-void AGOSEngine::checkTiles() {
-	printf("checkTiles\n");
-
-	const byte *tile;
-	uint i, slot;
-
-	slot = _variableArray[400] - 1;
-
-	tile = &tileDefs[slot * 4 + 1];
-	for (i = 0; i < 2; i++) {
-		if (tile[1] != 0 && findBox(tile[1]) != 0)
-			continue;
-		if (tile[0] != 0)
-			enableBox(tile[0]);
-		tile += 2;
-	}
-
-	tile = &tileDefs1[slot * 8 + 1];
-	for (i = 0; i < 4; i++) {
-		if (tile[1] != 0 && findBox(tile[1]) != 0)
-			continue;
-		if (tile[0] != 0)
-			enableBox(tile[0]);
-		tile += 2;
-	}
-}
-
-void AGOSEngine::moveBlocks() {
-	printf("moveBlocks\n");
-
-	VgaSprite *vsp;
-	const byte *vcPtrOrg;
-	uint16 tmp;
-	uint num, i;
-
-	num = _variableArray[414] + 1;
-
-	for (i = 0; i < num; i++) {
-		_vgaCurSpriteId = _variableArray[410];
-		_vgaCurZoneNum = 60;
-
-		vsp = findCurSprite();
-		vsp->x += _variableArray[411];
-		vsp->y += _variableArray[412];
-
-		tmp = to16Wrapper(_variableArray[413]);
-
-		vcPtrOrg = _vcPtr;
-		_vcPtr = (byte *)&tmp;
-		vc23_setSpritePriority();
-		_vcPtr = vcPtrOrg;
-		
-		_variableArray[410] += 1;
-		_variableArray[413] -= 8;
-	}
-
-	setBitFlag(99, false);
-	_marks |= (1 << 1);
-}
-
-void AGOSEngine::dropBlock(int id, int priority, int num) {
-	VgaSprite *vsp;
-	const byte *vcPtrOrg;
-	uint16 tmp;
-	int i;
-
-	for (i = 0; i < num; i++) {
-		_vgaCurSpriteId = id;
-		_vgaCurZoneNum = 60;
-
-		vsp = findCurSprite();
-		vsp->y += 20;
-
-		tmp = to16Wrapper(priority);
-
-		vcPtrOrg = _vcPtr;
-		_vcPtr = (byte *)&tmp;
-		vc23_setSpritePriority();
-		_vcPtr = vcPtrOrg;
-		
-		id += 1;
-		priority -= 8;
-	}
-}
-
-void AGOSEngine::droppingBlock() {
-	printf("droppingBlock\n");
-
-	if (_droppingBlockAnim == 0)
-		return;
-
-	printf("droppingBlock\n");
-
-	VgaSprite *vsp;
-	const byte *vcPtrOrg;
-	uint i, result, speed;
-	uint16 tmp;
-
-	speed = (getBitFlag(82) != 0) ? 10 : 5;
-	for (i = 0; i < _droppingBlockLength; i++) {
-		_vgaCurSpriteId = _droppingBlockAnim + i;
-		_vgaCurZoneNum = 60;
-		vsp = findCurSprite();
-		vsp->y += speed;
-	}
-
-	_vgaCurSpriteId = _droppingBlockAnim;
-	_vgaCurZoneNum = 60;
-	vsp = findCurSprite();
-
-	result = _droppingBlockCount - 1;
-	if (result  == 0 || (speed == 10 && result == 2)) {
-		result = hasBlockLanded(vsp->y, _droppingBlockAnim, vsp->priority, _droppingBlockType, _droppingBlockX, _droppingBlockY, _droppingBlockZ);
-		result += 4;
-		if (result == 0) {
-			_droppingBlockAnim = 0;
-			_droppingBlockLand = 0;
-			setBitFlag(94, 0);
-		}
-	}
-
-	_droppingBlockCount = result;
-	if (result == 3) {
-		for (i = 0; i < _droppingBlockLength; i++) {
-			vsp = findCurSprite();
-
-			tmp = to16Wrapper(vsp->priority - 64);
-
-			vcPtrOrg = _vcPtr;
-			_vcPtr = (byte *)&tmp;
-			vc23_setSpritePriority();
-			_vcPtr = vcPtrOrg;
-	
-			_vgaCurSpriteId += 1;
-		}
-	}
-
-	if (_droppingBlockLand == 0) {
-		droppingBlock();
-	}
-}
-
-
-void AGOSEngine::stopBlock(int id, int num) {
-	const byte *vcPtrOrg;
-	uint16 i, items[2];
-
-	for (i = 0; i < num; i++) {
-		items[0] = to16Wrapper(60);
-		items[1] = to16Wrapper(id);
-
-		vcPtrOrg = _vcPtr;
-		_vcPtr = (byte *)&items;
-		vc60_killSprite();
-		_vcPtr = vcPtrOrg;
-
-		id++;
-	}
-}
-
-void AGOSEngine::remove0Block(int i) {
-	int a = _variableArray[i];
-	if(a == 0)
-		return;
-	while (_variableArray[i] == a)
-		_variableArray[i++] = 0;
-	stopBlock(a, 0);
-	a = a & 0xff80;		// Point to flags 420 - 425 containing counts
-	a = a / 128;		// For each colour block
-	a += 419;					
-	_variableArray[a]--;
-}
-
-void AGOSEngine::remove1Block(int i) {
-	int a = _variableArray[i];
-	int b = -1;
-	if (a == 0)
-		return;
-	while (_variableArray[i] == a) {
-		_variableArray[i] = 0;
-		i += 128;
-		b++;
-	}
-	stopBlock(a, b);
-	a = a & 0xff80;		// Point to flags 420 - 425 containing counts
-	a -= 1024;
-	a = a / 128;		// for each colour block
-	a += 419;					
-	_variableArray[a]--;
-}
-
-void AGOSEngine::pairCheck() {
-	printf("pairCheck\n");
-
-	int i, j, j1, k;
-	int x, y, z;
-	int flag;
-	int block;
-	int blockColour;
-	int pairsList0[50][2];
-	int pairsList1[50][2];
-
-	j = 0;
-
-	// For each level
-	for (y = 0; y < 16; y++) {
-		// Check Type 0 blocks - blocks totally covered by others
-		// further away along Z axis
-
- 		for (z = 0; z < 7; z++) {
-			flag = 1000 + z * 128 + y * 8;
-			// This assumes minimum block length of 3
-			for (x = 0; x < 6; x++) {
-				block = _variableArray[flag + x];
-				blockColour = block & 0xff80;
-				if (block < 999 && block != 0) {
-					i = x;
-					while (1) {
-						// Not same colour?
-						if (((_variableArray[flag + x + 128]) & 0xff80) != blockColour) {
-							// To end of block
-							x++;
-							while (_variableArray[flag + x] == block)
-								x++;
-							x--;
-							break;
-						}
-						x++;
-						if (_variableArray[flag + x] != block) {
-							// Got a pair
-							i += flag;
-							k = i + 128;
-							block = _variableArray[k];
-							// Back to start of covering block
-							k--;
-							while (_variableArray[k] == block)
-								k--;
-							k++;
-							if (block0Supported(i, y) && block0Supported(k, y)) {
-								// Form a list and remove blocks when finished check
-								pairsList0[j][0] = i;
-								pairsList0[j++][1] = k;
-							}
-							x--;
-							break;
-						}
-					}
-				}
-			}
-		}
-
-		// Check Type 0 blocks - blocks totally covered by others
-		// further towards along Z axis
-
- 		for (z = 7; z > 0; z--) {
-			flag = 1000 + z * 128 + y * 8;
-			// This assumes minimum block length of 3
-			for (x = 0; x < 6; x++) {
-				block = _variableArray[flag + x];
-				blockColour = block & 0xff80;
-				if (block < 999 && block != 0) {
-					i = x;
-					while (1) {
-						// Not same colour
-						if (((_variableArray[flag + x - 128]) & 0xff80) != blockColour) {
-							// To end of block
-							x++;
-							while (_variableArray[flag + x] == block)
-								x++;
-							x--;
-							break;
-						}
-						x++;
-						if (_variableArray[flag + x] != block) {
-							// Got a pair
-							i += flag;
-							k = i - 128;
-							block = _variableArray[k];
-							// Back to start of covering block
-							k--;
-							while (_variableArray[k]==block)
-								k--;
-							k++;
-							if (block0Supported(i, y) && block0Supported(k, y)) {
-								// Form a list and remove blocks when finished check
-								pairsList0[j][0] = i;
-								pairsList0[j++][1] = k;
-							}
-							x--;
-							break;
-						}
-					}	
-				}
-			}
-		}
-	}
-
-	j1 = 0;
-
-	// For each level
-	for (y = 0; y < 16; y++) {
-		// Check Type 1 blocks - blocks totally covered by others
-		// further right along X axis
-
-		for (x = 0; x < 7; x++) {
-			flag = 1000 + x + y * 8;
-			// This assumes minimum block length of 3
-			for (z = 0; z < (6 * 128); z += 128) {
-				block = _variableArray[flag + z];
-				blockColour = block & 0xff80;
-				if (block > 999) {
-					i = z;
-					while (1) {
-						// Not the same colour?
-						if (((_variableArray[flag + z + 1]) & 0xff80) != blockColour) {
-							z += 128;
-							// To end of block
-							while (_variableArray[flag + z] == block)
-								z += 128;
-							z -= 128;
-							break;
-						}
-						z += 128;
-						if (_variableArray[flag + z] != block) {
-							// Got a pair
-							i += flag;
-							k = i + 1;
-							block = _variableArray[k];
-							k -= 128;
-							// Back to start of covering block
-							while (_variableArray[k] == block)
-								k -= 128;
-							k += 128;
-							if (block1Supported(i, y) && block1Supported(k, y)) {
-								// Form a list and remove blocks when finished check
-								pairsList1[j1][0] = i;
-								pairsList1[j1++][1] = k;
-							}
-							z -= 128;
-							break;
-						}
-					}	
-				}
-			}
-		}
-
-		// Check Type 1 blocks - blocks totally covered by others
-		// further left along X axis
-
-		for (x = 7; x > 0; x--) {
-			flag = 1000 + x + y * 8;
-			// This assumes minimum block length of 3
-			for (z = 0; z < (6 * 128); z += 128) {
-				block = _variableArray[flag + z];
-				blockColour = block & 0xff80;
-				if (block > 999) {
-					i = z;
-					while (1) {
-						// Not same colour?
-						if (((_variableArray[flag + z - 1]) & 0xff80) != blockColour)
-						{
-							z += 128;
-							// To end of block
-							while (_variableArray[flag + z] == block)
-								z += 128;
-							z -= 128;
-							break;
-						}
-						z += 128;
-						if (_variableArray[flag + z] != block) {
-							// Got a pair
-							i += flag;
-							k = i - 1;
-							block = _variableArray[k];
-							k -= 128;
-							// Back to start of covering block
-							while (_variableArray[k] == block)
-								k -= 128;
-							k += 128;
-							if (block1Supported(i, y) && block1Supported(k, y)) {
-								// Form a list and remove blocks when finished check
-								pairsList1[j1][0] = i;
-								pairsList1[j1++][1] = k;
-							}
-							z -= 128;
-							break;
-						}
-					}	
-				}
-			}
-		}
-	}
-
-	// Remove any pairs
-
-	if (j != 0) {
-		for (i = 0; i < j; i++) {
-			remove0Block(pairsList0[i][0]);
-			remove0Block(pairsList0[i][1]);
-		}
-	}
-
-	if (j1 != 0) {
-		for (i = 0; i < j1; i++) {
-			remove1Block(pairsList1[i][0]);
-			remove1Block(pairsList1[i][1]);
-		}
-	}
-}
-
-void AGOSEngine::gravityCheck() {
-	printf("gravityCheck\n");
-
-	int i, k;
-	int x, y, z;
-	int flag;
-	int block;
-
-	// For each level
-	for (y = 1; y < 16; y++) {
-		// Check Type 0 blocks
-		for (z = 0; z < 8; z++) {
-			flag = 1000 + z * 128 + y * 8;
-			// This assumes minimum block length of 3
-			for (x = 0; x < 6; x++) {
-				block = _variableArray[flag + x];
-				if (block < 999 && block != 0) {
-					i = x;
-					while (1) {
-						// Can't drop?
-						if (_variableArray[flag + x - 8] != 0) {
-							x++;
-							// To end of block
-							while (_variableArray[flag + x] == block)
-								;
-							x--;
-							break;
-						}
-						x++;
-						// Can drop?
-						if (_variableArray[flag + x] != block) {
-							x = i;
-							while (_variableArray[flag + x] == block) {
-								_variableArray[flag + x] = 0;
-								_variableArray[flag + x - 8] = block;
-								x++;
-							}
-							dropBlock(block, (y - 1) * 64 + (8 - z) * 8 + i, 0);
-							x--;
-							break;
-						}
-					}	
-				}
-			}
-		}
-
-		// Check Type 1 blocks
-
-		for (x = 0; x < 8; x++) {
-			flag = 1000 + y * 8 + x;
-			for (z = 0; z < (6 * 128); z += 128) {
-				block = _variableArray[flag + z];
-				if (block > 999) {
-					i = z;
-					while (1) {
-						// Can't drop?
-						if (_variableArray[flag + z - 8] != 0) {
-							z += 128;
-							// To end of block
-							while (_variableArray[flag + z] == block)
-								z += 128;
-							z -= 128;
-							break;
-						}
-						z += 128;
-						// Can drop?
-						if (_variableArray[flag + z] != block) {
-							z = i;
-							k = -1;
-							while (_variableArray[flag + z] == block) {
-								_variableArray[flag + z] = 0;
-								_variableArray[flag + z - 8] = block;
-								z += 128;
-								k++;
-							}
-							dropBlock(block, (y - 1) * 64 + (8 - i / 128) * 8 + x, k);
-							z -= 128;
-							break;
-						}
-					}	
-				}
-			}
-		}
-	}
-}
-
-bool AGOSEngine::hasBlockLanded(int16 yofs, int16 block, int16 priority, int16 type, int16 x, int16 y, int16 z) {
-	if (type == 1) {
-		x++;
-		z--;
-	}
-
-	if (y > 15)
-		return true;
-
-	bool fail = false;
-	
-	if (y == 15) {
-		// Failed if land on top level, or ceiling dropped to one level
-		fail = true;
-	}
-
-	if (_variableArray[432] > 2 && y + _variableArray[432] > 16) {
-		// above landed block
-		fail = true;
-	}
-
-	int flag = 1000 + z * 128 + y * 8 + x;
-
-	if (type == 0) {
-		if (y != 0 && _variableArray[flag - 8] == 0 && _variableArray[flag + 1 - 8] == 0 && _variableArray[flag + 2 - 8] == 0) {
-			return true;
-		}
-
-		_variableArray[flag] = block;
-		_variableArray[flag + 1] = block;
-		_variableArray[flag + 2] = block;
-
-		if (fail) {
-			_variableArray[254] = 6070;
-		} else {
-			// Start next block
-			sendSync(6007);
-		}
-		return false;
-	}
-
-	if (y != 0 && _variableArray[flag - 8] == 0 && _variableArray[flag + 128 - 8] == 0 && _variableArray[flag + 256 - 8] == 0) {
-		return true;
-	}
-
-	_variableArray[flag] = block;
-	_variableArray[flag +128] = block;
-	_variableArray[flag + 256] = block;
-
-	if (fail) {
-		_variableArray[254] = 6070;
-	} else {
-		// Start next block
-		sendSync(6007);
-	}
-	return false;
-}
-
-} // End of namespace AGOS

Modified: scummvm/trunk/engines/agos/vga.cpp
===================================================================
--- scummvm/trunk/engines/agos/vga.cpp	2006-10-03 00:31:24 UTC (rev 24091)
+++ scummvm/trunk/engines/agos/vga.cpp	2006-10-03 10:01:08 UTC (rev 24092)
@@ -2977,12 +2977,11 @@
 }
 
 void AGOSEngine::startOverlayAnims() {
-	printf("startOverlayAnims\n");
-
 	VgaSprite *vsp = _vgaSprites;
+	uint16 zoneNum;
 	int i;
 
-	_overlayAnimationZone = _variableArray[999];
+	zoneNum = _variableArray[999];
 	
 	for (i = 0; i < 600; i++) {
 		if (_variableArray[1000 + i] < 100)
@@ -3004,19 +3003,17 @@
 			vsp->x = (i % 20) * 32;
 		}
 		vsp->id = 1000 + i;
-		vsp->zoneNum = _overlayAnimationZone;
+		vsp->zoneNum = zoneNum;
 	}
 }
 
 void AGOSEngine::startAnOverlayAnim() {
-	printf("startAnOverlayAnim\n");
-
 	VgaSprite *vsp = _vgaSprites;
 	const byte *vcPtrOrg;
-	uint16 a, sprite, file, tmp;
+	uint16 a, sprite, file, tmp, zoneNum;
 	int16 x;
 
-	_overlayAnimationZone = _variableArray[999];
+	zoneNum = _variableArray[999];
 
 	_vcPtr += 4;
 	a = vcReadNextWord();
@@ -3040,7 +3037,7 @@
 	vsp->y = x / 20 * 32;
 	vsp->x = x % 20 * 32;;
 	vsp->id = vcReadVar(a);
-	vsp->zoneNum = _overlayAnimationZone;
+	vsp->zoneNum = zoneNum;
 
 	sprite = _vgaCurSpriteId;
 	file = _vgaCurZoneNum;
@@ -3059,158 +3056,4 @@
 	_vgaCurZoneNum = file;
 }
 
-void AGOSEngine::startBlock(uint windowNum, uint zoneNum, uint vgaSpriteId, uint x, uint y, uint priority) {
-	printf("startBlock: windowNum %d vgaSpriteId %d x %d y %d priority %d\n", windowNum, vgaSpriteId, x, y, priority);
-
-	VgaSprite *vsp = _vgaSprites;
-	const byte *vcPtrOrg;
-	uint16 sprite, tmp, zone;
-	uint i;
-
-	_lockWord |= 0x40;
-
-	while (vsp->id != 0)
-		vsp++;
-
-	_variableArray[201] = vgaSpriteId;
-
-	if (getBitFlag(95)) {
-		_droppingBlockAnim = vgaSpriteId;
-		_droppingBlockX = _variableArray[202];
-		_droppingBlockY = _variableArray[203];
-		_droppingBlockZ = _variableArray[204];
-		_droppingBlockLength = windowNum;
-		_droppingBlockType = 0;
-		if (windowNum != 1) {
-			_droppingBlockType = 1;
-			x += 15;
-			y += 10;
-			priority += 9;
-		}
-		_droppingBlockCount = 4;
-	}
-
-	for (i = 0; i < windowNum; i++) {
-		vsp->palette = 0;
-		vsp->flags = 0;
-		vsp->priority = 0;
-		vsp->windowNum = 4;
-		vsp->zoneNum = 60;
-		vsp->y = y;
-		vsp->x = x;
-		vsp->id = vgaSpriteId;
-		vsp->image = zoneNum;
-
-		_vgaCurSpriteId = vgaSpriteId;
-		_vgaCurZoneNum = 60;
-
-		tmp = to16Wrapper(priority);
-
-		sprite = _vgaCurSpriteId;
-		zone = _vgaCurZoneNum;
-		vcPtrOrg = _vcPtr;
-
-		_vcPtr = (byte *)&tmp;
-		vc23_setSpritePriority();
-
-		_vcPtr = vcPtrOrg;
-		_vgaCurSpriteId = sprite;
-		_vgaCurZoneNum = zone;
-		
-		vgaSpriteId++;
-		x += 15;
-		y += 10;
-		priority += 8;
-
-		vsp++;
-	}
-
-	_lockWord &= ~0x40;
-}
-
-void AGOSEngine::checkIfClickedOnBlock() {
-	 printf("checkIfClickedOnBlock\n");
-
-	VgaSprite *vsp = _vgaSprites;
-	uint16 items[2];
-	uint16 image, x, y, zone, priority;
-
-	if (_droppingBlockAnim == 0) {
-		goto get_out;
-	}
-
-	_vgaCurSpriteId = _droppingBlockAnim;
-	_vgaCurZoneNum = 60;
-
-	if (_droppingBlockType == 0) {
-		if (_mouseX >= vsp->x)
-			goto get_out;
-		if (_mouseX - 75 < vsp->x)
-			goto get_out;
-		if (_mouseY >= vsp->y)
-			goto get_out;
-		if (_mouseY - 30 < vsp->y)
-			goto get_out;
-
-		if (_leftButtonDown == 0) {
-			_droppingBlockLand = 1;
-			goto get_out;
-		}
-
-		image = (vsp->image - 2) / 3 + 20;
-		zone = _droppingBlockAnim + 1024;
-		x = vsp->x + 15;
-		y = vsp->y + 10;
-		priority = vsp->priority + 9;
-
-		items[0] = to16Wrapper(60);
-		items[1] = to16Wrapper(_droppingBlockAnim);
-
-		_vcPtr = (byte *)&items;
-		vc60_killSprite();
-
-		startBlock(3, image, zone, x, y, priority);
-
-		_droppingBlockAnim = _variableArray[201];
-		_droppingBlockType = 1;
-		_droppingBlockLength = 3;
-	} else {
-		if (_mouseX >= vsp->x)
-			goto get_out;
-		if (_mouseX - 75 < vsp->x)
-			goto get_out;
-		if (_mouseY - 20 >= vsp->y)
-			goto get_out;
-		if (_mouseY + 30 < vsp->y)
-			goto get_out;
-
-		if (_leftButtonDown == 0) {
-			_droppingBlockLand = 1;
-			goto get_out;
-		}
-
-		image = (vsp->image - 20) * 3 + 2;
-		zone = _droppingBlockAnim - 1024;
-		x = vsp->x - 15;
-		y = vsp->y - 10;
-		priority = vsp->priority - 9;
-
-		items[0] = to16Wrapper(60);
-		items[1] = to16Wrapper(_droppingBlockAnim);
-
-		_vcPtr = (byte *)&items;
-		vc60_killSprite();
-
-		startBlock(1, image, zone, x, y, priority);
-
-		_droppingBlockAnim = _variableArray[201];
-		_droppingBlockType = 0;
-		_droppingBlockLength = 1;
-	}
-
-get_out:;
-	_leftButtonDown = 0;
-	_rightButtonDown = 0;
-}
-
 } // End of namespace AGOS


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