Angband.oook.cz
Angband.oook.cz
AboutVariantsLadderForumCompetitionComicScreenshotsFunniesLinks

Go Back   Angband Forums > Angband > Vanilla

Reply
 
Thread Tools Display Modes
Old May 7, 2011, 10:37   #31
Magnate
Angband Devteam member
 
Join Date: May 2007
Location: London, UK
Posts: 5,057
Magnate is on a distinguished road
Send a message via MSN to Magnate Send a message via Yahoo to Magnate
Quote:
Originally Posted by myshkin View Post
No need to spend effort here. I believe I've found and fixed the bug. But yes, your workaround should work between now and the next development release.
Thank you, that's excellent. I will merge the fix in a new nightly today. Apologies to all concerned. The one piece of good news is that I'm not going mad - there is indeed nothing wrong with the code in rd_item_2 that sets the flags, but myshkin found a stray return earlier on, which meant it wasn't getting there for non-wearable items. Doh!
Magnate is offline   Reply With Quote
Old May 7, 2011, 15:07   #32
gudjkrist
Rookie
 
Join Date: Mar 2011
Posts: 10
gudjkrist is on a distinguished road
Just a quick thank you to the developers. Amazing work on a great game.

Do you recommend porting a Level 48 to the developmental version (from the April 23rd nightly) or just finishing the game on the old one?
gudjkrist is offline   Reply With Quote
Old May 7, 2011, 15:17   #33
d_m
Angband Devteam member
 
d_m's Avatar
 
Join Date: Aug 2008
Location: Philadelphia, PA, USA
Age: 39
Posts: 1,516
d_m is on a distinguished road
Quote:
Originally Posted by gudjkrist View Post
Just a quick thank you to the developers. Amazing work on a great game.

Do you recommend porting a Level 48 to the developmental version (from the April 23rd nightly) or just finishing the game on the old one?
I would definitely recommend finishing with that character.

If you *do* decide to port, I'd also make a backup copy... not for cheating but for recovering from in case of an emergency.
__________________
linux->xterm->screen->pmacs
d_m is offline   Reply With Quote
Old May 12, 2011, 16:59   #34
Max Stats
Swordsman
 
Join Date: Jun 2010
Posts: 324
Max Stats is on a distinguished road
Branded ammo doesn't show extra damage

I have branded a few stacks of ammo with the spell from Tensers, but when I examine them, they do not say that they are "branded" nor does the damage rating show that they do extra damage to monsters susceptible to their element. They do, however, get named according to their branding, and they can't be re-branded with another element. Ammo that is created already branded seems to function normally.

Version string is v3.2.0-820-g49911e7-dirtybash-4.1. Savefile attached (affected ammo is in quiver slots n, p, and r).
Attached Files
File Type: zip branding.zip (22.6 KB, 54 views)
Max Stats is offline   Reply With Quote
Old May 12, 2011, 17:17   #35
Spacebux
Adept
 
Join Date: Apr 2009
Posts: 231
Spacebux is on a distinguished road
Stack-bug / Null Pointer dereferenced / Crash.

Not sure where to throw this, but in the May 7th nightly (r82a3cef40a), I still had a program crash using 'n' to repeat an action with a stack of items on the floor.

Looks the code is tripping up with Line 132 in object/identify.c with the expression o_ptr -> kind

I have not tried to debug this any further. I think the code is getting snagged there because if nothing is left on the floor, the object_type pointer ought to be referencing something akin to NULL at that point. Not sure where the code is calling that bool from, but the problem is probably stemming from an incorrect command processing sequence, ... somewhere in cmd0.c, but I haven't found it yet....

I think there was a ticket open for this, if so, I haven't double-checked to see if it was closed or not.
Spacebux is offline   Reply With Quote
Old May 12, 2011, 17:55   #36
Spacebux
Adept
 
Join Date: Apr 2009
Posts: 231
Spacebux is on a distinguished road
I think I found it in game-cmd.c...

Quote:
Originally Posted by Spacebux View Post
Not sure where to throw this, but in the May 7th nightly (r82a3cef40a), I still had a program crash using 'n' to repeat an action with a stack of items on the floor.
Looks like the bug is in game-cmd.c, line 540:

538 {
539 bool get_target = FALSE;
540 object_type *o_ptr = object_from_item_idx(cmd->arg[0].choice);
541
542 /* If we couldn't resolve the item, then abort this */
543 if (!o_ptr->kind) break;

I believe this is incorrect, as the code does not take into account that cmd->arg[0].choice could be NULL. It simply assumes the command references something that exists. The old 3.2.0 code is below, for comparison:

bool get_target = FALSE;

if (obj_needs_aim(object_from_item_idx(cmd->arg[0].choice)))

{
The old code correctly catches the condition. I don't know what if (!o_ptr->kind) break; catches, yet, but I bet it does not catch the case where cmd->arg[0].choice is NULL.

Apologies in advance if this is completely incorrect, as my C skills are quite feeble...

-SBux-

Last edited by Spacebux; May 12, 2011 at 18:14.
Spacebux is offline   Reply With Quote
Old May 12, 2011, 22:18   #37
Spacebux
Adept
 
Join Date: Apr 2009
Posts: 231
Spacebux is on a distinguished road
I'm trying to compile, but failing horribly at the moment:

game-cmd.c:

538 {
539 bool get_target = FALSE;
540 object_type *o_ptr = object_from_item_idx(cmd->arg[0].choice);
541
542 /* check for a null pointer list before proceeding. */
543 if (!o_ptr) break;
544
545 /* If we couldn't resolve the item, then abort this */
546 if (!o_ptr->kind) break;

-SBux-
Spacebux is offline   Reply With Quote
Old May 13, 2011, 02:27   #38
bulian
Adept
 
Join Date: Sep 2010
Posts: 162
bulian is on a distinguished road
Sorry if these are silly questions but...

Have ?recharge been removed from stores?
More than 50% of levels i'm getting are "superb" - is this just to make sure that we completely ignore level feelings?
I've seen at least one staff with known flavors where the charges were displayed before picking it up, possibly after drinking ?enlightenment
All items are displayed in a "maze?" level upon creation

Other feedback -
The game does seem harder in general that it did the last time i played. good job?
The new level design changes the feel of the game but are pretty cool - caverns have seemed very frequent.
Not a single randart yet by DL 39
bulian is offline   Reply With Quote
Old May 13, 2011, 04:24   #39
Spacebux
Adept
 
Join Date: Apr 2009
Posts: 231
Spacebux is on a distinguished road
I got it, I finally found the offending part of the code, but I still don't have an idea on how to fix it yet. This took me a while to sort out where all the commands are coming from / being sent in the code. Wow.


In cmd-obj.c:

https://github.com/angband/angband/b...cmd-obj.c#L513

513 bool was_aware = object_flavor_is_aware(o_ptr);

This bool value calls object_flavor_is_aware() irregardless if o_ptr contains a NULL value, which is what it does when repeating to a command to Read a scroll that no longer exists on the floor.

Now, I have tried to work around this, but either way, I run into a segmentation fault if I purposely set was_aware to TRUE / FALSE. I might have screwed up the code elsewhere; in all my attempts to track down the command-train, I put in a bunch of msg commands.

-SBux-
Spacebux is offline   Reply With Quote
Old May 13, 2011, 09:07   #40
takkaria
Veteran
 
takkaria's Avatar
 
Join Date: Apr 2007
Posts: 1,932
Donated: $40
takkaria is on a distinguished road
Quote:
Originally Posted by Spacebux View Post
I got it, I finally found the offending part of the code, but I still don't have an idea on how to fix it yet. This took me a while to sort out where all the commands are coming from / being sent in the code. Wow.
Well done for getting that far! Following the code there isn't that easy...

Quote:
In cmd-obj.c:

https://github.com/angband/angband/b...cmd-obj.c#L513

513 bool was_aware = object_flavor_is_aware(o_ptr);

This bool value calls object_flavor_is_aware() irregardless if o_ptr contains a NULL value, which is what it does when repeating to a command to Read a scroll that no longer exists on the floor.

Now, I have tried to work around this, but either way, I run into a segmentation fault if I purposely set was_aware to TRUE / FALSE. I might have screwed up the code elsewhere; in all my attempts to track down the command-train, I put in a bunch of msg commands.

-SBux-
OK, I've filed a bug using this information but it's going to take a while to fix. The correct fix is in game-cmd.c, you were right before, it needs a safety check to make sure all the relevant bits of the command are still valid when repeating it.
__________________
takkaria whispers something about options. -more-
takkaria is offline   Reply With Quote
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
MUD development Whelk Idle chatter 11 January 9, 2011 01:03
Is development *too* active? the Invisible Stalker Vanilla 14 December 26, 2010 17:47
Help start development Kurogane Idle chatter 17 October 28, 2010 07:03
Development forum camlost Oook! 5 February 22, 2009 21:06
[FA] FAangband development Nick Variants 174 May 30, 2008 02:02


All times are GMT +1. The time now is 02:13.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, vBulletin Solutions Inc.