public static BgVertex GetVertex(DynaCollisionContext dyna, BgActor bgActor, short id) { var ptr = dyna.vtxList.RelOff(id * 6); return(new BgVertex(id, ptr.ReadInt16(0), ptr.ReadInt16(2), ptr.ReadInt16(4))); }
public CollisionCtx(Ptr ctx, RomVersion version) { this.version = version; SceneMeshPtr = ctx.Deref(0); boxmin = new Vector3 <float>( ctx.ReadFloat(0x04), ctx.ReadFloat(0x08), ctx.ReadFloat(0x0C) ); boxmax = new Vector3 <float>( ctx.ReadFloat(0x10), ctx.ReadFloat(0x14), ctx.ReadFloat(0x18) ); max = new Vector3 <int>( ctx.ReadInt32(0x1C), ctx.ReadInt32(0x20), ctx.ReadInt32(0x24) ); unitSize = new Vector3 <float>( ctx.ReadFloat(0x28), ctx.ReadFloat(0x2C), ctx.ReadFloat(0x30) ); factor = new Vector3 <float>( ctx.ReadFloat(0x34), ctx.ReadFloat(0x38), ctx.ReadFloat(0x3C) ); Table = ctx.Deref(0x40); SSNodeMax = ctx.ReadInt16(0x44); SSNodeCount = ctx.ReadInt16(0x46); SSNodeTbl = ctx.Deref(0x48); polyCheckTbl = ctx.Deref(0x4C); dyna = new DynaCollisionContext(ctx, version); if (version.Game == Game.OcarinaOfTime) { mem_size = ctx.ReadInt32(0x1460); } else if (version.Game == Game.MajorasMask) { mem_size = ctx.ReadInt32(0x1468); flags = ctx.ReadInt32(0x146C); } }