// Token: 0x06000FD9 RID: 4057 RVA: 0x0008A5AC File Offset: 0x000887AC private static AppMain.OBS_OBJECT_WORK GmGmkRockChaseManagerInit(AppMain.GMS_EVE_RECORD_EVENT eve_rec, int pos_x, int pos_y, byte type) { AppMain.OBS_OBJECT_WORK obs_OBJECT_WORK = AppMain.GmGmkRockHookInit(eve_rec, pos_x, pos_y, type); AppMain.GMS_ENEMY_3D_WORK hook_work = (AppMain.GMS_ENEMY_3D_WORK)obs_OBJECT_WORK; AppMain.OBS_OBJECT_WORK work = AppMain.GmEventMgrLocalEventBirth(307, pos_x, pos_y, eve_rec.flag, eve_rec.left, eve_rec.top, eve_rec.width, eve_rec.height, 0); AppMain.GMS_GMK_ROCK_CHASE_WORK gms_GMK_ROCK_CHASE_WORK = (AppMain.GMS_GMK_ROCK_CHASE_WORK)work; gms_GMK_ROCK_CHASE_WORK.hook_work = hook_work; return(obs_OBJECT_WORK); }
// Token: 0x06000FDD RID: 4061 RVA: 0x0008A798 File Offset: 0x00088998 private static AppMain.OBS_OBJECT_WORK GmGmkRockChaseInit(AppMain.GMS_EVE_RECORD_EVENT eve_rec, int pos_x, int pos_y, byte type) { AppMain.GMS_GMK_ROCK_CHASE_WORK gms_GMK_ROCK_CHASE_WORK = (AppMain.GMS_GMK_ROCK_CHASE_WORK)AppMain.gmGmkRockLoadObj(eve_rec, pos_x, pos_y, type, () => new AppMain.GMS_GMK_ROCK_CHASE_WORK()); AppMain.OBS_OBJECT_WORK obj_work = gms_GMK_ROCK_CHASE_WORK.enemy_work.ene_com.obj_work; AppMain.gmGmkRockChaseInit(obj_work); AppMain.gmGmkRockChaseSetLength(gms_GMK_ROCK_CHASE_WORK, ( int )(eve_rec.left * 2) * 4096); AppMain.gmGmkRockChaseSetSpeed(gms_GMK_ROCK_CHASE_WORK, ( int )(eve_rec.top * 2) * 4096); return(obj_work); }
private static void gmGmkRockChaseTcbDest(AppMain.MTS_TASK_TCB tcb) { AppMain.GMS_GMK_ROCK_CHASE_WORK tcbWork = (AppMain.GMS_GMK_ROCK_CHASE_WORK)AppMain.mtTaskGetTcbWork(tcb); if (tcbWork.se_handle != null) { AppMain.GmSoundStopSE(tcbWork.se_handle); AppMain.GsSoundFreeSeHandle(tcbWork.se_handle); tcbWork.se_handle = (AppMain.GSS_SND_SE_HANDLE)null; } AppMain.GmEnemyDefaultExit(tcb); }
// Token: 0x06000FE6 RID: 4070 RVA: 0x0008AAC8 File Offset: 0x00088CC8 private static void gmGmkRockChaseTcbDest(MTS_TASK_TCB tcb) { AppMain.GMS_GMK_ROCK_CHASE_WORK gms_GMK_ROCK_CHASE_WORK = (AppMain.GMS_GMK_ROCK_CHASE_WORK)AppMain.mtTaskGetTcbWork(tcb); if (gms_GMK_ROCK_CHASE_WORK.se_handle != null) { GsSound.StopSE(gms_GMK_ROCK_CHASE_WORK.se_handle); GsSound.FreeSeHandle(gms_GMK_ROCK_CHASE_WORK.se_handle); gms_GMK_ROCK_CHASE_WORK.se_handle = null; } AppMain.GmEnemyDefaultExit(tcb); }
// Token: 0x06000FED RID: 4077 RVA: 0x0008AEB0 File Offset: 0x000890B0 private static void gmGmkRockChaseChangeModeEnd(OBS_OBJECT_WORK obj_work) { AppMain.GMS_GMK_ROCK_CHASE_WORK gms_GMK_ROCK_CHASE_WORK = (AppMain.GMS_GMK_ROCK_CHASE_WORK)obj_work; if (gms_GMK_ROCK_CHASE_WORK.flag_vib) { AppMain.GMM_PAD_VIB_STOP(); gms_GMK_ROCK_CHASE_WORK.flag_vib = false; } obj_work.flag &= 4294967279U; obj_work.move_flag |= 256U; obj_work.ppFunc = null; }
// Token: 0x06000FE7 RID: 4071 RVA: 0x0008AB0C File Offset: 0x00088D0C private static void gmGmkRockWaitDefFunc(AppMain.OBS_RECT_WORK own_rect, AppMain.OBS_RECT_WORK target_rect) { AppMain.OBS_OBJECT_WORK parent_obj = own_rect.parent_obj; AppMain.GMS_GMK_ROCK_CHASE_WORK gms_GMK_ROCK_CHASE_WORK = (AppMain.GMS_GMK_ROCK_CHASE_WORK)parent_obj; AppMain.OBS_OBJECT_WORK obj_work = (AppMain.OBS_OBJECT_WORK)gms_GMK_ROCK_CHASE_WORK.hook_work; AppMain.gmGmkRockHookkChangeModeActive(obj_work); gms_GMK_ROCK_CHASE_WORK.hook_work = null; AppMain.GMS_EFFECT_3DES_WORK gms_EFFECT_3DES_WORK = AppMain.GmEfctZoneEsCreate(parent_obj, 2, 32); gms_EFFECT_3DES_WORK.efct_com.obj_work.ppFunc = null; gms_EFFECT_3DES_WORK.efct_com.obj_work.pos.z = 131072; gms_EFFECT_3DES_WORK.efct_com.obj_work.parent_ofst.y = 204800; AppMain.gmGmkRockChaseChangeModeFall(parent_obj); }
private static AppMain.OBS_OBJECT_WORK GmGmkRockChaseInit( AppMain.GMS_EVE_RECORD_EVENT eve_rec, int pos_x, int pos_y, byte type) { AppMain.GMS_GMK_ROCK_CHASE_WORK rock_work = (AppMain.GMS_GMK_ROCK_CHASE_WORK)AppMain.gmGmkRockLoadObj(eve_rec, pos_x, pos_y, type, (AppMain.TaskWorkFactoryDelegate)(() => (object)new AppMain.GMS_GMK_ROCK_CHASE_WORK())); AppMain.OBS_OBJECT_WORK objWork = rock_work.enemy_work.ene_com.obj_work; AppMain.gmGmkRockChaseInit(objWork); AppMain.gmGmkRockChaseSetLength(rock_work, (int)eve_rec.left * 2 * 4096); AppMain.gmGmkRockChaseSetSpeed(rock_work, (int)eve_rec.top * 2 * 4096); return(objWork); }
private static void gmGmkRockChaseDrawFunc(AppMain.OBS_OBJECT_WORK obj_work) { AppMain.GMS_GMK_ROCK_CHASE_WORK rock_work = (AppMain.GMS_GMK_ROCK_CHASE_WORK)obj_work; AppMain.VecU16 vecU16 = new AppMain.VecU16(obj_work.dir); ushort angleZ = AppMain.gmGmkRockChaseGetAngleZ(rock_work); obj_work.dir.z = obj_work.spd_m >= 0 ? angleZ : angleZ; ushort userWork = (ushort)obj_work.user_work; obj_work.dir.x = userWork; obj_work.pos.y += rock_work.current_bound; AppMain.ObjDrawActionSummary(obj_work); AppMain.ObjDrawActionSummary(obj_work); obj_work.dir.Assign(vecU16); obj_work.pos.y -= rock_work.current_bound; }
private static void gmGmkRockChaseChangeModeChase(AppMain.OBS_OBJECT_WORK obj_work) { AppMain.GMS_GMK_ROCK_CHASE_WORK rock_work = (AppMain.GMS_GMK_ROCK_CHASE_WORK)obj_work; obj_work.spd_m = 0; obj_work.spd.x = 0; obj_work.spd.y = 0; AppMain.gmGmkRockChaseSetDirType(rock_work, 0U); obj_work.ppFunc = new AppMain.MPP_VOID_OBS_OBJECT_WORK(AppMain.gmGmkRockChaseMainChase); if (rock_work.effect_work == null) { AppMain.GMS_EFFECT_3DES_WORK gmsEffect3DesWork = AppMain.GmEfctZoneEsCreate(obj_work, 2, 24); gmsEffect3DesWork.efct_com.obj_work.ppFunc = (AppMain.MPP_VOID_OBS_OBJECT_WORK)null; gmsEffect3DesWork.efct_com.obj_work.pos.z = 131072; gmsEffect3DesWork.efct_com.obj_work.parent_ofst.y = 204800; rock_work.effect_work = gmsEffect3DesWork; } AppMain.GmSoundPlaySE("BigRock2", rock_work.se_handle); }
// Token: 0x06000FEC RID: 4076 RVA: 0x0008ADF4 File Offset: 0x00088FF4 private static void gmGmkRockChaseChangeModeChase(OBS_OBJECT_WORK obj_work) { AppMain.GMS_GMK_ROCK_CHASE_WORK gms_GMK_ROCK_CHASE_WORK = (AppMain.GMS_GMK_ROCK_CHASE_WORK)obj_work; obj_work.spd_m = 0; obj_work.spd.x = 0; obj_work.spd.y = 0; AppMain.gmGmkRockChaseSetDirType(gms_GMK_ROCK_CHASE_WORK, 0U); obj_work.ppFunc = AppMain.gmGmkRockChaseMainChase; if (gms_GMK_ROCK_CHASE_WORK.effect_work == null) { AppMain.GMS_EFFECT_3DES_WORK gms_EFFECT_3DES_WORK = AppMain.GmEfctZoneEsCreate(obj_work, 2, 24); gms_EFFECT_3DES_WORK.efct_com.obj_work.ppFunc = null; gms_EFFECT_3DES_WORK.efct_com.obj_work.pos.z = 131072; gms_EFFECT_3DES_WORK.efct_com.obj_work.parent_ofst.y = 204800; gms_GMK_ROCK_CHASE_WORK.effect_work = gms_EFFECT_3DES_WORK; } GmSound.PlaySE("BigRock2", gms_GMK_ROCK_CHASE_WORK.se_handle); }
// Token: 0x06000FEA RID: 4074 RVA: 0x0008AC68 File Offset: 0x00088E68 private static void gmGmkRockChaseInit(OBS_OBJECT_WORK obj_work) { AppMain.GMS_ENEMY_3D_WORK gms_ENEMY_3D_WORK = (AppMain.GMS_ENEMY_3D_WORK)obj_work; AppMain.gmGmkRockSetRectWait(gms_ENEMY_3D_WORK); AppMain.ObjObjectFieldRectSet(obj_work, -28, -28, 28, 42); obj_work.disp_flag |= 4194304U; gms_ENEMY_3D_WORK.ene_com.target_obj = AppMain.g_gm_main_system.ply_work[( int )(( UIntPtr )0)].obj_work; obj_work.pos.z = -131072; AppMain.GMS_GMK_ROCK_CHASE_WORK gms_GMK_ROCK_CHASE_WORK = (AppMain.GMS_GMK_ROCK_CHASE_WORK)obj_work; ushort angle_z = AppMain.mtMathRand(); AppMain.gmGmkRockChaseSetAngleZ(gms_GMK_ROCK_CHASE_WORK, angle_z); obj_work.user_work = ( uint )AppMain.mtMathRand(); gms_GMK_ROCK_CHASE_WORK.se_handle = GsSound.AllocSeHandle(); obj_work.ppFunc = null; obj_work.ppMove = AppMain.gmGmkRockMoveFunc; obj_work.ppOut = AppMain.gmGmkRockChaseDrawFunc; AppMain.mtTaskChangeTcbDestructor(obj_work.tcb, AppMain.gmGmkRockChaseTcbDest); }
private static void gmGmkRockChaseInit(AppMain.OBS_OBJECT_WORK obj_work) { AppMain.GMS_ENEMY_3D_WORK gimmick_work = (AppMain.GMS_ENEMY_3D_WORK)obj_work; AppMain.gmGmkRockSetRectWait(gimmick_work); AppMain.ObjObjectFieldRectSet(obj_work, (short)-28, (short)-28, (short)28, (short)42); obj_work.disp_flag |= 4194304U; gimmick_work.ene_com.target_obj = AppMain.g_gm_main_system.ply_work[0].obj_work; obj_work.pos.z = -131072; AppMain.GMS_GMK_ROCK_CHASE_WORK rock_work = (AppMain.GMS_GMK_ROCK_CHASE_WORK)obj_work; ushort angle_z = AppMain.mtMathRand(); AppMain.gmGmkRockChaseSetAngleZ(rock_work, angle_z); obj_work.user_work = (uint)AppMain.mtMathRand(); rock_work.se_handle = AppMain.GsSoundAllocSeHandle(); obj_work.ppFunc = (AppMain.MPP_VOID_OBS_OBJECT_WORK)null; obj_work.ppMove = new AppMain.MPP_VOID_OBS_OBJECT_WORK(AppMain.gmGmkRockMoveFunc); obj_work.ppOut = new AppMain.MPP_VOID_OBS_OBJECT_WORK(AppMain.gmGmkRockChaseDrawFunc); AppMain.mtTaskChangeTcbDestructor(obj_work.tcb, new AppMain.GSF_TASK_PROCEDURE(AppMain.gmGmkRockChaseTcbDest)); }
private static void gmGmkRockChaseChangeModeFall(AppMain.OBS_OBJECT_WORK obj_work) { AppMain.GMS_GMK_ROCK_CHASE_WORK gmkRockChaseWork = (AppMain.GMS_GMK_ROCK_CHASE_WORK)obj_work; AppMain.gmGmkRockSetRectActive((AppMain.GMS_ENEMY_3D_WORK)obj_work); obj_work.spd_m = 0; obj_work.spd.x = 0; obj_work.spd.y = 0; obj_work.dir.z = (ushort)0; obj_work.flag |= 16U; obj_work.move_flag |= 192U; obj_work.move_flag &= 4294443007U; if (gmkRockChaseWork.se_handle != null) { AppMain.GmSoundStopSE(gmkRockChaseWork.se_handle); } if (gmkRockChaseWork.flag_vib) { AppMain.GMM_PAD_VIB_STOP(); gmkRockChaseWork.flag_vib = false; } obj_work.ppFunc = new AppMain.MPP_VOID_OBS_OBJECT_WORK(AppMain.gmGmkRockChaseMainFall); }
// Token: 0x06000FE5 RID: 4069 RVA: 0x0008AA20 File Offset: 0x00088C20 private static void gmGmkRockChaseDrawFunc(OBS_OBJECT_WORK obj_work) { AppMain.GMS_GMK_ROCK_CHASE_WORK gms_GMK_ROCK_CHASE_WORK = (AppMain.GMS_GMK_ROCK_CHASE_WORK)obj_work; AppMain.VecU16 vecU = new AppMain.VecU16(obj_work.dir); ushort z = AppMain.gmGmkRockChaseGetAngleZ(gms_GMK_ROCK_CHASE_WORK); if (obj_work.spd_m < 0) { obj_work.dir.z = z; } else { obj_work.dir.z = z; } ushort x = (ushort)obj_work.user_work; obj_work.dir.x = x; obj_work.pos.y = obj_work.pos.y + gms_GMK_ROCK_CHASE_WORK.current_bound; AppMain.ObjDrawActionSummary(obj_work); AppMain.ObjDrawActionSummary(obj_work); obj_work.dir.Assign(vecU); obj_work.pos.y = obj_work.pos.y - gms_GMK_ROCK_CHASE_WORK.current_bound; }
// Token: 0x06000FEB RID: 4075 RVA: 0x0008AD3C File Offset: 0x00088F3C private static void gmGmkRockChaseChangeModeFall(OBS_OBJECT_WORK obj_work) { AppMain.GMS_GMK_ROCK_CHASE_WORK gms_GMK_ROCK_CHASE_WORK = (AppMain.GMS_GMK_ROCK_CHASE_WORK)obj_work; AppMain.GMS_ENEMY_3D_WORK gimmick_work = (AppMain.GMS_ENEMY_3D_WORK)obj_work; AppMain.gmGmkRockSetRectActive(gimmick_work); obj_work.spd_m = 0; obj_work.spd.x = 0; obj_work.spd.y = 0; obj_work.dir.z = 0; obj_work.flag |= 16U; obj_work.move_flag |= 192U; obj_work.move_flag &= 4294443007U; if (gms_GMK_ROCK_CHASE_WORK.se_handle != null) { GsSound.StopSE(gms_GMK_ROCK_CHASE_WORK.se_handle); } if (gms_GMK_ROCK_CHASE_WORK.flag_vib) { AppMain.GMM_PAD_VIB_STOP(); gms_GMK_ROCK_CHASE_WORK.flag_vib = false; } obj_work.ppFunc = AppMain.gmGmkRockChaseMainFall; }
// Token: 0x06001002 RID: 4098 RVA: 0x0008B741 File Offset: 0x00089941 private static void gmGmkRockChaseSetDirType(AppMain.GMS_GMK_ROCK_CHASE_WORK rock_work, uint type) { rock_work.dir_type = type; }
// Token: 0x06001003 RID: 4099 RVA: 0x0008B74A File Offset: 0x0008994A private static uint gmGmkRockChaseGetDirType(AppMain.GMS_GMK_ROCK_CHASE_WORK rock_work) { return(rock_work.dir_type); }
// Token: 0x06001000 RID: 4096 RVA: 0x0008B728 File Offset: 0x00089928 private static void gmGmkRockChaseAddAngleZ(AppMain.GMS_GMK_ROCK_CHASE_WORK rock_work, short angle_z) { rock_work.angle_z += ( ushort )angle_z; }
// Token: 0x06001001 RID: 4097 RVA: 0x0008B739 File Offset: 0x00089939 private static ushort gmGmkRockChaseGetAngleZ(AppMain.GMS_GMK_ROCK_CHASE_WORK rock_work) { return(rock_work.angle_z); }
// Token: 0x06000FFE RID: 4094 RVA: 0x0008B717 File Offset: 0x00089917 private static int gmGmkRockChaseGetSpeed(AppMain.GMS_GMK_ROCK_CHASE_WORK rock_work) { return(rock_work.speed); }
// Token: 0x06000FFF RID: 4095 RVA: 0x0008B71F File Offset: 0x0008991F private static void gmGmkRockChaseSetAngleZ(AppMain.GMS_GMK_ROCK_CHASE_WORK rock_work, ushort angle_z) { rock_work.angle_z = angle_z; }
// Token: 0x06000FFD RID: 4093 RVA: 0x0008B70E File Offset: 0x0008990E private static void gmGmkRockChaseSetSpeed(AppMain.GMS_GMK_ROCK_CHASE_WORK rock_work, int speed) { rock_work.speed = speed; }
// Token: 0x06000FFC RID: 4092 RVA: 0x0008B706 File Offset: 0x00089906 private static int gmGmkRockChaseGetLength(AppMain.GMS_GMK_ROCK_CHASE_WORK rock_work) { return(rock_work.length); }
// Token: 0x06000FFB RID: 4091 RVA: 0x0008B6FD File Offset: 0x000898FD private static void gmGmkRockChaseSetLength(AppMain.GMS_GMK_ROCK_CHASE_WORK rock_work, int length) { rock_work.length = length; }
// Token: 0x06000FEF RID: 4079 RVA: 0x0008AF6C File Offset: 0x0008916C private static void gmGmkRockChaseMainChase(OBS_OBJECT_WORK obj_work) { AppMain.GMS_GMK_ROCK_CHASE_WORK gms_GMK_ROCK_CHASE_WORK = (AppMain.GMS_GMK_ROCK_CHASE_WORK)obj_work; AppMain.GMS_ENEMY_3D_WORK gms_ENEMY_3D_WORK = (AppMain.GMS_ENEMY_3D_WORK)obj_work; OBS_OBJECT_WORK target_obj = gms_ENEMY_3D_WORK.ene_com.target_obj; int num = target_obj.pos.x - obj_work.pos.x; uint num2 = AppMain.gmGmkRockChaseGetDirType(gms_GMK_ROCK_CHASE_WORK); if (num2 == 0U) { if (( int )obj_work.dir.z <= AppMain.NNM_DEGtoA16(180f)) { num2 = 1U; } else { num2 = 2U; } AppMain.gmGmkRockChaseSetDirType(gms_GMK_ROCK_CHASE_WORK, num2); } int num3; int num4; if ((num2 == 1U && num < 0) || (num2 == 2U && num >= 0)) { num3 = 768; num4 = 32768; if (gms_GMK_ROCK_CHASE_WORK.flag_vib) { AppMain.GMM_PAD_VIB_STOP(); gms_GMK_ROCK_CHASE_WORK.flag_vib = false; } } else { int num5 = AppMain.MTM_MATH_ABS(target_obj.spd_m); if (num5 < AppMain.gmGmkRockChaseGetSpeed(gms_GMK_ROCK_CHASE_WORK)) { num3 = 512; num4 = 65536; } else { int num6 = AppMain.MTM_MATH_ABS(num); int num7 = AppMain.gmGmkRockChaseGetLength(gms_GMK_ROCK_CHASE_WORK); int num8 = AppMain.FX_Mul(num7, 8192); if (num8 < 1228800) { num8 = 1228800; } if (num6 > num8) { num3 = 3840; num4 = ( int )(( long )num5 + 32768L); if (gms_GMK_ROCK_CHASE_WORK.flag_vib) { AppMain.GMM_PAD_VIB_STOP(); gms_GMK_ROCK_CHASE_WORK.flag_vib = false; } } else if (num6 > num7) { num3 = 768; num4 = ( int )(( long )num5 + 10240L); if (!gms_GMK_ROCK_CHASE_WORK.flag_vib) { AppMain.GMM_PAD_VIB_MID_NOEND(); gms_GMK_ROCK_CHASE_WORK.flag_vib = true; } } else { num3 = -768; num4 = ( int )(( long )num5 + -6144L); if (!gms_GMK_ROCK_CHASE_WORK.flag_vib) { AppMain.GMM_PAD_VIB_MID_NOEND(); gms_GMK_ROCK_CHASE_WORK.flag_vib = true; } } } } if (num2 == 1U) { obj_work.spd_m += num3; AppMain.gmGmkRockChaseAddAngleZ(gms_GMK_ROCK_CHASE_WORK, 1000); if (obj_work.spd_m > num4) { obj_work.spd_m = num4; } } else { num3 = -num3; num4 = -num4; obj_work.spd_m += num3; AppMain.gmGmkRockChaseAddAngleZ(gms_GMK_ROCK_CHASE_WORK, -1000); if (obj_work.spd_m < num4) { obj_work.spd_m = num4; } } if ((obj_work.move_flag & 1U) == 0U) { AppMain.gmGmkRockChaseChangeModeFall(obj_work); return; } if (gms_GMK_ROCK_CHASE_WORK.current_bound >= 0) { gms_GMK_ROCK_CHASE_WORK.current_bound = 0; if (AppMain.mtMathRand() % 10 == 0) { int num9 = (int)(32 + AppMain.mtMathRand() % 16); gms_GMK_ROCK_CHASE_WORK.target_bound = -num9 * 4096; gms_GMK_ROCK_CHASE_WORK.current_bound -= 8192; if (gms_GMK_ROCK_CHASE_WORK.se_handle != null) { GsSound.StopSE(gms_GMK_ROCK_CHASE_WORK.se_handle); return; } } } else if (gms_GMK_ROCK_CHASE_WORK.target_bound > gms_GMK_ROCK_CHASE_WORK.current_bound) { gms_GMK_ROCK_CHASE_WORK.target_bound = 0; gms_GMK_ROCK_CHASE_WORK.current_bound += 8192; if (gms_GMK_ROCK_CHASE_WORK.current_bound >= 0) { GmSound.PlaySE("BigRock1"); GmSound.PlaySE("BigRock2", gms_GMK_ROCK_CHASE_WORK.se_handle); GmCamera.VibrationSet(0, 12288, 0); return; } } else { gms_GMK_ROCK_CHASE_WORK.current_bound -= 8192; } }
private static void gmGmkRockChaseMainChase(AppMain.OBS_OBJECT_WORK obj_work) { AppMain.GMS_GMK_ROCK_CHASE_WORK rock_work = (AppMain.GMS_GMK_ROCK_CHASE_WORK)obj_work; AppMain.OBS_OBJECT_WORK targetObj = ((AppMain.GMS_ENEMY_3D_WORK)obj_work).ene_com.target_obj; int a = targetObj.pos.x - obj_work.pos.x; uint type = AppMain.gmGmkRockChaseGetDirType(rock_work); if (type == 0U) { type = (int)obj_work.dir.z > AppMain.NNM_DEGtoA16(180f) ? 2U : 1U; AppMain.gmGmkRockChaseSetDirType(rock_work, type); } int num1; int num2; if (type == 1U && a < 0 || type == 2U && a >= 0) { num1 = 768; num2 = 32768; if (rock_work.flag_vib) { AppMain.GMM_PAD_VIB_STOP(); rock_work.flag_vib = false; } } else { int num3 = AppMain.MTM_MATH_ABS(targetObj.spd_m); if (num3 < AppMain.gmGmkRockChaseGetSpeed(rock_work)) { num1 = 512; num2 = 65536; } else { int num4 = AppMain.MTM_MATH_ABS(a); int length = AppMain.gmGmkRockChaseGetLength(rock_work); int num5 = AppMain.FX_Mul(length, 8192); if (num5 < 1228800) { num5 = 1228800; } if (num4 > num5) { num1 = 3840; num2 = (int)((long)num3 + 32768L); if (rock_work.flag_vib) { AppMain.GMM_PAD_VIB_STOP(); rock_work.flag_vib = false; } } else if (num4 > length) { num1 = 768; num2 = (int)((long)num3 + 10240L); if (!rock_work.flag_vib) { AppMain.GMM_PAD_VIB_MID_NOEND(); rock_work.flag_vib = true; } } else { num1 = -768; num2 = (int)((long)num3 + -6144L); if (!rock_work.flag_vib) { AppMain.GMM_PAD_VIB_MID_NOEND(); rock_work.flag_vib = true; } } } } if (type == 1U) { obj_work.spd_m += num1; AppMain.gmGmkRockChaseAddAngleZ(rock_work, (short)1000); if (obj_work.spd_m > num2) { obj_work.spd_m = num2; } } else { int num3 = -num1; int num4 = -num2; obj_work.spd_m += num3; AppMain.gmGmkRockChaseAddAngleZ(rock_work, (short)-1000); if (obj_work.spd_m < num4) { obj_work.spd_m = num4; } } if (((int)obj_work.move_flag & 1) == 0) { AppMain.gmGmkRockChaseChangeModeFall(obj_work); } else if (rock_work.current_bound >= 0) { rock_work.current_bound = 0; if ((int)AppMain.mtMathRand() % 10 != 0) { return; } int num3 = 32 + (int)AppMain.mtMathRand() % 16; rock_work.target_bound = -num3 * 4096; rock_work.current_bound -= 8192; if (rock_work.se_handle == null) { return; } AppMain.GmSoundStopSE(rock_work.se_handle); } else if (rock_work.target_bound > rock_work.current_bound) { rock_work.target_bound = 0; rock_work.current_bound += 8192; if (rock_work.current_bound < 0) { return; } AppMain.GmSoundPlaySE("BigRock1"); AppMain.GmSoundPlaySE("BigRock2", rock_work.se_handle); AppMain.GmCameraVibrationSet(0, 12288, 0); } else { rock_work.current_bound -= 8192; } }