[Scummvm-cvs-logs] CVS: scummvm object.cpp,1.57,1.58 script_v1.cpp,1.81,1.82
James Brown
ender at users.sourceforge.net
Fri Apr 19 10:39:37 CEST 2002
Update of /cvsroot/scummvm/scummvm
In directory usw-pr-cvs1:/tmp/cvs-serv24310
Modified Files:
object.cpp script_v1.cpp
Log Message:
Fix various Zak256 crashes. Ticket machine works, taking Blue Crystal crashes.
Index: object.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/object.cpp,v
retrieving revision 1.57
retrieving revision 1.58
diff -C2 -d -r1.57 -r1.58
*** object.cpp 18 Apr 2002 15:34:45 -0000 1.57
--- object.cpp 19 Apr 2002 16:26:43 -0000 1.58
***************
*** 823,830 ****
fo->roomptr = roomptr = getResourceAddress(rtRoom, room);
! if (!roomptr) { // FIXME: ZAK256 AIRPORT WORKAROUND (buying book from devotee)
! warning("findObjectInRoom: failed getting roomptr to %d", room);
! return;
! }
roomhdr = (RoomHeader *)findResourceData(MKID('RMHD'), roomptr);
--- 823,829 ----
fo->roomptr = roomptr = getResourceAddress(rtRoom, room);
! if (!roomptr)
! error("findObjectInRoom: failed getting roomptr to %d", room);
!
roomhdr = (RoomHeader *)findResourceData(MKID('RMHD'), roomptr);
Index: script_v1.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/script_v1.cpp,v
retrieving revision 1.81
retrieving revision 1.82
diff -C2 -d -r1.81 -r1.82
*** script_v1.cpp 19 Apr 2002 15:34:35 -0000 1.81
--- script_v1.cpp 19 Apr 2002 16:26:44 -0000 1.82
***************
*** 825,835 ****
newClass = getVarOrDirectWord(0x80);
if (newClass == 0) {
! _classData[act] = 0;
! if( _features & GF_SMALL_HEADER)
! {
! Actor *a;
! a=derefActor(act);
! a->forceClip=0;
! }
continue;
--- 825,842 ----
newClass = getVarOrDirectWord(0x80);
if (newClass == 0) {
! _classData[act] = 0;
!
! if( _features & GF_SMALL_HEADER)
!
! {
!
! Actor *a;
!
! a=derefActor(act);
!
! a->forceClip=0;
!
! }
!
continue;
***************
*** 905,909 ****
int i, j, k;
int16 table[16];
!
switch ((_opcode = fetchScriptByte()) & 0x1F) {
case 1: /* cursor show */
--- 912,916 ----
int i, j, k;
int16 table[16];
! byte origop = _opcode;
switch ((_opcode = fetchScriptByte()) & 0x1F) {
case 1: /* cursor show */
***************
*** 923,929 ****
case 5: /* cursor soft on */
_cursorState++;
- if (_cursorState > 1) {
- error("Cursor state greater than 1 in script");
- }
verbMouseOver(0);
break;
--- 930,933 ----
***************
*** 1082,1090 ****
od = &_objs[idx];
xpos = ypos = 255;
! if (temp != 0xFF) {
! od->x_pos = temp<<3;
od->y_pos = temp2<<3;
! }
!
addObjectToDrawQue(idx);
--- 1086,1098 ----
od = &_objs[idx];
xpos = ypos = 255;
! if (temp != 0xFF) {
!
! od->x_pos = temp<<3;
!
od->y_pos = temp2<<3;
! }
!
!
!
addObjectToDrawQue(idx);
***************
*** 1691,1694 ****
--- 1699,1706 ----
{
int obj, room;
+ if (_features & GF_OLD256) {
+ o5_drawObject();
+ return;
+ }
obj = getVarOrDirectWord(0x80);
***************
*** 1964,1968 ****
e = getVarOrDirectByte(0x40);
setScaleItem(e - 1, b, a, d, c);
! case 8: /* room scale? */
a = getVarOrDirectByte(0x80);
b = getVarOrDirectByte(0x40);
--- 1976,1981 ----
e = getVarOrDirectByte(0x40);
setScaleItem(e - 1, b, a, d, c);
! case 8: /* room scale? */
!
a = getVarOrDirectByte(0x80);
b = getVarOrDirectByte(0x40);
More information about the Scummvm-git-logs
mailing list