#exult@irc.freenode.net logs for 18 Feb 2001 (GMT)

Archive Today Yesterday Tomorrow
Exult homepage

[00:00:15] <Fingolfin> no
[00:00:29] <Fingolfin> standard says: assert has to be *disabled* by defining NDEBUG
[00:00:35] <Fingolfin> it is on by default
[00:00:41] <Fingolfin> and I checked the headers, too....
[00:01:01] <wjp> yeah, that's what my assert.h does
[00:03:01] <Fingolfin> there is a bug with desert scorpions it seems... it seems as if their attack animation is missing a frame, they "vanish" for a moment
[00:03:17] <wjp> yes, more creatures do that
[00:03:36] <wjp> attack animation always seems to use the same frames, even if they're not defined
[00:07:20] <wjp> hmm, btw, you said cx was 243 in get_objects? wouldn't that mean that only 1 of the 4 bytes of the integer was 0xF3?
[00:07:45] <wjp> or is converted from a uint8 somewhere?
[00:07:50] <wjp> s/is/is it/
[00:08:20] <Fingolfin> err...
[00:08:20] <Fingolfin> unsigned char cx, cy;
[00:08:41] <Fingolfin> that's how it is declared ;)
[00:09:22] <wjp> hmm... get_objects gets them as ints
[00:09:22] <Fingolfin> there is a small "hidden" cave with gold, two chests with a magic whip, and several glass swords, on a small island in the very south...
[00:09:40] <wjp> the "parrot" treasure?
[00:09:40] <Fingolfin> it is rendered *very* badly, I guess if someone tweaks rendering, he should look there, too
[00:09:48] <Fingolfin> I think so
[00:09:52] <Fingolfin> some rings are there, too
[00:09:55] <Fingolfin> and a dead pirate
[00:09:59] <Fingolfin> and ghost attacks
[00:10:07] <Fingolfin> and spike trap protecting the entrance
[00:10:08] <wjp> btw, when I put an assertion in get_objects_safely, I immediately aborts there
[00:10:23] <wjp> s/I/it/
[00:11:23] <wjp> cy = 1billion-something
[00:13:37] <wjp> the interesting thing is, that that value is reproducible
[00:13:41] <wjp> (1074435292)
[00:14:07] <Fingolfin> hm
[00:14:27] <Fingolfin> funny
[00:14:53] <wjp> I get it right when I create a new game, btw
[00:15:17] <wjp> called from the Npc_actor constructor, apparently
[00:17:31] <-- Fingolfin has left IRC (Ping timeout for Fingolfin[])
[00:18:42] --> Fingolfin has joined #exult
[00:19:12] <Fingolfin> crashed
[00:19:30] <wjp> :-(
[00:22:48] <wjp> I'm recompiling with the assert removed again...
[00:27:42] <Fingolfin> it crashed again in find_opponent, sigh
[00:28:08] <wjp> I still get crashes, even though I removed the 'delete this' in Game_object::remove_this
[00:29:06] <Fingolfin> weird
[00:33:07] <wjp> bah.. these crashes are frustrating
[00:34:42] <wjp> I'll try putting a watchpoint on the dragon that's attacking me... (if I can find the pointer)
[00:40:52] <Fingolfin> ok, another teleport crash, this time in a different place
[00:41:01] <Fingolfin> Chunk_object_list::try_all_eggs(Game_object*,int,int,int,int,int)
[00:41:02] <Fingolfin> Egg_object::activate(Usecode_machine*,Game_object*,int)
[00:41:14] <Fingolfin> but I think it is the same source...
[00:43:00] <Fingolfin> hmmm
[00:43:03] <Fingolfin> different
[00:43:12] <Fingolfin> in Egg_object::activate(Usecode_machine*,Game_object*,int)
[00:43:18] <Fingolfin> Egg_object *path =
[00:43:18] <Fingolfin> gwin->get_path_egg(get_quality());
[00:43:31] <Fingolfin> quality == 2 but the path_eggs vector is empty
[00:43:37] <Fingolfin> -> bounds exceeded
[00:43:39] <Fingolfin> <sigh>
[00:44:06] <wjp> ok, so we've got crashes in Projectile_effect, Combat_schedule, Egg_object, ...
[00:44:20] <Fingolfin> right
[00:46:06] <wjp> I don't get this...
[00:46:34] <wjp> I've put a watchpoint on 'cheat->cscreen->grabbed', which gets triggered when I click on the dragon/myself/another actor
[00:46:59] <wjp> however, when I try to examine the contents of the Actor pointed to, I get a 'cannot access memory at...'
[00:48:04] <wjp> I might be doing something wrong, though. (I'm not that much of a gdb expert)
[00:48:47] <Fingolfin> of course I fully understand the source of the problem and know the solution but don't tell you so you are not ashemd of not knowing ;)
[00:49:00] <wjp> how considerate :-)
[00:51:35] <wjp> ok, I figured it out... you can tell me know ;-)
[00:51:57] <wjp> s/know/now/
[00:52:26] <Fingolfin> ups, the connection must be disturbed <scrreeech, screech>, can't <screech> ...stand yo.... <screech>
[00:52:53] <wjp> lol
[00:53:02] <Fingolfin> <screech>... the solution is ... <screcch>... then <scrrecch>
[00:53:06] <Fingolfin> do you copy? ;)
[00:53:26] <wjp> yeah, I got it :-)
[00:55:23] <wjp> what the ?!?
[00:55:30] <wjp> I suddenly can't move anymore
[00:57:47] <wjp> hmm... starting a new game fixed it
[00:59:09] <wjp> ok, I really don't get this
[00:59:27] <wjp> (gdb) print actor
[00:59:28] <wjp> $7 = (Actor *) 0x840eba0
[00:59:32] <wjp> (gdb) print (Game_window::game_window)->main_actor
[00:59:32] <wjp> $8 = (Main_actor *) 0x840eba0
[00:59:50] <wjp> (gdb) print *actor
[00:59:50] <wjp> Cannot access memory at address 0x943b7d8
[01:00:01] <wjp> (gdb) print *(Game_window::game_window)->main_actor
[01:00:18] <wjp> blah blah blah... (contents of main_actor class)
[01:02:51] <wjp> somehow it can't print it as an Actor, but it can print it as a Main_actor
[01:03:00] <wjp> same goes for Actor/Npc_actor and the dragon
[01:03:58] <Fingolfin> hrmmm
[01:04:01] <Fingolfin> strange
[01:04:15] <Fingolfin> after all, a Main_actor IS-A Actor
[01:04:19] <wjp> yup
[01:04:38] <wjp> now I need to see if I can put a breakpoint on deleting this pointer
[01:12:25] <Fingolfin> oh my, I think I'll go to bed now
[01:12:39] <Fingolfin> I hope you find the solution ;)
[01:12:47] <Fingolfin> but don¿t forget to sleep a bit 8-)
[01:12:51] <-- Fingolfin has left IRC (42)
[01:22:18] <-- wjp has left IRC ([x]chat)
[05:59:23] <-- Kirben has left IRC (pohl.openprojects.net forward.openprojects.net)
[05:59:29] --> Kirben has joined #exult
[08:03:43] <-- exultbot has left IRC (signing off...)
[08:05:03] --> exultbot has joined #exult
[08:05:03] --- Topic for #exult is: Exult, the open source Ultima 7 and U7 part 2 engine
[08:05:03] --- Topic for #exult set by ChanServ at Thu Feb 15 14:46:19 2001
[08:11:25] --> matt0 has joined #exult
[08:11:53] <-- matt0 has left IRC (Laserdisc Arcade Emulation Project: http://daphne.rulecity.com , get your CVS password today! =])
[08:11:56] --> matt0 has joined #exult
[10:21:29] --> Kirben2 has joined #exult
[10:25:20] <-- Kirben has left IRC (barnes.openprojects.net lackey.openprojects.net)
[10:36:20] --> Kirben has joined #exult
[10:36:43] <-- Kirben2 has left IRC (Ping timeout for Kirben2[co3007967-a.brasd1.vic.optushome.com.au])
[12:39:51] --> wjp has joined #exult
[13:12:49] <-- Kirben has left IRC (Read error to Kirben[co3007967-a.brasd1.vic.optushome.com.au]: Connection reset by peer)
[13:19:07] --> Colourless has joined #Exult
[13:19:20] <Colourless> hi
[13:28:43] <wjp> hi
[13:29:23] <wjp> Max and I found a couple of crashes that were introduced/exposed by your caching changing a few days ago
[13:29:32] <wjp> s/changing/changes/
[13:29:41] <Colourless> you did? what are they
[13:30:52] <wjp> random teleport crashes, and a few reproducible teleport crashes
[13:30:54] <wjp> for instance:
[13:31:27] <wjp> teleport into despise, attract some fireballs from dragons, teleport out again (to vesper or something) while fireballs are approaching -> crash
[13:32:50] <Colourless> interseting. My first idea of the cause would actually be to do with experience calculations, I could be wrong as I have no idea how Exult handles that
[13:33:01] <wjp> I think the problem is that the 'projectile_effect' is not destroyed, while the dragon that fired it, is, but I'm not really sure
[13:36:02] <Colourless> what ever it is, the projectile must require the Dragon monster_npc in some calculation
[13:36:18] <Colourless> i look at it later
[13:36:46] <wjp> yes, it needs to know if the dragon is in the 'duel' schedule, specifically
[13:36:59] <Colourless> odd
[13:37:00] <wjp> (to see if it does any damage)
[13:37:10] <Colourless> ah
[13:37:26] <wjp> (duel = combat without any damage)
[13:40:27] <Colourless> shouldn't be too hard to fix. The current method theoretically is a bug, because between the firing of the projectile and the time it hits, the schedule might have changed.
[13:40:42] <Colourless> You'd want the projectile to reflect the schedule at the time of firing, not the time it hits
[13:40:48] <wjp> true
[13:41:42] <wjp> however, there's more things you need to know about the attacker in general
[13:42:25] <wjp> the Projectile_effect should probably be destroyed entirely when you get out of range
[13:43:27] <Colourless> i could change the code to include projectile_effects as well. Though when a projectile_effect is created, all the information it needs should be retrieved then
[13:44:25] <wjp> we'd have to look at which things need to be deleted. projectiles are probably only one of them
[13:45:13] <Colourless> other effects (such as text) may do it as well
[13:45:53] <wjp> a 'Combat_schedule' also stores a list of opponents (which may have been deleted)
[16:56:42] --> Fingolfin has joined #exult
[16:57:18] <Fingolfin> lo folks
[16:57:36] <Colourless> hi
[16:57:42] <wjp> hi
[17:01:58] <Fingolfin> ryan: I made a sourceforge bug for the new "caching" system you added recently and assigend it to ya
[17:02:13] <Colourless> yeah, i got the notification
[17:06:02] <Fingolfin> actually, I think we could fix and prevent a lot of our problems (at least on the long run) by using smart pointers
[17:06:06] <Fingolfin> not auto_ptr that is
[17:06:15] <Fingolfin> but share_ptr etc. like those proviede by Boost
[17:06:44] <Fingolfin> i.e. keep a refcount to each object; using clever pointers it'll be done automatically
[17:10:06] --> Cless has joined #Exult
[17:11:20] <-- Colourless has left IRC (Ping timeout for Colourless[])
[17:11:29] --- Cless is now known as Colourless
[17:20:46] <Colourless> brb
[17:20:48] <-- Colourless has left IRC (Apipoussan)
[17:21:08] --> Colourless has joined #Exult
[17:21:11] --> Cless has joined #Exult
[17:21:22] <-- Colourless has left IRC (gone)
[17:21:22] --- Cless is now known as colourless
[17:21:31] --- wjp is now known as wjp|dinner
[17:22:58] <-- colourless has left IRC (brb again)
[17:23:55] --> colourless has joined #Exult
[17:24:01] --> Cless has joined #Exult
[17:24:15] <-- Cless has left IRC (Lets see if this worked)
[17:24:37] --> Cless has joined #Exult
[17:24:42] <-- colourless has left IRC (Opps wrong one)
[17:24:56] --- Cless is now known as Colourless
[17:25:52] <Colourless> cool, it worked :)
[17:27:24] <Fingolfin> what?
[17:27:53] <Colourless> wrote a script to automatically change my name, when my duplicate quits
[17:28:05] <Fingolfin> ah ;)
[17:28:07] <Fingolfin> good ;)
[17:28:18] <Colourless> it also identifys me with the nickserv, and tells the chanserv to op me
[17:28:24] <Fingolfin> very good
[17:28:39] <Fingolfin> I gotta go now, first eat something, then got a date ;)
[17:28:49] <Fingolfin> ryan: and you better fix that crashing before I come back ;)
[17:28:50] <Colourless> :)
[17:28:53] <-- Fingolfin has left IRC (42)
[17:41:08] <-- Colourless has left IRC (barnes.openprojects.net herbert.openprojects.net)
[17:41:47] --> Colourless has joined #Exult
[17:46:16] --- wjp|dinner is now known as wjp
[18:03:55] --- Colourless is now known as Cless|food
[18:31:32] --- Cless|food is now known as Colourless
[18:35:53] <Colourless> lets look at this bug
[18:42:55] --> grant has joined #exult
[18:45:27] <Colourless> the bug specific to 'Combat_schedule' is likely to occur regardless of my changes in certain circumstances
[18:47:56] <Colourless> there would be 2 ways to fix it. Either have each monter npc notified if another npc has added it to their list of opponents so when the monster gets removed it can notify the other NPC, or when ever a NPC gets removed, a serch is done and any reference to that NPC is removed
[21:10:47] --> Cless has joined #Exult
[21:11:31] <-- Colourless has left IRC (Ping timeout for Colourless[])
[21:11:33] --- Cless is now known as Colourless
[22:37:11] <-- Colourless has left IRC (Me thinks bed)
[23:40:40] <wjp> time for bed :-)
[23:40:42] <wjp> bye
[23:40:53] <-- wjp has left IRC ([x]chat)
[23:48:03] --> Fingolfin has joined #exult
[23:48:33] <Fingolfin> ?seen wjp
[23:48:33] <exultbot> wjp left IRC around Sun Feb 18 23:40:53 2001 (GMT) ([x]chat)
[23:48:43] <Fingolfin> ?seen colourless
[23:48:43] <exultbot> colourless left IRC around Sun Feb 18 22:37:11 2001 (GMT) (Me thinks bed)
[23:50:28] <Fingolfin> grant: you are the guy who suggested the dynamic keybinder initially, right?
[23:50:37] <Fingolfin> and who gave the base on which willem finished it!
[23:50:43] <Fingolfin> grant: thanks for that