ShopGameDataInfo.byml: Difference between revisions

 
(7 intermediate revisions by the same user not shown)
Line 1: Line 1:
<onlyinclude>
<onlyinclude>
'''ShopGameDataInfo.byml''' (found in Bootup/Gamedata) is a [[Yaz0]]-compressed [[BYML]] file which contains data pertaining to [[Actor|actors]] purchasable from NPC Shops. It is used when purchasing items (actors) from a shop to keep track of items that are "Sold Out".  
'''ShopGameDataInfo.byml''' (found in Bootup/Gamedata) is a [[Yaz0]]-compressed [[BYML]] file which contains data pertaining to [[Actor|actors]] purchasable from NPC Shops. It is used by [[GameDataMgr]] to keep track of items that have been purchased from a shop ("sold out" items) and [[GameDataMgr#bool_and_s32_flags_with_reset_type_3|restock them]] periodically.
</onlyinclude>
</onlyinclude>
== Contents ==
== Contents ==
===ShopAreaInfo Hashes===
===ShopAreaInfo Hashes===
Line 15: Line 14:


This section contains a list of all items sold by NPCs.  
This section contains a list of all items sold by NPCs.  
This list must be in the same order as the [[#ShopAreaInfo Hashes]] array.


{| class="wikitable"
{| class="wikitable"
Line 21: Line 22:
!Example
!Example
|-
|-
|Area
|Areas
|A list of locations where the item is sold when the Dealer and Item are the same.
|A list of map area coordinates where the item is sold when the Dealer and Item are the same. This is used to prevent the item from being restocked while the player is in the same map area. Each coordinate identifies a map area on the [[revival map grid]].
| [0, 6]
| [0, 6]
|-
|-
Line 58: Line 59:
The flags are used in stores where the item is physically shown to the player (e.g A Mannequin displaying Armor).
The flags are used in stores where the item is physically shown to the player (e.g A Mannequin displaying Armor).
The hashed flags are named in the format Npc_Name_Actor_Name.
The hashed flags are named in the format Npc_Name_Actor_Name.
This array does not need to be sorted. {{Check}}
 
This array ''must'' also be sorted, as GameDataMgr performs a binary search on the list<ref>ksys::gdt::Manager::getShopInfoIter: https://github.com/zeldaret/botw/blob/2eeae37cf787e8ab1cf64b98db35de4b1b0fca3f/src/KingSystem/GameData/gdtManager.cpp#L630</ref>.
 
Similar to tag values, each number is stored as an unsigned int if it is greater than 0x80000000 and as a signed int otherwise.
Similar to tag values, each number is stored as an unsigned int if it is greater than 0x80000000 and as a signed int otherwise.


Line 64: Line 67:




 
This is a list of lists of hashes of boolean GameData flags that should be reset<ref>ksys::gdt::TriggerParam::resetFlagsAccordingToPolicy: https://github.com/zeldaret/botw/blob/2eeae37cf787e8ab1cf64b98db35de4b1b0fca3f/src/KingSystem/GameData/gdtTriggerParam.cpp#L1670</ref>. This list must be in the same order as the [[#SoldOutInfo Hashes]] array, but each list of hashes need not be sorted.
 
 
 
 
 
 


[[Category:Content (BotW)]]
[[Category:Content (BotW)]]