mirror of
https://github.com/ACreTeam/ac-decomp
synced 2026-05-23 06:34:18 -04:00
67 lines
1.4 KiB
C
67 lines
1.4 KiB
C
#ifndef M_FIELD_INFO_H
|
|
#define M_FIELD_INFO_H
|
|
|
|
#include "types.h"
|
|
#include "libu64/gfxprint.h"
|
|
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
enum field_type {
|
|
mFI_FIELDTYPE_FG,
|
|
mFI_FIELDTYPE_1,
|
|
mFI_FIELDTYPE_2,
|
|
mFI_FIELDTYPE_ROOM,
|
|
mFI_FIELDTYPE_NPC_ROOM,
|
|
mFI_FIELDTYPE_DEMO,
|
|
mFI_FIELDTYPE_PLAYER_ROOM,
|
|
|
|
mFI_FIELDTYPE_NUM
|
|
};
|
|
|
|
#define mFI_TO_FIELD_ID(type, index) ((type << 12) | index)
|
|
#define mFI_GET_TYPE (field_id) (field_id & 0xF000)
|
|
|
|
enum field_room {
|
|
/* TODO: others */
|
|
|
|
mFI_FIELD_PLAYER0_ROOM = mFI_TO_FIELD_ID(mFI_FIELDTYPE_PLAYER_ROOM, 0),
|
|
mFI_FIELD_PLAYER1_ROOM,
|
|
mFI_FIELD_PLAYER2_ROOM,
|
|
mFI_FIELD_PLAYER3_ROOM,
|
|
|
|
/* TODO: others */
|
|
};
|
|
|
|
#define mFI_GET_PLAYER_ROOM_NO(field_id) (((field_id)-mFI_FIELD_PLAYER0_ROOM) & 3)
|
|
#define mFI_IS_PLAYER_ROOM(field_id) \
|
|
((field_id) == mFI_FIELD_PLAYER0_ROOM || (field_id) == mFI_FIELD_PLAYER1_ROOM || \
|
|
(field_id) == mFI_FIELD_PLAYER2_ROOM || (field_id) == mFI_FIELD_PLAYER3_ROOM)
|
|
|
|
/* Not sure about these other than the island one */
|
|
enum {
|
|
mFI_CLIMATE_0,
|
|
mFI_CLIMATE_ISLAND,
|
|
mFI_CLIMATE_2,
|
|
mFI_CLIMATE_3,
|
|
mFI_CLIMATE_4,
|
|
mFI_CLIMATE_5,
|
|
mFI_CLIMATE_NUM
|
|
};
|
|
|
|
extern mActor_name_t mFI_GetFieldId();
|
|
extern int mFI_GetClimate();
|
|
extern mActor_name_t* mFI_BkNumtoUtFGTop(int block_x, int block_z);
|
|
extern void mFI_ClearDeposit(int block_x, int block_z);
|
|
|
|
extern void mFI_PrintNowBGNum(gfxprint_t* gfxprint);
|
|
extern void mFI_PrintFgAttr(gfxprint_t* gfxprint);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|