[Scummvm-cvs-logs] SF.net SVN: scummvm: [29690] scummvm/trunk/engines/lure
dreammaster at users.sourceforge.net
dreammaster at users.sourceforge.net
Sun Dec 2 05:52:02 CET 2007
Revision: 29690
http://scummvm.svn.sourceforge.net/scummvm/?rev=29690&view=rev
Author: dreammaster
Date: 2007-12-01 20:52:01 -0800 (Sat, 01 Dec 2007)
Log Message:
-----------
Bugfix to make any animation the player is doing uninterruptable
Modified Paths:
--------------
scummvm/trunk/engines/lure/hotspots.cpp
scummvm/trunk/engines/lure/hotspots.h
scummvm/trunk/engines/lure/scripts.cpp
Modified: scummvm/trunk/engines/lure/hotspots.cpp
===================================================================
--- scummvm/trunk/engines/lure/hotspots.cpp 2007-12-02 04:49:33 UTC (rev 29689)
+++ scummvm/trunk/engines/lure/hotspots.cpp 2007-12-02 04:52:01 UTC (rev 29690)
@@ -78,12 +78,6 @@
_tickHandler = HotspotTickHandlers::getHandler(_data->tickProcId);
_nameBuffer[0] = '\0';
- if (_hotspotId < FIRST_NONCHARACTER_ID) {
- // Default characters to facing upwards until they start moving
- _direction = UP;
- setFrameNumber(_anim->upFrame);
- }
-
_skipFlag = false;
_charRectY = 0;
_voiceCtr = 0;
@@ -515,7 +509,6 @@
_voiceCtr = 0;
setActionCtr(0);
if (_hotspotId == PLAYER_ID)
- //Room::getReference().setCursorState(CS_NONE); **DEBUG**
room.setCursorState((CursorState) ((int) room.cursorState() & 2));
if (_currentActions.top().hasSupportData()) {
@@ -1247,13 +1240,17 @@
}
void Hotspot::doNothing(HotspotData *hotspot) {
- _currentActions.pop();
if (!_currentActions.isEmpty()) {
- setBlockedFlag(false);
- currentActions().top().setAction(DISPATCH_ACTION);
- } else if (hotspotId() == PLAYER_ID) {
- Room::getReference().setCursorState(CS_NONE);
+ _currentActions.pop();
+ if (!_currentActions.isEmpty()) {
+ setBlockedFlag(false);
+ currentActions().top().setAction(DISPATCH_ACTION);
+ return;
+ }
}
+
+ if (hotspotId() == PLAYER_ID)
+ Room::getReference().setCursorState(CS_NONE);
}
void Hotspot::doGet(HotspotData *hotspot) {
@@ -2825,6 +2822,7 @@
// Make sure there is no longer any destination
h.setDestHotspot(0);
h.updateMovement2(CHARMODE_IDLE);
+ h.doNothing(NULL);
strcpy(room.statusLine(), "");
break;
Modified: scummvm/trunk/engines/lure/hotspots.h
===================================================================
--- scummvm/trunk/engines/lure/hotspots.h 2007-12-02 04:49:33 UTC (rev 29689)
+++ scummvm/trunk/engines/lure/hotspots.h 2007-12-02 04:52:01 UTC (rev 29690)
@@ -308,7 +308,6 @@
void resetDirection();
// Action set
- void doNothing(HotspotData *hotspot);
void doGet(HotspotData *hotspot);
void doOperate(HotspotData *hotspot);
void doOpen(HotspotData *hotspot);
@@ -540,6 +539,7 @@
void setVoiceCtr(uint8 v) { _voiceCtr = v; }
// Miscellaneous
+ void doNothing(HotspotData *hotspot);
void converse(uint16 destCharacterId, uint16 messageId, bool srcStandStill = false,
bool destStandStill = false);
void showMessage(uint16 messageId, uint16 destCharacterId = NOONE_ID);
Modified: scummvm/trunk/engines/lure/scripts.cpp
===================================================================
--- scummvm/trunk/engines/lure/scripts.cpp 2007-12-02 04:49:33 UTC (rev 29689)
+++ scummvm/trunk/engines/lure/scripts.cpp 2007-12-02 04:52:01 UTC (rev 29690)
@@ -340,6 +340,9 @@
Resources &r = Resources::getReference();
uint16 offset = r.getHotspotScript(scriptIndex);
+ if (charId == PLAYER_ID)
+ Room::getReference().setCursorState(CS_SEQUENCE);
+
Hotspot *hs = r.getActiveHotspot(charId);
hs->setHotspotScript(offset);
hs->currentActions().top().setAction(EXEC_HOTSPOT_SCRIPT);
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