Implement & link ac_museum_fossil

This commit is contained in:
Cuyler36
2024-02-27 21:03:56 -05:00
parent 94e04f34b6
commit 5877788a8c
5 changed files with 240 additions and 97 deletions
+6 -1
View File
@@ -8,6 +8,12 @@
extern "C" {
#endif
typedef struct museum_fossil_actor_s {
ACTOR actor_class;
s16 target_angle;
int msg_no;
} MUSEUM_FOSSIL_ACTOR;
extern ACTOR_PROFILE Museum_Fossil_Profile;
#ifdef __cplusplus
@@ -15,4 +21,3 @@ extern ACTOR_PROFILE Museum_Fossil_Profile;
#endif
#endif
+95 -95
View File
@@ -9,95 +9,95 @@
#define mRmTp_FTR_UNIT_MAX 4
enum {
mRmTp_FTRSIZE_1x1, /* x */
mRmTp_FTRSIZE_1x2, /* yy OR y */
/* y */
mRmTp_FTRSIZE_2x2, /* zz */
/* zz */
mRmTp_FTRSIZE_NUM
mRmTp_FTRSIZE_1x1, /* x */
mRmTp_FTRSIZE_1x2, /* yy OR y */
/* y */
mRmTp_FTRSIZE_2x2, /* zz */
/* zz */
mRmTp_FTRSIZE_NUM
};
enum birth_type {
mRmTp_BIRTH_TYPE_GRP_A = 0,
mRmTp_BIRTH_TYPE_GRP_B = 1,
mRmTp_BIRTH_TYPE_GRP_C = 2,
mRmTp_BIRTH_TYPE_EVENT = 3,
mRmTp_BIRTH_TYPE_BIRTHDAY = 4,
mRmTp_BIRTH_TYPE_HALLOWEEN = 5,
mRmTp_BIRTH_TYPE_HANIWA = 6,
mRmTp_BIRTH_TYPE_LOTTERY = 7,
mRmTp_BIRTH_TYPE_FTR_CLOTH = 8,
mRmTp_BIRTH_TYPE_FTR_UMBRELLA = 9,
mRmTp_BIRTH_TYPE_FTR_INSECT = 10,
mRmTp_BIRTH_TYPE_FTR_FISH = 11,
mRmTp_BIRTH_TYPE_SINGLE_FOSSIL = 12,
mRmTp_BIRTH_TYPE_MULTI_FOSSIL = 13,
mRmTp_BIRTH_TYPE_XMAS = 14,
mRmTp_BIRTH_TYPE_SANTA = 15,
mRmTp_BIRTH_TYPE_UNOBTAINABLE = 16,
mRmTp_BIRTH_TYPE_SNOWMAN = 17,
mRmTp_BIRTH_TYPE_HALLOWEEN_TRICK = 18,
mRmTp_BIRTH_TYPE_POST_OFFICE = 19,
mRmTp_BIRTH_TYPE_MARK_ROOM = 20,
mRmTp_BIRTH_TYPE_SONCHO = 21,
mRmTp_BIRTH_TYPE_JONASON = 22,
mRmTp_BIRTH_TYPE_UNUSED_23 = 23,
mRmTp_BIRTH_TYPE_FAMICOM_EREADER = 24,
mRmTp_BIRTH_TYPE_ISLAND = 25,
mRmTp_BIRTH_TYPE_FAMICOM_ISLAND = 26,
mRmTp_BIRTH_TYPE_MY_ORIGINAL = 27,
mRmTp_BIRTH_TYPE_FAMICOM_CODE = 28,
mRmTp_BIRTH_TYPE_MUSEUM = 29,
mRmTp_BIRTH_TYPE_SONCHO_LIGHTHOUSE_QUEST = 30,
mRmTp_BIRTH_TYPE_FTR_DIARY = 31,
mRmTp_BIRTH_TYPE_GROUNDHOG = 32,
mRmTp_BIRTH_TYPE_KAMAKURA = 33,
mRmTp_BIRTH_TYPE_NINTENDO_CODE = 34,
mRmTp_BIRTH_TYPE_HARVEST_FESTIVAL = 35,
mRmTp_BIRTH_TYPE_UNUSED_36 = 36,
mRmTp_BIRTH_TYPE_SUMMER_CAMPER = 37,
mRmTp_BIRTH_TYPE_GRP_A = 0,
mRmTp_BIRTH_TYPE_GRP_B = 1,
mRmTp_BIRTH_TYPE_GRP_C = 2,
mRmTp_BIRTH_TYPE_EVENT = 3,
mRmTp_BIRTH_TYPE_BIRTHDAY = 4,
mRmTp_BIRTH_TYPE_HALLOWEEN = 5,
mRmTp_BIRTH_TYPE_HANIWA = 6,
mRmTp_BIRTH_TYPE_LOTTERY = 7,
mRmTp_BIRTH_TYPE_FTR_CLOTH = 8,
mRmTp_BIRTH_TYPE_FTR_UMBRELLA = 9,
mRmTp_BIRTH_TYPE_FTR_INSECT = 10,
mRmTp_BIRTH_TYPE_FTR_FISH = 11,
mRmTp_BIRTH_TYPE_SINGLE_FOSSIL = 12,
mRmTp_BIRTH_TYPE_MULTI_FOSSIL = 13,
mRmTp_BIRTH_TYPE_XMAS = 14,
mRmTp_BIRTH_TYPE_SANTA = 15,
mRmTp_BIRTH_TYPE_UNOBTAINABLE = 16,
mRmTp_BIRTH_TYPE_SNOWMAN = 17,
mRmTp_BIRTH_TYPE_HALLOWEEN_TRICK = 18,
mRmTp_BIRTH_TYPE_POST_OFFICE = 19,
mRmTp_BIRTH_TYPE_MARK_ROOM = 20,
mRmTp_BIRTH_TYPE_SONCHO = 21,
mRmTp_BIRTH_TYPE_JONASON = 22,
mRmTp_BIRTH_TYPE_UNUSED_23 = 23,
mRmTp_BIRTH_TYPE_FAMICOM_EREADER = 24,
mRmTp_BIRTH_TYPE_ISLAND = 25,
mRmTp_BIRTH_TYPE_FAMICOM_ISLAND = 26,
mRmTp_BIRTH_TYPE_MY_ORIGINAL = 27,
mRmTp_BIRTH_TYPE_FAMICOM_CODE = 28,
mRmTp_BIRTH_TYPE_MUSEUM = 29,
mRmTp_BIRTH_TYPE_SONCHO_LIGHTHOUSE_QUEST = 30,
mRmTp_BIRTH_TYPE_FTR_DIARY = 31,
mRmTp_BIRTH_TYPE_GROUNDHOG = 32,
mRmTp_BIRTH_TYPE_KAMAKURA = 33,
mRmTp_BIRTH_TYPE_NINTENDO_CODE = 34,
mRmTp_BIRTH_TYPE_HARVEST_FESTIVAL = 35,
mRmTp_BIRTH_TYPE_UNUSED_36 = 36,
mRmTp_BIRTH_TYPE_SUMMER_CAMPER = 37,
mRmTp_BIRTH_TYPE_NUM
mRmTp_BIRTH_TYPE_NUM
};
enum {
mRmTp_DIRECT_SOUTH,
mRmTp_DIRECT_EAST,
mRmTp_DIRECT_NORTH,
mRmTp_DIRECT_WEST,
mRmTp_DIRECT_SOUTH,
mRmTp_DIRECT_EAST,
mRmTp_DIRECT_NORTH,
mRmTp_DIRECT_WEST,
mRmTp_DIRECT_NUM
mRmTp_DIRECT_NUM
};
enum {
mRmTp_FTR_SE_NONE,
mRmTp_FTR_SE_SOFT_CHAIR,
mRmTp_FTR_SE_HARD_CHAIR,
mRmTp_FTR_SE_BUBU_CHAIR,
mRmTp_FTR_SE_TOILET_CHAIR,
mRmTp_FTR_SE_NONE,
mRmTp_FTR_SE_SOFT_CHAIR,
mRmTp_FTR_SE_HARD_CHAIR,
mRmTp_FTR_SE_BUBU_CHAIR,
mRmTp_FTR_SE_TOILET_CHAIR,
mRmTp_FTR_SE_NUM
mRmTp_FTR_SE_NUM
};
enum {
mRmTp_CHAIR_ACTION_SIT,
mRmTp_CHAIR_ACTION_STAND,
mRmTp_CHAIR_ACTION_SIT,
mRmTp_CHAIR_ACTION_STAND,
mRmTp_CHAIR_ACTION_NUM
mRmTp_CHAIR_ACTION_NUM
};
typedef struct room_type_place_info_one_s {
int exists;
int ut_x;
int ut_z;
int exists;
int ut_x;
int ut_z;
} mRmTp_FtrPlaceInfoOne_t;
#define FTR_NUM 1266
#define FTR_GET_ROTATION(f) ((f) & 3)
#define FTR_GET_ROTATION(f) ((f)&3)
#define FTR_IDX_2_NO(f) ((f) >> 2)
#define FTR_NO_2_IDX(f) ((f) << 2)
#define FTR_NO_ROT_2_IDX(f, rot) (FTR_NO_2_IDX(f) | ((rot) & 3))
#define FTR_NO_ROT_2_IDX(f, rot) (FTR_NO_2_IDX(f) | ((rot)&3))
// TEMPORARY. Should be generated with .decl files
#define ITEM0_NO_START 0x0000
@@ -106,41 +106,41 @@ typedef struct room_type_place_info_one_s {
#define FTR0_NO_START 0x1000
#define ITEM1_NO_START 0x2000
#define ITEM1_0_NO_START ITEM0_1_NO_START // paper
#define ITEM1_1_NO_START ITEM1_NO_START + 0x100 // money
#define ITEM1_2_NO_START ITEM1_NO_START + 0x200 // tools
#define ITEM1_3_NO_START ITEM1_NO_START + 0x300 // fish
#define ITEM1_4_NO_START ITEM1_NO_START + 0x400 // clothing
#define ITEM1_5_NO_START ITEM1_NO_START + 0x500 // etc
#define ITEM1_6_NO_START ITEM1_NO_START + 0x600 // carpets
#define ITEM1_7_NO_START ITEM1_NO_START + 0x700 // wallpaper
#define ITEM1_8_NO_START ITEM1_NO_START + 0x800 // food
#define ITEM1_9_NO_START ITEM1_NO_START + 0x900 // seeds
#define ITEM1_A_NO_START ITEM1_NO_START + 0xA00 // mini disks
#define ITEM1_B_NO_START ITEM1_NO_START + 0xB00 // diaries
#define ITEM1_C_NO_START ITEM1_NO_START + 0xC00 // tickets
#define ITEM1_D_NO_START ITEM1_NO_START + 0xD00 // insects
#define ITEM1_E_NO_START ITEM1_NO_START + 0xE00 // hukubukuro
#define ITEM1_F_NO_START ITEM1_NO_START + 0xF00 // kabu
#define ITEM1_0_NO_START ITEM0_1_NO_START // paper
#define ITEM1_1_NO_START ITEM1_NO_START + 0x100 // money
#define ITEM1_2_NO_START ITEM1_NO_START + 0x200 // tools
#define ITEM1_3_NO_START ITEM1_NO_START + 0x300 // fish
#define ITEM1_4_NO_START ITEM1_NO_START + 0x400 // clothing
#define ITEM1_5_NO_START ITEM1_NO_START + 0x500 // etc
#define ITEM1_6_NO_START ITEM1_NO_START + 0x600 // carpets
#define ITEM1_7_NO_START ITEM1_NO_START + 0x700 // wallpaper
#define ITEM1_8_NO_START ITEM1_NO_START + 0x800 // food
#define ITEM1_9_NO_START ITEM1_NO_START + 0x900 // seeds
#define ITEM1_A_NO_START ITEM1_NO_START + 0xA00 // mini disks
#define ITEM1_B_NO_START ITEM1_NO_START + 0xB00 // diaries
#define ITEM1_C_NO_START ITEM1_NO_START + 0xC00 // tickets
#define ITEM1_D_NO_START ITEM1_NO_START + 0xD00 // insects
#define ITEM1_E_NO_START ITEM1_NO_START + 0xE00 // hukubukuro
#define ITEM1_F_NO_START ITEM1_NO_START + 0xF00 // kabu
#define FTR1_NO_START 0x3000
enum {
mRmTp_LIGHT_SWITCH_HOUSE0_MAIN_UPPER,
mRmTp_LIGHT_SWITCH_HOUSE0_BASEMENT,
mRmTp_LIGHT_SWITCH_HOUSE1_MAIN_UPPER,
mRmTp_LIGHT_SWITCH_HOUSE1_BASEMENT,
mRmTp_LIGHT_SWITCH_HOUSE2_MAIN_UPPER,
mRmTp_LIGHT_SWITCH_HOUSE2_BASEMENT,
mRmTp_LIGHT_SWITCH_HOUSE3_MAIN_UPPER,
mRmTp_LIGHT_SWITCH_HOUSE3_BASEMENT,
mRmTp_LIGHT_SWITCH_COTTAGE_MY,
mRmTp_LIGHT_SWITCH_9,
mRmTp_LIGHT_SWITCH_NPC,
mRmTp_LIGHT_SWITCH_LIGHTHOUSE,
mRmTp_LIGHT_SWITCH_TENT,
mRmTp_LIGHT_SWITCH_HOUSE0_MAIN_UPPER,
mRmTp_LIGHT_SWITCH_HOUSE0_BASEMENT,
mRmTp_LIGHT_SWITCH_HOUSE1_MAIN_UPPER,
mRmTp_LIGHT_SWITCH_HOUSE1_BASEMENT,
mRmTp_LIGHT_SWITCH_HOUSE2_MAIN_UPPER,
mRmTp_LIGHT_SWITCH_HOUSE2_BASEMENT,
mRmTp_LIGHT_SWITCH_HOUSE3_MAIN_UPPER,
mRmTp_LIGHT_SWITCH_HOUSE3_BASEMENT,
mRmTp_LIGHT_SWITCH_COTTAGE_MY,
mRmTp_LIGHT_SWITCH_9,
mRmTp_LIGHT_SWITCH_NPC,
mRmTp_LIGHT_SWITCH_LIGHTHOUSE,
mRmTp_LIGHT_SWITCH_TENT,
mRmTp_LIGHT_SWITCH_NUM
mRmTp_LIGHT_SWITCH_NUM
};
extern int mRmTp_ItemNo2FtrSize(mActor_name_t item_no);
@@ -160,7 +160,7 @@ extern mActor_name_t mRmTp_GetPlayerRoomCollisionIdx(mActor_name_t field_id, mAc
extern int mRmTp_FurnitureIdx2FurnitureKind(int ftr_idx);
extern void mRmTp_CopyWallData(u8* dst, int wall_no);
extern void mRmTp_CopyFloorData(u8* dst, int floor_no);
extern int mRmTp_CheckTalkAble(s16* rot, xyz_t* pos, f32 max_dist, int required_dir, GAME_PLAY* play);
extern int mRmTp_CheckTalkAble(s16* rot, xyz_t* pos, int required_dir, f32 max_dist, GAME_PLAY* play);
extern int mRmTp_CheckWallIsMyOriginalInThisScene();
extern int mRmTp_CheckFloorIsMyOriginalInThisScene();
extern int mRmTp_GetEntranceBasePosition(xyz_t* pos);