furniture work

This commit is contained in:
Prakxo
2024-03-07 23:42:07 +01:00
parent b437f97c30
commit c12b39afa8
22 changed files with 832 additions and 21 deletions
+21 -21
View File
@@ -199,7 +199,7 @@ static Gfx* fFTR_GetTwoTileGfx(int width0, int height0, int scroll_x0, int scrol
#include "../src/ftr/ac_ike_jny_tower01.c"
#include "../src/ftr/ac_ike_jny_truth01.c"
#include "../src/ftr/ac_ike_jpn_tansu01.c"
// #include "../src/ftr/ac_ike_kama_danro01.c"
#include "../src/ftr/ac_ike_kama_danro01.c"
// #include "../src/ftr/ac_ike_k_count01.c"
#include "../src/ftr/ac_ike_k_iveboy01.c"
#include "../src/ftr/ac_ike_k_kid01.c"
@@ -208,7 +208,7 @@ static Gfx* fFTR_GetTwoTileGfx(int width0, int height0, int scroll_x0, int scrol
#include "../src/ftr/ac_ike_k_sum01.c"
#include "../src/ftr/ac_ike_k_otome01.c"
#include "../src/ftr/ac_ike_k_sinnen01.c"
// #include "../src/ftr/ac_ike_k_tanabata01.c"
#include "../src/ftr/ac_ike_k_tanabata01.c"
#include "../src/ftr/ac_ike_k_turis01.c"
#include "../src/ftr/ac_ike_nikki_fan1.c"
#include "../src/ftr/ac_ike_nikki_fan2.c"
@@ -216,53 +216,53 @@ static Gfx* fFTR_GetTwoTileGfx(int width0, int height0, int scroll_x0, int scrol
#include "../src/ftr/ac_ike_nikki_fan4.c"
#include "../src/ftr/ac_ike_nikki_fan5.c"
#include "../src/ftr/ac_ike_nikki_wafu1.c"
// #include "../src/ftr/ac_ike_pst_pig01.c"
#include "../src/ftr/ac_ike_pst_pig01.c"
#include "../src/ftr/ac_ike_pst_tesyu01.c"
// #include "../src/ftr/ac_kob_disksystem8.c"
#include "../src/ftr/ac_kob_disksystem8.c"
#include "../src/ftr/ac_kob_getabako1.c"
#include "../src/ftr/ac_kob_getabako2.c"
#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_locker1.c"
// #include "../src/ftr/ac_kob_mastersword.c"
// #include "../src/ftr/ac_kob_ncube.c"
#include "../src/ftr/ac_kob_ncube.c"
#include "../src/ftr/ac_kob_pipeisu.c"
#include "../src/ftr/ac_kob_rika_desk.c"
#include "../src/ftr/ac_kob_tobibako.c"
// #include "../src/ftr/ac_kon_ameclock.c"
// #include "../src/ftr/ac_kon_atqclock.c"
// #include "../src/ftr/ac_kon_blueclock.c"
// #include "../src/ftr/ac_kon_cracker.c"
#include "../src/ftr/ac_kon_ameclock.c"
#include "../src/ftr/ac_kon_atqclock.c"
#include "../src/ftr/ac_kon_blueclock.c"
#include "../src/ftr/ac_kon_cracker.c"
#include "../src/ftr/ac_kon_gomi03.c"
// #include "../src/ftr/ac_kon_gomi04.c"
// #include "../src/ftr/ac_kon_grclock.c"
#include "../src/ftr/ac_kon_grclock.c"
#include "../src/ftr/ac_kon_isi01.c"
#include "../src/ftr/ac_kon_isi02.c"
#include "../src/ftr/ac_kon_isi03.c"
#include "../src/ftr/ac_kon_isi04.c"
#include "../src/ftr/ac_kon_isi05.c"
#include "../src/ftr/ac_kon_isi06.c"
// #include "../src/ftr/ac_kon_jihanki02.c"
#include "../src/ftr/ac_kon_jihanki02.c"
#include "../src/ftr/ac_kon_jihanki03.c"
// #include "../src/ftr/ac_kon_mimiclock.c"
// #include "../src/ftr/ac_kon_musya.c"
#include "../src/ftr/ac_kon_mimiclock.c"
#include "../src/ftr/ac_kon_musya.c"
#include "../src/ftr/ac_kon_pound.c"
// #include "../src/ftr/ac_kon_redclock.c"
// #include "../src/ftr/ac_kon_sisiodosi.c"
#include "../src/ftr/ac_kon_redclock.c"
#include "../src/ftr/ac_kon_sisiodosi.c"
#include "../src/ftr/ac_kon_snowbed.c"
// #include "../src/ftr/ac_kon_snowbox.c"
// #include "../src/ftr/ac_kon_snowclock.c"
#include "../src/ftr/ac_kon_snowbox.c"
#include "../src/ftr/ac_kon_snowclock.c"
#include "../src/ftr/ac_kon_snowfreezer.c"
#include "../src/ftr/ac_kon_snowsofa.c"
#include "../src/ftr/ac_kon_snowtable.c"
// #include "../src/ftr/ac_kon_snowtansu.c"
// #include "../src/ftr/ac_kon_snowtv.c"
#include "../src/ftr/ac_kon_snowtansu.c"
#include "../src/ftr/ac_kon_snowtv.c"
#include "../src/ftr/ac_kon_taiju.c"
#include "../src/ftr/ac_kon_tubo.c"
#include "../src/ftr/ac_kon_tubo2.c"
#include "../src/ftr/ac_kon_tubo3.c"
#include "../src/ftr/ac_kon_tukue.c"
// #include "../src/ftr/ac_kon_waclock.c"
#include "../src/ftr/ac_kon_waclock.c"
#include "../src/ftr/ac_kon_xtree02.c"
// #include "../src/ftr/ac_myfmanekin.c"
// #include "../src/ftr/ac_myfumbrella.c"
+10
View File
@@ -1,5 +1,15 @@
static void fITN_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data);
extern Gfx int_ike_k_tanabata01_body_model[];
static void fITN_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data){
OPEN_DISP(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_ike_k_tanabata01_body_model);
CLOSE_DISP(game->graph);
}
static aFTR_vtable_c fITN_func = {
NULL,
NULL,
+38
View File
@@ -1,6 +1,44 @@
static void fIKD_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data);
static void fIKD_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data);
extern Gfx int_ike_kama_danro01_on_model[];
extern Gfx int_ike_kama_danrofire_off_model[];
static void fIKD_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data){
if(aFTR_CAN_PLAY_SE(ftr_actor)){
sAdo_OngenPos((u32)ftr_actor, 0x46, &ftr_actor->position);
}
}
static Gfx* fIKD_GetTwoTileGfx(int x0, int y0, int x1, int y1, GAME* game) {
return two_tex_scroll_dolphin(game->graph, 0, x0, y0, 32, 32, 1, x1, y1, 32, 64);
}
static void fIKD_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data){
GAME_PLAY* play = (GAME_PLAY*)game;
int ctr;
Gfx* gfx;
if(ftr_actor->ctr_type == aFTR_CTR_TYPE_GAME_PLAY){
ctr = play->game_frame;
}
else{
ctr = game->frame_counter;
}
gfx = fIKD_GetTwoTileGfx(0,0,0,-ctr << 2,game);
if(gfx != NULL){
OPEN_DISP(game->graph);
gSPMatrix(NEXT_POLY_OPA_DISP,_Matrix_to_Mtx_new(game->graph), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPMatrix(NEXT_POLY_XLU_DISP,_Matrix_to_Mtx_new(game->graph), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPSegment(NEXT_POLY_XLU_DISP, G_MWO_SEGMENT_9, gfx);
gSPDisplayList(NEXT_POLY_OPA_DISP,int_ike_kama_danro01_on_model);
gSPDisplayList(NEXT_POLY_XLU_DISP,int_ike_kama_danrofire_off_model);
CLOSE_DISP(game->graph);
}
}
static aFTR_vtable_c fIKD_func = {
NULL,
&fIKD_mv,
+9
View File
@@ -2,6 +2,15 @@ extern Gfx int_ike_pst_pig01_on_model[];
extern Gfx int_ike_pst_pig01_onT_model[];
static void fIPP_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data);
static void fIPP_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data){
if((ftr_actor->switch_changed_flag != FALSE) && (Common_Get(now_private)->inventory.wallet != 0)){
sAdo_OngenTrgStart(0x7C, &ftr_actor->position);
Common_Get(now_private)->inventory.wallet--;
}
}
static aFTR_vtable_c fIPP_func = {
NULL,
&fIPP_mv,
+34
View File
@@ -3,6 +3,40 @@ static void aKobDisksystem8_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME*
static void aKobDisksystem8_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data);
static void aKobDisksystem8_dt(FTR_ACTOR* ftr_actor, u8* data);
extern u8 int_tak_nes_ds_tex_rgb_i4[];
extern u16 int_tak_nes_cl_pal[];
extern Gfx int_tak_nes01_on_model[];
extern Gfx int_tak_nes01_onT_model[];
extern Gfx int_tak_nes01_game_on_model[];
static void aKobDisksystem8_ct(FTR_ACTOR* ftr_actor, u8* data){
}
static void aKobDisksystem8_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->famicom_emu_common_move_proc(ftr_actor,my_room_actor,game,0,-1);
}
}
static void aKobDisksystem8_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data){
OPEN_DISP(game->graph);
gSPMatrix(NEXT_POLY_OPA_DISP,_Matrix_to_Mtx_new(game->graph), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPSegment(NEXT_POLY_OPA_DISP, G_MWO_SEGMENT_8,int_tak_nes_ds_tex_rgb_i4);
gSPSegment(NEXT_POLY_OPA_DISP, G_MWO_SEGMENT_9,int_tak_nes_cl_pal);
gSPDisplayList(NEXT_POLY_OPA_DISP,int_tak_nes01_on_model);
gSPDisplayList(NEXT_POLY_OPA_DISP,int_tak_nes01_onT_model);
gSPDisplayList(NEXT_POLY_OPA_DISP,int_tak_nes01_game_on_model);
CLOSE_DISP(game->graph);
}
static void aKobDisksystem8_dt(FTR_ACTOR* ftr_actor, u8* data){
}
static aFTR_vtable_c aKobDisksystem8_func = {
&aKobDisksystem8_ct,
&aKobDisksystem8_mv,
+28
View File
@@ -3,6 +3,34 @@ static void aKobLocker1_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* gam
static void aKobLocker1_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data);
static void aKobLocker1_dt(FTR_ACTOR* ftr_actor, u8* data);
extern cKF_Animation_R_c cKF_ba_r_int_kob_locker1;
extern cKF_Skeleton_R_c cKF_bs_r_int_kob_locker1;
static void aKobLocker1_ct(FTR_ACTOR* ftr_actor, u8* data){
cKF_SkeletonInfo_R_c* keyf;
keyf = &ftr_actor->keyframe;
cKF_SkeletonInfo_R_ct(keyf, &cKF_bs_r_int_kob_locker1, &cKF_ba_r_int_kob_locker1, ftr_actor->joint, ftr_actor->morph);
cKF_SkeletonInfo_R_init_standard_stop(keyf, &cKF_ba_r_int_kob_locker1, NULL);
keyf->frame_control.speed = 0.0f;
cKF_SkeletonInfo_R_play(keyf);
}
static void aKobLocker1_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->open_close_common_move_proc(ftr_actor,my_room_actor,game,1.0f,16.0f);
}
}
static void aKobLocker1_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data){
cKF_Si3_draw_R_SV(game, &ftr_actor->keyframe, ftr_actor->skeleton_mtx[game->frame_counter & 1] , NULL, NULL, NULL);
}
static void aKobLocker1_dt(FTR_ACTOR* ftr_actor, u8* data){
}
static aFTR_vtable_c aKobLocker1_func = {
&aKobLocker1_ct,
&aKobLocker1_mv,
+17
View File
@@ -5,6 +5,23 @@ static void aKobNcube_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game,
static void aKobNcube_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data);
static void aKobNcube_dt(FTR_ACTOR* ftr_actor, u8* data);
static void aKobNcube_ct(FTR_ACTOR* ftr_actor, u8* data){
}
static void aKobNcube_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data){
}
static void aKobNcube_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data){
}
static void aKobNcube_dt(FTR_ACTOR* ftr_actor, u8* data){
}
static aFTR_vtable_c aKobNcube_func = {
&aKobNcube_ct,
&aKobNcube_mv,
+44
View File
@@ -3,6 +3,50 @@ static void aKonAmeclock_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* ga
static void aKonAmeclock_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data);
static void aKonAmeclock_dt(FTR_ACTOR* ftr_actor, u8* data);
extern cKF_Animation_R_c cKF_ba_r_int_kon_ameclock;
extern cKF_Skeleton_R_c cKF_bs_r_int_kon_ameclock;
static int aKonAmeclock_DwAfter(GAME* game, cKF_SkeletonInfo_R_c* keyf, int jointNum, Gfx** joint, u8* jointFlag, void* arg,
s_xyz* joint1, xyz_t* trans) {
return 1;
}
static int aKonAmeclock_DwBefore(GAME* game, cKF_SkeletonInfo_R_c* keyf, int jointNum, Gfx** joint, u8* jointFlag, void* arg,
s_xyz* joint1, xyz_t* trans) {
if(jointNum == 3){
joint1->z -= Common_Get(time).rad_hour;
}
else if(jointNum == 5){
joint1->z -= Common_Get(time).rad_min;
}
return 1;
}
static void aKonAmeclock_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data){
cKF_Si3_draw_R_SV(game, &ftr_actor->keyframe, ftr_actor->skeleton_mtx[game->frame_counter & 1] , aKonAmeclock_DwBefore, aKonAmeclock_DwAfter, ftr_actor);
}
static void aKonAmeclock_ct(FTR_ACTOR* ftr_actor, u8* data){
cKF_SkeletonInfo_R_c* keyf;
keyf = &ftr_actor->keyframe;
cKF_SkeletonInfo_R_ct(keyf, &cKF_bs_r_int_kon_ameclock, &cKF_ba_r_int_kon_ameclock, ftr_actor->joint, ftr_actor->morph);
cKF_SkeletonInfo_R_init_standard_repeat(keyf, &cKF_ba_r_int_kon_ameclock, NULL);
cKF_SkeletonInfo_R_play(keyf);
keyf->frame_control.speed = 0.0f;
}
static void aKonAmeclock_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data){
cKF_SkeletonInfo_R_play(&ftr_actor->keyframe);
}
static void aKonAmeclock_dt(FTR_ACTOR* ftr_actor, u8* data){
}
static aFTR_vtable_c aKonAmeclock_func = {
&aKonAmeclock_ct,
&aKonAmeclock_mv,
+67
View File
@@ -3,6 +3,73 @@ static void aKonAtqclock_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* ga
static void aKonAtqclock_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data);
static void aKonAtqclock_dt(FTR_ACTOR* ftr_actor, u8* data);
extern cKF_Animation_R_c cKF_ba_r_int_kon_atqclock;
extern cKF_Skeleton_R_c cKF_bs_r_int_kon_atqclock;
static int aKonAtqclock_DwAfter(GAME* game, cKF_SkeletonInfo_R_c* keyf, int jointNum, Gfx** joint, u8* jointFlag, void* arg,
s_xyz* joint1, xyz_t* trans) {
return 1;
}
static int aKonAtqclock_DwBefore(GAME* game, cKF_SkeletonInfo_R_c* keyf, int jointNum, Gfx** joint, u8* jointFlag, void* arg,
s_xyz* joint1, xyz_t* trans) {
if(jointNum == 5){
joint1->z -= Common_Get(time).rad_hour;
}
else if(jointNum == 7){
joint1->z -= Common_Get(time).rad_min;
}
return 1;
}
static void aKonAtqclock_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data){
cKF_Si3_draw_R_SV(game, &ftr_actor->keyframe, ftr_actor->skeleton_mtx[game->frame_counter & 1] , aKonAtqclock_DwBefore, aKonAtqclock_DwAfter, ftr_actor);
}
static void aKonAtqclock_ct(FTR_ACTOR* ftr_actor, u8* data){
cKF_SkeletonInfo_R_c* keyf;
keyf = &ftr_actor->keyframe;
cKF_SkeletonInfo_R_ct(keyf, &cKF_bs_r_int_kon_atqclock, &cKF_ba_r_int_kon_atqclock, ftr_actor->joint, ftr_actor->morph);
cKF_SkeletonInfo_R_init_standard_repeat(keyf, &cKF_ba_r_int_kon_atqclock, NULL);
cKF_SkeletonInfo_R_play(keyf);
keyf->frame_control.speed = 0.0f;
}
static void aKonAtqclock_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data){
cKF_SkeletonInfo_R_c* keyf;
aMR_clock_info_c* clock_info;
if(Common_Get(clip).my_room_clip == NULL){
return;
}
clock_info = Common_Get(clip).my_room_clip->clock_info_p;
keyf = &ftr_actor->keyframe;
if(clock_info->tick_stop != 0){
cKF_SkeletonInfo_R_init_standard_repeat(keyf, &cKF_ba_r_int_kon_atqclock, NULL);
cKF_SkeletonInfo_R_play(keyf);
keyf->frame_control.speed = 0.0f;
}
else if(clock_info->tick0 == 1 || clock_info->tick1 == 1){
if(aFTR_CAN_PLAY_SE(ftr_actor)){
sAdo_OngenTrgStart(0x12D, &ftr_actor->position);
}
cKF_SkeletonInfo_R_play(keyf);
}
else{
cKF_SkeletonInfo_R_play(keyf);
}
}
static void aKonAtqclock_dt(FTR_ACTOR* ftr_actor, u8* data){
}
static aFTR_vtable_c aKonAtqclock_func = {
&aKonAtqclock_ct,
&aKonAtqclock_mv,
+51
View File
@@ -3,6 +3,57 @@ static void aKonBlueclock_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* g
static void aKonBlueclock_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data);
static void aKonBlueclock_dt(FTR_ACTOR* ftr_actor, u8* data);
extern cKF_Animation_R_c cKF_ba_r_int_kon_blueclock;
extern cKF_Skeleton_R_c cKF_bs_r_int_kon_blueclock;
static int aKonBlueclock_DwAfter(GAME* game, cKF_SkeletonInfo_R_c* keyf, int jointNum, Gfx** joint, u8* jointFlag, void* arg,
s_xyz* joint1, xyz_t* trans) {
return 1;
}
static int aKonBlueclock_DwBefore(GAME* game, cKF_SkeletonInfo_R_c* keyf, int jointNum, Gfx** joint, u8* jointFlag, void* arg,
s_xyz* joint1, xyz_t* trans) {
if(jointNum == 3){
joint1->z -= Common_Get(time).rad_hour;
}
else if(jointNum == 5){
joint1->z -= Common_Get(time).rad_min;
}
return 1;
}
static void aKonBlueclock_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data){
Mtx* mtx = ftr_actor->skeleton_mtx[game->frame_counter & 1];
_texture_z_light_fog_prim(game->graph);
_texture_z_light_fog_prim_xlu(game->graph);
cKF_Si3_draw_R_SV(game, &ftr_actor->keyframe, mtx , aKonBlueclock_DwBefore, aKonBlueclock_DwAfter, ftr_actor);
}
static void aKonBlueclock_ct(FTR_ACTOR* ftr_actor, u8* data){
cKF_SkeletonInfo_R_c* keyf;
keyf = &ftr_actor->keyframe;
cKF_SkeletonInfo_R_ct(keyf, &cKF_bs_r_int_kon_blueclock, &cKF_ba_r_int_kon_blueclock, ftr_actor->joint, ftr_actor->morph);
cKF_SkeletonInfo_R_init_standard_repeat(keyf, &cKF_ba_r_int_kon_blueclock, NULL);
cKF_SkeletonInfo_R_play(keyf);
keyf->frame_control.speed = 0.0f;
}
static void aKonBlueclock_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data){
cKF_SkeletonInfo_R_c* keyf;
keyf = &ftr_actor->keyframe;
cKF_SkeletonInfo_R_play(keyf);
}
static void aKonBlueclock_dt(FTR_ACTOR* ftr_actor, u8* data){
}
static aFTR_vtable_c aKonBlueclock_func = {
&aKonBlueclock_ct,
&aKonBlueclock_mv,
+19
View File
@@ -4,6 +4,25 @@ static void aKonCracker_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* gam
static void aKonCracker_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data);
static void aKonCracker_dt(FTR_ACTOR* ftr_actor, u8* data);
static void aKonCracker_ct(FTR_ACTOR* ftr_actor, u8* data) {
}
static void aKonCracker_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) {
if (aFTR_CAN_PLAY_SE(ftr_actor) && (ftr_actor->keyframe.frame_control.current_frame == 8.0f ||
ftr_actor->keyframe.frame_control.current_frame == 24.0f)) {
sAdo_OngenTrgStart(0x812C, &ftr_actor->position);
}
}
static void aKonCracker_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) {
}
static void aKonCracker_dt(FTR_ACTOR* ftr_actor, u8* data) {
}
static aFTR_vtable_c aKonCracker_func = {
&aKonCracker_ct,
&aKonCracker_mv,
+49
View File
@@ -3,6 +3,55 @@ static void aKonGrclock_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* gam
static void aKonGrclock_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data);
static void aKonGrclock_dt(FTR_ACTOR* ftr_actor, u8* data);
extern cKF_Animation_R_c cKF_ba_r_int_kon_grclock;
extern cKF_Skeleton_R_c cKF_bs_r_int_kon_grclock;
static int aKonGrclock_DwAfter(GAME* game, cKF_SkeletonInfo_R_c* keyf, int jointNum, Gfx** joint, u8* jointFlag, void* arg,
s_xyz* joint1, xyz_t* trans) {
return 1;
}
static int aKonGrclock_DwBefore(GAME* game, cKF_SkeletonInfo_R_c* keyf, int jointNum, Gfx** joint, u8* jointFlag, void* arg,
s_xyz* joint1, xyz_t* trans) {
if(jointNum == 3){
joint1->z -= Common_Get(time).rad_hour;
}
else if(jointNum == 5){
joint1->z -= Common_Get(time).rad_min;
}
return 1;
}
static void aKonGrclock_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data){
Mtx* mtx = ftr_actor->skeleton_mtx[game->frame_counter & 1];
cKF_Si3_draw_R_SV(game, &ftr_actor->keyframe, mtx , aKonGrclock_DwBefore, aKonGrclock_DwAfter, ftr_actor);
}
static void aKonGrclock_ct(FTR_ACTOR* ftr_actor, u8* data){
cKF_SkeletonInfo_R_c* keyf;
keyf = &ftr_actor->keyframe;
cKF_SkeletonInfo_R_ct(keyf, &cKF_bs_r_int_kon_grclock, &cKF_ba_r_int_kon_grclock, ftr_actor->joint, ftr_actor->morph);
cKF_SkeletonInfo_R_init_standard_repeat(keyf, &cKF_ba_r_int_kon_grclock, NULL);
cKF_SkeletonInfo_R_play(keyf);
keyf->frame_control.speed = 0.0f;
}
static void aKonGrclock_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data){
cKF_SkeletonInfo_R_c* keyf;
keyf = &ftr_actor->keyframe;
cKF_SkeletonInfo_R_play(keyf);
}
static void aKonGrclock_dt(FTR_ACTOR* ftr_actor, u8* data){
}
static aFTR_vtable_c aKonGrclock_func = {
&aKonGrclock_ct,
&aKonGrclock_mv,
+30
View File
@@ -3,6 +3,36 @@ static void aKonJihanki02_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* g
static void aKonJihanki02_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data);
static void aKonJihanki02_dt(FTR_ACTOR* ftr_actor, u8* data);
extern Gfx int_kon_jihanki02_offT_model[];
extern Gfx int_kon_jihanki02_off_model[];
extern Gfx int_kon_jihanki02_onT_model[];
extern Gfx int_kon_jihanki02_on_model[];
static void aKonJihanki02_ct(FTR_ACTOR* ftr_actor, u8* data){
}
static void aKonJihanki02_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data){
}
static void aKonJihanki02_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data){
OPEN_DISP(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_kon_jihanki02_on_model);
gSPDisplayList(NEXT_POLY_OPA_DISP,int_kon_jihanki02_off_model);
gSPDisplayList(NEXT_POLY_OPA_DISP,int_kon_jihanki02_onT_model);
gSPDisplayList(NEXT_POLY_OPA_DISP,int_kon_jihanki02_offT_model);
CLOSE_DISP(game->graph);
}
static void aKonJihanki02_dt(FTR_ACTOR* ftr_actor, u8* data){
}
static aFTR_vtable_c aKonJihanki02_func = {
&aKonJihanki02_ct,
&aKonJihanki02_mv,
+51
View File
@@ -3,6 +3,57 @@ static void aKonMimiclock_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* g
static void aKonMimiclock_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data);
static void aKonMimiclock_dt(FTR_ACTOR* ftr_actor, u8* data);
extern cKF_Animation_R_c cKF_ba_r_int_kon_mimiclock;
extern cKF_Skeleton_R_c cKF_bs_r_int_kon_mimiclock;
static int aKonMimiclock_DwAfter(GAME* game, cKF_SkeletonInfo_R_c* keyf, int jointNum, Gfx** joint, u8* jointFlag, void* arg,
s_xyz* joint1, xyz_t* trans) {
return 1;
}
static int aKonMimiclock_DwBefore(GAME* game, cKF_SkeletonInfo_R_c* keyf, int jointNum, Gfx** joint, u8* jointFlag, void* arg,
s_xyz* joint1, xyz_t* trans) {
if(jointNum == 3){
joint1->z -= Common_Get(time).rad_hour;
}
else if(jointNum == 6){
joint1->z -= Common_Get(time).rad_min;
}
return 1;
}
static void aKonMimiclock_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data){
Mtx* mtx = ftr_actor->skeleton_mtx[game->frame_counter & 1];
_texture_z_light_fog_prim(game->graph);
_texture_z_light_fog_prim_xlu(game->graph);
cKF_Si3_draw_R_SV(game, &ftr_actor->keyframe, mtx , aKonMimiclock_DwBefore, aKonMimiclock_DwAfter, ftr_actor);
}
static void aKonMimiclock_ct(FTR_ACTOR* ftr_actor, u8* data){
cKF_SkeletonInfo_R_c* keyf;
keyf = &ftr_actor->keyframe;
cKF_SkeletonInfo_R_ct(keyf, &cKF_bs_r_int_kon_mimiclock, &cKF_ba_r_int_kon_mimiclock, ftr_actor->joint, ftr_actor->morph);
cKF_SkeletonInfo_R_init_standard_repeat(keyf, &cKF_ba_r_int_kon_mimiclock, NULL);
cKF_SkeletonInfo_R_play(keyf);
keyf->frame_control.speed = 0.0f;
}
static void aKonMimiclock_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data){
cKF_SkeletonInfo_R_c* keyf;
keyf = &ftr_actor->keyframe;
cKF_SkeletonInfo_R_play(keyf);
}
static void aKonMimiclock_dt(FTR_ACTOR* ftr_actor, u8* data){
}
static aFTR_vtable_c aKonMimiclock_func = {
&aKonMimiclock_ct,
&aKonMimiclock_mv,
+33
View File
@@ -3,6 +3,39 @@ static void aKonMusya_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game,
static void aKonMusya_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data);
static void aKonMusya_dt(FTR_ACTOR* ftr_actor, u8* data);
extern Gfx int_kon_musya_atama_onT_model[];
extern Gfx int_kon_musya_atama_on_model[];
extern Gfx int_kon_musya_dou_onT_model[];
extern Gfx int_kon_musya_hako_on_model[];
extern Gfx int_kon_musya_tare_onT_model[];
static void aKonJihanki02_ct(FTR_ACTOR* ftr_actor, u8* data){
}
static void aKonJihanki02_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data){
}
static void aKonJihanki02_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data){
OPEN_DISP(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_kon_musya_hako_on_model);
gSPDisplayList(NEXT_POLY_OPA_DISP,int_kon_musya_atama_on_model);
gSPDisplayList(NEXT_POLY_OPA_DISP,int_kon_musya_tare_onT_model);
gSPDisplayList(NEXT_POLY_OPA_DISP,int_kon_musya_dou_onT_model);
gSPDisplayList(NEXT_POLY_OPA_DISP,int_kon_musya_atama_onT_model);
CLOSE_DISP(game->graph);
}
static void aKonJihanki02_dt(FTR_ACTOR* ftr_actor, u8* data){
}
static aFTR_vtable_c aKonMusya_func = {
&aKonMusya_ct,
&aKonMusya_mv,
+49
View File
@@ -3,6 +3,55 @@ static void aKonRedclock_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* ga
static void aKonRedclock_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data);
static void aKonRedclock_dt(FTR_ACTOR* ftr_actor, u8* data);
extern cKF_Animation_R_c cKF_ba_r_int_kon_redclock;
extern cKF_Skeleton_R_c cKF_bs_r_int_kon_redclock;
static int aKonRedclock_DwAfter(GAME* game, cKF_SkeletonInfo_R_c* keyf, int jointNum, Gfx** joint, u8* jointFlag, void* arg,
s_xyz* joint1, xyz_t* trans) {
return 1;
}
static int aKonRedclock_DwBefore(GAME* game, cKF_SkeletonInfo_R_c* keyf, int jointNum, Gfx** joint, u8* jointFlag, void* arg,
s_xyz* joint1, xyz_t* trans) {
if(jointNum == 3){
joint1->z -= Common_Get(time).rad_hour;
}
else if(jointNum == 4){
joint1->z -= Common_Get(time).rad_min;
}
return 1;
}
static void aKonRedclock_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data){
Mtx* mtx = ftr_actor->skeleton_mtx[game->frame_counter & 1];
cKF_Si3_draw_R_SV(game, &ftr_actor->keyframe, mtx , aKonRedclock_DwBefore, aKonRedclock_DwAfter, ftr_actor);
}
static void aKonRedclock_ct(FTR_ACTOR* ftr_actor, u8* data){
cKF_SkeletonInfo_R_c* keyf;
keyf = &ftr_actor->keyframe;
cKF_SkeletonInfo_R_ct(keyf, &cKF_bs_r_int_kon_redclock, &cKF_ba_r_int_kon_redclock, ftr_actor->joint, ftr_actor->morph);
cKF_SkeletonInfo_R_init_standard_repeat(keyf, &cKF_ba_r_int_kon_redclock, NULL);
cKF_SkeletonInfo_R_play(keyf);
keyf->frame_control.speed = 0.0f;
}
static void aKonRedclock_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data){
cKF_SkeletonInfo_R_c* keyf;
keyf = &ftr_actor->keyframe;
cKF_SkeletonInfo_R_play(keyf);
}
static void aKonRedclock_dt(FTR_ACTOR* ftr_actor, u8* data){
}
static aFTR_vtable_c aKonRedclock_func = {
&aKonRedclock_ct,
&aKonRedclock_mv,
+13
View File
@@ -2,6 +2,19 @@ extern aFTR_rig_c aKonSisiodosi_sklkey;
static void aKonSisiodosi_ct(FTR_ACTOR* ftr_actor, u8* data);
static void aKonSisiodosi_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data);
static void aKonSisiodosi_ct(FTR_ACTOR* ftr_actor, u8* data){
ftr_actor->keyframe.frame_control.current_frame = (int)(1.0f + RANDOM_F(119.0f));
}
static void aKonSisiodosi_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data){
if(ftr_actor->keyframe.frame_control.current_frame == 20.0f){
if(aFTR_CAN_PLAY_SE(ftr_actor)){
sAdo_OngenTrgStart(0x18, &ftr_actor->position);
}
}
}
static aFTR_vtable_c aKonSisiodosi_func = {
&aKonSisiodosi_ct,
&aKonSisiodosi_mv,
+38
View File
@@ -3,6 +3,44 @@ static void aKonSnowbox_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* gam
static void aKonSnowbox_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data);
static void aKonSnowbox_dt(FTR_ACTOR* ftr_actor, u8* data);
extern cKF_Animation_R_c cKF_ba_r_int_kon_snowbox;
extern cKF_Skeleton_R_c cKF_bs_r_int_kon_snowbox;
static void aKonSnowbox_ct(FTR_ACTOR* ftr_actor, u8* data){
cKF_SkeletonInfo_R_c* keyf;
keyf = &ftr_actor->keyframe;
cKF_SkeletonInfo_R_ct(keyf, &cKF_bs_r_int_kon_snowbox, &cKF_ba_r_int_kon_snowbox, ftr_actor->joint, ftr_actor->morph);
cKF_SkeletonInfo_R_init_standard_stop(keyf, &cKF_ba_r_int_kon_snowbox, NULL);
cKF_SkeletonInfo_R_play(keyf);
keyf->frame_control.speed = 0.0f;
}
static void aKonSnowbox_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->open_close_common_move_proc(ftr_actor,my_room_actor,game,1.0f,16.0f);
}
}
static void aKonSnowbox_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data){
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, &ftr_actor->keyframe, mtx , NULL, NULL, NULL);
}
static void aKonSnowbox_dt(FTR_ACTOR* ftr_actor, u8* data){
}
static aFTR_vtable_c aKonSnowbox_func = {
&aKonSnowbox_ct,
&aKonSnowbox_mv,
+73
View File
@@ -3,6 +3,79 @@ static void aKonSnowclock_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* g
static void aKonSnowclock_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data);
static void aKonSnowclock_dt(FTR_ACTOR* ftr_actor, u8* data);
extern cKF_Animation_R_c cKF_ba_r_int_kon_snowclock;
extern cKF_Skeleton_R_c cKF_bs_r_int_kon_snowclock;
extern Gfx int_kon_snowclock_long_model[];
extern Gfx int_kon_snowclock_short_model[];
static int aKonSnowclock_DwAfter(GAME* game, cKF_SkeletonInfo_R_c* keyf, int jointNum, Gfx** joint, u8* jointFlag, void* arg,
s_xyz* joint1, xyz_t* trans) {
if(jointNum == 6){
OPEN_DISP(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_kon_snowclock_short_model);
CLOSE_DISP(game->graph);
}
else if(jointNum == 7){
OPEN_DISP(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_kon_snowclock_long_model);
CLOSE_DISP(game->graph);
}
return 1;
}
static int aKonSnowclock_DwBefore(GAME* game, cKF_SkeletonInfo_R_c* keyf, int jointNum, Gfx** joint, u8* jointFlag, void* arg,
s_xyz* joint1, xyz_t* trans) {
if(jointNum == 6){
joint1->z -= Common_Get(time).rad_hour;
}
else if(jointNum == 7){
joint1->z -= Common_Get(time).rad_min;
}
return 1;
}
static void aKonSnowclock_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data){
Mtx* mtx = ftr_actor->skeleton_mtx[game->frame_counter & 1];
cKF_Si3_draw_R_SV(game, &ftr_actor->keyframe, mtx , aKonSnowclock_DwBefore, aKonSnowclock_DwAfter, ftr_actor);
}
static void aKonSnowclock_ct(FTR_ACTOR* ftr_actor, u8* data){
cKF_SkeletonInfo_R_c* keyf;
keyf = &ftr_actor->keyframe;
cKF_SkeletonInfo_R_ct(keyf, &cKF_bs_r_int_kon_snowclock, &cKF_ba_r_int_kon_snowclock, ftr_actor->joint, ftr_actor->morph);
cKF_SkeletonInfo_R_init_standard_repeat(keyf, &cKF_ba_r_int_kon_snowclock, NULL);
cKF_SkeletonInfo_R_play(keyf);
keyf->frame_control.speed = 0.0f;
}
static void aKonSnowclock_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data){
cKF_SkeletonInfo_R_c* keyf;
keyf = &ftr_actor->keyframe;
cKF_SkeletonInfo_R_play(keyf);
}
static void aKonSnowclock_dt(FTR_ACTOR* ftr_actor, u8* data){
}
static aFTR_vtable_c aKonSnowclock_func = {
&aKonSnowclock_ct,
&aKonSnowclock_mv,
+40
View File
@@ -3,6 +3,46 @@ static void aKonSnowtansu_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* g
static void aKonSnowtansu_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data);
static void aKonSnowtansu_dt(FTR_ACTOR* ftr_actor, u8* data);
extern cKF_Animation_R_c cKF_ba_r_int_kon_snowtansu;
extern cKF_Skeleton_R_c cKF_bs_r_int_kon_snowtansu;
static void aKonsnowtansu_ct(FTR_ACTOR* ftr_actor, u8* data){
cKF_SkeletonInfo_R_c* keyf;
keyf = &ftr_actor->keyframe;
cKF_SkeletonInfo_R_ct(keyf, &cKF_bs_r_int_kon_snowtansu, &cKF_ba_r_int_kon_snowtansu, ftr_actor->joint, ftr_actor->morph);
cKF_SkeletonInfo_R_init_standard_stop(keyf, &cKF_ba_r_int_kon_snowtansu, NULL);
keyf->frame_control.speed = 0.0f;
cKF_SkeletonInfo_R_play(keyf);
}
static void aKonsnowtansu_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->open_close_common_move_proc(ftr_actor,my_room_actor,game,1.0f,16.0f);
}
}
static void aKonsnowtansu_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data){
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, &ftr_actor->keyframe, mtx , NULL, NULL, NULL);
}
static void aKonsnowtansu_dt(FTR_ACTOR* ftr_actor, u8* data){
}
static aFTR_vtable_c aKonSnowtansu_func = {
&aKonSnowtansu_ct,
&aKonSnowtansu_mv,
+71
View File
@@ -3,6 +3,77 @@ static void aKonsnowtv_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game
static void aKonsnowtv_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data);
static void aKonsnowtv_dt(FTR_ACTOR* ftr_actor, u8* data);
extern u8 int_kon_snowtv07a_TA_tex_txt[];
extern u8 int_kon_snowtv07b_TA_tex_txt[];
extern u8 int_kon_snowtv07c_TA_tex_txt[];
extern u8 int_kon_snowtv07d_TA_tex_txt[];
extern Gfx int_kon_snowtv_body_model[];
extern Gfx int_kon_snowtv_face_model[];
u8* aKonsnowtv_on_anime[] = {
int_kon_snowtv07b_TA_tex_txt, int_kon_snowtv07b_TA_tex_txt, int_kon_snowtv07b_TA_tex_txt,
int_kon_snowtv07b_TA_tex_txt, int_kon_snowtv07b_TA_tex_txt, int_kon_snowtv07b_TA_tex_txt,
int_kon_snowtv07b_TA_tex_txt, int_kon_snowtv07b_TA_tex_txt, int_kon_snowtv07b_TA_tex_txt,
int_kon_snowtv07b_TA_tex_txt, int_kon_snowtv07c_TA_tex_txt, int_kon_snowtv07c_TA_tex_txt,
int_kon_snowtv07c_TA_tex_txt, int_kon_snowtv07c_TA_tex_txt, int_kon_snowtv07c_TA_tex_txt,
int_kon_snowtv07c_TA_tex_txt, int_kon_snowtv07c_TA_tex_txt, int_kon_snowtv07c_TA_tex_txt,
int_kon_snowtv07c_TA_tex_txt, int_kon_snowtv07c_TA_tex_txt, int_kon_snowtv07d_TA_tex_txt,
int_kon_snowtv07d_TA_tex_txt, int_kon_snowtv07d_TA_tex_txt, int_kon_snowtv07d_TA_tex_txt,
int_kon_snowtv07d_TA_tex_txt, int_kon_snowtv07d_TA_tex_txt, int_kon_snowtv07d_TA_tex_txt,
int_kon_snowtv07d_TA_tex_txt, int_kon_snowtv07d_TA_tex_txt, int_kon_snowtv07d_TA_tex_txt,
};
static void aKonsnowtv_ct(FTR_ACTOR* ftr_actor, u8* data){
}
static void aKonsnowtv_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data){
if(ftr_actor->switch_bit != FALSE){
if(aFTR_CAN_PLAY_SE(ftr_actor)){
sAdo_OngenPos((u32) ftr_actor, 0x2B, &ftr_actor->position);
}
ftr_actor->tex_animation.frame++;
if(ftr_actor->tex_animation.frame >= 60 || ftr_actor->tex_animation.frame < 0){
ftr_actor->tex_animation.frame = 0;
}
}
if(ftr_actor->switch_changed_flag != FALSE){
if(ftr_actor->switch_bit != FALSE){
sAdo_OngenTrgStart(0x16, &ftr_actor->position);
}
else{
sAdo_OngenTrgStart(0x17, &ftr_actor->position);
}
}
}
static void aKonsnowtv_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) {
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){
u8* anime = aKonsnowtv_on_anime[(s16)(ftr_actor->tex_animation.frame >> 1)];
gSPSegment(NEXT_POLY_OPA_DISP, G_MWO_SEGMENT_8, anime);
}
else{
gSPSegment(NEXT_POLY_OPA_DISP, G_MWO_SEGMENT_8, int_kon_snowtv07a_TA_tex_txt);
}
gSPDisplayList(NEXT_POLY_OPA_DISP,int_kon_snowtv_face_model);
gSPDisplayList(NEXT_POLY_OPA_DISP,int_kon_snowtv_body_model);
CLOSE_DISP(game->graph);
}
static void aKonsnowtv_dt(FTR_ACTOR* ftr_actor, u8* data){
}
static aFTR_vtable_c aKonsnowtv_func = {
&aKonsnowtv_ct,
&aKonsnowtv_mv,
+47
View File
@@ -3,6 +3,53 @@ static void aKonWaclock_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* gam
static void aKonWaclock_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data);
static void aKonWaclock_dt(FTR_ACTOR* ftr_actor, u8* data);
extern cKF_Animation_R_c cKF_ba_r_int_kon_waclock;
extern cKF_Skeleton_R_c cKF_bs_r_int_kon_waclock;
static int aKonWaclock_DwAfter(GAME* game, cKF_SkeletonInfo_R_c* keyf, int jointNum, Gfx** joint, u8* jointFlag, void* arg,
s_xyz* joint1, xyz_t* trans) {
return 1;
}
static int aKonWaclock_DwBefore(GAME* game, cKF_SkeletonInfo_R_c* keyf, int jointNum, Gfx** joint, u8* jointFlag, void* arg,
s_xyz* joint1, xyz_t* trans) {
if(jointNum == 2){
joint1->z -= Common_Get(time).rad_hour;
}
return 1;
}
static void aKonWaclock_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data){
Mtx* mtx = ftr_actor->skeleton_mtx[game->frame_counter & 1];
cKF_Si3_draw_R_SV(game, &ftr_actor->keyframe, mtx , aKonWaclock_DwBefore, aKonWaclock_DwAfter, ftr_actor);
}
static void aKonwaclock_ct(FTR_ACTOR* ftr_actor, u8* data){
cKF_SkeletonInfo_R_c* keyf;
keyf = &ftr_actor->keyframe;
cKF_SkeletonInfo_R_ct(keyf, &cKF_bs_r_int_kon_waclock, &cKF_ba_r_int_kon_waclock, ftr_actor->joint, ftr_actor->morph);
cKF_SkeletonInfo_R_init_standard_repeat(keyf, &cKF_ba_r_int_kon_waclock, NULL);
cKF_SkeletonInfo_R_play(keyf);
keyf->frame_control.speed = 0.0f;
}
static void aKonwaclock_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data){
cKF_SkeletonInfo_R_c* keyf;
keyf = &ftr_actor->keyframe;
cKF_SkeletonInfo_R_play(keyf);
}
static void aKonwaclock_dt(FTR_ACTOR* ftr_actor, u8* data){
}
static aFTR_vtable_c aKonWaclock_func = {
&aKonWaclock_ct,
&aKonWaclock_mv,