mirror of
https://github.com/libretro/scummvm.git
synced 2025-02-13 07:14:59 +00:00
* cleanup
* moved find routines from Parallaction to Location svn-id: r34940
This commit is contained in:
parent
5581030972
commit
3eeece6a25
@ -188,21 +188,21 @@ void Parallaction_ns::_c_moveSarc(void *parm) {
|
||||
_introSarcData2 = 0;
|
||||
if (!_moveSarcZones[0]) {
|
||||
|
||||
_moveSarcZones[0] = findZone("sarc1");
|
||||
_moveSarcZones[1] = findZone("sarc2");
|
||||
_moveSarcZones[2] = findZone("sarc3");
|
||||
_moveSarcZones[3] = findZone("sarc4");
|
||||
_moveSarcZones[4] = findZone("sarc5");
|
||||
_moveSarcZones[0] = _location.findZone("sarc1");
|
||||
_moveSarcZones[1] = _location.findZone("sarc2");
|
||||
_moveSarcZones[2] = _location.findZone("sarc3");
|
||||
_moveSarcZones[3] = _location.findZone("sarc4");
|
||||
_moveSarcZones[4] = _location.findZone("sarc5");
|
||||
|
||||
_moveSarcExaZones[0] = findZone("sarc1exa");
|
||||
_moveSarcExaZones[1] = findZone("sarc2exa");
|
||||
_moveSarcExaZones[2] = findZone("sarc3exa");
|
||||
_moveSarcExaZones[3] = findZone("sarc4exa");
|
||||
_moveSarcExaZones[4] = findZone("sarc5exa");
|
||||
_moveSarcExaZones[0] = _location.findZone("sarc1exa");
|
||||
_moveSarcExaZones[1] = _location.findZone("sarc2exa");
|
||||
_moveSarcExaZones[2] = _location.findZone("sarc3exa");
|
||||
_moveSarcExaZones[3] = _location.findZone("sarc4exa");
|
||||
_moveSarcExaZones[4] = _location.findZone("sarc5exa");
|
||||
|
||||
}
|
||||
|
||||
a = findAnimation("sposta");
|
||||
a = _location.findAnimation("sposta");
|
||||
|
||||
_moveSarcZone1 = *(ZonePtr*)parm;
|
||||
|
||||
@ -239,7 +239,7 @@ void Parallaction_ns::_c_moveSarc(void *parm) {
|
||||
_moveSarcZones[3]->getX() == 134 &&
|
||||
_moveSarcZones[4]->getX() == 167) {
|
||||
|
||||
a = findAnimation("finito");
|
||||
a = _location.findAnimation("finito");
|
||||
|
||||
a->_flags |= (kFlagsActive | kFlagsActing);
|
||||
setLocationFlags(0x20); // GROSS HACK: activates 'finito' flag in dinoit_museo.loc
|
||||
@ -403,7 +403,7 @@ void Parallaction_ns::_c_closeMusic(void*) {
|
||||
*/
|
||||
|
||||
void Parallaction_ns::_c_startIntro(void *parm) {
|
||||
_rightHandAnim = findAnimation("righthand");
|
||||
_rightHandAnim = _location.findAnimation("righthand");
|
||||
|
||||
if (getPlatform() == Common::kPlatformPC) {
|
||||
_soundMan->setMusicFile("intro");
|
||||
|
@ -189,9 +189,9 @@ void Parallaction::resumeJobs() {
|
||||
return;
|
||||
}
|
||||
|
||||
AnimationPtr Parallaction::findAnimation(const char *name) {
|
||||
AnimationPtr Location::findAnimation(const char *name) {
|
||||
|
||||
for (AnimationList::iterator it = _location._animations.begin(); it != _location._animations.end(); it++)
|
||||
for (AnimationList::iterator it = _animations.begin(); it != _animations.end(); it++)
|
||||
if (!scumm_stricmp((*it)->_name, name)) return *it;
|
||||
|
||||
return nullAnimationPtr;
|
||||
@ -808,12 +808,10 @@ ZonePtr Parallaction::hitZone(uint32 type, uint16 x, uint16 y) {
|
||||
}
|
||||
|
||||
|
||||
ZonePtr Parallaction::findZone(const char *name) {
|
||||
|
||||
for (ZoneList::iterator it = _location._zones.begin(); it != _location._zones.end(); it++) {
|
||||
ZonePtr Location::findZone(const char *name) {
|
||||
for (ZoneList::iterator it = _zones.begin(); it != _zones.end(); it++) {
|
||||
if (!scumm_stricmp((*it)->_name, name)) return *it;
|
||||
}
|
||||
|
||||
return findAnimation(name);
|
||||
}
|
||||
|
||||
|
@ -159,6 +159,9 @@ public:
|
||||
Location();
|
||||
~Location();
|
||||
|
||||
AnimationPtr findAnimation(const char *name);
|
||||
ZonePtr findZone(const char *name);
|
||||
|
||||
void cleanup(bool removeAll);
|
||||
};
|
||||
|
||||
@ -325,15 +328,11 @@ public:
|
||||
bool checkSpecialZoneBox(ZonePtr z, uint32 type, uint x, uint y);
|
||||
bool checkZoneBox(ZonePtr z, uint32 type, uint x, uint y);
|
||||
bool checkLinkedAnimBox(ZonePtr z, uint32 type, uint x, uint y);
|
||||
ZonePtr findZone(const char *name);
|
||||
ZonePtr hitZone(uint32 type, uint16 x, uint16 y);
|
||||
void runZone(ZonePtr z);
|
||||
void freeZones(bool removeAll);
|
||||
bool pickupItem(ZonePtr z);
|
||||
void updateDoor(ZonePtr z, bool close);
|
||||
void showZone(ZonePtr z, bool visible);
|
||||
AnimationPtr findAnimation(const char *name);
|
||||
void freeAnimations();
|
||||
void setBackground(const char *background, const char *mask, const char *path);
|
||||
void freeBackground();
|
||||
void highlightInventoryItem(ItemPosition pos);
|
||||
|
@ -717,7 +717,7 @@ DECLARE_ZONE_PARSER(limits) {
|
||||
|
||||
if (isalpha(_tokens[1][1])) {
|
||||
ctxt.z->_flags |= kFlagsAnimLinked;
|
||||
ctxt.z->_linkedAnim = _vm->findAnimation(_tokens[1]);
|
||||
ctxt.z->_linkedAnim = _vm->_location.findAnimation(_tokens[1]);
|
||||
ctxt.z->_linkedName = strdup(_tokens[1]);
|
||||
} else {
|
||||
ctxt.z->setBox(atoi(_tokens[1]), atoi(_tokens[2]), atoi(_tokens[3]), atoi(_tokens[4]));
|
||||
@ -912,7 +912,7 @@ DECLARE_ANIM_PARSER(endanimation) {
|
||||
DECLARE_INSTRUCTION_PARSER(zone) {
|
||||
debugC(7, kDebugParser, "INSTRUCTION_PARSER(zone) ");
|
||||
|
||||
ctxt.inst->_z = _vm->findZone(_tokens[1]);
|
||||
ctxt.inst->_z = _vm->_location.findZone(_tokens[1]);
|
||||
ctxt.inst->_index = _parser->_lookup;
|
||||
}
|
||||
|
||||
@ -1029,7 +1029,7 @@ void ProgramParser_br::parseRValue(ScriptVar &v, const char *str) {
|
||||
|
||||
AnimationPtr a;
|
||||
if (str[1] == '.') {
|
||||
a = _vm->findAnimation(&str[2]);
|
||||
a = _vm->_location.findAnimation(&str[2]);
|
||||
if (!a) {
|
||||
error("unknown animation '%s' in script", &str[2]);
|
||||
}
|
||||
|
@ -306,11 +306,11 @@ void ProgramParser_ns::parseInstruction() {
|
||||
|
||||
if (_tokens[0][1] == '.') {
|
||||
_tokens[0][1] = '\0';
|
||||
ctxt.a = _vm->findAnimation(&_tokens[0][2]);
|
||||
ctxt.a = _vm->_location.findAnimation(&_tokens[0][2]);
|
||||
} else
|
||||
if (_tokens[1][1] == '.') {
|
||||
_tokens[1][1] = '\0';
|
||||
ctxt.a = _vm->findAnimation(&_tokens[1][2]);
|
||||
ctxt.a = _vm->_location.findAnimation(&_tokens[1][2]);
|
||||
} else
|
||||
ctxt.a = _program->_anim;
|
||||
|
||||
@ -369,7 +369,7 @@ DECLARE_INSTRUCTION_PARSER(animation) {
|
||||
if (!scumm_stricmp(_tokens[1], ctxt.a->_name)) {
|
||||
ctxt.inst->_a = ctxt.a;
|
||||
} else {
|
||||
ctxt.inst->_a = _vm->findAnimation(_tokens[1]);
|
||||
ctxt.inst->_a = _vm->_location.findAnimation(_tokens[1]);
|
||||
}
|
||||
|
||||
ctxt.inst->_index = _parser->_lookup;
|
||||
@ -466,7 +466,7 @@ DECLARE_INSTRUCTION_PARSER(put) {
|
||||
if (!scumm_stricmp(_tokens[1], ctxt.a->_name)) {
|
||||
ctxt.inst->_a = ctxt.a;
|
||||
} else {
|
||||
ctxt.inst->_a = _vm->findAnimation(_tokens[1]);
|
||||
ctxt.inst->_a = _vm->_location.findAnimation(_tokens[1]);
|
||||
}
|
||||
|
||||
parseRValue(ctxt.inst->_opA, _tokens[2]);
|
||||
@ -492,7 +492,7 @@ DECLARE_INSTRUCTION_PARSER(call) {
|
||||
DECLARE_INSTRUCTION_PARSER(sound) {
|
||||
debugC(7, kDebugParser, "INSTRUCTION_PARSER(sound) ");
|
||||
|
||||
ctxt.inst->_z = _vm->findZone(_tokens[1]);
|
||||
ctxt.inst->_z = _vm->_location.findZone(_tokens[1]);
|
||||
ctxt.inst->_index = _parser->_lookup;
|
||||
}
|
||||
|
||||
@ -545,7 +545,7 @@ void ProgramParser_ns::parseRValue(ScriptVar &v, const char *str) {
|
||||
|
||||
AnimationPtr a;
|
||||
if (str[1] == '.') {
|
||||
a = _vm->findAnimation(&str[2]);
|
||||
a = _vm->_location.findAnimation(&str[2]);
|
||||
} else {
|
||||
a = ctxt.a;
|
||||
}
|
||||
@ -575,7 +575,7 @@ void ProgramParser_ns::parseLValue(ScriptVar &v, const char *str) {
|
||||
|
||||
AnimationPtr a;
|
||||
if (str[1] == '.') {
|
||||
a = _vm->findAnimation(&str[2]);
|
||||
a = _vm->_location.findAnimation(&str[2]);
|
||||
} else {
|
||||
a = ctxt.a;
|
||||
}
|
||||
@ -628,7 +628,7 @@ DECLARE_COMMAND_PARSER(zone) {
|
||||
|
||||
createCommand(_parser->_lookup);
|
||||
|
||||
ctxt.cmd->u._zone = _vm->findZone(_tokens[ctxt.nextToken]);
|
||||
ctxt.cmd->u._zone = _vm->_location.findZone(_tokens[ctxt.nextToken]);
|
||||
if (!ctxt.cmd->u._zone) {
|
||||
saveCommandForward(_tokens[ctxt.nextToken], ctxt.cmd);
|
||||
}
|
||||
@ -794,7 +794,7 @@ void LocationParser_ns::saveCommandForward(const char *name, CommandPtr cmd) {
|
||||
|
||||
void LocationParser_ns::resolveCommandForwards() {
|
||||
for (uint i = 0; i < _numForwardedCommands; i++) {
|
||||
_forwardedCommands[i].cmd->u._zone = _vm->findZone(_forwardedCommands[i].name);
|
||||
_forwardedCommands[i].cmd->u._zone = _vm->_location.findZone(_forwardedCommands[i].name);
|
||||
if (_forwardedCommands[i].cmd->u._zone == 0) {
|
||||
warning("Cannot find zone '%s' into current location script. This may be a bug in the original scripts.\n", _forwardedCommands[i].name);
|
||||
}
|
||||
@ -1367,7 +1367,7 @@ DECLARE_ZONE_PARSER(flags) {
|
||||
void LocationParser_ns::parseZone(ZoneList &list, char *name) {
|
||||
debugC(5, kDebugParser, "parseZone(name: %s)", name);
|
||||
|
||||
if (_vm->findZone(name)) {
|
||||
if (_vm->_location.findZone(name)) {
|
||||
_script->skip("endzone");
|
||||
return;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user