123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- #ifndef _SHOPKEEPER_INTERFACE__H_
- #define _SHOPKEEPER_INTERFACE__H_
- #include "Store Inventory.h"
- #define SKI_NUM_TRADING_INV_SLOTS 12
- #define SKI_NUM_TRADING_INV_ROWS 2
- #define SKI_NUM_TRADING_INV_COLS 6
- //Enums used for when the user clicks on an item and the item goes to..
- enum
- {
- ARMS_DEALER_INVENTORY,
- ARMS_DEALER_OFFER_AREA,
- PLAYERS_OFFER_AREA,
- PLAYERS_INVENTORY,
- };
- #define ARMS_INV_ITEM_SELECTED 0x00000001 // The item has been placed into the offer area
- //#define ARMS_INV_PLAYERS_ITEM_SELECTED 0x00000002 // The source location for the item has been selected
- #define ARMS_INV_PLAYERS_ITEM_HAS_VALUE 0x00000004 // The Players item is worth something to this dealer
- //#define ARMS_INV_ITEM_HIGHLIGHTED 0x00000008 // If the items is highlighted
- #define ARMS_INV_ITEM_NOT_REPAIRED_YET 0x00000010 // The item is in for repairs but not repaired yet
- #define ARMS_INV_ITEM_REPAIRED 0x00000020 // The item is repaired
- #define ARMS_INV_JUST_PURCHASED 0x00000040 // The item was just purchased
- #define ARMS_INV_PLAYERS_ITEM_HAS_BEEN_EVALUATED 0x00000080 // The Players item has been evaluated
- typedef struct
- {
- BOOLEAN fActive;
- INT16 sItemIndex;
- UINT32 uiFlags;
- OBJECTTYPE ItemObject;
- UINT8 ubLocationOfObject; //An enum value for the location of the item ( either in the arms dealers inventory, one of the offer areas or in the users inventory)
- INT8 bSlotIdInOtherLocation;
- UINT8 ubIdOfMercWhoOwnsTheItem;
- UINT32 uiItemPrice; //Only used for the players item that have been evaluated
- INT16 sSpecialItemElement; // refers to which special item element an item in a dealer's inventory area
- // occupies. -1 Means the item is "perfect" and has no associated special item.
- } INVENTORY_IN_SLOT;
- extern INVENTORY_IN_SLOT PlayersOfferArea[ SKI_NUM_TRADING_INV_SLOTS ];
- extern INT32 giShopKeepDialogueEventinProgress;
- //extern BOOLEAN gfRedrawSkiScreen;
- enum
- {
- SKI_DIRTY_LEVEL0, // no redraw
- SKI_DIRTY_LEVEL1, // redraw only items
- SKI_DIRTY_LEVEL2, // redraw everything
- };
- extern UINT8 gubSkiDirtyLevel;
- extern OBJECTTYPE *gpHighLightedItemObject;
- extern INVENTORY_IN_SLOT gMoveingItem;
- extern OBJECTTYPE *pShopKeeperItemDescObject;
- UINT32 ShopKeeperScreenInit( void );
- UINT32 ShopKeeperScreenHandle( void );
- UINT32 ShopKeeperScreenShutdown( void );
- void EnterShopKeeperInterfaceScreen( UINT8 ubArmsDealer );
- void DrawHatchOnInventory( UINT32 uiSurface, UINT16 usPosX, UINT16 usPosY, UINT16 usWidth, UINT16 usHeight );
- BOOLEAN ShouldSoldierDisplayHatchOnItem( UINT8 ubProfileID, INT16 sSlotNum );
- INT8 AddItemToPlayersOfferArea( UINT8 ubProfileID, INVENTORY_IN_SLOT* pInvSlot, INT8 bSlotIdInOtherLocation );
- void ConfirmToDeductMoneyFromPlayersAccountMessageBoxCallBack( UINT8 bExitValue );
- void ConfirmDontHaveEnoughForTheDealerMessageBoxCallBack( UINT8 bExitValue );
- void SkiHelpTextDoneCallBack( void );
- void SetSkiCursor( UINT16 usCursor );
- void InitShopKeeperSubTitledText( STR16 pString );
- void AddItemToPlayersOfferAreaAfterShopKeeperOpen( OBJECTTYPE *pItemObject, INT8 bPreviousInvPos );
- void BeginSkiItemPointer( UINT8 ubSource, INT8 bSlotNum, BOOLEAN fOfferToDealerFirst );
- void DeleteShopKeeperItemDescBox();
- BOOLEAN CanMercInteractWithSelectedShopkeeper( SOLDIERTYPE *pSoldier );
- void DealerGetsBribed( UINT8 ubProfileId, UINT32 uiMoneyAmount );
- #ifdef JA2TESTVERSION
- void AddShopkeeperToGridNo( UINT8 ubProfile, INT16 sGridNo );
- #endif
- void RestrictSkiMouseCursor();
- #endif
|