diff --git a/src/f_furniture.c b/src/f_furniture.c index eb723303..14a88064 100644 --- a/src/f_furniture.c +++ b/src/f_furniture.c @@ -48,6 +48,7 @@ static u16 fFTR_myhome_on_pal_table[][16] = { static void fFTR_MorphHousePalette(u16* dst_pal_p, u16* off_pal_p, u16* on_pal_p, FTR_ACTOR* ftr_actor) { f32 target; + f32 now; int i; if (ftr_actor->switch_bit == TRUE) { @@ -56,13 +57,14 @@ static void fFTR_MorphHousePalette(u16* dst_pal_p, u16* off_pal_p, u16* on_pal_p target = 0.0f; } - if (ftr_actor->dynamic_work_f[0] > target) { + now = ftr_actor->dynamic_work_f[0]; + if (now > target) { ftr_actor->dynamic_work_f[0] -= 0.1f; if (ftr_actor->dynamic_work_f[0] < target) { ftr_actor->dynamic_work_f[0] = target; } - } else if (ftr_actor->dynamic_work_f[0] < target) { + } else if (now < target) { ftr_actor->dynamic_work_f[0] += 0.1f; if (ftr_actor->dynamic_work_f[0] > target) { @@ -70,33 +72,36 @@ static void fFTR_MorphHousePalette(u16* dst_pal_p, u16* off_pal_p, u16* on_pal_p } } - for (i = 0; i < 16; i++) { - f32 work; + if (dst_pal_p != NULL) { + for (i = 0; i < 16; i++) { + // clang-format off - // We assume that the palette will be RGB5A3 with no alpha component so: - // [1][rrrrr][ggggg][bbbbb] - dst_pal_p[i] = 0; + // We assume that the palette will be RGB5A3 with no alpha component so: + // [1][rrrrr][ggggg][bbbbb] + dst_pal_p[i] = 0; - // Red - work = (f32)((off_pal_p[i] >> 10) & 0x1F); - dst_pal_p[i] |= - ((u16)(work + ftr_actor->dynamic_work_f[0] * ((f32)((off_pal_p[i] >> 10) & 0x1F) - work)) & 0x1F) << 10; + // Red + dst_pal_p[i] |= ((u16)((f32)((off_pal_p[i] >> 10) & 0x1F) + + ftr_actor->dynamic_work_f[0] * + ((f32)((on_pal_p[i] >> 10) & 0x1F) - (f32)((off_pal_p[i] >> 10) & 0x1F))) & 0x1F) << 10; - // Green - work = (f32)((off_pal_p[i] >> 5) & 0x1F); - dst_pal_p[i] |= ((u16)(work + ftr_actor->dynamic_work_f[0] * ((f32)((off_pal_p[i] >> 5) & 0x1F) - work)) & 0x1F) - << 5; + // Green + dst_pal_p[i] |= ((u16)((f32)((off_pal_p[i] >> 5) & 0x1F) + + ftr_actor->dynamic_work_f[0] * + ((f32)((on_pal_p[i] >> 5) & 0x1F) - (f32)((off_pal_p[i] >> 5) & 0x1F))) & 0x1F) << 5; - // Blue - work = (f32)((off_pal_p[i] >> 0) & 0x1F); - dst_pal_p[i] |= ((u16)(work + ftr_actor->dynamic_work_f[0] * ((f32)((off_pal_p[i] >> 0) & 0x1F) - work)) & 0x1F) - << 0; + // Blue + dst_pal_p[i] |= ((u16)((f32)((off_pal_p[i] >> 0) & 0x1F) + + ftr_actor->dynamic_work_f[0] * + ((f32)((on_pal_p[i] >> 0) & 0x1F) - (f32)((off_pal_p[i] >> 0) & 0x1F))) & 0x1F) << 0; - // Alpha-bit (not sure why they bother even masking this out) - dst_pal_p[i] |= (u16)(off_pal_p[i] & 0x8000); + // Alpha-bit (not sure why they bother even masking this out) + dst_pal_p[i] |= (u16)(off_pal_p[i] & 0x8000); + // clang-format on + } + + DCStoreRangeNoSync(dst_pal_p, 16 * sizeof(u16)); } - - DCStoreRangeNoSync(dst_pal_p, 16 * sizeof(u16)); } static void fFTR_MorphHousepaletteCt(u16* dst_pal_p, u16* off_pal_p, u16* on_pal_p, FTR_ACTOR* ftr_actor) { @@ -114,7 +119,7 @@ static Gfx* fFTR_GetTwoTileGfx(int width0, int height0, int scroll_x0, int scrol u32 ctr_ofs; int ofs; - if (ftr_actor->ctr_type) { + if (ftr_actor->ctr_type == aFTR_CTR_TYPE_GAME_PLAY) { ctr_ofs = play->game_frame; } else { ctr_ofs = play->game.frame_counter; @@ -225,7 +230,7 @@ static Gfx* fFTR_GetTwoTileGfx(int width0, int height0, int scroll_x0, int scrol #include "../src/ftr/ac_kob_jimudesk.c" #include "../src/ftr/ac_kob_jimuisu.c" #include "../src/ftr/ac_kob_locker1.c" -// #include "../src/ftr/ac_kob_mastersword.c" +#include "../src/ftr/ac_kob_mastersword.c" #include "../src/ftr/ac_kob_ncube.c" #include "../src/ftr/ac_kob_pipeisu.c" #include "../src/ftr/ac_kob_rika_desk.c" @@ -319,12 +324,12 @@ static Gfx* fFTR_GetTwoTileGfx(int width0, int height0, int scroll_x0, int scrol #include "../src/ftr/ac_nog_suzuki.c" #include "../src/ftr/ac_nog_shop1.c" #include "../src/ftr/ac_nog_tai.c" -// #include "../src/ftr/ac_nog_tri_audio01.c" +#include "../src/ftr/ac_nog_tri_audio01.c" #include "../src/ftr/ac_nog_tri_bed01.c" #include "../src/ftr/ac_nog_tri_chair01.c" -// #include "../src/ftr/ac_nog_tri_chest01.c" -// #include "../src/ftr/ac_nog_tri_chest02.c" -// #include "../src/ftr/ac_nog_tri_chest03.c" +#include "../src/ftr/ac_nog_tri_chest01.c" +#include "../src/ftr/ac_nog_tri_chest02.c" +#include "../src/ftr/ac_nog_tri_chest03.c" #include "../src/ftr/ac_nog_tri_clock01.c" #include "../src/ftr/ac_nog_tri_rack01.c" #include "../src/ftr/ac_nog_tri_sofa01.c" @@ -337,7 +342,7 @@ static Gfx* fFTR_GetTwoTileGfx(int width0, int height0, int scroll_x0, int scrol #include "../src/ftr/ac_nog_zarigani.c" #include "../src/ftr/ac_nog_zassou.c" #include "../src/ftr/ac_nog_w_tree.c" -// #include "../src/ftr/ac_sum_abura.c" +#include "../src/ftr/ac_sum_abura.c" #include "../src/ftr/ac_sum_akiakane.c" #include "../src/ftr/ac_sum_angel.c" #include "../src/ftr/ac_sum_aroana.c" @@ -358,41 +363,41 @@ static Gfx* fFTR_GetTwoTileGfx(int width0, int height0, int scroll_x0, int scrol #include "../src/ftr/ac_sum_asi_chair01.c" #include "../src/ftr/ac_sum_asi_chair02.c" #include "../src/ftr/ac_sum_asi_chest01.c" -// #include "../src/ftr/ac_sum_asi_chest02.c" -// #include "../src/ftr/ac_sum_asi_chest03.c" +#include "../src/ftr/ac_sum_asi_chest02.c" +#include "../src/ftr/ac_sum_asi_chest03.c" #include "../src/ftr/ac_sum_asi_lanp01.c" #include "../src/ftr/ac_sum_asi_screen01.c" #include "../src/ftr/ac_sum_asi_table01.c" #include "../src/ftr/ac_sum_asi_table02.c" -// #include "../src/ftr/ac_sum_asi_taiko.c" +#include "../src/ftr/ac_sum_asi_taiko.c" #include "../src/ftr/ac_sum_ayu.c" #include "../src/ftr/ac_sum_baketu.c" #include "../src/ftr/ac_sum_bass.c" -// #include "../src/ftr/ac_sum_bass01.c" +#include "../src/ftr/ac_sum_bass01.c" #include "../src/ftr/ac_sum_bassl.c" #include "../src/ftr/ac_sum_bassm.c" #include "../src/ftr/ac_sum_bdcake01.c" #include "../src/ftr/ac_sum_billiads.c" -// #include "../src/ftr/ac_sum_biwa01.c" +#include "../src/ftr/ac_sum_biwa01.c" #include "../src/ftr/ac_sum_bla_bed01.c" #include "../src/ftr/ac_sum_bla_chair02.c" -// #include "../src/ftr/ac_sum_bla_chest01.c" +#include "../src/ftr/ac_sum_bla_chest01.c" #include "../src/ftr/ac_sum_bla_chest02.c" -// #include "../src/ftr/ac_sum_bla_chest03.c" +#include "../src/ftr/ac_sum_bla_chest03.c" #include "../src/ftr/ac_sum_bla_desk01.c" -// #include "../src/ftr/ac_sum_bla_lanp.c" +#include "../src/ftr/ac_sum_bla_lanp.c" #include "../src/ftr/ac_sum_bla_sofa02.c" #include "../src/ftr/ac_sum_bla_table01.c" #include "../src/ftr/ac_sum_bla_table02.c" #include "../src/ftr/ac_sum_blue_bed01.c" #include "../src/ftr/ac_sum_blue_bench01.c" -// #include "../src/ftr/ac_sum_blue_bureau01.c" -// #include "../src/ftr/ac_sum_blue_cab01.c" +#include "../src/ftr/ac_sum_blue_bureau01.c" +#include "../src/ftr/ac_sum_blue_cab01.c" #include "../src/ftr/ac_sum_blue_chair01.c" #include "../src/ftr/ac_sum_blue_chest01.c" #include "../src/ftr/ac_sum_blue_chest02.c" #include "../src/ftr/ac_sum_blue_clk.c" -// #include "../src/ftr/ac_sum_blue_lowchest01.c" +#include "../src/ftr/ac_sum_blue_lowchest01.c" #include "../src/ftr/ac_sum_blue_table01.c" #include "../src/ftr/ac_sum_bon_boke.c" #include "../src/ftr/ac_sum_bon_matu01.c" @@ -405,33 +410,33 @@ static Gfx* fFTR_GetTwoTileGfx(int width0, int height0, int scroll_x0, int scrol #include "../src/ftr/ac_sum_bon_turu.c" #include "../src/ftr/ac_sum_bon_ume.c" #include "../src/ftr/ac_sum_bookcht01.c" -// #include "../src/ftr/ac_sum_casse01.c" -// #include "../src/ftr/ac_sum_cello01.c" +#include "../src/ftr/ac_sum_casse01.c" +#include "../src/ftr/ac_sum_cello01.c" #include "../src/ftr/ac_sum_chair01.c" -// #include "../src/ftr/ac_sum_chikuon01.c" -// #include "../src/ftr/ac_sum_chikuon02.c" +#include "../src/ftr/ac_sum_chikuon01.c" +#include "../src/ftr/ac_sum_chikuon02.c" #include "../src/ftr/ac_sum_classiccabinet01.c" #include "../src/ftr/ac_sum_classicchair01.c" -// #include "../src/ftr/ac_sum_classicchest01.c" +#include "../src/ftr/ac_sum_classicchest01.c" #include "../src/ftr/ac_sum_classicchest02.c" #include "../src/ftr/ac_sum_classictable01.c" #include "../src/ftr/ac_sum_classicwardrope01.c" #include "../src/ftr/ac_sum_clbed02.c" #include "../src/ftr/ac_sum_clchair02.c" -// #include "../src/ftr/ac_sum_clchest03.c" +#include "../src/ftr/ac_sum_clchest03.c" #include "../src/ftr/ac_sum_col_chair01.c" #include "../src/ftr/ac_sum_col_chair02.c" #include "../src/ftr/ac_sum_col_chair03.c" #include "../src/ftr/ac_sum_comp01.c" -// #include "../src/ftr/ac_sum_conga01.c" -// #include "../src/ftr/ac_sum_conpo01.c" -// #include "../src/ftr/ac_sum_conpo02.c" +#include "../src/ftr/ac_sum_conga01.c" +#include "../src/ftr/ac_sum_conpo01.c" +#include "../src/ftr/ac_sum_conpo02.c" #include "../src/ftr/ac_sum_cont_bed01.c" #include "../src/ftr/ac_sum_cont_cab01.c" #include "../src/ftr/ac_sum_cont_chair01.c" #include "../src/ftr/ac_sum_cont_chest01.c" -// #include "../src/ftr/ac_sum_cont_chest02.c" -// #include "../src/ftr/ac_sum_cont_chest03.c" +#include "../src/ftr/ac_sum_cont_chest02.c" +#include "../src/ftr/ac_sum_cont_chest03.c" #include "../src/ftr/ac_sum_cont_sofa01.c" #include "../src/ftr/ac_sum_cont_sofa02.c" #include "../src/ftr/ac_sum_cont_table01.c" @@ -458,15 +463,15 @@ static Gfx* fFTR_GetTwoTileGfx(int width0, int height0, int scroll_x0, int scrol #include "../src/ftr/ac_sum_fruitchair02.c" #include "../src/ftr/ac_sum_fruitchair03.c" #include "../src/ftr/ac_sum_fruitchair04.c" -// #include "../src/ftr/ac_sum_fruitchest01.c" -// #include "../src/ftr/ac_sum_fruitchest03.c" +#include "../src/ftr/ac_sum_fruitchest01.c" +#include "../src/ftr/ac_sum_fruitchest03.c" #include "../src/ftr/ac_sum_fruitclk.c" #include "../src/ftr/ac_sum_fruittable01.c" #include "../src/ftr/ac_sum_fruittable02.c" #include "../src/ftr/ac_sum_fruittable03.c" #include "../src/ftr/ac_sum_fruittv01.c" #include "../src/ftr/ac_sum_funa.c" -// #include "../src/ftr/ac_sum_genji.c" +#include "../src/ftr/ac_sum_genji.c" #include "../src/ftr/ac_sum_gill.c" #include "../src/ftr/ac_sum_ginyanma.c" #include "../src/ftr/ac_sum_globe01.c" @@ -478,75 +483,75 @@ static Gfx* fFTR_GetTwoTileGfx(int width0, int height0, int scroll_x0, int scrol #include "../src/ftr/ac_sum_gre_chair01.c" #include "../src/ftr/ac_sum_gre_chair02.c" #include "../src/ftr/ac_sum_gre_chest01.c" -// #include "../src/ftr/ac_sum_gre_chest02.c" -// #include "../src/ftr/ac_sum_gre_chest03.c" +#include "../src/ftr/ac_sum_gre_chest02.c" +#include "../src/ftr/ac_sum_gre_chest03.c" #include "../src/ftr/ac_sum_gre_counter01.c" #include "../src/ftr/ac_sum_gre_desk01.c" -// #include "../src/ftr/ac_sum_gre_lanp01.c" +#include "../src/ftr/ac_sum_gre_lanp01.c" #include "../src/ftr/ac_sum_gre_table01.c" -// #include "../src/ftr/ac_sum_guitar01.c" -// #include "../src/ftr/ac_sum_guitar02.c" -// #include "../src/ftr/ac_sum_guitar03.c" +#include "../src/ftr/ac_sum_guitar01.c" +#include "../src/ftr/ac_sum_guitar02.c" +#include "../src/ftr/ac_sum_guitar03.c" #include "../src/ftr/ac_sum_gupi.c" #include "../src/ftr/ac_sum_hachi.c" #include "../src/ftr/ac_sum_hal_bed01.c" #include "../src/ftr/ac_sum_hal_box01.c" #include "../src/ftr/ac_sum_hal_chair01.c" #include "../src/ftr/ac_sum_hal_chest01.c" -// #include "../src/ftr/ac_sum_hal_chest02.c" -// #include "../src/ftr/ac_sum_hal_chest03.c" +#include "../src/ftr/ac_sum_hal_chest02.c" +#include "../src/ftr/ac_sum_hal_chest03.c" #include "../src/ftr/ac_sum_hal_clk01.c" #include "../src/ftr/ac_sum_hal_lanp01.c" #include "../src/ftr/ac_sum_hal_mirror01.c" #include "../src/ftr/ac_sum_hal_pkin.c" #include "../src/ftr/ac_sum_hal_sofa01.c" #include "../src/ftr/ac_sum_hal_table01.c" -// #include "../src/ftr/ac_sum_harp.c" +#include "../src/ftr/ac_sum_harp.c" #include "../src/ftr/ac_sum_hera.c" -// #include "../src/ftr/ac_sum_higurashi.c" +#include "../src/ftr/ac_sum_higurashi.c" #include "../src/ftr/ac_sum_hirata.c" #include "../src/ftr/ac_sum_ito.c" #include "../src/ftr/ac_sum_iwana.c" -// #include "../src/ftr/ac_sum_jukebox.c" +#include "../src/ftr/ac_sum_jukebox.c" #include "../src/ftr/ac_sum_kabuto.c" #include "../src/ftr/ac_sum_kamakiri.c" #include "../src/ftr/ac_sum_kanabun.c" #include "../src/ftr/ac_sum_kaseki.c" #include "../src/ftr/ac_sum_kiageha.c" #include "../src/ftr/ac_sum_kingyo.c" -// #include "../src/ftr/ac_sum_kirigirisu.c" -// #include "../src/ftr/ac_sum_kisha.c" +#include "../src/ftr/ac_sum_kirigirisu.c" +#include "../src/ftr/ac_sum_kisha.c" #include "../src/ftr/ac_sum_kitchair01.c" #include "../src/ftr/ac_sum_kittable01.c" #include "../src/ftr/ac_sum_koi.c" #include "../src/ftr/ac_sum_kokuban.c" -// #include "../src/ftr/ac_sum_koorogi.c" +#include "../src/ftr/ac_sum_koorogi.c" #include "../src/ftr/ac_sum_liccabed.c" #include "../src/ftr/ac_sum_liccachair.c" -// #include "../src/ftr/ac_sum_liccachest.c" +#include "../src/ftr/ac_sum_liccachest.c" #include "../src/ftr/ac_sum_liccakitchen.c" #include "../src/ftr/ac_sum_liccalanp.c" -// #include "../src/ftr/ac_sum_liccalowchest.c" +#include "../src/ftr/ac_sum_liccalowchest.c" #include "../src/ftr/ac_sum_liccalowtable.c" #include "../src/ftr/ac_sum_liccamirror.c" -// #include "../src/ftr/ac_sum_liccapiano.c" +#include "../src/ftr/ac_sum_liccapiano.c" #include "../src/ftr/ac_sum_liccasofa.c" #include "../src/ftr/ac_sum_liccatable.c" #include "../src/ftr/ac_sum_log_bed01.c" #include "../src/ftr/ac_sum_log_chair01.c" #include "../src/ftr/ac_sum_log_chair02.c" #include "../src/ftr/ac_sum_log_chair03.c" -// #include "../src/ftr/ac_sum_log_chest01.c" -// #include "../src/ftr/ac_sum_log_chest02.c" +#include "../src/ftr/ac_sum_log_chest01.c" +#include "../src/ftr/ac_sum_log_chest02.c" #include "../src/ftr/ac_sum_log_chest03.c" #include "../src/ftr/ac_sum_log_hatoclk.c" #include "../src/ftr/ac_sum_log_table01.c" #include "../src/ftr/ac_sum_log_table02.c" -// #include "../src/ftr/ac_sum_lv_stereo.c" -// #include "../src/ftr/ac_sum_matumushi.c" -// #include "../src/ftr/ac_sum_md01.c" +#include "../src/ftr/ac_sum_lv_stereo.c" +#include "../src/ftr/ac_sum_matumushi.c" +#include "../src/ftr/ac_sum_md01.c" #include "../src/ftr/ac_sum_mezaclock.c" -// #include "../src/ftr/ac_sum_minmin.c" +#include "../src/ftr/ac_sum_minmin.c" #include "../src/ftr/ac_sum_misin01.c" #include "../src/ftr/ac_sum_miyama.c" #include "../src/ftr/ac_sum_mizunomi.c" @@ -566,8 +571,8 @@ static Gfx* fFTR_GetTwoTileGfx(int width0, int height0, int scroll_x0, int scrol #include "../src/ftr/ac_sum_oldsofa01.c" #include "../src/ftr/ac_sum_oniyanma.c" #include "../src/ftr/ac_sum_oonamazu.c" -// #include "../src/ftr/ac_sum_pet01.c" -// #include "../src/ftr/ac_sum_piano01.c" +#include "../src/ftr/ac_sum_pet01.c" +#include "../src/ftr/ac_sum_piano01.c" #include "../src/ftr/ac_sum_pirania.c" #include "../src/ftr/ac_sum_pl_aloe01.c" #include "../src/ftr/ac_sum_pl_ananas.c" @@ -590,12 +595,12 @@ static Gfx* fFTR_GetTwoTileGfx(int width0, int height0, int scroll_x0, int scrol #include "../src/ftr/ac_sum_poptable01.c" #include "../src/ftr/ac_sum_poptable02.c" #include "../src/ftr/ac_sum_poptable03.c" -// #include "../src/ftr/ac_sum_radio01.c" -// #include "../src/ftr/ac_sum_radio02.c" +#include "../src/ftr/ac_sum_radio01.c" +#include "../src/ftr/ac_sum_radio02.c" #include "../src/ftr/ac_sum_raigyo.c" #include "../src/ftr/ac_sum_ratan_bed01.c" -// #include "../src/ftr/ac_sum_ratan_chest01.c" -// #include "../src/ftr/ac_sum_ratan_chest02.c" +#include "../src/ftr/ac_sum_ratan_chest01.c" +#include "../src/ftr/ac_sum_ratan_chest02.c" #include "../src/ftr/ac_sum_ratan_chest03.c" #include "../src/ftr/ac_sum_ratan_isu01.c" #include "../src/ftr/ac_sum_ratan_isu02.c" @@ -603,12 +608,12 @@ static Gfx* fFTR_GetTwoTileGfx(int width0, int height0, int scroll_x0, int scrol #include "../src/ftr/ac_sum_ratan_mirror.c" #include "../src/ftr/ac_sum_ratan_screen.c" #include "../src/ftr/ac_sum_ratan_table01.c" -// #include "../src/ftr/ac_sum_reco01.c" +#include "../src/ftr/ac_sum_reco01.c" #include "../src/ftr/ac_sum_roboclk.c" -// #include "../src/ftr/ac_sum_roboconpo.c" +#include "../src/ftr/ac_sum_roboconpo.c" #include "../src/ftr/ac_sum_sabo01.c" #include "../src/ftr/ac_sum_sabo02.c" -// #include "../src/ftr/ac_sum_saiconpo.c" +#include "../src/ftr/ac_sum_saiconpo.c" #include "../src/ftr/ac_sum_sake.c" #include "../src/ftr/ac_sum_shiokara.c" #include "../src/ftr/ac_sum_shoukaki.c" @@ -616,22 +621,22 @@ static Gfx* fFTR_GetTwoTileGfx(int width0, int height0, int scroll_x0, int scrol #include "../src/ftr/ac_sum_sofe01.c" #include "../src/ftr/ac_sum_sofe02.c" #include "../src/ftr/ac_sum_sofe03.c" -// #include "../src/ftr/ac_sum_stereo01.c" -// #include "../src/ftr/ac_sum_stereo02.c" +#include "../src/ftr/ac_sum_stereo01.c" +#include "../src/ftr/ac_sum_stereo02.c" #include "../src/ftr/ac_sum_stove01.c" #include "../src/ftr/ac_sum_suberi01.c" -// #include "../src/ftr/ac_sum_suzumushi.c" -// #include "../src/ftr/ac_sum_syouryou.c" -// #include "../src/ftr/ac_sum_taiko01.c" +#include "../src/ftr/ac_sum_suzumushi.c" +#include "../src/ftr/ac_sum_syouryou.c" +#include "../src/ftr/ac_sum_taiko01.c" #include "../src/ftr/ac_sum_takkyu.c" #include "../src/ftr/ac_sum_tamamushi.c" #include "../src/ftr/ac_sum_tanago.c" #include "../src/ftr/ac_sum_taru01.c" #include "../src/ftr/ac_sum_taru02.c" -// #include "../src/ftr/ac_sum_tekin01.c" +#include "../src/ftr/ac_sum_tekin01.c" #include "../src/ftr/ac_sum_tentou.c" -// #include "../src/ftr/ac_sum_timpani01.c" -// #include "../src/ftr/ac_sum_tonosama.c" +#include "../src/ftr/ac_sum_timpani01.c" +#include "../src/ftr/ac_sum_tonosama.c" #include "../src/ftr/ac_sum_totemp01.c" #include "../src/ftr/ac_sum_totemp02.c" #include "../src/ftr/ac_sum_totemp03.c" @@ -640,7 +645,7 @@ static Gfx* fFTR_GetTwoTileGfx(int width0, int height0, int scroll_x0, int scrol #include "../src/ftr/ac_sum_touro02.c" #include "../src/ftr/ac_sum_touro03.c" #include "../src/ftr/ac_sum_touro04.c" -// #include "../src/ftr/ac_sum_tukutuku.c" +#include "../src/ftr/ac_sum_tukutuku.c" #include "../src/ftr/ac_sum_tv01.c" #include "../src/ftr/ac_sum_tv02.c" #include "../src/ftr/ac_sum_ugui.c" @@ -650,24 +655,24 @@ static Gfx* fFTR_GetTwoTileGfx(int width0, int height0, int scroll_x0, int scrol #include "../src/ftr/ac_sum_uwa_vase01.c" #include "../src/ftr/ac_sum_uwa_vase02.c" #include "../src/ftr/ac_sum_uwa_vase03.c" -// #include "../src/ftr/ac_sum_viola01.c" +#include "../src/ftr/ac_sum_viola01.c" #include "../src/ftr/ac_sum_wakasagi.c" #include "../src/ftr/ac_sum_wc01.c" #include "../src/ftr/ac_sum_wc02.c" #include "../src/ftr/ac_sum_whi_bed01.c" -// #include "../src/ftr/ac_sum_whi_chest01.c" -// #include "../src/ftr/ac_sum_whi_chest02.c" -// #include "../src/ftr/ac_sum_whi_lanp.c" +#include "../src/ftr/ac_sum_whi_chest01.c" +#include "../src/ftr/ac_sum_whi_chest02.c" +#include "../src/ftr/ac_sum_whi_lanp.c" #include "../src/ftr/ac_sum_whi_mirror.c" #include "../src/ftr/ac_sum_whi_sofa01.c" #include "../src/ftr/ac_sum_x_bed01.c" #include "../src/ftr/ac_sum_x_chair01.c" -// #include "../src/ftr/ac_sum_x_chest01.c" -// #include "../src/ftr/ac_sum_x_chest02.c" +#include "../src/ftr/ac_sum_x_chest01.c" +#include "../src/ftr/ac_sum_x_chest02.c" #include "../src/ftr/ac_sum_x_chest03.c" #include "../src/ftr/ac_sum_x_clk.c" #include "../src/ftr/ac_sum_x_lanp.c" -// #include "../src/ftr/ac_sum_x_piano.c" +#include "../src/ftr/ac_sum_x_piano.c" #include "../src/ftr/ac_sum_x_sofa01.c" #include "../src/ftr/ac_sum_x_table01.c" #include "../src/ftr/ac_sum_yamame.c" diff --git a/src/ftr/ac_kob_mastersword.c b/src/ftr/ac_kob_mastersword.c index b4651277..0650ac33 100644 --- a/src/ftr/ac_kob_mastersword.c +++ b/src/ftr/ac_kob_mastersword.c @@ -4,6 +4,31 @@ extern Gfx int_kob_mastersword_onT_model[]; static void aKobMasterSword_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aKobMasterSword01_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); +extern Gfx int_kob_mastersword_env_model[]; + +static void aKobMasterSword_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { +} + +static void aKobMasterSword01_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + GAME_PLAY* play = (GAME_PLAY*)game; + xyz_t light_direction; + xyz_t pos = ftr_actor->position; + + light_direction.x = play->kankyo.sun_light.lights.diffuse.x; + light_direction.y = play->kankyo.sun_light.lights.diffuse.y; + light_direction.z = play->kankyo.sun_light.lights.diffuse.z; + + pos.y += 300.0f; + + OPEN_DISP(game->graph); + + gDPPipeSync(NEXT_POLY_OPA_DISP); + HiliteReflect_init(&pos, &play->view.eye, &light_direction, game->graph); + gSPDisplayList(NEXT_POLY_OPA_DISP, int_kob_mastersword_env_model); + + CLOSE_DISP(game->graph); +} + static aFTR_vtable_c aKobMasterSword01_func = { NULL, &aKobMasterSword_mv, diff --git a/src/ftr/ac_nog_tri_audio01.c b/src/ftr/ac_nog_tri_audio01.c index ebf542d2..73f2a946 100644 --- a/src/ftr/ac_nog_tri_audio01.c +++ b/src/ftr/ac_nog_tri_audio01.c @@ -4,6 +4,19 @@ static void aNogTriAudio01_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* static void aNogTriAudio01_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aNogTriAudio01_dt(FTR_ACTOR* ftr_actor, u8* data); +static void aNogTriAudio01_ct(FTR_ACTOR* ftr_actor, u8* data) { +} + +static void aNogTriAudio01_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + (*Common_Get(clip).my_room_clip->mini_disk_common_move_proc)(ftr_actor, my_room_actor, game, 0.0f, 0.0f); +} + +static void aNogTriAudio01_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { +} + +static void aNogTriAudio01_dt(FTR_ACTOR* ftr_actor, u8* data) { +} + static aFTR_vtable_c aNogTriAudio01_func = { &aNogTriAudio01_ct, &aNogTriAudio01_mv, diff --git a/src/ftr/ac_nog_tri_chest01.c b/src/ftr/ac_nog_tri_chest01.c index 977b963c..7a4aa665 100644 --- a/src/ftr/ac_nog_tri_chest01.c +++ b/src/ftr/ac_nog_tri_chest01.c @@ -3,6 +3,41 @@ static void aNogTriChest01_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* static void aNogTriChest01_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aNogTriChest01_dt(FTR_ACTOR* ftr_actor, u8* data); +extern cKF_Skeleton_R_c cKF_bs_r_int_nog_tri_chest01; +extern cKF_Animation_R_c cKF_ba_r_int_nog_tri_chest01; + +static void aNogTriChest01_ct(FTR_ACTOR* ftr_actor, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + cKF_SkeletonInfo_R_ct(keyframe, &cKF_bs_r_int_nog_tri_chest01, &cKF_ba_r_int_nog_tri_chest01, ftr_actor->joint, ftr_actor->morph); + cKF_SkeletonInfo_R_init_standard_stop(keyframe, &cKF_ba_r_int_nog_tri_chest01, NULL); + keyframe->frame_control.speed = 0.0f; + cKF_SkeletonInfo_R_play(keyframe); +} + +static void aNogTriChest01_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + if (Common_Get(clip).my_room_clip != NULL) { + (*Common_Get(clip).my_room_clip->open_close_common_move_proc)(ftr_actor, my_room_actor, game, 1.0f, 10.0f); + } +} + +static void aNogTriChest01_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + GAME_PLAY* play = (GAME_PLAY*)game; + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + Mtx* mtx = ftr_actor->skeleton_mtx[game->frame_counter & 1]; + + OPEN_DISP(game->graph); + gSPMatrix(NEXT_POLY_OPA_DISP, _Matrix_to_Mtx_new(game->graph), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + CLOSE_DISP(game->graph); + + cKF_Si3_draw_R_SV(game, keyframe, mtx, NULL, NULL, NULL); +} + +static void aNogTriChest01_dt(FTR_ACTOR* ftr_actor, u8* data) { +} + static aFTR_vtable_c aNogTriChest01_func = { &aNogTriChest01_ct, &aNogTriChest01_mv, diff --git a/src/ftr/ac_nog_tri_chest02.c b/src/ftr/ac_nog_tri_chest02.c index 5d8a9948..f5378f74 100644 --- a/src/ftr/ac_nog_tri_chest02.c +++ b/src/ftr/ac_nog_tri_chest02.c @@ -3,6 +3,42 @@ static void aNogTriChest02_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* static void aNogTriChest02_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aNogTriChest02_dt(FTR_ACTOR* ftr_actor, u8* data); +extern cKF_Skeleton_R_c cKF_bs_r_int_nog_tri_chest02; +extern cKF_Animation_R_c cKF_ba_r_int_nog_tri_chest02; + +static void aNogTriChest02_ct(FTR_ACTOR* ftr_actor, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + cKF_SkeletonInfo_R_ct(keyframe, &cKF_bs_r_int_nog_tri_chest02, &cKF_ba_r_int_nog_tri_chest02, ftr_actor->joint, ftr_actor->morph); + cKF_SkeletonInfo_R_init_standard_stop(keyframe, &cKF_ba_r_int_nog_tri_chest02, NULL); + keyframe->frame_control.speed = 0.0f; + cKF_SkeletonInfo_R_play(keyframe); +} + +static void aNogTriChest02_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + if (Common_Get(clip).my_room_clip != NULL) { + (*Common_Get(clip).my_room_clip->open_close_common_move_proc)(ftr_actor, my_room_actor, game, 1.0f, 12.0f); + } +} + +static void aNogTriChest02_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + GAME_PLAY* play = (GAME_PLAY*)game; + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + Mtx* mtx = ftr_actor->skeleton_mtx[game->frame_counter & 1]; + + OPEN_DISP(game->graph); + gSPMatrix(NEXT_POLY_OPA_DISP, _Matrix_to_Mtx_new(game->graph), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + CLOSE_DISP(game->graph); + + cKF_Si3_draw_R_SV(game, keyframe, mtx, NULL, NULL, NULL); +} + +static void aNogTriChest02_dt(FTR_ACTOR* ftr_actor, u8* data) { +} + + static aFTR_vtable_c aNogTriChest02_func = { &aNogTriChest02_ct, &aNogTriChest02_mv, diff --git a/src/ftr/ac_nog_tri_chest03.c b/src/ftr/ac_nog_tri_chest03.c index 71b21a69..91dbd78c 100644 --- a/src/ftr/ac_nog_tri_chest03.c +++ b/src/ftr/ac_nog_tri_chest03.c @@ -3,6 +3,41 @@ static void aNogTriChest03_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* static void aNogTriChest03_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aNogTriChest03_dt(FTR_ACTOR* ftr_actor, u8* data); +extern cKF_Skeleton_R_c cKF_bs_r_int_nog_tri_chest03; +extern cKF_Animation_R_c cKF_ba_r_int_nog_tri_chest03; + +static void aNogTriChest03_ct(FTR_ACTOR* ftr_actor, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + cKF_SkeletonInfo_R_ct(keyframe, &cKF_bs_r_int_nog_tri_chest03, &cKF_ba_r_int_nog_tri_chest03, ftr_actor->joint, ftr_actor->morph); + cKF_SkeletonInfo_R_init_standard_stop(keyframe, &cKF_ba_r_int_nog_tri_chest03, NULL); + cKF_SkeletonInfo_R_play(keyframe); + keyframe->frame_control.speed = 0.0f; +} + +static void aNogTriChest03_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + if (Common_Get(clip).my_room_clip != NULL) { + (*Common_Get(clip).my_room_clip->open_close_common_move_proc)(ftr_actor, my_room_actor, game, 1.0f, 16.0f); + } +} + +static void aNogTriChest03_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + GAME_PLAY* play = (GAME_PLAY*)game; + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + Mtx* mtx = ftr_actor->skeleton_mtx[game->frame_counter & 1]; + + OPEN_DISP(game->graph); + gSPMatrix(NEXT_POLY_OPA_DISP, _Matrix_to_Mtx_new(game->graph), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + CLOSE_DISP(game->graph); + + cKF_Si3_draw_R_SV(game, keyframe, mtx, NULL, NULL, NULL); +} + +static void aNogTriChest03_dt(FTR_ACTOR* ftr_actor, u8* data) { +} + static aFTR_vtable_c aNogTriChest03_func = { &aNogTriChest03_ct, &aNogTriChest03_mv, diff --git a/src/ftr/ac_sum_abura.c b/src/ftr/ac_sum_abura.c index 667d7f2f..0433c55b 100644 --- a/src/ftr/ac_sum_abura.c +++ b/src/ftr/ac_sum_abura.c @@ -2,6 +2,42 @@ static void aSumAbura_ct(FTR_ACTOR* ftr_actor, u8* data); static void aSumAbura_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumAbura_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); +extern cKF_Animation_R_c cKF_ba_r_int_sum_abura; +extern cKF_Skeleton_R_c cKF_bs_r_int_sum_abura; + +static void aSumAbura_ct(FTR_ACTOR* ftr_actor, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + cKF_SkeletonInfo_R_ct(keyframe, &cKF_bs_r_int_sum_abura, &cKF_ba_r_int_sum_abura, ftr_actor->joint, ftr_actor->morph); + cKF_SkeletonInfo_R_init_standard_stop(keyframe, &cKF_ba_r_int_sum_abura, NULL); + cKF_SkeletonInfo_R_play(keyframe); + keyframe->frame_control.speed = 0.0f; +} + +static void aSumAbura_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + cKF_SkeletonInfo_R_c* keyframe; + int valid; + + if (aFTR_CAN_PLAY_SE(ftr_actor)) { + keyframe = &ftr_actor->keyframe; + valid = sAdo_RoomIncectPos((u32)ftr_actor, 60, &ftr_actor->position); + + if (valid != 0) { + cKF_SkeletonInfo_R_init_standard_stop(keyframe, &cKF_ba_r_int_sum_abura, NULL); + keyframe->frame_control.speed = 0.5f; + } + cKF_SkeletonInfo_R_play(keyframe); + } + +} + +static void aSumAbura_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + Mtx* mtx = ftr_actor->skeleton_mtx[game->frame_counter & 1]; + + cKF_Si3_draw_R_SV(game, keyframe, mtx, NULL, NULL, ftr_actor); +} + static aFTR_vtable_c aSumAbura_func = { &aSumAbura_ct, &aSumAbura_mv, diff --git a/src/ftr/ac_sum_asi_chest02.c b/src/ftr/ac_sum_asi_chest02.c index 44e22197..00d42634 100644 --- a/src/ftr/ac_sum_asi_chest02.c +++ b/src/ftr/ac_sum_asi_chest02.c @@ -3,6 +3,41 @@ static void aSumAsiChest02_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* static void aSumAsiChest02_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumAsiChest02_dt(FTR_ACTOR* ftr_actor, u8* data); +extern cKF_Skeleton_R_c cKF_bs_r_int_sum_asi_chest02; +extern cKF_Animation_R_c cKF_ba_r_int_sum_asi_chest02; + +static void aSumAsiChest02_ct(FTR_ACTOR* ftr_actor, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + cKF_SkeletonInfo_R_ct(keyframe, &cKF_bs_r_int_sum_asi_chest02, &cKF_ba_r_int_sum_asi_chest02, ftr_actor->joint, ftr_actor->morph); + cKF_SkeletonInfo_R_init_standard_stop(keyframe, &cKF_ba_r_int_sum_asi_chest02, NULL); + keyframe->frame_control.speed = 0.0f; + cKF_SkeletonInfo_R_play(keyframe); +} + +static void aSumAsiChest02_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + if (Common_Get(clip).my_room_clip != NULL) { + (*Common_Get(clip).my_room_clip->open_close_common_move_proc)(ftr_actor, my_room_actor, game, 1.0f, 10.0f); + } +} + +static void aSumAsiChest02_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + GAME_PLAY* play = (GAME_PLAY*)game; + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + Mtx* mtx = ftr_actor->skeleton_mtx[game->frame_counter & 1]; + + OPEN_DISP(game->graph); + gSPMatrix(NEXT_POLY_OPA_DISP, _Matrix_to_Mtx_new(game->graph), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + CLOSE_DISP(game->graph); + + cKF_Si3_draw_R_SV(game, keyframe, mtx, NULL, NULL, NULL); +} + +static void aSumAsiChest02_dt(FTR_ACTOR* ftr_actor, u8* data) { +} + static aFTR_vtable_c aSumAsiChest02_func = { &aSumAsiChest02_ct, &aSumAsiChest02_mv, diff --git a/src/ftr/ac_sum_asi_chest03.c b/src/ftr/ac_sum_asi_chest03.c index e7ff2a30..45584070 100644 --- a/src/ftr/ac_sum_asi_chest03.c +++ b/src/ftr/ac_sum_asi_chest03.c @@ -3,6 +3,41 @@ static void aSumAsiChest03_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* static void aSumAsiChest03_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumAsiChest03_dt(FTR_ACTOR* ftr_actor, u8* data); +extern cKF_Skeleton_R_c cKF_bs_r_int_sum_asi_chest03; +extern cKF_Animation_R_c cKF_ba_r_int_sum_asi_chest03; + +static void aSumAsiChest03_ct(FTR_ACTOR* ftr_actor, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + cKF_SkeletonInfo_R_ct(keyframe, &cKF_bs_r_int_sum_asi_chest03, &cKF_ba_r_int_sum_asi_chest03, ftr_actor->joint, ftr_actor->morph); + cKF_SkeletonInfo_R_init_standard_stop(keyframe, &cKF_ba_r_int_sum_asi_chest03, NULL); + keyframe->frame_control.speed = 0.0f; + cKF_SkeletonInfo_R_play(keyframe); +} + +static void aSumAsiChest03_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + if (Common_Get(clip).my_room_clip != NULL) { + (*Common_Get(clip).my_room_clip->open_close_common_move_proc)(ftr_actor, my_room_actor, game, 1.0f, 12.0f); + } +} + +static void aSumAsiChest03_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + GAME_PLAY* play = (GAME_PLAY*)game; + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + Mtx* mtx = ftr_actor->skeleton_mtx[game->frame_counter & 1]; + + OPEN_DISP(game->graph); + gSPMatrix(NEXT_POLY_OPA_DISP, _Matrix_to_Mtx_new(game->graph), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + CLOSE_DISP(game->graph); + + cKF_Si3_draw_R_SV(game, keyframe, mtx, NULL, NULL, NULL); +} + +static void aSumAsiChest03_dt(FTR_ACTOR* ftr_actor, u8* data) { +} + static aFTR_vtable_c aSumAsiChest03_func = { &aSumAsiChest03_ct, &aSumAsiChest03_mv, diff --git a/src/ftr/ac_sum_asi_taiko.c b/src/ftr/ac_sum_asi_taiko.c index d7f41bd4..407c13c2 100644 --- a/src/ftr/ac_sum_asi_taiko.c +++ b/src/ftr/ac_sum_asi_taiko.c @@ -5,6 +5,22 @@ static void aSumasitaiko_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* ga static void aSumasitaiko_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumasitaiko_dt(FTR_ACTOR* ftr_actor, u8* data); +static void aSumasitaiko_ct(FTR_ACTOR* ftr_actor, u8* data) { +} + +static void aSumasitaiko_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor) { + if (Common_Get(clip).my_room_clip != NULL) { + Common_Get(clip).my_room_clip->sound_melody_proc(ftr_actor, my_room_actor, 12); + } +} + +static void aSumasitaiko_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { +} + +static void aSumasitaiko_dt(FTR_ACTOR* ftr_actor, u8* data) { +} + + static aFTR_vtable_c aSumasitaiko_func = { &aSumasitaiko_ct, &aSumasitaiko_mv, diff --git a/src/ftr/ac_sum_bass01.c b/src/ftr/ac_sum_bass01.c index 4c202478..435e4a1c 100644 --- a/src/ftr/ac_sum_bass01.c +++ b/src/ftr/ac_sum_bass01.c @@ -5,6 +5,21 @@ static void aSumBass01_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game static void aSumBass01_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumBass01_dt(FTR_ACTOR* ftr_actor, u8* data); +static void aSumBass01_ct(FTR_ACTOR* ftr_actor, u8* data) { +} + +static void aSumBass01_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor) { + if (Common_Get(clip).my_room_clip != NULL) { + Common_Get(clip).my_room_clip->sound_melody_proc(ftr_actor, my_room_actor, 9); + } +} + +static void aSumBass01_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { +} + +static void aSumBass01_dt(FTR_ACTOR* ftr_actor, u8* data) { +} + static aFTR_vtable_c aSumBass01_func = { &aSumBass01_ct, &aSumBass01_mv, diff --git a/src/ftr/ac_sum_biwa01.c b/src/ftr/ac_sum_biwa01.c index a04ccda5..92621503 100644 --- a/src/ftr/ac_sum_biwa01.c +++ b/src/ftr/ac_sum_biwa01.c @@ -5,6 +5,21 @@ static void aSumBiwa01_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game static void aSumBiwa01_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumBiwa01_dt(FTR_ACTOR* ftr_actor, u8* data); +static void aSumBiwa01_ct(FTR_ACTOR* ftr_actor, u8* data) { +} + +static void aSumBiwa01_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor) { + if (Common_Get(clip).my_room_clip != NULL) { + Common_Get(clip).my_room_clip->sound_melody_proc(ftr_actor, my_room_actor, 6); + } +} + +static void aSumBiwa01_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { +} + +static void aSumBiwa01_dt(FTR_ACTOR* ftr_actor, u8* data) { +} + static aFTR_vtable_c aSumBiwa01_func = { &aSumBiwa01_ct, &aSumBiwa01_mv, diff --git a/src/ftr/ac_sum_bla_chest01.c b/src/ftr/ac_sum_bla_chest01.c index c80143b1..e3be937f 100644 --- a/src/ftr/ac_sum_bla_chest01.c +++ b/src/ftr/ac_sum_bla_chest01.c @@ -3,6 +3,41 @@ static void aSumBlaChest01_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* static void aSumBlaChest01_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumBlaChest01_dt(FTR_ACTOR* ftr_actor, u8* data); +extern cKF_Skeleton_R_c cKF_bs_r_int_sum_bla_chest01; +extern cKF_Animation_R_c cKF_ba_r_int_sum_bla_chest01; + +static void aSumBlaChest01_ct(FTR_ACTOR* ftr_actor, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + cKF_SkeletonInfo_R_ct(keyframe, &cKF_bs_r_int_sum_bla_chest01, &cKF_ba_r_int_sum_bla_chest01, ftr_actor->joint, ftr_actor->morph); + cKF_SkeletonInfo_R_init_standard_stop(keyframe, &cKF_ba_r_int_sum_bla_chest01, NULL); + keyframe->frame_control.speed = 0.0f; + cKF_SkeletonInfo_R_play(keyframe); +} + +static void aSumBlaChest01_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + if (Common_Get(clip).my_room_clip != NULL) { + (*Common_Get(clip).my_room_clip->open_close_common_move_proc)(ftr_actor, my_room_actor, game, 1.0f, 10.0f); + } +} + +static void aSumBlaChest01_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + GAME_PLAY* play = (GAME_PLAY*)game; + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + Mtx* mtx = ftr_actor->skeleton_mtx[game->frame_counter & 1]; + + OPEN_DISP(game->graph); + gSPMatrix(NEXT_POLY_OPA_DISP, _Matrix_to_Mtx_new(game->graph), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + CLOSE_DISP(game->graph); + + cKF_Si3_draw_R_SV(game, keyframe, mtx, NULL, NULL, NULL); +} + +static void aSumBlaChest01_dt(FTR_ACTOR* ftr_actor, u8* data) { +} + static aFTR_vtable_c aSumBlaChest01_func = { &aSumBlaChest01_ct, &aSumBlaChest01_mv, diff --git a/src/ftr/ac_sum_bla_chest03.c b/src/ftr/ac_sum_bla_chest03.c index 3994bdae..a169bbab 100644 --- a/src/ftr/ac_sum_bla_chest03.c +++ b/src/ftr/ac_sum_bla_chest03.c @@ -3,6 +3,41 @@ static void aSumBlaChest03_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* static void aSumBlaChest03_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumBlaChest03_dt(FTR_ACTOR* ftr_actor, u8* data); +extern cKF_Skeleton_R_c cKF_bs_r_int_sum_bla_chest03; +extern cKF_Animation_R_c cKF_ba_r_int_sum_bla_chest03; + +static void aSumBlaChest03_ct(FTR_ACTOR* ftr_actor, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + cKF_SkeletonInfo_R_ct(keyframe, &cKF_bs_r_int_sum_bla_chest03, &cKF_ba_r_int_sum_bla_chest03, ftr_actor->joint, ftr_actor->morph); + cKF_SkeletonInfo_R_init_standard_stop(keyframe, &cKF_ba_r_int_sum_bla_chest03, NULL); + keyframe->frame_control.speed = 0.0f; + cKF_SkeletonInfo_R_play(keyframe); +} + +static void aSumBlaChest03_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + if (Common_Get(clip).my_room_clip != NULL) { + (*Common_Get(clip).my_room_clip->open_close_common_move_proc)(ftr_actor, my_room_actor, game, 1.0f, 12.0f); + } +} + +static void aSumBlaChest03_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + GAME_PLAY* play = (GAME_PLAY*)game; + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + Mtx* mtx = ftr_actor->skeleton_mtx[game->frame_counter & 1]; + + OPEN_DISP(game->graph); + gSPMatrix(NEXT_POLY_OPA_DISP, _Matrix_to_Mtx_new(game->graph), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + CLOSE_DISP(game->graph); + + cKF_Si3_draw_R_SV(game, keyframe, mtx, NULL, NULL, NULL); +} + +static void aSumBlaChest03_dt(FTR_ACTOR* ftr_actor, u8* data) { +} + static aFTR_vtable_c aSumBlaChest03_func = { &aSumBlaChest03_ct, &aSumBlaChest03_mv, diff --git a/src/ftr/ac_sum_bla_lanp.c b/src/ftr/ac_sum_bla_lanp.c index 29950b2c..f3c309cc 100644 --- a/src/ftr/ac_sum_bla_lanp.c +++ b/src/ftr/ac_sum_bla_lanp.c @@ -2,6 +2,21 @@ extern Gfx int_sum_bla_lanp_on_model[]; extern Gfx int_sum_bla_lanp_onT_model[]; static void aSumBlaLanp_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); +extern Gfx int_sum_bla_lanp_off_model[]; +extern Gfx int_sum_bla_lanp_onT_model[]; +extern Gfx int_sum_bla_lanp_offT_model[]; + +static void aSumBlaLanp_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + OPEN_DISP(game->graph); + + _texture_z_light_fog_prim(game->graph); + gSPMatrix(NEXT_POLY_OPA_DISP, _Matrix_to_Mtx_new(game->graph), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(NEXT_POLY_OPA_DISP, int_sum_bla_lanp_off_model); + gSPDisplayList(NEXT_POLY_OPA_DISP, int_sum_bla_lanp_offT_model); + + CLOSE_DISP(game->graph); +} + static aFTR_vtable_c aSumBlaLanp_func = { NULL, NULL, diff --git a/src/ftr/ac_sum_blue_bureau01.c b/src/ftr/ac_sum_blue_bureau01.c index 14c822a9..d65db23e 100644 --- a/src/ftr/ac_sum_blue_bureau01.c +++ b/src/ftr/ac_sum_blue_bureau01.c @@ -3,6 +3,41 @@ static void aSumBlueBureau01_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME static void aSumBlueBureau01_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumBlueBureau01_dt(FTR_ACTOR* ftr_actor, u8* data); +extern cKF_Skeleton_R_c cKF_bs_r_int_sum_blue_bureau01; +extern cKF_Animation_R_c cKF_ba_r_int_sum_blue_bureau01; + +static void aSumBlueBureau01_ct(FTR_ACTOR* ftr_actor, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + cKF_SkeletonInfo_R_ct(keyframe, &cKF_bs_r_int_sum_blue_bureau01, &cKF_ba_r_int_sum_blue_bureau01, ftr_actor->joint, ftr_actor->morph); + cKF_SkeletonInfo_R_init_standard_stop(keyframe, &cKF_ba_r_int_sum_blue_bureau01, NULL); + keyframe->frame_control.speed = 0.0f; + cKF_SkeletonInfo_R_play(keyframe); +} + +static void aSumBlueBureau01_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + if (Common_Get(clip).my_room_clip != NULL) { + (*Common_Get(clip).my_room_clip->open_close_common_move_proc)(ftr_actor, my_room_actor, game, 1.0f, 16.0f); + } +} + +static void aSumBlueBureau01_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + GAME_PLAY* play = (GAME_PLAY*)game; + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + Mtx* mtx = ftr_actor->skeleton_mtx[game->frame_counter & 1]; + + OPEN_DISP(game->graph); + gSPMatrix(NEXT_POLY_OPA_DISP, _Matrix_to_Mtx_new(game->graph), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + CLOSE_DISP(game->graph); + + cKF_Si3_draw_R_SV(game, keyframe, mtx, NULL, NULL, NULL); +} + +static void aSumBlueBureau01_dt(FTR_ACTOR* ftr_actor, u8* data) { +} + static aFTR_vtable_c aSumBlueBureau01_func = { &aSumBlueBureau01_ct, &aSumBlueBureau01_mv, diff --git a/src/ftr/ac_sum_blue_cab01.c b/src/ftr/ac_sum_blue_cab01.c index 76ce10f5..dce14dce 100644 --- a/src/ftr/ac_sum_blue_cab01.c +++ b/src/ftr/ac_sum_blue_cab01.c @@ -3,6 +3,41 @@ static void aSumBlueCab01_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* g static void aSumBlueCab01_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumBlueCab01_dt(FTR_ACTOR* ftr_actor, u8* data); +extern cKF_Skeleton_R_c cKF_bs_r_int_sum_blue_cab01; +extern cKF_Animation_R_c cKF_ba_r_int_sum_blue_cab01; + +static void SumBlueCab01_ct(FTR_ACTOR* ftr_actor, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + cKF_SkeletonInfo_R_ct(keyframe, &cKF_bs_r_int_sum_blue_cab01, &cKF_ba_r_int_sum_blue_cab01, ftr_actor->joint, ftr_actor->morph); + cKF_SkeletonInfo_R_init_standard_stop(keyframe, &cKF_ba_r_int_sum_blue_cab01, NULL); + keyframe->frame_control.speed = 0.0f; + cKF_SkeletonInfo_R_play(keyframe); +} + +static void SumBlueCab01_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + if (Common_Get(clip).my_room_clip != NULL) { + (*Common_Get(clip).my_room_clip->open_close_common_move_proc)(ftr_actor, my_room_actor, game, 1.0f, 10.0f); + } +} + +static void SumBlueCab01_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + GAME_PLAY* play = (GAME_PLAY*)game; + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + Mtx* mtx = ftr_actor->skeleton_mtx[game->frame_counter & 1]; + + OPEN_DISP(game->graph); + gSPMatrix(NEXT_POLY_OPA_DISP, _Matrix_to_Mtx_new(game->graph), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + CLOSE_DISP(game->graph); + + cKF_Si3_draw_R_SV(game, keyframe, mtx, NULL, NULL, NULL); +} + +static void SumBlueCab01_dt(FTR_ACTOR* ftr_actor, u8* data) { +} + static aFTR_vtable_c aSumBlueCab01_func = { &aSumBlueCab01_ct, &aSumBlueCab01_mv, diff --git a/src/ftr/ac_sum_blue_lowchest01.c b/src/ftr/ac_sum_blue_lowchest01.c index 9a674b3b..4b38c49e 100644 --- a/src/ftr/ac_sum_blue_lowchest01.c +++ b/src/ftr/ac_sum_blue_lowchest01.c @@ -3,6 +3,41 @@ static void aSumBlueLowChest01_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GA static void aSumBlueLowChest01_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumBlueLowChest01_dt(FTR_ACTOR* ftr_actor, u8* data); +extern cKF_Skeleton_R_c cKF_bs_r_int_sum_blue_lowchest01; +extern cKF_Animation_R_c cKF_ba_r_int_sum_blue_lowchest01; + +static void aSumBlueLowChest01_ct(FTR_ACTOR* ftr_actor, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + cKF_SkeletonInfo_R_ct(keyframe, &cKF_bs_r_int_sum_blue_lowchest01, &cKF_ba_r_int_sum_blue_lowchest01, ftr_actor->joint, ftr_actor->morph); + cKF_SkeletonInfo_R_init_standard_stop(keyframe, &cKF_ba_r_int_sum_blue_lowchest01, NULL); + keyframe->frame_control.speed = 0.0f; + cKF_SkeletonInfo_R_play(keyframe); +} + +static void aSumBlueLowChest01_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + if (Common_Get(clip).my_room_clip != NULL) { + (*Common_Get(clip).my_room_clip->open_close_common_move_proc)(ftr_actor, my_room_actor, game, 1.0f, 10.0f); + } +} + +static void aSumBlueLowChest01_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + GAME_PLAY* play = (GAME_PLAY*)game; + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + Mtx* mtx = ftr_actor->skeleton_mtx[game->frame_counter & 1]; + + OPEN_DISP(game->graph); + gSPMatrix(NEXT_POLY_OPA_DISP, _Matrix_to_Mtx_new(game->graph), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + CLOSE_DISP(game->graph); + + cKF_Si3_draw_R_SV(game, keyframe, mtx, NULL, NULL, NULL); +} + +static void aSumBlueLowChest01_dt(FTR_ACTOR* ftr_actor, u8* data) { +} + static aFTR_vtable_c aSumBlueLowChest01_func = { &aSumBlueLowChest01_ct, &aSumBlueLowChest01_mv, diff --git a/src/ftr/ac_sum_casse01.c b/src/ftr/ac_sum_casse01.c index 63b18186..c585efa1 100644 --- a/src/ftr/ac_sum_casse01.c +++ b/src/ftr/ac_sum_casse01.c @@ -5,6 +5,21 @@ static void aSumCasse01_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* gam static void aSumCasse01_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumCasse01_dt(FTR_ACTOR* ftr_actor, u8* data); +static void aSumCasse01_ct(FTR_ACTOR* ftr_actor, u8* data) { +} + +static void aSumCasse01_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + if (Common_Get(clip).my_room_clip != NULL) { + (*Common_Get(clip).my_room_clip->mini_disk_common_move_proc)(ftr_actor, my_room_actor, game, 0.0f, 0.0f); + } +} + +static void aSumCasse01_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { +} + +static void aSumCasse01_dt(FTR_ACTOR* ftr_actor, u8* data) { +} + static aFTR_vtable_c aSumCasse01_func = { &aSumCasse01_ct, &aSumCasse01_mv, diff --git a/src/ftr/ac_sum_cello01.c b/src/ftr/ac_sum_cello01.c index 3c15c740..6a4f208d 100644 --- a/src/ftr/ac_sum_cello01.c +++ b/src/ftr/ac_sum_cello01.c @@ -5,6 +5,21 @@ static void aSumCello01_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* gam static void aSumCello01_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumCello01_dt(FTR_ACTOR* ftr_actor, u8* data); +static void aSumCello01_ct(FTR_ACTOR* ftr_actor, u8* data) { +} + +static void aSumCello01_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + if (Common_Get(clip).my_room_clip != NULL) { + Common_Get(clip).my_room_clip->sound_melody_proc(ftr_actor, my_room_actor, 10); + } +} + +static void aSumCello01_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { +} + +static void aSumCello01_dt(FTR_ACTOR* ftr_actor, u8* data) { +} + static aFTR_vtable_c aSumCello01_func = { &aSumCello01_ct, &aSumCello01_mv, diff --git a/src/ftr/ac_sum_chikuon01.c b/src/ftr/ac_sum_chikuon01.c index 997633b1..52452622 100644 --- a/src/ftr/ac_sum_chikuon01.c +++ b/src/ftr/ac_sum_chikuon01.c @@ -5,6 +5,19 @@ static void aSumChikuon01_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* g static void aSumChikuon01_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumChikuon01_dt(FTR_ACTOR* ftr_actor, u8* data); +static void aSumChikuon01_ct(FTR_ACTOR* ftr_actor, u8* data) { +} + +static void aSumChikuon01_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + (*Common_Get(clip).my_room_clip->mini_disk_common_move_proc)(ftr_actor, my_room_actor, game, 0.0f, 0.0f); +} + +static void aSumChikuon01_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { +} + +static void aSumChikuon01_dt(FTR_ACTOR* ftr_actor, u8* data) { +} + static aFTR_vtable_c aSumChikuon01_func = { &aSumChikuon01_ct, &aSumChikuon01_mv, diff --git a/src/ftr/ac_sum_chikuon02.c b/src/ftr/ac_sum_chikuon02.c index a376aa29..11e67e7b 100644 --- a/src/ftr/ac_sum_chikuon02.c +++ b/src/ftr/ac_sum_chikuon02.c @@ -5,6 +5,19 @@ static void aSumChikuon02_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* g static void aSumChikuon02_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumChikuon02_dt(FTR_ACTOR* ftr_actor, u8* data); +static void aSumChikuon02_ct(FTR_ACTOR* ftr_actor, u8* data) { +} + +static void aSumChikuon02_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + (*Common_Get(clip).my_room_clip->mini_disk_common_move_proc)(ftr_actor, my_room_actor, game, 0.0f, 0.0f); +} + +static void aSumChikuon02_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { +} + +static void aSumChikuon02_dt(FTR_ACTOR* ftr_actor, u8* data) { +} + static aFTR_vtable_c aSumChikuon02_func = { &aSumChikuon02_ct, &aSumChikuon02_mv, diff --git a/src/ftr/ac_sum_classicchest01.c b/src/ftr/ac_sum_classicchest01.c index 29659706..1b78b4d0 100644 --- a/src/ftr/ac_sum_classicchest01.c +++ b/src/ftr/ac_sum_classicchest01.c @@ -3,6 +3,41 @@ static void aSumClchest01_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* g static void aSumClchest01_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumClchest01_dt(FTR_ACTOR* ftr_actor, u8* data); +extern cKF_Skeleton_R_c cKF_bs_r_int_sum_clchest01; +extern cKF_Animation_R_c cKF_ba_r_int_sum_clchest01; + +static void aSumClchest01_ct(FTR_ACTOR* ftr_actor, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + cKF_SkeletonInfo_R_ct(keyframe, &cKF_bs_r_int_sum_clchest01, &cKF_ba_r_int_sum_clchest01, ftr_actor->joint, ftr_actor->morph); + cKF_SkeletonInfo_R_init_standard_stop(keyframe, &cKF_ba_r_int_sum_clchest01, NULL); + keyframe->frame_control.speed = 0.0f; + cKF_SkeletonInfo_R_play(keyframe); +} + +static void aSumClchest01_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + if (Common_Get(clip).my_room_clip != NULL) { + (*Common_Get(clip).my_room_clip->open_close_common_move_proc)(ftr_actor, my_room_actor, game, 1.0f, 10.0f); + } +} + +static void aSumClchest01_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + GAME_PLAY* play = (GAME_PLAY*)game; + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + Mtx* mtx = ftr_actor->skeleton_mtx[game->frame_counter & 1]; + + OPEN_DISP(game->graph); + gSPMatrix(NEXT_POLY_OPA_DISP, _Matrix_to_Mtx_new(game->graph), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + CLOSE_DISP(game->graph); + + cKF_Si3_draw_R_SV(game, keyframe, mtx, NULL, NULL, NULL); +} + +static void aSumClchest01_dt(FTR_ACTOR* ftr_actor, u8* data) { +} + static aFTR_vtable_c aSumClchest01_func = { &aSumClchest01_ct, &aSumClchest01_mv, diff --git a/src/ftr/ac_sum_clchest03.c b/src/ftr/ac_sum_clchest03.c index 132de519..09e718eb 100644 --- a/src/ftr/ac_sum_clchest03.c +++ b/src/ftr/ac_sum_clchest03.c @@ -3,6 +3,41 @@ static void aSumClChest03_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* g static void aSumClChest03_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumClChest03_dt(FTR_ACTOR* ftr_actor, u8* data); +extern cKF_Skeleton_R_c cKF_bs_r_int_sum_clchest03; +extern cKF_Animation_R_c cKF_ba_r_int_sum_clchest03; + +static void aSumClChest03_ct(FTR_ACTOR* ftr_actor, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + cKF_SkeletonInfo_R_ct(keyframe, &cKF_bs_r_int_sum_clchest03, &cKF_ba_r_int_sum_clchest03, ftr_actor->joint, ftr_actor->morph); + cKF_SkeletonInfo_R_init_standard_stop(keyframe, &cKF_ba_r_int_sum_clchest03, NULL); + keyframe->frame_control.speed = 0.0f; + cKF_SkeletonInfo_R_play(keyframe); +} + +static void aSumClChest03_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + if (Common_Get(clip).my_room_clip != NULL) { + (*Common_Get(clip).my_room_clip->open_close_common_move_proc)(ftr_actor, my_room_actor, game, 1.0f, 16.0f); + } +} + +static void aSumClChest03_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + GAME_PLAY* play = (GAME_PLAY*)game; + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + Mtx* mtx = ftr_actor->skeleton_mtx[game->frame_counter & 1]; + + OPEN_DISP(game->graph); + gSPMatrix(NEXT_POLY_OPA_DISP, _Matrix_to_Mtx_new(game->graph), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + CLOSE_DISP(game->graph); + + cKF_Si3_draw_R_SV(game, keyframe, mtx, NULL, NULL, NULL); +} + +static void aSumClChest03_dt(FTR_ACTOR* ftr_actor, u8* data) { +} + static aFTR_vtable_c aSumClChest03_func = { &aSumClChest03_ct, &aSumClChest03_mv, diff --git a/src/ftr/ac_sum_conga01.c b/src/ftr/ac_sum_conga01.c index 119efa2a..2584d86e 100644 --- a/src/ftr/ac_sum_conga01.c +++ b/src/ftr/ac_sum_conga01.c @@ -5,6 +5,21 @@ static void asumconga01_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* gam static void asumconga01_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void asumconga01_dt(FTR_ACTOR* ftr_actor, u8* data); +static void asumconga01_ct(FTR_ACTOR* ftr_actor, u8* data) { +} + +static void asumconga01_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor) { + if (Common_Get(clip).my_room_clip != NULL) { + Common_Get(clip).my_room_clip->sound_melody_proc(ftr_actor, my_room_actor, 14); + } +} + +static void asumconga01_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { +} + +static void asumconga01_dt(FTR_ACTOR* ftr_actor, u8* data) { +} + static aFTR_vtable_c asumconga01_func = { &asumconga01_ct, &asumconga01_mv, diff --git a/src/ftr/ac_sum_conpo01.c b/src/ftr/ac_sum_conpo01.c index 5862e5f4..151a7490 100644 --- a/src/ftr/ac_sum_conpo01.c +++ b/src/ftr/ac_sum_conpo01.c @@ -4,6 +4,21 @@ static void aSumConpo01_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* gam static void aSumConpo01_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumConpo01_dt(FTR_ACTOR* ftr_actor, u8* data); +static void aSumConpo01_ct(FTR_ACTOR* ftr_actor, u8* data) { +} + +static void aSumConpo01_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + if (Common_Get(clip).my_room_clip != NULL) { + (*Common_Get(clip).my_room_clip->mini_disk_common_move_proc)(ftr_actor, my_room_actor, game, 0.0f, 0.0f); + } +} + +static void aSumConpo01_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { +} + +static void aSumConpo01_dt(FTR_ACTOR* ftr_actor, u8* data) { +} + static aFTR_vtable_c aSumConpo01_func = { &aSumConpo01_ct, &aSumConpo01_mv, diff --git a/src/ftr/ac_sum_conpo02.c b/src/ftr/ac_sum_conpo02.c index 5e08ea88..bcab304d 100644 --- a/src/ftr/ac_sum_conpo02.c +++ b/src/ftr/ac_sum_conpo02.c @@ -6,6 +6,19 @@ static void aSumConpo02_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* gam static void aSumConpo02_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumConpo02_dt(FTR_ACTOR* ftr_actor, u8* data); +static void aSumConpo02_ct(FTR_ACTOR* ftr_actor, u8* data) { +} + +static void aSumConpo02_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + (*Common_Get(clip).my_room_clip->mini_disk_common_move_proc)(ftr_actor, my_room_actor, game, 0.0f, 0.0f); +} + +static void aSumConpo02_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { +} + +static void aSumConpo02_dt(FTR_ACTOR* ftr_actor, u8* data) { +} + static aFTR_vtable_c aSumConpo02_func = { &aSumConpo02_ct, &aSumConpo02_mv, diff --git a/src/ftr/ac_sum_cont_chest02.c b/src/ftr/ac_sum_cont_chest02.c index bef53224..59f908e9 100644 --- a/src/ftr/ac_sum_cont_chest02.c +++ b/src/ftr/ac_sum_cont_chest02.c @@ -3,6 +3,41 @@ static void aSumContChest02_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* static void aSumContChest02_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumContChest02_dt(FTR_ACTOR* ftr_actor, u8* data); +extern cKF_Skeleton_R_c cKF_bs_r_int_sum_cont_chest02; +extern cKF_Animation_R_c cKF_ba_r_int_sum_cont_chest02; + +static void aSumContChest02_ct(FTR_ACTOR* ftr_actor, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + cKF_SkeletonInfo_R_ct(keyframe, &cKF_bs_r_int_sum_cont_chest02, &cKF_ba_r_int_sum_cont_chest02, ftr_actor->joint, ftr_actor->morph); + cKF_SkeletonInfo_R_init_standard_stop(keyframe, &cKF_ba_r_int_sum_cont_chest02, NULL); + keyframe->frame_control.speed = 0.0f; + cKF_SkeletonInfo_R_play(keyframe); +} + +static void aSumContChest02_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + if (Common_Get(clip).my_room_clip != NULL) { + (*Common_Get(clip).my_room_clip->open_close_common_move_proc)(ftr_actor, my_room_actor, game, 1.0f, 12.0f); + } +} + +static void aSumContChest02_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + GAME_PLAY* play = (GAME_PLAY*)game; + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + Mtx* mtx = ftr_actor->skeleton_mtx[game->frame_counter & 1]; + + OPEN_DISP(game->graph); + gSPMatrix(NEXT_POLY_OPA_DISP, _Matrix_to_Mtx_new(game->graph), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + CLOSE_DISP(game->graph); + + cKF_Si3_draw_R_SV(game, keyframe, mtx, NULL, NULL, NULL); +} + +static void aSumContChest02_dt(FTR_ACTOR* ftr_actor, u8* data) { +} + static aFTR_vtable_c aSumContChest02_func = { &aSumContChest02_ct, &aSumContChest02_mv, diff --git a/src/ftr/ac_sum_cont_chest03.c b/src/ftr/ac_sum_cont_chest03.c index b7521e64..bf21230c 100644 --- a/src/ftr/ac_sum_cont_chest03.c +++ b/src/ftr/ac_sum_cont_chest03.c @@ -3,6 +3,41 @@ static void aSumContChest03_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* static void aSumContChest03_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumContChest03_dt(FTR_ACTOR* ftr_actor, u8* data); +extern cKF_Skeleton_R_c cKF_bs_r_int_sum_cont_chest03; +extern cKF_Animation_R_c cKF_ba_r_int_sum_cont_chest03; + +static void aSumContChest03_ct(FTR_ACTOR* ftr_actor, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + cKF_SkeletonInfo_R_ct(keyframe, &cKF_bs_r_int_sum_cont_chest03, &cKF_ba_r_int_sum_cont_chest03, ftr_actor->joint, ftr_actor->morph); + cKF_SkeletonInfo_R_init_standard_stop(keyframe, &cKF_ba_r_int_sum_cont_chest03, NULL); + keyframe->frame_control.speed = 0.0f; + cKF_SkeletonInfo_R_play(keyframe); +} + +static void aSumContChest03_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + if (Common_Get(clip).my_room_clip != NULL) { + (*Common_Get(clip).my_room_clip->open_close_common_move_proc)(ftr_actor, my_room_actor, game, 1.0f, 10.0f); + } +} + +static void aSumContChest03_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + GAME_PLAY* play = (GAME_PLAY*)game; + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + Mtx* mtx = ftr_actor->skeleton_mtx[game->frame_counter & 1]; + + OPEN_DISP(game->graph); + gSPMatrix(NEXT_POLY_OPA_DISP, _Matrix_to_Mtx_new(game->graph), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + CLOSE_DISP(game->graph); + + cKF_Si3_draw_R_SV(game, keyframe, mtx, NULL, NULL, NULL); +} + +static void aSumContChest03_dt(FTR_ACTOR* ftr_actor, u8* data) { +} + static aFTR_vtable_c aSumContChest03_func = { &aSumContChest03_ct, &aSumContChest03_mv, diff --git a/src/ftr/ac_sum_fruitchest01.c b/src/ftr/ac_sum_fruitchest01.c index 164ee660..6d4ddc3e 100644 --- a/src/ftr/ac_sum_fruitchest01.c +++ b/src/ftr/ac_sum_fruitchest01.c @@ -3,6 +3,41 @@ static void aSumFruitchest01_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME static void aSumFruitchest01_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumFruitchest01_dt(FTR_ACTOR* ftr_actor, u8* data); +extern cKF_Skeleton_R_c cKF_bs_r_int_sum_fruitchest01; +extern cKF_Animation_R_c cKF_ba_r_int_sum_fruitchest01; + +static void aSumFruitchest01_ct(FTR_ACTOR* ftr_actor, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + cKF_SkeletonInfo_R_ct(keyframe, &cKF_bs_r_int_sum_fruitchest01, &cKF_ba_r_int_sum_fruitchest01, ftr_actor->joint, ftr_actor->morph); + cKF_SkeletonInfo_R_init_standard_stop(keyframe, &cKF_ba_r_int_sum_fruitchest01, NULL); + keyframe->frame_control.speed = 0.0f; + cKF_SkeletonInfo_R_play(keyframe); +} + +static void aSumFruitchest01_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + if (Common_Get(clip).my_room_clip != NULL) { + (*Common_Get(clip).my_room_clip->open_close_common_move_proc)(ftr_actor, my_room_actor, game, 1.0f, 10.0f); + } +} + +static void aSumFruitchest01_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + GAME_PLAY* play = (GAME_PLAY*)game; + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + Mtx* mtx = ftr_actor->skeleton_mtx[game->frame_counter & 1]; + + OPEN_DISP(game->graph); + gSPMatrix(NEXT_POLY_OPA_DISP, _Matrix_to_Mtx_new(game->graph), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + CLOSE_DISP(game->graph); + + cKF_Si3_draw_R_SV(game, keyframe, mtx, NULL, NULL, NULL); +} + +static void aSumFruitchest01_dt(FTR_ACTOR* ftr_actor, u8* data) { +} + static aFTR_vtable_c aSumFruitchest01_func = { &aSumFruitchest01_ct, &aSumFruitchest01_mv, diff --git a/src/ftr/ac_sum_fruitchest03.c b/src/ftr/ac_sum_fruitchest03.c index 2fc49402..b1be1cee 100644 --- a/src/ftr/ac_sum_fruitchest03.c +++ b/src/ftr/ac_sum_fruitchest03.c @@ -3,6 +3,41 @@ static void aSumFruitchest03_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME static void aSumFruitchest03_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumFruitchest03_dt(FTR_ACTOR* ftr_actor, u8* data); +extern cKF_Skeleton_R_c cKF_bs_r_int_sum_fruitchest03; +extern cKF_Animation_R_c cKF_ba_r_int_sum_fruitchest03; + +static void aSumFruitchest03_ct(FTR_ACTOR* ftr_actor, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + cKF_SkeletonInfo_R_ct(keyframe, &cKF_bs_r_int_sum_fruitchest03, &cKF_ba_r_int_sum_fruitchest03, ftr_actor->joint, ftr_actor->morph); + cKF_SkeletonInfo_R_init_standard_stop(keyframe, &cKF_ba_r_int_sum_fruitchest03, NULL); + keyframe->frame_control.speed = 0.0f; + cKF_SkeletonInfo_R_play(keyframe); +} + +static void aSumFruitchest03_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + if (Common_Get(clip).my_room_clip != NULL) { + (*Common_Get(clip).my_room_clip->open_close_common_move_proc)(ftr_actor, my_room_actor, game, 1.0f, 12.0f); + } +} + +static void aSumFruitchest03_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + GAME_PLAY* play = (GAME_PLAY*)game; + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + Mtx* mtx = ftr_actor->skeleton_mtx[game->frame_counter & 1]; + + OPEN_DISP(game->graph); + gSPMatrix(NEXT_POLY_OPA_DISP, _Matrix_to_Mtx_new(game->graph), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + CLOSE_DISP(game->graph); + + cKF_Si3_draw_R_SV(game, keyframe, mtx, NULL, NULL, NULL); +} + +static void aSumFruitchest03_dt(FTR_ACTOR* ftr_actor, u8* data) { +} + static aFTR_vtable_c aSumFruitchest03_func = { &aSumFruitchest03_ct, &aSumFruitchest03_mv, diff --git a/src/ftr/ac_sum_genji.c b/src/ftr/ac_sum_genji.c index 77deabbc..c804bebb 100644 --- a/src/ftr/ac_sum_genji.c +++ b/src/ftr/ac_sum_genji.c @@ -3,6 +3,74 @@ static void aSumgenji_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, static void aSumgenji_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumgenji_dt(FTR_ACTOR* ftr_actor, u8* data); +extern cKF_Animation_R_c cKF_ba_r_int_sum_genji; +extern cKF_Skeleton_R_c cKF_bs_r_int_sum_genji; + +static void aSumgenji_ct(FTR_ACTOR* ftr_actor, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + cKF_SkeletonInfo_R_ct(keyframe, &cKF_bs_r_int_sum_genji, &cKF_ba_r_int_sum_genji, ftr_actor->joint, ftr_actor->morph); + cKF_SkeletonInfo_R_init_standard_repeat(keyframe, &cKF_ba_r_int_sum_genji, NULL); + cKF_SkeletonInfo_R_play(keyframe); + keyframe->frame_control.speed = 0.5f; +} +static Gfx* aSumgenji_GetPrimDisp(GAME* game, u8 prim_r, u8 prim_g, u8 prim_b, u8 prim_a, u8 prim_l, u8 env_r, u8 env_g, u8 env_b, u8 env_a) { + Gfx* g = GRAPH_ALLOC_TYPE(game->graph, Gfx, 4); + + gDPPipeSync(g + 0); + gDPSetPrimColor(g + 1, 0, prim_l, prim_r, prim_g, prim_b, prim_a); + gDPSetEnvColor(g + 2, env_r, env_g, env_b, env_a); + gSPEndDisplayList(g + 3); + + return g; +} + +static void aSumgenji_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + Mtx* mtx = ftr_actor->skeleton_mtx[game->frame_counter & 1]; + static u8 prim_a_table[] = { + 255, 255, 255, 255, + 240, 225, 210, 195, + 180, 165, 150, 135, + 120, 105, 90, 75, + 50, 35, 20, 5, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 5, 20, 35, 50, + 75, 90, 105, 120, + 135, 150, 165, 180, + 195, 210, 225, 240, + 255, 255, 255, 255 + }; + int prim_a_idx = ABS((int)ftr_actor->dynamic_work_s[0] % ARRAY_COUNT(prim_a_table)); + Gfx* prim_disp = aSumgenji_GetPrimDisp(game, 255, 180, 0, prim_a_table[prim_a_idx], 255, 0, 255, 0, 255); + + OPEN_DISP(game->graph); + + gSPSegment(NEXT_POLY_OPA_DISP, G_MWO_SEGMENT_8, prim_disp); + gSPSegment(NEXT_POLY_XLU_DISP, G_MWO_SEGMENT_8, prim_disp); + + CLOSE_DISP(game->graph); + + cKF_Si3_draw_R_SV(game, keyframe, mtx, NULL, NULL, NULL); +} + +static void aSumgenji_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + cKF_SkeletonInfo_R_play(keyframe); + keyframe->frame_control.speed = 0.5f; + ftr_actor->dynamic_work_s[0]++; +} + +static void aSumgenji_dt(FTR_ACTOR* ftr_actor, u8* data) { +} + static aFTR_vtable_c aSumgenji_func = { &aSumgenji_ct, &aSumgenji_mv, diff --git a/src/ftr/ac_sum_gre_chest02.c b/src/ftr/ac_sum_gre_chest02.c index f5c8d505..5c554c62 100644 --- a/src/ftr/ac_sum_gre_chest02.c +++ b/src/ftr/ac_sum_gre_chest02.c @@ -3,6 +3,41 @@ static void aSumGreChest02_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* static void aSumGreChest02_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumGreChest02_dt(FTR_ACTOR* ftr_actor, u8* data); +extern cKF_Skeleton_R_c cKF_bs_r_int_sum_gre_chest02; +extern cKF_Animation_R_c cKF_ba_r_int_sum_gre_chest02; + +static void aSumGreChest02_ct(FTR_ACTOR* ftr_actor, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + cKF_SkeletonInfo_R_ct(keyframe, &cKF_bs_r_int_sum_gre_chest02, &cKF_ba_r_int_sum_gre_chest02, ftr_actor->joint, ftr_actor->morph); + cKF_SkeletonInfo_R_init_standard_stop(keyframe, &cKF_ba_r_int_sum_gre_chest02, NULL); + keyframe->frame_control.speed = 0.0f; + cKF_SkeletonInfo_R_play(keyframe); +} + +static void aSumGreChest02_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + if (Common_Get(clip).my_room_clip != NULL) { + (*Common_Get(clip).my_room_clip->open_close_common_move_proc)(ftr_actor, my_room_actor, game, 1.0f, 12.0f); + } +} + +static void aSumGreChest02_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + GAME_PLAY* play = (GAME_PLAY*)game; + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + Mtx* mtx = ftr_actor->skeleton_mtx[game->frame_counter & 1]; + + OPEN_DISP(game->graph); + gSPMatrix(NEXT_POLY_OPA_DISP, _Matrix_to_Mtx_new(game->graph), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + CLOSE_DISP(game->graph); + + cKF_Si3_draw_R_SV(game, keyframe, mtx, NULL, NULL, NULL); +} + +static void aSumGreChest02_dt(FTR_ACTOR* ftr_actor, u8* data) { +} + static aFTR_vtable_c aSumGreChest02_func = { &aSumGreChest02_ct, &aSumGreChest02_mv, diff --git a/src/ftr/ac_sum_gre_chest03.c b/src/ftr/ac_sum_gre_chest03.c index 5f540b6a..a7347160 100644 --- a/src/ftr/ac_sum_gre_chest03.c +++ b/src/ftr/ac_sum_gre_chest03.c @@ -3,6 +3,41 @@ static void aSumGreChest03_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* static void aSumGreChest03_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumGreChest03_dt(FTR_ACTOR* ftr_actor, u8* data); +extern cKF_Skeleton_R_c cKF_bs_r_int_sum_gre_chest03; +extern cKF_Animation_R_c cKF_ba_r_int_sum_gre_chest03; + +static void aSumGreChest03_ct(FTR_ACTOR* ftr_actor, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + cKF_SkeletonInfo_R_ct(keyframe, &cKF_bs_r_int_sum_gre_chest03, &cKF_ba_r_int_sum_gre_chest03, ftr_actor->joint, ftr_actor->morph); + cKF_SkeletonInfo_R_init_standard_stop(keyframe, &cKF_ba_r_int_sum_gre_chest03, NULL); + keyframe->frame_control.speed = 0.0f; + cKF_SkeletonInfo_R_play(keyframe); +} + +static void aSumGreChest03_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + if (Common_Get(clip).my_room_clip != NULL) { + (*Common_Get(clip).my_room_clip->open_close_common_move_proc)(ftr_actor, my_room_actor, game, 1.0f, 10.0f); + } +} + +static void aSumGreChest03_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + GAME_PLAY* play = (GAME_PLAY*)game; + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + Mtx* mtx = ftr_actor->skeleton_mtx[game->frame_counter & 1]; + + OPEN_DISP(game->graph); + gSPMatrix(NEXT_POLY_OPA_DISP, _Matrix_to_Mtx_new(game->graph), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + CLOSE_DISP(game->graph); + + cKF_Si3_draw_R_SV(game, keyframe, mtx, NULL, NULL, NULL); +} + +static void aSumGreChest03_dt(FTR_ACTOR* ftr_actor, u8* data) { +} + static aFTR_vtable_c aSumGreChest03_func = { &aSumGreChest03_ct, &aSumGreChest03_mv, diff --git a/src/ftr/ac_sum_gre_lanp01.c b/src/ftr/ac_sum_gre_lanp01.c index 1947b142..51810210 100644 --- a/src/ftr/ac_sum_gre_lanp01.c +++ b/src/ftr/ac_sum_gre_lanp01.c @@ -2,6 +2,20 @@ extern Gfx int_sum_gre_lanp01_on_model[]; extern Gfx int_sum_gre_lanp01_onT_model[]; static void aSumGreLanp01_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); +extern Gfx int_sum_gre_lanp01_off_model[]; +extern Gfx int_sum_gre_lanp01_offT_model[]; + +static void aSumGreLanp01_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + OPEN_DISP(game->graph); + + _texture_z_light_fog_prim(game->graph); + gSPMatrix(NEXT_POLY_OPA_DISP, _Matrix_to_Mtx_new(game->graph), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(NEXT_POLY_OPA_DISP, int_sum_gre_lanp01_offT_model); + + CLOSE_DISP(game->graph); +} + + static aFTR_vtable_c aSumGreLanp01_func = { NULL, NULL, diff --git a/src/ftr/ac_sum_guitar01.c b/src/ftr/ac_sum_guitar01.c index 57d1c776..41d7daa4 100644 --- a/src/ftr/ac_sum_guitar01.c +++ b/src/ftr/ac_sum_guitar01.c @@ -5,6 +5,21 @@ static void aSumGuitar01_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* ga static void aSumGuitar01_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumGuitar01_dt(FTR_ACTOR* ftr_actor, u8* data); +static void aSumGuitar01_ct(FTR_ACTOR* ftr_actor, u8* data) { +} + +static void aSumGuitar01_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + if (Common_Get(clip).my_room_clip != NULL) { + Common_Get(clip).my_room_clip->sound_melody_proc(ftr_actor, my_room_actor, 0); + } +} + +static void aSumGuitar01_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { +} + +static void aSumGuitar01_dt(FTR_ACTOR* ftr_actor, u8* data) { +} + static aFTR_vtable_c aSumGuitar01_func = { &aSumGuitar01_ct, &aSumGuitar01_mv, diff --git a/src/ftr/ac_sum_guitar02.c b/src/ftr/ac_sum_guitar02.c index c6e2927c..8304cf42 100644 --- a/src/ftr/ac_sum_guitar02.c +++ b/src/ftr/ac_sum_guitar02.c @@ -5,6 +5,21 @@ static void aSumGuitar02_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* ga static void aSumGuitar02_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumGuitar02_dt(FTR_ACTOR* ftr_actor, u8* data); +static void aSumGuitar02_ct(FTR_ACTOR* ftr_actor, u8* data) { +} + +static void aSumGuitar02_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + if (Common_Get(clip).my_room_clip != NULL) { + Common_Get(clip).my_room_clip->sound_melody_proc(ftr_actor, my_room_actor, 1); + } +} + +static void aSumGuitar02_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { +} + +static void aSumGuitar02_dt(FTR_ACTOR* ftr_actor, u8* data) { +} + static aFTR_vtable_c aSumGuitar02_func = { &aSumGuitar02_ct, &aSumGuitar02_mv, diff --git a/src/ftr/ac_sum_guitar03.c b/src/ftr/ac_sum_guitar03.c index 948dd7a4..cc5af58b 100644 --- a/src/ftr/ac_sum_guitar03.c +++ b/src/ftr/ac_sum_guitar03.c @@ -5,6 +5,23 @@ static void aSumGuitar03_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* ga static void aSumGuitar03_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumGuitar03_dt(FTR_ACTOR* ftr_actor, u8* data); + +static void aSumGuitar03_ct(FTR_ACTOR* ftr_actor, u8* data) { +} + +static void aSumGuitar03_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + if (Common_Get(clip).my_room_clip != NULL) { + Common_Get(clip).my_room_clip->sound_melody_proc(ftr_actor, my_room_actor, 2); + } +} + +static void aSumGuitar03_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { +} + +static void aSumGuitar03_dt(FTR_ACTOR* ftr_actor, u8* data) { +} + + static aFTR_vtable_c aSumGuitar03_func = { &aSumGuitar03_ct, &aSumGuitar03_mv, diff --git a/src/ftr/ac_sum_hal_chest02.c b/src/ftr/ac_sum_hal_chest02.c index 79d15f65..14643a07 100644 --- a/src/ftr/ac_sum_hal_chest02.c +++ b/src/ftr/ac_sum_hal_chest02.c @@ -3,6 +3,41 @@ static void aSumHalChest02_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* static void aSumHalChest02_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumHalChest02_dt(FTR_ACTOR* ftr_actor, u8* data); +extern cKF_Skeleton_R_c cKF_bs_r_int_sum_hal_chest02; +extern cKF_Animation_R_c cKF_ba_r_int_sum_hal_chest02; + +static void aSumHalChest02_ct(FTR_ACTOR* ftr_actor, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + cKF_SkeletonInfo_R_ct(keyframe, &cKF_bs_r_int_sum_hal_chest02, &cKF_ba_r_int_sum_hal_chest02, ftr_actor->joint, ftr_actor->morph); + cKF_SkeletonInfo_R_init_standard_stop(keyframe, &cKF_ba_r_int_sum_hal_chest02, NULL); + keyframe->frame_control.speed = 0.0f; + cKF_SkeletonInfo_R_play(keyframe); +} + +static void aSumHalChest02_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + if (Common_Get(clip).my_room_clip != NULL) { + (*Common_Get(clip).my_room_clip->open_close_common_move_proc)(ftr_actor, my_room_actor, game, 1.0f, 16.0f); + } +} + +static void aSumHalChest02_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + GAME_PLAY* play = (GAME_PLAY*)game; + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + Mtx* mtx = ftr_actor->skeleton_mtx[game->frame_counter & 1]; + + OPEN_DISP(game->graph); + gSPMatrix(NEXT_POLY_OPA_DISP, _Matrix_to_Mtx_new(game->graph), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + CLOSE_DISP(game->graph); + + cKF_Si3_draw_R_SV(game, keyframe, mtx, NULL, NULL, NULL); +} + +static void aSumHalChest02_dt(FTR_ACTOR* ftr_actor, u8* data) { +} + static aFTR_vtable_c aSumHalChest02_func = { &aSumHalChest02_ct, &aSumHalChest02_mv, diff --git a/src/ftr/ac_sum_hal_chest03.c b/src/ftr/ac_sum_hal_chest03.c index c8c7111c..ef120eb2 100644 --- a/src/ftr/ac_sum_hal_chest03.c +++ b/src/ftr/ac_sum_hal_chest03.c @@ -3,6 +3,41 @@ static void aSumHalChest03_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* static void aSumHalChest03_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumHalChest03_dt(FTR_ACTOR* ftr_actor, u8* data); +extern cKF_Skeleton_R_c cKF_bs_r_int_sum_hal_chest03; +extern cKF_Animation_R_c cKF_ba_r_int_sum_hal_chest03; + +static void aSumHalChest03_ct(FTR_ACTOR* ftr_actor, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + cKF_SkeletonInfo_R_ct(keyframe, &cKF_bs_r_int_sum_hal_chest03, &cKF_ba_r_int_sum_hal_chest03, ftr_actor->joint, ftr_actor->morph); + cKF_SkeletonInfo_R_init_standard_stop(keyframe, &cKF_ba_r_int_sum_hal_chest03, NULL); + keyframe->frame_control.speed = 0.0f; + cKF_SkeletonInfo_R_play(keyframe); +} + +static void aSumHalChest03_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + if (Common_Get(clip).my_room_clip != NULL) { + (*Common_Get(clip).my_room_clip->open_close_common_move_proc)(ftr_actor, my_room_actor, game, 1.0f, 10.0f); + } +} + +static void aSumHalChest03_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + GAME_PLAY* play = (GAME_PLAY*)game; + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + Mtx* mtx = ftr_actor->skeleton_mtx[game->frame_counter & 1]; + + OPEN_DISP(game->graph); + gSPMatrix(NEXT_POLY_OPA_DISP, _Matrix_to_Mtx_new(game->graph), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + CLOSE_DISP(game->graph); + + cKF_Si3_draw_R_SV(game, keyframe, mtx, NULL, NULL, NULL); +} + +static void aSumHalChest03_dt(FTR_ACTOR* ftr_actor, u8* data) { +} + static aFTR_vtable_c aSumHalChest03_func = { &aSumHalChest03_ct, &aSumHalChest03_mv, diff --git a/src/ftr/ac_sum_harp.c b/src/ftr/ac_sum_harp.c index 4ec58f19..2dfd54c5 100644 --- a/src/ftr/ac_sum_harp.c +++ b/src/ftr/ac_sum_harp.c @@ -5,6 +5,21 @@ static void aSumHarp_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, static void aSumHarp_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumHarp_dt(FTR_ACTOR* ftr_actor, u8* data); +static void aSumHarp_ct(FTR_ACTOR* ftr_actor, u8* data) { +} + +static void aSumHarp_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + if (Common_Get(clip).my_room_clip != NULL) { + Common_Get(clip).my_room_clip->sound_melody_proc(ftr_actor, my_room_actor, 3); + } +} + +static void aSumHarp_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { +} + +static void aSumHarp_dt(FTR_ACTOR* ftr_actor, u8* data) { +} + static aFTR_vtable_c aSumHarp_func = { &aSumHarp_ct, &aSumHarp_mv, diff --git a/src/ftr/ac_sum_higurashi.c b/src/ftr/ac_sum_higurashi.c index 5ece3d69..8bce2311 100644 --- a/src/ftr/ac_sum_higurashi.c +++ b/src/ftr/ac_sum_higurashi.c @@ -2,6 +2,42 @@ static void aSumHigurashi_ct(FTR_ACTOR* ftr_actor, u8* data); static void aSumHigurashi_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumHigurashi_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); +extern cKF_Animation_R_c cKF_ba_r_int_sum_higurashi; +extern cKF_Skeleton_R_c cKF_bs_r_int_sum_higurashi; + +static void aSumHigurashi_ct(FTR_ACTOR* ftr_actor, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + cKF_SkeletonInfo_R_ct(keyframe, &cKF_bs_r_int_sum_higurashi, &cKF_ba_r_int_sum_higurashi, ftr_actor->joint, ftr_actor->morph); + cKF_SkeletonInfo_R_init_standard_stop(keyframe, &cKF_ba_r_int_sum_higurashi, NULL); + cKF_SkeletonInfo_R_play(keyframe); + keyframe->frame_control.speed = 0.0f; +} + +static void aSumHigurashi_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + cKF_SkeletonInfo_R_c* keyframe; + int valid; + + if (aFTR_CAN_PLAY_SE(ftr_actor)) { + keyframe = &ftr_actor->keyframe; + valid = sAdo_RoomIncectPos((u32)ftr_actor, 61, &ftr_actor->position); + + if (valid != 0) { + cKF_SkeletonInfo_R_init_standard_stop(keyframe, &cKF_ba_r_int_sum_higurashi, NULL); + keyframe->frame_control.speed = 0.5f; + } + cKF_SkeletonInfo_R_play(keyframe); + } + +} + +static void aSumHigurashi_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + Mtx* mtx = ftr_actor->skeleton_mtx[game->frame_counter & 1]; + + cKF_Si3_draw_R_SV(game, keyframe, mtx, NULL, NULL, ftr_actor); +} + static aFTR_vtable_c aSumHigurashi_func = { &aSumHigurashi_ct, &aSumHigurashi_mv, diff --git a/src/ftr/ac_sum_jukebox.c b/src/ftr/ac_sum_jukebox.c index 7996b36f..e2a56875 100644 --- a/src/ftr/ac_sum_jukebox.c +++ b/src/ftr/ac_sum_jukebox.c @@ -6,6 +6,19 @@ static void aSumJukebox_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* gam static void aSumJukebox_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumJukebox_dt(FTR_ACTOR* ftr_actor, u8* data); +static void aSumJukebox_ct(FTR_ACTOR* ftr_actor, u8* data) { +} + +static void aSumJukebox_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + (*Common_Get(clip).my_room_clip->mini_disk_common_move_proc)(ftr_actor, my_room_actor, game, 0.0f, 0.0f); +} + +static void aSumJukebox_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { +} + +static void aSumJukebox_dt(FTR_ACTOR* ftr_actor, u8* data) { +} + static aFTR_vtable_c aSumJukebox_func = { &aSumJukebox_ct, &aSumJukebox_mv, diff --git a/src/ftr/ac_sum_kirigirisu.c b/src/ftr/ac_sum_kirigirisu.c index 6b851370..7896a576 100644 --- a/src/ftr/ac_sum_kirigirisu.c +++ b/src/ftr/ac_sum_kirigirisu.c @@ -2,6 +2,42 @@ static void aSumKirigirisu_ct(FTR_ACTOR* ftr_actor, u8* data); static void aSumKirigirisu_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumKirigirisu_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); +extern cKF_Animation_R_c cKF_ba_r_int_sum_kirigirisu; +extern cKF_Skeleton_R_c cKF_bs_r_int_sum_kirigirisu; + +static void aSumKirigirisu_ct(FTR_ACTOR* ftr_actor, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + cKF_SkeletonInfo_R_ct(keyframe, &cKF_bs_r_int_sum_kirigirisu, &cKF_ba_r_int_sum_kirigirisu, ftr_actor->joint, ftr_actor->morph); + cKF_SkeletonInfo_R_init_standard_stop(keyframe, &cKF_ba_r_int_sum_kirigirisu, NULL); + cKF_SkeletonInfo_R_play(keyframe); + keyframe->frame_control.speed = 0.0f; +} + +static void aSumKirigirisu_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + cKF_SkeletonInfo_R_c* keyframe; + int valid; + + if (aFTR_CAN_PLAY_SE(ftr_actor)) { + keyframe = &ftr_actor->keyframe; + valid = sAdo_RoomIncectPos((u32)ftr_actor, 55, &ftr_actor->position); + + if (valid != 0) { + cKF_SkeletonInfo_R_init_standard_stop(keyframe, &cKF_ba_r_int_sum_kirigirisu, NULL); + keyframe->frame_control.speed = 0.5f; + } + cKF_SkeletonInfo_R_play(keyframe); + } + +} + +static void aSumKirigirisu_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + Mtx* mtx = ftr_actor->skeleton_mtx[game->frame_counter & 1]; + + cKF_Si3_draw_R_SV(game, keyframe, mtx, NULL, NULL, ftr_actor); +} + static aFTR_vtable_c aSumKirigirisu_func = { &aSumKirigirisu_ct, &aSumKirigirisu_mv, diff --git a/src/ftr/ac_sum_kisha.c b/src/ftr/ac_sum_kisha.c index a6c6a9c6..d7114ee8 100644 --- a/src/ftr/ac_sum_kisha.c +++ b/src/ftr/ac_sum_kisha.c @@ -3,6 +3,60 @@ static void aSumKisha_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, static void aSumKisha_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumKisha_dt(FTR_ACTOR* ftr_actor, u8* data); +extern cKF_Skeleton_R_c cKF_bs_r_int_sum_kisha; +extern cKF_Animation_R_c cKF_ba_r_int_sum_kisha; + +static void aSumKisha_ct(FTR_ACTOR* ftr_actor, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + cKF_SkeletonInfo_R_ct(keyframe, &cKF_bs_r_int_sum_kisha, &cKF_ba_r_int_sum_kisha, ftr_actor->joint, ftr_actor->morph); + cKF_SkeletonInfo_R_init_standard_repeat(keyframe, &cKF_ba_r_int_sum_kisha, NULL); + cKF_SkeletonInfo_R_play(keyframe); + keyframe->frame_control.speed = 0.5f; + + if (ftr_actor->switch_bit != FALSE) { + ftr_actor->dynamic_work_f[0] = 0.5f; + } + else { + ftr_actor->dynamic_work_f[0] = 0.0f; + } +} + +static void aSumKisha_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + aSumKisha_ChangeSwitch(ftr_actor); + + if (ftr_actor->switch_bit != FALSE) { + add_calc(&ftr_actor->dynamic_work_f[0], 0.5f, 1.0f - sqrtf(0.95), 0.25f, 0.0005f); + + if (aFTR_CAN_PLAY_SE(ftr_actor)) { + sAdo_OngenPos((u32)ftr_actor, 3, &ftr_actor->position); + } + } + else { + add_calc(&ftr_actor->dynamic_work_f[0], 0.0f, 1.0f - sqrtf(0.9), 0.25f, 0.0005f); + } + + keyframe->frame_control.speed = ftr_actor->dynamic_work_f[0]; + cKF_SkeletonInfo_R_play(keyframe); +} + +static void aSumKisha_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + GAME_PLAY* play = (GAME_PLAY*)game; + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + Mtx* mtx = ftr_actor->skeleton_mtx[game->frame_counter & 1]; + + OPEN_DISP(game->graph); + gSPMatrix(NEXT_POLY_OPA_DISP, _Matrix_to_Mtx_new(game->graph), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + CLOSE_DISP(game->graph); + + cKF_Si3_draw_R_SV(game, keyframe, mtx, NULL, NULL, NULL); +} + +static void aSumKisha_dt(FTR_ACTOR* ftr_actor, u8* data) { +} + static aFTR_vtable_c aSumKisha_func = { &aSumKisha_ct, &aSumKisha_mv, diff --git a/src/ftr/ac_sum_koorogi.c b/src/ftr/ac_sum_koorogi.c index 8f2e1446..e89ff1d9 100644 --- a/src/ftr/ac_sum_koorogi.c +++ b/src/ftr/ac_sum_koorogi.c @@ -2,6 +2,42 @@ static void aSumKoorogi_ct(FTR_ACTOR* ftr_actor, u8* data); static void aSumKoorogi_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumKoorogi_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); +extern cKF_Animation_R_c cKF_ba_r_int_sum_koorogi; +extern cKF_Skeleton_R_c cKF_bs_r_int_sum_koorogi; + +static void aSumKoorogi_ct(FTR_ACTOR* ftr_actor, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + cKF_SkeletonInfo_R_ct(keyframe, &cKF_bs_r_int_sum_koorogi, &cKF_ba_r_int_sum_koorogi, ftr_actor->joint, ftr_actor->morph); + cKF_SkeletonInfo_R_init_standard_stop(keyframe, &cKF_ba_r_int_sum_koorogi, NULL); + cKF_SkeletonInfo_R_play(keyframe); + keyframe->frame_control.speed = 0.0f; +} + +static void aSumKoorogi_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + cKF_SkeletonInfo_R_c* keyframe; + int valid; + + if (aFTR_CAN_PLAY_SE(ftr_actor)) { + keyframe = &ftr_actor->keyframe; + valid = sAdo_RoomIncectPos((u32)ftr_actor, 56, &ftr_actor->position); + + if (valid != 0) { + cKF_SkeletonInfo_R_init_standard_stop(keyframe, &cKF_ba_r_int_sum_koorogi, NULL); + keyframe->frame_control.speed = 0.5f; + } + cKF_SkeletonInfo_R_play(keyframe); + } + +} + +static void aSumKoorogi_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + Mtx* mtx = ftr_actor->skeleton_mtx[game->frame_counter & 1]; + + cKF_Si3_draw_R_SV(game, keyframe, mtx, NULL, NULL, ftr_actor); +} + static aFTR_vtable_c aSumKoorogi_func = { &aSumKoorogi_ct, &aSumKoorogi_mv, diff --git a/src/ftr/ac_sum_liccachest.c b/src/ftr/ac_sum_liccachest.c index fd47b155..44fa61aa 100644 --- a/src/ftr/ac_sum_liccachest.c +++ b/src/ftr/ac_sum_liccachest.c @@ -3,6 +3,41 @@ static void aSumLiccachest_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* static void aSumLiccachest_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumLiccachest_dt(FTR_ACTOR* ftr_actor, u8* data); +extern cKF_Skeleton_R_c cKF_bs_r_int_sum_liccachest; +extern cKF_Animation_R_c cKF_ba_r_int_sum_liccachest; + +static void aSumLiccachest_ct(FTR_ACTOR* ftr_actor, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + cKF_SkeletonInfo_R_ct(keyframe, &cKF_bs_r_int_sum_liccachest, &cKF_ba_r_int_sum_liccachest, ftr_actor->joint, ftr_actor->morph); + cKF_SkeletonInfo_R_init_standard_stop(keyframe, &cKF_ba_r_int_sum_liccachest, NULL); + keyframe->frame_control.speed = 0.0f; + cKF_SkeletonInfo_R_play(keyframe); +} + +static void aSumLiccachest_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + if (Common_Get(clip).my_room_clip != NULL) { + (*Common_Get(clip).my_room_clip->open_close_common_move_proc)(ftr_actor, my_room_actor, game, 1.0f, 12.0f); + } +} + +static void aSumLiccachest_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + GAME_PLAY* play = (GAME_PLAY*)game; + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + Mtx* mtx = ftr_actor->skeleton_mtx[game->frame_counter & 1]; + + OPEN_DISP(game->graph); + gSPMatrix(NEXT_POLY_OPA_DISP, _Matrix_to_Mtx_new(game->graph), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + CLOSE_DISP(game->graph); + + cKF_Si3_draw_R_SV(game, keyframe, mtx, NULL, NULL, NULL); +} + +static void aSumLiccachest_dt(FTR_ACTOR* ftr_actor, u8* data) { +} + static aFTR_vtable_c aSumLiccachest_func = { &aSumLiccachest_ct, &aSumLiccachest_mv, diff --git a/src/ftr/ac_sum_liccalowchest.c b/src/ftr/ac_sum_liccalowchest.c index 542fcd43..2edbc228 100644 --- a/src/ftr/ac_sum_liccalowchest.c +++ b/src/ftr/ac_sum_liccalowchest.c @@ -3,6 +3,41 @@ static void aSumLiccaLowChest_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAM static void aSumLiccaLowChest_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumLiccaLowChest_dt(FTR_ACTOR* ftr_actor, u8* data); +extern cKF_Skeleton_R_c cKF_bs_r_int_sum_liccalowchest; +extern cKF_Animation_R_c cKF_ba_r_int_sum_liccalowchest; + +static void aSumLiccaLowChest_ct(FTR_ACTOR* ftr_actor, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + cKF_SkeletonInfo_R_ct(keyframe, &cKF_bs_r_int_sum_liccalowchest, &cKF_ba_r_int_sum_liccalowchest, ftr_actor->joint, ftr_actor->morph); + cKF_SkeletonInfo_R_init_standard_stop(keyframe, &cKF_ba_r_int_sum_liccalowchest, NULL); + keyframe->frame_control.speed = 0.0f; + cKF_SkeletonInfo_R_play(keyframe); +} + +static void aSumLiccaLowChest_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + if (Common_Get(clip).my_room_clip != NULL) { + (*Common_Get(clip).my_room_clip->open_close_common_move_proc)(ftr_actor, my_room_actor, game, 1.0f, 10.0f); + } +} + +static void aSumLiccaLowChest_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + GAME_PLAY* play = (GAME_PLAY*)game; + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + Mtx* mtx = ftr_actor->skeleton_mtx[game->frame_counter & 1]; + + OPEN_DISP(game->graph); + gSPMatrix(NEXT_POLY_OPA_DISP, _Matrix_to_Mtx_new(game->graph), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + CLOSE_DISP(game->graph); + + cKF_Si3_draw_R_SV(game, keyframe, mtx, NULL, NULL, NULL); +} + +static void aSumLiccaLowChest_dt(FTR_ACTOR* ftr_actor, u8* data) { +} + static aFTR_vtable_c aSumLiccaLowChest_func = { &aSumLiccaLowChest_ct, &aSumLiccaLowChest_mv, diff --git a/src/ftr/ac_sum_liccapiano.c b/src/ftr/ac_sum_liccapiano.c index be9e7bea..703cc72b 100644 --- a/src/ftr/ac_sum_liccapiano.c +++ b/src/ftr/ac_sum_liccapiano.c @@ -5,6 +5,21 @@ static void aSumLiccapiano_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* static void aSumLiccapiano_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumLiccapiano_dt(FTR_ACTOR* ftr_actor, u8* data); +static void aSumLiccapiano_ct(FTR_ACTOR* ftr_actor, u8* data) { +} + +static void aSumLiccapiano_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + if (Common_Get(clip).my_room_clip != NULL) { + Common_Get(clip).my_room_clip->sound_melody_proc(ftr_actor, my_room_actor, 4); + } +} + +static void aSumLiccapiano_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { +} + +static void aSumLiccapiano_dt(FTR_ACTOR* ftr_actor, u8* data) { +} + static aFTR_vtable_c aSumLiccapiano_func = { &aSumLiccapiano_ct, &aSumLiccapiano_mv, diff --git a/src/ftr/ac_sum_log_chest01.c b/src/ftr/ac_sum_log_chest01.c index 3cf7deda..09bbd507 100644 --- a/src/ftr/ac_sum_log_chest01.c +++ b/src/ftr/ac_sum_log_chest01.c @@ -3,6 +3,41 @@ static void aSumLogChest01_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* static void aSumLogChest01_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumLogChest01_dt(FTR_ACTOR* ftr_actor, u8* data); +extern cKF_Skeleton_R_c cKF_bs_r_int_sum_log_chest01; +extern cKF_Animation_R_c cKF_ba_r_int_sum_log_chest01; + +static void aSumLogChest01_ct(FTR_ACTOR* ftr_actor, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + cKF_SkeletonInfo_R_ct(keyframe, &cKF_bs_r_int_sum_log_chest01, &cKF_ba_r_int_sum_log_chest01, ftr_actor->joint, ftr_actor->morph); + cKF_SkeletonInfo_R_init_standard_stop(keyframe, &cKF_ba_r_int_sum_log_chest01, NULL); + keyframe->frame_control.speed = 0.0f; + cKF_SkeletonInfo_R_play(keyframe); +} + +static void aSumLogChest01_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + if (Common_Get(clip).my_room_clip != NULL) { + (*Common_Get(clip).my_room_clip->open_close_common_move_proc)(ftr_actor, my_room_actor, game, 1.0f, 10.0f); + } +} + +static void aSumLogChest01_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + GAME_PLAY* play = (GAME_PLAY*)game; + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + Mtx* mtx = ftr_actor->skeleton_mtx[game->frame_counter & 1]; + + OPEN_DISP(game->graph); + gSPMatrix(NEXT_POLY_OPA_DISP, _Matrix_to_Mtx_new(game->graph), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + CLOSE_DISP(game->graph); + + cKF_Si3_draw_R_SV(game, keyframe, mtx, NULL, NULL, NULL); +} + +static void aSumLogChest01_dt(FTR_ACTOR* ftr_actor, u8* data) { +} + static aFTR_vtable_c aSumLogChest01_func = { &aSumLogChest01_ct, &aSumLogChest01_mv, diff --git a/src/ftr/ac_sum_log_chest02.c b/src/ftr/ac_sum_log_chest02.c index 113bf9fe..be152487 100644 --- a/src/ftr/ac_sum_log_chest02.c +++ b/src/ftr/ac_sum_log_chest02.c @@ -3,6 +3,41 @@ static void aSumBlaChest02_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* static void aSumBlaChest02_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumBlaChest02_dt(FTR_ACTOR* ftr_actor, u8* data); +extern cKF_Skeleton_R_c cKF_bs_r_int_sum_log_chest02; +extern cKF_Animation_R_c cKF_ba_r_int_sum_log_chest02; + +static void aSumBlaChest02_ct(FTR_ACTOR* ftr_actor, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + cKF_SkeletonInfo_R_ct(keyframe, &cKF_bs_r_int_sum_log_chest02, &cKF_ba_r_int_sum_log_chest02, ftr_actor->joint, ftr_actor->morph); + cKF_SkeletonInfo_R_init_standard_stop(keyframe, &cKF_ba_r_int_sum_log_chest02, NULL); + keyframe->frame_control.speed = 0.0f; + cKF_SkeletonInfo_R_play(keyframe); +} + +static void aSumBlaChest02_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + if (Common_Get(clip).my_room_clip != NULL) { + (*Common_Get(clip).my_room_clip->open_close_common_move_proc)(ftr_actor, my_room_actor, game, 1.0f, 12.0f); + } +} + +static void aSumBlaChest02_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + GAME_PLAY* play = (GAME_PLAY*)game; + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + Mtx* mtx = ftr_actor->skeleton_mtx[game->frame_counter & 1]; + + OPEN_DISP(game->graph); + gSPMatrix(NEXT_POLY_OPA_DISP, _Matrix_to_Mtx_new(game->graph), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + CLOSE_DISP(game->graph); + + cKF_Si3_draw_R_SV(game, keyframe, mtx, NULL, NULL, NULL); +} + +static void aSumBlaChest02_dt(FTR_ACTOR* ftr_actor, u8* data) { +} + static aFTR_vtable_c aSumBlaChest02_func = { &aSumBlaChest02_ct, &aSumBlaChest02_mv, diff --git a/src/ftr/ac_sum_lv_stereo.c b/src/ftr/ac_sum_lv_stereo.c index acd22718..ec65beaf 100644 --- a/src/ftr/ac_sum_lv_stereo.c +++ b/src/ftr/ac_sum_lv_stereo.c @@ -5,6 +5,19 @@ static void aSumLv_Stereo_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* g static void aSumLv_Stereo_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumLv_Stereo_dt(FTR_ACTOR* ftr_actor, u8* data); +static void aSumLv_Stereo_ct(FTR_ACTOR* ftr_actor, u8* data) { +} + +static void aSumLv_Stereo_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + (*Common_Get(clip).my_room_clip->mini_disk_common_move_proc)(ftr_actor, my_room_actor, game, 0.0f, 0.0f); +} + +static void aSumLv_Stereo_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { +} + +static void aSumLv_Stereo_dt(FTR_ACTOR* ftr_actor, u8* data) { +} + static aFTR_vtable_c aSumLv_Stereo_func = { &aSumLv_Stereo_ct, &aSumLv_Stereo_mv, diff --git a/src/ftr/ac_sum_matumushi.c b/src/ftr/ac_sum_matumushi.c index f2a56680..118451ec 100644 --- a/src/ftr/ac_sum_matumushi.c +++ b/src/ftr/ac_sum_matumushi.c @@ -2,6 +2,42 @@ static void aSumMatumushi_ct(FTR_ACTOR* ftr_actor, u8* data); static void aSumMatumushi_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumMatumushi_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); +extern cKF_Animation_R_c cKF_ba_r_int_sum_matumushi; +extern cKF_Skeleton_R_c cKF_bs_r_int_sum_matumushi; + +static void aSumMatumushi_ct(FTR_ACTOR* ftr_actor, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + cKF_SkeletonInfo_R_ct(keyframe, &cKF_bs_r_int_sum_matumushi, &cKF_ba_r_int_sum_matumushi, ftr_actor->joint, ftr_actor->morph); + cKF_SkeletonInfo_R_init_standard_stop(keyframe, &cKF_ba_r_int_sum_matumushi, NULL); + cKF_SkeletonInfo_R_play(keyframe); + keyframe->frame_control.speed = 0.0f; +} + +static void aSumMatumushi_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + cKF_SkeletonInfo_R_c* keyframe; + int valid; + + if (aFTR_CAN_PLAY_SE(ftr_actor)) { + keyframe = &ftr_actor->keyframe; + valid = sAdo_RoomIncectPos((u32)ftr_actor, 54, &ftr_actor->position); + + if (valid != 0) { + cKF_SkeletonInfo_R_init_standard_stop(keyframe, &cKF_ba_r_int_sum_matumushi, NULL); + keyframe->frame_control.speed = 0.5f; + } + cKF_SkeletonInfo_R_play(keyframe); + } + +} + +static void aSumMatumushi_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + Mtx* mtx = ftr_actor->skeleton_mtx[game->frame_counter & 1]; + + cKF_Si3_draw_R_SV(game, keyframe, mtx, NULL, NULL, ftr_actor); +} + static aFTR_vtable_c aSumMatumushi_func = { &aSumMatumushi_ct, &aSumMatumushi_mv, diff --git a/src/ftr/ac_sum_md01.c b/src/ftr/ac_sum_md01.c index deee9609..dab54edb 100644 --- a/src/ftr/ac_sum_md01.c +++ b/src/ftr/ac_sum_md01.c @@ -4,6 +4,21 @@ static void aSumMd01_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, static void aSumMd01_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumMd01_dt(FTR_ACTOR* ftr_actor, u8* data); +static void aSumMd01_ct(FTR_ACTOR* ftr_actor, u8* data) { +} + +static void aSumMd01_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + if (Common_Get(clip).my_room_clip != NULL) { + (*Common_Get(clip).my_room_clip->mini_disk_common_move_proc)(ftr_actor, my_room_actor, game, 0.0f, 0.0f); + } +} + +static void aSumMd01_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { +} + +static void aSumMd01_dt(FTR_ACTOR* ftr_actor, u8* data) { +} + static aFTR_vtable_c aSumMd01_func = { &aSumMd01_ct, &aSumMd01_mv, diff --git a/src/ftr/ac_sum_minmin.c b/src/ftr/ac_sum_minmin.c index 0bbbf8e9..ecf2d05c 100644 --- a/src/ftr/ac_sum_minmin.c +++ b/src/ftr/ac_sum_minmin.c @@ -2,6 +2,42 @@ static void aSumMinmin_ct(FTR_ACTOR* ftr_actor, u8* data); static void aSumMinmin_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumMinmin_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); +extern cKF_Animation_R_c cKF_ba_r_int_sum_minmin; +extern cKF_Skeleton_R_c cKF_bs_r_int_sum_minmin; + +static void aSumMinmin_ct(FTR_ACTOR* ftr_actor, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + cKF_SkeletonInfo_R_ct(keyframe, &cKF_bs_r_int_sum_minmin, &cKF_ba_r_int_sum_minmin, ftr_actor->joint, ftr_actor->morph); + cKF_SkeletonInfo_R_init_standard_stop(keyframe, &cKF_ba_r_int_sum_minmin, NULL); + cKF_SkeletonInfo_R_play(keyframe); + keyframe->frame_control.speed = 0.0f; +} + +static void aSumMinmin_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + cKF_SkeletonInfo_R_c* keyframe; + int valid; + + if (aFTR_CAN_PLAY_SE(ftr_actor)) { + keyframe = &ftr_actor->keyframe; + valid = sAdo_RoomIncectPos((u32)ftr_actor, 64, &ftr_actor->position); + + if (valid != 0) { + cKF_SkeletonInfo_R_init_standard_stop(keyframe, &cKF_ba_r_int_sum_minmin, NULL); + keyframe->frame_control.speed = 0.5f; + } + cKF_SkeletonInfo_R_play(keyframe); + } + +} + +static void aSumMinmin_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + Mtx* mtx = ftr_actor->skeleton_mtx[game->frame_counter & 1]; + + cKF_Si3_draw_R_SV(game, keyframe, mtx, NULL, NULL, ftr_actor); +} + static aFTR_vtable_c aSumMinmin_func = { &aSumMinmin_ct, &aSumMinmin_mv, diff --git a/src/ftr/ac_sum_pet01.c b/src/ftr/ac_sum_pet01.c index 2a441d78..b68c3074 100644 --- a/src/ftr/ac_sum_pet01.c +++ b/src/ftr/ac_sum_pet01.c @@ -2,6 +2,42 @@ static void aSumPet01_ct(FTR_ACTOR* ftr_actor, u8* data); static void aSumPet01_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumPet01_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); +extern cKF_Animation_R_c cKF_ba_r_int_sum_pet01; +extern cKF_Skeleton_R_c cKF_bs_r_int_sum_pet01; + +static void aSumPet01_ct(FTR_ACTOR* ftr_actor, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + cKF_SkeletonInfo_R_ct(keyframe, &cKF_bs_r_int_sum_pet01, &cKF_ba_r_int_sum_pet01, ftr_actor->joint, ftr_actor->morph); + cKF_SkeletonInfo_R_init_standard_stop(keyframe, &cKF_ba_r_int_sum_pet01, NULL); + cKF_SkeletonInfo_R_play(keyframe); + keyframe->frame_control.speed = 0.0f; +} + +static void aSumPet01_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + cKF_SkeletonInfo_R_c* keyframe; + int valid; + + if (aFTR_CAN_PLAY_SE(ftr_actor)) { + keyframe = &ftr_actor->keyframe; + valid = sAdo_RoomIncectPos((u32)ftr_actor, 62, &ftr_actor->position); + + if (valid != 0) { + cKF_SkeletonInfo_R_init_standard_stop(keyframe, &cKF_ba_r_int_sum_pet01, NULL); + keyframe->frame_control.speed = 0.5f; + } + cKF_SkeletonInfo_R_play(keyframe); + } + +} + +static void aSumPet01_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + Mtx* mtx = ftr_actor->skeleton_mtx[game->frame_counter & 1]; + + cKF_Si3_draw_R_SV(game, keyframe, mtx, NULL, NULL, ftr_actor); +} + static aFTR_vtable_c aSumPet01_func = { &aSumPet01_ct, &aSumPet01_mv, diff --git a/src/ftr/ac_sum_piano01.c b/src/ftr/ac_sum_piano01.c index 2c59f090..671e6857 100644 --- a/src/ftr/ac_sum_piano01.c +++ b/src/ftr/ac_sum_piano01.c @@ -5,6 +5,21 @@ static void aSumPiano01_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* gam static void aSumPiano01_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumPiano01_dt(FTR_ACTOR* ftr_actor, u8* data); +static void aSumPiano01_ct(FTR_ACTOR* ftr_actor, u8* data) { +} + +static void aSumPiano01_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + if (Common_Get(clip).my_room_clip != NULL) { + Common_Get(clip).my_room_clip->sound_melody_proc(ftr_actor, my_room_actor, 8); + } +} + +static void aSumPiano01_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { +} + +static void aSumPiano01_dt(FTR_ACTOR* ftr_actor, u8* data) { +} + static aFTR_vtable_c aSumPiano01_func = { &aSumPiano01_ct, &aSumPiano01_mv, diff --git a/src/ftr/ac_sum_radio01.c b/src/ftr/ac_sum_radio01.c index 1b3dd332..85240486 100644 --- a/src/ftr/ac_sum_radio01.c +++ b/src/ftr/ac_sum_radio01.c @@ -5,6 +5,21 @@ static void aSumRadio01_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* gam static void aSumRadio01_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumRadio01_dt(FTR_ACTOR* ftr_actor, u8* data); +static void aSumRadio01_ct(FTR_ACTOR* ftr_actor, u8* data) { +} + +static void aSumRadio01_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + if (Common_Get(clip).my_room_clip != NULL) { + (*Common_Get(clip).my_room_clip->mini_disk_common_move_proc)(ftr_actor, my_room_actor, game, 0.0f, 0.0f); + } +} + +static void aSumRadio01_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { +} + +static void aSumRadio01_dt(FTR_ACTOR* ftr_actor, u8* data) { +} + static aFTR_vtable_c aSumRadio01_func = { &aSumRadio01_ct, &aSumRadio01_mv, diff --git a/src/ftr/ac_sum_radio02.c b/src/ftr/ac_sum_radio02.c index a22409c6..1e12ce5b 100644 --- a/src/ftr/ac_sum_radio02.c +++ b/src/ftr/ac_sum_radio02.c @@ -5,6 +5,21 @@ static void aSumRadio02_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* gam static void aSumRadio02_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumRadio02_dt(FTR_ACTOR* ftr_actor, u8* data); +static void aSumRadio02_ct(FTR_ACTOR* ftr_actor, u8* data) { +} + +static void aSumRadio02_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + if (Common_Get(clip).my_room_clip != NULL) { + (*Common_Get(clip).my_room_clip->mini_disk_common_move_proc)(ftr_actor, my_room_actor, game, 0.0f, 0.0f); + } +} + +static void aSumRadio02_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { +} + +static void aSumRadio02_dt(FTR_ACTOR* ftr_actor, u8* data) { +} + static aFTR_vtable_c aSumRadio02_func = { &aSumRadio02_ct, &aSumRadio02_mv, diff --git a/src/ftr/ac_sum_ratan_chest01.c b/src/ftr/ac_sum_ratan_chest01.c index 36ab77a9..04b59df3 100644 --- a/src/ftr/ac_sum_ratan_chest01.c +++ b/src/ftr/ac_sum_ratan_chest01.c @@ -3,6 +3,41 @@ static void aSumRatanChest01_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME static void aSumRatanChest01_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumRatanChest01_dt(FTR_ACTOR* ftr_actor, u8* data); +extern cKF_Skeleton_R_c cKF_bs_r_int_sum_ratan_chest01; +extern cKF_Animation_R_c cKF_ba_r_int_sum_ratan_chest01; + +static void aSumRatanChest01_ct(FTR_ACTOR* ftr_actor, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + cKF_SkeletonInfo_R_ct(keyframe, &cKF_bs_r_int_sum_ratan_chest01, &cKF_ba_r_int_sum_ratan_chest01, ftr_actor->joint, ftr_actor->morph); + cKF_SkeletonInfo_R_init_standard_stop(keyframe, &cKF_ba_r_int_sum_ratan_chest01, NULL); + keyframe->frame_control.speed = 0.0f; + cKF_SkeletonInfo_R_play(keyframe); +} + +static void aSumRatanChest01_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + if (Common_Get(clip).my_room_clip != NULL) { + (*Common_Get(clip).my_room_clip->open_close_common_move_proc)(ftr_actor, my_room_actor, game, 1.0f, 10.0f); + } +} + +static void aSumRatanChest01_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + GAME_PLAY* play = (GAME_PLAY*)game; + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + Mtx* mtx = ftr_actor->skeleton_mtx[game->frame_counter & 1]; + + OPEN_DISP(game->graph); + gSPMatrix(NEXT_POLY_OPA_DISP, _Matrix_to_Mtx_new(game->graph), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + CLOSE_DISP(game->graph); + + cKF_Si3_draw_R_SV(game, keyframe, mtx, NULL, NULL, NULL); +} + +static void aSumRatanChest01_dt(FTR_ACTOR* ftr_actor, u8* data) { +} + static aFTR_vtable_c aSumRatanChest01_func = { &aSumRatanChest01_ct, &aSumRatanChest01_mv, diff --git a/src/ftr/ac_sum_ratan_chest02.c b/src/ftr/ac_sum_ratan_chest02.c index 65e9eea1..02453f38 100644 --- a/src/ftr/ac_sum_ratan_chest02.c +++ b/src/ftr/ac_sum_ratan_chest02.c @@ -3,6 +3,41 @@ static void aSumRatanChest02_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME static void aSumRatanChest02_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumRatanChest02_dt(FTR_ACTOR* ftr_actor, u8* data); +extern cKF_Skeleton_R_c cKF_bs_r_int_sum_ratan_chest02; +extern cKF_Animation_R_c cKF_ba_r_int_sum_ratan_chest02; + +static void aSumRatanChest02_ct(FTR_ACTOR* ftr_actor, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + cKF_SkeletonInfo_R_ct(keyframe, &cKF_bs_r_int_sum_ratan_chest02, &cKF_ba_r_int_sum_ratan_chest02, ftr_actor->joint, ftr_actor->morph); + cKF_SkeletonInfo_R_init_standard_stop(keyframe, &cKF_ba_r_int_sum_ratan_chest02, NULL); + keyframe->frame_control.speed = 0.0f; + cKF_SkeletonInfo_R_play(keyframe); +} + +static void aSumRatanChest02_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + if (Common_Get(clip).my_room_clip != NULL) { + (*Common_Get(clip).my_room_clip->open_close_common_move_proc)(ftr_actor, my_room_actor, game, 1.0f, 12.0f); + } +} + +static void aSumRatanChest02_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + GAME_PLAY* play = (GAME_PLAY*)game; + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + Mtx* mtx = ftr_actor->skeleton_mtx[game->frame_counter & 1]; + + OPEN_DISP(game->graph); + gSPMatrix(NEXT_POLY_OPA_DISP, _Matrix_to_Mtx_new(game->graph), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + CLOSE_DISP(game->graph); + + cKF_Si3_draw_R_SV(game, keyframe, mtx, NULL, NULL, NULL); +} + +static void aSumRatanChest02_dt(FTR_ACTOR* ftr_actor, u8* data) { +} + static aFTR_vtable_c aSumRatanChest02_func = { &aSumRatanChest02_ct, &aSumRatanChest02_mv, diff --git a/src/ftr/ac_sum_reco01.c b/src/ftr/ac_sum_reco01.c index f1134d77..304cddaf 100644 --- a/src/ftr/ac_sum_reco01.c +++ b/src/ftr/ac_sum_reco01.c @@ -3,6 +3,45 @@ static void aSumReco_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, static void aSumReco_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumReco_dt(FTR_ACTOR* ftr_actor, u8* data); +extern cKF_Skeleton_R_c cKF_bs_r_int_sum_reco01; +extern cKF_Animation_R_c cKF_ba_r_int_sum_reco01; + +static void aSumReco_ct(FTR_ACTOR* ftr_actor, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + cKF_SkeletonInfo_R_ct(keyframe, &cKF_bs_r_int_sum_reco01, &cKF_ba_r_int_sum_reco01, ftr_actor->joint, ftr_actor->morph); + cKF_SkeletonInfo_R_init_standard_repeat(keyframe, &cKF_ba_r_int_sum_reco01, NULL); + cKF_SkeletonInfo_R_play(keyframe); + keyframe->frame_control.speed = 0.5f; +} + +static void aSumReco_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + if (Common_Get(clip).my_room_clip != NULL) { + (*Common_Get(clip).my_room_clip->mini_disk_common_move_proc)(ftr_actor, my_room_actor, game, 0.0f, 0.0f); + } + if (ftr_actor->switch_bit != FALSE) { + cKF_SkeletonInfo_R_play(keyframe); + keyframe->frame_control.speed = 0.5f; + } +} + +static void aSumReco_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + GAME_PLAY* play = (GAME_PLAY*)game; + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + Mtx* mtx = ftr_actor->skeleton_mtx[game->frame_counter & 1]; + + OPEN_DISP(game->graph); + gSPMatrix(NEXT_POLY_OPA_DISP, _Matrix_to_Mtx_new(game->graph), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + CLOSE_DISP(game->graph); + + cKF_Si3_draw_R_SV(game, keyframe, mtx, NULL, NULL, NULL); +} + +static void aSumReco_dt(FTR_ACTOR* ftr_actor, u8* data) { +} + static aFTR_vtable_c aSumReco_func = { &aSumReco_ct, &aSumReco_mv, diff --git a/src/ftr/ac_sum_roboconpo.c b/src/ftr/ac_sum_roboconpo.c index 38a2c582..d7f3eb2e 100644 --- a/src/ftr/ac_sum_roboconpo.c +++ b/src/ftr/ac_sum_roboconpo.c @@ -3,6 +3,62 @@ static void aSumRoboconpo_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* g static void aSumRoboconpo_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumRoboconpo_dt(FTR_ACTOR* ftr_actor, u8* data); +extern cKF_Skeleton_R_c cKF_bs_r_int_sum_roboconpo; +extern cKF_Animation_R_c cKF_ba_r_int_sum_roboconpo; + +extern u8 int_sum_roboconpo_face1_TA_tex_txt[]; +extern u8 int_sum_roboconpo_face2_TA_tex_txt[]; + +static void aSumRoboconpo_ct(FTR_ACTOR* ftr_actor, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + cKF_SkeletonInfo_R_ct(keyframe, &cKF_bs_r_int_sum_roboconpo, &cKF_ba_r_int_sum_roboconpo, ftr_actor->joint, ftr_actor->morph); + cKF_SkeletonInfo_R_init_standard_repeat(keyframe, &cKF_ba_r_int_sum_roboconpo, NULL); + cKF_SkeletonInfo_R_play(keyframe); + keyframe->frame_control.speed = 0.5f; +} + +static void aSumRoboconpo_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + if (Common_Get(clip).my_room_clip != NULL) { + (*Common_Get(clip).my_room_clip->mini_disk_common_move_proc)(ftr_actor, my_room_actor, game, 0.0f, 0.0f); + } + + cKF_SkeletonInfo_R_play(keyframe); + keyframe->frame_control.speed = 0.5f; +} + +static void aSumRoboconpo_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + GAME_PLAY* play = (GAME_PLAY*)game; + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + Mtx* mtx = ftr_actor->skeleton_mtx[game->frame_counter & 1]; + + static u8* anime_table[] = { + int_sum_roboconpo_face1_TA_tex_txt, + int_sum_roboconpo_face1_TA_tex_txt, + int_sum_roboconpo_face2_TA_tex_txt, + int_sum_roboconpo_face2_TA_tex_txt + }; + + OPEN_DISP(game->graph); + gSPMatrix(NEXT_POLY_OPA_DISP, _Matrix_to_Mtx_new(game->graph), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + + if (ftr_actor->switch_bit != FALSE) { + u32 idx = game->frame_counter % ARRAY_COUNT(anime_table); + gSPSegment(NEXT_POLY_OPA_DISP, G_MWO_SEGMENT_8, anime_table[idx]); + } + else { + gSPSegment(NEXT_POLY_OPA_DISP, G_MWO_SEGMENT_8, int_sum_roboconpo_face1_TA_tex_txt); + } + + CLOSE_DISP(game->graph); + cKF_Si3_draw_R_SV(game, keyframe, mtx, NULL, NULL, NULL); +} + +static void aSumRoboconpo_dt(FTR_ACTOR* ftr_actor, u8* data) { +} + static aFTR_vtable_c aSumRoboconpo_func = { &aSumRoboconpo_ct, &aSumRoboconpo_mv, diff --git a/src/ftr/ac_sum_saiconpo.c b/src/ftr/ac_sum_saiconpo.c index b78a963c..726ed032 100644 --- a/src/ftr/ac_sum_saiconpo.c +++ b/src/ftr/ac_sum_saiconpo.c @@ -4,6 +4,21 @@ static void aSumSaiconpo_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* ga static void aSumSaiconpo_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumSaiconpo_dt(FTR_ACTOR* ftr_actor, u8* data); +static void aSumSaiconpo_ct(FTR_ACTOR* ftr_actor, u8* data) { +} + +static void aSumSaiconpo_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + if (Common_Get(clip).my_room_clip != NULL) { + (*Common_Get(clip).my_room_clip->mini_disk_common_move_proc)(ftr_actor, my_room_actor, game, 0.0f, 0.0f); + } +} + +static void aSumSaiconpo_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { +} + +static void aSumSaiconpo_dt(FTR_ACTOR* ftr_actor, u8* data) { +} + static aFTR_vtable_c aSumSaiconpo_func = { &aSumSaiconpo_ct, &aSumSaiconpo_mv, diff --git a/src/ftr/ac_sum_stereo01.c b/src/ftr/ac_sum_stereo01.c index bd16e750..7a283a1c 100644 --- a/src/ftr/ac_sum_stereo01.c +++ b/src/ftr/ac_sum_stereo01.c @@ -5,6 +5,21 @@ static void aSumStereo01_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* ga static void aSumStereo01_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumStereo01_dt(FTR_ACTOR* ftr_actor, u8* data); +static void aSumStereo01_ct(FTR_ACTOR* ftr_actor, u8* data) { +} + +static void aSumStereo01_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + if (Common_Get(clip).my_room_clip != NULL) { + (*Common_Get(clip).my_room_clip->mini_disk_common_move_proc)(ftr_actor, my_room_actor, game, 0.0f, 0.0f); + } +} + +static void aSumStereo01_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { +} + +static void aSumStereo01_dt(FTR_ACTOR* ftr_actor, u8* data) { +} + static aFTR_vtable_c aSumStereo01_func = { &aSumStereo01_ct, &aSumStereo01_mv, diff --git a/src/ftr/ac_sum_stereo02.c b/src/ftr/ac_sum_stereo02.c index 290f6437..211a000c 100644 --- a/src/ftr/ac_sum_stereo02.c +++ b/src/ftr/ac_sum_stereo02.c @@ -4,6 +4,21 @@ static void aSumStereo02_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* ga static void aSumStereo02_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumStereo02_dt(FTR_ACTOR* ftr_actor, u8* data); +static void aSumStereo02_ct(FTR_ACTOR* ftr_actor, u8* data) { +} + +static void aSumStereo02_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + if (Common_Get(clip).my_room_clip != NULL) { + (*Common_Get(clip).my_room_clip->mini_disk_common_move_proc)(ftr_actor, my_room_actor, game, 0.0f, 0.0f); + } +} + +static void aSumStereo02_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { +} + +static void aSumStereo02_dt(FTR_ACTOR* ftr_actor, u8* data) { +} + static aFTR_vtable_c aSumStereo02_func = { &aSumStereo02_ct, &aSumStereo02_mv, diff --git a/src/ftr/ac_sum_suzumushi.c b/src/ftr/ac_sum_suzumushi.c index 068f013b..eceaa992 100644 --- a/src/ftr/ac_sum_suzumushi.c +++ b/src/ftr/ac_sum_suzumushi.c @@ -2,6 +2,42 @@ static void aSumSuzumushi_ct(FTR_ACTOR* ftr_actor, u8* data); static void aSumSuzumushi_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumSuzumushi_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); +extern cKF_Animation_R_c cKF_ba_r_int_sum_suzumushi; +extern cKF_Skeleton_R_c cKF_bs_r_int_sum_suzumushi; + +static void aSumSuzumushi_ct(FTR_ACTOR* ftr_actor, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + cKF_SkeletonInfo_R_ct(keyframe, &cKF_bs_r_int_sum_suzumushi, &cKF_ba_r_int_sum_suzumushi, ftr_actor->joint, ftr_actor->morph); + cKF_SkeletonInfo_R_init_standard_stop(keyframe, &cKF_ba_r_int_sum_suzumushi, NULL); + cKF_SkeletonInfo_R_play(keyframe); + keyframe->frame_control.speed = 0.0f; +} + +static void aSumSuzumushi_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + cKF_SkeletonInfo_R_c* keyframe; + int valid; + + if (aFTR_CAN_PLAY_SE(ftr_actor)) { + keyframe = &ftr_actor->keyframe; + valid = sAdo_RoomIncectPos((u32)ftr_actor, 57, &ftr_actor->position); + + if (valid != 0) { + cKF_SkeletonInfo_R_init_standard_stop(keyframe, &cKF_ba_r_int_sum_suzumushi, NULL); + keyframe->frame_control.speed = 0.5f; + } + cKF_SkeletonInfo_R_play(keyframe); + } + +} + +static void aSumSuzumushi_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + Mtx* mtx = ftr_actor->skeleton_mtx[game->frame_counter & 1]; + + cKF_Si3_draw_R_SV(game, keyframe, mtx, NULL, NULL, ftr_actor); +} + static aFTR_vtable_c aSumSuzumushi_func = { &aSumSuzumushi_ct, &aSumSuzumushi_mv, diff --git a/src/ftr/ac_sum_syouryou.c b/src/ftr/ac_sum_syouryou.c index 32ecc07f..53ac3ae4 100644 --- a/src/ftr/ac_sum_syouryou.c +++ b/src/ftr/ac_sum_syouryou.c @@ -2,6 +2,42 @@ static void aSumSyouryou_ct(FTR_ACTOR* ftr_actor, u8* data); static void aSumSyouryou_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumSyouryou_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); +extern cKF_Animation_R_c cKF_ba_r_int_sum_syouryou; +extern cKF_Skeleton_R_c cKF_bs_r_int_sum_syouryou; + +static void aSumSyouryou_ct(FTR_ACTOR* ftr_actor, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + cKF_SkeletonInfo_R_ct(keyframe, &cKF_bs_r_int_sum_syouryou, &cKF_ba_r_int_sum_syouryou, ftr_actor->joint, ftr_actor->morph); + cKF_SkeletonInfo_R_init_standard_stop(keyframe, &cKF_ba_r_int_sum_syouryou, NULL); + cKF_SkeletonInfo_R_play(keyframe); + keyframe->frame_control.speed = 0.0f; +} + +static void aSumSyouryou_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + cKF_SkeletonInfo_R_c* keyframe; + int valid; + + if (aFTR_CAN_PLAY_SE(ftr_actor)) { + keyframe = &ftr_actor->keyframe; + valid = sAdo_RoomIncectPos((u32)ftr_actor, 58, &ftr_actor->position); + + if (valid != 0) { + cKF_SkeletonInfo_R_init_standard_stop(keyframe, &cKF_ba_r_int_sum_syouryou, NULL); + keyframe->frame_control.speed = 0.5f; + } + cKF_SkeletonInfo_R_play(keyframe); + } + +} + +static void aSumSyouryou_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + Mtx* mtx = ftr_actor->skeleton_mtx[game->frame_counter & 1]; + + cKF_Si3_draw_R_SV(game, keyframe, mtx, NULL, NULL, ftr_actor); +} + static aFTR_vtable_c aSumSyouryou_func = { &aSumSyouryou_ct, &aSumSyouryou_mv, diff --git a/src/ftr/ac_sum_taiko01.c b/src/ftr/ac_sum_taiko01.c index 8922c0c9..2af9c994 100644 --- a/src/ftr/ac_sum_taiko01.c +++ b/src/ftr/ac_sum_taiko01.c @@ -4,6 +4,21 @@ static void asumtaiko01_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* gam static void asumtaiko01_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void asumtaiko01_dt(FTR_ACTOR* ftr_actor, u8* data); +static void asumtaiko01_ct(FTR_ACTOR* ftr_actor, u8* data) { +} + +static void asumtaiko01_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + if (Common_Get(clip).my_room_clip != NULL) { + Common_Get(clip).my_room_clip->sound_melody_proc(ftr_actor, my_room_actor, 13); + } +} + +static void asumtaiko01_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { +} + +static void asumtaiko01_dt(FTR_ACTOR* ftr_actor, u8* data) { +} + static aFTR_vtable_c asumtaiko01_func = { &asumtaiko01_ct, &asumtaiko01_mv, diff --git a/src/ftr/ac_sum_tekin01.c b/src/ftr/ac_sum_tekin01.c index 62204f3e..aeb68ffe 100644 --- a/src/ftr/ac_sum_tekin01.c +++ b/src/ftr/ac_sum_tekin01.c @@ -4,6 +4,21 @@ static void aSumTekin01_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* gam static void aSumTekin01_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumTekin01_dt(FTR_ACTOR* ftr_actor, u8* data); +static void aSumTekin01_ct(FTR_ACTOR* ftr_actor, u8* data) { +} + +static void aSumTekin01_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + if (Common_Get(clip).my_room_clip != NULL) { + Common_Get(clip).my_room_clip->sound_melody_proc(ftr_actor, my_room_actor, 5); + } +} + +static void aSumTekin01_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { +} + +static void aSumTekin01_dt(FTR_ACTOR* ftr_actor, u8* data) { +} + static aFTR_vtable_c aSumTekin01_func = { &aSumTekin01_ct, &aSumTekin01_mv, diff --git a/src/ftr/ac_sum_timpani01.c b/src/ftr/ac_sum_timpani01.c index beaf4f70..87ce6b03 100644 --- a/src/ftr/ac_sum_timpani01.c +++ b/src/ftr/ac_sum_timpani01.c @@ -4,6 +4,21 @@ static void aSumTimpani01_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* g static void aSumTimpani01_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumTimpani01_dt(FTR_ACTOR* ftr_actor, u8* data); +static void aSumTimpani01_ct(FTR_ACTOR* ftr_actor, u8* data){ +} + +static void aSumTimpani01_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + if (Common_Get(clip).my_room_clip != NULL) { + Common_Get(clip).my_room_clip->sound_melody_proc(ftr_actor, my_room_actor, 7); + } +} + +static void aSumTimpani01_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { +} + +static void aSumTimpani01_dt(FTR_ACTOR* ftr_actor, u8* data) { +} + static aFTR_vtable_c aSumTimpani01_func = { &aSumTimpani01_ct, &aSumTimpani01_mv, diff --git a/src/ftr/ac_sum_tonosama.c b/src/ftr/ac_sum_tonosama.c index 6a3641c0..fe202a62 100644 --- a/src/ftr/ac_sum_tonosama.c +++ b/src/ftr/ac_sum_tonosama.c @@ -2,6 +2,42 @@ static void aSumTonosama_ct(FTR_ACTOR* ftr_actor, u8* data); static void aSumTonosama_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumTonosama_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); +extern cKF_Animation_R_c cKF_ba_r_int_sum_tonosama; +extern cKF_Skeleton_R_c cKF_bs_r_int_sum_tonosama; + +static void aSumTonosama_ct(FTR_ACTOR* ftr_actor, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + cKF_SkeletonInfo_R_ct(keyframe, &cKF_bs_r_int_sum_tonosama, &cKF_ba_r_int_sum_tonosama, ftr_actor->joint, ftr_actor->morph); + cKF_SkeletonInfo_R_init_standard_stop(keyframe, &cKF_ba_r_int_sum_tonosama, NULL); + cKF_SkeletonInfo_R_play(keyframe); + keyframe->frame_control.speed = 0.0f; +} + +static void aSumTonosama_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + cKF_SkeletonInfo_R_c* keyframe; + int valid; + + if (aFTR_CAN_PLAY_SE(ftr_actor)) { + keyframe = &ftr_actor->keyframe; + valid = sAdo_RoomIncectPos((u32)ftr_actor, 59, &ftr_actor->position); + + if (valid != 0) { + cKF_SkeletonInfo_R_init_standard_stop(keyframe, &cKF_ba_r_int_sum_tonosama, NULL); + keyframe->frame_control.speed = 0.5f; + } + cKF_SkeletonInfo_R_play(keyframe); + } + +} + +static void aSumTonosama_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + Mtx* mtx = ftr_actor->skeleton_mtx[game->frame_counter & 1]; + + cKF_Si3_draw_R_SV(game, keyframe, mtx, NULL, NULL, ftr_actor); +} + static aFTR_vtable_c aSumTonosama_func = { &aSumTonosama_ct, &aSumTonosama_mv, diff --git a/src/ftr/ac_sum_tukutuku.c b/src/ftr/ac_sum_tukutuku.c index e2808297..20922c7d 100644 --- a/src/ftr/ac_sum_tukutuku.c +++ b/src/ftr/ac_sum_tukutuku.c @@ -2,6 +2,42 @@ static void aSumTukutuku_ct(FTR_ACTOR* ftr_actor, u8* data); static void aSumTukutuku_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumTukutuku_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); +extern cKF_Animation_R_c cKF_ba_r_int_sum_tukutuku; +extern cKF_Skeleton_R_c cKF_bs_r_int_sum_tukutuku; + +static void aSumTukutuku_ct(FTR_ACTOR* ftr_actor, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + cKF_SkeletonInfo_R_ct(keyframe, &cKF_bs_r_int_sum_tukutuku, &cKF_ba_r_int_sum_tukutuku, ftr_actor->joint, ftr_actor->morph); + cKF_SkeletonInfo_R_init_standard_stop(keyframe, &cKF_ba_r_int_sum_tukutuku, NULL); + cKF_SkeletonInfo_R_play(keyframe); + keyframe->frame_control.speed = 0.0f; +} + +static void aSumTukutuku_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + cKF_SkeletonInfo_R_c* keyframe; + int valid; + + if (aFTR_CAN_PLAY_SE(ftr_actor)) { + keyframe = &ftr_actor->keyframe; + valid = sAdo_RoomIncectPos((u32)ftr_actor, 63, &ftr_actor->position); + + if (valid != 0) { + cKF_SkeletonInfo_R_init_standard_stop(keyframe, &cKF_ba_r_int_sum_tukutuku, NULL); + keyframe->frame_control.speed = 0.5f; + } + cKF_SkeletonInfo_R_play(keyframe); + } + +} + +static void aSumTukutuku_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + Mtx* mtx = ftr_actor->skeleton_mtx[game->frame_counter & 1]; + + cKF_Si3_draw_R_SV(game, keyframe, mtx, NULL, NULL, ftr_actor); +} + static aFTR_vtable_c aSumTukutuku_func = { &aSumTukutuku_ct, &aSumTukutuku_mv, diff --git a/src/ftr/ac_sum_viola01.c b/src/ftr/ac_sum_viola01.c index e03e7cd7..da36da30 100644 --- a/src/ftr/ac_sum_viola01.c +++ b/src/ftr/ac_sum_viola01.c @@ -5,6 +5,21 @@ static void aSumViola01_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* gam static void aSumViola01_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumViola01_dt(FTR_ACTOR* ftr_actor, u8* data); +static void aSumViola01_ct(FTR_ACTOR* ftr_actor, u8* data) { +} + +static void aSumViola01_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + if (Common_Get(clip).my_room_clip != NULL) { + Common_Get(clip).my_room_clip->sound_melody_proc(ftr_actor, my_room_actor, 11); + } +} + +void aSumViola01_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { +} + +static void aSumViola01_dt(FTR_ACTOR* ftr_actor, u8* data) { +} + static aFTR_vtable_c aSumViola01_func = { &aSumViola01_ct, &aSumViola01_mv, diff --git a/src/ftr/ac_sum_whi_chest01.c b/src/ftr/ac_sum_whi_chest01.c index 88cd5348..c797c3b8 100644 --- a/src/ftr/ac_sum_whi_chest01.c +++ b/src/ftr/ac_sum_whi_chest01.c @@ -3,6 +3,41 @@ static void aSumWhiChest01_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* static void aSumWhiChest01_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumWhiChest01_dt(FTR_ACTOR* ftr_actor, u8* data); +extern cKF_Skeleton_R_c cKF_bs_r_int_sum_whi_chest01; +extern cKF_Animation_R_c cKF_ba_r_int_sum_whi_chest01; + +static void aSumWhiChest01_ct(FTR_ACTOR* ftr_actor, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + cKF_SkeletonInfo_R_ct(keyframe, &cKF_bs_r_int_sum_whi_chest01, &cKF_ba_r_int_sum_whi_chest01, ftr_actor->joint, ftr_actor->morph); + cKF_SkeletonInfo_R_init_standard_stop(keyframe, &cKF_ba_r_int_sum_whi_chest01, NULL); + keyframe->frame_control.speed = 0.0f; + cKF_SkeletonInfo_R_play(keyframe); +} + +static void aSumWhiChest01_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + if (Common_Get(clip).my_room_clip != NULL) { + (*Common_Get(clip).my_room_clip->open_close_common_move_proc)(ftr_actor, my_room_actor, game, 1.0f, 10.0f); + } +} + +static void aSumWhiChest01_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + GAME_PLAY* play = (GAME_PLAY*)game; + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + Mtx* mtx = ftr_actor->skeleton_mtx[game->frame_counter & 1]; + + OPEN_DISP(game->graph); + gSPMatrix(NEXT_POLY_OPA_DISP, _Matrix_to_Mtx_new(game->graph), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + CLOSE_DISP(game->graph); + + cKF_Si3_draw_R_SV(game, keyframe, mtx, NULL, NULL, NULL); +} + +static void aSumWhiChest01_dt(FTR_ACTOR* ftr_actor, u8* data) { +} + static aFTR_vtable_c aSumWhiChest01_func = { &aSumWhiChest01_ct, &aSumWhiChest01_mv, diff --git a/src/ftr/ac_sum_whi_chest02.c b/src/ftr/ac_sum_whi_chest02.c index fe7ec5c5..550205d4 100644 --- a/src/ftr/ac_sum_whi_chest02.c +++ b/src/ftr/ac_sum_whi_chest02.c @@ -3,6 +3,41 @@ static void aSumWhiChest02_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* static void aSumWhiChest02_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumWhiChest02_dt(FTR_ACTOR* ftr_actor, u8* data); +extern cKF_Skeleton_R_c cKF_bs_r_int_sum_whi_chest02; +extern cKF_Animation_R_c cKF_ba_r_int_sum_whi_chest02; + +static void aSumWhiChest02_ct(FTR_ACTOR* ftr_actor, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + cKF_SkeletonInfo_R_ct(keyframe, &cKF_bs_r_int_sum_whi_chest02, &cKF_ba_r_int_sum_whi_chest02, ftr_actor->joint, ftr_actor->morph); + cKF_SkeletonInfo_R_init_standard_stop(keyframe, &cKF_ba_r_int_sum_whi_chest02, NULL); + keyframe->frame_control.speed = 0.0f; + cKF_SkeletonInfo_R_play(keyframe); +} + +static void aSumWhiChest02_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + if (Common_Get(clip).my_room_clip != NULL) { + (*Common_Get(clip).my_room_clip->open_close_common_move_proc)(ftr_actor, my_room_actor, game, 1.0f, 12.0f); + } +} + +static void aSumWhiChest02_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + GAME_PLAY* play = (GAME_PLAY*)game; + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + Mtx* mtx = ftr_actor->skeleton_mtx[game->frame_counter & 1]; + + OPEN_DISP(game->graph); + gSPMatrix(NEXT_POLY_OPA_DISP, _Matrix_to_Mtx_new(game->graph), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + CLOSE_DISP(game->graph); + + cKF_Si3_draw_R_SV(game, keyframe, mtx, NULL, NULL, NULL); +} + +static void aSumWhiChest02_dt(FTR_ACTOR* ftr_actor, u8* data) { +} + static aFTR_vtable_c aSumWhiChest02_func = { &aSumWhiChest02_ct, &aSumWhiChest02_mv, diff --git a/src/ftr/ac_sum_whi_lanp.c b/src/ftr/ac_sum_whi_lanp.c index 49415231..b93fff9e 100644 --- a/src/ftr/ac_sum_whi_lanp.c +++ b/src/ftr/ac_sum_whi_lanp.c @@ -2,6 +2,18 @@ extern Gfx int_sum_whi_lanp_on_model[]; extern Gfx int_sum_whi_lanp_onT_model[]; static void aSumWhiLanp_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); +extern Gfx int_sum_whi_lanp_offT_model[]; + +static void aSumWhiLanp_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + OPEN_DISP(game->graph); + + _texture_z_light_fog_prim(game->graph); + gSPMatrix(NEXT_POLY_OPA_DISP, _Matrix_to_Mtx_new(game->graph), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(NEXT_POLY_OPA_DISP, int_sum_whi_lanp_offT_model); + + CLOSE_DISP(game->graph); +} + static aFTR_vtable_c aSumWhiLanp_func = { NULL, NULL, diff --git a/src/ftr/ac_sum_x_chest01.c b/src/ftr/ac_sum_x_chest01.c index 59fa0952..216fca68 100644 --- a/src/ftr/ac_sum_x_chest01.c +++ b/src/ftr/ac_sum_x_chest01.c @@ -3,6 +3,41 @@ static void aSumXChest01_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* ga static void aSumXChest01_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumXChest01_dt(FTR_ACTOR* ftr_actor, u8* data); +extern cKF_Skeleton_R_c cKF_bs_r_int_sum_x_chest01; +extern cKF_Animation_R_c cKF_ba_r_int_sum_x_chest01; + +static void aSumXChest01_ct(FTR_ACTOR* ftr_actor, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + cKF_SkeletonInfo_R_ct(keyframe, &cKF_bs_r_int_sum_x_chest01, &cKF_ba_r_int_sum_x_chest01, ftr_actor->joint, ftr_actor->morph); + cKF_SkeletonInfo_R_init_standard_stop(keyframe, &cKF_ba_r_int_sum_x_chest01, NULL); + keyframe->frame_control.speed = 0.0f; + cKF_SkeletonInfo_R_play(keyframe); +} + +static void aSumXChest01_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + if (Common_Get(clip).my_room_clip != NULL) { + (*Common_Get(clip).my_room_clip->open_close_common_move_proc)(ftr_actor, my_room_actor, game, 1.0f, 12.0f); + } +} + +static void aSumXChest01_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + GAME_PLAY* play = (GAME_PLAY*)game; + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + Mtx* mtx = ftr_actor->skeleton_mtx[game->frame_counter & 1]; + + OPEN_DISP(game->graph); + gSPMatrix(NEXT_POLY_OPA_DISP, _Matrix_to_Mtx_new(game->graph), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + CLOSE_DISP(game->graph); + + cKF_Si3_draw_R_SV(game, keyframe, mtx, NULL, NULL, NULL); +} + +static void aSumXChest01_dt(FTR_ACTOR* ftr_actor, u8* data) { +} + static aFTR_vtable_c aSumXChest01_func = { &aSumXChest01_ct, &aSumXChest01_mv, diff --git a/src/ftr/ac_sum_x_chest02.c b/src/ftr/ac_sum_x_chest02.c index 041127d6..f9428082 100644 --- a/src/ftr/ac_sum_x_chest02.c +++ b/src/ftr/ac_sum_x_chest02.c @@ -3,6 +3,41 @@ static void aSumXChest02_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* ga static void aSumXChest02_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumXChest02_dt(FTR_ACTOR* ftr_actor, u8* data); +extern cKF_Skeleton_R_c cKF_bs_r_int_sum_x_chest02; +extern cKF_Animation_R_c cKF_ba_r_int_sum_x_chest02; + +static void aSumXChest02_ct(FTR_ACTOR* ftr_actor, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + cKF_SkeletonInfo_R_ct(keyframe, &cKF_bs_r_int_sum_x_chest02, &cKF_ba_r_int_sum_x_chest02, ftr_actor->joint, ftr_actor->morph); + cKF_SkeletonInfo_R_init_standard_stop(keyframe, &cKF_ba_r_int_sum_x_chest02, NULL); + keyframe->frame_control.speed = 0.0f; + cKF_SkeletonInfo_R_play(keyframe); +} + +static void aSumXChest02_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + + if (Common_Get(clip).my_room_clip != NULL) { + (*Common_Get(clip).my_room_clip->open_close_common_move_proc)(ftr_actor, my_room_actor, game, 1.0f, 10.0f); + } +} + +static void aSumXChest02_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + GAME_PLAY* play = (GAME_PLAY*)game; + cKF_SkeletonInfo_R_c* keyframe = &ftr_actor->keyframe; + Mtx* mtx = ftr_actor->skeleton_mtx[game->frame_counter & 1]; + + OPEN_DISP(game->graph); + gSPMatrix(NEXT_POLY_OPA_DISP, _Matrix_to_Mtx_new(game->graph), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + CLOSE_DISP(game->graph); + + cKF_Si3_draw_R_SV(game, keyframe, mtx, NULL, NULL, NULL); +} + +static void aSumXChest02_dt(FTR_ACTOR* ftr_actor, u8* data) { +} + static aFTR_vtable_c aSumXChest02_func = { &aSumXChest02_ct, &aSumXChest02_mv, diff --git a/src/ftr/ac_sum_x_piano.c b/src/ftr/ac_sum_x_piano.c index c0903d03..1e8d7305 100644 --- a/src/ftr/ac_sum_x_piano.c +++ b/src/ftr/ac_sum_x_piano.c @@ -5,6 +5,19 @@ static void aSumX_Piano_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* gam static void aSumX_Piano_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aSumX_Piano_dt(FTR_ACTOR* ftr_actor, u8* data); +void aSumX_Piano_ct(FTR_ACTOR* ftr_actor, u8* data) { +} + +static void aSumX_Piano_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + Common_Get(clip).my_room_clip->sound_melody_proc(ftr_actor, my_room_actor, 8); +} + +void aSumX_Piano_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { +} + +void aSumX_Piano_dt(FTR_ACTOR* ftr_actor, u8* data) { +} + static aFTR_vtable_c aSumX_Piano_func = { &aSumX_Piano_ct, &aSumX_Piano_mv,