Ring of Open wounds does not impair HP recovery. I regen HP just fine with one of those on.
4.0.2 Bugs
Collapse
X
-
-
Comment
-
Comment
-
equip_notice_after_time() induces useless equipment refreshes and has code that does nothing:
Code:for (flag = of_next(f, FLAG_START); flag != FLAG_END; flag = of_next(f, flag + 1)) { if (!of_has(obj->known_flags, flag)) { /* Message */ flag_message(flag, o_name); /* Notice the flag */ object_notice_flag(obj, flag); if (tval_is_jewelry(obj) && (!object_effect(obj) || object_effect_is_known(obj))) { /* Jewelry with a noticeable flag is obvious */ object_flavor_aware(obj); object_check_for_ident(obj); apply_autoinscription(obj); } } else { [B]/* Notice the flag is absent */ object_notice_flag(obj, flag); <-- does nothing because of_has(obj->known_flags, flag) is TRUE[/B] } } } /* Notice new info */ [B]event_signal(EVENT_EQUIPMENT);<-- should only be done if something is noticed[/B]
Code:bool redraw = FALSE; ... for (flag = of_next(f, FLAG_START); flag != FLAG_END; flag = of_next(f, flag + 1)) { if (!of_has(obj->known_flags, flag)) { /* Message */ flag_message(flag, o_name); /* Notice the flag */ object_notice_flag(obj, flag)); redraw = TRUE; if (tval_is_jewelry(obj) && (!object_effect(obj) || object_effect_is_known(obj))) { /* Jewelry with a noticeable flag is obvious */ object_flavor_aware(obj); object_check_for_ident(obj); apply_autoinscription(obj); } } } } /* Notice new info */ if (redraw) event_signal(EVENT_EQUIPMENT);
PWMAngband variant maintainer - check https://github.com/draconisPW/PWMAngband (or http://www.mangband.org/forum/viewforum.php?f=9) to learn more about this new variant!Comment
-
Just a little hidden bug when inspecting food. For example:
- a ration of food has a "NOURISH" effect dice of 6000, which increases food counter by 6000
- description is "When eaten, it feeds you for 6000 turns."
- in process_world(), player digests turn_energy(player->state.speed) * 2 food units every 100 game turns
- a player turn occurs every 100 / turn_energy(player->state.speed) game turns
- this means that a player digests 2 food units every player turn
- the description should then be "When eaten, it feeds you for 3000 turns."
Tested with a 4.0.2 character, he goes from Hungry to Hungry again in 3000 standard (player) turns after eating a ration.
Note: this doesn't take into account other influences on food consumption like regen or slow digestion, which also influence the turn count.
Note that all the describe_food() code is now obsolete, since food value is now handled by the effect code.Last edited by PowerWyrm; October 23, 2015, 11:01.PWMAngband variant maintainer - check https://github.com/draconisPW/PWMAngband (or http://www.mangband.org/forum/viewforum.php?f=9) to learn more about this new variant!Comment
-
I don't know if this is new or not, but on Windows 7 if I try to automatically load a character by giving a command line of lib\user\save\CharacterName I immediately crash back to the desktop with "angbande.exe has stopped working." Same save file works fine if loaded with the Open command.Comment
-
I don't know if this is new or not, but on Windows 7 if I try to automatically load a character by giving a command line of lib\user\save\CharacterName I immediately crash back to the desktop with "angbande.exe has stopped working." Same save file works fine if loaded with the Open command.One for the Dark Lord on his dark throne
In the Land of Mordor where the Shadows lie.Comment
-
Edit: Okay, in main-win.c there's a section for static void check_for_save_file(LPSTR cmd_line) which appears to extract the savefile name from the command line, validate the savefile, and start the game. The code is identical to that which loads a savefile from the in-game menu. I think. I haven't done any serious C coding since the 1980s.
From check_for_save_file:
Code:/* Validate the file */ validate_file(savefile); /* Start game */ game_in_progress = TRUE; Term_fresh(); play_game(FALSE); quit(NULL);
Code:/* Load 'savefile' */ validate_file(savefile); /* Start game */ game_in_progress = TRUE; Term_fresh(); play_game(FALSE); quit(NULL);
Last edited by troycheek; October 24, 2015, 05:39.Comment
-
3.5.1 loaded save files through the command line just fine and I think I remember whichever 4.0 beta version I tried doing the same. 4.0.2 is trying to do something with the command line because it shows an error message "cannot find required file: CharacterName" if the specified path/file doesn't exist. Would it be difficult to re-add this function?
I can confirm this behaviour in Windows 10, whether a full path or relative path is given. Moreover, double-clicking on the savefile and then selecting angband to open it with comes up with "Cannot find required file", which looks like file_exists is failing (somewhat disappointing, since we started with the file).
My suspicion is that this is some arcane permissions issue - Windows is usually pretty good with not changing its API, but from 7 on they got more strict with where stuff could be run from, and we may be falling foul of that. Or something.
In any case, I think I'm going to have to file it as a bug, and tell you for now to just use the open dialogue, unless someone comes up with a better solution. I'm sorry if that messes up some system or other.One for the Dark Lord on his dark throne
In the Land of Mordor where the Shadows lie.Comment
-
I can confirm this behaviour in Windows 10, whether a full path or relative path is given. Moreover, double-clicking on the savefile and then selecting angband to open it with comes up with "Cannot find required file", which looks like file_exists is failing (somewhat disappointing, since we started with the file).Code:lib\user\save\filename
But whether or not the file is found, angband crashes afterwards.Comment
-
Auotload character from command line:
In 3.5.0, in main_win.c:
Code:static void check_for_save_file(LPSTR cmd_line) { [...] /* Set the command now so that we skip the "Open File" prompt. */ cmd.command = CMD_LOADFILE; }
Code:static void check_for_save_file(LPSTR cmd_line) { [...] /* Start game */ game_in_progress = TRUE; Term_fresh(); play_game(FALSE); quit(NULL); }
Code:/* Did the user double click on a save file? */ check_for_save_file(lpCmdLine); /* Set command hook */ cmd_get_hook = textui_get_cmd; /* Set up the display handlers and things. */ init_display(); init_angband(); textui_init(); initialized = TRUE;
Comment
-
Assertion failed while breathing frost
Another bug! Actually, it's in 4.0.3 - should we start a new thread?
Assertion failed, file: obj-pile.c, line: 134, expression: pile_contains(*pile,obj)
Walked across a Potion of Dragon Breath. Quaffed it from the floor. Breathed frost at nearby baddies, close enough that the potion was within the damage radius. The Potion of Dragon Breath shatters! Game crashed with assertion failed. My guess would be that the game tried to remove the potion both when it shattered and when it was consumed, the second action causing the crash because the item in question had already been removed.Comment
-
Walked across a Potion of Dragon Breath. Quaffed it from the floor. Breathed frost at nearby baddies, close enough that the potion was within the damage radius. The Potion of Dragon Breath shatters! Game crashed with assertion failed. My guess would be that the game tried to remove the potion both when it shattered and when it was consumed, the second action causing the crash because the item in question had already been removed.
New thread? I guess if someone feels strongly enough about that it will happenOne for the Dark Lord on his dark throne
In the Land of Mordor where the Shadows lie.Comment
Comment