diff options
| -rw-r--r-- | engines/avalanche/enhanced2.cpp | 59 | ||||
| -rw-r--r-- | engines/avalanche/enhanced2.h | 53 | ||||
| -rw-r--r-- | engines/avalanche/gyro2.cpp | 2 | ||||
| -rw-r--r-- | engines/avalanche/scrolls2.cpp | 124 | 
4 files changed, 233 insertions, 5 deletions
diff --git a/engines/avalanche/enhanced2.cpp b/engines/avalanche/enhanced2.cpp new file mode 100644 index 0000000000..c5b038861d --- /dev/null +++ b/engines/avalanche/enhanced2.cpp @@ -0,0 +1,59 @@ +/* ScummVM - Graphic Adventure Engine + * + * ScummVM is the legal property of its developers, whose names + * are too numerous to list here. Please refer to the COPYRIGHT + * file distributed with this source distribution. + * + * 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. + * + */ + +/* + * This code is based on the original source code of Lord Avalot d'Argent version 1.3. + * Copyright (c) 1994-1995 Mike, Mark and Thomas Thurman. + */ + +#include "avalanche/enhanced2.h" +#include "common/system.h" +#include "common/textconsole.h" + +namespace Avalanche { + +	namespace Enhanced { + +	bool isenh() { +		warning("STUB: Enhanced::isenh()"); +	} + +	void readkeye() { +		warning("STUB: Enhanced::readkeye()"); +	} + +	bool keypressede() { +	/* +	 function fancystuff:boolean; +	  inline( $B4/ $11/  { MOV AH,11 } +			  $CD/ $16/  { INT 16 } +			  $B8/ $00/ $00/ { MOV AX, 0000 } +			  $74/ $01/  { JZ 0112 (or wherever- the next byte after $40, anyway) } +			  $40);      { INC AX } +	*/ +	 +		warning("STUB: Enhanced::keypressede()"); +	} + +	} // End of namespace Enhanced + +} // End of namespace Avalanche diff --git a/engines/avalanche/enhanced2.h b/engines/avalanche/enhanced2.h new file mode 100644 index 0000000000..d696c32a79 --- /dev/null +++ b/engines/avalanche/enhanced2.h @@ -0,0 +1,53 @@ +/* ScummVM - Graphic Adventure Engine + * + * ScummVM is the legal property of its developers, whose names + * are too numerous to list here. Please refer to the COPYRIGHT + * file distributed with this source distribution. + * + * 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. + * + */ + +/* + * This code is based on the original source code of Lord Avalot d'Argent version 1.3. + * Copyright (c) 1994-1995 Mike, Mark and Thomas Thurman. + */ + + + +// Not sure if this unit will be used at all in the end... + +#ifndef ENHANCED2_H +#define ENHANCED2_H + +#include "common/system.h" + +namespace Avalanche { + +	namespace Enhanced { + +	byte shiftstate;	/*ABSOLUTE $40:$17;*/ +	bool atbios; +	char inchar, extd; + +	void readkeye(); + +	bool keypressede(); + +	} // End of namespace Enhanced + +} // End of namespace Avalanche + +#endif // ENHANCED2_H diff --git a/engines/avalanche/gyro2.cpp b/engines/avalanche/gyro2.cpp index 6c77279933..fba155af59 100644 --- a/engines/avalanche/gyro2.cpp +++ b/engines/avalanche/gyro2.cpp @@ -324,8 +324,6 @@ namespace Avalanche {  		else on();  	} - -  	} // End of namespace Gyro  } // End of namespace Avalanche diff --git a/engines/avalanche/scrolls2.cpp b/engines/avalanche/scrolls2.cpp index a7c7a07d5e..cbbd2e187b 100644 --- a/engines/avalanche/scrolls2.cpp +++ b/engines/avalanche/scrolls2.cpp @@ -27,10 +27,10 @@  #include "avalanche/scrolls2.h"  #include "avalanche/gyro2.h" +#include "avalanche/logger2.h"  //#include "lucerna.h"  //#include "trip5.h"  //#include "enhanced.h" -//#include "logger.h"  //#include "Acci.h"  //#include "basher.h"  //#include "visa.h" @@ -126,12 +126,130 @@ namespace Avalanche {  		x = x / 8;  		lz = z.size();  		ox = 0; -		// log_scrollline(); Needs Logger to work. +		Logger::log_scrollline(); + +		for (xx = 1; xx <= lz; xx ++) { +			switch (z[xx]) { +			case '\22': { +				cfont = roman; +				Logger::log_roman(); +						} +						break; +			case '\6': { +				cfont = italic; +				Logger::log_italic(); +					   } +					   break; +			default: { +				ox += 1; +				for (yy = 1; yy <= 12; yy ++) itw[yy][ox] = ~ ch[cfont][z[xx]][yy + 1]; +				Logger::log_scrollchar(z[xx]); +					 } +			} +		} + +		lz = ox; +		if (offset) { +			/* offsetting routine */ +			lz += 1; +			for (yy = 1; yy <= 12; yy ++) { +				bit = 240; +				itw[yy][lz] = 255; +				for (xx = 1; xx <= lz; xx ++) { +					t = itw[yy][xx]; +					itw[yy][xx] = bit + t / 16; +					bit = t << 4; +				} +			} +		} +		yp = x + y * 80 + (1 - Gyro::cp) * Gyro::pagetop; +		for (yy = 1; yy <= 12; yy ++) { +			yp += 80; +			for (bit = 0; bit <= locol; bit ++) { +				/*port[0x3c4] = 2; +				port[0x3ce] = 4; +				port[0x3c5] = 1 << bit; +				port[0x3cf] = bit; +				move(itw[yy], mem[0xa000 * yp], lz); +				 +				Some old Pascal-ish. To be removed. */ + +				warning("STUB: Scrolls::say()"); +			} +		} + +	} + +	/* Here are the procedures that Scroll calls */ /* So they must be... */ /*$F+*/ + +	void normscroll() { +		warning("STUB: Scrolls::normscroll()"); +	} + +	void dialogue() { +		warning("STUB: Scrolls::dialogue()"); +	} + +	void music_scroll(); + + +	static void store_(byte what, Gyro::tunetype &played) { +		memcpy(played, played+1, sizeof(played) - 1); +		played[30] = what; +	} + + + +	static bool they_match(Gyro::tunetype &played) { +		byte fv, mistakes; + +		bool they_match_result; +		mistakes = 0; -		warning("STUB: Scrolls::say()"); +		for (fv = 1; fv <= sizeof(played); fv ++) +			if (played[fv] != Gyro::tune[fv]) { +				mistakes++; +			} +			they_match_result = mistakes < 5; +			return they_match_result;  	} +	void music_scroll() { +		char r; +		byte value; + +		byte last_one, this_one; + +		Gyro::tunetype played; + + +		state(3); +		Gyro::seescroll = true; +		Gyro::on(); +		Gyro::newpointer(4); +		//do { +		//	do { +		//		Gyro::check(); /* was "checkclick;" */ +		//		if (keypressede())  break; +		//	} while (!(mpress > 0) || buttona1() || buttonb1()); +		//	 +		//	Needs Enhanced (conatins keypressede()) to proceed. + + + +	} + + + + + + + + + + +  | 
