diff --git a/configure.py b/configure.py index b91e499e..05728c17 100644 --- a/configure.py +++ b/configure.py @@ -981,7 +981,7 @@ config.libs = [ Object(Matching, "actor/ac_hatumode_control.c"), Object(Matching, "actor/ac_house.c"), Object(Matching, "actor/ac_house_clock.c"), - Object(NonMatching, "actor/ac_house_goki.c"), + Object(Matching, "actor/ac_house_goki.c"), Object(Matching, "actor/ac_htable.c"), Object(Matching, "actor/ac_ins_amenbo.c"), Object(Matching, "actor/ac_ins_batta.c"), diff --git a/include/ac_house_goki.h b/include/ac_house_goki.h index 65f6ee6e..dc94fe89 100644 --- a/include/ac_house_goki.h +++ b/include/ac_house_goki.h @@ -8,6 +8,22 @@ extern "C" { #endif +typedef struct house_goki_actor_s HOUSE_GOKI_ACTOR; +typedef void (*aHG_ACT_PROC)(ACTOR* actorx, GAME* game); + +struct house_goki_actor_s { + /* 0x000 */ACTOR actor_class; + /* 0x174 */aHG_ACT_PROC act_proc; + /* 0x178 */int _178; + /* 0x17C */int action; + /* 0x180 */f32 timer; + /* 0x184 */f32 timer2; + /* 0x188 */int jump_flag; + /* 0x18C */f32 shadow_alpha; + /* 0x190 */f32 alpha; + /* 0x194 */f32 anm_no; +}; + extern ACTOR_PROFILE House_Goki_Profile; #ifdef __cplusplus @@ -15,4 +31,3 @@ extern ACTOR_PROFILE House_Goki_Profile; #endif #endif - diff --git a/include/audio_defs.h b/include/audio_defs.h index 25f1c432..f9a7cb72 100644 --- a/include/audio_defs.h +++ b/include/audio_defs.h @@ -93,6 +93,7 @@ typedef enum audio_sound_effects { NA_SE_CLEAN_UP_FTR = 0x58, NA_SE_TOOL_FURI = 0x5A, // swing? + NA_SE_GOKI_DEAD = 0x5B, NA_SE_AMI_HIT = 0x5C, NA_SE_TOOL_GET, NA_SE_5E = 0x5E, @@ -152,6 +153,8 @@ typedef enum audio_sound_effects { NA_SE_12D = 0x12D, + NA_SE_GOKI_JUMP_AWAY = 0x132, + NA_SE_TREE_TOUCH = 0x134, NA_SE_TREE_YURASU, diff --git a/include/m_actor.h b/include/m_actor.h index dd458235..27d6976c 100644 --- a/include/m_actor.h +++ b/include/m_actor.h @@ -409,7 +409,7 @@ typedef enum bank_id { ACTOR_OBJ_BANK_366, ACTOR_OBJ_BANK_367, ACTOR_OBJ_BANK_368, - ACTOR_OBJ_BANK_369, + ACTOR_OBJ_BANK_HOUSE_GOKI, ACTOR_OBJ_BANK_NPC_SAO, ACTOR_OBJ_BANK_TUMBLER, ACTOR_OBJ_BANK_372, @@ -1045,6 +1045,9 @@ enum { mAc_HILITE_NUM }; +#define mAc_CHK_HIT_WALL(actor, wall) ((actor)->bg_collision_check.result.hit_wall & (wall)) +#define mAc_CHK_HIT_ATR_WALL(actor, wall) ((actor)->bg_collision_check.result.hit_attribute_wall & (wall)) + /* sizeof(ACTOR_PROFILE) == 0x24 */ struct actor_profile_s { /* 0x00 */ s16 id; /* unique actor type ID */ diff --git a/include/m_collision_bg.h b/include/m_collision_bg.h index 07766ae0..aff84748 100644 --- a/include/m_collision_bg.h +++ b/include/m_collision_bg.h @@ -362,6 +362,7 @@ extern void mCoBG_VirtualBGCheck(xyz_t* rev_pos_p, mCoBG_Check_c* bg_check, cons f32 ground_dist, s16 attr_wall, s16 rev_type, s16 check_type); extern f32 mCoBG_Wpos2GroundCheckOnly(const xyz_t* pos_p, f32 ground_dist); extern int mCoBG_Wpos2CheckNpc(xyz_t wpos); +extern void mCoBG_WallCheckOnly(xyz_t* rev_pos_p, ACTOR* actor, f32 range, f32 ground_dist, s16 rev_type, s16 check_type); typedef int (*mCoBG_LINECHECK_PROC)(mActor_name_t); diff --git a/src/actor/ac_house_goki.c b/src/actor/ac_house_goki.c new file mode 100644 index 00000000..e86c96f9 --- /dev/null +++ b/src/actor/ac_house_goki.c @@ -0,0 +1,457 @@ +#include "ac_house_goki.h" + +#include "m_actor_shadow.h" +#include "m_play.h" +#include "m_player_lib.h" +#include "m_common_data.h" +#include "m_cockroach.h" +#include "sys_matrix.h" +#include "m_rcp.h" + +enum { + aHG_ACT_AWAY, + aHG_ACT_JUMP_AWAY, + aHG_ACT_WAIT, + aHG_ACT_MOVE, + aHG_ACT_DEAD, + + aHG_ACT_NUM +}; + +static void aHG_actor_ct(ACTOR* actorx, GAME* game); +static void aHG_actor_move(ACTOR* actorx, GAME* game); +static void aHG_actor_draw(ACTOR* actorx, GAME* game); + +// clang-format off +ACTOR_PROFILE House_Goki_Profile = { + mAc_PROFILE_HOUSE_GOKI, + ACTOR_PART_BG, + ACTOR_STATE_NO_MOVE_WHILE_CULLED, + EMPTY_NO, + ACTOR_OBJ_BANK_HOUSE_GOKI, + sizeof(HOUSE_GOKI_ACTOR), + &aHG_actor_ct, + mActor_NONE_PROC1, + &aHG_actor_move, + &aHG_actor_draw, + NULL, +}; +// clang-format on + +static void aHG_setupAction(HOUSE_GOKI_ACTOR* goki, GAME* game, int action); + +static void aHG_actor_ct(ACTOR* actorx, GAME* game) { + HOUSE_GOKI_ACTOR* goki = (HOUSE_GOKI_ACTOR*)actorx; + GAME_PLAY* play = (GAME_PLAY*)game; + + goki->alpha = 30.0f; + if (actorx->actor_specific <= 0) { + actorx->actor_specific = 0; + goki->alpha = 255.0f; + } + + actorx->scale.x = 0.01f; + actorx->scale.y = 0.01f; + actorx->scale.z = 0.01f; + + Shape_Info_init(actorx, 0.0f, &mAc_ActorShadowCircle, 6.0f, 6.0f); + xyz_t_move(&actorx->home.position, &actorx->world.position); + actorx->gravity = -2.0f; + actorx->shape_info.rotation.y = actorx->player_angle_y + DEG2SHORT_ANGLE2(180.0f); + actorx->world.angle.y = actorx->shape_info.rotation.y; + aHG_setupAction(goki, game, aHG_ACT_AWAY); +} + +static void aHG_anime_proc(HOUSE_GOKI_ACTOR* goki) { + goki->anm_no += 0.5f; + if (goki->anm_no >= 2.0f) { + goki->anm_no -= 2.0f; + } +} + +static void aHG_calc_timer(HOUSE_GOKI_ACTOR* goki) { + goki->timer -= 0.5f; + if (goki->timer < 0.0f) { + goki->timer = 0.0f; + } + + goki->timer2 -= 0.5f; + if (goki->timer2 < 0.0f) { + goki->timer2 = 0.0f; + } +} + +static s16 aHG_away_bg_hitangle_check_proc(ACTOR* actorx) { + HOUSE_GOKI_ACTOR* goki = (HOUSE_GOKI_ACTOR*)actorx; + s16 angle = 777; // 0x309 + s16 wall_angle[2]; + int i; + + goki->timer2 = 0.0f; + if (actorx->player_distance_xz > 20.0f) { + wall_angle[0] = 777; + wall_angle[1] = 777; + + if (actorx->bg_collision_check.result.hit_wall & mCoBG_HIT_WALL_FRONT) { + wall_angle[0] = DEG2SHORT_ANGLE2(-90.0f); + wall_angle[1] = DEG2SHORT_ANGLE2(90.0f); + } + + if ((actorx->bg_collision_check.result.hit_wall & mCoBG_HIT_WALL_RIGHT) || (actorx->bg_collision_check.result.hit_wall & mCoBG_HIT_WALL_LEFT)) { + if (wall_angle[0] == 777) { + wall_angle[0] = DEG2SHORT_ANGLE2(180.0f) - actorx->world.angle.y; + if (wall_angle[0] > 0) { + wall_angle[0] = DEG2SHORT_ANGLE2(360.0f) - actorx->world.angle.y; + } + } else if (actorx->bg_collision_check.result.hit_wall & mCoBG_HIT_WALL_RIGHT) { + wall_angle[0] = DEG2SHORT_ANGLE2(90.0f); + } else { + wall_angle[0] = DEG2SHORT_ANGLE2(-90.0f); + } + + angle = wall_angle[0]; + } else { + i = 0; + + if (wall_angle[0] != 777) { + // wall_angle[0] -= actorx->player_angle_y; + angle = ABS((s16)(wall_angle[0] - actorx->player_angle_y)); + } + + if (wall_angle[1] != 777) { + // wall_angle[1] -= actorx->player_angle_y; + + + if (angle < (s16)ABS((s16)(wall_angle[1] - actorx->player_angle_y))) { + i = 1; + } + } + + angle = wall_angle[i]; + } + } + + return angle; +} + +static void aHG_decide_next_act_idx_wait_move(HOUSE_GOKI_ACTOR* goki, GAME* game) { + GAME_PLAY* play = (GAME_PLAY*)game; + int next_act_idx = aHG_ACT_MOVE; + + goki->timer = 5.0f + RANDOM_F(5.0f); + if (play->game_frame % 100 > 20 || RANDOM_F(1.0f) < 0.5f) { + next_act_idx = aHG_ACT_WAIT; + } else if (goki->actor_class.player_distance_xz < 60.0f) { + next_act_idx = aHG_ACT_WAIT; + } + + aHG_setupAction(goki, game, next_act_idx); +} + +static void aHG_position_move(ACTOR* actorx) { + s16 angleY = actorx->world.angle.y; + + actorx->position_speed.x = actorx->speed * sin_s(angleY); + actorx->position_speed.z = actorx->speed * cos_s(angleY); + actorx->position_speed.y += actorx->gravity; + Actor_position_move(actorx); +} + +static void aHG_BGcheck(ACTOR* actorx) { + mCoBG_WallCheckOnly(NULL, actorx, 15.0f, 0.0f, 0, 0); + if (actorx->world.position.y < actorx->home.position.y) { + actorx->world.position.y = actorx->home.position.y; + } +} + +static int aHG_calc_add_alpha(HOUSE_GOKI_ACTOR* goki) { + int ret = FALSE; + + goki->alpha += 3.5f; + if (goki->alpha > 255.0f) { + goki->alpha = 255.0f; + ret = TRUE; + } + + return ret; +} + +static int aHG_check_dead(ACTOR* actorx, GAME* game) { + ACTOR* playerx = GET_PLAYER_ACTOR_GAME_ACTOR(game); + int ret = FALSE; + + if (aMR_CLIP != NULL && aMR_CLIP->check_danna_kill_proc(&actorx->world.position)) { + ret = TRUE; + } + + if (actorx->bg_collision_check.result.unk_flag2 || actorx->bg_collision_check.result.unk_flag3) { + ret = TRUE; + } + + if (playerx != NULL && !F32_IS_ZERO(playerx->speed) && actorx->player_distance_xz < 9.0f && actorx->world.position.y == actorx->home.position.y) { + ret = TRUE; + } + + return ret; +} + +static int aHG_player_check(ACTOR* actorx, GAME* game) { + ACTOR* playerx = GET_PLAYER_ACTOR_GAME_ACTOR(game); + int ret = FALSE; + + if (playerx != NULL && !F32_IS_ZERO(playerx->speed) && actorx->player_distance_xz < 60.0f) { + ret = TRUE; + } + + return ret; +} + +static int aHG_check_threshold(ACTOR* actorx) { + mActor_name_t* fg_p = mFI_GetUnitFG(actorx->world.position); + + if (fg_p != NULL && *fg_p == RSV_DOOR) { + actorx->shape_info.rotation.y = DEG2SHORT_ANGLE2(180.0f); + actorx->world.angle.y = DEG2SHORT_ANGLE2(180.0f); + } + + return FALSE; +} + +static void aHG_away(ACTOR* actorx, GAME* game) { + HOUSE_GOKI_ACTOR* goki = (HOUSE_GOKI_ACTOR*)actorx; + GAME_PLAY* play = (GAME_PLAY*)game; + + if (goki->timer <= 0.0f && !goki->jump_flag && !aHG_player_check(actorx, game)) { + goki->timer = 20.0f + RANDOM_F(20.0f); + aHG_setupAction(goki, game, aHG_ACT_WAIT); + } else { + if (aHG_check_threshold(actorx) == TRUE) { + goki->jump_flag = TRUE; + goki->timer2 = 4.0f + RANDOM_F(4.0f); + } else { + goki->jump_flag = FALSE; + + if (goki->timer2 <= 0.0f) { + if (actorx->bg_collision_check.result.hit_wall != mCoBG_DIDNT_HIT_WALL) { + f32 chance = 0.2f; + s16 angle = aHG_away_bg_hitangle_check_proc(actorx); + + if (angle != 777) { + actorx->world.angle.y += angle; + actorx->world.angle.y &= 0xC000; // only allow movement on pure X & Z axes: 0, 90, 180, 270 + actorx->shape_info.rotation.y = actorx->world.angle.y; + goki->timer2 = 5.0f + RANDOM_F(5.0f); + } else { + chance = 0.5f; + } + + if (RANDOM_F(1.0f) < chance) { + aHG_setupAction(goki, game, aHG_ACT_JUMP_AWAY); + } + } else { + actorx->world.angle.y = actorx->player_angle_y + DEG2SHORT_ANGLE2(180.0f); + actorx->shape_info.rotation.y = actorx->world.angle.y; + } + } + } + + sAdo_OngenPos((u32)goki, NA_SE_GOKI_MOVE, &actorx->world.position); + } +} + +static void aHG_jump_away(ACTOR* actorx, GAME* game) { + HOUSE_GOKI_ACTOR* goki = (HOUSE_GOKI_ACTOR*)actorx; + GAME_PLAY* play = (GAME_PLAY*)game; + + if (actorx->world.position.y == actorx->home.position.y) { + aHG_setupAction(goki, game, aHG_ACT_AWAY); + } else { + aHG_anime_proc(goki); + if (actorx->position_speed.y < 0.0f) { + actorx->gravity = -7.0f; + } + aHG_check_threshold(actorx); + } +} + +static void aHG_wait(ACTOR* actorx, GAME* game) { + HOUSE_GOKI_ACTOR* goki = (HOUSE_GOKI_ACTOR*)actorx; + ACTOR* playerx = GET_PLAYER_ACTOR_GAME_ACTOR(game); // @unused + + if (aHG_player_check(actorx, game) == TRUE) { + aHG_setupAction(goki, game, aHG_ACT_AWAY); + } else if (goki->timer <= 0.0f) { + aHG_decide_next_act_idx_wait_move(goki, game); + } +} + +static void aHG_move(ACTOR* actorx, GAME* game) { + HOUSE_GOKI_ACTOR* goki = (HOUSE_GOKI_ACTOR*)actorx; + + if (aHG_player_check(actorx, game) == TRUE) { + aHG_setupAction(goki, game, aHG_ACT_AWAY); + } else { + if (mAc_CHK_HIT_WALL(actorx, mCoBG_HIT_WALL_FRONT) || + mAc_CHK_HIT_ATR_WALL(actorx, mCoBG_HIT_WALL_FRONT) || + mAc_CHK_HIT_WALL(actorx, mCoBG_HIT_WALL_RIGHT) || + mAc_CHK_HIT_ATR_WALL(actorx, mCoBG_HIT_WALL_RIGHT) || + mAc_CHK_HIT_WALL(actorx, mCoBG_HIT_WALL_LEFT) || + mAc_CHK_HIT_ATR_WALL(actorx, mCoBG_HIT_WALL_LEFT)) { + if (!goki->jump_flag) { + actorx->shape_info.rotation.y += DEG2SHORT_ANGLE2(180.0f); + actorx->world.angle.y = actorx->shape_info.rotation.y; + } + + goki->jump_flag = TRUE; + } else { + if (aHG_check_threshold(actorx) == TRUE) { + goki->timer = 5.0f + RANDOM_F(5.0f); + } + + goki->jump_flag = FALSE; + } + + if (goki->timer <= 0.0f) { + aHG_decide_next_act_idx_wait_move(goki, game); + } else { + sAdo_OngenPos((u32)goki, NA_SE_GOKI_MOVE, &actorx->world.position); + } + } +} + +static void aHG_dead(ACTOR* actorx, GAME* game) { + HOUSE_GOKI_ACTOR* goki = (HOUSE_GOKI_ACTOR*)actorx; + + goki->alpha = goki->shadow_alpha; + if (((int)goki->timer & 2) == 0) { + goki->alpha = 0.0f; + } + + goki->shadow_alpha -= 2.5f; + if (goki->shadow_alpha < 0.0f) { + goki->shadow_alpha = 0.0f; + } + + actorx->shape_info.shadow_alpha_change_rate = goki->shadow_alpha * 0.0015f; + if (goki->timer <= 0.0f) { + Actor_delete(actorx); + } +} + +static void aHG_away_init(HOUSE_GOKI_ACTOR* goki, GAME* game) { + goki->timer = 20.0f + RANDOM_F(20.0f); + goki->timer2 = 0.0f; + goki->jump_flag = FALSE; + goki->anm_no = 0.0f; + goki->actor_class.speed = 8.0f; +} + +static void aHG_jump_away_init(HOUSE_GOKI_ACTOR* goki, GAME* game) { + // @BUG - incorrect usage of random generator again. Devs clearly intended this to be a random + // binary value (0 or 1), but calling RANDOM(1) will always result in 0 when aliasing to integer. + // Bug results in the cockroach jump movement always being 22.5 degrees more than + // the player angle. +#ifndef BUGFIXES + goki->actor_class.shape_info.rotation.y = goki->actor_class.player_angle_y + (s16)(DEG2SHORT_ANGLE2(22.5f) - ((s16)RANDOM(1) * DEG2SHORT_ANGLE2(45.0f))); +#else + goki->actor_class.shape_info.rotation.y = goki->actor_class.player_angle_y + (s16)(DEG2SHORT_ANGLE2(22.5f) - ((s16)RANDOM(2) * DEG2SHORT_ANGLE2(45.0f))); +#endif + goki->actor_class.world.angle.y = goki->actor_class.shape_info.rotation.y; + goki->actor_class.position_speed.y = 17.0f; + goki->actor_class.gravity = -2.0f; + goki->actor_class.speed = 5.0f; + sAdo_OngenTrgStart(NA_SE_GOKI_JUMP_AWAY, &goki->actor_class.world.position); +} + +static void aHG_wait_init(HOUSE_GOKI_ACTOR* goki, GAME* game) { + goki->actor_class.shape_info.rotation.y = goki->actor_class.player_angle_y + DEG2SHORT_ANGLE2(180.0f); + goki->actor_class.world.angle.y = goki->actor_class.shape_info.rotation.y; + goki->actor_class.speed = 0.0f; + goki->anm_no = 0.0f; +} + +static void aHG_move_init(HOUSE_GOKI_ACTOR* goki, GAME* game) { + xyz_t pos; + + goki->timer = 5.0f + RANDOM_F(5.0f); + goki->jump_flag = FALSE; + xyz_t_move(&pos, &goki->actor_class.world.position); + pos.x += 80.0f - RANDOM_F(160.0f); + pos.z += 80.0f - RANDOM_F(160.0f); + goki->actor_class.shape_info.rotation.y = search_position_angleY(&goki->actor_class.world.position, &pos); + goki->actor_class.world.angle.y = goki->actor_class.shape_info.rotation.y; + goki->actor_class.speed = 4.0f; +} + +static void aHG_dead_init(HOUSE_GOKI_ACTOR* goki, GAME* game) { + eEC_CLIP->effect_make_proc(eEC_EFFECT_GOKI, goki->actor_class.world.position, 1, 0, game, EMPTY_NO, 0, 0); + mCkRh_CalcCanLookGokiCount(-1); + sAdo_OngenTrgStart(NA_SE_GOKI_DEAD, &goki->actor_class.world.position); + goki->shadow_alpha = 255.0f; + goki->actor_class.speed = 0.0f; + goki->timer = 40.0f; +} + +typedef void (*aHG_INIT_PROC)(HOUSE_GOKI_ACTOR* goki, GAME* game); + +static void aHG_setupAction(HOUSE_GOKI_ACTOR* goki, GAME* game, int act) { + static aHG_INIT_PROC init_proc[] = { + &aHG_away_init, + &aHG_jump_away_init, + &aHG_wait_init, + &aHG_move_init, + &aHG_dead_init, + }; + + static aHG_ACT_PROC act_proc[] = { + &aHG_away, + &aHG_jump_away, + &aHG_wait, + &aHG_move, + &aHG_dead, + }; + + goki->action = act; + goki->act_proc = act_proc[act]; + (*init_proc[act])(goki, game); +} + +static void aHG_actor_move(ACTOR* actorx, GAME* game) { + HOUSE_GOKI_ACTOR* goki = (HOUSE_GOKI_ACTOR*)actorx; + + aHG_position_move(actorx); + aHG_BGcheck(actorx); + aHG_calc_timer(goki); + + if (goki->action != aHG_ACT_DEAD && aHG_calc_add_alpha(goki) == TRUE && aHG_check_dead(actorx, game) == TRUE) { + aHG_setupAction(goki, game, aHG_ACT_DEAD); + } + + (*goki->act_proc)(actorx, game); +} + +extern Gfx act_m_house_goki1T_model[]; +extern Gfx act_m_house_goki2T_model[]; + +static void aHG_actor_draw(ACTOR* actorx, GAME* game) { + static Gfx* aHG_displayList[] = { act_m_house_goki1T_model, act_m_house_goki2T_model }; + GRAPH* graph = game->graph; + HOUSE_GOKI_ACTOR* goki = (HOUSE_GOKI_ACTOR*)actorx; + + Matrix_push(); + Matrix_translate(actorx->world.position.x, actorx->world.position.y + 2.0f, actorx->world.position.z, 0); + Matrix_scale(actorx->scale.x, actorx->scale.y, actorx->scale.z, 1); + Matrix_RotateX(actorx->shape_info.rotation.x, 1); + Matrix_RotateY(actorx->shape_info.rotation.y, 1); + _texture_z_light_fog_prim_xlu(graph); + + OPEN_POLY_XLU_DISP(graph); + + gSPMatrix(POLY_XLU_DISP++, _Matrix_to_Mtx_new(graph), G_MTX_LOAD | G_MTX_NOPUSH); + gDPSetEnvColor(POLY_XLU_DISP++, 255, 255, 255, (u32)goki->alpha); + gSPDisplayList(POLY_XLU_DISP++, aHG_displayList[(int)goki->anm_no]); + + CLOSE_POLY_XLU_DISP(graph); + + Matrix_pull(); +} diff --git a/src/data/scene/museum_fossil.c b/src/data/scene/museum_fossil.c index ce484e2b..c26fc54e 100644 --- a/src/data/scene/museum_fossil.c +++ b/src/data/scene/museum_fossil.c @@ -42,7 +42,7 @@ extern s16 MUSEUM_FOSSIL_ctrl_actor_data[] = { }; extern s16 MUSEUM_FOSSIL_object_bank[] = { - ACTOR_OBJ_BANK_369, // 0 + ACTOR_OBJ_BANK_HOUSE_GOKI, // 0 }; extern Door_data_c MUSEUM_FOSSIL_door_data[] = { diff --git a/src/data/scene/p_room_bm_l.c b/src/data/scene/p_room_bm_l.c index 6e827842..462b32e4 100644 --- a/src/data/scene/p_room_bm_l.c +++ b/src/data/scene/p_room_bm_l.c @@ -42,7 +42,7 @@ extern s16 P_ROOM_BM_L_ctrl_actor_data[] = { }; extern s16 P_ROOM_BM_L_object_bank[] = { - ACTOR_OBJ_BANK_369, // 0 + ACTOR_OBJ_BANK_HOUSE_GOKI, // 0 }; extern Door_data_c P_ROOM_BM_L_door_data[] = { diff --git a/src/data/scene/p_room_bm_ll1.c b/src/data/scene/p_room_bm_ll1.c index 896494be..8beaefe2 100644 --- a/src/data/scene/p_room_bm_ll1.c +++ b/src/data/scene/p_room_bm_ll1.c @@ -42,7 +42,7 @@ extern s16 P_ROOM_BM_LL1_ctrl_actor_data[] = { }; extern s16 P_ROOM_BM_LL1_object_bank[] = { - ACTOR_OBJ_BANK_369, // 0 + ACTOR_OBJ_BANK_HOUSE_GOKI, // 0 }; extern Door_data_c P_ROOM_BM_LL1_door_data[] = { diff --git a/src/data/scene/p_room_bm_m.c b/src/data/scene/p_room_bm_m.c index e42a21a5..bca9ea71 100644 --- a/src/data/scene/p_room_bm_m.c +++ b/src/data/scene/p_room_bm_m.c @@ -42,7 +42,7 @@ extern s16 P_ROOM_BM_M_ctrl_actor_data[] = { }; extern s16 P_ROOM_BM_M_object_bank[] = { - ACTOR_OBJ_BANK_369, // 0 + ACTOR_OBJ_BANK_HOUSE_GOKI, // 0 }; extern Door_data_c P_ROOM_BM_M_door_data[] = { diff --git a/src/data/scene/p_room_bm_s.c b/src/data/scene/p_room_bm_s.c index 972e4443..283446eb 100644 --- a/src/data/scene/p_room_bm_s.c +++ b/src/data/scene/p_room_bm_s.c @@ -42,7 +42,7 @@ extern s16 P_ROOM_BM_S_ctrl_actor_data[] = { }; extern s16 P_ROOM_BM_S_object_bank[] = { - ACTOR_OBJ_BANK_369, // 0 + ACTOR_OBJ_BANK_HOUSE_GOKI, // 0 }; extern Door_data_c P_ROOM_BM_S_door_data[] = { diff --git a/src/data/scene/player_room_island.c b/src/data/scene/player_room_island.c index 698f5947..ee8eec78 100644 --- a/src/data/scene/player_room_island.c +++ b/src/data/scene/player_room_island.c @@ -60,7 +60,7 @@ extern Actor_data PLAYER_ROOM_ISLAND_actor_data[] = { extern s16 PLAYER_ROOM_ISLAND_object_bank[] = { ACTOR_OBJ_BANK_ROOM_SUNSHINE, // 0 - ACTOR_OBJ_BANK_369, // 1 + ACTOR_OBJ_BANK_HOUSE_GOKI, // 1 }; extern Door_data_c PLAYER_ROOM_ISLAND_door_data[] = { diff --git a/src/data/scene/player_room_l.c b/src/data/scene/player_room_l.c index eb7fb028..3791dfc4 100644 --- a/src/data/scene/player_room_l.c +++ b/src/data/scene/player_room_l.c @@ -60,7 +60,7 @@ extern Actor_data PLAYER_ROOM_L_actor_data[] = { extern s16 PLAYER_ROOM_L_object_bank[] = { ACTOR_OBJ_BANK_ROOM_SUNSHINE, // 0 - ACTOR_OBJ_BANK_369, // 1 + ACTOR_OBJ_BANK_HOUSE_GOKI, // 1 }; extern Door_data_c PLAYER_ROOM_L_door_data[] = { diff --git a/src/data/scene/player_room_ll1.c b/src/data/scene/player_room_ll1.c index 3437762c..d80abd46 100644 --- a/src/data/scene/player_room_ll1.c +++ b/src/data/scene/player_room_ll1.c @@ -60,7 +60,7 @@ extern Actor_data PLAYER_ROOM_LL1_actor_data[] = { extern s16 PLAYER_ROOM_LL1_object_bank[] = { ACTOR_OBJ_BANK_ROOM_SUNSHINE, // 0 - ACTOR_OBJ_BANK_369, // 1 + ACTOR_OBJ_BANK_HOUSE_GOKI, // 1 }; extern Door_data_c PLAYER_ROOM_LL1_door_data[] = { diff --git a/src/data/scene/player_room_ll2.c b/src/data/scene/player_room_ll2.c index cf8c3665..00ef3a98 100644 --- a/src/data/scene/player_room_ll2.c +++ b/src/data/scene/player_room_ll2.c @@ -60,7 +60,7 @@ extern Actor_data PLAYER_ROOM_LL2_actor_data[] = { extern s16 PLAYER_ROOM_LL2_object_bank[] = { ACTOR_OBJ_BANK_ROOM_SUNSHINE, // 0 - ACTOR_OBJ_BANK_369, // 1 + ACTOR_OBJ_BANK_HOUSE_GOKI, // 1 }; extern Door_data_c PLAYER_ROOM_LL2_door_data[] = { diff --git a/src/data/scene/player_room_m.c b/src/data/scene/player_room_m.c index c59bdff0..8314909e 100644 --- a/src/data/scene/player_room_m.c +++ b/src/data/scene/player_room_m.c @@ -60,7 +60,7 @@ extern Actor_data PLAYER_ROOM_M_actor_data[] = { extern s16 PLAYER_ROOM_M_object_bank[] = { ACTOR_OBJ_BANK_ROOM_SUNSHINE, // 0 - ACTOR_OBJ_BANK_369, // 1 + ACTOR_OBJ_BANK_HOUSE_GOKI, // 1 }; extern Door_data_c PLAYER_ROOM_M_door_data[] = { diff --git a/src/data/scene/player_room_s.c b/src/data/scene/player_room_s.c index 8ad13165..e9a8eb2d 100644 --- a/src/data/scene/player_room_s.c +++ b/src/data/scene/player_room_s.c @@ -60,7 +60,7 @@ extern Actor_data PLAYER_ROOM_S_actor_data[] = { extern s16 PLAYER_ROOM_S_object_bank[] = { ACTOR_OBJ_BANK_ROOM_SUNSHINE, // 0 - ACTOR_OBJ_BANK_369, // 1 + ACTOR_OBJ_BANK_HOUSE_GOKI, // 1 }; extern Door_data_c PLAYER_ROOM_S_door_data[] = {