View Issue Details

IDProjectCategoryView StatusLast Update
0002376The Dark ModCodingpublic05.12.2010 19:14
Reportergrayman Assigned Tograyman  
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionfixed 
PlatformWin32OSWindowsOS VersionXP
Product VersionTDM 1.02 
Target VersionTDM 1.03Fixed in VersionTDM 1.03 
Summary0002376: Shop not showing all items in player starting inventory
Description1) TDM looks for item definitions in atdm:shop that begin with "startingItem", but this entity in the prefabs uses "startingitem" instead. Any items defined the second way won't appear in the shop's starting inventory list.

2) Items outside atdm:shop marked "inv_map_start"/"1" won't be in the shop's starting inventory list, even though the player gets them at map start.
TagsNo tags attached.

Activities

grayman

grayman

13.11.2010 20:26

viewer   ~0003288

Last edited: 14.11.2010 23:47

Issue 0002376 Notes

Source changes:

1. Corrected problem with "startingItem" and "startingitem" case difference. ("shopitem" also now allowed, though it doesn't appear in maps to date.)
2. Added inv_map_start items to the shop's starting item list for display. (Previously ignored.) Now--except for special items--the shop's starting items + purchased items match what you get at spawn time.
3. Added triangle and snake lockpicks to the shop inventory definitions, since these can be provided individually. If a lockpick_set is present, individual lockpicks are not shown in the buy and starting lists.
4. Added shop images for triangle and snake lockpicks. (dds, mtr, and def additions)
5. Added flashmine to the shop inventory definitions. (Previously ignored.)
6. Added a shop image for the flashmine. (dds, mtr, and def additions)
7. Added max ammo checks to the shop, on both the buy and starting lists. (If the atdm:shop entity had 100 water arrows as a startingItem, the shop would show 100, but at spawn time you were given 50, the max allowed.)
8. Added a "stackable" flag to the shop item definitions (tdm_shopitems.def) so that stackability is known at shop time.

Testing:

1. Tested 21 maps at all difficulties to ensure the starting/buy lists are correct and you have the right items/quantities at spawn time. Checked 1.02 starting item quantities vs. what the new code gives. Re-checked 6 maps in all difficulties in 1.03.
2. Tested all combinations of lockpick_set, triangle, and snake lockpicks to ensure you have the correct lockpicks at spawn time.

TODO:

1. Due to max_ammo processing, there's a delay (<10s) while waiting for the Shop screen to display. The delay is due to calls to FindEntityDefDict().
2. The 1.03 code allows multiple atdm:shop entities. If the same item appears in multiple shops, you get a list entry from each shop. These should be combined into single entries. Also, the gold amounts from the last-read shop are what's used on the shop screen, ignoring gold amounts from previous shops. There might be other issues.
3. If you're highlighting an item on the For Sale list, and you move the cursor to the left and leave the item, it remains highlighted until you put the cursor on another For Sale item. If you just continue left and highlight something on the Starting Items list, the For Sale item remains highlighted. Ditto if you're on the Starting Items list and exit to the left. Exiting in any other direction works fine.
4. In the 2 shop prefabs, HealthPotionsEasy and HealthPotionsHard are both present in Easy difficulty, and there's no health potion object for Hard.

Files changed:

rev 4236:

Inventory.cpp
Inventory.h
shop.cpp
shop.h

rev 11121:

dds/guis/assets/purchase_menu/flashmine_image.dds
dds/guis/assets/purchase_menu/lockpick_triangle_image.dds
dds/guis/assets/purchase_menu/lockpick_snake_image.dds

rev 11122:

def/tdm_shopitems.def

rev 11123:

materials/tdm_gui_purchase_menu.mtr

tels

tels

15.11.2010 21:58

reporter   ~0003296

"1. Due to max_ammo processing, there's a delay (<10s) while waiting for the Shop screen to display. The delay is due to calls to FindEntityDefDict()."

That would be a candidate for optimizing, I guess.
grayman

grayman

05.12.2010 19:14

viewer   ~0003367

Added a workaround hard-coded limit of 50 for arrows to avoid the delay.

Shop displays in less than 2 seconds now.

Code revision 4356.

Issue History

Date Modified Username Field Change
24.09.2010 15:19 grayman New Issue
08.10.2010 22:45 grayman Assigned To => grayman
08.10.2010 22:45 grayman Status new => assigned
09.10.2010 15:40 grayman Status assigned => closed
09.10.2010 15:40 grayman Resolution open => fixed
09.10.2010 15:40 grayman Fixed in Version => TDM 1.03
25.10.2010 12:06 grayman Target Version => TDM 1.03
13.11.2010 20:26 grayman Note Added: 0003288
14.11.2010 18:48 grayman Note Edited: 0003288
14.11.2010 23:46 grayman Note Edited: 0003288
14.11.2010 23:47 grayman Note Edited: 0003288
15.11.2010 21:58 tels Note Added: 0003296
05.12.2010 19:14 grayman Note Added: 0003367