summaryrefslogtreecommitdiff
path: root/include/m_room_type.h
blob: f5396a05cc2561a2438e34f5752d491099cab20d (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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#ifndef M_ROOM_TYPE_H
#define M_ROOM_TYPE_H

#include "ultra64.h"
#include "libu64/gfxprint.h"

struct Game;

#define mRmTp_FTR_UNIT_MAX 4
#define FTR_NUM 947

typedef enum mRmTp_FurnitureSize {
    /* 0 */ mRmTp_FTRSIZE_1x1,
    /* 1 */ mRmTp_FTRSIZE_1x2,
    /* 2 */ mRmTp_FTRSIZE_2x2,
    /* 3 */ mRmTp_FTRSIZE_MAX
} mRmTp_FurnitureSize;

typedef enum mRmTp_Direction {
    /* 0 */ mRmTp_DIRECT_SOUTH,
    /* 1 */ mRmTp_DIRECT_EAST,
    /* 2 */ mRmTp_DIRECT_NORTH,
    /* 3 */ mRmTp_DIRECT_WEST,
    /* 4 */ mRmTp_DIRECT_MAX
} mRmTp_Direction;

typedef enum mRmTp_SEType {
    /* 0 */ mRmTp_FTR_SE_NONE,
    /* 1 */ mRmTp_FTR_SE_SOFT_CHAIR,
    /* 2 */ mRmTp_FTR_SE_HARD_CHAIR,
    /* 3 */ mRmTp_FTR_SE_BUBU_CHAIR,
    /* 4 */ mRmTp_FTR_SE_TOILET_CHAIR,
    /* 5 */ mRmTp_FTR_SE_MAX
} mRmTp_SEType;

typedef enum mRmTp_Action {
    /* 0 */    mRmTp_CHAIR_ACTION_SIT,
    /* 1 */    mRmTp_CHAIR_ACTION_STAND,
    /* 2 */    mRmTp_CHAIR_ACTION_MAX
} mRmTp_Action;

typedef enum mRmTp_BirthType {
    /* 00 */ mRmTp_BIRTH_TYPE_GRP_A,
    /* 01 */ mRmTp_BIRTH_TYPE_GRP_B,
    /* 02 */ mRmTp_BIRTH_TYPE_GRP_C,
    /* 03 */ mRmTp_BIRTH_TYPE_EVENT,
    /* 04 */ mRmTp_BIRTH_TYPE_BIRTHDAY,
    /* 05 */ mRmTp_BIRTH_TYPE_HALLOWEEN,
    /* 06 */ mRmTp_BIRTH_TYPE_HANIWA,
    /* 07 */ mRmTp_BIRTH_TYPE_LOTTERY,
    /* 08 */ mRmTp_BIRTH_TYPE_FTR_CLOTH,
    /* 09 */ mRmTp_BIRTH_TYPE_FTR_UMBRELLA,
    /* 10 */ mRmTp_BIRTH_TYPE_FTR_INSECT,
    /* 11 */ mRmTp_BIRTH_TYPE_FTR_FISH,
    /* 12 */ mRmTp_BIRTH_TYPE_SINGLE_FOSSIL,
    /* 13 */ mRmTp_BIRTH_TYPE_MULTI_FOSSIL,
    /* 14 */ mRmTp_BIRTH_TYPE_XMAS,
    /* 15 */ mRmTp_BIRTH_TYPE_SANTA,
    /* 16 */ mRmTp_BIRTH_TYPE_UNOBTAINABLE,
    /* 17 */ mRmTp_BIRTH_TYPE_SNOWMAN,
} mRmTp_BirthType;

typedef struct mRmTp_FtrPlaceInfo {
    /* 0x0 */ s32 exists;
    /* 0x4 */ s32 utX;
    /* 0x8 */ s32 utZ;
} mRmTp_FtrPlaceInfo; // size = 0xC

typedef struct mRmTp_FtrPlaceData {
    /* 0x0 */ u8 exist;
    /* 0x2 */ s16 ofsX;
    /* 0x4 */ s16 ofsZ;
} mRmTp_FtrPlaceData; // size = 0x8

void mRmTp_InitFtrPlaceInfo(mRmTp_FtrPlaceInfo* info);
s32 mRmTp_ItemNo2FtrSize(u16 name);
mRmTp_FtrPlaceData* mRmTp_GetFtrUnitPlaceData(s32 size, s32 dir);
s32 mRmTp_GetFurnitureData(u16 ftr, s32 ut_x, s32 ut_z, mRmTp_FtrPlaceInfo* info);
void mRmTp_AssignFtrFgIdx(u16* dst, u16* src, u16* arg2, u16* arg3);
void mRmTp_MakeFtrNoTable(u16* dst, u16* src);
void* mRmTp_MallocRam(struct Game* game, size_t size);
void mRmTp_FreeRam(struct Game* game, void* ptr);
s32 mRmTp_CharVacRight2Left(u8* str, s32 len);
s32 mRmTp_GetFtrActionSE(s32 ftr_idx, s32 mode);
s32 mRmTp_CheckShopFtr(u16 item);
u8* mRmTp_CheckFtrBirthInfoTop();
s32 mRmTp_GetFloorIdx(void);
u16 mRmTp_Item1ItemNo2FtrItemNo_AtPlayerRoom(u16 item);
u16 mRmTp_FtrItemNo2Item1ItemNo(u16 item);
void mRmTp_MakeMelodyData();
u8* mRmTp_GetMelodyData();
void mRmTp_DrawFamicomInfo(gfxprint* gfxprint);
void mRmTp_MakeFamicom_Fdebug();

#endif