aboutsummaryrefslogtreecommitdiff
path: root/engines/kyra/eobcommon.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/kyra/eobcommon.h')
-rw-r--r--engines/kyra/eobcommon.h27
1 files changed, 19 insertions, 8 deletions
diff --git a/engines/kyra/eobcommon.h b/engines/kyra/eobcommon.h
index 6463f839c8..1c730f7687 100644
--- a/engines/kyra/eobcommon.h
+++ b/engines/kyra/eobcommon.h
@@ -158,7 +158,7 @@ struct SpriteDecoration {
struct EobMonsterProperty {
int8 armorClass;
int8 hitChance;
- uint8 level;
+ int8 level;
uint8 hpDcTimes;
uint8 hpDcPips;
uint8 hpDcBase;
@@ -168,7 +168,7 @@ struct EobMonsterProperty {
uint8 pips;
int8 base;
} dmgDc[3];
- uint16 statusFlags;
+ uint16 immunityFlags;
uint32 capsFlags;
uint32 typeFlags;
int32 experience;
@@ -376,7 +376,9 @@ protected:
void modifyCharacterHitpoints(int character, int16 points);
void neutralizePoison(int character);
- virtual void npcSequence(int npcIndex) = 0;
+ void npcSequence(int npcIndex);
+ virtual void drawNpcScene(int npcIndex) = 0;
+ virtual void runNpcDialogue(int npcIndex) = 0;
void initNpc(int npcIndex);
int npcJoinDialogue(int npcIndex, int queryJoinTextId, int confirmJoinTextId, int noJoinTextId);
int prepareForNewPartyMember(int16 itemType, int16 itemValue);
@@ -405,6 +407,7 @@ protected:
const uint8 *_constModExt;
const EobCharacter *_npcPreset;
+ int _npcSequenceSub;
bool _partyResting;
bool _loading;
@@ -412,11 +415,13 @@ protected:
void loadItemDefs();
Item duplicateItem(Item itemIndex);
void setItemPosition(Item *itemQueue, int block, Item item, int pos);
- void createInventoryItem(EobCharacter *c, Item itemIndex, int itemValue, int preferedInventorySlot);
+ Item createItemOnCurrentBlock(Item itemIndex);
+ void createInventoryItem(EobCharacter *c, Item itemIndex, int16 itemValue, int preferedInventorySlot);
int deleteInventoryItem(int charIndex, int slot);
void deleteBlockItem(uint16 block, int type);
int validateInventorySlotForItem(Item item, int charIndex, int slot);
- void deletePartyItem(Item itemType, int16 itemValue);
+ int stripPartyItems(int16 itemType, int16 itemValue, int handleValueMode, int numItems);
+ bool deletePartyItems(int16 itemType, int16 itemValue);
virtual void updateUsedCharacterHandItem(int charIndex, int slot) = 0;
int itemUsableByCharacter(int charIndex, Item item);
int countQueuedItems(Item itemQueue, int16 id, int16 type, int count, int includeFlyingItems);
@@ -622,6 +627,7 @@ protected:
// Script
void runLevelScript(int block, int flags);
void setScriptFlag(int flag);
+ void clearScriptFlag(int flag);
bool checkScriptFlag(int flag);
const uint8 *initScriptTimers(const uint8 *pos);
@@ -739,7 +745,6 @@ protected:
int runDialogue(int dialogueTextId, int style, const char *button1, ...);
char _dialogueLastBitmap[13];
- int _dlgUnk1;
int _moveCounter;
uint8 _color4;
@@ -803,11 +808,12 @@ protected:
// misc
void delay(uint32 millis, bool doUpdate = false, bool isMainLoop = false);
void displayParchment(int id);
+ int countResurrectionCandidates();
+ virtual int resurrectionSelectDialogue() = 0;
virtual void useHorn(int charIndex, int weaponSlot) {}
virtual bool checkPartyStatusExtra() = 0;
virtual void drawLightningColumn() {}
- virtual int resurrectionSelectDialogue() { return -1; }
virtual int charSelectDialogue() { return -1; }
virtual void characterLevelGain(int charIndex) {}
@@ -820,6 +826,10 @@ protected:
const char * const *_saveLoadStrings;
+ int _rrCount;
+ const char *_rrNames[10];
+ int8 _rrId[10];
+
Screen_Eob *_screen;
GUI_Eob *_gui;
@@ -846,7 +856,7 @@ protected:
int calcCloseDistanceMonsterDamage(EobMonsterInPlay *m, int times, int pips, int offs, int flags, int b, int damageType);
int calcDamageModifers(int charIndex, EobMonsterInPlay *m, int item, int itemType, int useStrModifier);
- bool checkUnkConstModifiers(void *target, int hpModifier, int level, int b, int race);
+ bool checkMonsterLevelConstModifiers(void *target, int hpModifier, int level, int b, int race);
bool specialAttackConstTest(int charIndex, int b);
int getConstModifierTableValue(int hpModifier, int level, int b);
bool calcDamageCheckItemType(int itemType);
@@ -1045,6 +1055,7 @@ protected:
const char *const *_menuStringsDefeat;
const char *_errorSlotEmptyString;
const char *_errorSlotNoNameString;
+ const char *_menuOkString;
const char *const *_menuStringsTransfer;
const char *const *_menuStringsSpec;