#exult@irc.freenode.net logs for 29 Oct 2013 (GMT)

Archive Today Yesterday Tomorrow
Exult homepage

[00:07:35] <-- ShamblerDK has left IRC (Remote host closed the connection)
[00:26:36] <-- MisterBubbles has left IRC (Remote host closed the connection)
[06:28:32] <-- Shozan has left IRC (*.net *.split)
[06:28:32] <-- ParuCodex has left IRC (*.net *.split)
[06:28:32] <-- Marzo has left IRC (*.net *.split)
[06:28:33] <-- Dominus has left IRC (*.net *.split)
[06:28:33] <-- sh4rm4 has left IRC (*.net *.split)
[06:28:33] <-- Philantrop has left IRC (*.net *.split)
[06:28:33] <-- wjp has left IRC (*.net *.split)
[06:28:33] <-- Matt_O has left IRC (*.net *.split)
[06:28:33] <-- Lightkey has left IRC (*.net *.split)
[06:33:52] <-- exultbot has left IRC (signing off...)
[06:35:06] --> exultbot has joined #exult
[06:35:06] --- Topic for #exult is: Exult: http://exult.sourceforge.net/ - The open source engine for Ultima 7
[06:35:06] --- Topic for #exult set by Colourless at Fri Sep 12 00:40:42 2008
[12:33:13] --> TheCycoONE has joined #exult
[19:04:32] <Dominus> wjp, are you there? Need your opinion. That "bug" I was chasing down that the Time Lord speaks to you after the cube generator.
[19:04:56] <Dominus> it seems like a bug in the original that we might have (by accident?) fixed
[19:05:42] <Dominus> since the time lord should only be able to speak to you through the enchanted hourglass and you haven't met him yet, the speech shouldn't be triggered
[19:05:56] --> Matt_O1 has joined #exult
[19:05:58] <Dominus> so the original does that wrong, Exult does it right
[19:06:48] <Dominus> AND when you use the hourglass in Exult AFTER the destruction of the cube, that speech gets played
[19:07:26] <Dominus> so, I think we do it as intended and the original did it wrong
[19:07:38] <Dominus> and I shouldn't bother anymore with this bug
[19:09:02] <-- Matt_O has left IRC (Ping timeout: 272 seconds)
[19:20:14] <Dominus> Marzo, just out of interest, do you have any idea why we do it more correctly than the original? :)
[19:39:34] <Marzo> Dominus: note that this is unsubstantiated speculation (as in, I didn't check), but: the cube code *could* be looking for the hourglass in the player's possession and using it as the script item; without it there, Exult fails but the original does not
[19:40:11] <Marzo> You wouldn't happen to know which usecode function is called, would you?
[20:36:32] --> ShamblerDK has joined #exult
[20:49:35] <-- TheCycoONE has left IRC (Quit: And then there were n-1)
[21:07:37] <-- SugarCube has left IRC (*.net *.split)
[21:07:37] <-- Sevalecan has left IRC (*.net *.split)
[21:14:28] --> SugarCube has joined #exult
[21:14:28] --> Sevalecan has joined #exult
[22:03:32] <sh4rm4> release ... please
[22:03:33] <sh4rm4> release ... please
[22:03:34] <sh4rm4> release ... please
[22:31:41] <Dominus> marzo, when I run a debug exult I get these between doubleclicking the prism and being teleported outside:
[22:31:46] <Dominus> Running usecode 03c8 () with event 1, depth 0
[22:31:46] <Dominus> Running usecode 0807 (00ae1d60) with event 1, depth 1
[22:31:46] <Dominus> Probable attempt at getting int value of pointer!!
[22:32:36] <Dominus> (then "Want to cache out around superchunk..." - so that's why I assume it's the teleporting afterwards)
[22:33:35] <Dominus> then there is a lot of other usecode being run and Returning from usecode back into usecode...
[22:36:55] <Marzo> 03c8 is one of the prisms; the one leading to function 0807 is frame 1, which is the enclosed cube
[22:37:46] <Marzo> Function 03c8 does nothing with the prism except forward the call to 0807 in the path that calls 0807
[22:37:54] <Dominus> http://pastie.org/8441289
[22:38:17] <Dominus> that's the whole "scene"
[22:39:06] <Marzo> Function 0807 changes the shape of the prism to the non-enclosed form, moves it, moves the avatar (causing the cache-out), sets the party to follow avatar (through function 0808) and makes the avatar call function 061d after 8 ticks
[22:41:00] <Dominus> 061d could be the one?
[22:41:15] <Dominus> "...back into usecode 061d
[22:41:15] <Dominus> Can't create script for NULL object"
[22:43:47] <Marzo> Function 061D looks for all the generator pieces near the avatar and makes them display the sprite effects, then executes a script for "object" 0x269
[22:44:02] <Marzo> So it is definitely it
[22:47:14] <Dominus> so every flag gets set correctly but it should probably display the speech but the NULL object thing prevents it
[22:47:16] <Marzo> Shape 0x269 is carpet pieces; function 0x269 has the code to display what the TimeLord has to say
[22:48:19] <Dominus> so when the "Probable attempt at getting int value of pointer!!" hits it should probably get the function and not the object or something like that?
[22:48:44] <Marzo> The other cases where function 0269 is called are called using "UI_get_npc_object(0x0269)->Func0269();"
[22:50:35] <Marzo> (except for function 061B, which also calls it like 061D)
[22:54:41] <Marzo> Uhhh....
[22:54:49] <Marzo> We are very, very, VERY lucky
[22:55:26] <Dominus> that sounds like one of those things that could have blown Exult up since ages...
[22:56:18] <Marzo> No, wait -- there is an explicit kludge for this
[22:56:24] <Dominus> whatever it is, Exult has been doing it since 12 years, between 0.96beta1 and 0.98rc1
[22:57:00] <Marzo> But it is failing for the intrinsics
[22:58:20] <Marzo> Here, try this: go to ucinternal.cc and locate this line:
[22:58:21] <Marzo> caller_item && val == caller_item->get_shapenum())
[22:58:28] <Marzo> Change it to this for testing:
[22:58:47] <Marzo> caller_item && (val == 0x269 || val == caller_item->get_shapenum()))
[23:00:13] <Marzo> (in theory, the whole " && val == caller_item->get_shapenum()" might be removable, but this could lead to undesirable side-effects)
[23:02:59] <Dominus> one moment, seems the 32bit built is highly unstable on os x
[23:12:08] <Dominus> marzo, that works
[23:13:02] <Marzo> Yeah, if only we had someone that could test both games in their entirety to see if the " && val == caller_item->get_shapenum()" bit is critical or not...
[23:13:37] <Marzo> It seems familiar; as if I had written it
[23:13:37] <Marzo> Let me check that
[23:15:08] <Dominus> yes, in july 2007 you added something to that
[23:15:34] <Dominus> * gamewin.cc, cheat_screen.cc, mapedit/npclst.cc, usecode/ucinternal.cc,
[23:15:34] <Dominus> content/islefaq/initgame.dat: NPCs with numbers in the [356, 359] range
[23:15:34] <Dominus> are hidden by Exult and ES, not being available for new NPCs. Also, these
[23:15:34] <Dominus> 'reserved' NPC numbers will not be converted to NPCs by intrinsics.
[23:15:34] <Dominus> Other than that, negative usecode numbers will be converted to NPCs
[23:15:35] <Dominus> whenever possible, like positive numbers; this effectivelly removes the
[23:15:36] <Dominus> NPC # limit from Exult.
[23:16:51] <Marzo> Hm, how do I do an svn blame on the current web interface? Bah, back to the command line...
[23:20:18] <Dominus> the obj = caller_item was done by jeff in rev 2531
[23:20:53] <Marzo> Yeah, I just found out about it
[23:21:17] <Dominus> the above line is obscure because of the astyle recently
[23:21:27] <Marzo> Aye
[23:22:59] <Dominus> he he, and of course that is the first revision of ucinternal.cc
[23:24:47] * Dominus is sutting up. looked at ucinternal.*h* right now
[23:49:41] --> ShamblerDK_ has joined #exult
[23:58:10] <-- ShamblerDK has left IRC (*.net *.split)
[23:58:11] <-- Dominus has left IRC (*.net *.split)