private static void gmGmkRockRideDrawFunc(AppMain.OBS_OBJECT_WORK obj_work) { AppMain.VecU16 vecU16 = new AppMain.VecU16(obj_work.dir); ushort userTimerAngleZ = AppMain.gmGmkRockRideGetUserTimerAngleZ(obj_work); obj_work.dir.z = obj_work.spd_m >= 0 ? userTimerAngleZ : userTimerAngleZ; ushort userWork = (ushort)obj_work.user_work; obj_work.dir.x = userWork; AppMain.ObjDrawActionSummary(obj_work); obj_work.dir.Assign(vecU16); }
private static void gmRingDrawFuncRing3D(AppMain.GMS_RING_WORK ring_work) { AppMain.VecU16 vecU16 = new AppMain.VecU16(); vecU16.x = (ushort)0; vecU16.y = AppMain.gm_ring_sys_work.dir; AppMain.OBS_CAMERA obsCamera = AppMain.ObjCameraGet(AppMain.g_obj.glb_camera_id); vecU16.z = (ushort)-obsCamera.roll; int drawRingCount = (int)AppMain.gm_ring_sys_work.draw_ring_count; AppMain.gm_ring_sys_work.draw_ring_pos[drawRingCount].x = ring_work.pos.x; AppMain.gm_ring_sys_work.draw_ring_pos[drawRingCount].y = ring_work.pos.y; AppMain.gm_ring_sys_work.draw_ring_pos[drawRingCount].z = ring_work.pos.z; ++AppMain.gm_ring_sys_work.draw_ring_count; }
private static void gmGmkRockFallDrawFunc(AppMain.OBS_OBJECT_WORK obj_work) { AppMain.VecU16 vecU16 = new AppMain.VecU16(obj_work.dir); ushort roll = ((AppMain.GMS_GMK_ROCK_FALL_WORK)obj_work).roll; obj_work.dir.y = roll; ushort userWork = (ushort)obj_work.user_work; obj_work.dir.z = userWork; obj_work.dir.z += roll; AppMain.ObjDrawActionSummary(obj_work); AppMain.ObjDrawActionSummary(obj_work); obj_work.dir.Assign(vecU16); }
// Token: 0x06000FE4 RID: 4068 RVA: 0x0008A9AC File Offset: 0x00088BAC private static void gmGmkRockFallDrawFunc(OBS_OBJECT_WORK obj_work) { AppMain.VecU16 vecU = new AppMain.VecU16(obj_work.dir); AppMain.GMS_GMK_ROCK_FALL_WORK gms_GMK_ROCK_FALL_WORK = (AppMain.GMS_GMK_ROCK_FALL_WORK)obj_work; ushort roll = gms_GMK_ROCK_FALL_WORK.roll; obj_work.dir.y = roll; ushort z = (ushort)obj_work.user_work; obj_work.dir.z = z; obj_work.dir.z = ( ushort )(obj_work.dir.z + roll); AppMain.ObjDrawActionSummary(obj_work); AppMain.ObjDrawActionSummary(obj_work); obj_work.dir.Assign(vecU); }
// Token: 0x06000DA2 RID: 3490 RVA: 0x000783E0 File Offset: 0x000765E0 private static void gmRingDrawFuncRing3D(AppMain.GMS_RING_WORK ring_work) { AppMain.VecU16 vecU = default(AppMain.VecU16); vecU.x = 0; vecU.y = AppMain.gm_ring_sys_work.dir; AppMain.OBS_CAMERA obs_CAMERA = AppMain.ObjCameraGet(AppMain.g_obj.glb_camera_id); vecU.z = ( ushort )(-( ushort )obs_CAMERA.roll); int draw_ring_count = (int)AppMain.gm_ring_sys_work.draw_ring_count; AppMain.gm_ring_sys_work.draw_ring_pos[draw_ring_count].x = ring_work.pos.x; AppMain.gm_ring_sys_work.draw_ring_pos[draw_ring_count].y = ring_work.pos.y; AppMain.gm_ring_sys_work.draw_ring_pos[draw_ring_count].z = ring_work.pos.z; AppMain.GMS_RING_SYS_WORK gms_RING_SYS_WORK = AppMain.gm_ring_sys_work; gms_RING_SYS_WORK.draw_ring_count += 1; }
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; }
// Token: 0x06000675 RID: 1653 RVA: 0x00039C60 File Offset: 0x00037E60 public static void gmGmkTruckDispFunc(OBS_OBJECT_WORK obj_work) { AppMain.GMS_GMK_TRUCK_WORK gms_GMK_TRUCK_WORK = (AppMain.GMS_GMK_TRUCK_WORK)obj_work; AppMain.ObjDrawActionSummary(obj_work); AppMain.VecU16 dir = obj_work.dir; uint num = obj_work.disp_flag | 16777216U; AppMain.nnMakeRotateXYZMatrix(gms_GMK_TRUCK_WORK.obj_3d_tire.user_obj_mtx_r, ( int )gms_GMK_TRUCK_WORK.tire_dir, ( int )gms_GMK_TRUCK_WORK.slope_f_y_dir, ( int )gms_GMK_TRUCK_WORK.slope_f_z_dir); AppMain.VecFx32 vecFx; vecFx.x = AppMain.FXM_FLOAT_TO_FX32(gms_GMK_TRUCK_WORK.tire_pos_f.M03); vecFx.y = AppMain.FXM_FLOAT_TO_FX32(-gms_GMK_TRUCK_WORK.tire_pos_f.M13); vecFx.z = AppMain.FXM_FLOAT_TO_FX32(gms_GMK_TRUCK_WORK.tire_pos_f.M23); AppMain.ObjDrawAction3DNN(gms_GMK_TRUCK_WORK.obj_3d_tire, new AppMain.VecFx32?(vecFx), new AppMain.VecU16?(dir), obj_work.scale, ref num); vecFx.x = AppMain.FXM_FLOAT_TO_FX32(gms_GMK_TRUCK_WORK.tire_pos_b.M03); vecFx.y = AppMain.FXM_FLOAT_TO_FX32(-gms_GMK_TRUCK_WORK.tire_pos_b.M13); vecFx.z = AppMain.FXM_FLOAT_TO_FX32(gms_GMK_TRUCK_WORK.tire_pos_b.M23); AppMain.ObjDrawAction3DNN(gms_GMK_TRUCK_WORK.obj_3d_tire, new AppMain.VecFx32?(vecFx), new AppMain.VecU16?(dir), obj_work.scale, ref num); }
// Token: 0x060008AD RID: 2221 RVA: 0x0004E70C File Offset: 0x0004C90C private static void gmGmkRockRideDrawFunc(AppMain.OBS_OBJECT_WORK obj_work) { AppMain.VecU16 vecU = new AppMain.VecU16(obj_work.dir); ushort z = AppMain.gmGmkRockRideGetUserTimerAngleZ(obj_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; AppMain.ObjDrawActionSummary(obj_work); obj_work.dir.Assign(vecU); }
// 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; }
private static void gmRingDrawEnd() { if (AppMain.gm_ring_sys_work.draw_ring_count <= (ushort)0 || !AppMain.GmMainIsDrawEnable()) { return; } AppMain.VecU16 vecU16 = new AppMain.VecU16(); vecU16.x = (ushort)0; vecU16.y = AppMain.gm_ring_sys_work.dir; vecU16.z = AppMain.GmMainGetObjectRotation(); AppMain.GMS_RING_SYS_WORK gmRingSysWork = AppMain.gm_ring_sys_work; uint drawRingCount = (uint)AppMain.gm_ring_sys_work.draw_ring_count; AppMain.SNNS_VECTOR disp_pos; AppMain.ObjCameraDispPosGet(0, out disp_pos); float s1; float c1; AppMain.nnSinCos((int)vecU16.z - 8192, out s1, out c1); s1 *= 13.57638f; float num1 = c1 * 13.57638f; float s2; float c2; AppMain.nnSinCos((int)vecU16.z - 24576, out s2, out c2); float num2 = s2 * 13.57638f; float num3 = c2 * 13.57638f; AppMain.VecFx32 vecFx32 = new AppMain.VecFx32(gmRingSysWork.draw_ring_pos[0]); AppMain.SNNS_MATRIX snnsMatrix = new AppMain.SNNS_MATRIX(); AppMain.nnMakeUnitMatrix(ref snnsMatrix); AppMain.nnTranslateMatrix(ref snnsMatrix, ref snnsMatrix, AppMain.FX_FX32_TO_F32(vecFx32.x), -AppMain.FX_FX32_TO_F32(vecFx32.y), AppMain.FX_FX32_TO_F32(vecFx32.z)); AppMain._AMS_PARAM_DRAW_PRIMITIVE.type = 1; AppMain._AMS_PARAM_DRAW_PRIMITIVE.count = 6 * (int)drawRingCount - 2; AppMain._AMS_PARAM_DRAW_PRIMITIVE.ablend = 0; AppMain._AMS_PARAM_DRAW_PRIMITIVE.bldSrc = 768; AppMain._AMS_PARAM_DRAW_PRIMITIVE.bldDst = 774; AppMain._AMS_PARAM_DRAW_PRIMITIVE.bldMode = 32774; AppMain._AMS_PARAM_DRAW_PRIMITIVE.aTest = (short)1; AppMain._AMS_PARAM_DRAW_PRIMITIVE.zMask = (short)0; AppMain._AMS_PARAM_DRAW_PRIMITIVE.zTest = (short)1; AppMain._AMS_PARAM_DRAW_PRIMITIVE.noSort = (short)1; AppMain._AMS_PARAM_DRAW_PRIMITIVE.texlist = AppMain.gm_ring_obj_3d.texlist; AppMain._AMS_PARAM_DRAW_PRIMITIVE.texId = 0; AppMain._AMS_PARAM_DRAW_PRIMITIVE.uwrap = 1; AppMain._AMS_PARAM_DRAW_PRIMITIVE.vwrap = 1; uint color = AppMain.gm_ring_sys_work.color; AppMain._AMS_PARAM_DRAW_PRIMITIVE.vtxPCT3D = AppMain.amDrawAlloc_NNS_PRIM3D_PCT(AppMain._AMS_PARAM_DRAW_PRIMITIVE.count); AppMain.NNS_PRIM3D_PCT[] buffer = AppMain._AMS_PARAM_DRAW_PRIMITIVE.vtxPCT3D.buffer; int offset = AppMain._AMS_PARAM_DRAW_PRIMITIVE.vtxPCT3D.offset; AppMain._AMS_PARAM_DRAW_PRIMITIVE.format3D = 4; for (int index1 = 0; (long)index1 < (long)drawRingCount; ++index1) { int index2 = offset + 6 * index1; ushort num4 = (ushort)((uint)AppMain.gm_ring_sys_work.draw_ring_uv_frame / 4U); buffer[index2].Tex.u = buffer[index2 + 1].Tex.u = AppMain.gm_ring_roll_uv[0][(int)num4]; buffer[index2 + 2].Tex.u = buffer[index2 + 3].Tex.u = AppMain.gm_ring_roll_uv[0][(int)num4] + 0.25f; buffer[index2].Tex.v = buffer[index2 + 2].Tex.v = AppMain.gm_ring_roll_uv[1][(int)num4]; buffer[index2 + 1].Tex.v = buffer[index2 + 3].Tex.v = AppMain.gm_ring_roll_uv[1][(int)num4] + 0.25f; buffer[index2].Col = color; buffer[index2 + 1].Col = buffer[index2 + 2].Col = buffer[index2 + 3].Col = buffer[index2].Col; buffer[index2].Pos.x = s1 + AppMain.FX_FX32_TO_F32(gmRingSysWork.draw_ring_pos[index1].x - vecFx32.x); buffer[index2 + 1].Pos.x = num2 + AppMain.FX_FX32_TO_F32(gmRingSysWork.draw_ring_pos[index1].x - vecFx32.x); buffer[index2 + 2].Pos.x = -num2 + AppMain.FX_FX32_TO_F32(gmRingSysWork.draw_ring_pos[index1].x - vecFx32.x); buffer[index2 + 3].Pos.x = -s1 + AppMain.FX_FX32_TO_F32(gmRingSysWork.draw_ring_pos[index1].x - vecFx32.x); buffer[index2].Pos.y = num1 - AppMain.FX_FX32_TO_F32(gmRingSysWork.draw_ring_pos[index1].y - vecFx32.y); buffer[index2 + 1].Pos.y = num3 - AppMain.FX_FX32_TO_F32(gmRingSysWork.draw_ring_pos[index1].y - vecFx32.y); buffer[index2 + 2].Pos.y = -num3 - AppMain.FX_FX32_TO_F32(gmRingSysWork.draw_ring_pos[index1].y - vecFx32.y); buffer[index2 + 3].Pos.y = -num1 - AppMain.FX_FX32_TO_F32(gmRingSysWork.draw_ring_pos[index1].y - vecFx32.y); buffer[index2].Pos.z = buffer[index2 + 1].Pos.z = buffer[index2 + 2].Pos.z = buffer[index2 + 3].Pos.z = AppMain.FX_FX32_TO_F32(gmRingSysWork.draw_ring_pos[index1].z - vecFx32.z) - 1f; if (index1 != 0) { buffer[index2 - 1] = buffer[index2]; } if ((long)(index1 + 1) < (long)drawRingCount) { buffer[index2 + 4] = buffer[index2 + 3]; } } AppMain._AMS_PARAM_DRAW_PRIMITIVE.sortZ = AppMain.nnDistanceVector(ref buffer[offset].Pos, ref disp_pos); AppMain.amMatrixPush(ref snnsMatrix); AppMain.ObjDraw3DNNDrawPrimitive(AppMain._AMS_PARAM_DRAW_PRIMITIVE); AppMain.amMatrixPop(); }
public static void gmGmkSwWallDispFunc(AppMain.OBS_OBJECT_WORK obj_work) { AppMain.GMS_GMK_SWWALL_WORK gmsGmkSwwallWork = (AppMain.GMS_GMK_SWWALL_WORK)obj_work; AppMain.VecFx32 vecFx32 = new AppMain.VecFx32(); AppMain.VecFx32 scale = new AppMain.VecFx32(); AppMain.VecU16 vecU16 = new AppMain.VecU16(); int num1 = (gmsGmkSwwallWork.wall_draw_size + 131071) / 131072; AppMain.OBS_COLLISION_WORK colWork = gmsGmkSwwallWork.gmk_work.ene_com.col_work; vecFx32.Assign(obj_work.pos); int num2; int num3 = num2 = 0; if (gmsGmkSwwallWork.wall_type <= (ushort)1) { if (gmsGmkSwwallWork.wall_type == (ushort)0) { vecFx32.x += (int)colWork.obj_col.width + (int)colWork.obj_col.ofst_x - 16 << 12; num3 = -131072; } else { vecFx32.x += (int)colWork.obj_col.ofst_x + 16 << 12; num3 = 131072; } } else if (gmsGmkSwwallWork.wall_type == (ushort)2) { vecFx32.y += (int)colWork.obj_col.height + (int)colWork.obj_col.ofst_y - 16 << 12; num2 = -131072; } else { vecFx32.y += (int)colWork.obj_col.ofst_y + 16 << 12; num2 = 131072; } uint dispFlag = obj_work.disp_flag; if (((int)gmsGmkSwwallWork.gmk_work.ene_com.enemy_flag & 2) != 0) { while (num1 > 0) { AppMain.ObjDrawAction3DNN(obj_work.obj_3d, new AppMain.VecFx32?(vecFx32), new AppMain.VecU16?(obj_work.dir), obj_work.scale, ref dispFlag); --num1; vecFx32.x += num3; vecFx32.y += num2; } } else { while (num1 > 0) { AppMain.ObjDrawAction3DNN(obj_work.obj_3d, new AppMain.VecFx32?(vecFx32), new AppMain.VecU16?(obj_work.dir), obj_work.scale, ref dispFlag); --num1; vecFx32.x += num3; vecFx32.y += num2; } } if (((int)gmsGmkSwwallWork.gmk_work.ene_com.enemy_flag & 1) == 0) { return; } vecU16.x = vecU16.y = (ushort)0; vecU16.z = (ushort)((uint)gmsGmkSwwallWork.gear_dir + (uint)gmsGmkSwwallWork.gear_base_dir); AppMain.ObjDrawAction3DNN(gmsGmkSwwallWork.obj_3d_opt[0], new AppMain.VecFx32?(gmsGmkSwwallWork.gear_pos), new AppMain.VecU16?(vecU16), obj_work.scale, ref dispFlag); scale.x = scale.y = scale.z = 4096; if (((int)gmsGmkSwwallWork.gmk_work.ene_com.enemy_flag & 4) != 0) { scale.x = -scale.x; } AppMain.ObjDrawAction3DNN(gmsGmkSwwallWork.obj_3d_opt[1], new AppMain.VecFx32?(gmsGmkSwwallWork.gearbase_pos), new AppMain.VecU16?(obj_work.dir), scale, ref dispFlag); }
// Token: 0x06000757 RID: 1879 RVA: 0x0004096C File Offset: 0x0003EB6C public static void gmGmkSwWallDispFunc(AppMain.OBS_OBJECT_WORK obj_work) { AppMain.GMS_GMK_SWWALL_WORK gms_GMK_SWWALL_WORK = (AppMain.GMS_GMK_SWWALL_WORK)obj_work; AppMain.VecFx32 vecFx = default(AppMain.VecFx32); AppMain.VecFx32 scale = default(AppMain.VecFx32); AppMain.VecU16 vecU = default(AppMain.VecU16); int i = (gms_GMK_SWWALL_WORK.wall_draw_size + 131071) / 131072; AppMain.OBS_COLLISION_WORK col_work = gms_GMK_SWWALL_WORK.gmk_work.ene_com.col_work; vecFx.Assign(obj_work.pos); int num2; int num = num2 = 0; if (gms_GMK_SWWALL_WORK.wall_type <= 1) { if (gms_GMK_SWWALL_WORK.wall_type == 0) { vecFx.x += ( int )(col_work.obj_col.width + ( ushort )col_work.obj_col.ofst_x - 16) << 12; num2 = -131072; } else { vecFx.x += ( int )(col_work.obj_col.ofst_x + 16) << 12; num2 = 131072; } } else if (gms_GMK_SWWALL_WORK.wall_type == 2) { vecFx.y += ( int )(col_work.obj_col.height + ( ushort )col_work.obj_col.ofst_y - 16) << 12; num = -131072; } else { vecFx.y += ( int )(col_work.obj_col.ofst_y + 16) << 12; num = 131072; } uint disp_flag = obj_work.disp_flag; if ((gms_GMK_SWWALL_WORK.gmk_work.ene_com.enemy_flag & 2U) != 0U) { while (i > 0) { AppMain.ObjDrawAction3DNN(obj_work.obj_3d, new AppMain.VecFx32?(vecFx), new AppMain.VecU16?(obj_work.dir), obj_work.scale, ref disp_flag); i--; vecFx.x += num2; vecFx.y += num; } } else { while (i > 0) { AppMain.ObjDrawAction3DNN(obj_work.obj_3d, new AppMain.VecFx32?(vecFx), new AppMain.VecU16?(obj_work.dir), obj_work.scale, ref disp_flag); i--; vecFx.x += num2; vecFx.y += num; } } if ((gms_GMK_SWWALL_WORK.gmk_work.ene_com.enemy_flag & 1U) != 0U) { vecU.x = (vecU.y = 0); vecU.z = ( ushort )(gms_GMK_SWWALL_WORK.gear_dir + gms_GMK_SWWALL_WORK.gear_base_dir); AppMain.ObjDrawAction3DNN(gms_GMK_SWWALL_WORK.obj_3d_opt[0], new AppMain.VecFx32?(gms_GMK_SWWALL_WORK.gear_pos), new AppMain.VecU16?(vecU), obj_work.scale, ref disp_flag); scale.x = (scale.y = (scale.z = 4096)); if ((gms_GMK_SWWALL_WORK.gmk_work.ene_com.enemy_flag & 4U) != 0U) { scale.x = -scale.x; } AppMain.ObjDrawAction3DNN(gms_GMK_SWWALL_WORK.obj_3d_opt[1], new AppMain.VecFx32?(gms_GMK_SWWALL_WORK.gearbase_pos), new AppMain.VecU16?(obj_work.dir), scale, ref disp_flag); } }
// Token: 0x06000D9A RID: 3482 RVA: 0x0007781C File Offset: 0x00075A1C public static void gmRingDrawEnd() { if (AppMain.gm_ring_sys_work.draw_ring_count <= 0) { return; } if (!AppMain.GmMainIsDrawEnable()) { return; } AppMain.VecU16 vecU = default(AppMain.VecU16); vecU.x = 0; vecU.y = AppMain.gm_ring_sys_work.dir; vecU.z = AppMain.GmMainGetObjectRotation(); AppMain.GMS_RING_SYS_WORK gms_RING_SYS_WORK = AppMain.gm_ring_sys_work; uint draw_ring_count = (uint)AppMain.gm_ring_sys_work.draw_ring_count; SNNS_VECTOR snns_VECTOR; ObjCamera.DispPosGet(0, out snns_VECTOR); float num; float num2; AppMain.nnSinCos((int)vecU.z + -8192, out num, out num2); num *= 13.576385f; num2 *= 13.576385f; float num3; float num4; AppMain.nnSinCos((int)vecU.z + -24576, out num3, out num4); num3 *= 13.576385f; num4 *= 13.576385f; AppMain.VecFx32 vecFx = new AppMain.VecFx32(gms_RING_SYS_WORK.draw_ring_pos[0]); SNNS_MATRIX snns_MATRIX = default(SNNS_MATRIX); AppMain.nnMakeUnitMatrix(ref snns_MATRIX); AppMain.nnTranslateMatrix(ref snns_MATRIX, ref snns_MATRIX, AppMain.FX_FX32_TO_F32(vecFx.x), -AppMain.FX_FX32_TO_F32(vecFx.y), AppMain.FX_FX32_TO_F32(vecFx.z)); AppMain._AMS_PARAM_DRAW_PRIMITIVE.type = 1; AppMain._AMS_PARAM_DRAW_PRIMITIVE.count = (int)(6U * draw_ring_count - 2U); AppMain._AMS_PARAM_DRAW_PRIMITIVE.ablend = 0; AppMain._AMS_PARAM_DRAW_PRIMITIVE.bldSrc = 768; AppMain._AMS_PARAM_DRAW_PRIMITIVE.bldDst = 774; AppMain._AMS_PARAM_DRAW_PRIMITIVE.bldMode = 32774; AppMain._AMS_PARAM_DRAW_PRIMITIVE.aTest = 1; AppMain._AMS_PARAM_DRAW_PRIMITIVE.zMask = 0; AppMain._AMS_PARAM_DRAW_PRIMITIVE.zTest = 1; AppMain._AMS_PARAM_DRAW_PRIMITIVE.noSort = 1; AppMain._AMS_PARAM_DRAW_PRIMITIVE.texlist = AppMain.gm_ring_obj_3d.texlist; AppMain._AMS_PARAM_DRAW_PRIMITIVE.texId = 0; AppMain._AMS_PARAM_DRAW_PRIMITIVE.uwrap = 1; AppMain._AMS_PARAM_DRAW_PRIMITIVE.vwrap = 1; uint color = AppMain.gm_ring_sys_work.color; AppMain._AMS_PARAM_DRAW_PRIMITIVE.vtxPCT3D = AppMain.amDrawAlloc_NNS_PRIM3D_PCT(AppMain._AMS_PARAM_DRAW_PRIMITIVE.count); AppMain.NNS_PRIM3D_PCT[] buffer = AppMain._AMS_PARAM_DRAW_PRIMITIVE.vtxPCT3D.buffer; int offset = AppMain._AMS_PARAM_DRAW_PRIMITIVE.vtxPCT3D.offset; AppMain._AMS_PARAM_DRAW_PRIMITIVE.format3D = 4; int num5 = 0; while ((long)num5 < (long)((ulong)draw_ring_count)) { int num6 = offset + 6 * num5; ushort num7 = (ushort)(AppMain.gm_ring_sys_work.draw_ring_uv_frame / 4); buffer[num6].Tex.u = (buffer[num6 + 1].Tex.u = AppMain.gm_ring_roll_uv[0][(int)num7]); buffer[num6 + 2].Tex.u = (buffer[num6 + 3].Tex.u = AppMain.gm_ring_roll_uv[0][(int)num7] + 0.25f); buffer[num6].Tex.v = (buffer[num6 + 2].Tex.v = AppMain.gm_ring_roll_uv[1][(int)num7]); buffer[num6 + 1].Tex.v = (buffer[num6 + 3].Tex.v = AppMain.gm_ring_roll_uv[1][(int)num7] + 0.25f); buffer[num6].Col = color; buffer[num6 + 1].Col = (buffer[num6 + 2].Col = (buffer[num6 + 3].Col = buffer[num6].Col)); buffer[num6].Pos.x = num + AppMain.FX_FX32_TO_F32(gms_RING_SYS_WORK.draw_ring_pos[num5].x - vecFx.x); buffer[num6 + 1].Pos.x = num3 + AppMain.FX_FX32_TO_F32(gms_RING_SYS_WORK.draw_ring_pos[num5].x - vecFx.x); buffer[num6 + 2].Pos.x = -num3 + AppMain.FX_FX32_TO_F32(gms_RING_SYS_WORK.draw_ring_pos[num5].x - vecFx.x); buffer[num6 + 3].Pos.x = -num + AppMain.FX_FX32_TO_F32(gms_RING_SYS_WORK.draw_ring_pos[num5].x - vecFx.x); buffer[num6].Pos.y = num2 - AppMain.FX_FX32_TO_F32(gms_RING_SYS_WORK.draw_ring_pos[num5].y - vecFx.y); buffer[num6 + 1].Pos.y = num4 - AppMain.FX_FX32_TO_F32(gms_RING_SYS_WORK.draw_ring_pos[num5].y - vecFx.y); buffer[num6 + 2].Pos.y = -num4 - AppMain.FX_FX32_TO_F32(gms_RING_SYS_WORK.draw_ring_pos[num5].y - vecFx.y); buffer[num6 + 3].Pos.y = -num2 - AppMain.FX_FX32_TO_F32(gms_RING_SYS_WORK.draw_ring_pos[num5].y - vecFx.y); buffer[num6].Pos.z = (buffer[num6 + 1].Pos.z = (buffer[num6 + 2].Pos.z = (buffer[num6 + 3].Pos.z = -1f + AppMain.FX_FX32_TO_F32(gms_RING_SYS_WORK.draw_ring_pos[num5].z - vecFx.z)))); if (num5 != 0) { buffer[num6 - 1] = buffer[num6]; } if ((long)(num5 + 1) < (long)((ulong)draw_ring_count)) { buffer[num6 + 4] = buffer[num6 + 3]; } num5++; } AppMain._AMS_PARAM_DRAW_PRIMITIVE.sortZ = AppMain.nnDistanceVector(ref buffer[offset].Pos, ref snns_VECTOR); AppMain.amMatrixPush(ref snns_MATRIX); AppMain.ObjDraw3DNNDrawPrimitive(AppMain._AMS_PARAM_DRAW_PRIMITIVE); AppMain.amMatrixPop(); }