From 87d2a22822fee2e527df88368019101c3593d812 Mon Sep 17 00:00:00 2001 From: roeming Date: Fri, 7 Feb 2025 16:13:56 -0500 Subject: [PATCH] inital museum insect progress, match ac_museum_insect.c --- configure.py | 9 +- include/ac_museum_insect.h | 2 - include/ac_museum_insect_priv.h | 297 ++++++++++++++++++++++ src/actor/ac_museum_insect.c | 203 +++++++++++++++ src/actor/ac_museum_insect_base.c_inc | 17 ++ src/actor/ac_museum_insect_batta.c_inc | 1 + src/actor/ac_museum_insect_chou.c_inc | 1 + src/actor/ac_museum_insect_dango.c_inc | 1 + src/actor/ac_museum_insect_genji.c_inc | 1 + src/actor/ac_museum_insect_goki.c_inc | 1 + src/actor/ac_museum_insect_hachi.c_inc | 1 + src/actor/ac_museum_insect_ka.c_inc | 1 + src/actor/ac_museum_insect_kabuto.c_inc | 1 + src/actor/ac_museum_insect_kumo.c_inc | 1 + src/actor/ac_museum_insect_kuwagata.c_inc | 1 + src/actor/ac_museum_insect_mino.c_inc | 1 + src/actor/ac_museum_insect_okera.c_inc | 1 + src/actor/ac_museum_insect_semi.c_inc | 1 + src/actor/ac_museum_insect_tentou.c_inc | 1 + src/actor/ac_museum_insect_tonbo.c_inc | 1 + 20 files changed, 538 insertions(+), 5 deletions(-) create mode 100644 include/ac_museum_insect_priv.h create mode 100644 src/actor/ac_museum_insect.c create mode 100644 src/actor/ac_museum_insect_base.c_inc create mode 100644 src/actor/ac_museum_insect_batta.c_inc create mode 100644 src/actor/ac_museum_insect_chou.c_inc create mode 100644 src/actor/ac_museum_insect_dango.c_inc create mode 100644 src/actor/ac_museum_insect_genji.c_inc create mode 100644 src/actor/ac_museum_insect_goki.c_inc create mode 100644 src/actor/ac_museum_insect_hachi.c_inc create mode 100644 src/actor/ac_museum_insect_ka.c_inc create mode 100644 src/actor/ac_museum_insect_kabuto.c_inc create mode 100644 src/actor/ac_museum_insect_kumo.c_inc create mode 100644 src/actor/ac_museum_insect_kuwagata.c_inc create mode 100644 src/actor/ac_museum_insect_mino.c_inc create mode 100644 src/actor/ac_museum_insect_okera.c_inc create mode 100644 src/actor/ac_museum_insect_semi.c_inc create mode 100644 src/actor/ac_museum_insect_tentou.c_inc create mode 100644 src/actor/ac_museum_insect_tonbo.c_inc diff --git a/configure.py b/configure.py index 0a856f0d..e5541cfc 100644 --- a/configure.py +++ b/configure.py @@ -172,7 +172,8 @@ config.asflags = [ "-I include/libc", "-I src/static/dolphin", f"-I build/{config.version}/include", - f"-I build/{config.version}/bin/assets", # needed for JUTResFONT_Ascfont_fix12 + # needed for JUTResFONT_Ascfont_fix12 + f"-I build/{config.version}/bin/assets", f"--defsym version={version_num}", ] config.ldflags = [ @@ -2720,7 +2721,8 @@ for url in N64_SDK_urls: os.makedirs(os.path.dirname(file_path), exist_ok=True) print(f"Fetching {file_path} from {url}") - req = urllib.request.Request(url, headers={"User-Agent": "Mozilla/5.0"}) + req = urllib.request.Request( + url, headers={"User-Agent": "Mozilla/5.0"}) with urllib.request.urlopen(req) as response: if response.getcode() == 200: content = response.read() @@ -2744,7 +2746,8 @@ config.progress_categories = [ ProgressCategory("game", "Game Code"), ProgressCategory("sdk", "SDK Code"), ProgressCategory("jsystem", "JSystem Code"), - ProgressCategory("library", "Library Code"), # catch-all for the rest of static + # catch-all for the rest of static + ProgressCategory("library", "Library Code"), ] config.progress_each_module = args.verbose diff --git a/include/ac_museum_insect.h b/include/ac_museum_insect.h index fdb9dcdd..1915bcce 100644 --- a/include/ac_museum_insect.h +++ b/include/ac_museum_insect.h @@ -1,7 +1,6 @@ #ifndef AC_MUSEUM_INSECT_H #define AC_MUSEUM_INSECT_H -#include "types.h" #include "m_actor.h" #ifdef __cplusplus @@ -15,4 +14,3 @@ extern ACTOR_PROFILE Museum_Insect_Profile; #endif #endif - diff --git a/include/ac_museum_insect_priv.h b/include/ac_museum_insect_priv.h new file mode 100644 index 00000000..cf41c420 --- /dev/null +++ b/include/ac_museum_insect_priv.h @@ -0,0 +1,297 @@ +#ifndef AC_MUSEUM_INSECT_PRIV_H +#define AC_MUSEUM_INSECT_PRIV_H + +#include "ac_museum_insect.h" +#include "m_msg.h" +#include "m_common_data.h" +#include "sys_matrix.h" +#include "m_player_lib.h" +#include "m_debug_mode.h" +#include "m_rcp.h" +#include "ac_insect_h.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define artificial_padding(lastOffset, currentOffset, typeOfLastMember) \ + u8 __##currentOffset##padding[currentOffset - lastOffset - sizeof(typeOfLastMember)] + +struct _MUSEUM_INSECT_PRIVATE_DATA; + +typedef void (*PRIV_INSECT_PROCESS)(struct _MUSEUM_INSECT_PRIVATE_DATA*, GAME*); + +typedef struct _MUSEUM_INSECT_PRIVATE_DATA { + int _00; + artificial_padding(0, 0x14, int); + f32 _14; // scale + artificial_padding(0x14, 0x8c, f32); + s16 _8C; + s16 _8E; + s16 _90; + s16 _92; +} MUSEUM_INSECT_PRIVATE_DATA; + +typedef struct _INSECT_DISPLAY_MSG_INFO { + s16 insectName; + s16 insectInfo; +} INSECT_DISPLAY_MSG_INFO; + +typedef struct _MUSEUM_INSECT_ACTOR { + ACTOR actor; // offset: 0x0 + MUSEUM_INSECT_PRIVATE_DATA privInsects[aINS_INSECT_TYPE_NUM]; + artificial_padding(0x174, 0x2F78, MUSEUM_INSECT_PRIVATE_DATA[aINS_INSECT_TYPE_NUM]); + int _2F78; // offset: 0x2F78 + int _2F7C; // offset: 0x2F7C + INSECT_DISPLAY_MSG_INFO _2F80[7]; // offset: 0x2F82 + s16 _2F9C[5]; // offset: 0x2F9C +} MUSEUM_INSECT_ACTOR; + +extern PRIV_INSECT_PROCESS minsect_ct[aINS_INSECT_TYPE_NUM]; +extern PRIV_INSECT_PROCESS minsect_mv[aINS_INSECT_TYPE_NUM]; +extern PRIV_INSECT_PROCESS minsect_dw[aINS_INSECT_TYPE_NUM]; +extern f32 minsect_scale_tbl[aINS_INSECT_TYPE_NUM]; +extern f32 minsect_scale_tbl[aINS_INSECT_TYPE_NUM]; +extern rgba_t window_color; + +// ac_museum_insect.c +int Museum_Insect_GetMsgNo(ACTOR* actorx); +int Museum_Insect_Check_Talk_Distance(GAME* game, int i); +void Museum_Insect_Set_MsgInsectInfo(ACTOR* actor, int i); +void Museum_Insect_set_talk_info(ACTOR* actor); +void Museum_Insect_Talk_process(ACTOR* actor, GAME* game); +void Museum_Insect_Actor_ct(ACTOR* actor, GAME* game); +void Museum_Insect_Actor_dt(ACTOR* actor, GAME* game); +void Museum_Insect_Actor_move(ACTOR* actor, GAME* game); +void Museum_Insect_Actor_draw(ACTOR* actor, GAME* game); + +// ac_museum_insect_base.c_inc +void mID_insect_moveF(void); +void minsect_amenbo_ct(void); +void minsect_amenbo_mv(void); +void minsect_amenbo_dw(void); +void ari_alone_ct(void); +void ari_alone_make(void); +void ari_alone_dt(void); +void ari_alone_move(void); +void ari_alone_draw(void); +void minsect_ari_ct(void); +void minsect_ari_mv(void); +void minsect_ari_dw(void); +void minsect_draw_shadow(void); +void minsect_fly_BGCheck(void); +void minsect_garden_BGCheck(void); +void minsect_flower_BGCheck(void); +void minsect_goki_BGCheck(void); +void minsect_kanban_BGCheck(void); +void minsect_tree_ObjCheck(void); +void minsect_rock_ObjCheck(void); +void minsect_batta_ObjCheck(void); +void get_now_mind_flag(void); +void set_relax_active_time(MUSEUM_INSECT_PRIVATE_DATA* actor, GAME* game); + +// ac_museum_insect_chou.c_inc +void minsect_chou_ct(void); +void minsect_chou_normal_process_init(void); +void minsect_chou_normal_process(void); +void minsect_chou_aim_flower_process_init(void); +void minsect_chou_aim_flower_process(void); +void minsect_chou_flower_process_init(void); +void minsect_chou_flower_process(void); +void minsect_chou_fly_process_init(void); +void minsect_chou_fly_process(void); +void minsect_chou_mv(void); +void minsect_chou_dw(void); + +// ac_museum_insect_semi.c_inc +void minsect_semi_ct(void); +void mi_semi_hane_anime(void); +void mi_semi_check_player(void); +void minsect_semi_mv(void); +void minsect_semi_dw(void); + +// ac_museum_insect_tonbo.c_inc +void minsect_tonbo_ct(void); +void mi_tonbo_check_player(void); +void minsect_tonbo_bg_check(void); +void minsect_tonbo_near_target_set(void); +void minsect_tonbo_rock_target_set(void); +void minsect_tonbo_suprised_rest_player(void); +void minsect_tonbo_acc_change(void); +void minsect_tonbo_max_speed_set(void); +void minsect_tonbo_aim_distance_set(void); +void minsect_tonbo_aim_angle_check(void); +void minsect_tonbo_normal_process_init(void); +void minsect_tonbo_normal_process(void); +void minsect_tonbo_aim_rock_process_init(void); +void minsect_tonbo_aim_rock_process(void); +void minsect_tonbo_rock_process_init(void); +void minsect_tonbo_rock_process(void); +void minsect_tonbo_rock_wait_process_init(void); +void minsect_tonbo_rock_wait_process(void); +void minsect_tonbo_fly_process_init(void); +void minsect_tonbo_fly_process(void); +void minsect_tonbo_mv(void); +void minsect_tonbo_dw(void); +void minsect_tonbo_MoveF(void); + +// ac_museum_insect_batta.c_inc +void mi_batta_check_player(void); +void mi_batta_suzumushi_hane_anime(void); +void mi_batta_hane_anime(void); +void minsect_batta_ct(void); +void minsect_batta_normal_process_init(void); +void minsect_batta_normal_process(void); +void minsect_batta_silent_process_init(void); +void minsect_batta_silent_process(void); +void minsect_batta_jump_wait_process_init(void); +void minsect_batta_jump_wait_process(void); +void minsect_batta_jump_process_init(void); +void minsect_batta_jump_process(void); +void minsect_batta_mv(void); +void minsect_batta_dw(void); + +// ac_museum_insect_tentou.c_inc +void mi_tentou_check_player(void); +void mi_tentou_kama_anime(void); +void mi_tentou_wait_init(void); +void mi_tentou_wait(void); +void mi_tentou_move_init(void); +void mi_tentou_move(void); +void mi_tentou_menace_init(void); +void mi_tentou_menace(void); +void mi_tentou_setupAction(void); +void minsect_tentou_ct(void); +void minsect_tentou_mv(void); +void minsect_tentou_dw(void); + +// ac_museum_insect_hachi.c_inc +void mi_hachi_hane_anime(void); +void mi_hachi_mitu_init(void); +void mi_hachi_mitu(void); +void mi_hachi_wait_init(void); +void mi_hachi_wait(void); +void mi_hachi_move_init(void); +void mi_hachi_move(void); +void mi_hachi_setupAction(void); +void minsect_hachi_ct(void); +void minsect_hachi_mv(void); +void minsect_hachi_dw(void); + +// ac_museum_insect_kabuto.c_inc +void minsect_kabuto_ct(void); +void minsect_kabuto_mv(void); +void minsect_kabuto_dw(void); + +// ac_museum_insect_kuwagata.c_inc +void mi_kuwagata_rensa_init(void); +void mi_kuwagata_rensa(void); +void mi_kuwagata_wait_init(void); +void mi_kuwagata_wait(void); +void mi_kuwagata_move_init(void); +void mi_kuwagata_move(void); +void mi_kuwagata_battle_init(void); +void mi_kuwagata_battle(void); +void mi_kuwagata_menace_init(void); +void mi_kuwagata_menace(void); +void mi_kuwagata_attack_init(void); +void mi_kuwagata_attack(void); +void mi_kuwagata_setupAction(void); +void minsect_kuwagata_ct(void); +void minsect_kuwagata_mv(void); +void minsect_kuwagata_dw(void); + +// ac_museum_insect_mino.c_inc +void minsect_mino_up_init(void); +void minsect_mino_up(void); +void minsect_mino_down_init(void); +void minsect_mino_down(void); +void minsect_mino_move_init(void); +void minsect_mino_move(void); +void minsect_mino_check_dush_player(void); +void minsect_mino_furiko(void); +void minsect_mino_wait_init(void); +void minsect_mino_wait(void); +void minsect_mino_hineri(void); +void minsect_mino_setupAction(void); +void minsect_mino_ct(void); +void minsect_mino_mv(void); +void minsect_mino_dw(void); + +// ac_museum_insect_kumo.c_inc +void minsect_kumo_hide_init(void); +void minsect_kumo_hide(void); +void minsect_kumo_up_init(void); +void minsect_kumo_up(void); +void minsect_kumo_down_init(void); +void minsect_kumo_down(void); +void minsect_kumo_move_init(void); +void minsect_kumo_move(void); +void minsect_kumo_check_player(void); +void minsect_kumo_furiko(void); +void minsect_kumo_wait_init(void); +void minsect_kumo_wait(void); +void minsect_kumo_hineri(void); +void minsect_kumo_setupAction(void); +void minsect_kumo_ct(void); +void minsect_kumo_mv(void); +void minsect_kumo_dw(void); + +// ac_museum_insect_goki.c_inc +void minsect_goki_ct(void); +void goki_player_check(void); +void goki_wall_hit_angle_corect_sub(void); +void goki_wall_hit_angle_corect(void); +void goki_set_talk_info_init(void); +void goki_talk_process(void); +void goki_talk_process_init(void); +void minsect_goki_mv(void); +void minsect_goki_dw(void); + +// ac_museum_insect_genji.c_inc +void mi_genji_check_player(void); +void genji_light_ct(void); +void genji_light_make(void); +void genji_light_anime(void); +void genji_light_move(void); +void genji_light_draw(void); +void minsect_genji_ct(void); +void minsect_genji_mv(void); +void minsect_genji_dw(void); + +// ac_museum_insect_dango.c_inc +void mi_dango_defence_anime(void); +void mi_dango_check_player(void); +void mi_dango_move_init(void); +void mi_dango_move(void); +void mi_dango_defence_init(void); +void mi_dango_defence(void); +void mi_dango_setupAction(void); +void minsect_dango_ct(void); +void minsect_dango_mv(void); +void minsect_dango_dw(void); + +// ac_museum_insect_okera.c_inc +void mi_okera_check_player(void); +void minsect_okera_ct(void); +void okera_dig_up_process_init(void); +void okera_dig_up_process(void); +void okera_normal_process_init(void); +void okera_normal_process(void); +void okera_dig_down_process_init(void); +void okera_dig_down_process(void); +void okera_dig_wait_process_init(void); +void okera_dig_wait_process(void); +void minsect_okera_mv(void); +void minsect_okera_dw(void); + +// ac_museum_insect_ka.c_inc +void minsect_ka_ct(void); +void minsect_ka_mv(void); +void minsect_ka_dw(void); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/src/actor/ac_museum_insect.c b/src/actor/ac_museum_insect.c new file mode 100644 index 00000000..b2b39516 --- /dev/null +++ b/src/actor/ac_museum_insect.c @@ -0,0 +1,203 @@ +#include "ac_museum_insect_priv.h" + +ACTOR_PROFILE Museum_Insect_Profile = { + mAc_PROFILE_MUSEUM_INSECT, + ACTOR_PART_BG, + ACTOR_STATE_CAN_MOVE_IN_DEMO_SCENES | ACTOR_STATE_NO_MOVE_WHILE_CULLED | ACTOR_STATE_NO_DRAW_WHILE_CULLED, + EMPTY_NO, + ACTOR_OBJ_BANK_408, + sizeof(MUSEUM_INSECT_ACTOR), + Museum_Insect_Actor_ct, + Museum_Insect_Actor_dt, + Museum_Insect_Actor_move, + Museum_Insect_Actor_draw, + NULL, +}; + +MUSEUM_INSECT_ACTOR* MI_Control_Actor; + +int Museum_Insect_GetMsgNo(ACTOR* actorx) { + static u8 item_name[mIN_ITEM_NAME_LEN]; + MUSEUM_INSECT_ACTOR* actor = (MUSEUM_INSECT_ACTOR*)actorx; + int insect_caught_by = actor->_2F80[actor->_2F7C].insectInfo; + s16 insect_no = ITM_INSECT_START + actor->_2F80[actor->_2F7C].insectName; + int msgNo; + mIN_copy_name_str(item_name, insect_no); + mMsg_Set_item_str_art(mMsg_Get_base_window_p(), mMsg_ITEM_STR0, item_name, ARRAY_COUNT(item_name), + mIN_get_item_article(insect_no)); + + if (insect_caught_by >= 1 && insect_caught_by <= 4) { + mMsg_Set_free_str(mMsg_Get_base_window_p(), mMsg_FREE_STR0, + common_data.save.save.private_data[insect_caught_by - 1].player_ID.player_name, 8); + } + + if (actor->_2F7C < actor->_2F78 - 1) { + if (insect_caught_by >= 1 && insect_caught_by <= 4) { + msgNo = 0x2fa2; + } else { + msgNo = 0x2fa3; + } + } else { + if (insect_caught_by >= 1 && insect_caught_by <= 4) { + msgNo = 0x2f9f; + } else { + msgNo = 0x2fa0; + } + } + + return msgNo; +} + +int Museum_Insect_Check_Talk_Distance(GAME* game, int i) { + static xyz_t kanban_pos[6] = { { 140.f, 40.f, 60.f }, { 420.f, 40.f, 60.f }, { 220.f, 40.f, 300.f }, + { 380.f, 40.f, 300.f }, { 180.f, 40.f, 540.f }, { 340.f, 40.f, 540.f } }; + GAME_PLAY* play = (GAME_PLAY*)game; + xyz_t p; + PLAYER_ACTOR* player_actor = get_player_actor_withoutCheck(play); + s16 newAngle = player_actor->actor_class.world.angle.y + DEG2SHORT_ANGLE(-180); + xyz_t_sub(&player_actor->actor_class.world.position, &kanban_pos[i], &p); + + if (ABS(p.x) < 20.f && ABS(p.z) < 20.f && ABS(newAngle) < DEG2SHORT_ANGLE(67.5f)) { + return TRUE; + } + return FALSE; +} + +void Museum_Insect_Set_MsgInsectInfo(ACTOR* actorx, int groupNum) { + MUSEUM_INSECT_ACTOR* actor = (MUSEUM_INSECT_ACTOR*)actorx; + int i; + static int group_max_num[6] = { 7, 6, 6, 6, 7, 7 }; + static int group_1_insect_name[7] = { 22, 4, 21, 29, 38, 20, 7 }; + static int group_2_insect_name[6] = { 31, 30, 19, 5, 23, 6 }; + static int group_3_insect_name[6] = { 0, 25, 26, 1, 27, 2 }; + static int group_4_insect_name[6] = { 32, 34, 37, 3, 24, 39 }; + static int group_5_insect_name[7] = { 35, 8, 33, 9, 10, 11, 12 }; + static int group_6_insect_name[7] = { 15, 16, 18, 17, 13, 14, 36 }; + static int* group_insect_name[6] = { group_1_insect_name, group_2_insect_name, group_3_insect_name, + group_4_insect_name, group_5_insect_name, group_6_insect_name }; + actor->_2F78 = 0; + actor->_2F7C = 0; + for (i = 0; i < group_max_num[groupNum]; i++) { + s16 insectName = group_insect_name[groupNum][i]; + s16 s = mMmd_InsectInfo(insectName); + if (s) { + actor->_2F80[actor->_2F78].insectName = insectName; + actor->_2F80[actor->_2F78].insectInfo = s; + actor->_2F78++; + } + } +} + +void Museum_Insect_set_talk_info(ACTOR* actorx) { + MUSEUM_INSECT_ACTOR* actor = (MUSEUM_INSECT_ACTOR*)actorx; + int x; + if (actor->_2F78 > 0) { + x = Museum_Insect_GetMsgNo(actorx); + actor->_2F7C++; + } else { + x = 0x2fa1; + } + mDemo_Set_talk_window_color(&window_color); + mDemo_Set_msg_num(x); + mDemo_Set_talk_display_name(FALSE); + mDemo_Set_ListenAble(); + mDemo_Set_camera(CAMERA2_PROCESS_NORMAL); + mDemo_Set_use_zoom_sound(TRUE); +} + +void Museum_Insect_Talk_process(ACTOR* actorx, GAME* game) { + MUSEUM_INSECT_ACTOR* actor = (MUSEUM_INSECT_ACTOR*)actorx; + if (mDemo_Check(mDemo_TYPE_SPEAK, actorx)) { + s_xyz rot = get_player_actor_withoutCheck((GAME_PLAY*)game)->actor_class.shape_info.rotation; + add_calc_short_angle2(&rot.y, DEG2SHORT_ANGLE(-180), 0.3f, DEG2SHORT_ANGLE(22.5), DEG2SHORT_ANGLE(0)); + get_player_actor_withoutCheck((GAME_PLAY*)gamePT) + ->Set_force_position_angle_proc(gamePT, NULL, &rot, mPlayer_FORCE_POSITION_ANGLE_ROTY); + if (mMsg_Check_MainNormalContinue(mMsg_Get_base_window_p())) { + int choice = mChoice_Get_ChoseNum(mChoice_Get_base_window_p()); + if (choice != -1) { + if (choice == 0) { + int msgNum = Museum_Insect_GetMsgNo(actorx); + actor->_2F7C++; + mMsg_Set_continue_msg_num(mMsg_Get_base_window_p(), msgNum); + mMsg_Unset_LockContinue(mMsg_Get_base_window_p()); + } else { + mMsg_Set_CancelNormalContinue(mMsg_Get_base_window_p()); + mMsg_Unset_LockContinue(mMsg_Get_base_window_p()); + } + } + } + } else if (chkTrigger(BUTTON_A) && !mDemo_Get_talk_actor()) { + int i; + for (i = 0; i < 6; i++) { + if (Museum_Insect_Check_Talk_Distance(game, i)) { + Museum_Insect_Set_MsgInsectInfo(actorx, i); + mDemo_Request(mDemo_TYPE_SPEAK, actorx, Museum_Insect_set_talk_info); + } + } + } +} + +void Museum_Insect_Actor_ct(ACTOR* actorx, GAME* game) { + int i; + MUSEUM_INSECT_ACTOR* actor = (MUSEUM_INSECT_ACTOR*)actorx; + MI_Control_Actor = actor; + for (i = 0; i < 5; i++) { + actor->_2F9C[i] = 0; + } + for (i = 0; i < aINS_INSECT_TYPE_NUM; i++) { + if (mMmd_InsectInfo(i)) { + actor->privInsects[i]._8C |= 1; + actor->privInsects[i]._00 = i; + actor->privInsects[i]._14 = minsect_scale_tbl[i]; + set_relax_active_time(&actor->privInsects[i], game); + minsect_ct[i](&actor->privInsects[i], game); + } + } +} + +void Museum_Insect_Actor_dt(ACTOR* actor, GAME* game) { + return; +} + +void Museum_Insect_Actor_move(ACTOR* actorx, GAME* game) { + MUSEUM_INSECT_ACTOR* actor = (MUSEUM_INSECT_ACTOR*)actorx; + int i; + actor->actor.world.position.y = 4000.f; + Museum_Insect_Talk_process(actorx, game); + for (i = 0; i < aINS_INSECT_TYPE_NUM; i++) { + if (actor->privInsects[i]._8C & 1) { + minsect_mv[i](&actor->privInsects[i], game); + } + } +} + +extern EVW_ANIME_DATA obj_museum4_water_evw_anime; +extern Gfx obj_museum4_water_modelT[]; + +void Museum_Insect_Actor_draw(ACTOR* actorx, GAME* game) { + MUSEUM_INSECT_ACTOR* actor = (MUSEUM_INSECT_ACTOR*)actorx; + GRAPH* graph; + int i; + _texture_z_light_fog_prim_xlu(game->graph); + Evw_Anime_Set((GAME_PLAY*)game, &obj_museum4_water_evw_anime); + graph = game->graph; + Matrix_translate(100.0f, 0.0f, 0.0f, FALSE); + Matrix_scale(0.01f, 0.01f, 0.01f, TRUE); + OPEN_DISP(graph); + gSPMatrix(NEXT_POLY_XLU_DISP, _Matrix_to_Mtx_new(game->graph), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(NEXT_POLY_XLU_DISP, obj_museum4_water_modelT); + CLOSE_DISP(graph); + for (i = 0; i < aINS_INSECT_TYPE_NUM; i++) { + if (actor->privInsects[i]._8C & 1) { + if (GETREG(TAKREG, 0) == i + 1) { + actor->privInsects[i]._14 = (GETREG(TAKREG, 1) * 0.0001f) + minsect_scale_tbl[i]; + } + minsect_dw[i](&actor->privInsects[i], game); + if (GETREG(TAKREG, 0) == i + 1) { + actor->privInsects[i]._14 = minsect_scale_tbl[i]; + } + } + } +} + +#include "../src/actor/ac_museum_insect_base.c_inc" diff --git a/src/actor/ac_museum_insect_base.c_inc b/src/actor/ac_museum_insect_base.c_inc new file mode 100644 index 00000000..ecdf8923 --- /dev/null +++ b/src/actor/ac_museum_insect_base.c_inc @@ -0,0 +1,17 @@ +#include "ac_museum_insect_priv.h" + +#include "../src/actor/ac_museum_insect_chou.c_inc" +#include "../src/actor/ac_museum_insect_semi.c_inc" +#include "../src/actor/ac_museum_insect_tonbo.c_inc" +#include "../src/actor/ac_museum_insect_batta.c_inc" +#include "../src/actor/ac_museum_insect_tentou.c_inc" +#include "../src/actor/ac_museum_insect_hachi.c_inc" +#include "../src/actor/ac_museum_insect_kabuto.c_inc" +#include "../src/actor/ac_museum_insect_kuwagata.c_inc" +#include "../src/actor/ac_museum_insect_mino.c_inc" +#include "../src/actor/ac_museum_insect_kumo.c_inc" +#include "../src/actor/ac_museum_insect_goki.c_inc" +#include "../src/actor/ac_museum_insect_genji.c_inc" +#include "../src/actor/ac_museum_insect_dango.c_inc" +#include "../src/actor/ac_museum_insect_okera.c_inc" +#include "../src/actor/ac_museum_insect_ka.c_inc" diff --git a/src/actor/ac_museum_insect_batta.c_inc b/src/actor/ac_museum_insect_batta.c_inc new file mode 100644 index 00000000..356389bc --- /dev/null +++ b/src/actor/ac_museum_insect_batta.c_inc @@ -0,0 +1 @@ +#include "ac_museum_insect_priv.h" diff --git a/src/actor/ac_museum_insect_chou.c_inc b/src/actor/ac_museum_insect_chou.c_inc new file mode 100644 index 00000000..356389bc --- /dev/null +++ b/src/actor/ac_museum_insect_chou.c_inc @@ -0,0 +1 @@ +#include "ac_museum_insect_priv.h" diff --git a/src/actor/ac_museum_insect_dango.c_inc b/src/actor/ac_museum_insect_dango.c_inc new file mode 100644 index 00000000..356389bc --- /dev/null +++ b/src/actor/ac_museum_insect_dango.c_inc @@ -0,0 +1 @@ +#include "ac_museum_insect_priv.h" diff --git a/src/actor/ac_museum_insect_genji.c_inc b/src/actor/ac_museum_insect_genji.c_inc new file mode 100644 index 00000000..356389bc --- /dev/null +++ b/src/actor/ac_museum_insect_genji.c_inc @@ -0,0 +1 @@ +#include "ac_museum_insect_priv.h" diff --git a/src/actor/ac_museum_insect_goki.c_inc b/src/actor/ac_museum_insect_goki.c_inc new file mode 100644 index 00000000..356389bc --- /dev/null +++ b/src/actor/ac_museum_insect_goki.c_inc @@ -0,0 +1 @@ +#include "ac_museum_insect_priv.h" diff --git a/src/actor/ac_museum_insect_hachi.c_inc b/src/actor/ac_museum_insect_hachi.c_inc new file mode 100644 index 00000000..356389bc --- /dev/null +++ b/src/actor/ac_museum_insect_hachi.c_inc @@ -0,0 +1 @@ +#include "ac_museum_insect_priv.h" diff --git a/src/actor/ac_museum_insect_ka.c_inc b/src/actor/ac_museum_insect_ka.c_inc new file mode 100644 index 00000000..356389bc --- /dev/null +++ b/src/actor/ac_museum_insect_ka.c_inc @@ -0,0 +1 @@ +#include "ac_museum_insect_priv.h" diff --git a/src/actor/ac_museum_insect_kabuto.c_inc b/src/actor/ac_museum_insect_kabuto.c_inc new file mode 100644 index 00000000..356389bc --- /dev/null +++ b/src/actor/ac_museum_insect_kabuto.c_inc @@ -0,0 +1 @@ +#include "ac_museum_insect_priv.h" diff --git a/src/actor/ac_museum_insect_kumo.c_inc b/src/actor/ac_museum_insect_kumo.c_inc new file mode 100644 index 00000000..356389bc --- /dev/null +++ b/src/actor/ac_museum_insect_kumo.c_inc @@ -0,0 +1 @@ +#include "ac_museum_insect_priv.h" diff --git a/src/actor/ac_museum_insect_kuwagata.c_inc b/src/actor/ac_museum_insect_kuwagata.c_inc new file mode 100644 index 00000000..356389bc --- /dev/null +++ b/src/actor/ac_museum_insect_kuwagata.c_inc @@ -0,0 +1 @@ +#include "ac_museum_insect_priv.h" diff --git a/src/actor/ac_museum_insect_mino.c_inc b/src/actor/ac_museum_insect_mino.c_inc new file mode 100644 index 00000000..356389bc --- /dev/null +++ b/src/actor/ac_museum_insect_mino.c_inc @@ -0,0 +1 @@ +#include "ac_museum_insect_priv.h" diff --git a/src/actor/ac_museum_insect_okera.c_inc b/src/actor/ac_museum_insect_okera.c_inc new file mode 100644 index 00000000..356389bc --- /dev/null +++ b/src/actor/ac_museum_insect_okera.c_inc @@ -0,0 +1 @@ +#include "ac_museum_insect_priv.h" diff --git a/src/actor/ac_museum_insect_semi.c_inc b/src/actor/ac_museum_insect_semi.c_inc new file mode 100644 index 00000000..356389bc --- /dev/null +++ b/src/actor/ac_museum_insect_semi.c_inc @@ -0,0 +1 @@ +#include "ac_museum_insect_priv.h" diff --git a/src/actor/ac_museum_insect_tentou.c_inc b/src/actor/ac_museum_insect_tentou.c_inc new file mode 100644 index 00000000..356389bc --- /dev/null +++ b/src/actor/ac_museum_insect_tentou.c_inc @@ -0,0 +1 @@ +#include "ac_museum_insect_priv.h" diff --git a/src/actor/ac_museum_insect_tonbo.c_inc b/src/actor/ac_museum_insect_tonbo.c_inc new file mode 100644 index 00000000..356389bc --- /dev/null +++ b/src/actor/ac_museum_insect_tonbo.c_inc @@ -0,0 +1 @@ +#include "ac_museum_insect_priv.h"