CorsixTH
CorsixTH copied to clipboard
Doctor stuck in Operating Theatre
Doctor was stuck in operating theatre and I couldn't pick him up, and tried to sack him which didn't work. I then tried deleting the room which I couldn't, and I built another operating theatre immediately which also did the same thing. I am including the log which should give you some detail. I didn't save the game as I didn't want my save to be ruined but it could have possibly autosaved. This was on the 8th level and I can't remember the name of the hospital.
<loads of warnings removed>
Warning: Trying to remove nonexistant room remove callback (function: 0000025306B26CE0) from humanoid (table: 0000025306B193E0).
Savegame version is 111 (v0.60-rc1), originally it was 111 (v0.60-rc1)
Warning: goHome called when the patient is already going home
Savegame version is 111 (v0.60-rc1), originally it was 111 (v0.60-rc1)
Warning: goHome called when the patient is already going home
Error in timer handler:
...ogram Files\CorsixTH\Lua\humanoid_actions\use_object.lua:131: No animation for Doctor using op_sink1 facing east phase 0
stack traceback:
[C]: in function 'error'
...ogram Files\CorsixTH\Lua\humanoid_actions\use_object.lua:131: in upvalue 'action_use_phase'
...ogram Files\CorsixTH\Lua\humanoid_actions\use_object.lua:329: in local 'timer_function'
C:\Program Files\CorsixTH\Lua\entity.lua:219: in field 'tick'
C:\Program Files\CorsixTH\Lua\entities\staff.lua:149: in method 'tick'
C:\Program Files\CorsixTH\Lua\world.lua:1059: in method 'onTick'
C:\Program Files\CorsixTH\Lua\app.lua:1000: in function <C:\Program Files\CorsixTH\Lua\app.lua:997>
(...tail calls...)
C:\Program Files\CorsixTH\Lua\app.lua:901: in function <C:\Program Files\CorsixTH\Lua\app.lua:896>
Thanks for the report, but we will need a save game from before the probem to be able to investigate. If you could check the autosaved games please? The creation dates should give you a good idea of the age of them, to find the useful one.
Autosave did not give that error
I will play a little more and see if it does the same error and report back
Duplicate of #68 Since it happens with new rooms as well we might be able to sort it out from the given save.
@TheCycoONE How is it a duplicate? This one has the error No animation for Doctor using op_sink1 facing east phase 0 and there is no error message in #68
I marked it as a duplicate because they were both about being stuck in the operating theater. Something triggered #68 that isn't included in the description of the issue, but we don't know what it is. Anyway I agree that the trigger is likely different, and in this case the doctors can't be removed even by force - though in another issue I found that in the case of the GP office I was able to easily get from a save where the dr was stuck but could be dragged out to a state where the dr. was completely stuck.
Doctors or other staff being in a cycle of wandering around and not going for a break has been an issue for several years and it could be there are other issues open that refer to that as well as #68. This one though mentions something about "no animation". @Alberth289346 could not replicate it so I wondered whether @Scrabblebonce has incomplete or corrupted data?
yes.. i have this issue too..
developers stop asking.. please, fix it
@viktorcech you do not have this issue, your issue is probably a duplicate of #68 and probably caused by the issue identified in #1087
Here's a savegame where the bug happens (the operating room in upper right).
http://fruitshake.wyozi.xyz:8080/f/oproombug.sav
I could replicate this by, picking up the surgeon whilst peforming an operation and right clicking to cancel. Surgeon 'teleports' to screen and gowns up again, then whilst they are walking to sink, pick them up again and again right click to cancel. Surgeon again 'teleports' to screen, returns to normal doctor and proceeds to sink and this error is thrown. Should note that generally you can't pick them up on the way to sink but once they get there the action is interruptable. You can even then left click and place the gowned surgeon outside the room causing the error as in #1073.
Sorry to resurrect this old issue, but I've just experienced this bug using version b7abdd01a6bc222747bc9c405de2fc58630ef627 (2020-06-30).
- It never gave an in-game error message.
- Sacking the doctors will not make them leave the table. Moving them doesn't work.
- Placing two more surgeons in the theater will make them dress, but patients won't come in.
- Editing the room will make the NEW surgeons leave, but won't make the stuck ones leave.
- Docs are tired AF, and won't take a break.
Possible new features to add that would provide a simple workaround (in lieu of the code preventing the docs getting stuck):
- Moving the doc should actually work instead of doing nothing.
- Sacked actors are removed after 2 minutes, instead of only when they walk off the map.
- Trying to move the doc and failing for 10 seconds might pop up a dialog asking if I want to just remove the actor.
- Ask and nuke everything in a room after trying to edit and failing for 30 seconds.
That looks like a different issue, I think this relates to my comment https://github.com/CorsixTH/CorsixTH/issues/1173#issuecomment-343713744 where a patient can become fed up and and leave whilst in the room. Or you can kick them and it also leaves the room in a bad state, depending on what state the surgeons are in. Easily replicable which is good.
I can confirm 1073 still (though not expecting it would've gone away...) using mugmuggy's method. It indeed looks like the code trips and executes the wrong animation.
Error:
Running: The timer handler.
A stack trace is included below, and the handler has been disconnected.
Lua\humanoid_actions\use_object.lua:166: No animation for Doctor using op_sink1 facing north phase 0
stack traceback:
[C]: in function 'error'
Lua\humanoid_actions\use_object.lua:166: in upvalue 'action_use_phase'
Lua\humanoid_actions\use_object.lua:364: in local 'timer_function'
Lua\entity.lua:216: in field 'tick'
Lua\entities\humanoids\staff.lua:126: in field 'tick'
Lua\entities\humanoids\staff\doctor.lua:97: in method 'tick'
Lua\world.lua:1085: in method 'onTick'
Lua\app.lua:1130: in function <Lua\app.lua:1127>
(...tail calls...)
Lua\app.lua:1030: in function <Lua\app.lua:1025>
Could we make a check to see if the surgeon is gowned before using the sink? And if not, make them get gowned up? Though other solutions could be:
- On pickup (if left interruptible): Always remove the gown from surgeon
- Prevent pickup entirely during the whole action sequence
Another thing bothering me about reproducing this is the patient just sits there laying on the slab... shouldn't the patient be made to leave?
Side note, some more fun! It looks like operating theatre has a multitude of issues that need addressing.
Running: The timer handler.
A stack trace is included below, and the handler has been disconnected.
Lua\humanoid_actions\walk.lua:331: Humanoid (Surgeon) without door animations trying to walk through door (from corridor to operating_theatre)
stack traceback:
[C]: in function 'error'
Lua\humanoid_actions\walk.lua:331: in function <Lua\humanoid_actions\walk.lua:249>
(...tail calls...)
Lua\humanoid_actions\walk.lua:227: in local 'timer_function'
Lua\entity.lua:216: in field 'tick'
Lua\entities\humanoids\staff.lua:126: in field 'tick'
Lua\entities\humanoids\staff\doctor.lua:97: in method 'tick'
Lua\world.lua:1085: in method 'onTick'
Lua\app.lua:1130: in function <Lua\app.lua:1127>
(...tail calls...)
Lua\app.lua:1030: in function <Lua\app.lua:1025>
I've had similar issue (save file attached) - the middle operating room. The patient got fed up mid-surgery rendering the doctor completely stuck and the room unusable! Bit frustrating as I didn't notice for quite a while I had a whole operating room out of use. The attached save is just as it happened, the game is paused at the right time to show this. Middle Op Theater.zip