diff options
Diffstat (limited to 'engines/sword25/kernel/resservice.h')
-rwxr-xr-x | engines/sword25/kernel/resservice.h | 121 |
1 files changed, 62 insertions, 59 deletions
diff --git a/engines/sword25/kernel/resservice.h b/engines/sword25/kernel/resservice.h index ef95cfdce9..86c55ed6b9 100755 --- a/engines/sword25/kernel/resservice.h +++ b/engines/sword25/kernel/resservice.h @@ -1,21 +1,27 @@ -// ----------------------------------------------------------------------------- -// This file is part of Broken Sword 2.5 -// Copyright (c) Malte Thiesen, Daniel Queteschiner and Michael Elsdörfer -// -// Broken Sword 2.5 is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -// Broken Sword 2.5 is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with Broken Sword 2.5; if not, write to the Free Software -// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -// ----------------------------------------------------------------------------- +/* ScummVM - Graphic Adventure Engine + * + * ScummVM is the legal property of its developers, whose names + * are too numerous to list here. Please refer to the COPYRIGHT + * file distributed with this source distribution. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * $URL$ + * $Id$ + * + */ #ifndef SWORD25_RESOURCESERVICE_H #define SWORD25_RESOURCESERVICE_H @@ -26,10 +32,11 @@ #include "sword25/kernel/kernel.h" #include "sword25/kernel/resmanager.h" +namespace Sword25 { + class BS_Resource; -class BS_ResourceService : public BS_Service -{ +class BS_ResourceService : public BS_Service { public: BS_ResourceService(BS_Kernel* pKernel) : BS_Service(pKernel) { @@ -41,70 +48,66 @@ public: /** - @brief Lädt eine Resource. - @param FileName Dateiname - @return gibt die Resource zurück, falls erfolgreich, ansonsten NULL - */ - virtual BS_Resource* LoadResource(const std::string& FileName) = 0; + * Loads a resource + * @return Returns the resource if successful, otherwise NULL + */ + virtual BS_Resource *LoadResource(const Common::String &FileName) = 0; /** - @brief CanLoadResource prüft, ob Resource vom Service geladen werden kann. - @param FileName Dateiname - @return true, falls Service Resource laden kann - @remark Überprüfung basiert auf dem Dateinamen, wenn das Dateiformat nicht passt, gibts Ärger. - */ - virtual bool CanLoadResource(const std::string& FileName) = 0; + * Checks whether the given name can be loaded by the resource service + * @param FileName Dateiname + * @return Returns true if the resource can be loaded. + */ + virtual bool CanLoadResource(const Common::String& FileName) = 0; protected: - // Hilfsmethoden für BS_ResourceService Klassen + // Alternative methods for classes BS_ResourceService /** - @brief Vergleicht zwei Strings, wobei der zweite String die Wildcards * und ? enthalten darf - @param String der erste Vergleichsstring. Dieser darf keine Wildcards enthalten. - @param Pattern der zweite Vergleichsstring. Dieser darf die Wildcards * und ? enthalten. - @return Gibt true zurück, wenn der String auf das Pattern passt, ansonsten false. - */ - bool _WildCardStringMatch(const std::string& String, const std::string& Pattern) - { + * Compares two strings, with the second string allowed to contain '*' and '?' wildcards + * @param String The first comparison string. This must not contain wildcards + * @param Pattern The sceond comaprison string. Wildcards of '*' and '?' are allowed. + * @return Returns true if the string matches the pattern, otherwise false. + */ + bool _WildCardStringMatch(const Common::String &String, const Common::String &Pattern) { return _WildCardStringMatchRecursion(String.c_str(), Pattern.c_str()); } private: - bool _WildCardStringMatchRecursion(const char* String, const char* Pattern) - { - // Rekursionsabschlüsse: - // 1. Der Pattern-String enthält nur noch * -> TRUE - if (*Pattern == '*') - { - // Es muss mit einer Kopie von Pattern gearbeitet werden um den aktuellen Zustand nicht zu zerstören - char* PatternCopy = (char*) Pattern; + bool _WildCardStringMatchRecursion(const char *String, const char *Pattern) { + // Checks: + // 1. The pattern starts with '*' -> TRUE + if (*Pattern == '*') { + // Use a copy of the pattern pointer so as not to destroy the current state + char *PatternCopy = (char *)Pattern; while (*PatternCopy == '*') { PatternCopy++; } if (!*PatternCopy) return true; } - // 2. Der String ist zuende, das Pattern aber noch nicht -> FALSE + // 2. The string is over, but the patern is not -> FALSE if (!*String && *Pattern) return false; - // 3. Der String ist zuende, also ist auch das Pattern zuende (s.o.) -> TRUE + // 3. The string is over, and the pattern is finished -> TRUE if (!*String) return true; - // Rekursionsaufruf 1: - // Falls die beiden aktuellen Zeichen gleich sind, oder Pattern '?' ist wird das Ergebnis von restlichen String zurückgegeben + // Recursive check 1: + // If the two current characters are the same, or pattern '?', then keep scanning if (*String == *Pattern || *Pattern == '?') return _WildCardStringMatchRecursion(String + 1, Pattern + 1); // Falls nicht, wird untersucht ob ein '*' vorliegt - if (*Pattern == '*') - { - // Rekursionsaufruf 2: - // Zunächst wird das Ergebnis von String und Pattern + 1 untersucht... + if (*Pattern == '*') { + // Recursive check 2: + // First the result of strign and pattern + 1 is examined.. if (_WildCardStringMatchRecursion(String, Pattern + 1)) return true; - // Falls das fehlschlägt, wird das Ergebnis von String + 1 Pattern zurückgegeben + // If this fails, the result of string + 1 pattern is returned else return _WildCardStringMatchRecursion(String + 1, Pattern); - // Die Rekursion kehrt also immer wieder an diese Stelle zurück, bis das Zeichen in String, - // dem nach dem '*' in Pattern entspricht + // The recursion ends, therefore, keep returning to this place until a character + // in the string which corresponds to the '*' in pattern } - // Wenn kein '*' in Pattern vorliegt, schlägt der Vergleich fehl + // The match has failed return false; } }; +} // End of namespace Sword25 + #endif |