Files
ac-decomp/include/ac_my_room.h
T
2023-10-13 06:26:17 -04:00

76 lines
2.9 KiB
C

#ifndef AC_MY_ROOM_H
#define AC_MY_ROOM_H
#include "types.h"
#include "m_actor.h"
#include "ac_furniture.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef struct my_room_actor_s MY_ROOM_ACTOR;
typedef struct my_room_clock_info_s {
int tick0; /* set on frame 15 */
int tick1; /* set on frame 45 */
int tick_stop; /* set on frame 0 */
int frame; /* 0-119 */
} aMR_clock_info_c;
typedef int (*aMR_JUDGE_BREED_NEW_FTR_PROC)(GAME_PLAY* play, u16 ftr_no, int* ut_x, int* ut_z, u16* rotation, int* square_offset, int* layer);
typedef mActor_name_t (*aMR_SEARCH_PICKUP_FURNITURE_PROC)(GAME_PLAY* play);
typedef void (*aMR_FURNITURE2ITEMBAG_PROC)(GAME_PLAY* play);
typedef int (*aMR_JUDGE_PLAYER_ACTION_PROC)(xyz_t* wpos0, xyz_t* wpos1, int ftr_actor_idx);
typedef void (*aMR_PLAYER_MOVE_FURNITURE_PROC)(int ftr_actor_idx, xyz_t* wpos);
typedef int (*aMR_FTR_ID_2_WPOS_PROC)(xyz_t* wpos, int ftr_id);
typedef int (*aMR_UNIT_NUM_2_FTR_ITEMNO_FTRID_PROC)(mActor_name_t* ftr_item_no, int* ftr_id, int ut_x, int ut_z, s16 layer);
typedef void (*aMR_FTR_ID_2_EXTINGUISH_FURNITURE_PROC)(int ftr_id);
typedef void (*aMR_REDMA_FTR_BANK_PROC)();
typedef int (*aMR_RESERVE_FURNITURE_PROC)(GAME_PLAY* play, u16 ftr_no, int judge_res, int ut_x, int ut_z, u16 rotation, int square_offset, int layer);
typedef int (*aMR_COUNT_FRIEND_FURNITURE_PROC)(FTR_ACTOR* ftr_actor, u8 switch_on);
typedef int (*aMR_JUDGE_PLACE_2ND_LAYER_PROC)(int ut_x, int ut_z);
typedef void (*aMR_OPEN_CLOSE_COMMON_MOVE_PROC)(FTR_ACTOR* ftr_actor, ACTOR* actor, GAME* game, f32 start_frame, f32 end_frame);
typedef struct my_room_clip_s {
MY_ROOM_ACTOR* my_room_actor_p;
aMR_JUDGE_BREED_NEW_FTR_PROC judge_breed_new_ftr_proc;
aMR_SEARCH_PICKUP_FURNITURE_PROC search_pickup_ftr_proc;
aMR_FURNITURE2ITEMBAG_PROC ftr2itemBag_proc;
aMR_JUDGE_PLAYER_ACTION_PROC judge_player_action_proc;
aMR_PLAYER_MOVE_FURNITURE_PROC player_move_ftr_proc;
aMR_FTR_ID_2_WPOS_PROC ftrId2wpos_proc;
aMR_UNIT_NUM_2_FTR_ITEMNO_FTRID_PROC unitNum2ftrItemNoftrId_proc;
aMR_FTR_ID_2_EXTINGUISH_FURNITURE_PROC ftrId2extinguishFtr_proc;
aMR_REDMA_FTR_BANK_PROC redma_ftr_bank_proc;
aMR_RESERVE_FURNITURE_PROC reserve_ftr_proc;
aMR_COUNT_FRIEND_FURNITURE_PROC count_friend_ftr_proc;
aMR_JUDGE_PLACE_2ND_LAYER_PROC judge_place_2nd_layer_proc;
aMR_OPEN_CLOSE_COMMON_MOVE_PROC open_close_common_move_proc;
/* TODO: function definitions */
void* get_bed_action_proc;
void* mini_disk_common_move_proc;
void* famicom_emum_common_move_proc;
void* set_leaf_proc;
void* ftr2leaf_proc;
void* leaf_start_pos_proc;
void* pickup_ftr_layer_proc;
void* leaf_pickuped_proc;
void* ftrNo2bankAddress_proc;
void* call_sit_down_ongen_pos_se_proc;
aMR_clock_info_c* clock_info_p; /* used for playing the clock tick? sfx */
void* sound_melody_proc;
void* check_danna_kill_proc;
} aMR_Clip_c;
/* TODO: my room actor */
extern ACTOR_PROFILE My_Room_Profile;
#ifdef __cplusplus
}
#endif
#endif