27 #include "kyra/engine/eobcommon.h" 31 class DarkmoonSequenceHelper;
33 struct DarkMoonAnimCommand {
46 class DarkMoonEngine :
public EoBCoreEngine {
48 friend class DarkmoonSequenceHelper;
50 DarkMoonEngine(
OSystem *system,
const GameFlags &flags);
51 ~DarkMoonEngine()
override;
56 void initStaticResource();
57 void initSpells()
override;
58 void loadItemsAndDecorationsShapes()
override;
61 int mainMenu()
override;
63 void townsUtilitiesMenu();
68 void startupNew()
override;
69 void startupLoad()
override;
73 void seq_playFinale()
override;
74 void seq_playCredits(DarkmoonSequenceHelper *sq,
const uint8 *data,
int sd,
int backupPage,
int tempPage,
int speed);
79 void seq_dranDragonTransformation();
81 const int8 *_dreamSteps;
82 const char *
const *_kheldranStrings;
85 void drawNpcScene(
int npcIndex)
override;
86 void runNpcDialogue(
int npcIndex)
override;
88 const uint8 *_npcShpData;
89 const char *
const *_npcStrings[2];
92 void updateUsedCharacterHandItem(
int charIndex,
int slot)
override;
95 void loadMonsterShapes(
const char *filename,
int monsterIndex,
bool hasDecorations,
int encodeTableIndex)
override;
97 void generateMonsterPalettes(
const char *file, int16 monsterIndex)
override;
99 const uint8 *loadMonsterProperties(
const uint8 *data)
override;
100 void replaceMonster(
int unit, uint16 block,
int d,
int dir,
int type,
int shpIndex,
int mode,
int h2,
int randItem,
int fixedItem)
override;
101 bool killMonsterExtra(EoBMonsterInPlay *m)
override;
104 void loadVcnData(
const char *file,
const uint8 *cgaMapping)
override;
105 void loadDoorShapes(
int doorType1,
int shapeId1,
int doorType2,
int shapeId2)
override {}
106 const uint8 *loadDoorShapes(
const char *filename,
int doorIndex,
const uint8 *shapeDefs)
override;
107 void drawDoorIntern(
int type,
int,
int x,
int y,
int w,
int wall,
int mDim, int16, int16)
override;
109 const uint8 *_dscDoorType5Offs;
112 void turnUndeadAutoHit()
override;
115 static const uint8 _monsterAcHitChanceTbl1[];
116 static const uint8 _monsterAcHitChanceTbl2[];
119 void restParty_npc()
override;
120 bool restParty_extraAbortCondition()
override;
123 void snd_playLevelScore()
override;
124 void snd_loadAmigaSounds(
int level,
int sub)
override;
125 void snd_updateLevelScore()
override;
127 const char *
const *_amigaSoundFiles2;
128 const char *
const *_amigaSoundMapExtra;
129 const int8 *_amigaSoundIndex1;
130 const uint8 *_amigaSoundIndex2;
131 const uint8 *_amigaSoundPatch;
132 int _amigaSoundPatchSize;
134 int _amigaCurSoundIndex;
137 void useHorn(
int charIndex,
int weaponSlot)
override;
138 bool checkPartyStatusExtra()
override;
139 void drawLightningColumn()
override;
140 int resurrectionSelectDialogue()
override;
141 int charSelectDialogue()
override;
142 void characterLevelGain(
int charIndex)
override;
144 const KyraRpgGUISettings *guiSettings()
const override;
146 const char *
const *_hornStrings;
147 const uint8 *_hornSounds;
149 const char *
const *_utilMenuStrings;
151 static const KyraRpgGUISettings _guiSettingsDOS;
152 static const KyraRpgGUISettings _guiSettingsDOS_ZH;
153 static const KyraRpgGUISettings _guiSettingsFMTowns;
154 static const KyraRpgGUISettings _guiSettingsPC98;
155 static const KyraRpgGUISettings _guiSettingsAmiga;
156 static const uint8 _egaDefaultPalette[];
158 static const uint16 _dlgButtonPosX_ZH[17];
159 static const uint8 _dlgButtonPosY_ZH[17];
Definition: detection.h:27