Crossfire Resources Editor
crossfire-crossfire-server
utils
cre
recipes
RecipeListWrapper.cpp
Go to the documentation of this file.
1
/*
2
* Crossfire -- cooperative multi-player graphical RPG and adventure game
3
*
4
* Copyright (c) 2022 the Crossfire Development Team
5
*
6
* Crossfire is free software and comes with ABSOLUTELY NO WARRANTY. You are
7
* welcome to redistribute it under certain conditions. For details, please
8
* see COPYING and LICENSE.
9
*
10
* The authors can be reached via e-mail at <crossfire@metalforge.org>.
11
*/
12
13
#include "
RecipeWrapper.h
"
14
#include "
ResourcesManager.h
"
15
#include "
CREPixmap.h
"
16
#include "
RecipeListWrapper.h
"
17
#include "../archetypes/ArchetypeWrapper.h"
18
19
RecipeListWrapper::RecipeListWrapper
(
AssetWrapper
*parent,
const
recipelist *list,
ResourcesManager
*resources)
20
:
AssetTWrapper
(parent,
"RecipeList"
, list), myResourcesManager(resources) {
21
}
22
23
int
RecipeListWrapper::childrenCount
()
const
{
24
int
count = 0;
25
auto
item =
myWrappedItem
->items;
26
while
(item) {
27
count++;
28
item = item->next;
29
}
30
return
count;
31
}
32
33
AssetWrapper
*
RecipeListWrapper::child
(
int
index) {
34
auto
item =
myWrappedItem
->items;
35
while
(index > 0) {
36
index--;
37
item = item->next;
38
}
39
return
myResourcesManager
->
wrap
(item,
this
);
40
}
41
42
int
RecipeListWrapper::childIndex
(
AssetWrapper
*child) {
43
auto
item =
myWrappedItem
->items;
44
int
index = 0;
45
while
(item) {
46
if
(
myResourcesManager
->
wrap
(item,
this
) ==
child
) {
47
return
index;
48
}
49
item = item->next;
50
index++;
51
}
52
return
-1;
53
}
54
55
AssetWrapper::PossibleUse
RecipeListWrapper::uses
(
const
AssetWrapper
*asset, std::string &)
const
{
56
return
dynamic_cast<
const
ArchetypeWrapper
*
>
(asset) ?
ChildrenMayUse
:
DoesntUse
;
57
}
RecipeListWrapper::child
virtual AssetWrapper * child(int) override
Definition:
RecipeListWrapper.cpp:33
AssetTWrapper< const recipelist >::myWrappedItem
const recipelist * myWrappedItem
Definition:
AssetWrapper.h:108
ArchetypeWrapper
Definition:
ArchetypeWrapper.h:25
AssetWrapper
Definition:
AssetWrapper.h:25
RecipeListWrapper::childIndex
virtual int childIndex(AssetWrapper *) override
Definition:
RecipeListWrapper.cpp:42
RecipeListWrapper::myResourcesManager
ResourcesManager * myResourcesManager
Definition:
RecipeListWrapper.h:37
ResourcesManager::wrap
ArchetypeWrapper * wrap(archetype *arch, AssetWrapper *parent)
Definition:
ResourcesManager.h:132
AssetTWrapper
Definition:
AssetWrapper.h:98
ResourcesManager
Definition:
ResourcesManager.h:80
AssetWrapper::ChildrenMayUse
@ ChildrenMayUse
Definition:
AssetWrapper.h:32
AssetWrapper::PossibleUse
PossibleUse
Definition:
AssetWrapper.h:32
ResourcesManager.h
CREPixmap.h
RecipeWrapper.h
RecipeListWrapper::RecipeListWrapper
RecipeListWrapper(AssetWrapper *parent, const recipelist *list, ResourcesManager *resources)
Definition:
RecipeListWrapper.cpp:19
RecipeListWrapper::childrenCount
virtual int childrenCount() const override
Definition:
RecipeListWrapper.cpp:23
RecipeListWrapper::uses
virtual PossibleUse uses(const AssetWrapper *asset, std::string &) const override
Definition:
RecipeListWrapper.cpp:55
AssetWrapper::DoesntUse
@ DoesntUse
Definition:
AssetWrapper.h:32
RecipeListWrapper.h
Generated by
1.8.17