ManaPlus
walklayerloader.cpp
Go to the documentation of this file.
1 /*
2  * The ManaPlus Client
3  * Copyright (C) 2004-2009 The Mana World Development Team
4  * Copyright (C) 2009-2010 The Mana Developers
5  * Copyright (C) 2011-2019 The ManaPlus Developers
6  * Copyright (C) 2019-2021 Andrei Karas
7  *
8  * This file is part of The ManaPlus Client.
9  *
10  * This program is free software; you can redistribute it and/or modify
11  * it under the terms of the GNU General Public License as published by
12  * the Free Software Foundation; either version 2 of the License, or
13  * any later version.
14  *
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  * GNU General Public License for more details.
19  *
20  * You should have received a copy of the GNU General Public License
21  * along with this program. If not, see <http://www.gnu.org/licenses/>.
22  */
23 
25 
26 #include "navigationmanager.h"
27 
29 
31 
32 #include "utils/checkutils.h"
33 
34 #include "debug.h"
35 
36 #ifndef DYECMD
38 {
40 
41  const std::string name;
42  const Map *const map;
43 
44  static Resource *load(const void *const v)
45  {
46  if (v == nullptr)
47  return nullptr;
48 
49  const WalkLayerLoader *const rl = static_cast<const
50  WalkLayerLoader *>(v);
51  Resource *const resource = NavigationManager::loadWalkLayer(rl->map);
52  if (resource == nullptr)
53  reportAlways("WalkLayer creation error")
54  return resource;
55  }
56 };
57 
58 WalkLayer *Loader::getWalkLayer(const std::string &name,
59  Map *const map)
60 {
61  WalkLayerLoader rl = {name, map};
62  return static_cast<WalkLayer*>(ResourceManager::get("walklayer_" + name,
63  WalkLayerLoader::load, &rl));
64 }
65 #else // DYECMD
66 
67 WalkLayer *Loader::getWalkLayer(const std::string &name A_UNUSED,
68  Map *const map A_UNUSED)
69 {
70  return nullptr;
71 }
72 #endif // DYECMD
#define reportAlways(...)
Definition: checkutils.h:253
Definition: map.h:75
static Resource * loadWalkLayer(const Map *const map)
#define final
Definition: localconsts.h:46
#define A_UNUSED
Definition: localconsts.h:160
#define A_DEFAULT_COPY(func)
Definition: localconsts.h:41
WalkLayer * getWalkLayer(const std::string &name, Map *const map)
Resource * get(const std::string &idPath, generator fun, const void *const data)
const Map *const map
const std::string name
static Resource * load(const void *const v)