Implement & link ac_sign, link m_titledemo

This commit is contained in:
Cuyler36
2024-08-31 06:35:33 -04:00
parent 9af629878b
commit 32a293506a
12 changed files with 1738 additions and 418 deletions
+42 -2
View File
@@ -3,13 +3,53 @@
#include "types.h"
#include "m_actor.h"
#include "m_field_make.h"
#include "m_olib.h"
#ifdef __cplusplus
extern "C" {
#endif
extern int aSIGN_set_white_sign(GAME* game, const xyz_t* pos_p);
extern int aSIGN_erase_white_sign(GAME* game, const xyz_t* pos_p);
#define aSIGN_SINGLE_NUM 10
#define aSIGN_CULL_MAX_DIST (mFI_UNIT_BASE_SIZE_F * 4)
typedef struct sign_actor_s SIGN_ACTOR;
typedef struct sign_draw_s {
BlockOrUnit_c block;
u16 exist_bitfield[UT_Z_NUM];
} aSIGN_draw_c;
typedef struct sign_single_s {
BlockOrUnit_c block;
BlockOrUnit_c unit;
mActor_name_t item;
xyz_t scale;
f32 _20;
s16 _24;
s16 _26;
int exist_flag;
} aSIGN_single_c;
typedef void (*aSIGN_ACTION_PROC)(SIGN_ACTOR*, GAME*);
struct sign_actor_s {
ACTOR actor_class;
aSIGN_ACTION_PROC action_proc;
aSIGN_draw_c draw[mFM_VISIBLE_BLOCK_NUM];
aSIGN_single_c single[aSIGN_SINGLE_NUM];
BlockOrUnit_c target_block;
BlockOrUnit_c target_unit;
xyz_t target_pos;
xyz_t sign_birth_pos;
xyz_t sign_pos;
int _404;
int is_winter;
};
extern int aSIGN_set_white_sign(GAME* game, xyz_t* pos_p);
extern int aSIGN_erase_white_sign(GAME* game, xyz_t* pos_p);
extern ACTOR_PROFILE Ac_Sign_Profile;
+2
View File
@@ -162,6 +162,8 @@ typedef enum audio_sound_effects {
NA_SE_SCOOP_ITEM_HIT,
NA_SE_AXE_BALL_HIT,
NA_SE_461 = 0x461,
NA_SE_COIN_GASAGOSO = 0x465,
} AudioSE;
+1 -1
View File
@@ -449,7 +449,7 @@ typedef enum bank_id {
ACTOR_OBJ_BANK_408,
ACTOR_OBJ_BANK_EF_MUSEUM,
ACTOR_OBJ_BANK_EF_MINSECT,
ACTOR_OBJ_BANK_411,
ACTOR_OBJ_BANK_AC_SIGN,
ACTOR_OBJ_BANK_MURAL,
ACTOR_OBJ_BANK_413,
ACTOR_OBJ_BANK_414,
+2 -1
View File
@@ -27,6 +27,7 @@
#include "ac_shop_design.h"
#include "ac_effectbg.h"
#include "ac_htable.h"
#include "ac_sign.h"
#ifdef __cplusplus
extern "C" {
@@ -87,7 +88,7 @@ typedef struct clip_s {
/* 0x0DC */ aAL_Clip_c* animal_logo_clip;
/* 0x0E0 */ void* _0E0;
/* 0x0E4 */ void* _0E4;
/* 0x0E8 */ void* _0E8;
/* 0x0E8 */ SIGN_ACTOR* sign_control_actor;
/* 0x0EC */ aAPC_Clip_c* aprilfool_control_clip;
/* 0x0F0 */ aEvMgr_Clip_c* event_manager_clip;
/* 0x0F4 */ aGHC_Clip_c* groundhog_control_clip;
+1
View File
@@ -343,6 +343,7 @@ extern int mCoBG_GetBlockBgCheckMode(void);
extern void mCoBG_GroundCheckOnly(xyz_t* reverse_pos, ACTOR* actor, f32 check_range, f32 offset_y, s16 check_type);
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);
extern void mCoBG_InitMoveBgData();
extern void mCoBG_InitBlockBgCheckMode();
+39 -34
View File
@@ -36,6 +36,10 @@ enum {
NAME_TYPE_NUM
};
#define ITEM0_CAT_OBJ 0
#define ITEM0_CAT_PLANT 8
#define ITEM0_CAT_SIGN 9
enum {
ITEM1_CAT_PAPER,
ITEM1_CAT_MONEY,
@@ -786,40 +790,40 @@ extern int mNT_check_unknown(mActor_name_t item_no);
/* end of environmental objects */
#define SIGNBOARD_START 0x0900
#define SIGNBOARD (SIGNBOARD_START)
#define SIGNBOARD0_PLR0 (SIGNBOARD_START + 1)
#define SIGNBOARD1_PLR0 (SIGNBOARD0_PLR0 + 1)
#define SIGNBOARD2_PLR0 (SIGNBOARD1_PLR0 + 1)
#define SIGNBOARD3_PLR0 (SIGNBOARD2_PLR0 + 1)
#define SIGNBOARD4_PLR0 (SIGNBOARD3_PLR0 + 1)
#define SIGNBOARD5_PLR0 (SIGNBOARD4_PLR0 + 1)
#define SIGNBOARD6_PLR0 (SIGNBOARD5_PLR0 + 1)
#define SIGNBOARD7_PLR0 (SIGNBOARD6_PLR0 + 1)
#define SIGNBOARD0_PLR1 (SIGNBOARD7_PLR0 + 1)
#define SIGNBOARD1_PLR1 (SIGNBOARD0_PLR1 + 1)
#define SIGNBOARD2_PLR1 (SIGNBOARD1_PLR1 + 1)
#define SIGNBOARD3_PLR1 (SIGNBOARD2_PLR1 + 1)
#define SIGNBOARD4_PLR1 (SIGNBOARD3_PLR1 + 1)
#define SIGNBOARD5_PLR1 (SIGNBOARD4_PLR1 + 1)
#define SIGNBOARD6_PLR1 (SIGNBOARD5_PLR1 + 1)
#define SIGNBOARD7_PLR1 (SIGNBOARD6_PLR1 + 1)
#define SIGNBOARD0_PLR2 (SIGNBOARD7_PLR1 + 1)
#define SIGNBOARD1_PLR2 (SIGNBOARD0_PLR2 + 1)
#define SIGNBOARD2_PLR2 (SIGNBOARD1_PLR2 + 1)
#define SIGNBOARD3_PLR2 (SIGNBOARD2_PLR2 + 1)
#define SIGNBOARD4_PLR2 (SIGNBOARD3_PLR2 + 1)
#define SIGNBOARD5_PLR2 (SIGNBOARD4_PLR2 + 1)
#define SIGNBOARD6_PLR2 (SIGNBOARD5_PLR2 + 1)
#define SIGNBOARD7_PLR2 (SIGNBOARD6_PLR2 + 1)
#define SIGNBOARD0_PLR3 (SIGNBOARD7_PLR2 + 1)
#define SIGNBOARD1_PLR3 (SIGNBOARD0_PLR3 + 1)
#define SIGNBOARD2_PLR3 (SIGNBOARD1_PLR3 + 1)
#define SIGNBOARD3_PLR3 (SIGNBOARD2_PLR3 + 1)
#define SIGNBOARD4_PLR3 (SIGNBOARD3_PLR3 + 1)
#define SIGNBOARD5_PLR3 (SIGNBOARD4_PLR3 + 1)
#define SIGNBOARD6_PLR3 (SIGNBOARD5_PLR3 + 1)
#define SIGNBOARD7_PLR3 (SIGNBOARD6_PLR3 + 1)
#define SIGNBOARD_END (SIGNBOARD7_PLR3)
#define SIGNBOARD0_PLR0 (SIGNBOARD_START + 0)
#define SIGNBOARD1_PLR0 (SIGNBOARD_START + 1)
#define SIGNBOARD2_PLR0 (SIGNBOARD_START + 2)
#define SIGNBOARD3_PLR0 (SIGNBOARD_START + 3)
#define SIGNBOARD4_PLR0 (SIGNBOARD_START + 4)
#define SIGNBOARD5_PLR0 (SIGNBOARD_START + 5)
#define SIGNBOARD6_PLR0 (SIGNBOARD_START + 6)
#define SIGNBOARD7_PLR0 (SIGNBOARD_START + 7)
#define SIGNBOARD0_PLR1 (SIGNBOARD_START + 8)
#define SIGNBOARD1_PLR1 (SIGNBOARD_START + 9)
#define SIGNBOARD2_PLR1 (SIGNBOARD_START + 10)
#define SIGNBOARD3_PLR1 (SIGNBOARD_START + 11)
#define SIGNBOARD4_PLR1 (SIGNBOARD_START + 12)
#define SIGNBOARD5_PLR1 (SIGNBOARD_START + 13)
#define SIGNBOARD6_PLR1 (SIGNBOARD_START + 14)
#define SIGNBOARD7_PLR1 (SIGNBOARD_START + 15)
#define SIGNBOARD0_PLR2 (SIGNBOARD_START + 16)
#define SIGNBOARD1_PLR2 (SIGNBOARD_START + 17)
#define SIGNBOARD2_PLR2 (SIGNBOARD_START + 18)
#define SIGNBOARD3_PLR2 (SIGNBOARD_START + 19)
#define SIGNBOARD4_PLR2 (SIGNBOARD_START + 20)
#define SIGNBOARD5_PLR2 (SIGNBOARD_START + 21)
#define SIGNBOARD6_PLR2 (SIGNBOARD_START + 22)
#define SIGNBOARD7_PLR2 (SIGNBOARD_START + 23)
#define SIGNBOARD0_PLR3 (SIGNBOARD_START + 24)
#define SIGNBOARD1_PLR3 (SIGNBOARD_START + 25)
#define SIGNBOARD2_PLR3 (SIGNBOARD_START + 26)
#define SIGNBOARD3_PLR3 (SIGNBOARD_START + 27)
#define SIGNBOARD4_PLR3 (SIGNBOARD_START + 28)
#define SIGNBOARD5_PLR3 (SIGNBOARD_START + 29)
#define SIGNBOARD6_PLR3 (SIGNBOARD_START + 30)
#define SIGNBOARD7_PLR3 (SIGNBOARD_START + 31)
#define SIGNBOARD (SIGNBOARD_START + 32)
#define SIGNBOARD_END (SIGNBOARD)
#define FTR0_START 0x1000
#define FTR_CLASSIC_WARDROBE 0x1004
@@ -3085,6 +3089,7 @@ extern int mNT_check_unknown(mActor_name_t item_no);
#define RSV_CLOTH5 0xFE25
#define RSV_CLOTH6 0xFE26
#define RSV_CLOTH7 0xFE27
#define RSV_SIGNBOARD 0xFE30
#define RSV_NW_ORIGINAL0 0xFE31
#define RSV_NW_ORIGINAL1 0xFE32
#define RSV_NW_ORIGINAL2 0xFE33
+1 -1
View File
@@ -13,7 +13,7 @@ extern "C" {
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(f32 stick_x, f32 stick_y, int btn_a, int btn_b);
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();
extern void mPlib_request_main_invade_type1(GAME_PLAY* play);
+2
View File
@@ -24,6 +24,8 @@ extern "C" {
#define USHT_MIN ((f32)USHT_MIN_S)
#define USHT_MAX ((f32)USHT_MAX_S)
#define FLT_MAX (3.4028235e+38f)
/* Macro to generate a random float in the range of [0, n) */
#define RANDOM_F(n) (fqrand() * (f32)(n))