25 #include "common/scummsys.h" 26 #include "common/array.h" 27 #include "common/rect.h" 28 #include "common/serializer.h" 29 #include "mm/xeen/character.h" 30 #include "mm/xeen/combat.h" 31 #include "mm/xeen/dialogs/dialogs_message.h" 37 DIR_NORTH = 0, DIR_EAST = 1, DIR_SOUTH = 2, DIR_WEST = 3, DIR_ALL = 4
41 ADVENTURER = 0, WARRIOR = 1
45 CONS_GOLD = 0, CONS_GEMS = 1, CONS_FOOD = 2, CONS_CONDITION = 3
49 WHERE_PARTY = 0, WHERE_BANK = 1
52 #define TOTAL_CHARACTERS 30 53 #define XEEN_TOTAL_CHARACTERS 24 54 #define MAX_ACTIVE_PARTY 6 55 #define MAX_PARTY_COUNT 8 57 #define TOTAL_QUEST_ITEMS 85 58 #define TOTAL_QUEST_ITEMS_SWORDS 51 59 #define TOTAL_QUEST_FLAGS 56 60 #define MAX_TREASURE_ITEMS 10 74 XeenItem _accessories[MAX_TREASURE_ITEMS];
76 XeenItem _weapons[MAX_TREASURE_ITEMS];
87 return _categories[category];
104 typedef XeenItem BlacksmithItems[2][4][INV_ITEMS_TOTAL];
111 uint getSlotIndex()
const;
114 BlacksmithItems _weapons;
115 BlacksmithItems _armor;
116 BlacksmithItems _accessories;
117 BlacksmithItems _misc;
139 BlacksmithItems &
operator[](ItemCategory category);
169 const char *getFoundForm(
const Character &c);
174 void giveTreasureToCharacter(
Character &c, ItemCategory category,
int itemIndex);
184 void subPartyTime(
int time);
186 void resetYearlyBits();
191 void giveBankInterest();
194 Direction _mazeDirection;
200 bool _wizardEyeActive;
201 bool _clairvoyanceActive;
202 bool _walkOnWaterActive;
207 Difficulty _difficulty;
209 bool _cloudsCompleted;
210 bool _darkSideCompleted;
211 bool _worldCompleted;
220 int _electricityResistance;
222 int _poisonResistance;
232 bool _gameFlags[2][256];
233 bool _worldFlags[129];
234 bool _questFlags[60];
235 int _questItems[TOTAL_QUEST_ITEMS];
236 bool _characterFlags[30][32];
258 void loadActiveParty();
260 bool checkSkill(Skill skillId);
262 bool isInParty(
int charId);
267 void copyPartyToRoster();
273 void changeTime(
int numMinutes);
275 void addTime(
int numMinutes);
281 int subtract(ConsumableType consumableId, uint amount, PartyBank whereId, MessageWaitType wait = WT_FREEZE_WAIT);
283 const char *getConsumableForm(ConsumableType consumableId);
285 void notEnough(ConsumableType consumableId, PartyBank whereId,
bool mode, MessageWaitType wait);
287 void checkPartyDead();
292 void moveToRunLocation();
302 bool arePacksFull()
const;
304 bool canShoot()
const;
309 bool giveTake(
int takeMode, uint takeVal,
int giveMode, uint giveVal,
int charIdx);
314 const char *getPickLockForm(
const Character &c);
319 const char *getUnablePickLockForm(
const Character &c);
324 bool giveExt(
int mode1, uint val1,
int mode2, uint val2,
int mode3, uint val3,
int charId);
329 void resetBlacksmithWares();
void clear()
Definition: array.h:320
Character & operator[](size_type idx)
Definition: array.h:273
BlacksmithWares()
Definition: party.h:122
Definition: serializer.h:79
Definition: character.h:374
Definition: character.h:106
Definition: detection.h:27
XeenItem * operator[](int category)
Definition: party.h:86