mirror of
https://github.com/ACreTeam/ac-decomp
synced 2026-05-23 06:34:18 -04:00
match furnitures ike_jny_*
This commit is contained in:
@@ -109,6 +109,9 @@ extern int aMR_GetFurnitureUnit(mActor_name_t ftr);
|
||||
extern mActor_name_t aMR_FurnitureFg_to_FurnitureFgWithDirect(mActor_name_t ftr, int direct);
|
||||
extern void aMR_SameFurnitureSwitchOFF(u16 ftr_name);
|
||||
extern aMR_contact_info_c* aMR_GetContactInfoLayer1(void);
|
||||
extern FTR_ACTOR* aMR_GetParentFactor();
|
||||
extern s16 aMR_GetParentAngleOffset(FTR_ACTOR* ftr_actor, MY_ROOM_ACTOR* my_room_actor);
|
||||
extern void aMR_SetSurprise(ACTOR* my_room_actor, s16 rot);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
+9
-9
@@ -172,31 +172,31 @@ static Gfx* fFTR_GetTwoTileGfx(int width0, int height0, int scroll_x0, int scrol
|
||||
#include "../src/ftr/ac_din_trikera_tail.c"
|
||||
#include "../src/ftr/ac_din_trilobite.c"
|
||||
#include "../src/ftr/ac_famicom_common.c"
|
||||
// #include "../src/ftr/ac_fmanekin.c"
|
||||
// #include "../src/ftr/ac_fumbrella.c"
|
||||
#include "../src/ftr/ac_fmanekin.c"
|
||||
#include "../src/ftr/ac_fumbrella.c"
|
||||
#include "../src/ftr/ac_hnw_common.c"
|
||||
#include "../src/ftr/ac_ike_art_ang.c"
|
||||
#include "../src/ftr/ac_ike_art_fel.c"
|
||||
// #include "../src/ftr/ac_ike_island_hako01.c"
|
||||
#include "../src/ftr/ac_ike_island_hako01.c"
|
||||
#include "../src/ftr/ac_ike_island_sensui01.c"
|
||||
// #include "../src/ftr/ac_ike_island_uku01.c"
|
||||
#include "../src/ftr/ac_ike_island_uku01.c"
|
||||
#include "../src/ftr/ac_ike_jny_afmen01.c"
|
||||
#include "../src/ftr/ac_ike_jny_botle01.c"
|
||||
#include "../src/ftr/ac_ike_jny_gate01.c"
|
||||
#include "../src/ftr/ac_ike_jny_gojyu01.c"
|
||||
// #include "../src/ftr/ac_ike_jny_hariko01.c"
|
||||
// #include "../src/ftr/ac_ike_jny_houi01.c"
|
||||
#include "../src/ftr/ac_ike_jny_hariko01.c"
|
||||
#include "../src/ftr/ac_ike_jny_houi01.c"
|
||||
#include "../src/ftr/ac_ike_jny_kibori01.c"
|
||||
#include "../src/ftr/ac_ike_jny_makada01.c"
|
||||
#include "../src/ftr/ac_ike_jny_moai01.c"
|
||||
#include "../src/ftr/ac_ike_jny_ningyo01.c"
|
||||
#include "../src/ftr/ac_ike_jny_pisa01.c"
|
||||
// #include "../src/ftr/ac_ike_jny_rosia01.c"
|
||||
#include "../src/ftr/ac_ike_jny_rosia01.c"
|
||||
#include "../src/ftr/ac_ike_jny_sirser01.c"
|
||||
#include "../src/ftr/ac_ike_jny_sirser201.c"
|
||||
// #include "../src/ftr/ac_ike_jny_syon01.c"
|
||||
#include "../src/ftr/ac_ike_jny_syon01.c"
|
||||
#include "../src/ftr/ac_ike_jny_tower01.c"
|
||||
// #include "../src/ftr/ac_ike_jny_truth01.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_k_count01.c"
|
||||
|
||||
@@ -73,7 +73,7 @@ void fIIH_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) {
|
||||
sAdo_OngenPos((u32)ftr_actor, 0x52, &ftr_actor->position);
|
||||
}
|
||||
}
|
||||
if (cKF_SkeletonInfo_R_play(keyf) == 1) {
|
||||
if (cKF_SkeletonInfo_R_play(keyf) == cKF_STATE_STOPPED) {
|
||||
keyf->frame_control.speed = 0.0f;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,57 @@ static void fIJH_ct(FTR_ACTOR* ftr_actor, u8* data);
|
||||
static void fIJH_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data);
|
||||
static void fIJH_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data);
|
||||
|
||||
extern cKF_Skeleton_R_c cKF_bs_r_int_ike_jny_hariko01;
|
||||
extern cKF_Animation_R_c cKF_ba_r_int_ike_jny_hariko01;
|
||||
|
||||
static void fIJH_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_ike_jny_hariko01, &cKF_ba_r_int_ike_jny_hariko01, ftr_actor->joint, ftr_actor->morph);
|
||||
cKF_SkeletonInfo_R_init_standard_stop(keyf, &cKF_ba_r_int_ike_jny_hariko01, NULL);
|
||||
cKF_SkeletonInfo_R_play(keyf);
|
||||
keyf->frame_control.speed = 0.0f;
|
||||
}
|
||||
|
||||
|
||||
static void fIJH_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data){
|
||||
cKF_SkeletonInfo_R_c* keyf;
|
||||
|
||||
keyf = &ftr_actor->keyframe;
|
||||
if (ftr_actor->keyframe.frame_control.speed == 0.0f){
|
||||
if (ftr_actor->switch_changed_flag != 0){
|
||||
if (aFTR_CAN_PLAY_SE(ftr_actor)){
|
||||
sAdo_OngenTrgStart(0x7B, &ftr_actor->position);
|
||||
}
|
||||
keyf->frame_control.current_frame = 1.0f;
|
||||
cKF_SkeletonInfo_R_play(keyf);
|
||||
keyf->frame_control.speed = 0.25f;
|
||||
}
|
||||
}
|
||||
else{
|
||||
if (cKF_SkeletonInfo_R_play(keyf) != cKF_STATE_STOPPED){
|
||||
cKF_SkeletonInfo_R_play(keyf);
|
||||
keyf->frame_control.speed = 0.25f;
|
||||
}
|
||||
else{
|
||||
keyf->frame_control.speed = 0.0f;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
static void fIJH_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);
|
||||
|
||||
cKF_Si3_draw_R_SV(game,&ftr_actor->keyframe,mtx,NULL,NULL,NULL);
|
||||
CLOSE_DISP(game->graph);
|
||||
}
|
||||
|
||||
static aFTR_vtable_c fIJH_func = {
|
||||
&fIJH_ct,
|
||||
&fIJH_mv,
|
||||
|
||||
@@ -2,6 +2,134 @@ static void fIJHOUI_ct(FTR_ACTOR* ftr_actor, u8* data);
|
||||
static void fIJHOUI_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data);
|
||||
static void fIJHOUI_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data);
|
||||
|
||||
extern cKF_Animation_R_c cKF_ba_r_int_ike_jny_houi01;
|
||||
extern cKF_Skeleton_R_c cKF_bs_r_int_ike_jny_houi01;
|
||||
|
||||
static void fIJHOUI_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_ike_jny_houi01, &cKF_ba_r_int_ike_jny_houi01, ftr_actor->joint,
|
||||
ftr_actor->morph);
|
||||
cKF_SkeletonInfo_R_init_standard_stop(keyf, &cKF_ba_r_int_ike_jny_houi01, NULL);
|
||||
cKF_SkeletonInfo_R_play(keyf);
|
||||
keyf->frame_control.speed = 0.0f;
|
||||
ftr_actor->dynamic_work_s[0] = ftr_actor->state;
|
||||
}
|
||||
|
||||
static void fIJHOUI_Status2SetMode(FTR_ACTOR* arg0, FTR_ACTOR* ftr_actor) {
|
||||
switch (arg0->state) {
|
||||
case aFTR_STATE_STOP:
|
||||
case aFTR_STATE_PUSH:
|
||||
case aFTR_STATE_PULL:
|
||||
default:
|
||||
break;
|
||||
case aFTR_STATE_WAIT_LROTATE:
|
||||
case aFTR_STATE_WAIT_RROTATE:
|
||||
ftr_actor->dynamic_work_s[1] = 0;
|
||||
break;
|
||||
case aFTR_STATE_LROTATE:
|
||||
ftr_actor->dynamic_work_s[1]++;
|
||||
if (ftr_actor->dynamic_work_s[1] == 8) {
|
||||
ftr_actor->dynamic_work_s[2] = 0;
|
||||
ftr_actor->dynamic_work_f[0] =
|
||||
(ftr_actor->dynamic_work_f[0] * sin_s(ftr_actor->dynamic_work_s[2])) - 45.0f;
|
||||
if (ftr_actor->dynamic_work_f[0] < -45.0f) {
|
||||
ftr_actor->dynamic_work_f[0] = -45.0f;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case aFTR_STATE_RROTATE:
|
||||
ftr_actor->dynamic_work_s[1]++;
|
||||
if (ftr_actor->dynamic_work_s[1] == 8) {
|
||||
ftr_actor->dynamic_work_s[2] = 0;
|
||||
ftr_actor->dynamic_work_f[0] =
|
||||
45.0f + (ftr_actor->dynamic_work_f[0] * sin_s(ftr_actor->dynamic_work_s[2]));
|
||||
if (ftr_actor->dynamic_work_f[0] > 45.0f) {
|
||||
ftr_actor->dynamic_work_f[0] = 45.0f;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void fIJHOUI_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) {
|
||||
cKF_SkeletonInfo_R_c* keyf = &ftr_actor->keyframe;
|
||||
FTR_ACTOR* parent;
|
||||
|
||||
parent = aMR_GetParentFactor();
|
||||
fIJHOUI_Status2SetMode(ftr_actor, ftr_actor);
|
||||
|
||||
if (parent != NULL) {
|
||||
fIJHOUI_Status2SetMode(parent, ftr_actor);
|
||||
}
|
||||
|
||||
cKF_SkeletonInfo_R_play(keyf);
|
||||
|
||||
if (ftr_actor->dynamic_work_f[0] > 0.0f) {
|
||||
ftr_actor->dynamic_work_f[0] -= (0.2f + (0.01f * GETREG(CRV, 81)));
|
||||
if (ftr_actor->dynamic_work_f[0] < 0.0f) {
|
||||
ftr_actor->dynamic_work_f[0] = 0.0f;
|
||||
}
|
||||
} else if (ftr_actor->dynamic_work_f[0] < 0.0f) {
|
||||
ftr_actor->dynamic_work_f[0] = ftr_actor->dynamic_work_f[0] + (0.2f + (0.01f * GETREG(CRV, 81)));
|
||||
if (ftr_actor->dynamic_work_f[0] > 0.0f) {
|
||||
ftr_actor->dynamic_work_f[0] = 0.0f;
|
||||
}
|
||||
}
|
||||
if (0.0f != ftr_actor->dynamic_work_f[0]) {
|
||||
ftr_actor->dynamic_work_s[2] += 0x320 + GETREG(CRV, 80);
|
||||
} else {
|
||||
ftr_actor->dynamic_work_s[2] = 0;
|
||||
}
|
||||
|
||||
add_calc(&ftr_actor->dynamic_work_f[1], ftr_actor->dynamic_work_f[0] * sin_s(ftr_actor->dynamic_work_s[2]), 0.3f,
|
||||
100.0f, 0.0001f);
|
||||
ftr_actor->dynamic_work_s[0] = ftr_actor->state;
|
||||
}
|
||||
|
||||
static int fIJHOUI_DrawBefore(GAME* game, cKF_SkeletonInfo_R_c* keyf, int jointNum, Gfx** joint, u8* jointFlag, void* arg,
|
||||
s_xyz* joint1, xyz_t* trans) {
|
||||
FTR_ACTOR* actor = (FTR_ACTOR*)arg;
|
||||
|
||||
int offset = 10430.378f * (0.017453292f * actor->dynamic_work_f[1]);
|
||||
|
||||
if (jointNum == 3) {
|
||||
MY_ROOM_ACTOR* my_room_actor;
|
||||
int exists = FALSE;
|
||||
|
||||
if ((Common_Get(clip).my_room_clip != NULL && Common_Get(clip).my_room_clip->my_room_actor_p != NULL)) {
|
||||
exists = TRUE;
|
||||
}
|
||||
|
||||
if (exists != FALSE) {
|
||||
my_room_actor = Common_Get(clip).my_room_clip->my_room_actor_p;
|
||||
} else {
|
||||
my_room_actor = NULL;
|
||||
}
|
||||
|
||||
joint1->y -= actor->s_angle_y + (aMR_GetParentAngleOffset(actor, my_room_actor)) + offset;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int fIJHOUI_DrawAfter(GAME* game, cKF_SkeletonInfo_R_c* keyf, int jointNum, Gfx** joint, u8* jointFlag, void* arg,
|
||||
s_xyz* joint1, xyz_t* trans) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
static void fIJHOUI_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);
|
||||
|
||||
cKF_Si3_draw_R_SV(game, &ftr_actor->keyframe, mtx, fIJHOUI_DrawBefore, fIJHOUI_DrawAfter, ftr_actor);
|
||||
CLOSE_DISP(game->graph);
|
||||
}
|
||||
|
||||
static aFTR_vtable_c fIJHOUI_func = {
|
||||
&fIJHOUI_ct,
|
||||
&fIJHOUI_mv,
|
||||
|
||||
@@ -3,6 +3,66 @@ static void aIkeJnyRosia01_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME*
|
||||
static void aIkeJnyRosia01_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data);
|
||||
static void aIkeJnyRosia01_dt(FTR_ACTOR* ftr_actor, u8* data);
|
||||
|
||||
extern cKF_Animation_R_c cKF_ba_r_int_ike_jny_rosia01;
|
||||
extern cKF_Skeleton_R_c cKF_bs_r_int_ike_jny_rosia01;
|
||||
|
||||
static void aIkeJnyRosia01_ct(FTR_ACTOR* ftr_actor, u8* data) {
|
||||
cKF_SkeletonInfo_R_c* keyf = &ftr_actor->keyframe;
|
||||
|
||||
cKF_SkeletonInfo_R_ct(keyf, &cKF_bs_r_int_ike_jny_rosia01, &cKF_ba_r_int_ike_jny_rosia01, ftr_actor->joint,
|
||||
ftr_actor->morph);
|
||||
cKF_SkeletonInfo_R_init_standard_stop(keyf, &cKF_ba_r_int_ike_jny_rosia01, NULL);
|
||||
keyf->frame_control.speed = 0.0f;
|
||||
keyf->frame_control.start_frame = 1.0f;
|
||||
keyf->frame_control.end_frame = cKF_ba_r_int_ike_jny_rosia01.frames;
|
||||
ftr_actor->dynamic_work_s[0] = (ftr_actor->switch_bit == TRUE);
|
||||
if (ftr_actor->dynamic_work_s[0] == 0) {
|
||||
keyf->frame_control.current_frame = cKF_ba_r_int_ike_jny_rosia01.frames;
|
||||
}
|
||||
cKF_SkeletonInfo_R_play(keyf);
|
||||
}
|
||||
|
||||
static void aIkeJnyRosia01_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) {
|
||||
cKF_SkeletonInfo_R_c* keyf = &ftr_actor->keyframe;
|
||||
|
||||
if ((ftr_actor->switch_changed_flag != FALSE) && (keyf->frame_control.speed == 0.0f)) {
|
||||
ftr_actor->dynamic_work_s[0] = ftr_actor->dynamic_work_s[0] + 1 & 1;
|
||||
if (ftr_actor->dynamic_work_s[0] != 0) {
|
||||
keyf->frame_control.speed = 0.5f;
|
||||
keyf->frame_control.start_frame = cKF_ba_r_int_ike_jny_rosia01.frames;
|
||||
keyf->frame_control.end_frame = 1.0f;
|
||||
sAdo_OngenTrgStart(0x7A, &ftr_actor->position);
|
||||
} else {
|
||||
keyf->frame_control.speed = 0.5f;
|
||||
keyf->frame_control.start_frame = 1.0f;
|
||||
keyf->frame_control.end_frame = cKF_ba_r_int_ike_jny_rosia01.frames;
|
||||
sAdo_OngenTrgStart(0x7A, &ftr_actor->position);
|
||||
}
|
||||
}
|
||||
if (cKF_SkeletonInfo_R_play(keyf) == cKF_STATE_STOPPED) {
|
||||
keyf->frame_control.speed = 0.0f;
|
||||
}
|
||||
}
|
||||
|
||||
static void aIkeJnyRosia01_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);
|
||||
|
||||
cKF_Si3_draw_R_SV(game, &ftr_actor->keyframe, mtx, NULL, NULL, NULL);
|
||||
CLOSE_DISP(game->graph);
|
||||
}
|
||||
|
||||
static void aIkeJnyRosia01_dt(FTR_ACTOR* ftr_actor, u8* data){
|
||||
if (ftr_actor->dynamic_work_s[0] != FALSE){
|
||||
ftr_actor->switch_bit = TRUE;
|
||||
}
|
||||
else{
|
||||
ftr_actor->switch_bit = FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
static aFTR_vtable_c aIkeJnyRosia01_func = {
|
||||
&aIkeJnyRosia01_ct,
|
||||
&aIkeJnyRosia01_mv,
|
||||
|
||||
@@ -2,6 +2,91 @@ static void fIJS_ct(FTR_ACTOR* ftr_actor, u8* data);
|
||||
static void fIJS_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data);
|
||||
static void fIJS_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data);
|
||||
|
||||
extern Gfx int_ike_jny_syon01_off_model[];
|
||||
extern Gfx int_ike_jny_syon01_on_model[];
|
||||
|
||||
static void fIJS_ct(FTR_ACTOR* ftr_actor, u8* data){
|
||||
f32 alpha;
|
||||
|
||||
if (ftr_actor->switch_bit == 1) {
|
||||
ftr_actor->dynamic_work_s[0] = TRUE;
|
||||
} else {
|
||||
ftr_actor->dynamic_work_s[0] = FALSE;
|
||||
}
|
||||
if (ftr_actor->dynamic_work_s[0] == TRUE) {
|
||||
alpha = 255.0f;
|
||||
} else {
|
||||
alpha = 0.0f;
|
||||
}
|
||||
ftr_actor->dynamic_work_f[0] = alpha;
|
||||
}
|
||||
|
||||
static void fIJS_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) {
|
||||
f32 alpha;
|
||||
|
||||
if (ftr_actor->dynamic_work_s[0] == TRUE) {
|
||||
alpha = 255.0f;
|
||||
} else {
|
||||
alpha = 0.0f;
|
||||
}
|
||||
if (ftr_actor->dynamic_work_s[0] == TRUE) {
|
||||
if (aFTR_CAN_PLAY_SE(ftr_actor)) {
|
||||
sAdo_OngenPos((u32) ftr_actor, 0x4B, &ftr_actor->position);
|
||||
}
|
||||
}
|
||||
if (ftr_actor->dynamic_work_f[0] > alpha) {
|
||||
ftr_actor->dynamic_work_f[0] -= 6.0f;
|
||||
if (ftr_actor->dynamic_work_f[0] < alpha) {
|
||||
ftr_actor->dynamic_work_f[0] = alpha;
|
||||
}
|
||||
} else if (ftr_actor->dynamic_work_f[0] < alpha) {
|
||||
ftr_actor->dynamic_work_f[0] += 6.0f;
|
||||
if (ftr_actor->dynamic_work_f[0] > alpha) {
|
||||
ftr_actor->dynamic_work_f[0] = alpha;
|
||||
}
|
||||
} else if (ftr_actor->switch_changed_flag != FALSE) {
|
||||
ftr_actor->dynamic_work_s[0] = ((ftr_actor->dynamic_work_s[0] + 1) & 1);
|
||||
}
|
||||
}
|
||||
|
||||
static Gfx* fIJS_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, 32);
|
||||
}
|
||||
|
||||
static void fNS_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) {
|
||||
GAME_PLAY* play = (GAME_PLAY*)game;
|
||||
u32 ctr_ofs;
|
||||
Gfx* scroll;
|
||||
u8 alpha;
|
||||
|
||||
if (ftr_actor->ctr_type == aFTR_CTR_TYPE_GAME_PLAY) {
|
||||
ctr_ofs = play->game_frame;
|
||||
} else {
|
||||
ctr_ofs = game->frame_counter;
|
||||
}
|
||||
|
||||
scroll = fIJS_GetTwoTileGfx(0,ctr_ofs * 6, 0, 0, game);
|
||||
|
||||
if (ftr_actor->ctr_type == aFTR_CTR_TYPE_GAME_PLAY) {
|
||||
alpha = (u8)(int)ftr_actor->dynamic_work_f[0];
|
||||
} else {
|
||||
alpha = 255;
|
||||
}
|
||||
|
||||
if (scroll != 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);
|
||||
gSPDisplayList(NEXT_POLY_OPA_DISP, int_ike_jny_syon01_on_model);
|
||||
gDPSetPrimColor(NEXT_POLY_XLU_DISP, 0,255, 120,160,255, alpha);
|
||||
gSPSegment(NEXT_POLY_XLU_DISP, G_MWO_SEGMENT_9, scroll);
|
||||
gSPDisplayList(NEXT_POLY_XLU_DISP, int_ike_jny_syon01_off_model);
|
||||
|
||||
CLOSE_DISP(game->graph);
|
||||
}
|
||||
}
|
||||
|
||||
static aFTR_vtable_c fIJS_func = {
|
||||
&fIJS_ct,
|
||||
&fIJS_mv,
|
||||
|
||||
@@ -3,6 +3,56 @@ static void fIJT_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8*
|
||||
static void fIJT_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data);
|
||||
static void fIJT_dt(FTR_ACTOR* ftr_actor, u8* data);
|
||||
|
||||
extern u8 int_ike_jny_truthface1_TA_tex_txt[];
|
||||
extern u8 int_ike_jny_truthface2_TA_tex_txt[];
|
||||
|
||||
extern Gfx int_ike_jny_truth01_body_model[];
|
||||
|
||||
static void fIJT_ct(FTR_ACTOR* ftr_actor, u8* data){
|
||||
ftr_actor->dynamic_work_s[0] = 0;
|
||||
ftr_actor->dynamic_work_s[1] = 0;
|
||||
}
|
||||
|
||||
static void fIJT_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data){
|
||||
GAME_PLAY* play = (GAME_PLAY*)game;
|
||||
PLAYER_ACTOR* player;
|
||||
|
||||
player = GET_PLAYER_ACTOR(play);
|
||||
if (ftr_actor->dynamic_work_s[1] == 0){
|
||||
if (ftr_actor->switch_changed_flag != 0){
|
||||
aMR_SetSurprise(my_room_actor, player->actor_class.shape_info.rotation.y);
|
||||
ftr_actor->dynamic_work_s[0] = 0x32;
|
||||
ftr_actor->dynamic_work_s[1] = 1;
|
||||
}
|
||||
}
|
||||
else{
|
||||
ftr_actor->dynamic_work_s[0]--;
|
||||
if (ftr_actor->dynamic_work_s[0] == 0x14){
|
||||
mVibctl_entry(100, 1, 1, 13, 0, 7, 7, 0.0f);
|
||||
}
|
||||
if (ftr_actor->dynamic_work_s[0] < 0){
|
||||
ftr_actor->dynamic_work_s[0] = 0;
|
||||
ftr_actor->dynamic_work_s[1] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void fIJT_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data){
|
||||
static u8* tex_table[] = {
|
||||
int_ike_jny_truthface1_TA_tex_txt,int_ike_jny_truthface2_TA_tex_txt,
|
||||
};
|
||||
int idx;
|
||||
|
||||
OPEN_DISP(game->graph);
|
||||
|
||||
idx = ftr_actor->dynamic_work_s[1] & 1;
|
||||
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,tex_table[idx]);
|
||||
gSPDisplayList(NEXT_POLY_OPA_DISP,int_ike_jny_truth01_body_model);
|
||||
|
||||
CLOSE_DISP(game->graph);
|
||||
}
|
||||
|
||||
static aFTR_vtable_c fIJT_func = {
|
||||
&fIJT_ct,
|
||||
&fIJT_mv,
|
||||
|
||||
Reference in New Issue
Block a user