Files
2022-10-26 12:25:11 +08:00

189 lines
7.2 KiB
C++

#pragma once
#include <slm/IncludeSLM.h>
namespace ConvenienceStore
{
class PropertyInfo;
class ProductInfo;
class ProductItem;
class PurchaseItem;
namespace Define
{
enum ShopStringCode
{
kShopStringCode_AllItem = 2500,
kShopStringCode_Armor = 2503,
kShopStringCode_Skin = 2513,
kShopStringCode_Customize = 2523,
kShopStringCode_Item = 2527,
kShopStringCode_Pet = 2535,
kShopStringCode_Rider = 2539,
kShopStringCode_Filter_Cash = 2544,
kShopStringCode_Filter_ALL = 2544,
kShopStringCode_Filter_Berserker = 2545,
kShopStringCode_Filter_Dragon = 11385, //2546,
kShopStringCode_Filter_Shadow = 2549,
kShopStringCode_Filter_Valkyrie = 2547,
kShopStringCode_Filter_Magician = 11384,//2548,
kShopStringCode_Filter_Mystic = 2568, //_NA_004965_20120613_NEW_CHARACTER_MYSTIC
#ifdef _NA_000000_20130812_NEW_CHARACTER_HELLROID
kShopStringCode_Filter_Hellroid = 2569,
#endif //_NA_000000_20130812_NEW_CHARACTER_HELLROID
#ifdef _NA_007514_20140828_NEW_CHARACTER_WITCHBLADE
kShopStringCode_Filter_WitchBladae = 10008,
#endif //_NA_007514_20140828_NEW_CHARACTER_WITCHBLADE
kShopStringCode_Filter_Package = 2550,
//排序
kShopStringCode_Filter_Sort = 2557,
kShopStringCode_Filter_New_Inc = 2557,
kShopStringCode_Filter_New_Desc = 2558,
kShopStringCode_Filter_Hit_Desc = 2559,
kShopStringCode_Filter_Price_Inc = 2561,
kShopStringCode_Filter_Price_Desc = 2560,
kShopStringCode_Filter_Name_Inc = 2562,
kShopStringCode_Filter_Name_Desc = 2563,
kShopStringCode_Filter_Date_Inc = 2564,
kShopStringCode_Filter_Date_Desc = 2565,
kShopStringCode_Filter_End = 2565,
kShopStringCode_Shop_Popup_Pickup = 155527,
kShopStringCode_Shop_Popup_Preview = 155528,
kShopStringCode_Shop_Popup_Buy = 155530,
kShopStringCode_Shop_Popup_Gift = 155529,
//155554 信息
kShopStringCode_Shop_Popup_Msg = 155554,
kShopStringCode_Shop_Popup_Recv = 155555,
kShopStringCode_Basket_Popup_Buy = 155530,
kShopStringCode_Basket_Popup_Gift = 155529,
kShopStringCode_Basket_Popup_Equip = 155532,
kShopStringCode_Basket_Popup_Unequip = 155531,
kShopStringCode_Basket_Popup_Delete = 155533,
kShopStringCode_Basket_Popup_Preview = 155528, //!<预览
kShopStringCode_End = 2563
};
//菜单种类
enum ShopMenuType
{
kShopMenuType_Cash = 0,
kShopMenuType_PPCard,
kShopMenuType_Mileage,
kShopMenuType_Mypage,
kShopMenuType_Size,
};
enum MyPageType
{
kMyPageType_BuyBox = 0, //!<我购买的目录
kMyPageType_RecvBox, //!<收到礼品清单
kMyPageType_Size,
};
enum PopupMenuKind
{
kPopupMenuKind_Two = 0,
kPopupMenuKind_Three,
kPopupMenuKind_Four,
kPopupMenuKind_Five,
kPopupMenuKind_Size,
};
//------------------------------------------------------------------------------
enum CashType
{
kCashType_Cash = 0,
kCashType_PPCard,
kCashType_Mileage,
kCashType_Size,
};
enum ShopPropertyType
{
kShopProperty_Price = 0, //7
kShopProperty_SellKind, //111
kShopProperty_Inchant, //114
kShopProperty_Socket, //117
kShopProperty_Size,
};
enum ShopProductType
{
kShopProduct_Waste = 0, //138 // 消耗性
kShopProduct_Infinite, //139 // 永久性
kShopProduct_Date, //140 //期限
kShopProduct_Size,
};
//------------------------------------------------------------------------------
//138 使用项目111 sun -默认属性146选择141项目属性
//138 选择小道具114 {\ displaystyle 114}属性
//138 使用项目117 sun - socket 146选择141项目属性
//139 永久项目112 sun -默认属性146选择141项目属性
//139 永久物品115魔咒146选择141物品属性
//139 永久项目118 sun - socket 146选择141项目属性
//140 选择期限项目113 sun -基本属性146
//140 选择时间道具116魔咒146 141道具属性
//140 期限项目119 sun - socket 146选择141项目属性
//消耗数量property_seq = 7
//永久性数property_seq = 8
//期间日期 property_seq = 10,数量9
static const int kProductType[kShopProduct_Size] = {138, 139, 140};
static const int kPropertySeq_Waste[kShopProperty_Size] = {7, 111, 114, 117};
static const int kPropertySeq_Infinite[kShopProperty_Size] = {8, 112, 115, 118};
static const int kPropertySeq_Date[kShopProperty_Size] = {10, 113, 116, 119};
static const int kPropertyType_Price = 142; //!<项目价格类型
static const int kPropertyType_Attribute = 141; //!<项目属性类型
static const int kCapsuleFlag_Normal = 177; //!<普通商品
static const int kCapsuleFlag_Lotto = 176; //!<抽奖商品
}
Define::ShopProductType GetProductType(IN CShopProduct* const shop_product);
//!只允许单一商品。
bool FindShopProduct(CShopPackage* shop_package, int price_seq,
OUT CShopProduct*& shop_product,
OUT CShopProductLink*& shop_product_link);
//------------------------------------------------------------------------------
bool GetDisplayPriceStringByProduct(TCHAR* msg, int str_len, ProductItem* product);
bool GetDisplayPriceStringByProductInfo(TCHAR* msg, int str_len, ProductInfo* product_info, bool buy_mileage);
bool GetDisplayPriceStringByProductLink(TCHAR* msg, int str_len, Define::ShopProductType shop_product_type, CShopProductLink* shop_product_link, bool buy_mileage);
//------------------------------------------------------------------------------
CShopCategoryList* category_list();
CShopPackageList* package_list();
CShopProductList* product_list();
CShopPropertyList* property_list();
CShopProductLinkList* productlink_list();
//------------------------------------------------------------------------------
//! Returns: void
//! Qualifier: 检查所有包在对应的目录,看看是否有热门的,新的,出售,事件。
//! Parameter: CShopCategory * category
//! Parameter: DWORD new_val //1 680 NEW
//! Parameter: DWORD hot_val //2 681 HOT
//! Parameter: DWORD sale_val //3 682 SALE
//! Parameter: DWORD event_val //4 683 EVENT
//------------------------------------------------------------------------------
void GetImageTag(CShopCategory* shop_category, std::set<int>& image_tag_vector);
void test_shop_script_list();
void test_shop_script_list_category(FILE* fp, CShopCategory &category, int deapth);
void test_shop_script_list_package(FILE* fp, CShopCategory &subcategory, int deapth);
}