public TileMap(List <Layer> layers, List <BGOVERLAY_DEF> overlayList, List <BGANIM_DEF> animList, uint factor) { Int32 minX, minY, maxX, maxY; TileMap.GetBounds(overlayList, 0, out minX, out minY, out maxX, out maxY); this.SizeX = (maxX - minX) / 16; this.SizeY = (maxY - minY) / 16; _cameraIndex = overlayList[0].camNdx; _overlays = new Dictionary <int, Overlay>(); _animList = animList; bool[] animationArray = new bool[overlayList.Count]; for (var m = 0; m < animList.Count; m++) { BGANIM_DEF animation = animList[m]; for (var n = 0; n < animation.frameList.Count; n++) { int index = animation.frameList[n].target; animationArray[index] = true; } } for (int i = 0; i < overlayList.Count; i++) { BGOVERLAY_DEF info = overlayList[i]; Layer layer = layers[i]; bool animationFlag = animationArray[i]; Overlay overlay = new Overlay(CopyBytesHelper.GetImageData(layer, info, factor), info, i, this.SizeX, this.SizeY, minX, minY, maxX, maxY, animationFlag); _overlays[i] = overlay; } TDMap = new TileDepthMap(_overlays, this.SizeX, this.SizeY); }
private void ExtractAnimationData(BinaryReader reader) { reader.BaseStream.Seek(this.animOffset, SeekOrigin.Begin); for (Int32 i = 0; i < (Int32)this.animCount; i++) { BGANIM_DEF bGANIM_DEF = new BGANIM_DEF(); bGANIM_DEF.ReadData(reader); this.animList.Add(bGANIM_DEF); } }
private void BuildBattleMapDebugTopPanel() { GUILayout.BeginHorizontal(new GUILayoutOption[0]); for (Int32 i = 0; i < this.bg.scene.cameraList.Count; i++) { if (GUILayout.Button("Camera" + i, new GUILayoutOption[0])) { this.changeUI.CamIdx = i; } } GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(new GUILayoutOption[0]); for (Int32 j = 0; j < this.bg.scene.animList.Count; j++) { if ((Int32)this.bg.scene.animList[j].camNdx == this.changeUI.CamIdx && this.changeUI.AnimIdx.Length != 0) { String text = (!this.changeUI.AnimIdx[j]) ? "OFF" : "ON"; if (GUILayout.Button(String.Concat(new Object[] { "Anm", j, ": ", text }), new GUILayoutOption[0])) { this.changeUI.AnimIdx[j] = !this.changeUI.AnimIdx[j]; if (!this.changeUI.AnimIdx[j]) { BGANIM_DEF bganim_DEF = this.bg.scene.animList[j]; this.bg.scene.animList[j].counter = 0; for (Int32 k = 1; k < bganim_DEF.frameList.Count; k++) { this.bg.scene.overlayList[(Int32)bganim_DEF.frameList[k].target].transform.gameObject.SetActive(false); } this.bg.scene.overlayList[(Int32)bganim_DEF.frameList[0].target].transform.gameObject.SetActive(true); } } } } GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(new GUILayoutOption[0]); Boolean activeSelf = this.bg.walkMesh.ProjectedWalkMesh.activeSelf; String str = (!activeSelf) ? "OFF" : "ON"; if (GUILayout.Button("Walkmesh: " + str, new GUILayoutOption[0])) { this.bg.walkMesh.ProjectedWalkMesh.SetActive(!activeSelf); } GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); GUILayout.FlexibleSpace(); }
private void ExtractAnimationFrameData(BinaryReader reader) { for (Int32 i = 0; i < (Int32)this.animCount; i++) { BGANIM_DEF bGANIM_DEF = this.animList[i]; reader.BaseStream.Seek(bGANIM_DEF.offset, SeekOrigin.Begin); for (Int32 j = 0; j < bGANIM_DEF.frameCount; j++) { BGANIMFRAME_DEF bGANIMFRAME_DEF = new BGANIMFRAME_DEF(); bGANIMFRAME_DEF.ReadData(reader); bGANIM_DEF.frameList.Add(bGANIMFRAME_DEF); } } }
public TileMap(int fieldMapNumber, List <Layer> layers, List <BGOVERLAY_DEF> overlayList, List <BGANIM_DEF> animList, List <BGLIGHT_DEF> lightList, int cameraIndex, uint factor) { Int32 minX, minY, maxX, maxY; TileMap.GetBounds(overlayList, cameraIndex, out minX, out minY, out maxX, out maxY); this.MinX = minX; this.MinY = minY; this.SizeX = (maxX - minX) / 16 + 1; this.SizeY = (maxY - minY) / 16 + 1; _fieldMapNumber = fieldMapNumber; _cameraIndex = cameraIndex; _overlays = new Dictionary <int, Overlay>(); _animList = animList; _lightList = lightList; bool[] animationArray = new bool[overlayList.Count]; for (var m = 0; m < animList.Count; m++) { BGANIM_DEF animation = animList[m]; for (var n = 0; n < animation.frameList.Count; n++) { int index = animation.frameList[n].target; animationArray[index] = true; } } for (var m = 0; m < lightList.Count; m++) { BGLIGHT_DEF lightDef = lightList[m]; } for (int i = 0; i < overlayList.Count; i++) { BGOVERLAY_DEF info = overlayList[i]; if (info.camNdx != _cameraIndex) { continue; } Layer layer = layers[i]; bool animationFlag = animationArray[i]; bool isLight = false; Overlay overlay = new Overlay(CopyBytesHelper.GetImageData(layer, info, factor), info, i, this.SizeX, this.SizeY, minX, minY, maxX, maxY, animationFlag); _overlays[i] = overlay; } TDMap = new TileDepthMap(_overlays, this.SizeX, this.SizeY); }
private void CreateScene(FieldMap fieldMap, Boolean UseUpscalFM) { GameObject gameObject = new GameObject("Background"); gameObject.transform.parent = fieldMap.transform; gameObject.transform.localPosition = new Vector3(this.curX - 160f, -(this.curY - 112f), this.curZ); gameObject.transform.localScale = new Vector3(1f, -1f, 1f); for (Int32 i = 0; i < this.cameraList.Count; i++) { BGCAM_DEF bGCAM_DEF = this.cameraList[i]; GameObject gameObject2 = new GameObject(String.Concat("Camera_", i.ToString("D2"), " : ", bGCAM_DEF.vrpMaxX + 160f, " x ", bGCAM_DEF.vrpMaxY + 112f)); Transform transform = gameObject2.transform; transform.parent = gameObject.transform; bGCAM_DEF.transform = transform; bGCAM_DEF.transform.localPosition = Vector3.zero; bGCAM_DEF.transform.localScale = new Vector3(1f, 1f, 1f); } List <Vector3> list = new List <Vector3>(); List <Vector2> list2 = new List <Vector2>(); List <Int32> list3 = new List <Int32>(); for (Int32 j = 0; j < this.overlayList.Count; j++) { BGOVERLAY_DEF bGOVERLAY_DEF = this.overlayList[j]; String str = "Overlay_" + j.ToString("D2"); GameObject gameObject3 = new GameObject(str); Transform transform2 = gameObject3.transform; transform2.parent = this.cameraList[bGOVERLAY_DEF.camNdx].transform; transform2.localPosition = new Vector3(bGOVERLAY_DEF.curX * 1f, bGOVERLAY_DEF.curY * 1f, bGOVERLAY_DEF.curZ); transform2.localScale = new Vector3(1f, 1f, 1f); bGOVERLAY_DEF.transform = transform2; for (Int32 k = 0; k < bGOVERLAY_DEF.spriteList.Count; k++) { BGSPRITE_LOC_DEF bGSPRITE_LOC_DEF = bGOVERLAY_DEF.spriteList[k]; var num = bGSPRITE_LOC_DEF.depth; GameObject gameObject4 = new GameObject(str + "_Sprite_" + k.ToString("D3")); Transform transform3 = gameObject4.transform; transform3.parent = transform2; { transform3.localPosition = new Vector3(bGSPRITE_LOC_DEF.offX * 1f, (bGSPRITE_LOC_DEF.offY + 16) * 1f, num); } transform3.localScale = new Vector3(1f, 1f, 1f); bGSPRITE_LOC_DEF.transform = transform3; list.Clear(); list2.Clear(); list3.Clear(); list.Add(new Vector3(0f, -16f, 0f)); list.Add(new Vector3(16f, -16f, 0f)); list.Add(new Vector3(16f, 0f, 0f)); list.Add(new Vector3(0f, 0f, 0f)); Single num2 = this.ATLAS_W; Single num3 = this.ATLAS_H; Single x; Single y; Single x2; Single y2; if (UseUpscalFM) { Single num4 = 0.5f; x = (bGSPRITE_LOC_DEF.atlasX - num4) / num2; y = (this.ATLAS_H - bGSPRITE_LOC_DEF.atlasY + num4) / num3; x2 = (bGSPRITE_LOC_DEF.atlasX + this.SPRITE_W - num4) / num2; y2 = (this.ATLAS_H - (bGSPRITE_LOC_DEF.atlasY + this.SPRITE_H) + num4) / num3; } else { Single num5 = 0.5f; x = (bGSPRITE_LOC_DEF.atlasX + num5) / num2; y = (bGSPRITE_LOC_DEF.atlasY + num5) / num3; x2 = (bGSPRITE_LOC_DEF.atlasX + this.SPRITE_W - num5) / num2; y2 = (bGSPRITE_LOC_DEF.atlasY + this.SPRITE_H - num5) / num3; } list2.Add(new Vector2(x, y)); list2.Add(new Vector2(x2, y)); list2.Add(new Vector2(x2, y2)); list2.Add(new Vector2(x, y2)); list3.Add(2); list3.Add(1); list3.Add(0); list3.Add(3); list3.Add(2); list3.Add(0); Mesh mesh = new Mesh { vertices = list.ToArray(), uv = list2.ToArray(), triangles = list3.ToArray() }; MeshRenderer meshRenderer = gameObject4.AddComponent <MeshRenderer>(); MeshFilter meshFilter = gameObject4.AddComponent <MeshFilter>(); meshFilter.mesh = mesh; Int32 num6 = this.curZ + (Int16)bGOVERLAY_DEF.curZ + bGSPRITE_LOC_DEF.depth; GameObject expr_5B4 = gameObject4; expr_5B4.name = expr_5B4.name + "_Depth(" + num6.ToString("D5") + ")"; String text; if (bGSPRITE_LOC_DEF.trans != 0) { if (bGSPRITE_LOC_DEF.alpha == 0) { text = "abr_0"; } else if (bGSPRITE_LOC_DEF.alpha == 1) { text = "abr_1"; } else if (bGSPRITE_LOC_DEF.alpha == 2) { text = "abr_2"; } else { text = "abr_3"; } } else { text = "abr_none"; } if (fieldMap.mapName == "FBG_N39_UUVL_MAP671_UV_DEP_0" && j == 14) { text = "abr_none"; } GameObject expr_671 = gameObject4; expr_671.name = expr_671.name + "_[" + text + "]"; meshRenderer.material = this.materialList[text]; } bGOVERLAY_DEF.transform.gameObject.SetActive((bGOVERLAY_DEF.flags & 2) != 0); } for (Int32 l = 0; l < this.animList.Count; l++) { BGANIM_DEF bGANIM_DEF = this.animList[l]; for (Int32 m = 0; m < bGANIM_DEF.frameList.Count; m++) { GameObject gameObject5 = this.overlayList[bGANIM_DEF.frameList[m].target].transform.gameObject; GameObject expr_754 = gameObject5; expr_754.name = expr_754.name + "_[anim_" + l.ToString("D2") + "]"; GameObject expr_77C = gameObject5; String text2 = expr_77C.name; expr_77C.name = String.Concat(text2, "_[frame_", m.ToString("D2"), "_of_", bGANIM_DEF.frameList.Count.ToString("D2"), "]"); } } }