1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
#ifndef SPECIAL_ITEM_DROP_MGR_H
#define SPECIAL_ITEM_DROP_MGR_H
#include "common.h"
#include "m/m_angle.h"
#include "m/m_vec.h"
enum SpecialItemDropTable {
SPECIAL_ITEM_0 = 0,
SPECIAL_ITEM_1,
SPECIAL_ITEM_2,
SPECIAL_ITEM_3,
SPECIAL_ITEM_4,
SPECIAL_ITEM_5,
SPECIAL_ITEM_6,
SPECIAL_ITEM_7,
SPECIAL_ITEM_8,
SPECIAL_ITEM_9,
SPECIAL_ITEM_10,
SPECIAL_ITEM_10BOMBS,
SPECIAL_ITEM_ARROWS,
SPECIAL_ITEM_SEEDS,
// ...
};
class SpecialItemDropMgr {
private:
static SpecialItemDropMgr *sInstance;
public:
static SpecialItemDropMgr *GetInstance() {
return sInstance;
}
SpecialItemDropMgr();
virtual ~SpecialItemDropMgr() {}
static SpecialItemDropMgr *create();
int fn_800C7BB0(int specialItemId);
bool shouldTryExtraHearts(int specialItemId);
bool shouldTryExtraRupees(int specialItemId);
int giveSpecialDropItem(int specialItemId, int roomid, mVec3_c *pos, int subtype, mAng rot, s32 unused);
bool spawnSpecialDropItem(int specialItemId, int roomid, mVec3_c *pos, int subtype, mAng rot);
};
#endif
|