mirror of
https://github.com/libretro/scummvm.git
synced 2025-02-20 19:21:46 +00:00
HUFO: Fix CID 1002880, 1002881. Use nullptr where possible instead of 0
This commit is contained in:
parent
f1abc0c302
commit
79ecd017e2
@ -34,8 +34,10 @@
|
||||
|
||||
namespace Hugo {
|
||||
|
||||
TopMenu::TopMenu(HugoEngine *vm) : Dialog(0, 0, kMenuWidth, kMenuHeight), _arrayBmp(0), _arraySize(0),
|
||||
_vm(vm) {
|
||||
TopMenu::TopMenu(HugoEngine *vm) : Dialog(0, 0, kMenuWidth, kMenuHeight), _vm(vm) {
|
||||
_arrayBmp = nullptr;
|
||||
_arraySize = 0;
|
||||
|
||||
init();
|
||||
}
|
||||
|
||||
|
@ -75,13 +75,13 @@ static const byte stdMouseCursor[] = {
|
||||
|
||||
|
||||
Screen::Screen(HugoEngine *vm) : _vm(vm) {
|
||||
_mainPalette = 0;
|
||||
_curPalette = 0;
|
||||
_mainPalette = nullptr;
|
||||
_curPalette = nullptr;
|
||||
_dlAddIndex = 0;
|
||||
_dlRestoreIndex = 0;
|
||||
|
||||
for (int i = 0; i < kNumFonts; i++) {
|
||||
_arrayFont[i] = 0;
|
||||
_arrayFont[i] = nullptr;
|
||||
fontLoadedFl[i] = false;
|
||||
}
|
||||
for (int i = 0; i < kBlitListSize; i++) {
|
||||
|
@ -246,13 +246,13 @@ SoundPtr FileManager::getSound(const int16 sound, uint16 *size) {
|
||||
|
||||
// No more to do if SILENCE (called for cleanup purposes)
|
||||
if (sound == _vm->_soundSilence)
|
||||
return 0;
|
||||
return nullptr;
|
||||
|
||||
// Open sounds file
|
||||
Common::File fp; // Handle to SOUND_FILE
|
||||
if (!fp.open(getSoundFilename())) {
|
||||
warning("Hugo Error: File not found %s", getSoundFilename());
|
||||
return 0;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
if (!_hasReadHeader) {
|
||||
|
@ -46,11 +46,11 @@
|
||||
|
||||
namespace Hugo {
|
||||
|
||||
HugoEngine *HugoEngine::s_Engine = 0;
|
||||
HugoEngine *HugoEngine::s_Engine = nullptr;
|
||||
|
||||
HugoEngine::HugoEngine(OSystem *syst, const HugoGameDescription *gd) : Engine(syst), _gameDescription(gd),
|
||||
_hero(0), _heroImage(0), _defltTunes(0), _numScreens(0), _tunesNbr(0), _soundSilence(0), _soundTest(0),
|
||||
_screenStates(0), _numStates(0), _score(0), _maxscore(0), _lastTime(0), _curTime(0), _episode(0)
|
||||
_hero(nullptr), _heroImage(0), _defltTunes(nullptr), _numScreens(0), _tunesNbr(0), _soundSilence(0), _soundTest(0),
|
||||
_screenStates(nullptr), _numStates(0), _score(0), _maxscore(0), _lastTime(0), _curTime(0), _episode(nullptr)
|
||||
{
|
||||
_system = syst;
|
||||
DebugMan.addDebugChannel(kDebugSchedule, "Schedule", "Script Schedule debug level");
|
||||
@ -67,16 +67,16 @@ HugoEngine::HugoEngine(OSystem *syst, const HugoGameDescription *gd) : Engine(sy
|
||||
_console = new HugoConsole(this);
|
||||
_rnd = 0;
|
||||
|
||||
_screen = NULL;
|
||||
_mouse = NULL;
|
||||
_inventory = NULL;
|
||||
_parser = NULL;
|
||||
_route = NULL;
|
||||
_sound = NULL;
|
||||
_intro = NULL;
|
||||
_object = NULL;
|
||||
_text = NULL;
|
||||
_topMenu = NULL;
|
||||
_screen = nullptr;
|
||||
_mouse = nullptr;
|
||||
_inventory = nullptr;
|
||||
_parser = nullptr;
|
||||
_route = nullptr;
|
||||
_sound = nullptr;
|
||||
_intro = nullptr;
|
||||
_object = nullptr;
|
||||
_text = nullptr;
|
||||
_topMenu = nullptr;
|
||||
_status._storyModeFl = false;
|
||||
_status._gameOverFl = false;
|
||||
_status._lookFl = false;
|
||||
|
@ -260,7 +260,7 @@ public:
|
||||
|
||||
// Used by the qsort function
|
||||
static HugoEngine &get() {
|
||||
assert(s_Engine != 0);
|
||||
assert(s_Engine != nullptr);
|
||||
return *s_Engine;
|
||||
}
|
||||
|
||||
|
@ -39,9 +39,10 @@
|
||||
|
||||
namespace Hugo {
|
||||
|
||||
IntroHandler::IntroHandler(HugoEngine *vm) : _vm(vm), _introX(0), _introY(0) {
|
||||
IntroHandler::IntroHandler(HugoEngine *vm) : _vm(vm) {
|
||||
_introXSize = 0;
|
||||
_introTicks = 0;
|
||||
_introX = _introY = nullptr;
|
||||
}
|
||||
|
||||
IntroHandler::~IntroHandler() {
|
||||
@ -74,6 +75,7 @@ void IntroHandler::loadIntroData(Common::SeekableReadStream &in) {
|
||||
void IntroHandler::freeIntroData() {
|
||||
free(_introX);
|
||||
free(_introY);
|
||||
_introX = _introY = nullptr;
|
||||
}
|
||||
|
||||
intro_v1d::intro_v1d(HugoEngine *vm) : IntroHandler(vm) {
|
||||
|
@ -44,7 +44,8 @@ namespace Hugo {
|
||||
|
||||
static const int kMaxDisp = (kXPix / kInvDx); // Max icons displayable
|
||||
|
||||
InventoryHandler::InventoryHandler(HugoEngine *vm) : _vm(vm), _invent(0) {
|
||||
InventoryHandler::InventoryHandler(HugoEngine *vm) : _vm(vm) {
|
||||
_invent = nullptr;
|
||||
_firstIconId = 0;
|
||||
_inventoryState = kInventoryOff; // Inventory icon bar state
|
||||
_inventoryHeight = 0; // Inventory icon bar pos
|
||||
@ -62,6 +63,7 @@ void InventoryHandler::setInventoryState(Istate state) {
|
||||
|
||||
void InventoryHandler::freeInvent() {
|
||||
free(_invent);
|
||||
_invent = nullptr;
|
||||
}
|
||||
|
||||
int16 InventoryHandler::getInventoryObjId() const {
|
||||
|
@ -45,7 +45,8 @@
|
||||
|
||||
namespace Hugo {
|
||||
|
||||
MouseHandler::MouseHandler(HugoEngine *vm) : _vm(vm), _hotspots(0) {
|
||||
MouseHandler::MouseHandler(HugoEngine *vm) : _vm(vm) {
|
||||
_hotspots = nullptr;
|
||||
_leftButtonFl = false;
|
||||
_rightButtonFl = false;
|
||||
_jumpExitFl = false; // Can't jump to a screen exit
|
||||
@ -83,6 +84,7 @@ void MouseHandler::setMouseY(int y) {
|
||||
|
||||
void MouseHandler::freeHotspots() {
|
||||
free(_hotspots);
|
||||
_hotspots = nullptr;
|
||||
}
|
||||
|
||||
bool MouseHandler::getJumpExitFl() const {
|
||||
|
@ -44,7 +44,9 @@
|
||||
|
||||
namespace Hugo {
|
||||
|
||||
ObjectHandler::ObjectHandler(HugoEngine *vm) : _vm(vm), _objects(0), _uses(0) {
|
||||
ObjectHandler::ObjectHandler(HugoEngine *vm) : _vm(vm) {
|
||||
_uses = nullptr;
|
||||
_objects = nullptr;
|
||||
_numObj = 0;
|
||||
_objCount = 0;
|
||||
_usesSize = 0;
|
||||
@ -249,47 +251,49 @@ void ObjectHandler::lookObject(Object *obj) {
|
||||
void ObjectHandler::freeObjects() {
|
||||
debugC(1, kDebugObject, "freeObjects");
|
||||
|
||||
if (_vm->_hero != 0 && _vm->_hero->_seqList[0]._seqPtr != 0) {
|
||||
if (_vm->_hero != nullptr && _vm->_hero->_seqList[0]._seqPtr != nullptr) {
|
||||
// Free all sequence lists and image data
|
||||
for (int16 i = 0; i < _numObj; i++) {
|
||||
Object *obj = &_objects[i];
|
||||
for (int16 j = 0; j < obj->_seqNumb; j++) {
|
||||
Seq *seq = obj->_seqList[j]._seqPtr;
|
||||
Seq *next;
|
||||
if (seq == 0) // Failure during database load
|
||||
if (seq == nullptr) // Failure during database load
|
||||
break;
|
||||
if (seq->_imagePtr != 0) {
|
||||
if (seq->_imagePtr != nullptr) {
|
||||
free(seq->_imagePtr);
|
||||
seq->_imagePtr = 0;
|
||||
seq->_imagePtr = nullptr;
|
||||
}
|
||||
seq = seq->_nextSeqPtr;
|
||||
while (seq != obj->_seqList[j]._seqPtr) {
|
||||
if (seq->_imagePtr != 0) {
|
||||
if (seq->_imagePtr != nullptr) {
|
||||
free(seq->_imagePtr);
|
||||
seq->_imagePtr = 0;
|
||||
seq->_imagePtr = nullptr;
|
||||
}
|
||||
next = seq->_nextSeqPtr;
|
||||
free(seq);
|
||||
seq = next;
|
||||
}
|
||||
free(seq);
|
||||
seq = nullptr;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (_uses) {
|
||||
if (_uses != nullptr) {
|
||||
for (int16 i = 0; i < _usesSize; i++)
|
||||
free(_uses[i]._targets);
|
||||
free(_uses);
|
||||
_uses = nullptr;
|
||||
}
|
||||
|
||||
for (int16 i = 0; i < _objCount; i++) {
|
||||
free(_objects[i]._stateDataIndex);
|
||||
_objects[i]._stateDataIndex = 0;
|
||||
_objects[i]._stateDataIndex = nullptr;
|
||||
}
|
||||
|
||||
free(_objects);
|
||||
_objects = 0;
|
||||
_objects = nullptr;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -414,7 +418,7 @@ void ObjectHandler::readUse(Common::ReadStream &in, Uses &curUse) {
|
||||
*/
|
||||
void ObjectHandler::loadObjectUses(Common::ReadStream &in) {
|
||||
Uses tmpUse;
|
||||
tmpUse._targets = 0;
|
||||
tmpUse._targets = nullptr;
|
||||
|
||||
//Read _uses
|
||||
for (int varnt = 0; varnt < _vm->_numVariant; varnt++) {
|
||||
@ -430,7 +434,7 @@ void ObjectHandler::loadObjectUses(Common::ReadStream &in) {
|
||||
else {
|
||||
readUse(in, tmpUse);
|
||||
free(tmpUse._targets);
|
||||
tmpUse._targets = 0;
|
||||
tmpUse._targets = nullptr;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -442,7 +446,7 @@ void ObjectHandler::readObject(Common::ReadStream &in, Object &curObject) {
|
||||
uint16 numSubElem = in.readUint16BE();
|
||||
|
||||
if (numSubElem == 0)
|
||||
curObject._stateDataIndex = 0;
|
||||
curObject._stateDataIndex = nullptr;
|
||||
else
|
||||
curObject._stateDataIndex = (uint16 *)malloc(sizeof(uint16) * numSubElem);
|
||||
for (int j = 0; j < numSubElem; j++)
|
||||
@ -453,16 +457,16 @@ void ObjectHandler::readObject(Common::ReadStream &in, Object &curObject) {
|
||||
curObject._vyPath = in.readSint16BE();
|
||||
curObject._actIndex = in.readUint16BE();
|
||||
curObject._seqNumb = in.readByte();
|
||||
curObject._currImagePtr = 0;
|
||||
curObject._currImagePtr = nullptr;
|
||||
|
||||
if (curObject._seqNumb == 0) {
|
||||
curObject._seqList[0]._imageNbr = 0;
|
||||
curObject._seqList[0]._seqPtr = 0;
|
||||
curObject._seqList[0]._seqPtr = nullptr;
|
||||
}
|
||||
|
||||
for (int j = 0; j < curObject._seqNumb; j++) {
|
||||
curObject._seqList[j]._imageNbr = in.readUint16BE();
|
||||
curObject._seqList[j]._seqPtr = 0;
|
||||
curObject._seqList[j]._seqPtr = nullptr;
|
||||
}
|
||||
|
||||
curObject._cycling = (Cycle)in.readByte();
|
||||
@ -498,7 +502,7 @@ void ObjectHandler::readObject(Common::ReadStream &in, Object &curObject) {
|
||||
void ObjectHandler::loadObjectArr(Common::ReadStream &in) {
|
||||
debugC(6, kDebugObject, "loadObject(&in)");
|
||||
Object tmpObject;
|
||||
tmpObject._stateDataIndex = 0;
|
||||
tmpObject._stateDataIndex = nullptr;
|
||||
|
||||
for (int varnt = 0; varnt < _vm->_numVariant; varnt++) {
|
||||
uint16 numElem = in.readUint16BE();
|
||||
@ -515,7 +519,7 @@ void ObjectHandler::loadObjectArr(Common::ReadStream &in) {
|
||||
// Skip over uneeded objects.
|
||||
readObject(in, tmpObject);
|
||||
free(tmpObject._stateDataIndex);
|
||||
tmpObject._stateDataIndex = 0;
|
||||
tmpObject._stateDataIndex = nullptr;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -44,14 +44,20 @@
|
||||
|
||||
namespace Hugo {
|
||||
|
||||
Parser::Parser(HugoEngine *vm) : _vm(vm), _putIndex(0), _getIndex(0), _arrayReqs(0), _catchallList(0), _backgroundObjects(0), _cmdList(0) {
|
||||
Parser::Parser(HugoEngine *vm) : _vm(vm), _putIndex(0), _getIndex(0) {
|
||||
_catchallList = nullptr;
|
||||
_arrayReqs = nullptr;
|
||||
|
||||
_backgroundObjects = nullptr;
|
||||
_backgroundObjectsSize = 0;
|
||||
_cmdList = nullptr;
|
||||
_cmdListSize = 0;
|
||||
|
||||
_cmdLineIndex = 0;
|
||||
_cmdLineTick = 0;
|
||||
_cmdLineCursor = '_';
|
||||
_cmdLine[0] = '\0';
|
||||
_cmdListSize = 0;
|
||||
_checkDoubleF1Fl = false;
|
||||
_backgroundObjectsSize = 0;
|
||||
}
|
||||
|
||||
Parser::~Parser() {
|
||||
@ -172,7 +178,7 @@ const char *Parser::useBG(const char *name) {
|
||||
return _vm->_text->getVerb(p[i]._verbIndex, 0);
|
||||
}
|
||||
|
||||
return 0;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
void Parser::freeParser() {
|
||||
@ -180,20 +186,24 @@ void Parser::freeParser() {
|
||||
for (int i = 0; _arrayReqs[i] != 0; i++)
|
||||
free(_arrayReqs[i]);
|
||||
free(_arrayReqs);
|
||||
_arrayReqs = nullptr;
|
||||
}
|
||||
|
||||
free(_catchallList);
|
||||
_catchallList = nullptr;
|
||||
|
||||
if (_backgroundObjects) {
|
||||
for (int i = 0; i < _backgroundObjectsSize; i++)
|
||||
free(_backgroundObjects[i]);
|
||||
free(_backgroundObjects);
|
||||
_backgroundObjects = nullptr;
|
||||
}
|
||||
|
||||
if (_cmdList) {
|
||||
for (int i = 0; i < _cmdListSize; i++)
|
||||
free(_cmdList[i]);
|
||||
free(_cmdList);
|
||||
_cmdList = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
@ -421,7 +431,7 @@ const char *Parser::findNoun() const {
|
||||
return _vm->_text->getNoun(i, 0);
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -436,7 +446,7 @@ const char *Parser::findVerb() const {
|
||||
return _vm->_text->getVerb(i, 0);
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -314,7 +314,7 @@ Common::Point *Route::newNode() {
|
||||
|
||||
_routeListIndex++;
|
||||
if (_routeListIndex >= kMaxNodes) // Too many nodes
|
||||
return 0; // Incomplete route - failure
|
||||
return nullptr; // Incomplete route - failure
|
||||
|
||||
_route[_routeListIndex] = _route[_routeListIndex - 1]; // Initialize with previous node
|
||||
return &_route[_routeListIndex];
|
||||
|
@ -47,10 +47,23 @@
|
||||
|
||||
namespace Hugo {
|
||||
|
||||
Scheduler::Scheduler(HugoEngine *vm) : _vm(vm), _actListArr(0), _curTick(0), _oldTime(0), _refreshTimeout(0), _points(0), _screenActs(0) {
|
||||
Scheduler::Scheduler(HugoEngine *vm) : _vm(vm) {
|
||||
_actListArr = nullptr;
|
||||
_curTick = 0;
|
||||
_oldTime = 0;
|
||||
_refreshTimeout = 0;
|
||||
_points = nullptr;
|
||||
_screenActs = nullptr;
|
||||
|
||||
memset(_events, 0, sizeof(_events));
|
||||
_numBonuses = 0;
|
||||
_screenActsSize = 0;
|
||||
|
||||
_actListArrSize = 0;
|
||||
_alNewscrIndex = 0;
|
||||
_freeEvent = nullptr;
|
||||
_headEvent = nullptr;
|
||||
_tailEvent = nullptr;
|
||||
}
|
||||
|
||||
Scheduler::~Scheduler() {
|
||||
@ -69,14 +82,14 @@ void Scheduler::initEventQueue() {
|
||||
// Chain nextEvent from first to last
|
||||
for (int i = kMaxEvents; --i;)
|
||||
_events[i - 1]._nextEvent = &_events[i];
|
||||
_events[kMaxEvents - 1]._nextEvent = 0;
|
||||
_events[kMaxEvents - 1]._nextEvent = nullptr;
|
||||
|
||||
// Chain prevEvent from last to first
|
||||
for (int i = 1; i < kMaxEvents; i++)
|
||||
_events[i]._prevEvent = &_events[i - 1];
|
||||
_events[0]._prevEvent = 0;
|
||||
_events[0]._prevEvent = nullptr;
|
||||
|
||||
_headEvent = _tailEvent = 0; // Event list is empty
|
||||
_headEvent = _tailEvent = nullptr; // Event list is empty
|
||||
_freeEvent = _events; // Free list is full
|
||||
}
|
||||
|
||||
@ -90,7 +103,7 @@ Event *Scheduler::getQueue() {
|
||||
error("An error has occurred: %s", "getQueue");
|
||||
Event *resEvent = _freeEvent;
|
||||
_freeEvent = _freeEvent->_nextEvent;
|
||||
resEvent->_nextEvent = 0;
|
||||
resEvent->_nextEvent = nullptr;
|
||||
return resEvent;
|
||||
}
|
||||
|
||||
@ -597,7 +610,7 @@ void Scheduler::loadScreenAct(Common::SeekableReadStream &in) {
|
||||
for (int i = 0; i < numElem; i++) {
|
||||
uint16 numSubElem = in.readUint16BE();
|
||||
if (numSubElem == 0) {
|
||||
_screenActs[i] = 0;
|
||||
_screenActs[i] = nullptr;
|
||||
} else {
|
||||
_screenActs[i] = (uint16 *)malloc(sizeof(uint16) * numSubElem);
|
||||
for (int j = 0; j < numSubElem; j++)
|
||||
@ -617,11 +630,14 @@ void Scheduler::freeScheduler() {
|
||||
debugC(6, kDebugSchedule, "freeActListArr()");
|
||||
|
||||
free(_points);
|
||||
_points = nullptr;
|
||||
|
||||
if (_screenActs) {
|
||||
for (int i = 0; i < _screenActsSize; i++)
|
||||
free(_screenActs[i]);
|
||||
free(_screenActs);
|
||||
_screenActs = nullptr;
|
||||
_screenActsSize = 0;
|
||||
}
|
||||
|
||||
if (_actListArr) {
|
||||
@ -633,6 +649,8 @@ void Scheduler::freeScheduler() {
|
||||
free(_actListArr[i]);
|
||||
}
|
||||
free(_actListArr);
|
||||
_actListArr = nullptr;
|
||||
_actListArrSize = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@ -698,9 +716,9 @@ void Scheduler::saveEvents(Common::WriteStream *f) {
|
||||
|
||||
f->writeUint32BE(getTicks());
|
||||
|
||||
int16 freeIndex = (_freeEvent == 0) ? -1 : _freeEvent - _events;
|
||||
int16 headIndex = (_headEvent == 0) ? -1 : _headEvent - _events;
|
||||
int16 tailIndex = (_tailEvent == 0) ? -1 : _tailEvent - _events;
|
||||
int16 freeIndex = (_freeEvent == nullptr) ? -1 : _freeEvent - _events;
|
||||
int16 headIndex = (_headEvent == nullptr) ? -1 : _headEvent - _events;
|
||||
int16 tailIndex = (_tailEvent == nullptr) ? -1 : _tailEvent - _events;
|
||||
|
||||
f->writeSint16BE(freeIndex);
|
||||
f->writeSint16BE(headIndex);
|
||||
@ -717,8 +735,8 @@ void Scheduler::saveEvents(Common::WriteStream *f) {
|
||||
f->writeSint16BE(subElem);
|
||||
f->writeByte((wrkEvent->_localActionFl) ? 1 : 0);
|
||||
f->writeUint32BE(wrkEvent->_time);
|
||||
f->writeSint16BE((wrkEvent->_prevEvent == 0) ? -1 : (wrkEvent->_prevEvent - _events));
|
||||
f->writeSint16BE((wrkEvent->_nextEvent == 0) ? -1 : (wrkEvent->_nextEvent - _events));
|
||||
f->writeSint16BE((wrkEvent->_prevEvent == nullptr) ? -1 : (wrkEvent->_prevEvent - _events));
|
||||
f->writeSint16BE((wrkEvent->_nextEvent == nullptr) ? -1 : (wrkEvent->_nextEvent - _events));
|
||||
}
|
||||
}
|
||||
|
||||
@ -1102,7 +1120,7 @@ void Scheduler::restoreEvents(Common::ReadStream *f) {
|
||||
|
||||
// fix up action pointer (to do better)
|
||||
if ((index == -1) && (subElem == -1))
|
||||
_events[i]._action = 0;
|
||||
_events[i]._action = nullptr;
|
||||
else
|
||||
_events[i]._action = (Act *)&_actListArr[index][subElem];
|
||||
|
||||
@ -1112,12 +1130,12 @@ void Scheduler::restoreEvents(Common::ReadStream *f) {
|
||||
int16 prevIndex = f->readSint16BE();
|
||||
int16 nextIndex = f->readSint16BE();
|
||||
|
||||
_events[i]._prevEvent = (prevIndex == -1) ? (Event *)0 : &_events[prevIndex];
|
||||
_events[i]._nextEvent = (nextIndex == -1) ? (Event *)0 : &_events[nextIndex];
|
||||
_events[i]._prevEvent = (prevIndex == -1) ? nullptr : &_events[prevIndex];
|
||||
_events[i]._nextEvent = (nextIndex == -1) ? nullptr : &_events[nextIndex];
|
||||
}
|
||||
_freeEvent = (freeIndex == -1) ? 0 : &_events[freeIndex];
|
||||
_headEvent = (headIndex == -1) ? 0 : &_events[headIndex];
|
||||
_tailEvent = (tailIndex == -1) ? 0 : &_events[tailIndex];
|
||||
_freeEvent = (freeIndex == -1) ? nullptr : &_events[freeIndex];
|
||||
_headEvent = (headIndex == -1) ? nullptr : &_events[headIndex];
|
||||
_tailEvent = (tailIndex == -1) ? nullptr : &_events[tailIndex];
|
||||
|
||||
// Adjust times to fit our time
|
||||
uint32 curTime = getTicks();
|
||||
@ -1156,7 +1174,7 @@ void Scheduler::insertAction(Act *action) {
|
||||
// Now find the place to insert the event
|
||||
if (!_tailEvent) { // Empty queue
|
||||
_tailEvent = _headEvent = curEvent;
|
||||
curEvent->_nextEvent = curEvent->_prevEvent = 0;
|
||||
curEvent->_nextEvent = curEvent->_prevEvent = nullptr;
|
||||
} else {
|
||||
Event *wrkEvent = _tailEvent; // Search from latest time back
|
||||
bool found = false;
|
||||
@ -1178,7 +1196,7 @@ void Scheduler::insertAction(Act *action) {
|
||||
if (!found) { // Must be earliest in list
|
||||
_headEvent->_prevEvent = curEvent; // So insert as new head
|
||||
curEvent->_nextEvent = _headEvent;
|
||||
curEvent->_prevEvent = 0;
|
||||
curEvent->_prevEvent = nullptr;
|
||||
_headEvent = curEvent;
|
||||
}
|
||||
}
|
||||
@ -1424,7 +1442,7 @@ Event *Scheduler::doAction(Event *curEvent) {
|
||||
}
|
||||
|
||||
if (action->_a0._actType == NEW_SCREEN) { // New_screen() deletes entire list
|
||||
return 0; // nextEvent = 0 since list now empty
|
||||
return nullptr; // nextEvent = nullptr since list now empty
|
||||
} else {
|
||||
wrkEvent = curEvent->_nextEvent;
|
||||
delQueue(curEvent); // Return event to free list
|
||||
@ -1455,9 +1473,9 @@ void Scheduler::delQueue(Event *curEvent) {
|
||||
}
|
||||
|
||||
if (_headEvent)
|
||||
_headEvent->_prevEvent = 0; // Mark end of list
|
||||
_headEvent->_prevEvent = nullptr; // Mark end of list
|
||||
else
|
||||
_tailEvent = 0; // Empty queue
|
||||
_tailEvent = nullptr; // Empty queue
|
||||
|
||||
curEvent->_nextEvent = _freeEvent; // Return p to free list
|
||||
if (_freeEvent) // Special case, if free list was empty
|
||||
|
@ -123,11 +123,12 @@ SoundHandler::SoundHandler(HugoEngine *vm) : _vm(vm) {
|
||||
_speakerStream = new Audio::PCSpeaker(_vm->_mixer->getOutputRate());
|
||||
_vm->_mixer->playStream(Audio::Mixer::kSFXSoundType, &_speakerHandle,
|
||||
_speakerStream, -1, Audio::Mixer::kMaxChannelVolume, 0, DisposeAfterUse::NO, true);
|
||||
_DOSSongPtr = 0;
|
||||
_DOSSongPtr = nullptr;
|
||||
_curPriority = 0;
|
||||
_pcspkrTimer = 0;
|
||||
_pcspkrOctave = 3;
|
||||
_pcspkrNoteDuration = 2;
|
||||
_DOSIntroSong = nullptr;
|
||||
}
|
||||
|
||||
SoundHandler::~SoundHandler() {
|
||||
@ -210,7 +211,7 @@ void SoundHandler::playSound(int16 sound, const byte priority) {
|
||||
_curPriority = priority;
|
||||
|
||||
// Get sound data
|
||||
if ((soundPtr = _vm->_file->getSound(sound, &size)) == 0)
|
||||
if ((soundPtr = _vm->_file->getSound(sound, &size)) == nullptr)
|
||||
return;
|
||||
|
||||
Audio::AudioStream *stream = Audio::makeRawStream(soundPtr, size, 11025, Audio::FLAG_UNSIGNED);
|
||||
|
@ -26,9 +26,17 @@
|
||||
|
||||
namespace Hugo {
|
||||
|
||||
TextHandler::TextHandler(HugoEngine *vm) : _vm(vm), _textData(0), _stringtData(0),
|
||||
_textEngine(0), _textIntro(0), _textMouse(0), _textParser(0), _textUtil(0),
|
||||
_screenNames(0), _arrayNouns(0), _arrayVerbs(0) {
|
||||
TextHandler::TextHandler(HugoEngine *vm) : _vm(vm) {
|
||||
_textData = nullptr;
|
||||
_stringtData = nullptr;
|
||||
_textEngine = nullptr;
|
||||
_textIntro = nullptr;
|
||||
_textMouse = nullptr;
|
||||
_textParser = nullptr;
|
||||
_textUtil = nullptr;
|
||||
_screenNames = nullptr;
|
||||
_arrayNouns = nullptr;
|
||||
_arrayVerbs = nullptr;
|
||||
}
|
||||
|
||||
TextHandler::~TextHandler() {
|
||||
@ -86,9 +94,9 @@ char **TextHandler::loadTextsVariante(Common::ReadStream &in, uint16 *arraySize)
|
||||
int numTexts;
|
||||
int entryLen;
|
||||
int len;
|
||||
char **res = 0;
|
||||
char *pos = 0;
|
||||
char *posBck = 0;
|
||||
char **res = nullptr;
|
||||
char *pos = nullptr;
|
||||
char *posBck = nullptr;
|
||||
|
||||
for (int varnt = 0; varnt < _vm->_numVariant; varnt++) {
|
||||
numTexts = in.readUint16BE();
|
||||
@ -126,21 +134,21 @@ char **TextHandler::loadTextsVariante(Common::ReadStream &in, uint16 *arraySize)
|
||||
}
|
||||
|
||||
char ***TextHandler::loadTextsArray(Common::ReadStream &in) {
|
||||
char ***resArray = 0;
|
||||
char ***resArray = nullptr;
|
||||
uint16 arraySize;
|
||||
|
||||
for (int varnt = 0; varnt < _vm->_numVariant; varnt++) {
|
||||
arraySize = in.readUint16BE();
|
||||
if (varnt == _vm->_gameVariant) {
|
||||
resArray = (char ***)malloc(sizeof(char **) * (arraySize + 1));
|
||||
resArray[arraySize] = 0;
|
||||
resArray[arraySize] = nullptr;
|
||||
}
|
||||
for (int i = 0; i < arraySize; i++) {
|
||||
int numTexts = in.readUint16BE();
|
||||
int entryLen = in.readUint16BE();
|
||||
char *pos = (char *)malloc(entryLen);
|
||||
char *posBck = 0;
|
||||
char **res = 0;
|
||||
char *posBck = nullptr;
|
||||
char **res = nullptr;
|
||||
if (varnt == _vm->_gameVariant) {
|
||||
res = (char **)malloc(sizeof(char *) * numTexts);
|
||||
res[0] = pos;
|
||||
@ -232,6 +240,7 @@ void TextHandler::freeTexts(char **ptr) {
|
||||
|
||||
free(*ptr - DATAALIGNMENT);
|
||||
free(ptr);
|
||||
ptr = nullptr;
|
||||
}
|
||||
|
||||
void TextHandler::freeAllTexts() {
|
||||
@ -242,12 +251,14 @@ void TextHandler::freeAllTexts() {
|
||||
for (int i = 0; _arrayNouns[i]; i++)
|
||||
freeTexts(_arrayNouns[i]);
|
||||
free(_arrayNouns);
|
||||
_arrayNouns = nullptr;
|
||||
}
|
||||
|
||||
if (_arrayVerbs) {
|
||||
for (int i = 0; _arrayVerbs[i]; i++)
|
||||
freeTexts(_arrayVerbs[i]);
|
||||
free(_arrayVerbs);
|
||||
_arrayVerbs = nullptr;
|
||||
}
|
||||
|
||||
freeTexts(_screenNames);
|
||||
|
Loading…
x
Reference in New Issue
Block a user