My Project
 
Loading...
Searching...
No Matches
generator.h
Go to the documentation of this file.
1#pragma once
2
3#include <map>
4
5class Item;
6class Armor;
7class Weapon;
8
10public:
11 class Category{
12 public:
13 enum Type{
14 WEAPON = 15,
15 ARMOR = 10,
16 POTION = 50,
17 SCROLL = 40,
18 WAND = 4,
19 RING = 2,
20 SEED = 5,
21 FOOD = 0,
22 GOLD = 50,
23 MISC = 5,
24 };
25
26 typedef Item* (*CreateItem)();
27
28 std::vector<CreateItem> classes;
30 std::vector<float> probs;
31 float prob;
32
33 static std::map<Type, Category*> cats;
34
35 static bool initFlag;
36
38 {
39 cats.insert(std::make_pair(t, this));
40 }
41 };
42
47 static Category WAND;
48 static Category RING;
49 static Category SEED;
50 static Category FOOD;
51 static Category GOLD;
52 static Category MISC;
53public:
54 static Item* random();
55 static Item* random(Category::Type cat);
56 static Armor* randomArmor();
57 static Weapon* randomWeapon();
58 static void reset();
59private:
60 static void init();
61 static std::map<Category::Type, float> categoryProbs;
62};
Definition armor.h:7
Definition generator.h:11
float prob
Definition generator.h:31
static std::map< Type, Category * > cats
Definition generator.h:33
Category(Type t)
Definition generator.h:37
static bool initFlag
Definition generator.h:35
Type
Definition generator.h:13
@ POTION
Definition generator.h:16
@ SEED
Definition generator.h:20
@ GOLD
Definition generator.h:22
@ ARMOR
Definition generator.h:15
@ RING
Definition generator.h:19
@ MISC
Definition generator.h:23
@ FOOD
Definition generator.h:21
@ WAND
Definition generator.h:18
@ SCROLL
Definition generator.h:17
@ WEAPON
Definition generator.h:14
std::vector< float > probs
Definition generator.h:30
std::vector< CreateItem > classes
Definition generator.h:28
Type type
Definition generator.h:29
Definition generator.h:9
static Item * random()
Definition generator.cpp:35
static Weapon * randomWeapon()
Definition generator.cpp:76
static Category SEED
Definition generator.h:49
static Category POTION
Definition generator.h:45
static void reset()
Definition generator.cpp:93
static Category SCROLL
Definition generator.h:46
static Category WEAPON
Definition generator.h:43
static Category RING
Definition generator.h:48
static Category ARMOR
Definition generator.h:44
static Category WAND
Definition generator.h:47
static Category GOLD
Definition generator.h:51
static Armor * randomArmor()
Definition generator.cpp:59
static Category MISC
Definition generator.h:52
static Category FOOD
Definition generator.h:50
Definition item.h:15
Definition weapon.h:8