Opened 7 years ago
Closed 7 years ago
#9984 closed defect (fixed)
TITANIC: Doorbot doesn't show up on his own
Reported by: | dafioram | Owned by: | dreammaster |
---|---|---|---|
Priority: | low | Component: | Engine: Titanic |
Version: | Keywords: | ||
Cc: | Game: | Starship Titanic |
Description
OS: Win7-64
Game: Titanic GOG version c
ScummVM: 1.10.0git-4012-g7b61e71
In the original engine if you wait around for about 3 mins the doorbot shows up offering advice. This doesn't happen in scummvm. I think he will show just about anywhere, but I tested in the lobby and in the top of the well.
If you just leave both games running and come back after a few minutes he should be in-front of you for the original engine, but not scummvm.
Change History (10)
comment:1 by , 7 years ago
Owner: | set to |
---|---|
Resolution: | → fixed |
Status: | new → closed |
comment:2 by , 7 years ago
Resolution: | fixed |
---|---|
Status: | closed → new |
1.10.0git-4054-g96a1b70
They show up now, but way to fast, about 15 secs. I timed the original game and the bellbot/doorbot shows up after 2mins.
If I grab a drink, consult my notes, or use the rest room they will always show up with the timer set this low. This is for both the doorbot and bellbot.
If you made this short on purpose so that people would know that this assistance is available maybe only make it this short for the first time they visits?
comment:3 by , 7 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
Ah, sorry. You're right. I had the constant set for their appearance at 12 seconds rather than 120
comment:4 by , 7 years ago
Resolution: | fixed |
---|---|
Status: | closed → new |
Okay so your code is:
engines/titanic/game/idle_summoner.cpp #83
uint delay = region == 1 ? 15000 : 120000;
So if I am in the areas connected to the top of the world (region == 1) then the bellbot/doorbot appear every 15 secs. I don't think thats what you want and it happens if I am moving or not. Can we have the delay only count up if I am not moving and be something larger?
comment:5 by , 7 years ago
Resolution: | → fixed |
---|---|
Status: | new → pending |
Actually, the "region" in this case doesn't correspond to the in-game area, but to what area one of the NPC's dials are pointed to. In this case, '1' refers to the upper-half area which corresponds to happy/positive/etc. I double-checked the logic against the original and it seems to match. First of all, the bots will only appear in the Embarkation Lobby or the Top of the Well.
Secondly, if the BellBot's middle dial is in the upper half, then it will always be the one that appears, and about 15-20 seconds.. though there can be a minor delay of a few seconds due to starting up the animations, and likely delays due to renderings whilst the timer was active. The counter is reset if the player moves to a new node. Basically, the game is subdivided into "rooms", then "nodes", then "views". A room is an overall area, such as the Embarkatioon Lobby, or the Top of the Well. Nodes are the different positions you can stand within a room. And finally, views are the different directions you can face in whilst still be standing on the same node, like N, S, E, and W.
The BellBot is one of the bots you can control using the Cell Point Settings room. If you use the first device going clockwise from the entrance, and pull the lever, that'll put the BellBot's middle dial to a low setting. After that, it takes a little over 2 minutes staying on the same node for them to make an appearance, and either one can appear then.
I did some testing, and so long as you changed "nodes", the bots wouldn't appear. Such as walking in a big circle around the top of the well. If, however, you simply spin in place, then you're not actually leaving a node, and the BellBot will appear in 15 seconds or so, just like the original. Can you confirm that you're seeing the same behaviour?
comment:6 by , 7 years ago
I observed everything exactly as you have said except the timer does not reset between nodes.
E.x., If I walk in a circle around top of the well with all the cell points high for the bellbot then he will appear after 15 sec and 2mins if his middle setting is low.
When the bellbot's middle setting is low either the doorbot or the bellbot will appear every 2 mins in the lobby or the top of the well. The cell point settings for the doorbot middle and top and high.
Should the bellbot also being showing every 15secs if his middle/top cell settings are high?
comment:7 by , 7 years ago
Could you also have the doorbot/bellbot not show up at certain views/nodes? I was thinking particularly of the lobby facing the Succ-U-Bus. Its quite annoying to be sending items and have the bellbot step in front. The original doesnt do this.
comment:10 by , 7 years ago
Status: | pending → closed |
---|
I agree with your suggestions. I figured out the timer problem, and added in the special cases you suggested.
Thanks for realising it was happening. I've applied a fix, but it will only take effect if you go right back to when you first enter the Top of the Well after checking in.. that's when the "idle summoner" is first started, and the corrected code takes effect.