mirror of
https://github.com/1dot13/source.git
synced 2026-07-22 13:40:22 +02:00
** Merged Source Code from Development trunk, for the Spring 2011 Release ** **************************************************************************** o Development Trunk (Revision: 4444): https://81.169.133.124/source/ja2/branches/Wanne/JA2%201.13%20MP o This trunk (the official 1.13 source trunk) will only be used for fixing bugs. No new features will be added here. New Features are only included in the Development trunk o !!! After we have fixed a bug here in this trunk, we should MANUALLY merge the bugfix in the development trunk !!! git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@4446 3b4a5df2-a311-0410-b5c6-a8a6f20db521
152 lines
4.7 KiB
C++
152 lines
4.7 KiB
C++
#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
|
|
|
|
|
|
class OLD_INVENTORY_IN_SLOT_101
|
|
{
|
|
public:
|
|
BOOLEAN fActive;
|
|
INT16 sItemIndex;
|
|
UINT32 uiFlags;
|
|
OLD_OBJECTTYPE_101 oldItemObject;
|
|
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.
|
|
};
|
|
|
|
class INVENTORY_IN_SLOT
|
|
{
|
|
public:
|
|
BOOLEAN Save(HWFILE hFile);
|
|
BOOLEAN Load(HWFILE hFile);
|
|
INVENTORY_IN_SLOT() {initialize();};
|
|
INVENTORY_IN_SLOT& operator=(OLD_INVENTORY_IN_SLOT_101& src);
|
|
void initialize();
|
|
BOOLEAN fActive;
|
|
INT16 sItemIndex;
|
|
UINT32 uiFlags;
|
|
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)
|
|
INT16 bSlotIdInOtherLocation;
|
|
|
|
UINT8 ubIdOfMercWhoOwnsTheItem;
|
|
UINT32 uiItemPrice; //Only used for the players item that have been evaluated
|
|
|
|
UINT32 uiRepairDoneTime; //so that we can sort repairman's inventory easily
|
|
|
|
char endOfPod;
|
|
OBJECTTYPE ItemObject;
|
|
};
|
|
|
|
#define SIZEOF_INVENTORY_IN_SLOT_POD offsetof (INVENTORY_IN_SLOT, endOfPod)
|
|
|
|
|
|
|
|
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 );
|
|
|
|
bool ArmsDealerItemQsortCompare(INVENTORY_IN_SLOT& pInvSlot1, INVENTORY_IN_SLOT& pInvSlot2);
|
|
bool RepairmanItemQsortCompare(INVENTORY_IN_SLOT& pInvSlot1, INVENTORY_IN_SLOT& pInvSlot2);
|
|
|
|
|
|
void EnterShopKeeperInterfaceScreen( UINT8 ubArmsDealer );
|
|
void EnableDisableShopkeeperButtons(UINT32 uiCurrentItemDescriptionScreen, int bpAction);
|
|
|
|
void DrawHatchOnInventory( UINT32 uiSurface, UINT16 usPosX, UINT16 usPosY, UINT16 usWidth, UINT16 usHeight, UINT16 usColor = 0 );
|
|
BOOLEAN ShouldSoldierDisplayHatchOnItem( UINT8 ubProfileID, INT16 sSlotNum );
|
|
INT8 AddItemToPlayersOfferArea( UINT8 ubProfileID, INVENTORY_IN_SLOT* pInvSlot, INT16 bSlotIdInOtherLocation );
|
|
void ConfirmToDeductMoneyFromPlayersAccountMessageBoxCallBack( UINT8 bExitValue );
|
|
void ConfirmDontHaveEnoughForTheDealerMessageBoxCallBack( UINT8 bExitValue );
|
|
|
|
void SkiHelpTextDoneCallBack( void );
|
|
void SetSkiCursor( UINT16 usCursor );
|
|
|
|
void InitShopKeeperSubTitledText( STR16 pString );
|
|
|
|
void AddItemToPlayersOfferAreaAfterShopKeeperOpen( OBJECTTYPE *pItemObject);
|
|
|
|
void BeginSkiItemPointer( UINT8 ubSource, INT16 bSlotNum, BOOLEAN fOfferToDealerFirst );
|
|
|
|
void DeleteShopKeeperItemDescBox();
|
|
|
|
BOOLEAN CanMercInteractWithSelectedShopkeeper( SOLDIERTYPE *pSoldier );
|
|
|
|
void DealerGetsBribed( UINT8 ubProfileId, UINT32 uiMoneyAmount );
|
|
|
|
|
|
#ifdef JA2TESTVERSION
|
|
void AddShopkeeperToGridNo( UINT8 ubProfile, INT32 sGridNo );
|
|
#endif
|
|
|
|
void RestrictSkiMouseCursor();
|
|
|
|
#endif
|