From: Marzo J. <ma...@ya...> - 2008-05-28 02:29:31
|
From: Jeff Freedman <je...@mo...> > Yes, it didn't look like the usecode destroyed anything directly, but it > did move the bodies so they were accessible. Got it! What cause them to be removed is hidden in the calls to function 0x2C0 (the powder keg function): it is the attack_object (formerly explode) intrinsic. I broke the gwani horn when I implemented the missing parameters (revision 1.308 to 1.309) and, I had it fixed again locally by "correctly" implementing attacks and damage. FYI, the "correct" way (which I have just finished re-implementing) is: attack_object(attacker, target, weapon_shape) intrinsic simply attacks using the parameters. If weapon_shape is any shape but the powder keg shape (704), this would proceed as this description suggests: "target" gets attacked with weapon "weapon_shape", and will react as if being hit by "attacker". For the powder keg shape *only*, an explosion happens instead, with "target" being the exploding object -- which gets directly removed by the explosion effect itself. In the originals, this special case is checked only at the very end -- after all checks for range, ammo/charges, etc., but before any damage is applied, powers used or usecode called. Until my commit is ready, a "quick" fix would be using revision 1.308 for weapon_shape == 704 and revision 1.309 for everything else. -- Marzo Sette Torres Junior --+-- ma...@fi... ma...@ta... ----+---- ma...@ya... "Mental slavery is mental death and every man who has given up his intellectual freedom is the living coffin of his dead soul." -- Robert Green Ingersoll, "Individuality" (1873) |