Drog Black Tooth
Self-Ejected
- Joined
- Feb 20, 2008
- Messages
- 2,636
Yeah I know it's a problem with some resolutions, it's been reported a few times.If you go to the half-ogre Island while using the hi rez patch the ship's captain (or helm of your ship) don't spawn, making you stuck there.
Short story: the captain should appear once you walk around his spawning location a bit. Or save and then reload on that spot.
Long story: Arcanum has very annoying "in sight" scripting commands, basically the script goes thru all the objects on screen until it finds whatever it was asked to find. When I was making the high resolution patch I quickly found out that this function has a limit of IIRC 127 objects, after which it craps out. So basically this would break quests like fixing that altar in Vooriden when playing in a high resolution. Even at 1024x768 there would be too many objects on the screen so the altar never gets fixed. I was faced with a problem, like how the fuck am I supposed to fix this, did I just debug the whole UI and write hundreds of lines of code for nothing. WTF, fuck my life.
So I came up with a solution. Instead of letting that function scan the whole screen I hijacked it and fed it fake width and height, 800x400 to be precise, cause this was the original drawing area resolution of Arcanum (the original HUD takes 200 vertical pixels and actually nothing is drawn behind it). This worked, the altar could be restored at any resolution. However, the caveat was that this 800x400 rectangle is only drawn around the player (which was okay in that altar quest since you're standing right next to the altar when it gets fixed), so yeah you have to imagine you're still playing in that tiny box and walk all the way over to the captain to make him spawn.
Same goes for, for example, that dude who lost his ring in the sewer in Tarant. Once you give him the ring and walk a few steps away he'll disappear in a poof, cause the scripting engine still thinks you're running the game in 800x400 and are already off screen. This is intentional.
Maybe I could up the object limit, increase the stack or something in the future, I dunno. Then I would be able to remove this shitty workaround.
P.S. And another thing, everything that's 31 tiles away from the PC is frozen solid. The pedestrians won't move, fire/torch animations won't play, no scripts, no AI, no nothing. This could be seen at very high resolutions. We could potentionally remove this limit too (should be p easy to do since the number is p small anyway, I just wasn't able to pin point where the fuck in the code is it stated), but this would heavily affect the performance of this already p shitty running game.