PRINCE: dialogDat loading

This commit is contained in:
lukaslw 2014-07-03 14:59:38 +02:00
parent e853e44695
commit a9a8eb0c98
2 changed files with 16 additions and 1 deletions

View File

@ -117,6 +117,7 @@ PrinceEngine::~PrinceEngine() {
delete _variaTxt;
delete[] _talkTxt;
delete[] _invTxt;
delete[] _dialogDat;
delete _graph;
delete _room;
@ -255,6 +256,17 @@ void PrinceEngine::init() {
loadAllInv();
Common::SeekableReadStream *dialogDatStream = SearchMan.createReadStreamForMember("dialog.dat");
if (!dialogDatStream) {
error("Can't load dialogDatStream");
return;
}
_dialogDatSize = dialogDatStream->size();
_dialogDat = new byte[_dialogDatSize];
dialogDatStream->read(_dialogDat, _dialogDatSize);
delete dialogDatStream;
_optionsPic = new Graphics::Surface();
_optionsPic->create(_optionsWidth, _optionsHeight, Graphics::PixelFormat::createFormatCLUT8());
Common::Rect picRect(0, 0, _optionsWidth, _optionsHeight);
@ -2369,7 +2381,7 @@ void PrinceEngine::doTalkAnim(int animNumber, int slot, AnimType animType) {
}
}
} else if (animType == kBackgroundAnimation) {
if (animNumber < _backAnimList.size()) {
if ((uint)animNumber < _backAnimList.size()) {
int currAnim = _backAnimList[animNumber]._seq._currRelative;
Anim &backAnim = _backAnimList[animNumber].backAnims[currAnim];
if (backAnim._animData != nullptr) {

View File

@ -398,6 +398,9 @@ public:
void inventoryRightMouseButton();
void dialogLeftMouseButton(int dialogSelected, const char *s);
uint32 _dialogDatSize;
byte *_dialogDat;
bool _dialogFlag;
int _dialogWidth;
int _dialogHeight;