public override byte[] Serialize(Game game, Endianness endianness) { using (var writer = new EndianBinaryWriter(endianness)) { writer.Write(SerializeEntity(game, endianness)); if (game != Game.Scooby) { writer.Write(PressedModel_AssetID); } writer.Write((int)ActMethod); writer.Write(InitialButtonState); writer.Write(ResetAfterDelay ? 1 : 0); writer.Write(ResetDelay); writer.Write(HitMask.FlagValueInt); writer.Write(Motion.Serialize(game, endianness)); int linkStart = game == Game.Scooby ? 0x94 : game == Game.BFBB ? 0x9C : game == Game.Incredibles ? 0xA4 : throw new ArgumentException("Invalid game"); while (writer.BaseStream.Length < linkStart) { writer.Write((byte)0); } writer.Write(SerializeLinks(endianness)); return(writer.ToArray()); } }
public override byte[] Serialize(Game game, Endianness endianness) { using (var writer = new EndianBinaryWriter(endianness)) { writer.Write(SerializeBase(endianness)); writer.Write(Vertices.Length); writer.Write(Triangles.Length); writer.Write(MinX); writer.Write(MinY); writer.Write(MinZ); writer.Write(MaxX); writer.Write(MaxY); writer.Write(MaxZ); foreach (var v in Vertices) { writer.Write(v.Serialize(endianness)); } foreach (var t in Triangles) { writer.Write(t.Serialize(endianness)); } writer.Write(SerializeLinks(endianness)); return(writer.ToArray()); } }
public override byte[] Serialize(Game game, Endianness endianness) { using (var writer = new EndianBinaryWriter(endianness)) { writer.Write(MINF_AssetID); writer.Write(States.Length); writer.Write(HitPoints); writer.Write(HitFilter); writer.Write(LaunchFlag); writer.Write(Behavior); writer.Write(Flags.FlagValueInt); writer.Write(SoundGroup_Idle_AssetID); writer.Write(Respawn); writer.Write(TargetPriority); writer.Write((byte)0); writer.Write((byte)0); writer.Write((byte)0); foreach (var state in States) { writer.Write(state.Serialize(game, endianness)); } writer.Write(Unknown1); if (Unknown2.HasValue) { writer.Write(Unknown2.Value); } return(writer.ToArray()); } }
public override byte[] Serialize(Game game, Endianness endianness) { using (var writer = new EndianBinaryWriter(endianness)) { writer.Write(Entries_SND.Length); writer.Write(0xCDCDCDCD); writer.Write(Entries_SNDS.Length); if (game == Game.BFBB) { writer.Write(Entries_Sound_CIN.Length); } foreach (var e in Entries_SND) { writer.Write(e.Serialize()); } foreach (var e in Entries_SNDS) { writer.Write(e.Serialize()); } if (game == Game.BFBB) { foreach (var e in Entries_Sound_CIN) { writer.Write(e.Serialize()); } } return(writer.ToArray()); } }
public override byte[] Serialize(Game game, Endianness endianness) { using (var writer = new EndianBinaryWriter(endianness)) { writer.Write(Mode); writer.Write(Rot); writer.Write(RotSpd); writer.Write(Trans_X); writer.Write(Trans_Y); writer.Write(Trans_Z); writer.Write(TransSpeed_X); writer.Write(TransSpeed_Y); writer.Write(TransSpeed_Z); writer.Write(Scale_X); writer.Write(Scale_Y); writer.Write(Scale_Z); writer.Write(ScaleSpeed_X); writer.Write(ScaleSpeed_Y); writer.Write(ScaleSpeed_Z); writer.Write(Min_X); writer.Write(Min_Y); writer.Write(Min_Z); writer.Write(Max_X); writer.Write(Max_Y); writer.Write(Max_Z); writer.Write(MinMaxSpeed_X); writer.Write(MinMaxSpeed_Y); writer.Write(MinMaxSpeed_Z); return(writer.ToArray()); } }
public override byte[] Serialize(Game game, Endianness endianness) { using (var writer = new EndianBinaryWriter(endianness)) { writer.Write(SerializeBase(endianness)); writer.Write(PARS_Type); writer.Write(PARS_AssetID); writer.Write(TextureAssetID); writer.Write(ParsFlags.FlagValueByte); writer.Write(Priority); writer.Write(MaxParticles); writer.Write(RenderFunction); writer.Write(RenderSourceBlendMode); writer.Write(RenderDestBlendMode); writer.Write(CmdCount); writer.Write(Cmd.Length * 4); foreach (var c in Cmd) { writer.Write(c); } if (game == Game.Incredibles) { writer.Write(Unknown01); writer.Write(Unknown02); writer.Write(Unknown03); writer.Write(Unknown04); } writer.Write(SerializeLinks(endianness)); return(writer.ToArray()); } }
public override byte[] Serialize(Game game, Endianness endianness) { using (var writer = new EndianBinaryWriter(endianness)) { writer.Write(SerializeBase(endianness)); writer.Write(InitialSpawn); writer.Write(MaximumInGame); writer.Write(MaximumToSpawn); writer.Write((short)0); writer.Write(SpawnRate); writer.Write(UnknownInt_14); writer.Write(UnknownInt_18); writer.Write(UnknownInt_1C); writer.Write(UnknownInt_20); writer.Write(UnknownInt_24); writer.Write(UnknownInt_28); writer.Write(NavMesh1_AssetID); writer.Write(UnknownInt_30); writer.Write(assetID); writer.Write((byte)BaseAssetType.NPC); writer.Write((byte)_links.Length); writer.Write(VIL.Serialize(game, endianness).Skip(6).ToArray()); writer.Write(SerializeLinks(endianness)); return(writer.ToArray()); } }
protected byte[] SerializeDynaUI(Endianness endianness) { using (var writer = new EndianBinaryWriter(endianness)) { writer.Write(PositionX); writer.Write(PositionY); writer.Write(PositionZ); writer.Write(Width); writer.Write(Height); writer.Write(Flags.FlagValueInt); writer.Write(Color); writer.Write(UIMotion_Selected_AssetID); writer.Write(UIMotion_Unselected_AssetID); writer.Write(Brightness); writer.Write((byte)0); writer.Write((byte)0); writer.Write((byte)0); writer.Write(autoMenuUp); writer.Write(autoMenuDown); writer.Write(autoMenuLeft); writer.Write(autoMenuRight); writer.Write(custom); writer.Write(customWidget); return(writer.ToArray()); } }
protected override byte[] SerializeDyna(Game game, Endianness endianness) { using (var writer = new EndianBinaryWriter(endianness)) { writer.Write(VentType_AssetID); writer.Write(_position.X); writer.Write(_position.Y); writer.Write(_position.Z); writer.Write(_yaw); writer.Write(_pitch); writer.Write(_roll); writer.Write(DamageBoxLowerCornerX); writer.Write(DamageBoxLowerCornerY); writer.Write(DamageBoxLowerCornerZ); writer.Write(DamageBoxUpperCornerX); writer.Write(DamageBoxUpperCornerY); writer.Write(DamageBoxUpperCornerZ); writer.Write(BoulderPushSpeed); writer.Write(VentFlags.FlagValueInt); writer.Write(IdleTime); writer.Write(WarnTime); writer.Write(DamageTime); return(writer.ToArray()); } }
protected override byte[] SerializeDyna(Game game, Endianness endianness) { using (var writer = new EndianBinaryWriter(endianness)) { writer.Write(Flags.FlagValueInt); writer.Write(_position.X); writer.Write(_position.Y); writer.Write(_position.Z); writer.Write(DirectionX); writer.Write(DirectionY); writer.Write(DirectionZ); writer.Write(ScaleX); writer.Write(ScaleY); writer.Write(ScaleZ); writer.Write(HeatRandom); writer.Write(Damage); writer.Write(Knockback); if (inc) { writer.Write(Unknown); } return(writer.ToArray()); } }
protected override byte[] SerializeDyna(Game game, Endianness endianness) { using (var writer = new EndianBinaryWriter(endianness)) { writer.Write(SerializeDynaUI(endianness)); writer.Write(Texture_AssetID); writer.Write(uv1u); writer.Write(uv1v); writer.Write(uv2u); writer.Write(uv2v); writer.Write(uv3u); writer.Write(uv3v); writer.Write(uv4u); writer.Write(uv4v); writer.Write(rotation); writer.Write(UIImageFlags.FlagValueShort); writer.Write(addreasMoveU); writer.Write(addreasMoveV); writer.Write(Color1); writer.Write(Color2); writer.Write(Color3); writer.Write(Color4); if (extraFieldPresent) { writer.Write(Unknown); } return(writer.ToArray()); } }
public byte[] Serialize(Endianness endianness) { using (var writer = new EndianBinaryWriter(endianness)) { writer.Write(Type); writer.Write(ColorR); writer.Write(ColorG); writer.Write(ColorB); writer.Write(Unknown04); writer.Write(Unknown05_X); writer.Write(Unknown06_Y); writer.Write(Unknown07_Z); writer.Write(Unknown08); writer.Write(Unknown09_X); writer.Write(Unknown10_Y); writer.Write(Unknown11_Z); writer.Write(Unknown12); writer.Write(Direction_X); writer.Write(Direction_Y); writer.Write(Direction_Z); writer.Write(Unknown16); writer.Write(Unknown17_X); writer.Write(Unknown18_Y); writer.Write(Unknown19_Z); writer.Write(Unknown20); writer.Write(Unknown21_X); writer.Write(Unknown22_Y); writer.Write(Unknown23_Z); return(writer.ToArray()); } }
public override byte[] Serialize(Game game, Endianness endianness) { using (var writer = new EndianBinaryWriter(endianness)) { writer.Write(SerializeEntity(game, endianness)); writer.Write(AnimationSpeed); writer.Write(InitialAnimationState); writer.Write(Health); writer.Write(SpawnItem_AssetID); writer.Write(HitMask.FlagValueInt); writer.Write(CollType); writer.Write(FxType); writer.Write((short)0); writer.Write(BlastRadius); writer.Write(BlastStrength); if (game != Game.Scooby) { writer.Write(DestroyShrapnel_AssetID); writer.Write(HitShrapnel_AssetID); writer.Write(DestroySFX_AssetID); writer.Write(HitSFX_AssetID); writer.Write(HitModel_AssetID); writer.Write(DestroyModel_AssetID); } writer.Write(SerializeLinks(endianness)); return(writer.ToArray()); } }
public override byte[] Serialize(Game game, Endianness endianness) { using (var writer = new EndianBinaryWriter(endianness)) { writer.WriteMagic("MINF"); writer.Write(MinfReferences.Length); writer.Write(ATBL_AssetID); if (game != Game.Scooby) { writer.Write(CombatID); writer.Write(BrainID); } foreach (var r in MinfReferences) { writer.Write(r.Serialize(game, endianness)); } foreach (var b in MinfParams) { writer.Write(b.Serialize(endianness)); } return(writer.ToArray()); } }
public override byte[] Serialize(Game game, Endianness endianness) { using (var writer = new EndianBinaryWriter(endianness)) { List <byte> newJawData = new List <byte>(); writer.Write(JAW_Entries.Length); foreach (var i in JAW_Entries) { writer.Write(i.SoundAssetID); writer.Write(newJawData.Count); writer.Write(i.JawData.Length + 4); newJawData.AddRange(BitConverter.GetBytes(i.JawData.Length)); newJawData.AddRange(i.JawData); while (newJawData.Count % 4 != 0) { newJawData.Add(0); } } writer.Write(newJawData.ToArray()); return(writer.ToArray()); } }
public override byte[] Serialize(Game game, Endianness endianness) { using (var writer = new EndianBinaryWriter(endianness)) { writer.Write(base.Serialize(game, endianness)); writer.Write((byte)MovementType); writer.Write((byte)MovementLoopMode); writer.Write((byte)SlideAxis); writer.Write((byte)RotateAxis); if (game == Game.Incredibles) { writer.Write(ScaleAxis); writer.Write((byte)0); writer.Write((byte)0); writer.Write((byte)0); } writer.Write(SlideDistance); writer.Write(SlideTime); writer.Write(SlideAccelTime); writer.Write(SlideDecelTime); writer.Write(RotateDistance); writer.Write(RotateTime); writer.Write(RotateAccelTime); writer.Write(RotateDecelTime); writer.Write(RetractDelay); writer.Write(PostRetractDelay); if (game == Game.Incredibles) { writer.Write(ScaleAmount); writer.Write(ScaleDuration); } return(writer.ToArray()); } }
public override byte[] Serialize(Game game, Endianness endianness) { using (var writer = new EndianBinaryWriter(endianness)) { writer.Write(SerializeEntity(game, endianness)); writer.Write(Gravity); writer.Write(Mass); writer.Write(BounceFactor); writer.Write(Friction); if (game == Game.BFBB) { writer.Write(StartFriction); } writer.Write(MaxLinearVelocity); writer.Write(MaxAngularVelocity); writer.Write(Stickiness); writer.Write(BounceDamp); writer.Write(BoulderFlags.FlagValueInt); writer.Write(KillTimer); writer.Write(Hitpoints); writer.Write(Sound_AssetID); if (game == Game.BFBB) { writer.Write(Volume); } writer.Write(MinSoundVel); writer.Write(MaxSoundVel); writer.Write(InnerRadius); writer.Write(OuterRadius); writer.Write(SerializeLinks(endianness)); return(writer.ToArray()); } }
public override byte[] Serialize(Game game, Endianness endianness) { using (var writer = new EndianBinaryWriter(endianness)) { writer.Write(SerializeEntity(game, endianness)); writer.Write(SerializeUIData(endianness)); writer.Write(UIFontFlags.FlagValueShort); writer.Write(UIFontMode); writer.Write((byte)FontID); writer.Write(TextAssetID); writer.Write(BackgroundColor); writer.Write(FontColor); writer.Write(Padding_Top); writer.Write(Padding_Bottom); writer.Write(Padding_Left); writer.Write(Padding_Right); writer.Write(Spacing_Horizontal); writer.Write(Spacing_Vertical); writer.Write(Char_Width); writer.Write(Char_Height); if (game != Game.Scooby) { writer.Write(MaxHeight); } writer.Write(SerializeLinks(endianness)); return(writer.ToArray()); } }
public override byte[] Serialize(Game game, Endianness endianness) { using (var writer = new EndianBinaryWriter(endianness)) { writer.Write(Height1); writer.Write(Height2); writer.Write(Height3); if (game != Game.Scooby) { writer.Write(HeightBubbleBounce); } writer.Write(Anim1_AssetID); writer.Write(Anim2_AssetID); writer.Write(Anim3_AssetID); writer.Write(DirectionX); writer.Write(DirectionY); writer.Write(DirectionZ); if (game != Game.Scooby) { writer.Write(Settings.FlagValueInt); } return(writer.ToArray()); } }
protected override byte[] SerializeDyna(Game game, Endianness endianness) { using (var writer = new EndianBinaryWriter(endianness)) { writer.Write(Dialog_TextBoxID); writer.Write(Prompt_TextBoxID); writer.Write(Quit_TextBoxID); writer.Write(Trap); writer.Write(Pause); writer.Write(AllowQuit); writer.Write(TriggerPads); writer.Write(Page); writer.Write(Show); writer.Write(Hide); writer.Write(AudioEffect); writer.Write(TeleportPointerID); writer.Write(AutoWaitTypeTime); writer.Write(AutoWaitTypePrompt); writer.Write(AutoWaitTypeSound); writer.Write(AutoWaitTypeEvent); writer.Write(AutoWaitDelay); writer.Write(AutoWaitWhichEvent); writer.Write(PromptSkip_TextID); writer.Write(PromptNoSkip_TextID); writer.Write(PromptQuitTextID); writer.Write(PromptNoQuitTextID); writer.Write(PromptYesNoTextID); return(writer.ToArray()); } }
public override byte[] Serialize(Game game, Endianness endianness) { using (var writer = new EndianBinaryWriter(endianness)) { writer.Write(SoundGroupNameHash); writer.Write(SoundStartDelay); writer.Write(TimeSpan); writer.Write(TimeLastPlayed); writer.Write(NumPlays); writer.Write(DelayBetweenPlays); writer.Write(Probability); writer.Write(DefaultDuration); writer.Write(LastDuration); writer.Write(MaxPlays); writer.Write(SoundGroupHandle); writer.Write(OLManager); writer.Write(EventType); writer.Write(PlaysInMusicChannel); writer.Write(pData); writer.Write((int)PlayerType); writer.Write(TesterDataFirstParam); writer.Write(TesterDataSecondParam); return(writer.ToArray()); } }
protected override byte[] SerializeDyna(Game game, Endianness endianness) { using (var writer = new EndianBinaryWriter(endianness)) { writer.Write(SerializeDynaHudMeter(endianness)); writer.Write(EmptyModel_AssetID); writer.Write(EmptyOffset_X); writer.Write(EmptyOffset_Y); writer.Write(EmptyOffset_Z); writer.Write(EmptyScale_X); writer.Write(EmptyScale_Y); writer.Write(EmptyScale_Z); writer.Write(FullModel_AssetID); writer.Write(FullOffset_X); writer.Write(FullOffset_Y); writer.Write(FullOffset_Z); writer.Write(FullScale_X); writer.Write(FullScale_Y); writer.Write(FullScale_Z); writer.Write(Spacing_X); writer.Write(Spacing_Y); writer.Write(Spacing_Z); writer.Write(MeterFillDirection); return(writer.ToArray()); } }
public byte[] Serialize(int prevSize, Game game, Endianness endianness) { using (var writer = new EndianBinaryWriter(endianness)) { writer.Write(0); // size writer.Write(Duration); writer.Write(Unknown_08); writer.Write(Unknown_0C); writer.Write(BeginY); writer.Write(Unknown_14); writer.Write(EndY); writer.Write(Unknown_1C); writer.Write(Unknown_20); writer.Write(FadeInBegin); writer.Write(FadeInEnd); writer.Write(FadeOutBegin); writer.Write(FadeOutEnd); writer.Write(Styles.Length); foreach (var s in Styles) { writer.Write(s.Serialize(game, endianness)); } foreach (var t in Titles) { writer.Write(t.Serialize((int)writer.BaseStream.Length + prevSize, endianness)); } writer.BaseStream.Position = 0; writer.Write((int)writer.BaseStream.Length); return(writer.ToArray()); } }
public byte[] Serialize(Endianness endianness) { using (var writer = new EndianBinaryWriter(endianness)) { writer.Write(PickupHash); writer.Write(Model_AssetID); writer.Write(RingModel_AssetID); writer.Write(UnknownFloat_0C); writer.Write(UnknownFloat_10); writer.Write(UnknownFloat_14); writer.Write(RingColorR); writer.Write(RingColorG); writer.Write(RingColorB); writer.Write(Unknown_24); writer.Write(Unknown_28); writer.Write(Pickup_SGRP); writer.Write(Denied_SGRP); writer.Write(HealthValue); writer.Write(PowerValue); writer.Write(BonusValue); writer.Write(UnknownByte_37); return(writer.ToArray()); } }
public override byte[] Serialize(Game game, Endianness endianness) { using (var writer = new EndianBinaryWriter(endianness)) { writer.Write(0); writer.Write(0); writer.Write(0); writer.Write(hashID0); writer.Write(hashID1); foreach (var p in Points) { writer.Write(p.Serialize(endianness)); } foreach (var l in Lines) { writer.Write(l.Serialize(endianness)); } writer.BaseStream.Position = 0; writer.Write((int)writer.BaseStream.Length); writer.Write(Points.Length); writer.Write(Lines.Length); return(writer.ToArray()); } }
public override byte[] Serialize(Game game, Endianness endianness) { using (var writer = new EndianBinaryWriter(endianness)) { writer.Write(SerializeEntryShrpBase(endianness)); writer.Write(ModelAssetID); writer.Write(Unknown1C); writer.Write(Unknown20); writer.Write(Unknown24); writer.Write(OffsetX); writer.Write(OffsetY); writer.Write(OffsetZ); WritePad(writer, 0x10); writer.Write(Unknown44); writer.Write(Unknown48); writer.Write(Unknown4C); writer.Write(Unknown50); writer.Write(Unknown54); WritePad(writer, 0x10); writer.Write(Unknown68); writer.Write(Unknown6C); writer.Write(Unknown70); writer.Write(UnknownAssetID74); writer.Write(Unknown78); writer.Write(Unknown7C); writer.Write(Unknown80); writer.Write(Unknown84); writer.Write(Unknown88); writer.Write(Gravity); return(writer.ToArray()); } }
public override byte[] Serialize(Game game, Endianness endianness) { using (var writer = new EndianBinaryWriter(endianness)) { writer.Write(SerializeEntryShrpBase(endianness)); writer.Write(Unknown18); writer.Write(Unknown1C); writer.Write(Unknown20); writer.Write(Unknown24); writer.Write(Unknown28); WritePad(writer, 0x10); writer.Write(Unknown3C); writer.Write(Unknown40); writer.Write(Unknown44); writer.Write(Unknown48); writer.Write(Unknown4C); WritePad(writer, 0x14); writer.Write(Unknown64); WritePad(writer, 0x133); writer.Write(Unknown198); writer.Write(Unknown19A); WritePad(writer, 0x30); writer.Write(PARE_AssetID); writer.Write(Unknown1D0); return(writer.ToArray()); } }
protected override byte[] SerializeDyna(Game game, Endianness endianness) { using (var writer = new EndianBinaryWriter(endianness)) { writer.Write(SerializeDynaUI(endianness)); writer.Write(Text_AssetID); writer.Write(font); writer.Write(fontSizeW); writer.Write(fontSizeH); writer.Write(fontSpacingX); writer.Write(fontSpacingY); writer.Write(textBoxInsetTop); writer.Write(textBoxInsetLeft); writer.Write(textBoxInsetRight); writer.Write(textBoxInsetBottom); writer.Write(justifyX); writer.Write(justifyY); writer.Write(textFlags); writer.Write(ShadowColor); writer.Write(shadowOffsetX); writer.Write(shadowOffsetY); writer.Write(shadowScaleX); writer.Write(shadowScaleY); return(writer.ToArray()); } }
protected override byte[] SerializeDyna(Game game, Endianness endianness) { using (var writer = new EndianBinaryWriter(endianness)) { writer.Write(Spline_AssetID); return(writer.ToArray()); } }
public override byte[] Serialize(Game game, Endianness endianness) { using (var writer = new EndianBinaryWriter(endianness)) { writer.Write(RubberBand); return(writer.ToArray()); } }