(= door (View new:)) ; it's a local, don't ask me why.
(if global100
(door
view: 600 loop: 0 cel: 0
setPri: 9
posn: 289 137
ignoreActors: init: stopUpd:
)
(gEgo observeControl: ctlYELLOW) ;patch on the inside of the doorway
else
(door
view: 600 loop: 1 cel: 0
ignoreActors: true
setPri: 9
posn: 284 131
init: stopUpd:
)
)
The rest of Room28::init is to handle the day/night cycle and where Rosella should appear, and that's the only place the door object itself is touched (saying "door" doesn't count). I honestly can't find anything here that could cause the door to be misplaced like this.I'm out of ideas.
Perhaps, the game uses different rooms but still uses the same backgrounds.This is, in fact, true. Room 333 handles riding the unicorn through all (!) the screens.
Maybe it's an issue with NRS's "Ultimate King's Quest 4" version? It meshes up resources from the various KQ4 versions.That's "mashes up". (My turn~)
That's "mashes up". (My turn~)or messes. :P
or messes. :PMashes makes more sense in context. At least, mashing it up is the patch author's intent, and messing it up is what results considering the door's gone wonky.
This is, in fact, true. Room 333 handles riding the unicorn through all (!) the screens.
(instance from26 of Script
(method (changeState newState)
(switch (= state newState)
(2
(if global100
(newView
view: 600 loop: 0 cel: 0
setPri: 10
posn: 289 137 ; Matches room 28
init: stopUpd:
)
(gRoom drawPic: 28)
(gRoom overlay: 128)
else
(gRoom drawPic: 28)
(newView
view: 600 loop: 1 cel: 0
setPri: 9
posn: 284 131 ; Matches room 28
ignoreActors: init: stopUpd:
)
)
(gRoom setScript: from28)
)
)
)
)
1988 version is exactly the same at this point except for not using an overlay for the night state and having different coordinates for the door: 289 139 and 283 139, which are again the same as in room 28.This thread got accidentally (I think?) locked. It's unlocked now.
This is King's Quest IV, version 1.006.004, released 1989-08-07 on SCI 0.000.502.
Actually it's weird - according to sciwiki (http://sciwiki.sierrahelp.com/index.php?title=King%27s_Quest_IV:_The_Perils_of_Rosella#SCI0_.28late.29) the only difference is the KQ4PATCH which fixed views 653 and 997. But perhaps the wiki is wrong and there are other differences.There's definitely a new interpreter; and a quick peek at FreeSCI shows this:
#define SCI_VERSION_FTU_PRIORITY_14_ZONES SCI_VERSION(0,000,502)
/* Last version known to do this: 0.000.490
* Uses 14 zones from 42 to 190 instead of 15 zones from 42 to 200.
*/
Does this matter? idk. But the change is included in the last few releases of KQ4.
(case 2
(if (global100)
(send newView:
view(600)
loop(0)
cel(0)
setPri(9)
posn(289 137)
ignoreActors()
init()
stopUpd()
)
(send global2:drawPic(128))
)(else
(send global2:drawPic(28))
(send newView:
view(600)
loop(1)
cel(0)
setPri(10)
posn(284 131)
init()
stopUpd()
)
)
(send global0:posn(30 187))
(send global2:setScript(from28))
)
A different interpreter (0.000.409 vs my 0.000.502) shouldn't affect the door like that, and KQ4FIX is literally just two apparently-missing views that don't apply to the mine entrance so I too would like to see if Robin's version has any differences in script.333 or view.600.
Actually it's weird - according to sciwiki (http://sciwiki.sierrahelp.com/index.php?title=King%27s_Quest_IV:_The_Perils_of_Rosella#SCI0_.28late.29) the only difference is the KQ4PATCH which fixed views 653 and 997. But perhaps the wiki is wrong and there are other differences.
PC version 1.000.106 and 1.000.111 are the only ones with the original detailed graphics. For 1.003.006 and later versions, Sierra simplified the background graphics to make the game fit on one 5.25 inch disk less, removing background detail and separate night pictures.
The KQ4FIX patch dated 1989-02-15 addresses error message "0x80/653 not found" at DOSBox cycle settings above 1500 when entering the screen with the waterfall. This patch only applies to version 1.003.006. This problem was corrected in the later version 1.006.003 and is not needed in versions 1.006.003 or 1.006.004.
PC version 1.006.004 is the latest PC version and has the main character walking faster diagonally.
what the hotspots are for the door in version 1.003.006.
Here the door code from room 333Code: [Select](case 2
(if (global100)
(send newView:
view(600)
loop(0)
cel(0)
setPri(9)
posn(289 137)
ignoreActors()
init()
stopUpd()
)
(send global2:drawPic(128))
)(else
(send global2:drawPic(28))
(send newView:
view(600)
loop(1)
cel(0)
setPri(10)
posn(284 131)
init()
stopUpd()
)
)
(send global0:posn(30 187))
(send global2:setScript(from28))
)
(2
(if global100
(newView
view: 600
loop: 0
cel: 0
setPri: 10
posn: 289 139
init:
stopUpd:
)
(global2 drawPic: 128)
else
(global2 drawPic: 28)
(newView
view: 600
loop: 1
cel: 0
setPri: 9
posn: 283 139
ignoreActors:
init:
stopUpd:
)
)
(global2 setScript: from28)
)
v1.000.* | v1.003.006 | v1.006.003 | ||||
Room 28 | (283, 139) | (284, 131) | (284, 131) | |||
Room 333 | from20: (283, 139) from26: (283, 139) from27: (283, 139) | from20: (284, 131) from26: (283, 139) from27: (283, 139) | from20: (284, 131) from26: (284, 131) from27: (284, 131) |
what the hotspots are for the door in version 1.003.006.
The hotspots are the same: (0,0) and (-8,3)Here the door code from room 333Code: [Select](case 2
(if (global100)
(send newView:
view(600)
loop(0)
cel(0)
setPri(9)
posn(289 137)
ignoreActors()
init()
stopUpd()
)
(send global2:drawPic(128))
)(else
(send global2:drawPic(28))
(send newView:
view(600)
loop(1)
cel(0)
setPri(10)
posn(284 131)
init()
stopUpd()
)
)
(send global0:posn(30 187))
(send global2:setScript(from28))
)
Robin, the code you pasted is only for the from20 instance.
The other ones (from26 and from27) have wrong coordiantes, carried over from the old kq4 version:Code: [Select](2
(if global100
(newView
view: 600
loop: 0
cel: 0
setPri: 10
posn: 289 139
init:
stopUpd:
)
(global2 drawPic: 128)
else
(global2 drawPic: 28)
(newView
view: 600
loop: 1
cel: 0
setPri: 9
posn: 283 139
ignoreActors:
init:
stopUpd:
)
)
(global2 setScript: from28)
)
Here is a summary table for all coordinates the which are being set to view 600 loop 1:
v1.000.* v1.003.006 v1.006.003 Room 28 (283, 139) (284, 131) (284, 131) Room 333 from20: (283, 139)
from26: (283, 139)
from27: (283, 139)from20: (284, 131)
from26: (283, 139)
from27: (283, 139)from20: (284, 131)
from26: (284, 131)
from27: (284, 131)
I think that finally solves your mystery Robin!
Thanks for raising it - it was very interesting :-)
I guess we should offer a patch to ScummVm.