summaryrefslogtreecommitdiff
path: root/include/m_all_grow.h
blob: 69796dec9fad3d0232b74eacd42fe1b17e2e83cc (plain)
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#ifndef M_ALL_GROW_H
#define M_ALL_GROW_H

#include "ultra64.h"

struct Foreground;
struct gfxprint;
struct OSRTCTime;

#define AGrw_DUMP_WIDTH 4
#define AGrw_DUMP_HEIGHT 4

typedef enum mAGrw_XMAS_PROC {
  /* 0 */ AGrw_XMAS_PROC_CLEAR,
  /* 1 */ AGrw_XMAS_PROC_SET,

  /* 2 */ mAGrw_XMAS_PROC_NUM
} mAGrw_XMAS_PROC;

typedef enum mAGrw_FRUIT {
  /* 0 */ AGrw_FRUIT_APPLE,
  /* 1 */ AGrw_FRUIT_CHERRY,
  /* 2 */ AGrw_FRUIT_PEAR,
  /* 3 */ AGrw_FRUIT_PEACH,
  /* 4 */ AGrw_FRUIT_ORANGE,

  /* 5 */ AGrw_FRUIT_NUM
} mAGrw_FRUIT;

#define AGrw_XMAS_LIGHTS_MAX_BLOCK 3
#define AGrw_CEDAR_BLOCK_Z_MIN 0
#define AGrw_CEDAR_BLOCK_Z_MAX 3 // [min, max)
#define AGrw_FOSSIL_NUM 5
#define AGrw_HANIWA_NUM 3

typedef struct AllGrowBlock {
    /* 0x0 */ u8 blockX;
    /* 0x1 */ u8 blockZ;
} AllGrowBlock; // size 0x2


void mAGrw_ClearDebugData(void);
s32 mAGrw_CheckRegistedData_debug(AllGrowBlock* blockInfo, s32 num, s32 blockX, s32 blockZ);
void mAGrw_SetBlockData_debug(AllGrowBlock* blockInfo, s32 num, s32 blockX, s32 blockZ);
void mAGrw_SetDebugDataBlock(u16* fgItems, u16* deposit, AllGrowBlock* fossilBlockInfo, s32 fossilMax, s32* fossilNum,
                             AllGrowBlock* haniwaBlockInfo, s32 haniwaMax, s32* haniwaNum, s32 blockX, s32 blockZ);
void mAGrw_SetDebugData(void);
void mAGrw_PrintFossilHaniwa_debug(struct gfxprint* gfxprint);
s32 mAGrw_CheckKabuPeddler(void);
void mAGrw_OrderSetHaniwa(void);
u8 func_80055E34_jp(u16* items);
void mAGrw_ChangeItemBlock(u16* blockItems, u16 newItem, u16 targetItem, u8 possibleNum);
void mAGrw_ChangeItemBlock2(u16* blockItems, u16 newItem, u8 possibleNum);
s32 mAGrw_CheckPutXmasTree(struct OSRTCTime* time);
void mAGrw_SetXmasTreeBlock(u16* blockItems);
void mAGrw_ClearXmasTreeBlock(u16* blockItems);
void mAGrw_XmasTreeField(s32 type);
void mAGrw_SetXmasTree(void);
void mAGrw_RenewalFgItem(struct OSRTCTime* time);
void mAGrw_ChangeTree2OtherBlock(u16* items, u16 other);
void mAGrw_ChangeTree2FruitTreeLine(struct Foreground* fg, u16 fruitTree);
void mAGrw_ChangeTree2FruitTree(void);


#endif