Sweetgrove: Hammer the Healer selling Invisible Herbs #216

Closed
opened 2020-01-04 15:07:10 +00:00 by clort81 · 3 comments
clort81 commented 2020-01-04 15:07:10 +00:00 (Migrated from github.com)

hamer_the_healer

There are invisible items which can be bought and cost gold, but do not appear in any character's inventory.

![hamer_the_healer](https://user-images.githubusercontent.com/51511737/71767386-1401d980-2f0c-11ea-8805-5ca9d3d7beed.png) There are invisible items which can be bought and cost gold, but do not appear in any character's inventory.
CelticMinstrel commented 2020-01-04 15:38:01 +00:00 (Migrated from github.com)

This shop is a healing shop which means the "items" for sale are actually events that heal the party or cure status effects. Since your party is at full health, it's correct for it to be empty, but it's definitely a bug that clicking the empty space does something...

This shop is a _healing shop_ which means the "items" for sale are actually events that heal the party or cure status effects. Since your party is at full health, it's correct for it to be empty, but it's definitely a bug that clicking the empty space does something...
clort81 commented 2020-01-05 06:00:03 +00:00 (Migrated from github.com)

I'll try to find the bug causing empty slots to be 'buyable' but:

This is an instance of a general class of UI mistake called "Giving the user a menu of no-choice".
It would be more useful - particularly for n00b players - to receive "No-one is in need of healing" in response to an attempt to open the healing shop when all members are at full health.

After selecting item 'a'

Thread 1 "Blades of Exile" hit Breakpoint 1, handle_shop_event (p=...) at build/obj/game/boe.dlgutil.cpp:223
223		for(short i = 0; i < 8; i++) {
(gdb) p what_picked
No symbol "what_picked" in current context.
(gdb) step
224			unsigned long what_picked = shop_array[i + shop_sbar->getPosition()];
(gdb) p what_picked
$3 = 4796052129274396672
(gdb) p active_shop.getItem(what_picked).type
$6 = eShopItemType::EMPTY
(gdb) p active_shop.size()
$7 = 9
(gdb) p shop_sbar->getPosition()
$8 = 0
(gdb) p i
$9 = 0
(gdb) 
p shop_array[i + shop_sbar->getPosition()]
Cannot access memory at address 0x0

Savefile for sweetgrove healer:
Sweetgrove3k.zip

I'll try to find the bug causing empty slots to be 'buyable' but: This is an instance of a general class of UI mistake called _"Giving the user a menu of no-choice"_. It would be more useful - particularly for n00b players - to receive "No-one is in need of healing" in response to an attempt to open the healing shop when all members are at full health. After selecting item 'a' ``` Thread 1 "Blades of Exile" hit Breakpoint 1, handle_shop_event (p=...) at build/obj/game/boe.dlgutil.cpp:223 223 for(short i = 0; i < 8; i++) { (gdb) p what_picked No symbol "what_picked" in current context. (gdb) step 224 unsigned long what_picked = shop_array[i + shop_sbar->getPosition()]; (gdb) p what_picked $3 = 4796052129274396672 (gdb) p active_shop.getItem(what_picked).type $6 = eShopItemType::EMPTY (gdb) p active_shop.size() $7 = 9 (gdb) p shop_sbar->getPosition() $8 = 0 (gdb) p i $9 = 0 (gdb) p shop_array[i + shop_sbar->getPosition()] Cannot access memory at address 0x0 ``` Savefile for sweetgrove healer: [Sweetgrove3k.zip](https://github.com/calref/cboe/files/4022958/Sweetgrove3k.zip)
CelticMinstrel commented 2020-01-06 13:55:47 +00:00 (Migrated from github.com)

Seems like this might be caused in part by what_picked being unsigned…

It would be more useful - particularly for n00b players - to receive "No-one is in need of healing" in response to an attempt to open the healing shop when all members are at full health.

Does this happen in the original game? Healing used to be handled as a separate case from item shops, so I could imagine him coding in an exception when there's no-one to heal…

Seems like this might be caused in part by `what_picked` being unsigned… > It would be more useful - particularly for n00b players - to receive "No-one is in need of healing" in response to an attempt to open the healing shop when all members are at full health. Does this happen in the original game? Healing used to be handled as a separate case from item shops, so I could imagine him coding in an exception when there's no-one to heal…
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: openboe/oboe#216
No description provided.