[Scummvm-cvs-logs] CVS: scummvm gfx.cpp,1.37,1.38 object.cpp,1.32,1.33 saveload.cpp,1.28,1.29 script.cpp,1.24,1.25 script_v1.cpp,1.37,1.38 scummvm.cpp,1.56,1.57
Vincent Hamm
yazoo at users.sourceforge.net
Tue Mar 5 15:42:03 CET 2002
Update of /cvsroot/scummvm/scummvm
In directory usw-pr-cvs1:/tmp/cvs-serv11953
Modified Files:
gfx.cpp object.cpp saveload.cpp script.cpp script_v1.cpp
scummvm.cpp
Log Message:
Next episode in V7 reimplementation. Nearly working
Index: gfx.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/gfx.cpp,v
retrieving revision 1.37
retrieving revision 1.38
diff -C2 -d -r1.37 -r1.38
*** gfx.cpp 5 Mar 2002 23:05:55 -0000 1.37
--- gfx.cpp 5 Mar 2002 23:41:41 -0000 1.38
***************
*** 553,560 ****
int diff; // Full throttle hack
! #if !defined(FULL_THROTTLE)
! if (cd->_cur.x!=cd->_last.x && charset._hasMask)
! stopTalk();
! #endif
val = 0;
--- 553,559 ----
int diff; // Full throttle hack
! if (!(_features & GF_AFTER_V7))
! if (cd->_cur.x!=cd->_last.x && charset._hasMask)
! stopTalk();
val = 0;
***************
*** 568,597 ****
}
! #if defined(FULL_THROTTLE)
! diff = (cd->_cur.x>>3) - (cd->_last.x>>3);
! if (_fullRedraw==0 && diff==1) {
! val = 2;
! redrawBGStrip(39, 1);
! } else if (_fullRedraw==0 && diff==-1) {
! val = 1;
! redrawBGStrip(0, 1);
! } else if (_fullRedraw!=0 || diff!=0) {
! _BgNeedsRedraw = false;
! _fullRedraw = false;
! redrawBGStrip(0, 40);
! }
!
! #else
! if (_fullRedraw==0 && cd->_cur.x - cd->_last.x == 8) {
! val = 2;
! redrawBGStrip(39, 1);
! } else if (_fullRedraw==0 && cd->_cur.x - cd->_last.x == -8) {
! val = 1;
! redrawBGStrip(0, 1);
! } else if (_fullRedraw!=0 || cd->_cur.x != cd->_last.x) {
! _BgNeedsRedraw = false;
! redrawBGStrip(0, 40);
}
- #endif
drawRoomObjects(val);
--- 567,595 ----
}
! if(_features & GF_AFTER_V7) {
! diff = (cd->_cur.x>>3) - (cd->_last.x>>3);
! if (_fullRedraw==0 && diff==1) {
! val = 2;
! redrawBGStrip(39, 1);
! } else if (_fullRedraw==0 && diff==-1) {
! val = 1;
! redrawBGStrip(0, 1);
! } else if (_fullRedraw!=0 || diff!=0) {
! _BgNeedsRedraw = false;
! _fullRedraw = false;
! redrawBGStrip(0, 40);
! }
! } else {
! if (_fullRedraw==0 && cd->_cur.x - cd->_last.x == 8) {
! val = 2;
! redrawBGStrip(39, 1);
! } else if (_fullRedraw==0 && cd->_cur.x - cd->_last.x == -8) {
! val = 1;
! redrawBGStrip(0, 1);
! } else if (_fullRedraw!=0 || cd->_cur.x != cd->_last.x) {
! _BgNeedsRedraw = false;
! redrawBGStrip(0, 40);
! }
}
drawRoomObjects(val);
***************
*** 1816,1897 ****
}
- #if defined(FULL_THROTTLE)
void Scumm::cameraMoved() {
! CameraData *cd = &camera;
!
! assert(cd->_cur.x>=160 && cd->_cur.y>=100);
! _screenStartStrip = (cd->_cur.x-160) >> 3;
! _screenEndStrip = _screenStartStrip + 39;
! virtscr[0].xstart = _screenStartStrip << 3;
! _screenLeft = cd->_cur.x - 160;
! _screenTop = cd->_cur.y - 100;
! }
! #else
! void Scumm::cameraMoved() {
! CameraData *cd = &camera;
! if (cd->_cur.x < 160) {
! cd->_cur.x = 160;
! } else if (cd->_cur.x + 160 >= _scrWidth) {
! cd->_cur.x = _scrWidth-160;
}
-
- _screenStartStrip = (cd->_cur.x >> 3) - 20;
- _screenEndStrip = _screenStartStrip + 39;
- virtscr[0].xstart = _screenStartStrip << 3;
}
- #endif
- #if defined(FULL_THROTTLE)
void Scumm::panCameraTo(int x, int y) {
! CameraData *cd = &camera;
! cd->_follows = 0;
! cd->_dest.x = x;
! cd->_dest.y = y;
! }
! #else
! void Scumm::panCameraTo(int x, int y) {
! CameraData *cd = &camera;
! cd->_dest.x = x;
! cd->_mode = CM_PANNING;
! cd->_movingToActor = 0;
}
- #endif
void Scumm::actorFollowCamera(int act) {
! #if !defined(FULL_THROTTLE)
! int old;
! CameraData *cd = &camera;
! /* mi1 compatibilty */
! if (act==0) {
! cd->_mode = CM_NORMAL;
! cd->_follows = 0;
! cd->_movingToActor = 0;
! return;
! }
! old = cd->_follows;
! setCameraFollows(derefActorSafe(act, "actorFollowCamera"));
! if (cd->_follows != old)
! runHook(0);
! cd->_movingToActor = 0;
! #endif
}
void Scumm::setCameraAtEx(int at) {
! #if !defined(FULL_THROTTLE)
! CameraData *cd = &camera;
! cd->_mode = CM_NORMAL;
! cd->_cur.x = at;
! setCameraAt(at, 0);
! cd->_movingToActor = 0;
! #endif
}
--- 1814,1890 ----
}
void Scumm::cameraMoved() {
! if(_features & GF_AFTER_V7) {
! CameraData *cd = &camera;
! assert(cd->_cur.x>=160 && cd->_cur.y>=100);
! _screenStartStrip = (cd->_cur.x-160) >> 3;
! _screenEndStrip = _screenStartStrip + 39;
! virtscr[0].xstart = _screenStartStrip << 3;
!
! _screenLeft = cd->_cur.x - 160;
! _screenTop = cd->_cur.y - 100;
! } else {
+ CameraData *cd = &camera;
! if (cd->_cur.x < 160) {
! cd->_cur.x = 160;
! } else if (cd->_cur.x + 160 >= _scrWidth) {
! cd->_cur.x = _scrWidth-160;
! }
! _screenStartStrip = (cd->_cur.x >> 3) - 20;
! _screenEndStrip = _screenStartStrip + 39;
! virtscr[0].xstart = _screenStartStrip << 3;
}
}
void Scumm::panCameraTo(int x, int y) {
! if(_features & GF_AFTER_V7) {
! CameraData *cd = &camera;
! cd->_follows = 0;
! cd->_dest.x = x;
! cd->_dest.y = y;
! } else {
! CameraData *cd = &camera;
! cd->_dest.x = x;
! cd->_mode = CM_PANNING;
! cd->_movingToActor = 0;
! }
}
void Scumm::actorFollowCamera(int act) {
! if(!(_features & GF_AFTER_V7)) {
! int old;
! CameraData *cd = &camera;
! /* mi1 compatibilty */
! if (act==0) {
! cd->_mode = CM_NORMAL;
! cd->_follows = 0;
! cd->_movingToActor = 0;
! return;
! }
! old = cd->_follows;
! setCameraFollows(derefActorSafe(act, "actorFollowCamera"));
! if (cd->_follows != old)
! runHook(0);
! cd->_movingToActor = 0;
! }
}
void Scumm::setCameraAtEx(int at) {
! if(!(_features & GF_AFTER_V7)) {
! CameraData *cd = &camera;
! cd->_mode = CM_NORMAL;
! cd->_cur.x = at;
! setCameraAt(at, 0);
! cd->_movingToActor = 0;
! }
}
Index: object.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/object.cpp,v
retrieving revision 1.32
retrieving revision 1.33
diff -C2 -d -r1.32 -r1.33
*** object.cpp 5 Mar 2002 23:05:55 -0000 1.32
--- object.cpp 5 Mar 2002 23:41:41 -0000 1.33
***************
*** 1046,1056 ****
! #if !defined(FULL_THROTTLE)
! w = READ_LE_UINT16(&foir.cdhd->v6.w)>>3;
! h = READ_LE_UINT16(&foir.cdhd->v6.h)>>3;
! #else
! w = READ_LE_UINT16(&foir.imhd->v7.width)>>3;
! h = READ_LE_UINT16(&foir.imhd->v7.height)>>3;
! #endif
dataptr = findResource(IMxx_tags[imgindex],foir.obim);
--- 1046,1056 ----
! if(!(_features & GF_AFTER_V7)) {
! w = READ_LE_UINT16(&foir.cdhd->v6.w)>>3;
! h = READ_LE_UINT16(&foir.cdhd->v6.h)>>3;
! } else {
! w = READ_LE_UINT16(&foir.imhd->v7.width)>>3;
! h = READ_LE_UINT16(&foir.imhd->v7.height)>>3;
! }
dataptr = findResource(IMxx_tags[imgindex],foir.obim);
Index: saveload.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saveload.cpp,v
retrieving revision 1.28
retrieving revision 1.29
diff -C2 -d -r1.28 -r1.29
*** saveload.cpp 3 Mar 2002 22:14:47 -0000 1.28
--- saveload.cpp 5 Mar 2002 23:41:41 -0000 1.29
***************
*** 129,135 ****
_verbMouseOver = 0;
! #if defined(FULL_THROTTLE)
! cameraMoved();
! #endif
initBGBuffers();
--- 129,134 ----
_verbMouseOver = 0;
! if(_features & GF_AFTER_V7)
! cameraMoved();
initBGBuffers();
***************
*** 325,329 ****
MKLINE(Scumm,_curExecScript,sleUint16),
- #if defined(FULL_THROTTLE)
MKLINE(Scumm,camera._dest.x,sleInt16),
MKLINE(Scumm,camera._dest.y,sleInt16),
--- 324,327 ----
***************
*** 334,343 ****
MKLINE(Scumm,camera._accel.x,sleInt16),
MKLINE(Scumm,camera._accel.y,sleInt16),
- MKLINE(Scumm,camera._follows,sleByte),
- MKLINE(Scumm,camera._movingToActor,sleUint16),
- #else
- MKLINE(Scumm,camera._dest.x,sleInt16),
- MKLINE(Scumm,camera._cur.x,sleInt16),
- MKLINE(Scumm,camera._last.x,sleInt16),
MKLINE(Scumm,_screenStartStrip,sleInt16),
MKLINE(Scumm,_screenEndStrip,sleInt16),
--- 332,335 ----
***************
*** 347,351 ****
MKLINE(Scumm,camera._rightTrigger,sleInt16),
MKLINE(Scumm,camera._movingToActor,sleUint16),
! #endif
MKLINE(Scumm,_actorToPrintStrFor,sleByte),
MKLINE(Scumm,_charsetColor,sleByte),
--- 339,343 ----
MKLINE(Scumm,camera._rightTrigger,sleInt16),
MKLINE(Scumm,camera._movingToActor,sleUint16),
!
MKLINE(Scumm,_actorToPrintStrFor,sleByte),
MKLINE(Scumm,_charsetColor,sleByte),
Index: script.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/script.cpp,v
retrieving revision 1.24
retrieving revision 1.25
diff -C2 -d -r1.24 -r1.25
*** script.cpp 5 Mar 2002 15:29:54 -0000 1.24
--- script.cpp 5 Mar 2002 23:41:41 -0000 1.25
***************
*** 607,615 ****
_sentenceNum--;
! #if !defined(FULL_THROTTLE)
! if (sentence[_sentenceNum].unk2 &&
! sentence[_sentenceNum].unk3==sentence[_sentenceNum].unk4)
! return;
! #endif
_localParamList[0] = sentence[_sentenceNum].unk5;
--- 607,614 ----
_sentenceNum--;
! if(!(_features & GF_AFTER_V7))
! if (sentence[_sentenceNum].unk2 &&
! sentence[_sentenceNum].unk3==sentence[_sentenceNum].unk4)
! return;
_localParamList[0] = sentence[_sentenceNum].unk5;
***************
*** 798,859 ****
void Scumm::animateActor(int act, int anim) {
! #if defined(FULL_THROTTLE)
! int cmd,dir;
! Actor *a;
!
! a = derefActorSafe(act, "animateActor");
!
! if (anim==0xFF)
! anim = 2000;
! cmd = anim / 1000;
! dir = anim % 1000;
! /* temporary code */
! // dir = newDirToOldDir(dir);
! switch(cmd) {
! case 2:
! stopActorMoving(a);
! startAnimActor(a, a->standFrame);
! break;
! case 3:
! a->moving &= ~4;
! fixActorDirection(a, dir);
! break;
! case 4:
! turnToDirection(a, dir);
! break;
! default:
! startAnimActor(a, anim);
! }
! #else
! int dir;
! Actor *a;
! a = derefActorSafe(act, "animateActor");
! if (!a) return;
! dir = anim&3;
! switch(anim>>2) {
! case 0x3F:
! stopActorMoving(a);
! startAnimActor(a, a->standFrame);
! break;
! case 0x3E:
! a->moving &= ~4;
! fixActorDirection(a, oldDirToNewDir(dir));
! break;
! case 0x3D:
! turnToDirection(a, oldDirToNewDir(dir));
! break;
! default:
! startAnimActor(a, anim);
}
-
- #endif
}
--- 797,857 ----
void Scumm::animateActor(int act, int anim) {
! if(_features & GF_AFTER_V7) {
! int cmd,dir;
! Actor *a;
! a = derefActorSafe(act, "animateActor");
! if (anim==0xFF)
! anim = 2000;
! cmd = anim / 1000;
! dir = anim % 1000;
+ /* temporary code */
+ // dir = newDirToOldDir(dir);
! switch(cmd) {
! case 2:
! stopActorMoving(a);
! startAnimActor(a, a->standFrame);
! break;
! case 3:
! a->moving &= ~4;
! fixActorDirection(a, dir);
! break;
! case 4:
! turnToDirection(a, dir);
! break;
! default:
! startAnimActor(a, anim);
! }
! } else {
! int dir;
! Actor *a;
! a = derefActorSafe(act, "animateActor");
! if (!a) return;
!
! dir = anim&3;
! switch(anim>>2) {
! case 0x3F:
! stopActorMoving(a);
! startAnimActor(a, a->standFrame);
! break;
! case 0x3E:
! a->moving &= ~4;
! fixActorDirection(a, oldDirToNewDir(dir));
! break;
! case 0x3D:
! turnToDirection(a, oldDirToNewDir(dir));
! break;
! default:
! startAnimActor(a, anim);
! }
!
}
}
***************
*** 863,867 ****
for (i=0; i<NUM_SCRIPT_SLOT; i++,ss++)
if (ss->number==script && (ss->where==WIO_GLOBAL ||
! ss->where==WIO_LOCAL) && ss->status)
return true;
return false;
--- 861,865 ----
for (i=0; i<NUM_SCRIPT_SLOT; i++,ss++)
if (ss->number==script && (ss->where==WIO_GLOBAL ||
! ss->where==WIO_LOCAL) && ss->status)
return true;
return false;
***************
*** 1019,1063 ****
}
}
- #if defined(FULL_THROTTLE)
void Scumm::doSentence(int c, int b, int a) {
! SentenceTab *st;
! if (b==a)
! return;
! st = &sentence[_sentenceNum-1];
! if (_sentenceNum &&
! st->unk5 == c && st->unk4==b && st->unk3==a)
! return;
! _sentenceNum++;
! st++;
! st->unk5 = c;
! st->unk4 = b;
! st->unk3 = a;
! st->unk = 0;
! warning("dosentence(%d,%d,%d)", c, b, a);
! }
! #else
! void Scumm::doSentence(int c, int b, int a) {
! SentenceTab *st;
! st = &sentence[_sentenceNum++];
! st->unk5 = c;
! st->unk4 = b;
! st->unk3 = a;
! if (!(st->unk3&0xFF00))
! st->unk2 = 0;
! else
! st->unk2 = 1;
! st->unk = 0;
}
- #endif
--- 1017,1059 ----
}
}
void Scumm::doSentence(int c, int b, int a) {
! if(_features & GF_AFTER_V7) {
! SentenceTab *st;
! if (b==a)
! return;
! st = &sentence[_sentenceNum-1];
! if (_sentenceNum &&
! st->unk5 == c && st->unk4==b && st->unk3==a)
! return;
! _sentenceNum++;
! st++;
! st->unk5 = c;
! st->unk4 = b;
! st->unk3 = a;
! st->unk = 0;
! warning("dosentence(%d,%d,%d)", c, b, a);
! } else {
! SentenceTab *st;
! st = &sentence[_sentenceNum++];
! st->unk5 = c;
! st->unk4 = b;
! st->unk3 = a;
! if (!(st->unk3&0xFF00))
! st->unk2 = 0;
! else
! st->unk2 = 1;
! st->unk = 0;
! }
}
Index: script_v1.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/script_v1.cpp,v
retrieving revision 1.37
retrieving revision 1.38
diff -C2 -d -r1.37 -r1.38
*** script_v1.cpp 24 Feb 2002 17:25:02 -0000 1.37
--- script_v1.cpp 5 Mar 2002 23:41:41 -0000 1.38
***************
*** 1469,1476 ****
_vars[VAR_WALKTO_OBJ] = 0;
- #if !defined(FULL_THROTTLE)
camera._dest.x = camera._cur.x = a->x;
setCameraFollows(a);
- #endif
_fullRedraw=1;
--- 1469,1474 ----
Index: scummvm.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scummvm.cpp,v
retrieving revision 1.56
retrieving revision 1.57
diff -C2 -d -r1.56 -r1.57
*** scummvm.cpp 5 Mar 2002 21:27:24 -0000 1.56
--- scummvm.cpp 5 Mar 2002 23:41:41 -0000 1.57
***************
*** 89,105 ****
}
! #if !defined(FULL_THROTTLE)
! camera._leftTrigger = 10;
! camera._rightTrigger = 30;
! camera._mode = 0;
! #endif
camera._follows = 0;
virtscr[0].xstart = 0;
! #if !defined(FULL_THROTTLE)
! _vars[VAR_V5_DRAWFLAGS] = 11;
! _vars[VAR_59] = 3;
! #endif
mouse.x = 104;
--- 89,105 ----
}
! if(!(_features & GF_AFTER_V7)) {
! camera._leftTrigger = 10;
! camera._rightTrigger = 30;
! camera._mode = 0;
! }
camera._follows = 0;
virtscr[0].xstart = 0;
! if(!(_features & GF_AFTER_V7)) {
! _vars[VAR_V5_DRAWFLAGS] = 11;
! _vars[VAR_59] = 3;
! }
mouse.x = 104;
***************
*** 163,179 ****
void Scumm::initScummVars() {
! #if !defined(FULL_THROTTLE)
! _vars[VAR_CURRENTDRIVE] = _currentDrive;
! _vars[VAR_FIXEDDISK] = checkFixedDisk();
! _vars[VAR_SOUNDCARD] = _soundCardType;
! _vars[VAR_VIDEOMODE] = 0x13;
! _vars[VAR_HEAPSPACE] = 630;
! _vars[VAR_MOUSEPRESENT] = _mousePresent;
! _vars[VAR_SOUNDPARAM] = _soundParam;
! _vars[VAR_SOUNDPARAM2] = _soundParam2;
! _vars[VAR_SOUNDPARAM3] = _soundParam3;
! if (_features&GF_AFTER_V6)
! _vars[VAR_V6_EMSSPACE] = 10000;
! #endif
}
--- 163,179 ----
void Scumm::initScummVars() {
! if(!(_features & GF_AFTER_V7)) {
! _vars[VAR_CURRENTDRIVE] = _currentDrive;
! _vars[VAR_FIXEDDISK] = checkFixedDisk();
! _vars[VAR_SOUNDCARD] = _soundCardType;
! _vars[VAR_VIDEOMODE] = 0x13;
! _vars[VAR_HEAPSPACE] = 630;
! _vars[VAR_MOUSEPRESENT] = _mousePresent;
! _vars[VAR_SOUNDPARAM] = _soundParam;
! _vars[VAR_SOUNDPARAM2] = _soundParam2;
! _vars[VAR_SOUNDPARAM3] = _soundParam3;
! if (_features&GF_AFTER_V6)
! _vars[VAR_V6_EMSSPACE] = 10000;
! }
}
More information about the Scummvm-git-logs
mailing list