mirror of
https://github.com/ACreTeam/ac-decomp
synced 2026-05-23 06:34:18 -04:00
Implement & link m_player_lib
This commit is contained in:
@@ -8,6 +8,19 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
enum {
|
||||
aUKI_STATUS_0,
|
||||
aUKI_STATUS_CARRY,
|
||||
aUKI_STATUS_READY,
|
||||
aUKI_STATUS_CAST,
|
||||
aUKI_STATUS_FLOAT,
|
||||
aUKI_STATUS_VIB,
|
||||
aUKI_STATUS_COMEBACK,
|
||||
aUKI_STATUS_7,
|
||||
|
||||
aUKI_STATUS_NUM
|
||||
};
|
||||
|
||||
typedef void (*aUKI_SET_VALUE_PROC)(ACTOR* actorx, xyz_t pos, xyz_t pos_speed, int param_4, int command);
|
||||
typedef mActor_name_t (*aUKI_GET_FISH_TYPE)(ACTOR* actorx);
|
||||
|
||||
|
||||
+18
-20
@@ -11,32 +11,32 @@ extern "C" {
|
||||
extern int aWeather_ChangingWeather();
|
||||
extern void aWeather_RequestChangeWeatherToIsland();
|
||||
extern void aWeather_RequestChangeWeatherFromIsland();
|
||||
|
||||
|
||||
extern ACTOR_PROFILE Weather_Profile;
|
||||
|
||||
typedef struct ac_weather_priv_s{
|
||||
typedef struct ac_weather_priv_s {
|
||||
xyz_t pos;
|
||||
xyz_t speed;
|
||||
f32 currentY;
|
||||
f32 unk1C;
|
||||
s16 timer;
|
||||
s16 work[5];
|
||||
s16 work[5];
|
||||
u8 use;
|
||||
u8 id;
|
||||
u8 status;
|
||||
}aWeather_Priv;
|
||||
} aWeather_Priv;
|
||||
|
||||
typedef struct weather_actor_s WEATHER_ACTOR;
|
||||
|
||||
typedef void (*CHANGE_WEATHER_PROC)(ACTOR* weather, s16 status, s16 level);
|
||||
typedef int (*GET_WEATHER_PRV_NUM)(ACTOR* weather);
|
||||
typedef void (*REMOVE_WEATHER_PRV)(ACTOR* weather, int id);
|
||||
typedef void (*CHANGE_WEATHER_PROC)(ACTOR* actorx, s16 status, s16 level);
|
||||
typedef int (*GET_WEATHER_PRV_NUM)(ACTOR* actorx);
|
||||
typedef void (*REMOVE_WEATHER_PRV)(ACTOR* actorx, int id);
|
||||
typedef aWeather_Priv* (*GET_WEATHER_PRV)(u8 status, s16 timer, xyz_t* pos, xyz_t* speed, ACTOR* weather, int id);
|
||||
typedef int (*WEATHER_SOUND_EFFECT)();
|
||||
typedef void (*CHANGE_WEATER_INSTANCE_PROC)(WEATHER_ACTOR* weather, s16 status, s16 level);
|
||||
typedef void (*CHANGE_WEATER_INSTANCE_PROC)(ACTOR* actorx, s16 status, s16 level);
|
||||
|
||||
typedef struct ac_weather_clip_s{
|
||||
WEATHER_ACTOR* actor;
|
||||
typedef struct ac_weather_clip_s {
|
||||
ACTOR* actor;
|
||||
CHANGE_WEATHER_PROC change_weather;
|
||||
GET_WEATHER_PRV_NUM get_priv_num;
|
||||
REMOVE_WEATHER_PRV remove_priv;
|
||||
@@ -44,25 +44,24 @@ typedef struct ac_weather_clip_s{
|
||||
WEATHER_SOUND_EFFECT stop_sound;
|
||||
WEATHER_SOUND_EFFECT start_sound;
|
||||
CHANGE_WEATER_INSTANCE_PROC change_weather_instance;
|
||||
}aWeather_Clip_c;
|
||||
} aWeather_Clip_c;
|
||||
|
||||
|
||||
typedef void (*MK_WEATHER_PROC)(ACTOR*,GAME*);
|
||||
typedef void (*MK_WEATHER_PROC)(ACTOR*, GAME*);
|
||||
typedef void (*CT_WEATHER_PROC)(aWeather_Priv*, GAME*);
|
||||
typedef void (*MV_WEATHER_PROC)(aWeather_Priv*, GAME*);
|
||||
typedef void (*MT_WEATHER_PROC)(aWeather_Priv*, GAME*);
|
||||
typedef void (*ST_WEATHER_PROC)(GAME*);
|
||||
typedef void (*DW_WEATHER_PROC)(aWeather_Priv*, GAME*);
|
||||
|
||||
typedef struct ac_weather_profile_s{
|
||||
typedef struct ac_weather_profile_s {
|
||||
MK_WEATHER_PROC make;
|
||||
CT_WEATHER_PROC constructor;
|
||||
MV_WEATHER_PROC move;
|
||||
ST_WEATHER_PROC set;
|
||||
DW_WEATHER_PROC draw;
|
||||
}aWeather_Profile_c;
|
||||
} aWeather_Profile_c;
|
||||
|
||||
struct weather_actor_s{
|
||||
struct weather_actor_s {
|
||||
/* 0x000 */ ACTOR actor_class;
|
||||
/* 0x174 */ aWeather_Profile_c* current_profile;
|
||||
/* 0x178 */ s16 current_status;
|
||||
@@ -74,10 +73,10 @@ struct weather_actor_s{
|
||||
/* 0x184 */ u8* ptr;
|
||||
/* 0x188 */ xyz_t pos;
|
||||
/* 0x194 */ aWeather_Priv* priv;
|
||||
/* 0x198 */ void* t;
|
||||
/* 0x198 */ void* t;
|
||||
/* 0x19C */ u8 request_change;
|
||||
/* 0x19E */ s16 unk19E;
|
||||
/* 0x1A0 */ aWeather_Clip_c clip;
|
||||
/* 0x1A0 */ aWeather_Clip_c clip;
|
||||
/* 0x1C0 */ s16 timer;
|
||||
/* 0x1C2 */ s16 timer2;
|
||||
/* 0x1C4 */ xyz_t wind_info;
|
||||
@@ -90,11 +89,10 @@ struct weather_actor_s{
|
||||
/* 0x1DC */ s16 start_sound_effect;
|
||||
/* 0x1DE */ s16 stop_sound_effect;
|
||||
/* 0x1E0 */ s16 basement_event;
|
||||
};
|
||||
};
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
+10
-10
@@ -9,16 +9,16 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct actor_dlftbl_s {
|
||||
u32 rom_start; // unused in AC
|
||||
u32 rom_end; // unused in AC
|
||||
u8* ram_start; // used only with a check, but never set in AC
|
||||
u8* ram_end; // unused in AC
|
||||
u8* alloc_buf; // used in AC but only on free check and data is never allocated
|
||||
ACTOR_PROFILE* profile; // profile for the actor
|
||||
int unk; // unused in AC
|
||||
u16 flags; // related to memory pinning but functionally useless in AC since alloc_buf is never allocated
|
||||
s8 num_actors; // number of this type of actor that currently exist
|
||||
s8 unk2; // unused in AC
|
||||
/* 0x00 */ u32 rom_start; // unused in AC
|
||||
/* 0x04 */ u32 rom_end; // unused in AC
|
||||
/* 0x08 */ u8* ram_start; // used only with a check, but never set in AC
|
||||
/* 0x0C */ u8* ram_end; // unused in AC
|
||||
/* 0x10 */ u8* alloc_buf; // used in AC but only on free check and data is never allocated
|
||||
/* 0x14 */ ACTOR_PROFILE* profile; // profile for the actor
|
||||
/* 0x18 */ int unk; // unused in AC
|
||||
/* 0x1C */ u16 flags; // related to memory pinning but functionally useless in AC since alloc_buf is never allocated
|
||||
/* 0x1E */ s8 num_actors; // number of this type of actor that currently exist
|
||||
/* 0x1F */ s8 unk2; // unused in AC
|
||||
} ACTOR_DLFTBL;
|
||||
|
||||
extern int actor_dlftbls_num;
|
||||
|
||||
@@ -345,6 +345,15 @@ extern f32 mCoBG_Wpos2BgUtCenterHeight_AddColumn(xyz_t pos);
|
||||
extern f32 mCoBG_UtNum2UtCenterY_Keep(int ut_x, int ut_z);
|
||||
extern int mCoBG_RegistDecalCircle(const xyz_t* pos_p, f32 radius_start, f32 radius_end, s16 timer);
|
||||
|
||||
typedef int (*mCoBG_LINECHECK_PROC)(mActor_name_t);
|
||||
|
||||
#define mCoBG_LINECHECK_CAT_WALL (1 << 0)
|
||||
#define mCoBG_LINECHECK_CAT_GROUND (1 << 1)
|
||||
#define mCoBG_LINECHECK_CAT_WATER (1 << 2)
|
||||
|
||||
extern int mCoBG_LineCheck_RemoveFg(xyz_t* rev_pos, xyz_t start_pos, xyz_t end_pos, mCoBG_LINECHECK_PROC check_proc,
|
||||
int category);
|
||||
|
||||
extern void mCoBG_InitMoveBgData();
|
||||
extern void mCoBG_InitBlockBgCheckMode();
|
||||
extern void mCoBG_InitDecalCircle();
|
||||
|
||||
@@ -241,7 +241,8 @@ typedef struct common_data_s {
|
||||
/* 0x028592 */ s16 demo_profiles[2]; /* demo_profiles[0] is for demo_clip, demo_profiles[1] is for demo_clip2 */
|
||||
/* 0x028596 */ u16 copy_protect_code;
|
||||
/* 0x028598 */ int event_keep_flags[4];
|
||||
/* 0x0285A8 */ u8 _285A8[0x0285BE - 0x0285A8];
|
||||
/* 0x0285A8 */ u8 _285A8[0x0285BD - 0x0285A8];
|
||||
/* 0x0285BD */ s8 player_warp_request;
|
||||
/* 0x0285BE */ s8 player_actor_exists;
|
||||
/* 0x0285BF */ s8 complete_payment_type;
|
||||
/* 0x0285C0 */ s8 player_decoy_flag;
|
||||
@@ -258,8 +259,8 @@ typedef struct common_data_s {
|
||||
/* 0x028839 */ s8 player_bee_chase_flag;
|
||||
/* 0x02883A */ s8 goki_shocked_flag;
|
||||
/* 0x02883B */ u8 time_changed_flag;
|
||||
/* 0x02883C */ u8 unable_to_wade_flag;
|
||||
/* 0x02883D */ u8 fail_emu_flag;
|
||||
/* 0x02883C */ s8 unable_wade;
|
||||
/* 0x02883D */ s8 fail_emu_flag;
|
||||
/* 0x02883E */ u8 train_coming_flag; /* state tracker for when train is going to spawn/has spawned */
|
||||
/* 0x02883F */ u8 train_exists_flag; /* state tracker for when train exists */
|
||||
/* 0x028840 */ u8 train_control_state; /* current train state */
|
||||
|
||||
@@ -350,6 +350,13 @@ enum {
|
||||
mEv_SPECIAL_STATE_NUM
|
||||
};
|
||||
|
||||
enum {
|
||||
mEv_EVENT_MAIL_VT_DAY, /* Valentine's day */
|
||||
mEv_EVENT_MAIL_WT_DAY, /* White day */
|
||||
|
||||
mEv_EVENT_MAIL_NUM
|
||||
};
|
||||
|
||||
#define mEv_STATUS_ACTIVE (1 << 0) /* event is active */
|
||||
#define mEv_STATUS_STOP (1 << 1) /* event is stopped */
|
||||
#define mEv_STATUS_SHOW (1 << 2) /* event is shown */
|
||||
|
||||
@@ -308,7 +308,7 @@ extern int mFI_UnregistMoveActorList(mActor_name_t actor_name, int bx, int bz);
|
||||
extern int mFI_AddMoveActorList(mActor_name_t actor_name, int bx, int bz, int ut_x, int ut_z, s16 arg);
|
||||
extern mFM_move_actor_c* mFI_MoveActorListDma(int bx, int bz);
|
||||
extern void mFI_InitMoveActorBitData();
|
||||
extern void mFI_SetPlayerWade(GAME_PLAY* play);
|
||||
extern void mFI_SetPlayerWade(GAME* game);
|
||||
extern int mFI_CheckPlayerWade(int wade);
|
||||
extern int mFI_GetPlayerWade();
|
||||
extern int mFI_GetNextBlockNum(int* bx, int* bz);
|
||||
|
||||
@@ -497,6 +497,7 @@ extern int mNT_check_unknown(mActor_name_t item_no);
|
||||
(item) >= GOLD_TREE_STUMP001 && (item) <= GOLD_TREE_STUMP004 \
|
||||
)
|
||||
|
||||
#define IS_ITEM_HITTABLE_TREE(item) (IS_ITEM_SMALL_TREE(item) || IS_ITEM_MED_TREE(item) || IS_ITEM_LARGE_TREE(item) || IS_ITEM_FULL_TREE(item))
|
||||
#define IS_ITEM_SHAKEABLE_TREE(item) (IS_ITEM_MED_TREE(item) || IS_ITEM_LARGE_TREE(item) || IS_ITEM_FULL_TREE(item))
|
||||
|
||||
#define IS_ITEM_BEE_TREE(item) ((item) == TREE_BEES || (item) == CEDAR_TREE_BEES || (item) == GOLD_TREE_BEES)
|
||||
|
||||
+164
-155
@@ -23,7 +23,7 @@ extern "C" {
|
||||
#define mNpc_GET_TYPE(npc_id) ((npc_id) & 0xF000)
|
||||
#define mNpc_IS_SPECIAL(npc_id) (mNpc_GET_TYPE(npc_id) == 0xD000)
|
||||
|
||||
#define ANIMAL_NUM_MIN 5
|
||||
#define ANIMAL_NUM_MIN 5
|
||||
#define ANIMAL_NUM_MAX 15 /* Maximum number of villagers possible in town */
|
||||
#define ANIMAL_MEMORY_NUM 7
|
||||
#define ANIMAL_CATCHPHRASE_LEN 10
|
||||
@@ -38,188 +38,194 @@ extern "C" {
|
||||
#define mNpc_ISLANDER_NO ANIMAL_NUM_MAX
|
||||
|
||||
enum {
|
||||
mNpc_MOOD_0,
|
||||
mNpc_MOOD_1,
|
||||
mNpc_MOOD_2,
|
||||
mNpc_MOOD_3,
|
||||
mNpc_MOOD_4,
|
||||
mNpc_MOOD_5,
|
||||
mNpc_MOOD_6,
|
||||
mNpc_MOOD_7,
|
||||
mNpc_MOOD_8,
|
||||
mNpc_MOOD_0,
|
||||
mNpc_MOOD_1,
|
||||
mNpc_MOOD_2,
|
||||
mNpc_MOOD_3,
|
||||
mNpc_MOOD_4,
|
||||
mNpc_MOOD_5,
|
||||
mNpc_MOOD_6,
|
||||
mNpc_MOOD_7,
|
||||
mNpc_MOOD_8,
|
||||
|
||||
mNpc_MOOD_NUM
|
||||
mNpc_MOOD_NUM
|
||||
};
|
||||
|
||||
enum {
|
||||
mNpc_LETTER_RANK_BAD,
|
||||
mNpc_LETTER_RANK_OK,
|
||||
mNpc_LETTER_RANK_BAD,
|
||||
mNpc_LETTER_RANK_OK,
|
||||
|
||||
mNpc_LETTER_RANK_NUM
|
||||
mNpc_LETTER_RANK_NUM
|
||||
};
|
||||
|
||||
enum {
|
||||
mNpc_EVENT_MAIL_VT_DAY, /* valentine's day */
|
||||
mNpc_EVENT_MAIL_WT_DAY, /* white day (JP only) */
|
||||
mNpc_EVENT_MAIL_VT_DAY, /* valentine's day */
|
||||
mNpc_EVENT_MAIL_WT_DAY, /* white day (JP only) */
|
||||
|
||||
mNpc_EVENT_MAIL_NUM
|
||||
mNpc_EVENT_MAIL_NUM
|
||||
};
|
||||
|
||||
enum {
|
||||
mNpc_EVENT_MAIL_BEST_FRIEND,
|
||||
mNpc_EVENT_MAIL_OK_FRIEND,
|
||||
mNpc_EVENT_MAIL_NOT_FRIEND,
|
||||
mNpc_EVENT_MAIL_BEST_FRIEND,
|
||||
mNpc_EVENT_MAIL_OK_FRIEND,
|
||||
mNpc_EVENT_MAIL_NOT_FRIEND,
|
||||
|
||||
mNpc_EVENT_MAIL_FRIEND_NUM
|
||||
mNpc_EVENT_MAIL_FRIEND_NUM
|
||||
};
|
||||
|
||||
enum {
|
||||
mNpc_GROW_STARTER,
|
||||
mNpc_GROW_MOVE_IN,
|
||||
mNpc_GROW_ISLANDER,
|
||||
mNpc_GROW_STARTER,
|
||||
mNpc_GROW_MOVE_IN,
|
||||
mNpc_GROW_ISLANDER,
|
||||
|
||||
mNpc_GROW_NUM
|
||||
mNpc_GROW_NUM
|
||||
};
|
||||
|
||||
enum {
|
||||
mNpc_NAME_TYPE_SPNPC,
|
||||
mNpc_NAME_TYPE_NPC,
|
||||
mNpc_NAME_TYPE_SPNPC,
|
||||
mNpc_NAME_TYPE_NPC,
|
||||
|
||||
mNpc_NAME_TYPE_NUM
|
||||
mNpc_NAME_TYPE_NUM
|
||||
};
|
||||
|
||||
enum {
|
||||
mNpc_FEEL_NORMAL,
|
||||
mNpc_FEEL_HAPPY,
|
||||
mNpc_FEEL_ANGRY,
|
||||
mNpc_FEEL_SAD,
|
||||
mNpc_FEEL_SLEEPY,
|
||||
mNpc_FEEL_PITFALL,
|
||||
mNpc_FEEL_NORMAL,
|
||||
mNpc_FEEL_HAPPY,
|
||||
mNpc_FEEL_ANGRY,
|
||||
mNpc_FEEL_SAD,
|
||||
mNpc_FEEL_SLEEPY,
|
||||
mNpc_FEEL_PITFALL,
|
||||
|
||||
mNpc_FEEL_NUM,
|
||||
mNpc_FEEL_NUM,
|
||||
|
||||
mNpc_FEEL_6 = mNpc_FEEL_NUM,
|
||||
mNpc_FEEL_UZAI_0,
|
||||
mNpc_FEEL_UZAI_1,
|
||||
mNpc_FEEL_6 = mNpc_FEEL_NUM,
|
||||
mNpc_FEEL_UZAI_0,
|
||||
mNpc_FEEL_UZAI_1,
|
||||
|
||||
mNpc_FEEL_ALL_NUM
|
||||
mNpc_FEEL_ALL_NUM
|
||||
};
|
||||
|
||||
enum {
|
||||
mNpc_PATIENCE_MILDLY_ANNOYED,
|
||||
mNpc_PATIENCE_ANNOYED,
|
||||
mNpc_PATIENCE_NORMAL,
|
||||
mNpc_PATIENCE_MILDLY_ANNOYED,
|
||||
mNpc_PATIENCE_ANNOYED,
|
||||
mNpc_PATIENCE_NORMAL,
|
||||
|
||||
mNpc_PATIENCE_NUM
|
||||
mNpc_PATIENCE_NUM
|
||||
};
|
||||
|
||||
/* sizeof(Anmremail_c) == 0x16 */
|
||||
typedef struct animal_remail_s {
|
||||
lbRTC_ymd_c date; /* date sent */
|
||||
u8 name[ANIMAL_NAME_LEN]; /* villager name */
|
||||
u8 land_name[LAND_NAME_SIZE]; /* town name */
|
||||
struct {
|
||||
u8 cond:1; /* was letter good or not */
|
||||
u8 looks:7; /* personality */
|
||||
} flags;
|
||||
lbRTC_ymd_c date; /* date sent */
|
||||
u8 name[ANIMAL_NAME_LEN]; /* villager name */
|
||||
u8 land_name[LAND_NAME_SIZE]; /* town name */
|
||||
struct {
|
||||
u8 cond : 1; /* was letter good or not */
|
||||
u8 looks : 7; /* personality */
|
||||
} flags;
|
||||
} Anmremail_c;
|
||||
|
||||
/* sizeof(Anmplmail_c) == 0x104 */
|
||||
typedef struct animal_player_maiL_s {
|
||||
/* 0x000 */ u8 font; /* 'font' to use for letter info */
|
||||
/* 0x001 */ u8 paper_type;
|
||||
/* 0x002 */ mActor_name_t present;
|
||||
/* 0x004 */ u8 header_back_start; /* position for name insertion in header */
|
||||
/* 0x005 */ u8 header[MAIL_HEADER_LEN];
|
||||
/* 0x01D */ u8 body[MAIL_BODY_LEN];
|
||||
/* 0x0DD */ u8 footer[MAIL_FOOTER_LEN];
|
||||
/* 0x0FD */ u8 pad0; /* likely pad */
|
||||
/* 0x0FE */ lbRTC_ymd_c date; /* sent date */
|
||||
/* 0x000 */ u8 font; /* 'font' to use for letter info */
|
||||
/* 0x001 */ u8 paper_type;
|
||||
/* 0x002 */ mActor_name_t present;
|
||||
/* 0x004 */ u8 header_back_start; /* position for name insertion in header */
|
||||
/* 0x005 */ u8 header[MAIL_HEADER_LEN];
|
||||
/* 0x01D */ u8 body[MAIL_BODY_LEN];
|
||||
/* 0x0DD */ u8 footer[MAIL_FOOTER_LEN];
|
||||
/* 0x0FD */ u8 pad0; /* likely pad */
|
||||
/* 0x0FE */ lbRTC_ymd_c date; /* sent date */
|
||||
} Anmplmail_c;
|
||||
|
||||
/* sizeof(Anmhome_c) == 5 */
|
||||
typedef struct animal_home_s {
|
||||
/* 0x00 */ u8 type_unused; /* Likely the house type, but seems to be unused outside of SChk_Anmhome_c_sub */
|
||||
/* 0x01 */ u8 block_x; /* acre x position */
|
||||
/* 0x02 */ u8 block_z; /* acre y position */
|
||||
/* 0x03 */ u8 ut_x; /* unit x position */
|
||||
/* 0x04 */ u8 ut_z; /* unit z position */
|
||||
/* 0x00 */ u8 type_unused; /* Likely the house type, but seems to be unused outside of SChk_Anmhome_c_sub */
|
||||
/* 0x01 */ u8 block_x; /* acre x position */
|
||||
/* 0x02 */ u8 block_z; /* acre y position */
|
||||
/* 0x03 */ u8 ut_x; /* unit x position */
|
||||
/* 0x04 */ u8 ut_z; /* unit z position */
|
||||
} Anmhome_c;
|
||||
|
||||
/* sizeof(Anmlet_c) == 1 */
|
||||
typedef struct animal_letter_info_s {
|
||||
u8 exists:1; /* letter received by villager and exists */
|
||||
u8 cond:1; /* mNpc_LETTER_RANK_* */
|
||||
u8 send_reply:1; /* set when the villager should reply */
|
||||
u8 has_present_cloth:1; /* set when the villager's held present shirt is from this letter */
|
||||
u8 wearing_present_cloth:1; /* set when a villager is wearing the shirt sent with the saved letter */
|
||||
u8 bit5_7:3; /* seemingly unused */
|
||||
u8 exists : 1; /* letter received by villager and exists */
|
||||
u8 cond : 1; /* mNpc_LETTER_RANK_* */
|
||||
u8 send_reply : 1; /* set when the villager should reply */
|
||||
u8 has_present_cloth : 1; /* set when the villager's held present shirt is from this letter */
|
||||
u8 wearing_present_cloth : 1; /* set when a villager is wearing the shirt sent with the saved letter */
|
||||
u8 bit5_7 : 3; /* seemingly unused */
|
||||
} Anmlet_c;
|
||||
|
||||
/* sizeof(Anmlnd_c) == 0xA */
|
||||
typedef struct animal_land_mem_s {
|
||||
/* 0x00 */ u8 name[LAND_NAME_SIZE];
|
||||
/* 0x08 */ u16 id;
|
||||
/* 0x00 */ u8 name[LAND_NAME_SIZE];
|
||||
/* 0x08 */ u16 id;
|
||||
} Anmlnd_c;
|
||||
|
||||
typedef struct island_animal_best_ftr_s {
|
||||
u32 check;
|
||||
u16 have_bitfield;
|
||||
u32 check;
|
||||
u16 have_bitfield;
|
||||
} Anm_bestFtr_c;
|
||||
|
||||
/* sizeof(memuni_u) == 0xC */
|
||||
typedef union {
|
||||
Anmlnd_c land; /* size = 0xA */
|
||||
Anm_bestFtr_c island; /* size = 6 */
|
||||
Anmlnd_c land; /* size = 0xA */
|
||||
Anm_bestFtr_c island; /* size = 6 */
|
||||
} memuni_u;
|
||||
|
||||
/* sizeof(Anmmem_c) == 0x138 */
|
||||
typedef struct animal_memory_s {
|
||||
/* 0x000 */ PersonalID_c memory_player_id; /* personal id of the player memory belongs to */
|
||||
/* 0x014 */ lbRTC_time_c last_speak_time; /* time the player last spoke to this villager */
|
||||
/* 0x01C */ memuni_u memuni; /* union between town NPC land memory & islander player action memory */
|
||||
/* 0x028 */ u64 saved_town_tune; /* memory origin town tune */
|
||||
/* 0x030 */ s8 friendship; /* friendship with the player */
|
||||
/* 0x031 */ Anmlet_c letter_info; /* saved letter flags */
|
||||
/* 0x032 */ Anmplmail_c letter; /* saved letter */
|
||||
/* 0x000 */ PersonalID_c memory_player_id; /* personal id of the player memory belongs to */
|
||||
/* 0x014 */ lbRTC_time_c last_speak_time; /* time the player last spoke to this villager */
|
||||
/* 0x01C */ memuni_u memuni; /* union between town NPC land memory & islander player action memory */
|
||||
/* 0x028 */ u64 saved_town_tune; /* memory origin town tune */
|
||||
/* 0x030 */ s8 friendship; /* friendship with the player */
|
||||
/* 0x031 */ Anmlet_c letter_info; /* saved letter flags */
|
||||
/* 0x032 */ Anmplmail_c letter; /* saved letter */
|
||||
} Anmmem_c;
|
||||
|
||||
/* sizeof(anmuni) == 8 */
|
||||
typedef union {
|
||||
u8 previous_land_name[LAND_NAME_SIZE];
|
||||
mActor_name_t island_ftr[mNpc_ISLAND_FTR_SAVE_NUM];
|
||||
u8 previous_land_name[LAND_NAME_SIZE];
|
||||
mActor_name_t island_ftr[mNpc_ISLAND_FTR_SAVE_NUM];
|
||||
} anmuni_u;
|
||||
|
||||
/* sizeof(AnmHPMail_c) == 0x1C */
|
||||
typedef struct animal_password_mail_s {
|
||||
/* 0x00 */ lbRTC_time_c receive_time;
|
||||
/* 0x08 */ u8 password[20]; /* TODO: this should not be a hardcoded length */
|
||||
/* 0x00 */ lbRTC_time_c receive_time;
|
||||
/* 0x08 */ u8 password[20]; /* TODO: this should not be a hardcoded length */
|
||||
} AnmHPMail_c;
|
||||
|
||||
/* sizeof(Animal_c) == 0x988 */
|
||||
typedef struct animal_s {
|
||||
/* 0x000 */ AnmPersonalID_c id; /* this villager's ID */
|
||||
/* 0x010 */ Anmmem_c memories[ANIMAL_MEMORY_NUM]; /* memories of players who've spoken to this villager */
|
||||
/* 0x898 */ Anmhome_c home_info; /* home position info */
|
||||
/* 0x89D */ u8 catchphrase[ANIMAL_CATCHPHRASE_LEN]; /* may be called 'word_ending' */
|
||||
/* 0x8A8 */ mQst_contest_c contest_quest; /* current contest quest information */
|
||||
/* 0x8D0 */ u8 parent_name[PLAYER_NAME_LEN]; /* name of the player who 'spawned' the villager in, unsure why this is tracked */
|
||||
/* 0x8D8 */ anmuni_u anmuni; /* name of the last town the villager lived in or saved island ftr */
|
||||
/* 0x8E0 */ u16 previous_land_id; /* id of the previous town the villager lived in */
|
||||
/* 0x8E2 */ u8 mood; /* probably called 'feel' based on code */
|
||||
/* 0x8E3 */ u8 mood_time; /* probably called 'feel_tim' based on code */
|
||||
/* 0x8E4 */ mActor_name_t cloth; /* shirt the villager is wearing */
|
||||
/* 0x8E6 */ u16 remove_info; /* info about villager moving between towns? kinda stubbed */
|
||||
/* 0x8E8 */ u8 is_home; /* TRUE when the villager is home, otherwise FALSE */
|
||||
/* 0x8E9 */ u8 moved_in; /* TRUE when the villager moved in after town creation, FALSE if they started out in town */
|
||||
/* 0x8EA */ u8 removing; /* TRUE when the villager is leaving town, FALSE otherwise */
|
||||
/* 0x8EB */ u8 cloth_original_id; /* 0xFF when not wearing an Able Sister's pattern, otherwise 0-3 indicating which pattern */
|
||||
/* 0x8EC */ s8 umbrella_id; /* 0xFF when no umbrella, 0-31 when a standard umbrella, 32-35 when using an Able Sister's pattern */
|
||||
/* 0x8ED */ u8 unk_8ED; /* Exists according to mISL_gc_to_agb_animal, but seems unused in practice */
|
||||
/* 0x8EE */ mActor_name_t present_cloth; /* The most recently received shirt from a letter which the villager may change into */
|
||||
/* 0x8F0 */ u8 animal_relations[ANIMAL_NUM_MAX]; /* relationships between all villagers in town, starts at 128 which is neutral */
|
||||
/* 0x900 */ AnmHPMail_c hp_mail[ANIMAL_HP_MAIL_NUM]; /* mail password info storage */
|
||||
/* 0x000 */ u8 unused[24]; /* unknown usage/unused */
|
||||
/* 0x000 */ AnmPersonalID_c id; /* this villager's ID */
|
||||
/* 0x010 */ Anmmem_c memories[ANIMAL_MEMORY_NUM]; /* memories of players who've spoken to this villager */
|
||||
/* 0x898 */ Anmhome_c home_info; /* home position info */
|
||||
/* 0x89D */ u8 catchphrase[ANIMAL_CATCHPHRASE_LEN]; /* may be called 'word_ending' */
|
||||
/* 0x8A8 */ mQst_contest_c contest_quest; /* current contest quest information */
|
||||
/* 0x8D0 */ u8
|
||||
parent_name[PLAYER_NAME_LEN]; /* name of the player who 'spawned' the villager in, unsure why this is tracked */
|
||||
/* 0x8D8 */ anmuni_u anmuni; /* name of the last town the villager lived in or saved island ftr */
|
||||
/* 0x8E0 */ u16 previous_land_id; /* id of the previous town the villager lived in */
|
||||
/* 0x8E2 */ u8 mood; /* probably called 'feel' based on code */
|
||||
/* 0x8E3 */ u8 mood_time; /* probably called 'feel_tim' based on code */
|
||||
/* 0x8E4 */ mActor_name_t cloth; /* shirt the villager is wearing */
|
||||
/* 0x8E6 */ u16 remove_info; /* info about villager moving between towns? kinda stubbed */
|
||||
/* 0x8E8 */ u8 is_home; /* TRUE when the villager is home, otherwise FALSE */
|
||||
/* 0x8E9 */ u8
|
||||
moved_in; /* TRUE when the villager moved in after town creation, FALSE if they started out in town */
|
||||
/* 0x8EA */ u8 removing; /* TRUE when the villager is leaving town, FALSE otherwise */
|
||||
/* 0x8EB */ u8
|
||||
cloth_original_id; /* 0xFF when not wearing an Able Sister's pattern, otherwise 0-3 indicating which pattern */
|
||||
/* 0x8EC */ s8 umbrella_id; /* 0xFF when no umbrella, 0-31 when a standard umbrella, 32-35 when using an Able
|
||||
Sister's pattern */
|
||||
/* 0x8ED */ u8 unk_8ED; /* Exists according to mISL_gc_to_agb_animal, but seems unused in practice */
|
||||
/* 0x8EE */ mActor_name_t
|
||||
present_cloth; /* The most recently received shirt from a letter which the villager may change into */
|
||||
/* 0x8F0 */ u8 animal_relations[ANIMAL_NUM_MAX]; /* relationships between all villagers in town, starts at 128 which
|
||||
is neutral */
|
||||
/* 0x900 */ AnmHPMail_c hp_mail[ANIMAL_HP_MAIL_NUM]; /* mail password info storage */
|
||||
/* 0x000 */ u8 unused[24]; /* unknown usage/unused */
|
||||
} Animal_c;
|
||||
|
||||
/*
|
||||
@@ -230,69 +236,69 @@ typedef struct animal_s {
|
||||
|
||||
/* sizeof(Anmret_c) == 0xC */
|
||||
typedef struct animal_return_s {
|
||||
/* 0x00 */ mActor_name_t npc_id; /* id of the villager who left */
|
||||
/* 0x02 */ u8 talk_bit; /* which players have already interacted with this villager */
|
||||
/* 0x03 */ u8 exist; /* if the villager exists */
|
||||
/* 0x04 */ lbRTC_time_c renew_time; /* time that this struct was updated */
|
||||
/* 0x00 */ mActor_name_t npc_id; /* id of the villager who left */
|
||||
/* 0x02 */ u8 talk_bit; /* which players have already interacted with this villager */
|
||||
/* 0x03 */ u8 exist; /* if the villager exists */
|
||||
/* 0x04 */ lbRTC_time_c renew_time; /* time that this struct was updated */
|
||||
} Anmret_c;
|
||||
|
||||
typedef struct demo_npc_s {
|
||||
mActor_name_t npc_name; /* villager id, E0XX */
|
||||
u32 block_x, block_z; /* spawn acre */
|
||||
u32 ut_x, ut_z; /* spawn unit in acre */
|
||||
mActor_name_t npc_name; /* villager id, E0XX */
|
||||
u32 block_x, block_z; /* spawn acre */
|
||||
u32 ut_x, ut_z; /* spawn unit in acre */
|
||||
} mNpc_demo_npc_c;
|
||||
|
||||
typedef struct {
|
||||
u8 type;
|
||||
u8 palette;
|
||||
u8 wall_id;
|
||||
u8 floor_id;
|
||||
mActor_name_t main_layer_id;
|
||||
mActor_name_t secondary_layer_id;
|
||||
u8 type;
|
||||
u8 palette;
|
||||
u8 wall_id;
|
||||
u8 floor_id;
|
||||
mActor_name_t main_layer_id;
|
||||
mActor_name_t secondary_layer_id;
|
||||
} mNpc_NpcHouseData_c;
|
||||
|
||||
typedef struct npc_conversation_s {
|
||||
u8 beesting:1; // talk to player about their beesting
|
||||
u8 fish_complete:1; // talk to the player about catching all fish
|
||||
u8 insect_complete:1; // talk to the player about catching all insects
|
||||
u8 unk:5;
|
||||
u8 beesting : 1; // talk to player about their beesting
|
||||
u8 fish_complete : 1; // talk to the player about catching all fish
|
||||
u8 insect_complete : 1; // talk to the player about catching all insects
|
||||
u8 unk : 5;
|
||||
} mNpc_NpcConversation_c;
|
||||
|
||||
typedef struct npc_list_s {
|
||||
mActor_name_t name;
|
||||
mActor_name_t field_name;
|
||||
xyz_t house_position;
|
||||
xyz_t position;
|
||||
u8 appear_flag;
|
||||
mNpc_NpcConversation_c conversation_flags;
|
||||
mQst_base_c quest_info;
|
||||
mNpc_NpcHouseData_c house_data;
|
||||
mActor_name_t reward_furniture;
|
||||
mActor_name_t name;
|
||||
mActor_name_t field_name;
|
||||
xyz_t house_position;
|
||||
xyz_t position;
|
||||
u8 appear_flag;
|
||||
mNpc_NpcConversation_c conversation_flags;
|
||||
mQst_base_c quest_info;
|
||||
mNpc_NpcHouseData_c house_data;
|
||||
mActor_name_t reward_furniture;
|
||||
} mNpc_NpcList_c;
|
||||
|
||||
typedef struct event_npc_s {
|
||||
mActor_name_t event_id; /* event NPC id */
|
||||
mActor_name_t texture_id; /* real NPC id which is used for texture data */
|
||||
mActor_name_t npc_id; /* non-texture NPC id used for other NPC data */
|
||||
mActor_name_t cloth_id; /* cloth texture id */
|
||||
u8 exists; /* has the actor been spawned yet? */
|
||||
u8 in_use; /* is this event npc structure being used? */
|
||||
u16 _A; /* exists based on size of structure, seems unused */
|
||||
mActor_name_t event_id; /* event NPC id */
|
||||
mActor_name_t texture_id; /* real NPC id which is used for texture data */
|
||||
mActor_name_t npc_id; /* non-texture NPC id used for other NPC data */
|
||||
mActor_name_t cloth_id; /* cloth texture id */
|
||||
u8 exists; /* has the actor been spawned yet? */
|
||||
u8 in_use; /* is this event npc structure being used? */
|
||||
u16 _A; /* exists based on size of structure, seems unused */
|
||||
} mNpc_EventNpc_c;
|
||||
|
||||
typedef struct mask_npc_s {
|
||||
mActor_name_t mask_id; /* 'mask' actor id */
|
||||
mActor_name_t npc_id; /* NPC actor id whose data will be used */
|
||||
mActor_name_t cloth_id; /* cloth actor id */
|
||||
u8 exists; /* has the actor been spawned yet? */
|
||||
u8 in_use; /* is this mask npc structure being used? */
|
||||
Animal_c animal_data; /* animal data is copied if the mask npc is a standard villager NPC */
|
||||
mActor_name_t mask_id; /* 'mask' actor id */
|
||||
mActor_name_t npc_id; /* NPC actor id whose data will be used */
|
||||
mActor_name_t cloth_id; /* cloth actor id */
|
||||
u8 exists; /* has the actor been spawned yet? */
|
||||
u8 in_use; /* is this mask npc structure being used? */
|
||||
Animal_c animal_data; /* animal data is copied if the mask npc is a standard villager NPC */
|
||||
} mNpc_MaskNpc_c;
|
||||
|
||||
typedef struct npc_default_data_s {
|
||||
mActor_name_t cloth;
|
||||
u16 catchphrase_str_idx;
|
||||
s8 umbrella;
|
||||
mActor_name_t cloth;
|
||||
u16 catchphrase_str_idx;
|
||||
s8 umbrella;
|
||||
} mNpc_Default_Data_c;
|
||||
|
||||
extern void mNpc_AddNowNpcMax(u8* npc_max);
|
||||
@@ -340,7 +346,8 @@ extern void mNpc_CopyAnimalInfo(Animal_c* dst, Animal_c* src);
|
||||
extern int mNpc_SearchAnimalinfo(Animal_c* animal, mActor_name_t npc_id, int count);
|
||||
extern Animal_c* mNpc_GetAnimalInfoP(mActor_name_t npc_id);
|
||||
extern int mNpc_SearchAnimalPersonalID(AnmPersonalID_c* anm_pid);
|
||||
extern AnmPersonalID_c* mNpc_GetOtherAnimalPersonalIDOtherBlock(AnmPersonalID_c* exclude_pids, int count, int bx, int bz, int check_flag);
|
||||
extern AnmPersonalID_c* mNpc_GetOtherAnimalPersonalIDOtherBlock(AnmPersonalID_c* exclude_pids, int count, int bx,
|
||||
int bz, int check_flag);
|
||||
extern AnmPersonalID_c* mNpc_GetOtherAnimalPersonalID(AnmPersonalID_c* pids, int count);
|
||||
extern void mNpc_SetAnimalThisLand(Animal_c* animal, int count);
|
||||
extern int mNpc_GetSameLooksNum(u8 looks);
|
||||
@@ -354,7 +361,7 @@ extern int mNpc_SendMailtoNpc(Mail_c* mail);
|
||||
extern void mNpc_ClearRemail(Anmremail_c* remail);
|
||||
extern void mNpc_Remail();
|
||||
extern u8 mNpc_GetPaperType();
|
||||
extern int mNpc_SendVtdayMail();
|
||||
extern int mNpc_SendVtdayMail(int type);
|
||||
extern int mNpc_CheckFriendship(PersonalID_c* pid, Animal_c* animal);
|
||||
extern int mNpc_SendEventBirthdayCard(PersonalID_c* pid);
|
||||
extern int mNpc_SendEventBirthdayCard2(PersonalID_c* pid, int player_no);
|
||||
@@ -366,7 +373,8 @@ extern void mNpc_ChangePresentCloth();
|
||||
extern u8* mNpc_GetWordEnding(ACTOR* actor);
|
||||
extern void mNpc_ResetWordEnding(ACTOR* actor);
|
||||
extern int mNpc_GetFreeEventNpcIdx();
|
||||
extern int mNpc_RegistEventNpc(mActor_name_t event_id, mActor_name_t texture_id, mActor_name_t npc_id, mActor_name_t cloth_id);
|
||||
extern int mNpc_RegistEventNpc(mActor_name_t event_id, mActor_name_t texture_id, mActor_name_t npc_id,
|
||||
mActor_name_t cloth_id);
|
||||
extern void mNpc_UnRegistEventNpc(mNpc_EventNpc_c* npc);
|
||||
extern void mNpc_ClearEventNpc();
|
||||
extern mNpc_EventNpc_c* mNpc_GetSameEventNpc(mActor_name_t event_id);
|
||||
@@ -383,7 +391,8 @@ extern void mNpc_SetAnimalTitleDemo(mNpc_demo_npc_c* demo_npc, Animal_c* animal,
|
||||
extern int mNpc_GetReservedUtNum(int* ut_x, int* ut_z, mActor_name_t* item);
|
||||
extern int mNpc_BlockNum2ReservedUtNum(int* ut_x, int* ut_z, int bx, int bz);
|
||||
extern void mNpc_MakeReservedListBeforeFieldct(Anmhome_c* reserved, int reserved_num, u8* reserved_count);
|
||||
extern void mNpc_MakeReservedListAfterFieldct(Anmhome_c* reserved, int reserved_num, u8* reserved_count, u8 bx_max, u8 bz_max);
|
||||
extern void mNpc_MakeReservedListAfterFieldct(Anmhome_c* reserved, int reserved_num, u8* reserved_count, u8 bx_max,
|
||||
u8 bz_max);
|
||||
extern mNpc_InitNpcData();
|
||||
extern void mNpc_InitNpcList(mNpc_NpcList_c* npclist, int count);
|
||||
extern void mNpc_SetNpcList(mNpc_NpcList_c* npclist, Animal_c* animal, int count, int malloc_flag);
|
||||
|
||||
+40
-9
@@ -775,6 +775,37 @@ enum {
|
||||
mPlayer_GOLDEN_ITEM_TYPE_NUM
|
||||
};
|
||||
|
||||
enum {
|
||||
mPlayer_USE_FACE_ROM_TYPE_TEX,
|
||||
mPlayer_USE_FACE_ROM_TYPE_PAL,
|
||||
|
||||
mPlayer_USE_FACE_ROM_TYPE_NUM
|
||||
};
|
||||
|
||||
enum {
|
||||
mPlayer_EYE_TEX0,
|
||||
mPlayer_EYE_TEX1,
|
||||
mPlayer_EYE_TEX2,
|
||||
mPlayer_EYE_TEX3,
|
||||
mPlayer_EYE_TEX4,
|
||||
mPlayer_EYE_TEX5,
|
||||
mPlayer_EYE_TEX6,
|
||||
mPlayer_EYE_TEX7,
|
||||
|
||||
mPlayer_EYE_TEX_NUM
|
||||
};
|
||||
|
||||
enum {
|
||||
mPlayer_MOUTH_TEX0,
|
||||
mPlayer_MOUTH_TEX1,
|
||||
mPlayer_MOUTH_TEX2,
|
||||
mPlayer_MOUTH_TEX3,
|
||||
mPlayer_MOUTH_TEX4,
|
||||
mPlayer_MOUTH_TEX5,
|
||||
|
||||
mPlayer_MOUTH_TEX_NUM
|
||||
};
|
||||
|
||||
#define mPlayer_SETUP_TEXTURE_ANIMATION_NONE (0 << 0)
|
||||
/* Where is (1 << 0)? */
|
||||
#define mPlayer_SETUP_TEXTURE_ANIMATION_EYE (1 << 1)
|
||||
@@ -1987,10 +2018,10 @@ typedef struct {
|
||||
|
||||
typedef struct controller_data_s {
|
||||
MCON mcon;
|
||||
s8 on;
|
||||
s8 now;
|
||||
s8 unk3A;
|
||||
s8 unk3B;
|
||||
s8 trigger_btn_a;
|
||||
s8 btn_a;
|
||||
s8 trigger_btn_b;
|
||||
s8 btn_b;
|
||||
mActor_name_t equiped_item;
|
||||
} mPlayer_Controller_Data_c;
|
||||
|
||||
@@ -2174,10 +2205,10 @@ struct player_actor_s {
|
||||
/* 0x12D0 */ int (*request_main_demo_standing_train_all_proc)(GAME*, int);
|
||||
/* 0x12D4 */ int (*request_main_stung_bee_all_proc)(GAME*, int);
|
||||
/* 0x12D8 */ int (*request_main_shock_all_proc)(GAME*, f32, s16, s8, int, int);
|
||||
/* 0x12DC */ int (*request_main_change_cloth_forNPC_proc)(GAME*, mActor_name_t, int);
|
||||
/* 0x12DC */ int (*request_main_change_cloth_forNPC_proc)(GAME*, mActor_name_t, u16, int);
|
||||
/* 0x12E0 */ int (*request_main_push_snowball_all_proc)(GAME*, void*, int, int);
|
||||
/* 0x12E4 */ int (*request_main_stung_mosquito_all_proc)(GAME*, int, int);
|
||||
/* 0x12E8 */ int (*request_main_switch_on_lighthouse_all_proc)(GAME*, const xyz_t*, int, int);
|
||||
/* 0x12E4 */ int (*request_main_stung_mosquito_all_proc)(GAME*, void*, int);
|
||||
/* 0x12E8 */ int (*request_main_switch_on_lighthouse_all_proc)(GAME*, const xyz_t*, s16, int);
|
||||
/* 0x12EC */ int (*request_main_demo_geton_boat_all_proc)(GAME*, const xyz_t*, s16, int);
|
||||
/* 0x12F0 */ int (*request_main_demo_getoff_boat_standup_all_proc)(GAME*, const xyz_t*, s16, int);
|
||||
/* 0x12F4 */ int (*request_main_demo_get_golden_item2_all_proc)(GAME*, int, int);
|
||||
@@ -2194,7 +2225,7 @@ struct player_actor_s {
|
||||
/* 0x1320 */ int (*SetParam_for_push_snowball_proc)(GAME*, const xyz_t*, s16, f32);
|
||||
/* 0x1324 */ int (*able_submenu_request_main_index_proc)(GAME*);
|
||||
/* 0x1328 */ int (*check_able_change_camera_normal_index_proc)(ACTOR*);
|
||||
/* 0x132C */ int (*Check_able_force_speak_label_proc)(GAME*, ACTOR*);
|
||||
/* 0x132C */ int (*Check_able_force_speak_label_proc)(GAME*, void*);
|
||||
/* 0x1330 */ int (*check_cancel_request_change_proc_index_proc)(int);
|
||||
/* 0x1334 */ u32 (*Get_item_net_catch_label_proc)(ACTOR*);
|
||||
/* 0x1338 */ int (*Change_item_net_catch_label_proc)(ACTOR*, u32, s8);
|
||||
@@ -2217,7 +2248,7 @@ struct player_actor_s {
|
||||
/* 0x137C */ mActor_name_t (*Get_itemNo_forWindow_proc)(ACTOR*);
|
||||
/* 0x1380 */ int (*check_cancel_event_without_priority_proc)(GAME*);
|
||||
/* 0x1384 */ int (*CheckScene_AbleSubmenu_proc)();
|
||||
/* 0x1388 */ int (*Check_stung_mosquito_proc)(GAME*, ACTOR*);
|
||||
/* 0x1388 */ int (*Check_stung_mosquito_proc)(GAME*, void*);
|
||||
/* 0x138C */ int a_btn_pressed;
|
||||
/* 0x1390 */ int a_btn_triggers_submenu;
|
||||
/* 0x1394 */ mActor_name_t item_in_front; /* item directly in front of the player */
|
||||
|
||||
+163
-104
@@ -10,123 +10,182 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
extern void mPlib_Object_Exchange_keep_Player_dt(GAME_PLAY*);
|
||||
extern PLAYER_ACTOR* get_player_actor_withoutCheck(GAME_PLAY* play);
|
||||
extern mPlayer_Controller_Data_c* mPlib_Get_controller_data_for_title_demo_p();
|
||||
extern void mPlib_SetData1_controller_data_for_title_demo(int btn_a, int btn_b, f32 stick_x, f32 stick_y);
|
||||
extern void mPlib_SetData2_controller_data_for_title_demo(mActor_name_t tool);
|
||||
extern void mPlib_Clear_controller_data_for_title_demo(void);
|
||||
extern void mPlib_request_main_invade_type1(GAME_PLAY* play);
|
||||
extern mActor_name_t mPlib_Get_itemNo_forWindow();
|
||||
extern int mPlib_check_able_change_camera_normal_index(void);
|
||||
extern void mPlib_request_main_refuse_type1(GAME* game);
|
||||
extern void mPlib_request_main_wait_type3(GAME* game);
|
||||
extern void mPlib_Set_able_force_speak_label(ACTOR* actor);
|
||||
extern void mPlib_Reset_able_force_speak_label(void);
|
||||
extern int mPlib_request_main_demo_walk_type1(GAME* game, f32 goal_x, f32 goal_z, f32 speed, int flag);
|
||||
extern void mPlib_Set_goal_player_demo_walk(f32 goal_x, f32 goal_z, f32 speed);
|
||||
extern void mPlib_Set_able_hand_all_item_in_demo(s8 enable);
|
||||
extern void mPlib_change_player_cloth_info_lv2(Private_c* priv, mActor_name_t cloth_name);
|
||||
extern int mPlib_Get_address_able_display(void);
|
||||
extern int mPlib_get_player_actor_main_index(GAME* game);
|
||||
extern int mPlib_check_player_actor_main_index_AllWade(GAME_PLAY* play);
|
||||
extern int mPlib_request_main_demo_wait_type1(GAME* game, int param_2, void* param_3);
|
||||
extern int mPlib_request_main_talk_type1(GAME_PLAY* play, ACTOR* other_actor, int turn, int flag);
|
||||
extern int mPlib_request_main_talk_end_type1(GAME_PLAY* play, int return_demo_wait, int return_get_golden_axe_demo);
|
||||
extern int mPlib_request_main_door_type1(GAME* game, const xyz_t* pos, s16 angle_y, int door_type, void* door_label);
|
||||
extern int mPlib_request_main_door_type2(GAME* game, const xyz_t* pos, s16 angle_y, int door_type, void* door_label);
|
||||
extern int mPlib_strength_request_main_door_priority(GAME* game);
|
||||
extern int mPlib_check_request_main_wade_priority(GAME* game);
|
||||
extern int mPlib_check_request_main_demo_wade_priority(GAME* game);
|
||||
extern int mPlib_check_request_main_demo_geton_boat_wade_priority(GAME* game);
|
||||
extern int mPlib_check_request_main_door_type1_priority(GAME* game);
|
||||
extern int mPlib_check_request_main_door_type2_priority(GAME* game);
|
||||
extern int mPlib_check_request_main_outdoor_priority(GAME* game);
|
||||
extern int mPlib_check_request_main_talk_type1_priority(GAME* game);
|
||||
extern int mPlib_check_request_main_speak_type1_priority(GAME* game);
|
||||
extern int mPlib_Check_able_force_speak_label(GAME* game, ACTOR* label);
|
||||
extern int mPlib_able_submenu_type1(GAME* game);
|
||||
extern void mPlib_request_main_demo_wait_from_submenu(ACTOR* force_speak_label);
|
||||
extern void mPlib_Load_PlayerTexAndPallet(void* tex_p, void* pal_p, int idx);
|
||||
extern void mPlib_request_main_give_from_submenu(mActor_name_t disp_item, int submenu_ovl, int present_flag,
|
||||
int counter_flag);
|
||||
extern int mPlib_Check_tree_shaken_big(const xyz_t* pos);
|
||||
extern int mPlib_Check_tree_shaken_little(const xyz_t* pos);
|
||||
extern int mPlib_request_main_recieve_wait_type1(GAME* game, mActor_name_t item, int counter_flag);
|
||||
extern int mPlib_able_player_warp_forEvent(void);
|
||||
extern int mPlib_Get_unable_wade(void);
|
||||
extern s8 mPlib_Get_ItemNoToItemKind(mActor_name_t);
|
||||
extern void mPlib_Set_boat_angleZ(s16 angleZ);
|
||||
extern int mPlib_Get_end_player_demo_walk(void);
|
||||
extern int mPlib_request_main_demo_geton_boat_type1(f32 goal_x, f32 goal_z, s16 angleY);
|
||||
extern int mPlib_request_main_demo_getoff_boat_standup_type1(const xyz_t* pos, s16 angleY);
|
||||
extern int mPlib_check_player_actor_main_index_RecieveMove(GAME* game);
|
||||
extern int mPlib_check_label_player_demo_wait(GAME* game, void* label);
|
||||
extern int mPlib_check_player_outdoor_start(GAME* game);
|
||||
extern void mPlib_Set_change_color_request(void);
|
||||
extern int mPlib_check_player_open_umbrella(GAME_PLAY* play);
|
||||
extern int mPlib_Check_UKI_COMEBACK_STATUS(void);
|
||||
extern int mPlib_check_player_actor_main_index_OutDoorMove(GAME* game);
|
||||
extern int mPlib_request_main_close_furniture_type1(GAME* game);
|
||||
extern int mPlib_request_main_shock_type1(GAME* game, f32 time, s16 angle_y, int axe_swing);
|
||||
extern int mPlib_request_main_hold_type1(GAME* game, int ftr_no, int player_direct, const xyz_t* player_pos);
|
||||
extern int mPlib_check_player_warp_forEvent(void);
|
||||
extern int mPlib_check_player_actor_main_index_Furniture_Move(GAME* game);
|
||||
extern int mPlib_request_main_sitdown_type1(GAME* game, int direct, const xyz_t* pos, int ftr_no);
|
||||
extern int mPlib_request_main_lie_bed_type1(GAME* game, int direct, const xyz_t* pos, int head_direct, int ftr_no);
|
||||
extern void mPlib_change_player_cloth(GAME* game, int idx);
|
||||
extern u32 mPlib_Get_item_net_catch_label(void);
|
||||
extern int mPlib_Check_stung_mosquito(ACTOR* actorx);
|
||||
extern int mPlib_request_main_stung_mosquito_type1(ACTOR* actorx);
|
||||
extern int mPlib_Check_HitAxe(xyz_t* axe_pos);
|
||||
extern int mPlib_Check_StopNet(xyz_t* net_pos);
|
||||
extern int mPlib_Check_DigScoop(xyz_t* scoop_pos);
|
||||
extern int mPlib_Check_tree_shaken(const xyz_t* pos);
|
||||
extern int mPlib_Check_VibUnit_OneFrame(const xyz_t* pos);
|
||||
extern int mPlib_Get_BasicItemShapeIndex_fromItemKind(int item_kind);
|
||||
extern u8 mPlib_Get_Item_DataPointerType(int idx);
|
||||
extern void* mPlib_Get_Item_DataPointer(int idx);
|
||||
extern int mPlib_Get_BasicPlayerAnimeIndex_fromItemKind(int item_kind);
|
||||
extern cKF_Animation_R_c* mPlib_Get_Pointer_Animation(int anim_idx);
|
||||
extern int mPlib_Get_BasicPlayerAnimeIndex_fromItemKind(int item_kind);
|
||||
extern int mPlib_Get_BasicPartTableIndex_fromAnimeIndex(int anim_idx);
|
||||
extern void* mPlib_Get_Item_DataPointer(int data_kind);
|
||||
extern int mPlib_Get_BasicItemShapeIndex_fromItemKind(int item_kind);
|
||||
extern int mPlib_Get_BasicItemAnimeIndex_fromItemKind(int item_kind);
|
||||
extern void mPlib_DMA_player_Part_Table(s8* part_table_p, int idx);
|
||||
extern u8 mPlib_Get_Item_DataPointerType(int data_idx);
|
||||
extern void mPlib_Object_Exchange_keep_new_PlayerMdl(GAME_PLAY* play);
|
||||
extern u32 mPlib_Get_PlayerTexRom_p(int idx);
|
||||
extern void mPlib_Object_Exchange_keep_new_PlayerTex(GAME_PLAY* play, int bank_idx, int bank);
|
||||
extern u32 mPlib_Get_PlayerPalletRom_p(int idx);
|
||||
extern void mPlib_Object_Exchange_keep_new_PlayerPallet(GAME_PLAY* play, int bank_idx, int bank);
|
||||
extern int mPlib_Check_PlayerClothInAram(int idx);
|
||||
extern void mPlib_Object_Exchange_keep_new_PlayerFaceTex(GAME_PLAY* play);
|
||||
extern void mPlib_Object_Exchange_keep_new_PlayerFacePallet(GAME_PLAY* play, int bank, int bank_idx);
|
||||
extern void mPlib_Object_Exchange_keep_Player_dt(GAME_PLAY* play);
|
||||
extern u8* mPlib_get_player_tex_p(GAME* game);
|
||||
extern u16* mPlib_get_player_pallet_p(GAME* game);
|
||||
extern u8* mPlib_get_player_face_p(GAME* game);
|
||||
extern u16* mPlib_get_player_face_pallet_p(GAME* game);
|
||||
extern void mPlib_change_player_cloth(GAME* game, u16 cloth_idx);
|
||||
extern void mPlib_change_player_face_pallet(GAME* game);
|
||||
extern void mPlib_change_player_face(GAME* game);
|
||||
extern PLAYER_ACTOR* get_player_actor_withoutCheck(GAME_PLAY* play);
|
||||
extern int mPlib_get_player_actor_main_index(GAME* game);
|
||||
extern int mPlib_get_player_actor_request_main_index(GAME* game);
|
||||
extern cKF_Skeleton_R_c* mPlib_get_player_mdl_p(void);
|
||||
extern s16 mPlib_get_player_Object_Bank(void);
|
||||
extern void mPlib_DMA_player_Part_Table(s8* part_table_p, int idx);
|
||||
extern void mPlib_change_player_cloth_info(mPr_cloth_c* cloth_p, mActor_name_t item);
|
||||
extern void mPlib_change_player_cloth_info_lv2(Private_c* priv, mActor_name_t item);
|
||||
extern void mPlib_Load_PlayerTexAndPallet(void* tex_p, void* pal_p, int idx);
|
||||
extern mPlayer_change_data_from_submenu_c* mPlib_Get_change_data_from_submenu_p(void);
|
||||
extern void mPlib_Clear_change_data_from_submenu(void);
|
||||
extern void mPlib_request_main_give_from_submenu(mActor_name_t item, int after_mode, int present_flag,
|
||||
int surface_flag);
|
||||
extern void mPlib_request_main_putin_scoop_from_submenu(const xyz_t* pos_p, mActor_name_t item, int gold_scoop_flag);
|
||||
extern void mPlib_request_main_release_creature_gyoei_from_submenu(s16 angle_y, s16 item, int gold_scoop_flag);
|
||||
extern void mPlib_request_main_release_creature_insect_from_submenu(int insect_type, int gold_scoop_flag);
|
||||
extern s8 mPlib_Get_ItemNoToItemKind(mActor_name_t itemNo);
|
||||
extern int mPlib_Get_ItemKindTOBalloonShapeType(int item_kind);
|
||||
extern void mPlib_request_main_release_creature_balloon_from_submenu(mActor_name_t itemNo, int gold_scoop_flag);
|
||||
extern void mPlib_request_main_wait_from_submenu(void);
|
||||
extern void mPlib_request_main_demo_get_golden_item_from_submenu(void);
|
||||
extern void mPlib_request_main_mail_land_from_submenu(void);
|
||||
extern void mPlib_request_main_demo_wait_from_submenu(ACTOR* speak_actor_p);
|
||||
extern void mPlib_Set_unable_wade(int v);
|
||||
extern int mPlib_Get_unable_wade(void);
|
||||
extern int mPlib_Check_able_force_speak_label(GAME* game, ACTOR* label);
|
||||
extern void mPlib_Set_able_force_speak_label(ACTOR* label);
|
||||
extern void mPlib_Reset_able_force_speak_label(void);
|
||||
extern u8* mPlib_Get_PlayerEyeTexAnimation_p(int anim_idx);
|
||||
extern u8* mPlib_Get_PlayerMouthTexAnimation_p(int anim_idx);
|
||||
extern u8* mPlib_Get_eye_tex_p(int idx);
|
||||
extern u8* mPlib_Get_mouth_tex_p(int idx);
|
||||
extern u8* mPlib_get_player_tex_p(GAME* game);
|
||||
extern u16* mPlib_get_player_pallet_p(GAME* game);
|
||||
extern u16* mPlib_get_player_face_pallet_p(GAME* game);
|
||||
extern int mPlib_Check_scoop_after(GAME* game, xyz_t* pos, mActor_name_t* item, ACTOR** hit_actor, int gold_shovel);
|
||||
extern int mPlib_request_main_demo_standing_train_type1(GAME* game);
|
||||
extern void mPlib_Set_unable_wade(int unable);
|
||||
extern int mPlib_request_main_invade_type1(GAME* game);
|
||||
extern int mPlib_request_main_refuse_type1(GAME* game);
|
||||
extern int mPlib_request_main_wait_type3(GAME* game);
|
||||
extern int mPlib_request_main_demo_get_golden_item2_type1(GAME* game, int golden_item_type);
|
||||
extern int mPlib_request_main_talk_end_type1(GAME* game, int wait_demo, int demo_get_golden_axe);
|
||||
extern int mPlib_request_main_talk_type1(GAME* game, ACTOR* talk_actor_p, int turn_flag, int umbrella_flag);
|
||||
extern int mPlib_request_main_hold_type1(GAME* game, int ftr_no, int player_direct, const xyz_t* player_pos_p);
|
||||
extern int mPlib_request_main_recieve_wait_type1(GAME* game, mActor_name_t item, int counter_flag);
|
||||
extern int mPlib_request_main_give_type1(GAME* game, mActor_name_t item, int mode, int present, int on_surface);
|
||||
extern int mPlib_request_main_sitdown_type1(GAME* game, int direct, const xyz_t* pos_p, int ftr_no);
|
||||
extern int mPlib_request_main_close_furniture_type1(GAME* game);
|
||||
extern int mPlib_request_main_lie_bed_type1(GAME* game, int direct, const xyz_t* pos_p, int head_direct, int ftr_no);
|
||||
extern int mPlib_request_main_hide_type1(GAME* game);
|
||||
extern int mPlib_request_main_groundhog_type1(GAME* game);
|
||||
extern int mPlib_request_main_door_type1(GAME* game, const xyz_t* pos_p, s16 angle_y, int door_type, void* door_label);
|
||||
extern int mPlib_request_main_door_type2(GAME* game, const xyz_t* pos_p, s16 angle_y, int door_type, void* door_label);
|
||||
extern int mPlib_request_main_outdoor_type1(GAME* game, int is_start_demo, int door_type);
|
||||
extern int mPlib_request_main_wash_car_type1(GAME* game, const xyz_t* car_pos_p, const xyz_t* ret_pos_p,
|
||||
s16 ret_angle_y, ACTOR* ctrl_actor_p);
|
||||
extern int mPlib_request_main_rotate_octagon_type1(GAME* game, const xyz_t* pos_p, s16 angle_y);
|
||||
extern int mPlib_request_main_throw_money_type1(GAME* game, const xyz_t* pos_p, s16 angle_y);
|
||||
extern int mPlib_request_main_pray_type1(GAME* game, const xyz_t* pos_p, s16 angle_y);
|
||||
extern int mPlib_request_main_mail_jump_type1(GAME* game, const xyz_t* pos_p, s16 angle_y);
|
||||
extern int mPlib_request_main_stung_bee_type1(GAME* game);
|
||||
extern int mPlib_request_main_stung_mosquito_type1(void* label);
|
||||
extern int mPlib_request_main_switch_on_lighthouse_type1(GAME* game, const xyz_t* pos_p, s16 angle_y);
|
||||
extern int mPlib_request_main_demo_geton_boat_type1(f32 goal_x, f32 goal_z, s16 angleY);
|
||||
extern int mPlib_request_main_demo_getoff_boat_standup_type1(const xyz_t* pos_p, s16 angleY);
|
||||
extern int mPlib_request_main_shock_type1(GAME* game, f32 time, s16 angle_y, int axe_swing);
|
||||
extern int mPlib_request_main_change_cloth_forNPC_type1(GAME* game, mActor_name_t cloth_item, u16 cloth_idx,
|
||||
int try_on_flag);
|
||||
extern int mPlib_request_main_push_snowball_type1(GAME* game, void* label);
|
||||
extern int mPlib_request_main_push_snowball_end_type1(GAME* game);
|
||||
extern int mPlib_request_main_demo_wait_type1(GAME* game, int umbrella_flag, void* label);
|
||||
extern int mPlib_request_main_demo_walk_type1(GAME* game, f32 goal_x, f32 goal_z, f32 speed, int wait_flag);
|
||||
extern int mPlib_request_main_demo_geton_train_type1(GAME* game, const xyz_t* pos_p);
|
||||
extern int mPlib_request_main_demo_getoff_train_type1(GAME* game);
|
||||
extern int mPlib_check_player_actor_main_index_OutDoorMove2(GAME* game);
|
||||
extern int mPlib_Check_SetOrderSubmenu(void);
|
||||
extern void mPlib_Clear_change_data_from_submenu(void);
|
||||
extern int mPlib_request_main_demo_standing_train_type1(GAME* game);
|
||||
extern int mPlib_check_request_main_talk_type1_priority(GAME* game);
|
||||
extern int mPlib_check_request_main_speak_type1_priority(GAME* game);
|
||||
extern int mPlib_check_request_main_door_type1_priority(GAME* game);
|
||||
extern int mPlib_check_request_main_door_type2_priority(GAME* game);
|
||||
extern int mPlib_check_request_main_wade_priority(GAME* game);
|
||||
extern int mPlib_check_request_main_demo_wade_priority(GAME* game);
|
||||
extern int mPlib_check_request_main_demo_geton_boat_wade_priority(GAME* game);
|
||||
extern int mPlib_strength_request_main_wade_priority(GAME* game);
|
||||
extern int mPlib_strength_request_main_demo_wade_priority(GAME* game);
|
||||
extern int mPlib_strength_request_main_demo_geton_boat_wade_priority(GAME* game);
|
||||
extern int mPlib_strength_request_main_wade_snowball_priority(GAME* game);
|
||||
extern void mPlib_change_player_face(GAME* game);
|
||||
extern void mPlib_change_player_cloth_info(mPr_cloth_c* cloth_p, mActor_name_t cloth_item);
|
||||
extern int mPlib_Get_status_for_bee(void);
|
||||
extern int mPlib_request_main_demo_get_golden_item2_type1(GAME* game, int golden_item_type);
|
||||
extern void mPlib_Get_goal_player_demo_walk(f32* goal_pos_x, f32* goal_pos_z, f32* speed);
|
||||
extern int mPlib_strength_request_main_demo_geton_boat_wade_priority(GAME* game);
|
||||
extern int mPlib_strength_request_main_door_priority(GAME* game);
|
||||
extern int mPlib_check_request_main_outdoor_priority(GAME* game);
|
||||
extern int mPlib_Check_SetOrderSubmenu(void);
|
||||
extern int mPlib_able_submenu_type1(GAME* game);
|
||||
extern int mPlib_check_player_open_umbrella(GAME* game);
|
||||
extern int mPlib_check_player_outdoor_start(GAME* game);
|
||||
extern int mPlib_check_label_player_demo_wait(GAME* game, void* label);
|
||||
extern void mPlib_Set_goal_player_demo_walk(f32 pos_x, f32 pos_z, f32 speed);
|
||||
extern void mPlib_Get_goal_player_demo_walk(f32* pos_x_p, f32* pos_z_p, f32* speed_p);
|
||||
extern void mPlib_Set_continue_player_after_demo_walk(int value);
|
||||
extern int mPlib_Get_continue_player_after_demo_walk(void);
|
||||
extern void mPlib_Set_continue_player_after_demo_walk(int wait_flag);
|
||||
extern void mPlib_Set_end_player_demo_walk(int end_flag);
|
||||
|
||||
extern mPlayer_change_data_from_submenu_c* mPlib_Get_change_data_from_submenu_p(void);
|
||||
|
||||
extern void mPlib_Object_Exchange_keep_new_PlayerMdl(GAME_PLAY* play);
|
||||
extern void mPlib_Object_Exchange_keep_new_PlayerTex(GAME_PLAY* play, int bank_id, int base_idx);
|
||||
extern void mPlib_Object_Exchange_keep_new_PlayerFaceTex(GAME_PLAY* play);
|
||||
extern void mPlib_Object_Exchange_keep_new_PlayerFacePallet(GAME_PLAY* play, int bank_id, int base_idx);
|
||||
extern void mPlib_Object_Exchange_keep_new_PlayerPallet(GAME_PLAY* play, int bank_id, int base_idx);
|
||||
extern void mPlib_request_main_give_type1(GAME* game, mActor_name_t item, int mode, int present, int on_surface);
|
||||
extern void mPlib_Set_end_player_demo_walk(int value);
|
||||
extern int mPlib_Get_end_player_demo_walk(void);
|
||||
extern int mPlib_Get_space_putin_item(void);
|
||||
extern int mPlib_Get_space_putin_item_forTICKET(mActor_name_t* item_p);
|
||||
extern int mPlib_Get_space_putin_item_forHITODAMA(mActor_name_t* item_p);
|
||||
extern int mPlib_able_player_warp_forEvent(void);
|
||||
extern int mPlib_request_player_warp_forEvent(void);
|
||||
extern int mPlib_cancel_player_warp_forEvent(void);
|
||||
extern int mPlib_check_player_warp_forEvent(void);
|
||||
extern int mPlib_Check_HitAxe(xyz_t* pos_p);
|
||||
extern int mPlib_Check_VibUnit_OneFrame(const xyz_t* pos_p);
|
||||
extern int mPlib_Check_StopNet(xyz_t* pos_p);
|
||||
extern u32 mPlib_Get_item_net_catch_label(void);
|
||||
extern int mPlib_Change_item_net_catch_label(u32 label, s8 type);
|
||||
extern int mPlib_Check_HitScoop(xyz_t* pos_p);
|
||||
extern int mPlib_Check_DigScoop(xyz_t* pos_p);
|
||||
extern int mPlib_Get_address_able_display(void);
|
||||
extern int mPlib_Check_scoop_after(GAME* game, xyz_t* pos_p, mActor_name_t* item_p, ACTOR** reflect_actor_pp,
|
||||
int gold_scoop);
|
||||
extern int mPlib_Check_scene_able_change_camera_pos(void);
|
||||
extern int mPlib_Check_RotateOctagon(void);
|
||||
extern int mPlib_Set_EndWashCar(void);
|
||||
extern int mPlib_Set_AnimeSpeedWashCar(f32 anime_speed);
|
||||
extern int mPlib_Check_now_handin_item_kind(void);
|
||||
extern int mPlib_Check_now_handin_item(void);
|
||||
extern void mPlib_Set_able_hand_all_item_in_demo(s8 v);
|
||||
extern int mPlib_Get_status_for_bee(void);
|
||||
extern int mPlib_Check_end_stung_bee(void);
|
||||
extern int mPlib_Check_Label_main_push_snowball(void* label);
|
||||
extern int mPlib_Check_Label_main_wade_snowball(void* label);
|
||||
extern int mPlib_Set_ScrollDemo_forWade_snowball(int dir, const xyz_t* snowball_dist_p);
|
||||
extern int mPlib_GetSnowballPos_forWadeSnowball(xyz_t* pos_p);
|
||||
extern int mPlib_CheckCondition_forWadeSnowball(const xyz_t* pos_p, s16 angle_y);
|
||||
extern int mPlib_SetParam_for_push_snowball(const xyz_t* pos_p, s16 angle_y, f32 anim_speed);
|
||||
extern void mPlib_Set_crash_snowball_for_wade(int v);
|
||||
extern mPlayer_Controller_Data_c* mPlib_Get_controller_data_for_title_demo_p(void);
|
||||
extern void mPlib_Clear_controller_data_for_title_demo(void);
|
||||
extern void mPlib_SetData1_controller_data_for_title_demo(int btn_a, int btn_b, f32 stick_x, f32 stick_y);
|
||||
extern void mPlib_SetData2_controller_data_for_title_demo(mActor_name_t item);
|
||||
extern int mPlib_Check_CorrectPlayerPos_forEvent(void);
|
||||
extern int mPlib_Check_UKI_COMEBACK_STATUS(void);
|
||||
extern int mPlib_Check_tree_shaken(const xyz_t* pos_p);
|
||||
extern int mPlib_Check_tree_shaken_little(const xyz_t* pos_p);
|
||||
extern int mPlib_Check_tree_shaken_big(const xyz_t* pos_p);
|
||||
extern mActor_name_t mPlib_Get_itemNo_forWindow(void);
|
||||
extern int mPlib_able_birth_bee(void);
|
||||
extern int mPlib_check_able_change_camera_normal_index(void);
|
||||
extern int mPlib_check_player_actor_main_index_Furniture_Move(GAME* game);
|
||||
extern int mPlib_check_player_actor_main_index_RecieveMove(GAME* game);
|
||||
extern int mPlib_check_player_actor_main_index_Pitfall(GAME* game);
|
||||
extern int mPlib_check_player_actor_main_index_OutDoorMove(GAME* game);
|
||||
extern int mPlib_check_player_actor_main_index_OutDoorMove2(GAME* game);
|
||||
extern int mPlib_check_player_actor_main_index_AllWade(GAME* game);
|
||||
extern int mPlib_check_player_actor_main_index_catch_insect(GAME* game);
|
||||
extern int mPlib_check_player_actor_main_index_catch_fish(GAME* game);
|
||||
extern int mPlib_check_player_actor_start_switch_on_lighthouse(GAME* game);
|
||||
extern int mPlib_Check_stung_mosquito(void* label);
|
||||
extern void mPlib_Set_boat_angleZ(s16 angle_z);
|
||||
extern int mPlib_CheckButtonOnly_forDush(void);
|
||||
extern int mPlib_Check_golden_item_get_demo_end(int gold_item_type);
|
||||
extern void mPlib_Set_change_color_request(void);
|
||||
|
||||
#define GET_PLAYER_ACTOR(play) get_player_actor_withoutCheck(play)
|
||||
#define GET_PLAYER_ACTOR_NOW() get_player_actor_withoutCheck((GAME_PLAY*)gamePT)
|
||||
|
||||
@@ -87,6 +87,8 @@ enum {
|
||||
#define mPr_ORIGINAL_DESIGN_COUNT 8
|
||||
#define mPr_RADIOCARD_MAX_DAYS 13
|
||||
|
||||
#define mPr_ORIGINAL_DESIGN_IDX_VALID(idx) ((idx) >= 0 && (idx) < mPr_ORIGINAL_DESIGN_COUNT)
|
||||
|
||||
#define mPr_GET_ITEM_COND(all_cond, slot_no) (((all_cond) >> (((u32)(slot_no)) << 1)) & mPr_ITEM_COND_NUM)
|
||||
#define mPr_SET_ITEM_COND(all_cond, slot_no, cond) \
|
||||
(((all_cond) & ~((u32)mPr_ITEM_COND_NUM << ((u32)(slot_no) << 1))) | ((u32)(cond) << ((u32)(slot_no) << 1)))
|
||||
|
||||
Reference in New Issue
Block a user