552 lines
18 KiB
C
552 lines
18 KiB
C
struct ObjectHitbox sEyerokHitbox = {
|
|
/* interactType: */ INTERACT_BOUNCE_TOP,
|
|
/* downOffset: */ 0,
|
|
/* damageOrCoinValue: */ 0,
|
|
/* health: */ 4,
|
|
/* numLootCoins: */ 0,
|
|
/* radius: */ 150,
|
|
/* height: */ 100,
|
|
/* hurtboxRadius: */ 1,
|
|
/* hurtboxHeight: */ 1,
|
|
};
|
|
|
|
s8 D_80331BA4[] = { 0, 1, 3, 2, 1, 0 };
|
|
|
|
static s32 func_8030D284(s32 arg0) {
|
|
if (gMarioObject->oPosZ - o->oHomeZ < arg0) {
|
|
return TRUE;
|
|
} else {
|
|
return FALSE;
|
|
}
|
|
}
|
|
|
|
static void eyerok_spawn_hand(s16 side, s32 model, const BehaviorScript *behavior) {
|
|
struct Object *hand;
|
|
|
|
hand = spawn_object_relative_with_scale(side, -500 * side, 0, 300, 1.5f, o, model, behavior);
|
|
if (hand != NULL) {
|
|
hand->oFaceAngleYaw -= 0x4000 * side;
|
|
}
|
|
}
|
|
|
|
static void eyerok_boss_act_sleep(void) {
|
|
if (o->oTimer == 0) {
|
|
eyerok_spawn_hand(-1, MODEL_EYEROK_LEFT_HAND, bhvEyerokHand);
|
|
eyerok_spawn_hand(1, MODEL_EYEROK_RIGHT_HAND, bhvEyerokHand);
|
|
} else if (o->oDistanceToMario < 500.0f) {
|
|
PlaySound2(SOUND_OBJ_EYEROK_EXPLODE);
|
|
o->oAction = EYEROK_BOSS_ACT_WAKE_UP;
|
|
}
|
|
}
|
|
|
|
static void eyerok_boss_act_wake_up(void) {
|
|
if (o->oEyerokBossNumHands == 2) {
|
|
if (o->oTimer > 5) {
|
|
if (o->oSubAction == 0) {
|
|
func_8031FFB4(0, 60, 40);
|
|
o->oSubAction += 1;
|
|
}
|
|
|
|
if (o->oEyerokBossUnk110 == 0.0f && mario_ready_to_speak() != 0) {
|
|
o->oAction = EYEROK_BOSS_ACT_SHOW_INTRO_TEXT;
|
|
} else if (o->oTimer > 150) {
|
|
if (approach_f32_ptr(&o->oEyerokBossUnk110, 0.0f, 10.0f)) {
|
|
o->oTimer = 0;
|
|
}
|
|
} else if (o->oTimer > 90) {
|
|
approach_f32_ptr(&o->oEyerokBossUnk110, 300.f, 10.0f);
|
|
}
|
|
}
|
|
} else {
|
|
o->oTimer = 0;
|
|
}
|
|
}
|
|
|
|
static void eyerok_boss_act_show_intro_text(void) {
|
|
if (obj_update_dialog_with_cutscene(2, 0, CUTSCENE_DIALOG, DIALOG_117)) {
|
|
o->oAction = EYEROK_BOSS_ACT_FIGHT;
|
|
}
|
|
}
|
|
|
|
static void eyerok_boss_act_fight(void) {
|
|
if (o->oEyerokBossNumHands == 0) {
|
|
o->oAction = EYEROK_BOSS_ACT_DIE;
|
|
} else if (o->oEyerokBossUnk1AC == 0 && o->oEyerokBossActiveHand == 0) {
|
|
if (o->oEyerokBossUnk104 != 0) {
|
|
if (approach_f32_ptr(&o->oEyerokBossUnk110, 1.0f, 0.02f)) {
|
|
if (o->oEyerokBossUnk104 < 0) {
|
|
if (func_8030D284(400) == 0 && ++o->oEyerokBossUnk104 == 0) {
|
|
o->oEyerokBossUnk104 = 1;
|
|
}
|
|
} else {
|
|
o->oEyerokBossUnk104 -= 1;
|
|
}
|
|
|
|
if (o->oEyerokBossUnk104 != 0 && o->oEyerokBossUnk104 != 1) {
|
|
o->oEyerokBossUnkFC += 1;
|
|
if ((o->oEyerokBossActiveHand = o->oEyerokBossUnkFC & 0x1) == 0) {
|
|
o->oEyerokBossActiveHand = -1;
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
o->oEyerokBossUnkFC += 1;
|
|
|
|
if (func_8030D284(400)) {
|
|
o->oEyerokBossUnk104 = -8;
|
|
o->oEyerokBossUnk110 = 1.0f;
|
|
o->oEyerokBossUnk108 = 0.0f;
|
|
} else if (o->oEyerokBossNumHands == 2 && o->oEyerokBossUnkFC % 6 == 0) {
|
|
o->oEyerokBossUnk104 = 8;
|
|
o->oEyerokBossUnk110 = 0.0f;
|
|
|
|
if ((o->oEyerokBossUnkFC = RandomU16() & 0x1) != 0) {
|
|
o->oEyerokBossUnk108 = -1.0f;
|
|
} else {
|
|
o->oEyerokBossUnk108 = 1.0f;
|
|
}
|
|
|
|
o->oEyerokBossUnk10C = gMarioObject->oPosZ;
|
|
clamp_f32(&o->oEyerokBossUnk10C, o->oPosZ + 400.0f, o->oPosZ + 1600.0f);
|
|
} else if ((o->oEyerokBossActiveHand = o->oEyerokBossUnkFC & 0x1) == 0) {
|
|
o->oEyerokBossActiveHand = -1;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
static void eyerok_boss_act_die(void) {
|
|
if (o->oTimer == 60) {
|
|
if (obj_update_dialog_with_cutscene(2, 0, CUTSCENE_DIALOG, DIALOG_118)) {
|
|
create_star(0.0f, -900.0f, -3700.0f);
|
|
} else {
|
|
o->oTimer -= 1;
|
|
}
|
|
} else if (o->oTimer > 120) {
|
|
stop_background_music(SEQUENCE_ARGS(4, SEQ_EVENT_BOSS));
|
|
mark_object_for_deletion(o);
|
|
}
|
|
}
|
|
|
|
void bhv_eyerok_boss_loop(void) {
|
|
switch (o->oAction) {
|
|
case EYEROK_BOSS_ACT_SLEEP:
|
|
eyerok_boss_act_sleep();
|
|
break;
|
|
case EYEROK_BOSS_ACT_WAKE_UP:
|
|
eyerok_boss_act_wake_up();
|
|
break;
|
|
case EYEROK_BOSS_ACT_SHOW_INTRO_TEXT:
|
|
eyerok_boss_act_show_intro_text();
|
|
break;
|
|
case EYEROK_BOSS_ACT_FIGHT:
|
|
eyerok_boss_act_fight();
|
|
break;
|
|
case EYEROK_BOSS_ACT_DIE:
|
|
eyerok_boss_act_die();
|
|
break;
|
|
}
|
|
}
|
|
|
|
static s32 eyerok_hand_check_attacked(void) {
|
|
if (o->oEyerokReceivedAttack != 0 && abs_angle_diff(o->oAngleToMario, o->oFaceAngleYaw) < 0x3000) {
|
|
PlaySound2(SOUND_OBJ2_EYEROK_SOUND_SHORT);
|
|
|
|
if (--o->oHealth >= 2) {
|
|
o->oAction = EYEROK_HAND_ACT_ATTACKED;
|
|
o->oVelY = 30.0f;
|
|
} else {
|
|
o->parentObj->oEyerokBossNumHands -= 1;
|
|
o->oAction = EYEROK_HAND_ACT_DIE;
|
|
o->oVelY = 50.0f;
|
|
}
|
|
|
|
o->oForwardVel *= 0.2f;
|
|
o->oMoveAngleYaw = o->oFaceAngleYaw + 0x8000;
|
|
o->oMoveFlags = 0;
|
|
o->oGravity = -4.0f;
|
|
o->oAnimState = 3;
|
|
|
|
return TRUE;
|
|
} else {
|
|
return FALSE;
|
|
}
|
|
}
|
|
|
|
static void func_8030DBA8(void) {
|
|
PlaySound2(SOUND_OBJ_POUNDING_LOUD);
|
|
set_camera_shake_from_point(SHAKE_POS_SMALL, o->oPosX, o->oPosY, o->oPosZ);
|
|
func_802ADA94();
|
|
}
|
|
|
|
static void eyerok_hand_act_sleep(void) {
|
|
if (o->parentObj->oAction != EYEROK_BOSS_ACT_SLEEP
|
|
&& ++o->oEyerokHandWakeUpTimer > -3 * o->oBehParams2ndByte) {
|
|
if (func_8029F788()) {
|
|
o->parentObj->oEyerokBossNumHands += 1;
|
|
o->oAction = EYEROK_HAND_ACT_IDLE;
|
|
o->collisionData = segmented_to_virtual(&ssl_seg7_collision_07028274);
|
|
} else {
|
|
approach_f32_ptr(&o->oPosX, o->oHomeX, 15.0f);
|
|
o->oPosY = o->oHomeY
|
|
+ (200 * o->oBehParams2ndByte + 400)
|
|
* sins((s16)(absf(o->oPosX - o->oHomeX) / 724.0f * 0x8000));
|
|
obj_face_yaw_approach(o->oMoveAngleYaw, 400);
|
|
}
|
|
} else {
|
|
if (o->oBehParams2ndByte < 0) {
|
|
o->collisionData = segmented_to_virtual(&ssl_seg7_collision_070284B0);
|
|
} else {
|
|
o->collisionData = segmented_to_virtual(&ssl_seg7_collision_07028370);
|
|
}
|
|
|
|
func_8029F6F0();
|
|
o->oPosX = o->oHomeX + 724.0f * o->oBehParams2ndByte;
|
|
}
|
|
}
|
|
|
|
static void eyerok_hand_act_idle(void) {
|
|
set_obj_animation_and_sound_state(2);
|
|
|
|
if (o->parentObj->oAction == EYEROK_BOSS_ACT_FIGHT) {
|
|
if (o->parentObj->oEyerokBossUnk104 != 0) {
|
|
if (o->parentObj->oEyerokBossUnk104 != 1) {
|
|
o->oAction = EYEROK_HAND_ACT_BEGIN_DOUBLE_POUND;
|
|
o->oGravity = 0.0f;
|
|
}
|
|
} else if (o->parentObj->oEyerokBossUnk1AC == 0 && o->parentObj->oEyerokBossActiveHand != 0) {
|
|
if (o->parentObj->oEyerokBossActiveHand == o->oBehParams2ndByte) {
|
|
if (func_8030D284(400) != 0 || RandomU16() % 2 != 0) {
|
|
o->oAction = EYEROK_HAND_ACT_TARGET_MARIO;
|
|
o->oMoveAngleYaw = o->oAngleToMario;
|
|
o->oGravity = 0.0f;
|
|
} else {
|
|
o->oAction = EYEROK_HAND_ACT_FIST_PUSH;
|
|
if (o->parentObj->oPosX - gMarioObject->oPosX < 0.0f) {
|
|
o->oMoveAngleYaw = -0x800;
|
|
} else {
|
|
o->oMoveAngleYaw = 0x800;
|
|
}
|
|
|
|
o->oMoveAngleYaw += o->oAngleToMario;
|
|
o->oGravity = -4.0f;
|
|
}
|
|
} else {
|
|
o->oAction = EYEROK_HAND_ACT_OPEN;
|
|
}
|
|
}
|
|
} else {
|
|
o->oPosY = o->oHomeY + o->parentObj->oEyerokBossUnk110;
|
|
}
|
|
}
|
|
|
|
static void eyerok_hand_act_open(void) {
|
|
s16 sp1E;
|
|
|
|
o->parentObj->oEyerokBossUnk1AC = o->oBehParams2ndByte;
|
|
|
|
if (func_802F92B0(4)) {
|
|
o->oAction = EYEROK_HAND_ACT_SHOW_EYE;
|
|
o->oEyerokHandUnkFC = 2;
|
|
o->oEyerokHandUnk100 = 60;
|
|
|
|
o->collisionData = segmented_to_virtual(ssl_seg7_collision_070282F8);
|
|
|
|
if (o->parentObj->oEyerokBossNumHands != 2) {
|
|
sp1E = o->oAngleToMario;
|
|
clamp_s16(&sp1E, -0x3000, 0x3000);
|
|
o->oMoveAngleYaw = sp1E;
|
|
o->oForwardVel = 50.0f;
|
|
;
|
|
} else {
|
|
o->oMoveAngleYaw = 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
static void eyerok_hand_act_show_eye(void) {
|
|
UNUSED s16 val06;
|
|
|
|
set_obj_animation_and_sound_state(5);
|
|
func_802F9378(0, 0, SOUND_OBJ_EYEROK_SHOW_EYE);
|
|
|
|
if (!eyerok_hand_check_attacked()) {
|
|
if (o->parentObj->oEyerokBossActiveHand == 0) {
|
|
if (o->oAnimState < 3) {
|
|
o->oAnimState += 1;
|
|
} else if (func_8029F788()) {
|
|
val06 = (s16)(o->oAngleToMario - o->oFaceAngleYaw) * o->oBehParams2ndByte;
|
|
o->oAction = EYEROK_HAND_ACT_CLOSE;
|
|
}
|
|
} else {
|
|
if (o->oEyerokHandUnk100--) {
|
|
if (o->oEyerokHandUnkFC != 0) {
|
|
o->oEyerokHandUnkFC -= 1;
|
|
}
|
|
o->oAnimState = D_80331BA4[o->oEyerokHandUnkFC];
|
|
} else {
|
|
o->oEyerokHandUnkFC = 5;
|
|
o->oEyerokHandUnk100 = random_linear_offset(20, 50);
|
|
}
|
|
|
|
if (o->parentObj->oEyerokBossNumHands != 2) {
|
|
obj_face_yaw_approach(o->oMoveAngleYaw, 0x800);
|
|
if (o->oTimer > 10
|
|
&& (o->oPosZ - gMarioObject->oPosZ > 0.0f || (o->oMoveFlags & 0x00000400))) {
|
|
o->parentObj->oEyerokBossActiveHand = 0;
|
|
o->oForwardVel = 0.0f;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
static void eyerok_hand_act_close(void) {
|
|
if (func_802F92EC(7, 1)) {
|
|
o->collisionData = segmented_to_virtual(ssl_seg7_collision_07028274);
|
|
|
|
if (o->parentObj->oEyerokBossNumHands != 2) {
|
|
o->oAction = EYEROK_HAND_ACT_RETREAT;
|
|
o->parentObj->oEyerokBossActiveHand = o->oBehParams2ndByte;
|
|
} else if (o->parentObj->oEyerokBossActiveHand == 0) {
|
|
o->oAction = EYEROK_HAND_ACT_IDLE;
|
|
o->parentObj->oEyerokBossUnk1AC = 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
static void eyerok_hand_act_attacked(void) {
|
|
if (func_802F92B0(3)) {
|
|
o->oAction = EYEROK_HAND_ACT_RECOVER;
|
|
o->collisionData = segmented_to_virtual(ssl_seg7_collision_07028274);
|
|
}
|
|
|
|
if (o->oMoveFlags & 0x00000003) {
|
|
o->oForwardVel = 0.0f;
|
|
}
|
|
}
|
|
|
|
static void eyerok_hand_act_recover(void) {
|
|
if (func_802F92B0(0)) {
|
|
o->oAction = EYEROK_HAND_ACT_BECOME_ACTIVE;
|
|
}
|
|
}
|
|
|
|
static void eyerok_hand_act_become_active(void) {
|
|
if (o->parentObj->oEyerokBossActiveHand == 0 || o->parentObj->oEyerokBossNumHands != 2) {
|
|
o->oAction = EYEROK_HAND_ACT_RETREAT;
|
|
o->parentObj->oEyerokBossActiveHand = o->oBehParams2ndByte;
|
|
}
|
|
}
|
|
|
|
static void eyerok_hand_act_die(void) {
|
|
if (func_802F92B0(1)) {
|
|
o->parentObj->oEyerokBossUnk1AC = 0;
|
|
func_802A3C98(150.0f, 1);
|
|
create_sound_spawner(SOUND_OBJ2_EYEROK_SOUND_LONG);
|
|
}
|
|
|
|
if (o->oMoveFlags & 0x00000003) {
|
|
PlaySound2(SOUND_OBJ_POUNDING_LOUD);
|
|
o->oForwardVel = 0.0f;
|
|
}
|
|
}
|
|
|
|
static void eyerok_hand_act_retreat(void) {
|
|
f32 distToHome = obj_lateral_dist_to_home();
|
|
s16 angleToHome = obj_angle_to_home();
|
|
|
|
if ((distToHome -= 40.0f) < 0.0f) {
|
|
distToHome = 0.0f;
|
|
}
|
|
|
|
o->oPosX = o->oHomeX - distToHome * sins(angleToHome);
|
|
o->oPosZ = o->oHomeZ - distToHome * coss(angleToHome);
|
|
|
|
obj_face_yaw_approach(0, 400);
|
|
|
|
if (approach_f32_ptr(&o->oPosY, o->oHomeY, 20.0f) && distToHome == 0.0f && o->oFaceAngleYaw == 0) {
|
|
o->oAction = EYEROK_HAND_ACT_IDLE;
|
|
o->parentObj->oEyerokBossActiveHand -= o->oBehParams2ndByte;
|
|
|
|
if (o->parentObj->oEyerokBossUnk1AC == o->oBehParams2ndByte) {
|
|
o->parentObj->oEyerokBossUnk1AC = 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
static void eyerok_hand_act_target_mario(void) {
|
|
if (func_8030D284(400) != 0 || o->oPosZ - gMarioObject->oPosZ > 0.0f
|
|
|| o->oPosZ - o->parentObj->oPosZ > 1700.0f || absf(o->oPosX - o->parentObj->oPosX) > 900.0f
|
|
|| (o->oMoveFlags & 0x00000200)) {
|
|
o->oForwardVel = 0.0f;
|
|
if (approach_f32_ptr(&o->oPosY, o->oHomeY + 300.0f, 20.0f)) {
|
|
o->oAction = EYEROK_HAND_ACT_SMASH;
|
|
}
|
|
} else {
|
|
obj_forward_vel_approach(50.0f, 5.0f);
|
|
approach_f32_ptr(&o->oPosY, o->oHomeY + 300.0f, 20.0f);
|
|
obj_rotate_yaw_toward(o->oAngleToMario, 4000);
|
|
}
|
|
}
|
|
|
|
static void eyerok_hand_act_smash(void) {
|
|
s16 sp1E;
|
|
|
|
if (o->oTimer > 20) {
|
|
if (o->oMoveFlags & 0x00000003) {
|
|
if (o->oGravity < -4.0f) {
|
|
func_8030DBA8();
|
|
o->oGravity = -4.0f;
|
|
} else {
|
|
sp1E = abs_angle_diff(o->oFaceAngleYaw, o->oAngleToMario);
|
|
if (o->oDistanceToMario < 300.0f && sp1E > 0x2000 && sp1E < 0x6000) {
|
|
o->oAction = EYEROK_HAND_ACT_FIST_SWEEP;
|
|
if ((s16)(o->oFaceAngleYaw - o->oAngleToMario) < 0) {
|
|
o->oMoveAngleYaw = 0x4000;
|
|
} else {
|
|
o->oMoveAngleYaw = -0x4000;
|
|
}
|
|
} else {
|
|
o->oAction = EYEROK_HAND_ACT_RETREAT;
|
|
}
|
|
}
|
|
} else {
|
|
o->oGravity = -20.0f;
|
|
}
|
|
}
|
|
}
|
|
|
|
static void eyerok_hand_act_fist_push(void) {
|
|
if (o->oTimer > 5 && (o->oPosZ - gMarioObject->oPosZ > 0.0f || (o->oMoveFlags & 0x00000400))) {
|
|
o->oAction = EYEROK_HAND_ACT_FIST_SWEEP;
|
|
o->oForwardVel = 0.0f;
|
|
|
|
if (o->oPosX - gMarioObject->oPosX < 0.0f) {
|
|
o->oMoveAngleYaw = 0x4000;
|
|
} else {
|
|
o->oMoveAngleYaw = -0x4000;
|
|
}
|
|
} else {
|
|
o->oForwardVel = 50.0f;
|
|
}
|
|
}
|
|
|
|
static void eyerok_hand_act_fist_sweep(void) {
|
|
if (o->oPosZ - o->parentObj->oPosZ < 1000.0f || (o->oMoveFlags & 0x400)) {
|
|
o->oAction = EYEROK_HAND_ACT_RETREAT;
|
|
o->oForwardVel = 0.0f;
|
|
} else {
|
|
obj_forward_vel_approach(5.0f, 0.02f);
|
|
o->oForwardVel *= 1.08f;
|
|
o->oTimer = 0;
|
|
}
|
|
}
|
|
|
|
static void eyerok_hand_act_begin_double_pound(void) {
|
|
f32 sp4;
|
|
|
|
if (o->parentObj->oEyerokBossUnk104 < 0
|
|
|| o->parentObj->oEyerokBossActiveHand == o->oBehParams2ndByte) {
|
|
o->oAction = EYEROK_HAND_ACT_DOUBLE_POUND;
|
|
o->oMoveAngleYaw = (s32)(o->oFaceAngleYaw - 0x4000 * o->parentObj->oEyerokBossUnk108);
|
|
} else {
|
|
sp4 = o->parentObj->oPosX + 400.0f * o->parentObj->oEyerokBossUnk108
|
|
- 180.0f * o->oBehParams2ndByte;
|
|
|
|
o->oPosX = o->oHomeX + (sp4 - o->oHomeX) * o->parentObj->oEyerokBossUnk110;
|
|
o->oPosY = o->oHomeY + 300.0f * o->parentObj->oEyerokBossUnk110;
|
|
o->oPosZ =
|
|
o->oHomeZ + (o->parentObj->oEyerokBossUnk10C - o->oHomeZ) * o->parentObj->oEyerokBossUnk110;
|
|
}
|
|
}
|
|
|
|
static void eyerok_hand_act_double_pound(void) {
|
|
if (o->parentObj->oEyerokBossNumHands != 2) {
|
|
o->parentObj->oEyerokBossActiveHand = o->oBehParams2ndByte;
|
|
}
|
|
|
|
if (o->parentObj->oEyerokBossUnk104 == 1) {
|
|
o->oAction = EYEROK_HAND_ACT_RETREAT;
|
|
o->parentObj->oEyerokBossUnk1AC = o->oBehParams2ndByte;
|
|
} else if (o->parentObj->oEyerokBossActiveHand == o->oBehParams2ndByte) {
|
|
if (o->oMoveFlags & 0x00000003) {
|
|
if (o->oGravity < -15.0f) {
|
|
o->parentObj->oEyerokBossActiveHand = 0;
|
|
func_8030DBA8();
|
|
o->oForwardVel = 0.0f;
|
|
o->oGravity = -15.0f;
|
|
} else {
|
|
o->oForwardVel = 30.0f * absf(o->parentObj->oEyerokBossUnk108);
|
|
o->oVelY = 100.0f;
|
|
o->oMoveFlags = 0;
|
|
}
|
|
} else if (o->oVelY <= 0.0f) {
|
|
o->oGravity = -20.0f;
|
|
}
|
|
}
|
|
}
|
|
|
|
void bhv_eyerok_hand_loop(void) {
|
|
o->header.gfx.scale[0] = 1.5f;
|
|
|
|
if (o->oAction == EYEROK_HAND_ACT_SLEEP) {
|
|
eyerok_hand_act_sleep();
|
|
} else {
|
|
obj_update_floor_and_walls();
|
|
|
|
switch (o->oAction) {
|
|
case EYEROK_HAND_ACT_IDLE:
|
|
eyerok_hand_act_idle();
|
|
break;
|
|
case EYEROK_HAND_ACT_OPEN:
|
|
eyerok_hand_act_open();
|
|
break;
|
|
case EYEROK_HAND_ACT_SHOW_EYE:
|
|
eyerok_hand_act_show_eye();
|
|
break;
|
|
case EYEROK_HAND_ACT_CLOSE:
|
|
eyerok_hand_act_close();
|
|
break;
|
|
case EYEROK_HAND_ACT_RETREAT:
|
|
eyerok_hand_act_retreat();
|
|
break;
|
|
case EYEROK_HAND_ACT_TARGET_MARIO:
|
|
eyerok_hand_act_target_mario();
|
|
break;
|
|
case EYEROK_HAND_ACT_SMASH:
|
|
eyerok_hand_act_smash();
|
|
break;
|
|
case EYEROK_HAND_ACT_FIST_PUSH:
|
|
eyerok_hand_act_fist_push();
|
|
break;
|
|
case EYEROK_HAND_ACT_FIST_SWEEP:
|
|
eyerok_hand_act_fist_sweep();
|
|
break;
|
|
case EYEROK_HAND_ACT_BEGIN_DOUBLE_POUND:
|
|
eyerok_hand_act_begin_double_pound();
|
|
break;
|
|
case EYEROK_HAND_ACT_DOUBLE_POUND:
|
|
eyerok_hand_act_double_pound();
|
|
break;
|
|
case EYEROK_HAND_ACT_ATTACKED:
|
|
eyerok_hand_act_attacked();
|
|
break;
|
|
case EYEROK_HAND_ACT_RECOVER:
|
|
eyerok_hand_act_recover();
|
|
break;
|
|
case EYEROK_HAND_ACT_BECOME_ACTIVE:
|
|
eyerok_hand_act_become_active();
|
|
break;
|
|
case EYEROK_HAND_ACT_DIE:
|
|
eyerok_hand_act_die();
|
|
break;
|
|
}
|
|
|
|
o->oEyerokReceivedAttack = obj_check_attacks(&sEyerokHitbox, o->oAction);
|
|
obj_move_standard(-78);
|
|
}
|
|
|
|
load_object_collision_model();
|
|
o->header.gfx.scale[0] = 1.5f * o->oBehParams2ndByte;
|
|
}
|