place_object: obj not free
So, just a warning to folks out there - don't push boulders onto
landmines. The crash is consistently reproducible in wizmode.
Darshan
[...]
> boulder from a rolling boulder trap right next to it, so I pushed
> it onto the landmine, expecting to blow it to blazes. Got a
> dungeon collapse instead:
>
> place_object: obj not free
This seems to be caused by the newly-added place_object() call in
fracture_rock() (which is called by scatter() when it breaks a
boulder). The boulder shatters into rocks that are dropped to the
floor by the place_object() call in fracture_rock(); scatter() then
tries to put them on the floor again, which causes place_object() to
protest because the rocks are already on the floor.
The diff that follows removes the redundant call to place_object() in
scatter() (explode.c) and prevents this crash (the usual disclaimers
apply - it's one in the morning here and I'm rather short on sleep
:)).
*** explode.c Thu Mar 21 05:13:06 2002
--- explode.c.fix Sat Mar 23 00:57:16 2002
***************
*** 439,445 ****
if (otmp->otyp == BOULDER) {
pline("%s apart.", Tobjnam(otmp, "break"));
fracture_rock(otmp);
- place_object(otmp, sx, sy); /* put fragments on
floor */
if ((otmp = sobj_at(BOULDER, sx, sy)) != 0) {
/* another boulder here, restack it to the top */
obj_extract_self(otmp);
--- 439,444 ----
***************
*** 452,458 ****
deltrap(trap);
pline("%s.", Tobjnam(otmp, "crumble"));
(void) break_statue(otmp);
- place_object(otmp, sx, sy); /* put fragments on
floor */
}
used_up = TRUE;
--- 451,456 ----
That "fix" defeats the purpose of the routine that
the code is found in - scatter() which is meant
to scatter objects (to sx,sy).
Instead of removing the place_object() call,
insert an obj_extract_self(otmp) right before it.
Actually the end result is effectively the same
in this case so Nevermind.
It is fixed in the development code.
Warning: pickax ALL Gehennom boulders in place.
Gehennom's trap density is very high. I hit a landmine with
a pushed boulder after just two Gehennom levels. Since dungeon
collapses don't leave anything for Recover, this was slightly
irksome.
--
Rob "that was one heck of a landmine: over 25 levels
blasted to rubble" Ellwood
Ouch. (What did you do in Gehennom anyway, I thought you didn't
like it...?)
I've already asked Fred to get me the new version, but I'd like
one with a patch for this as well.
I'd also like to have Hell instead of Gehennom and change the
Mines (add all of Kelly's Mines, and your new town as well).
Incase I get some mad idea to add my own stuff too somewhere (or
just fiddle with what's there) I'd like to be able to change
anything myself, so I'd need the relevant .exe and the stuff in
the \dat directory (with Hell) to compile my own nhdat. (The new
monsters in Hell are defined in the level compiler stuff, right?)
Is there any way to get a precompiled DOS binary (no Allegro)
with the bugfix, and the stuff to levelcompile an nhdat? An url
to a zip or two would do. (Or send it to Fred, but please tell me
if you do incase someone else likes to be helpful too.)
> Rob "that was one heck of a landmine: over 25 levels
> blasted to rubble" Ellwood
Indeed. Any people proposing another YANI: nuke, ulra-weapon,
etc. can be refered to this, now. <g> It's probably some nifty
two component chemical reaction bomb.
--
Bye
Tina
Multiple exclamation marks are a sure sign of an insane mind!!!!
(Apologies to Terry Pratchett.)
I was thinking that I could try to be the first to
ascend. That character had an ascension kit and 9 more wishes.
I went into Gehennom to see if I could tolerate the boredom.
Ah, well.
> I've already asked Fred to get me the new version, but I'd like
> one with a patch for this as well.
>
> I'd also like to have Hell instead of Gehennom and change the
> Mines (add all of Kelly's Mines, and your new town as well).
>
> ...I'd like to be able to change
> anything myself, so I'd need the relevant .exe and the stuff in
> the \dat directory (with Hell) to compile my own nhdat. (The new
> monsters in Hell are defined in the level compiler stuff, right?)
If you have the Hell patch, your level-editing programs
need it, too.
The Hell Patch will need changes. I suggest that you
wait for the next version of PatchHack. I'll eventually put
the four level-editing programs for 3.4 on my web page. After
the new PatchHack is out, I'll put up the level-editing programs
for PH, too.
> Is there any way to get a precompiled DOS binary (no Allegro)
> with the bugfix, and the stuff to levelcompile an nhdat?
I'll eventually try to do it. I wouldn't be surprised
if Jason updates most or all of PatchHack before I get going.
> An url to a zip or two would do. (Or send it to Fred, but
> please tell me if you do incase someone else likes to be
> helpful too.)
--
Rob Ellwood
> Warning: pickax ALL Gehennom boulders in place.
>Gehennom's trap density is very high. I hit a landmine with
>a pushed boulder after just two Gehennom levels. Since dungeon
>collapses don't leave anything for Recover, this was slightly
>irksome.
I think .sav backups would be *quite* justified in this case.
--
-b
1 5966142 ___-Wiz-Hum-Mal-Neu ascended to demigod-hood. 261 [361]
[would like boulder&landmine bugfix]
> > I'd also like to have Hell instead of Gehennom and change
> > the Mines (add all of Kelly's Mines, and your new town as
> > well)
[do the mine changes myself, need stuff to compile nhdat].
> If you have the Hell patch, your level-editing programs
> need it, too.
I know, that's why I asked for 'with Hell'. I don't want to
fiddle with Vanilla-only.
> The Hell Patch will need changes.
What kind of changes?
> I suggest that you wait for the next version of PatchHack.
Doesn't really have to be Patchhack. Preadjust and Sticky is
nice, but I can live without it. Can't think of anything else I'd
want to have at the moment, and really don't want those auto-
opening detected secret doors from Patchhack anyway, and already
see myself cursing for the container merge in Vanilla if it isn't
toggable in-game...
> > Is there any way to get a precompiled DOS binary (no
> > Allegro) with the bugfix, and the stuff to levelcompile an
> > nhdat?
>
> I'll eventually try to do it. I wouldn't be surprised
> if Jason updates most or all of PatchHack before I get going.
I'd like a Vanilla-only binary with the bugfix too.
--
Tina
(insufficiently chaotic): Level 10 HP 61(63) AC 10, confused.
>Tina Hall wrote:
>> Is there any way to get a precompiled DOS binary (no Allegro)
>> with the bugfix, and the stuff to levelcompile an nhdat?
>
> I'll eventually try to do it. I wouldn't be surprised
>if Jason updates most or all of PatchHack before I get going.
I don't think all of PatchHack will be updated in the next time. There has
been some work on upgrading some of the patches, though, and certainly I
can distribute a binary being bones and saved games compatible with the
standard version. However, I can only compile DOS versions, and I believe
many people might have changed to the win32 port, because now it also
contains graphics. This would require someone else to compile it.
--
Philipp Lucas
phl...@online-club.de