mirror of
https://github.com/ACreTeam/ac-decomp
synced 2026-05-23 06:34:18 -04:00
Implement & link m_field_info.c
This commit is contained in:
@@ -85,6 +85,11 @@ m_field_make.c:
|
||||
.rodata: [0x80641FE0, 0x80642008]
|
||||
.data: [0x80653620, 0x80653E28]
|
||||
.bss: [0x812957A0, 0x81295A88]
|
||||
m_field_info.c:
|
||||
.text: [0x803A4D68, 0x803AB698]
|
||||
.rodata: [0x80642008, 0x80642068]
|
||||
.data: [0x80653E28, 0x80654180]
|
||||
.bss: [0x81295A88, 0x81295BD0]
|
||||
m_fishrecord.c:
|
||||
.text: [0x803AB698, 0x803AC5C8]
|
||||
.rodata: [0x80642068, 0x80642080]
|
||||
|
||||
@@ -8,6 +8,8 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define mCoBG_HEIGHT_MAX 31
|
||||
|
||||
enum field_layer {
|
||||
mCoBG_LAYER0,
|
||||
mCoBG_LAYER1,
|
||||
@@ -66,8 +68,8 @@ typedef struct collision_bg_data_s {
|
||||
|
||||
/* sizeof (mCoBG_Collision_u) == 4 */
|
||||
typedef union collision_bg_u {
|
||||
u32 raw;
|
||||
mCoBG_CollisionData_c data;
|
||||
u32 raw;
|
||||
} mCoBG_Collision_u;
|
||||
|
||||
typedef struct collision_bg_check_result_s {
|
||||
@@ -120,6 +122,12 @@ extern u32 mCoBG_UtNum2BgAttr(int ut_x, int ut_z);
|
||||
extern f32 mCoBG_UtNum2UtCenterY(int ut_x, int ut_z);
|
||||
extern int mCoBG_CheckCliffAttr(u32 attribute);
|
||||
extern int mCoBG_Change2PoorAttr(mCoBG_Collision_u* col);
|
||||
extern int mCoBG_CheckHole(xyz_t wpos);
|
||||
extern int mCoBG_CheckSkySwing(xyz_t wpos);
|
||||
extern void mCoBG_Ut2SetDefaultOffset(int ut_x, int ut_z);
|
||||
extern int mCoBG_CheckWaveAttr(u32 attribute);
|
||||
extern int mCoBG_CheckPlant(xyz_t wpos);
|
||||
extern void mCoBG_InitBoatCollision();
|
||||
|
||||
extern void mCoBG_InitMoveBgData();
|
||||
extern void mCoBG_InitBlockBgCheckMode();
|
||||
|
||||
@@ -209,10 +209,13 @@ typedef struct common_data_s {
|
||||
/* 0x02852E */ s16 goods_power;
|
||||
/* 0x028530 */ Door_data_c door_data; /* misc door data */
|
||||
/* 0x028544 */ Door_data_c structure_exit_door_data; /* door data for when exiting a building */
|
||||
/* 0x028558 */ u8 tmp1[0x028591 - 0x028558];
|
||||
/* 0x028558 */ u8 tmp1[0x028590 - 0x028558];
|
||||
/* 0x028590 */ u8 remove_cut_tree_info_bitfield; /* resets the cut tree states for trees in a visible acre */
|
||||
/* 0x028591 */ u8 floor_idx;
|
||||
/* 0x028592 */ s16 demo_profiles[mDemo_CLIP_TYPE_NUM - 1];
|
||||
/* 0x028596 */ u8 _28596[0x285C0 - 0x28596];
|
||||
/* 0x028596 */ u8 _28596[0x285BE - 0x28596];
|
||||
/* 0x0285BE */ s8 player_actor_exists;
|
||||
/* 0x0285BF */ s8 payment_completed_type;
|
||||
/* 0x0285C0 */ s8 player_decoy_flag;
|
||||
/* 0x0285C1 */ u8 _285C1;
|
||||
/* 0x0285C2 */ u8 make_npc2_actor;
|
||||
|
||||
+209
-58
@@ -21,13 +21,19 @@ extern "C" {
|
||||
#define mFI_UT_WORLDSIZE_HALF_X_F (mFI_UT_WORLDSIZE_X_F / 2.0f)
|
||||
#define mFI_UT_WORLDSIZE_HALF_Z_F (mFI_UT_WORLDSIZE_X_F / 2.0f)
|
||||
|
||||
#define mFI_BK_WORLDSIZE_X (mFI_UT_WORLDSIZE_X * UT_X_NUM)
|
||||
#define mFI_BK_WORLDSIZE_Z (mFI_UT_WORLDSIZE_Z * UT_Z_NUM)
|
||||
|
||||
#define mFI_BK_WORLDSIZE_X_F (mFI_UT_WORLDSIZE_X_F * UT_X_NUM)
|
||||
#define mFI_BK_WORLDSIZE_Z_F (mFI_UT_WORLDSIZE_Z_F * UT_Z_NUM)
|
||||
|
||||
#define mFI_ROW_TO_CHARSTR(row) ((row) + 'A')
|
||||
#define mFI_COL_TO_CHARSTR(col) ((col) + '0')
|
||||
|
||||
#define mFI_NUM_COL_KEEP 9
|
||||
#define mFI_NUM_SOUND_SOURCES 6
|
||||
#define mFI_SET_SHELL_NUM 20
|
||||
#define mFI_MAX_SHELLS_PER_BLOCK 4
|
||||
|
||||
enum field_type {
|
||||
mFI_FIELDTYPE_FG,
|
||||
@@ -59,8 +65,32 @@ enum field_room {
|
||||
mFI_FIELD_FG = mFI_TO_FIELD_ID(mFI_FIELDTYPE_FG, 0),
|
||||
|
||||
mFI_FIELD_ROOM0 = mFI_TO_FIELD_ID(mFI_FIELDTYPE_ROOM, 0),
|
||||
mFI_FIELD_ROOM_SHOP0, /* 0x3001 */
|
||||
mFI_FIELD_ROOM_BROKER_SHOP, /* 0x3002 */
|
||||
mFI_FIELD_ROOM_POST_OFFICE, /* 0x3003 */
|
||||
mFI_FIELD_ROOM_POLICE_BOX, /* 0x3004 */
|
||||
mFI_FIELD_ROOM_BUGGY, /* 0x3005 */
|
||||
mFI_FIELD_ROOM_SHOP1, /* 0x3006 */
|
||||
mFI_FIELD_ROOM_SHOP2, /* 0x3007 */
|
||||
mFI_FIELD_ROOM_SHOP3_1, /* 0x3008 */
|
||||
mFI_FIELD_ROOM_SHOP3_2, /* 0x3009 */
|
||||
mFI_FIELD_ROOM_KAMAKURA, /* 0x300A */
|
||||
mFI_FIELD_ROOM_MUSEUM_ENTRANCE, /* 0x300B */
|
||||
mFI_FIELD_ROOM_MUSEUM_PAINTING, /* 0x300C */
|
||||
mFI_FIELD_ROOM_MUSEUM_FOSSIL, /* 0x300D */
|
||||
mFI_FIELD_ROOM_MUSEUM_INSECT, /* 0x300E */
|
||||
mFI_FIELD_ROOM_MUSEUM_FISH, /* 0x300F */
|
||||
mFI_FIELD_ROOM_NEEDLEWORK, /* 0x3010 */
|
||||
mFI_FIELD_ROOM_LIGHTHOUSE, /* 0x3011 */
|
||||
mFI_FIELD_ROOM_TENT, /* 0x3012 */
|
||||
|
||||
mFI_FIELD_NPCROOM0 = mFI_TO_FIELD_ID(mFI_FIELDTYPE_NPC_ROOM, 0),
|
||||
mFI_FIELD_NPCROOM_FIELD_TOOL_INSIDE,
|
||||
|
||||
mFI_FIELD_DEMO_STARTDEMO = mFI_TO_FIELD_ID(mFI_FIELDTYPE_DEMO, 0),
|
||||
mFI_FIELD_DEMO_STARTDEMO2,
|
||||
mFI_FIELD_DEMO_PLAYERSELECT,
|
||||
mFI_FIELD_DEMO_STARTDEMO3,
|
||||
|
||||
mFI_FIELD_PLAYER0_ROOM = mFI_TO_FIELD_ID(mFI_FIELDTYPE_PLAYER_ROOM, 0),
|
||||
mFI_FIELD_PLAYER1_ROOM,
|
||||
@@ -80,7 +110,28 @@ enum player_wade_state {
|
||||
mFI_WADE_NONE,
|
||||
mFI_WADE_START,
|
||||
mFI_WADE_INPROGRESS,
|
||||
mFI_WADE_END
|
||||
mFI_WADE_END,
|
||||
mFI_WADE_ERROR,
|
||||
|
||||
mFI_WADE_NUM
|
||||
};
|
||||
|
||||
enum {
|
||||
mFI_DEPOSIT_ON,
|
||||
mFI_DEPOSIT_OFF,
|
||||
mFI_DEPOSIT_GET,
|
||||
|
||||
mFI_DEPOSIT_NUM
|
||||
};
|
||||
|
||||
enum {
|
||||
mFI_MOVEDIR_NONE,
|
||||
mFI_MOVEDIR_RIGHT,
|
||||
mFI_MOVEDIR_LEFT,
|
||||
mFI_MOVEDIR_UP,
|
||||
mFI_MOVEDIR_DOWN,
|
||||
|
||||
mFI_MOVEDIR_NUM
|
||||
};
|
||||
|
||||
/* Not sure about these other than the island one */
|
||||
@@ -94,6 +145,24 @@ enum {
|
||||
mFI_CLIMATE_NUM
|
||||
};
|
||||
|
||||
enum {
|
||||
mFI_DIGSTATUS_MISS,
|
||||
mFI_DIGSTATUS_CANCEL,
|
||||
mFI_DIGSTATUS_FILLIN,
|
||||
mFI_DIGSTATUS_DIG,
|
||||
mFI_DIGSTATUS_PUT_ITEM,
|
||||
mFI_DIGSTATUS_GET_ITEM,
|
||||
|
||||
mFI_DIGSTATUS_NUM
|
||||
};
|
||||
|
||||
enum {
|
||||
mFI_SET_STRUCTURE_SET,
|
||||
mFI_SET_STRUCTURE_REMOVE,
|
||||
|
||||
mFI_SET_STRUCTURE_NUM
|
||||
};
|
||||
|
||||
/* sizeof(mFI_unit_c) == 0x14 */
|
||||
typedef struct location_info_s {
|
||||
/* 0x00 */ int block_x;
|
||||
@@ -113,76 +182,158 @@ typedef struct block_table_s {
|
||||
mActor_name_t* items;
|
||||
} mFI_block_tbl_c;
|
||||
|
||||
typedef struct visible_block_item_info_s {
|
||||
int count;
|
||||
mFI_block_tbl_c block_info_tbl[mFM_VISIBLE_BLOCK_NUM];
|
||||
} mFI_item_table_c;
|
||||
|
||||
enum {
|
||||
mFI_SOUND_SOURCE_POND = 3, // TODO: might not be correct name
|
||||
};
|
||||
|
||||
typedef struct sound_source_info_s {
|
||||
s16 kind;
|
||||
xyz_t wpos;
|
||||
} mFI_sound_source_info_c;
|
||||
|
||||
|
||||
|
||||
extern void mFI_ClearFieldData();
|
||||
extern int mFI_CheckFieldData();
|
||||
extern mFM_block_info_c* mFI_GetBlockTopP();
|
||||
extern mActor_name_t mFI_GetFieldId();
|
||||
extern int mFI_GetClimate();
|
||||
extern void mFI_SetClimate(int climate);
|
||||
extern mActor_name_t* mFI_BkNumtoUtFGTop(int block_x, int block_z);
|
||||
extern void mFI_ClearDeposit(int block_x, int block_z);
|
||||
extern int mFI_GetLineDeposit(u16* deposit, int ut_x);
|
||||
extern u16* mFI_GetDepositP(int block_x, int block_z);
|
||||
extern void mFI_GetSpecialBlockNum(int* block_pos_tbl, u32* kind_list, int kind_num);
|
||||
extern int mFI_SetTreasure(int* block_x, int* block_z, mActor_name_t item_no);
|
||||
extern void mFI_SetFGUpData();
|
||||
extern int mFI_ClearBlockItemRandom_common(mActor_name_t item_no, int count, mActor_name_t* fg_items, u16* deposit, int include_deposited);
|
||||
extern int mFI_Wpos2BlockNum(int* block_x, int* block_z, xyz_t world_pos);
|
||||
extern int mFI_CheckPlayerWade(int wade_state);
|
||||
extern void mFI_BkandUtNum2Wpos(xyz_t* wpos_p, int block_x, int block_z, int ut_x, int ut_z);
|
||||
extern void mFI_BkandUtNum2CenterWpos(xyz_t* wpos_p, int block_x, int block_z, int ut_x, int ut_z);
|
||||
extern mCoBG_Collision_u* mFI_GetBkNum2ColTop(int block_x, int block_z);
|
||||
extern u32 mFI_BkNum2BlockKind(int block_x, int block_z);
|
||||
extern int mFI_BlockKind2BkNum(int* block_x, int* block_z, u32 block_kind);
|
||||
extern int mFI_GetBlockUtNum2FG(mActor_name_t* fg_item, int block_x, int block_z, int ut_x, int ut_z);
|
||||
extern void mFI_UtNum2CenterWpos(xyz_t* wpos, int ut_x, int ut_z);
|
||||
extern int mFI_CheckShopFieldName(mActor_name_t field_name);
|
||||
extern int mFI_CheckShop();
|
||||
extern u8 mFI_GetBlockXMax();
|
||||
extern u8 mFI_GetBlockZMax();
|
||||
extern u8 mFI_BkNum2BlockType(int block_x, int block_z);
|
||||
extern mFI_sound_source_info_c* mFI_GetSoundSourcePBlockNum(int block_x,int block_z);
|
||||
extern int mFI_Wpos2UtNum(int* ut_x, int* ut_z, xyz_t wpos);
|
||||
extern void mFI_ClearFieldData();
|
||||
extern int mFI_SetFG_common(mActor_name_t item, xyz_t wpos, int update);
|
||||
extern mActor_name_t* mFI_GetUnitFG(xyz_t wpos);
|
||||
extern void mFI_Wpos2DepositOFF(xyz_t wpos);
|
||||
extern mActor_name_t mFI_GetOtherFruit();
|
||||
extern int mFI_Wpos2UtNum_inBlock(int* ut_x, int* ut_z, xyz_t wpos);
|
||||
extern int mFI_GetItemNumInBlock(mActor_name_t item_no, mActor_name_t* block_items);
|
||||
extern int mFI_BkNum2WposXZ(f32* wpos_x, f32* wpos_z, int block_x, int block_z);
|
||||
extern void mFI_SetBearActor(GAME_PLAY* play, xyz_t wpos, int update_before_block_table);
|
||||
extern void mFI_FieldMove(xyz_t player_wpos);
|
||||
extern int mFI_search_unit_around(xyz_t* wpos, mActor_name_t item);
|
||||
extern void mFI_BlockDepositOFF(u16* deposit, int ut_x, int ut_z);
|
||||
extern void mFI_PullTanukiPathTrees();
|
||||
extern int mFI_CheckBlockKind_OR(int block_x, int block_z, u32 kind);
|
||||
extern void mFI_GetIslandBlockNumX(int* island_block_x_nums);
|
||||
extern void mFI_LposInBKtoWpos(xyz_t* wpos, xyz_t lpos, int block_x, int block_z);
|
||||
extern f32 mFI_GetBlockWidth();
|
||||
extern f32 mFI_GetBlockHeight();
|
||||
extern int mFI_Wpos2BkandUtNuminBlock(int* block_x, int* block_z, int* ut_x, int* ut_z, xyz_t wpos);
|
||||
extern int mFI_GetItemNumOnBlockInField(int block_x, int block_z, mActor_name_t start_item, mActor_name_t end_item);
|
||||
extern int mFI_CheckShopFieldName(mActor_name_t field_name);
|
||||
extern int mFI_GetMoveActorListIdx(mFM_move_actor_c* move_actor_list, int list_size, mActor_name_t name);
|
||||
extern int mFI_GetNowPlayerHouseFloorNo();
|
||||
extern int mFI_BlockUtNumtoFGSet(mActor_name_t item, int bx, int bz, int ut_x, int ut_z);
|
||||
extern void mFI_InitMoveActorBitData();
|
||||
extern void mFI_ClearColKeep();
|
||||
extern void mFI_InitAreaInfo();
|
||||
extern void mFI_InitRegisterBgInfo();
|
||||
extern mFM_block_info_c* mFI_GetBlockTopP();
|
||||
extern int mFI_GetBlockNum(int block_x, int block_z);
|
||||
|
||||
extern int mFI_BlockCheck(int block_x, int block_z);
|
||||
extern int mFI_UtNumCheck(int ut_x, int ut_z, int bx_max, int bz_max);
|
||||
extern int mFI_WposX2UtNumX(f32 wpos_x);
|
||||
extern int mFI_WposZ2UtNumZ(f32 wpos_z);
|
||||
extern int mFI_Wpos2UtNum(int* ut_x, int* ut_z, xyz_t wpos);
|
||||
extern int mFI_UtNum2CenterWpos(xyz_t* wpos, int ut_x, int ut_z);
|
||||
extern int mFI_Wpos2UtCenterWpos(xyz_t* wpos, xyz_t src_pos);
|
||||
extern int mFI_Wpos2UtNum_inBlock(int* ut_x, int* ut_z, xyz_t wpos);
|
||||
extern int mFI_Wpos2BlockNum(int* bx, int* bz, xyz_t wpos);
|
||||
extern int mFI_Wpos2BkandUtNuminBlock(int* bx, int* bz, int* ut_x, int* ut_z, xyz_t wpos);
|
||||
extern int mFI_WpostoLposInBK(xyz_t* lpos, xyz_t wpos);
|
||||
extern int mFI_LposInBKtoWpos(xyz_t* wpos, xyz_t lpos, int bx, int bz);
|
||||
extern int mFI_ScrollCheck(xyz_t wpos, u8 dir);
|
||||
extern int mFI_BkNum2WposXZ(f32* wpos_x, f32* wpos_z, int bx, int bz);
|
||||
extern void mFI_UtNum2PosXZInBk(f32* pos_x, f32* pos_z, int ut_x, int ut_z);
|
||||
extern void mFI_BkandUtNum2Wpos(xyz_t* wpos, int bx, int bz, int ut_x, int ut_z);
|
||||
extern void mFI_BkandUtNum2CenterWpos(xyz_t* wpos, int bx, int bz, int ut_x, int ut_z);
|
||||
extern mFM_field_draw_info_c* mFI_BGDisplayListTop();
|
||||
extern mFM_field_pal_c* mFI_GetFieldPal();
|
||||
extern int mFI_GetPlayerHouseFloorNo(int scene);
|
||||
extern int mFI_GetNowPlayerHouseFloorNo();
|
||||
extern void mFI_InitRegisterBgInfo();
|
||||
extern int mFI_CheckBgDma(int bx, int bz);
|
||||
extern f32 mFI_UtNum2BaseHeight(int ut_x, int ut_z);
|
||||
extern f32 mFI_BkNum2BaseHeight(int bx, int bz);
|
||||
extern u8 mFI_BkNum2BlockType(int bx, int bz);
|
||||
extern int mFI_GetPuleIdx();
|
||||
extern u32 mFI_BkNum2BlockKind(int bx, int bz);
|
||||
extern int mFI_CheckBlockKind(int bx, int bz, u32 block_kind);
|
||||
extern int mFI_CheckBlockKind_OR(int bx, int bz, u32 block_kind_OR);
|
||||
extern int mFI_BlockKind2BkNum(int* bx, int* bz, u32 kind);
|
||||
extern void mFI_GetSpecialBlockNum(int* block_pos, u32* kinds, int count);
|
||||
extern void mFI_GetIslandBlockNumX(int* island_x_blocks);
|
||||
extern mCoBG_Collision_u* mFI_GetBkNum2ColTop(int bx, int bz);
|
||||
extern mCoBG_Collision_u* mFI_UtNum2UtCol(int ut_x, int ut_z);
|
||||
extern void mFI_ClearColKeep();
|
||||
extern mCoBG_Collision_u* mFI_GetUnitCol(xyz_t wpos);
|
||||
extern u8 mFI_UtNum2UtKeepH(int ut_x, int ut_z);
|
||||
extern mFM_bg_sound_source_c* mFI_GetSoundSourcePBlockNum(int bx, int bz);
|
||||
extern Gfx* mFI_GetBGDisplayListRom(int bx, int bz);
|
||||
extern Gfx* mFI_GetBGDisplayListRom_XLU(int bx, int bz);
|
||||
extern EVW_ANIME_DATA* mFI_GetBGTexAnimInfo(s8* anim_num, int bx, int bz);
|
||||
extern void mFI_InitAreaInfo();
|
||||
extern void mFI_BGDisplayListRefresh(xyz_t wpos);
|
||||
extern int mFI_CheckInIsland();
|
||||
extern int mFI_CheckInJustIslandOutdoor();
|
||||
extern u32 mFI_CheckPlayerBlockInfo();
|
||||
extern mActor_name_t* mFI_BkNumtoUtFGTop(int bx, int bz);
|
||||
extern mActor_name_t* mFI_BkNum2UtFGTop_layer(int bx, int bz, int layer);
|
||||
extern mActor_name_t* mFI_UtNum2UtFG(int ut_x, int ut_z);
|
||||
extern mActor_name_t* mFI_GetUnitFG(xyz_t wpos);
|
||||
extern mActor_name_t* mFI_GetUnitFG2(xyz_t wpos);
|
||||
extern int mFI_GetBlockUtNum2FG(mActor_name_t* item, int bx, int bz, int ut_x, int ut_z);
|
||||
extern int mFI_BlockUtNumtoFGSet(mActor_name_t item, int bx, int bz, int ut_x, int ut_z);
|
||||
extern int mFI_UtNumtoFGSet_common(mActor_name_t item, int ut_x, int ut_z, int update);
|
||||
extern int mFI_SetFG_common(mActor_name_t item, xyz_t wpos, int update);
|
||||
extern int mFI_SetFG2(mActor_name_t item, xyz_t wpos);
|
||||
extern void mFI_InitItemTable(mFI_item_table_c* vis_block_info);
|
||||
extern int mFI_GetOldItemTableIdx(int n);
|
||||
extern int mFI_GetItemTable_NoReset(mFI_item_table_c* item_table, xyz_t wpos);
|
||||
extern int mFI_GetItemTable(mFI_item_table_c* item_table, xyz_t wpos, char* file, int line);
|
||||
extern int mFI_FGisUpDate();
|
||||
extern void mFI_SetFGUpData();
|
||||
extern void mFI_BornItemON();
|
||||
//extern MATCH_FORCESTRIP void mFI_BornItemOFF();
|
||||
extern int mFI_ItemisBorn();
|
||||
extern int mFI_ActorisBorn();
|
||||
extern void mFI_SetBearActor(GAME_PLAY* play, xyz_t wpos, int set_flag);
|
||||
extern int mFI_search_unit_around(xyz_t* wpos, mActor_name_t item);
|
||||
extern MATCH_FORCESTRIP int mFI_search_unit_around2(xyz_t* wpos, mActor_name_t item);
|
||||
extern int mFI_GetItemNumOnBlock(int bx, int bz, mActor_name_t min_item, mActor_name_t max_item);
|
||||
extern int mFI_GetItemNumOnBlockInField(int bx, int bz, mActor_name_t min_item, mActor_name_t max_item);
|
||||
extern int mFI_GetItemNumField_BCT(mActor_name_t min_item, mActor_name_t max_item);
|
||||
extern int mFI_GetItemNumField(mActor_name_t min_item, mActor_name_t max_item);
|
||||
extern int mFI_GetItemNumInBlock(mActor_name_t item, mActor_name_t* fg_items);
|
||||
extern int mFI_SearchFGInBlock(int* ut_x, int* ut_z, mActor_name_t item, int bx, int bz);
|
||||
extern int mFI_CheckFGExist(mActor_name_t* check_items, int check_item_num);
|
||||
extern u8* mFI_GetHaniwaStepBlock(int bx, int bz);
|
||||
extern u16 mFI_GetMoveActorBitData(int bx, int bz);
|
||||
extern void mFI_SetMoveActorBitData(int bx, int bz, u16 move_actor_bit_data);
|
||||
extern void mFI_SetMoveActorBitData_ON(s16 move_actor_idx, int bx, int bz);
|
||||
extern void mFI_SetMoveActorBitData_OFF(s16 move_actor_idx, int bx, int bz);
|
||||
extern void mFI_MyMoveActorBitData_ON(ACTOR* actor);
|
||||
//extern MATCH_FORCESTRIP void mFI_MyMoveActorBitData_OFF(ACTOR* actor);
|
||||
extern int mFI_GetMoveActorListIdx(mFM_move_actor_c* move_actor_list, int list_size, mActor_name_t actor_name);
|
||||
extern int mFI_RegistMoveActorList(mActor_name_t actor_name, int bx, int bz, int ut_x, int ut_z, int npc_info_idx, s16 arg);
|
||||
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 int mFI_CheckPlayerWade(int wade);
|
||||
extern int mFI_GetPlayerWade();
|
||||
extern int mFI_GetNextBlockNum(int* bx, int* bz);
|
||||
extern u16* mFI_GetDepositP(int bx, int bz);
|
||||
extern void mFI_ClearDeposit(int bx, int bz);
|
||||
extern int mFI_GetLineDeposit(u16* deposit, int ut_x);
|
||||
//extern MATCH_FORCESTRIP void mFI_BlockDepositON(u16* deposit_p, int ut_x, int ut_z);
|
||||
extern void mFI_BlockDepositOFF(u16* deposit_p, int ut_x, int ut_z);
|
||||
extern int mFI_GetBlockDeposit(u16* deposit_p, int ut_x, int ut_z);
|
||||
//extern MATCH_FORCESTRIP void mFI_BkUtNum2DepositON(int bx, int bz, int ut_x, int ut_z);
|
||||
extern void mFI_BkUtNum2DepositOFF(int bx, int bz, int ut_x, int ut_z);
|
||||
//extern MATCH_FORCESTRIP int mFI_BkUtNum2DepositGet(int bx, int bz, int ut_x, int ut_z);
|
||||
extern void mFI_UtNum2DepositON(int ut_x, int ut_z);
|
||||
extern void mFI_UtNum2DepositOFF(int ut_x, int ut_z);
|
||||
extern int mFI_UtNum2DepositGet(int ut_x, int ut_z);
|
||||
extern void mFI_Wpos2DepositON(xyz_t wpos);
|
||||
extern void mFI_Wpos2DepositOFF(xyz_t wpos);
|
||||
extern int mFI_Wpos2DepositGet(xyz_t wpos);
|
||||
extern int mFI_CheckItemNoHole(mActor_name_t item);
|
||||
/* @unused extern int mFI_CheckCanDeposit(xyz_t wpos?) */
|
||||
extern int mFI_GetDigStatus(mActor_name_t* item, xyz_t wpos, int golden_shovel);
|
||||
extern void mFI_ClearHoleBlock(int bx, int bz);
|
||||
extern void mFI_ClearBeecomb(int bx, int bz);
|
||||
extern int mFI_SetFGStructure_common(mActor_name_t structure_name, int bx, int bz, int ut_x, int ut_z, int set_type);
|
||||
extern int mFI_CheckStructureArea(int ut_x, int ut_z, mActor_name_t structure_name, int structure_ut_x, int structure_ut_z);
|
||||
extern mActor_name_t mFI_GetOtherFruit();
|
||||
extern int mFI_CheckFGNpcOn(mActor_name_t item);
|
||||
extern int mFI_CheckLapPolice(int bx, int bz, int ut_x, int ut_z);
|
||||
extern int mFI_GetWaveUtinBlock(int* ut_x, int* ut_z, int bx, int bz);
|
||||
extern int mFI_ClearBlockItemRandom_common(mActor_name_t item, int clear_num, mActor_name_t* fg_p, u16* deposit_p, int delete_buried);
|
||||
extern void mFI_SetFirstSetShell();
|
||||
extern void mFI_FieldMove(xyz_t player_pos);
|
||||
extern void mFI_PrintNowBGNum(gfxprint_t* gfxprint);
|
||||
extern void mFI_PrintFgAttr(gfxprint_t* gfxprint);
|
||||
extern int mFI_SetOyasiroPos(s16* oyasiro_p);
|
||||
extern int mFI_SetTreasure(int* selected_bx, int* selected_bz, mActor_name_t item);
|
||||
extern int mFI_GetClimate();
|
||||
extern void mFI_SetClimate(int climate);
|
||||
extern int mFI_CheckBeforeScenePerpetual();
|
||||
extern void mFI_ChangeClimate_ForEventNotice();
|
||||
extern void mFI_PullTanukiPathTrees();
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -73,7 +73,7 @@ typedef struct block_combo_s {
|
||||
typedef struct field_display_list_info_s {
|
||||
int block_x;
|
||||
int block_z;
|
||||
u8* display_list;
|
||||
u32 dma_loaded;
|
||||
} mFM_field_draw_info_c;
|
||||
|
||||
typedef struct field_pal_s {
|
||||
@@ -103,8 +103,8 @@ typedef struct field_bg_info_s {
|
||||
s8 animation_count;
|
||||
u8 block_type;
|
||||
u32 block_kind;
|
||||
int _18;
|
||||
int _1C;
|
||||
int rom_start_addr;
|
||||
int rom_size;
|
||||
mCoBG_Collision_u collision[UT_Z_NUM][UT_X_NUM];
|
||||
u8 keep_h[UT_Z_NUM][UT_X_NUM]; // base height?
|
||||
mFM_bg_sound_source_c sound_source[mFM_SOUND_SOURCE_NUM];
|
||||
@@ -155,8 +155,8 @@ typedef struct field_bg_data_s {
|
||||
Gfx* translucent_gfx;
|
||||
EVW_ANIME_DATA* animation;
|
||||
s8 animation_count;
|
||||
u32 _14;
|
||||
u32 _18;
|
||||
u32 rom_start_addr;
|
||||
u32 rom_end_addr;
|
||||
mCoBG_Collision_u collision[UT_Z_NUM][UT_X_NUM];
|
||||
mFM_bg_sound_source_data_c sound_source[mFM_SOUND_SOURCE_NUM];
|
||||
} mFM_bg_data_c;
|
||||
|
||||
+67
-14
@@ -64,6 +64,7 @@ enum {
|
||||
extern int mNT_check_unknown(mActor_name_t item_no);
|
||||
extern int FGTreeType_check(mActor_name_t tree);
|
||||
extern mActor_name_t bg_item_fg_sub_tree_grow(mActor_name_t tree, int past_days, int check_plant);
|
||||
extern mActor_name_t bg_item_fg_sub_dig2take_conv(mActor_name_t item);
|
||||
|
||||
/* Retrieve the item actor's category */
|
||||
#define ITEM_NAME_GET_TYPE(n) (((n) & 0xF000) >> 12)
|
||||
@@ -181,17 +182,69 @@ extern mActor_name_t bg_item_fg_sub_tree_grow(mActor_name_t tree, int past_days,
|
||||
#define MAP_BOARD1 0x000D
|
||||
#define MUSIC_BOARD0 0x000E
|
||||
#define MUSIC_BOARD1 0x000F
|
||||
|
||||
|
||||
#define BURIED_PITFALL0 0x002A
|
||||
|
||||
#define WOOD_FENCE 0x0010
|
||||
#define HOLE_START 0x0011
|
||||
#define HOLE00 (HOLE_START + 0)
|
||||
#define HOLE01 (HOLE_START + 1)
|
||||
#define HOLE02 (HOLE_START + 2)
|
||||
#define HOLE03 (HOLE_START + 3)
|
||||
#define HOLE04 (HOLE_START + 4)
|
||||
#define HOLE05 (HOLE_START + 5)
|
||||
#define HOLE06 (HOLE_START + 6)
|
||||
#define HOLE07 (HOLE_START + 7)
|
||||
#define HOLE08 (HOLE_START + 8)
|
||||
#define HOLE09 (HOLE_START + 9)
|
||||
#define HOLE10 (HOLE_START + 10)
|
||||
#define HOLE11 (HOLE_START + 11)
|
||||
#define HOLE12 (HOLE_START + 12)
|
||||
#define HOLE13 (HOLE_START + 13)
|
||||
#define HOLE14 (HOLE_START + 14)
|
||||
#define HOLE15 (HOLE_START + 15)
|
||||
#define HOLE16 (HOLE_START + 16)
|
||||
#define HOLE17 (HOLE_START + 17)
|
||||
#define HOLE18 (HOLE_START + 18)
|
||||
#define HOLE19 (HOLE_START + 19)
|
||||
#define HOLE20 (HOLE_START + 20)
|
||||
#define HOLE21 (HOLE_START + 21)
|
||||
#define HOLE22 (HOLE_START + 22)
|
||||
#define HOLE23 (HOLE_START + 23)
|
||||
#define HOLE24 (HOLE_START + 24)
|
||||
#define HOLE_END HOLE24
|
||||
#define BURIED_PITFALL_START 0x002A
|
||||
#define BURIED_PITFALL00 (BURIED_PITFALL_START + 0)
|
||||
#define BURIED_PITFALL01 (BURIED_PITFALL_START + 1)
|
||||
#define BURIED_PITFALL02 (BURIED_PITFALL_START + 2)
|
||||
#define BURIED_PITFALL03 (BURIED_PITFALL_START + 3)
|
||||
#define BURIED_PITFALL04 (BURIED_PITFALL_START + 4)
|
||||
#define BURIED_PITFALL05 (BURIED_PITFALL_START + 5)
|
||||
#define BURIED_PITFALL06 (BURIED_PITFALL_START + 6)
|
||||
#define BURIED_PITFALL07 (BURIED_PITFALL_START + 7)
|
||||
#define BURIED_PITFALL08 (BURIED_PITFALL_START + 8)
|
||||
#define BURIED_PITFALL09 (BURIED_PITFALL_START + 9)
|
||||
#define BURIED_PITFALL10 (BURIED_PITFALL_START + 10)
|
||||
#define BURIED_PITFALL11 (BURIED_PITFALL_START + 11)
|
||||
#define BURIED_PITFALL12 (BURIED_PITFALL_START + 12)
|
||||
#define BURIED_PITFALL13 (BURIED_PITFALL_START + 13)
|
||||
#define BURIED_PITFALL14 (BURIED_PITFALL_START + 14)
|
||||
#define BURIED_PITFALL15 (BURIED_PITFALL_START + 15)
|
||||
#define BURIED_PITFALL16 (BURIED_PITFALL_START + 16)
|
||||
#define BURIED_PITFALL17 (BURIED_PITFALL_START + 17)
|
||||
#define BURIED_PITFALL18 (BURIED_PITFALL_START + 18)
|
||||
#define BURIED_PITFALL19 (BURIED_PITFALL_START + 19)
|
||||
#define BURIED_PITFALL20 (BURIED_PITFALL_START + 20)
|
||||
#define BURIED_PITFALL21 (BURIED_PITFALL_START + 21)
|
||||
#define BURIED_PITFALL22 (BURIED_PITFALL_START + 22)
|
||||
#define BURIED_PITFALL23 (BURIED_PITFALL_START + 23)
|
||||
#define BURIED_PITFALL24 (BURIED_PITFALL_START + 24)
|
||||
#define BURIED_PITFALL_END BURIED_PITFALL24
|
||||
#define SHINE_SPOT 0x005C
|
||||
|
||||
#define HOLE_SHINE 0x005D
|
||||
#define TREE_BEES 0x005E
|
||||
#define TREE_FTR (TREE_BEES + 1)
|
||||
#define TREE_LIGHTS (TREE_FTR + 1)
|
||||
#define TREE_PRESENT (TREE_LIGHTS + 1)
|
||||
|
||||
#define HONEYCOMB 0x0062
|
||||
#define ROCK_A 0x0063
|
||||
#define ROCK_B (ROCK_A + 1)
|
||||
#define ROCK_C (ROCK_B + 1)
|
||||
@@ -974,15 +1027,15 @@ extern mActor_name_t bg_item_fg_sub_tree_grow(mActor_name_t tree, int past_days,
|
||||
#define ITM_WALL_START 0x2700
|
||||
|
||||
#define ITM_FOOD_START 0x2800
|
||||
#define ITM_FOOD_APPLE ITM_FOOD_START
|
||||
#define ITM_FOOD_CHERRY (ITM_FOOD_APPLE + 1)
|
||||
#define ITM_FOOD_PEAR (ITM_FOOD_CHERRY + 1)
|
||||
#define ITM_FOOD_PEACH (ITM_FOOD_PEAR + 1)
|
||||
#define ITM_FOOD_ORANGE (ITM_FOOD_PEACH + 1)
|
||||
#define ITM_FOOD_MUSHROOM (ITM_FOOD_ORANGE + 1)
|
||||
#define ITM_FOOD_CANDY (ITM_FOOD_MUSHROOM + 1)
|
||||
#define ITM_FOOD_COCONUT (ITM_FOOD_CANDY + 1)
|
||||
#define ITM_FOOD_END 0x2808
|
||||
#define ITM_FOOD_APPLE (ITM_FOOD_START + 0)
|
||||
#define ITM_FOOD_CHERRY (ITM_FOOD_START + 1)
|
||||
#define ITM_FOOD_PEAR (ITM_FOOD_START + 2)
|
||||
#define ITM_FOOD_PEACH (ITM_FOOD_START + 3)
|
||||
#define ITM_FOOD_ORANGE (ITM_FOOD_START + 4)
|
||||
#define ITM_FOOD_MUSHROOM (ITM_FOOD_START + 5)
|
||||
#define ITM_FOOD_CANDY (ITM_FOOD_START + 6)
|
||||
#define ITM_FOOD_COCONUT (ITM_FOOD_START + 7)
|
||||
#define ITM_FOOD_END (ITM_FOOD_START + 8)
|
||||
|
||||
#define ITM_ENV_START 0x2900
|
||||
#define ITM_SAPLING ITM_ENV_START
|
||||
|
||||
@@ -26,6 +26,10 @@ 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();
|
||||
extern int mPlib_get_player_actor_main_index(GAME_PLAY* play);
|
||||
extern int mPlib_check_player_actor_main_index_AllWade(GAME_PLAY* play);
|
||||
|
||||
#define GET_PLAYER_ACTOR(play) get_player_actor_withoutCheck(play)
|
||||
#define GET_PLAYER_ACTOR_NOW() get_player_actor_withoutCheck((GAME_PLAY*)gamePT)
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
+3822
File diff suppressed because it is too large
Load Diff
+3
-3
@@ -247,8 +247,8 @@ static void mFM_SetBG(mFM_bg_info_c* bg_info, mFM_bg_data_c* bg_data, u16 height
|
||||
bg_info->translucent_gfx = bg_data->translucent_gfx;
|
||||
bg_info->animation = bg_data->animation;
|
||||
bg_info->animation_count = bg_data->animation_count;
|
||||
bg_info->_18 = bg_data->_14;
|
||||
bg_info->_1C = bg_data->_18 - bg_data->_14; // size
|
||||
bg_info->rom_start_addr = bg_data->rom_start_addr;
|
||||
bg_info->rom_size = bg_data->rom_end_addr - bg_data->rom_start_addr;
|
||||
bg_info->block_type = type;
|
||||
bg_info->block_kind = mRF_Type2BlockInfo(type);
|
||||
|
||||
@@ -780,7 +780,7 @@ static mFM_fdinfo_c* mFM_MakeField(u16 scene, u16 bg_max, u8 bg_num) {
|
||||
for (j = 0; j < mFM_VISIBLE_BLOCK_NUM; j++) {
|
||||
field_info->bg_draw_info[j].block_x = 0xFF;
|
||||
field_info->bg_draw_info[j].block_z = 0xFF;
|
||||
field_info->bg_draw_info[j].display_list = NULL;
|
||||
field_info->bg_draw_info[j].dma_loaded = FALSE;
|
||||
field_info->last_bg_idx[j] = -1;
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -459,7 +459,7 @@ extern void mMsm_DepositItemBlock(mActor_name_t* fg_items, mActor_name_t item, i
|
||||
int hole_num = mCoBG_BnumUnum2HoleNumber(block_x, block_z, ut_x, ut_z);
|
||||
|
||||
if (hole_num != -1) {
|
||||
*fg_items = BURIED_PITFALL0 + hole_num;
|
||||
*fg_items = BURIED_PITFALL_START + hole_num;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -142,14 +142,14 @@ static int mRF_GateType2GateCount(int gate_type) {
|
||||
}
|
||||
|
||||
extern int mRF_SearchPond(int* ut_x, int* ut_z, int block_x, int block_z) {
|
||||
mFI_sound_source_info_c* s_source_info = mFI_GetSoundSourcePBlockNum(block_x, block_z);
|
||||
mFM_bg_sound_source_c* s_source_info = mFI_GetSoundSourcePBlockNum(block_x, block_z);
|
||||
|
||||
if (s_source_info != NULL) {
|
||||
int i;
|
||||
|
||||
for (i = 0; i < mFI_NUM_SOUND_SOURCES; i++, s_source_info++) {
|
||||
if (s_source_info->kind == mFI_SOUND_SOURCE_POND) {
|
||||
if (mFI_Wpos2UtNum(ut_x, ut_z, s_source_info->wpos)) {
|
||||
if (mFI_Wpos2UtNum(ut_x, ut_z, s_source_info->pos)) {
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user