Files
ac-decomp/include/m_museum_display.h
T
2023-05-09 20:28:40 -04:00

39 lines
1.0 KiB
C

#ifndef M_MUSEUM_DISPLAY_H
#define M_MUSEUM_DISPLAY_H
#include "types.h"
#ifdef __cplusplus
extern "C" {
#endif
/* TODO: these should be determined from item name indices */
#define mMmd_FOSSIL_BIT_NUM 13
#define mMmd_ART_BIT_NUM 8
#define mMmd_FISH_BIT_NUM 21
#define mMmd_INSECT_BIT_NUM 21
/* 4 bits per donatable item */
#define mMmd_BIT_INFO(info, category, index) \
(((info).category[(index) / 2] >> (((index) & 1) << 2)) & 0x0F)
#define mMmd_ART_BIT(info, index) mMmd_BIT_INFO(info, art, index)
#define mMmd_INSECT_BIT(info, index) mMmd_BIT_INFO(info, insect, index)
#define mMmd_FISH_BIT(info, index) mMmd_BIT_INFO(info, fish, index)
#define mMmd_FOSSIL_BIT(info, index) mMmd_BIT_INFO(info, fossil, index)
/* sizeof(mMmd_info_c) == 0x3F */
typedef struct museum_display_info_s {
/* 0x00 */ u8 fossil_bit[mMmd_FOSSIL_BIT_NUM];
/* 0x0D */ u8 art_bit[mMmd_ART_BIT_NUM];
/* 0x15 */ u8 fish_bit[mMmd_FISH_BIT_NUM];
/* 0x2A */ u8 insect_bit[mMmd_INSECT_BIT_NUM];
} mMmd_info_c;
#ifdef __cplusplus
}
#endif
#endif