├── .gitattributes ├── .github └── workflows │ ├── build.yml │ ├── dev.yml │ ├── release.yml │ └── upload.yml ├── .gitignore ├── CHANGELOG.md ├── CMake └── GenerateVersion.cmake ├── CMakeLists.txt ├── Code ├── Cry3DEngine │ ├── TimeOfDay.cpp │ └── TimeOfDay.h ├── CryAction │ ├── ActionGame.cpp │ ├── ActionGame.h │ ├── ActionMapManager.cpp │ ├── ActionMapManager.h │ ├── ActorIterator.cpp │ ├── ActorIterator.h │ ├── ActorSystem.cpp │ ├── ActorSystem.h │ ├── AnimationGraphSystem.cpp │ ├── AnimationGraphSystem.h │ ├── CallbackTimer.cpp │ ├── CallbackTimer.h │ ├── DebrisMgr.cpp │ ├── DebrisMgr.h │ ├── DebugHistoryManager.cpp │ ├── DebugHistoryManager.h │ ├── DevMode.cpp │ ├── DevMode.h │ ├── DialogSystem.cpp │ ├── DialogSystem.h │ ├── EffectSystem.cpp │ ├── EffectSystem.h │ ├── EquipmentManager.cpp │ ├── EquipmentManager.h │ ├── FlowSystem.cpp │ ├── FlowSystem.h │ ├── GameChannel.cpp │ ├── GameChannel.h │ ├── GameClientChannel.cpp │ ├── GameClientChannel.h │ ├── GameClientNub.cpp │ ├── GameClientNub.h │ ├── GameContext.cpp │ ├── GameContext.h │ ├── GameFramework.cpp │ ├── GameFramework.h │ ├── GameFrameworkCVars.cpp │ ├── GameFrameworkCVars.h │ ├── GameObject.cpp │ ├── GameObject.h │ ├── GameObjectSystem.cpp │ ├── GameObjectSystem.h │ ├── GameQueryListener.cpp │ ├── GameQueryListener.h │ ├── GameRulesSystem.cpp │ ├── GameRulesSystem.h │ ├── GameSerialize.cpp │ ├── GameSerialize.h │ ├── GameServerChannel.cpp │ ├── GameServerChannel.h │ ├── GameServerNub.cpp │ ├── GameServerNub.h │ ├── GameStatsConfig.cpp │ ├── GameStatsConfig.h │ ├── GameTokenSystem.cpp │ ├── GameTokenSystem.h │ ├── GameplayAnalyst.cpp │ ├── GameplayAnalyst.h │ ├── GameplayRecorder.cpp │ ├── GameplayRecorder.h │ ├── ItemParamsNode.cpp │ ├── ItemParamsNode.h │ ├── ItemSystem.cpp │ ├── ItemSystem.h │ ├── ItemSystem_XMLData.cpp │ ├── LevelSystem.cpp │ ├── LevelSystem.h │ ├── MaterialEffects.cpp │ ├── MaterialEffects.h │ ├── MusicLogic.cpp │ ├── MusicLogic.h │ ├── NetworkCVars.cpp │ ├── NetworkCVars.h │ ├── PersistantDebug.cpp │ ├── PersistantDebug.h │ ├── PlayerProfileManager.cpp │ ├── PlayerProfileManager.h │ ├── ScriptBind_AI.cpp │ ├── ScriptBind_AI.h │ ├── ScriptBind_ActionMapManager.cpp │ ├── ScriptBind_ActionMapManager.h │ ├── ScriptBind_Actor.cpp │ ├── ScriptBind_Actor.h │ ├── ScriptBind_CryAction.cpp │ ├── ScriptBind_CryAction.h │ ├── ScriptBind_DialogSystem.cpp │ ├── ScriptBind_DialogSystem.h │ ├── ScriptBind_Inventory.cpp │ ├── ScriptBind_Inventory.h │ ├── ScriptBind_ItemSystem.cpp │ ├── ScriptBind_ItemSystem.h │ ├── ScriptBind_MaterialEffects.cpp │ ├── ScriptBind_MaterialEffects.h │ ├── ScriptBind_Network.cpp │ ├── ScriptBind_Network.h │ ├── ScriptBind_Vehicle.cpp │ ├── ScriptBind_Vehicle.h │ ├── ScriptBind_VehicleSeat.cpp │ ├── ScriptBind_VehicleSeat.h │ ├── ScriptBind_VehicleSystem.cpp │ ├── ScriptBind_VehicleSystem.h │ ├── ScriptRMI.cpp │ ├── ScriptRMI.h │ ├── SubtitleManager.cpp │ ├── SubtitleManager.h │ ├── TimeDemoRecorder.cpp │ ├── TimeDemoRecorder.h │ ├── TimeOfDayScheduler.cpp │ ├── TimeOfDayScheduler.h │ ├── UIDraw.cpp │ ├── UIDraw.h │ ├── Vehicles │ │ ├── Actions │ │ │ ├── VehicleActionEnter.cpp │ │ │ └── VehicleActionEnter.h │ │ ├── DamageBehaviors │ │ │ ├── VehicleDamageBehaviorAISignal.cpp │ │ │ ├── VehicleDamageBehaviorAISignal.h │ │ │ ├── VehicleDamageBehaviorDestroy.cpp │ │ │ ├── VehicleDamageBehaviorDestroy.h │ │ │ ├── VehicleDamageBehaviorDetachPart.cpp │ │ │ ├── VehicleDamageBehaviorDetachPart.h │ │ │ ├── VehicleDamageBehaviorEffect.cpp │ │ │ ├── VehicleDamageBehaviorEffect.h │ │ │ ├── VehicleDamageBehaviorGroup.cpp │ │ │ ├── VehicleDamageBehaviorGroup.h │ │ │ ├── VehicleDamageBehaviorHitPassenger.cpp │ │ │ ├── VehicleDamageBehaviorHitPassenger.h │ │ │ ├── VehicleDamageBehaviorImpulse.cpp │ │ │ ├── VehicleDamageBehaviorImpulse.h │ │ │ ├── VehicleDamageBehaviorIndicator.cpp │ │ │ ├── VehicleDamageBehaviorIndicator.h │ │ │ ├── VehicleDamageBehaviorMovementNotification.cpp │ │ │ ├── VehicleDamageBehaviorMovementNotification.h │ │ │ ├── VehicleDamageBehaviorSink.cpp │ │ │ ├── VehicleDamageBehaviorSink.h │ │ │ ├── VehicleDamageBehaviorSpawnDebris.cpp │ │ │ └── VehicleDamageBehaviorSpawnDebris.h │ │ ├── Implementations │ │ │ ├── Alien_warrior.cpp │ │ │ ├── Alien_warrior.h │ │ │ ├── Asian_aaa.cpp │ │ │ ├── Asian_aaa.h │ │ │ ├── Asian_apc.cpp │ │ │ ├── Asian_apc.h │ │ │ ├── Asian_helicopter.cpp │ │ │ ├── Asian_helicopter.h │ │ │ ├── Asian_ltv.cpp │ │ │ ├── Asian_ltv.h │ │ │ ├── Asian_patrolboat.cpp │ │ │ ├── Asian_patrolboat.h │ │ │ ├── Asian_tank.cpp │ │ │ ├── Asian_tank.h │ │ │ ├── Asian_truck.cpp │ │ │ ├── Asian_truck.h │ │ │ ├── Civ_car1.cpp │ │ │ ├── Civ_car1.h │ │ │ ├── Civ_speedboat.cpp │ │ │ ├── Civ_speedboat.h │ │ │ ├── DefaultVehicle.cpp │ │ │ ├── DefaultVehicle.h │ │ │ ├── US_apc.cpp │ │ │ ├── US_apc.h │ │ │ ├── US_hovercraft.cpp │ │ │ ├── US_hovercraft.h │ │ │ ├── US_ltv.cpp │ │ │ ├── US_ltv.h │ │ │ ├── US_smallboat.cpp │ │ │ ├── US_smallboat.h │ │ │ ├── US_tank.cpp │ │ │ ├── US_tank.h │ │ │ ├── US_transportVTOL.cpp │ │ │ ├── US_transportVTOL.h │ │ │ ├── US_trolley.cpp │ │ │ ├── US_trolley.h │ │ │ ├── US_vtol.cpp │ │ │ └── US_vtol.h │ │ ├── Parts │ │ │ ├── VehiclePartAnimated.cpp │ │ │ ├── VehiclePartAnimated.h │ │ │ ├── VehiclePartAnimatedJoint.cpp │ │ │ ├── VehiclePartAnimatedJoint.h │ │ │ ├── VehiclePartBase.cpp │ │ │ ├── VehiclePartBase.h │ │ │ ├── VehiclePartEntityAttachment.cpp │ │ │ ├── VehiclePartEntityAttachment.h │ │ │ ├── VehiclePartLight.cpp │ │ │ ├── VehiclePartLight.h │ │ │ ├── VehiclePartMassBox.cpp │ │ │ ├── VehiclePartMassBox.h │ │ │ ├── VehiclePartStatic.cpp │ │ │ ├── VehiclePartStatic.h │ │ │ ├── VehiclePartSubPart.cpp │ │ │ ├── VehiclePartSubPart.h │ │ │ ├── VehiclePartSubPartWheel.cpp │ │ │ ├── VehiclePartSubPartWheel.h │ │ │ ├── VehiclePartTread.cpp │ │ │ └── VehiclePartTread.h │ │ ├── SeatActions │ │ │ ├── VehicleSeatActionAnimation.cpp │ │ │ ├── VehicleSeatActionAnimation.h │ │ │ ├── VehicleSeatActionLights.cpp │ │ │ ├── VehicleSeatActionLights.h │ │ │ ├── VehicleSeatActionMovement.cpp │ │ │ ├── VehicleSeatActionMovement.h │ │ │ ├── VehicleSeatActionPassengerIK.cpp │ │ │ ├── VehicleSeatActionPassengerIK.h │ │ │ ├── VehicleSeatActionRotateTurret.cpp │ │ │ ├── VehicleSeatActionRotateTurret.h │ │ │ ├── VehicleSeatActionSound.cpp │ │ │ ├── VehicleSeatActionSound.h │ │ │ ├── VehicleSeatActionSteeringWheel.cpp │ │ │ ├── VehicleSeatActionSteeringWheel.h │ │ │ ├── VehicleSeatActionWeapons.cpp │ │ │ └── VehicleSeatActionWeapons.h │ │ ├── Vehicle.cpp │ │ ├── Vehicle.h │ │ ├── VehicleAnimation.cpp │ │ ├── VehicleAnimation.h │ │ ├── VehicleCVars.cpp │ │ ├── VehicleCVars.h │ │ ├── VehicleComponent.cpp │ │ ├── VehicleComponent.h │ │ ├── VehicleDamagesTemplateRegistry.cpp │ │ ├── VehicleDamagesTemplateRegistry.h │ │ ├── VehicleDamagesTemplateRegistry_XMLData.cpp │ │ ├── VehicleIterator.cpp │ │ ├── VehicleIterator.h │ │ ├── VehiclePartDetached.cpp │ │ ├── VehiclePartDetached.h │ │ ├── VehicleSeat.cpp │ │ ├── VehicleSeat.h │ │ ├── VehicleSeatGroup.cpp │ │ ├── VehicleSeatGroup.h │ │ ├── VehicleSeatSerializer.cpp │ │ ├── VehicleSeatSerializer.h │ │ ├── VehicleSystem.cpp │ │ ├── VehicleSystem.h │ │ └── Views │ │ │ ├── VehicleViewActionThirdPerson.cpp │ │ │ ├── VehicleViewActionThirdPerson.h │ │ │ ├── VehicleViewFirstPerson.cpp │ │ │ ├── VehicleViewFirstPerson.h │ │ │ ├── VehicleViewThirdPerson.cpp │ │ │ └── VehicleViewThirdPerson.h │ ├── ViewSystem.cpp │ └── ViewSystem.h ├── CryCommon │ ├── Cry3DEngine │ │ ├── CGF │ │ │ ├── CGFContent.h │ │ │ ├── CryCompiledFile.h │ │ │ ├── CryHeaders.h │ │ │ └── IChunkFile.h │ │ ├── CryEngineDecalInfo.h │ │ ├── CryParticleSpawnInfo.h │ │ ├── CryVertexBinding.h │ │ ├── I3DEngine.h │ │ ├── I3DSampler.h │ │ ├── IFoliage.h │ │ ├── IIndexedMesh.h │ │ ├── ILMSerializationManager.h │ │ ├── IMaterial.h │ │ ├── ISplines.h │ │ ├── IStatObj.h │ │ ├── ISurfaceType.h │ │ ├── LMCompStructures.h │ │ └── ParticleParams.h │ ├── CryAISystem │ │ ├── AIFormationDescriptor.h │ │ ├── AITrackPatternDescriptor.h │ │ ├── AgentParams.h │ │ ├── IAIAction.h │ │ ├── IAIGroup.h │ │ ├── IAIRecorder.h │ │ ├── IAISystem.h │ │ ├── IAgent.h │ │ └── IInterestSystem.h │ ├── CryAction │ │ ├── IActionMapManager.h │ │ ├── IActorSystem.h │ │ ├── IAnimatedCharacter.h │ │ ├── IAnimationGraph.h │ │ ├── IAnimationGraphSystem.h │ │ ├── IAnimationStateNode.h │ │ ├── IDebrisMgr.h │ │ ├── IDebugHistory.h │ │ ├── IDialogSystem.h │ │ ├── IEffectSystem.h │ │ ├── IFlowSystem.h │ │ ├── IGameFramework.h │ │ ├── IGameObject.h │ │ ├── IGameObjectSystem.h │ │ ├── IGameRulesSystem.h │ │ ├── IGameTokens.h │ │ ├── IGameplayRecorder.h │ │ ├── IInteractor.h │ │ ├── IItem.h │ │ ├── IItemSystem.h │ │ ├── ILevelSystem.h │ │ ├── ILoadGame.h │ │ ├── IMaterialEffects.h │ │ ├── IMovementController.h │ │ ├── IPlayerProfiles.h │ │ ├── ISaveGame.h │ │ ├── ISubtitleManager.h │ │ ├── IUIDraw.h │ │ ├── IVehicleSystem.h │ │ ├── IViewSystem.h │ │ ├── IWeapon.h │ │ ├── IWorldQuery.h │ │ └── Network │ │ │ └── NetActionSync.h │ ├── CryAnimation │ │ ├── CryAnimationScriptCommands.h │ │ ├── CryCharAnimationParams.h │ │ ├── CryCharMorphParams.h │ │ ├── ICryAnimation.h │ │ ├── IFacialAnimation.h │ │ └── IJoystick.h │ ├── CryCore │ │ ├── ConfigurableVariant.h │ │ ├── CryArray.h │ │ ├── CryFixedString.h │ │ ├── CryMalloc.h │ │ ├── CryName.h │ │ ├── CryPodArray.h │ │ ├── CrySizer.h │ │ ├── CryString.h │ │ ├── Endian.h │ │ ├── MiniQueue.h │ │ ├── MultiThread.h │ │ ├── PoolAllocator.h │ │ ├── PoolAllocatorSynchronization.h │ │ ├── StlUtils.h │ │ ├── StringUtils.h │ │ ├── TArray.h │ │ ├── Typelist.h │ │ ├── TypelistUtils.h │ │ ├── VectorMap.h │ │ ├── VectorSet.h │ │ ├── crc32.h │ │ ├── functor.h │ │ ├── platform.h │ │ └── smartptr.h │ ├── CryEntitySystem │ │ ├── EntityId.h │ │ ├── IEntity.h │ │ ├── IEntityClass.h │ │ ├── IEntityProxy.h │ │ ├── IEntityRenderState.h │ │ ├── IEntitySerialize.h │ │ └── IEntitySystem.h │ ├── CryFont │ │ └── IFont.h │ ├── CryGame │ │ ├── CoherentValue.h │ │ ├── GameUtils.h │ │ ├── IGame.h │ │ ├── IGameRef.h │ │ └── IGameStartup.h │ ├── CryInput │ │ └── IInput.h │ ├── CryMath │ │ ├── AABBSV.h │ │ ├── Cry_Camera.h │ │ ├── Cry_Color.h │ │ ├── Cry_Geo.h │ │ ├── Cry_GeoDistance.h │ │ ├── Cry_GeoIntersect.h │ │ ├── Cry_GeoOverlap.h │ │ ├── Cry_Math.h │ │ ├── Cry_Matrix.h │ │ ├── Cry_Quat.h │ │ ├── Cry_ValidNumber.h │ │ ├── Cry_Vector2.h │ │ ├── Cry_Vector3.h │ │ ├── GeomQuery.h │ │ └── Range.h │ ├── CryMovie │ │ ├── AnimKey.h │ │ └── IMovieSystem.h │ ├── CryNetwork │ │ ├── INetwork.h │ │ ├── INetworkService.h │ │ ├── IRemoteControl.h │ │ ├── ISerialize.h │ │ ├── ISimpleHttpServer.h │ │ ├── NetHelpers.h │ │ ├── SerializationTypes.h │ │ └── SerializeFwd.h │ ├── CryPhysics │ │ ├── IPhysics.h │ │ ├── physinterface.h │ │ └── primitives.h │ ├── CryRenderer │ │ ├── IRenderAuxGeom.h │ │ ├── IRenderMesh.h │ │ ├── IRenderer.h │ │ ├── IShader.h │ │ ├── ISkinnable.h │ │ ├── IVideoPlayer.h │ │ ├── RendElement.h │ │ ├── VertexBufferSource.h │ │ └── VertexFormats.h │ ├── CryScriptSystem │ │ └── IScriptSystem.h │ ├── CrySoundSystem │ │ ├── IMusicSystem.h │ │ ├── IReverbManager.h │ │ ├── ISound.h │ │ └── ISoundMoodManager.h │ └── CrySystem │ │ ├── CryColorCode.h │ │ ├── CryFile.h │ │ ├── CryFind.h │ │ ├── CryPath.h │ │ ├── CryVersion.h │ │ ├── FrameProfiler.h │ │ ├── IAVI_Reader.h │ │ ├── IBudgetingSystem.h │ │ ├── ICmdLine.h │ │ ├── IConsole.h │ │ ├── ICryPak.h │ │ ├── IDataProbe.h │ │ ├── IFlashPlayer.h │ │ ├── IGlobalTaskScheduler.h │ │ ├── IHardwareMouse.h │ │ ├── ILog.h │ │ ├── IProcess.h │ │ ├── IReadWriteXMLSink.h │ │ ├── IResourceCollector.h │ │ ├── IStreamEngine.h │ │ ├── ISystem.h │ │ ├── ITestSystem.h │ │ ├── ITextModeConsole.h │ │ ├── IThreadTask.h │ │ ├── ITimer.h │ │ ├── IValidator.h │ │ ├── IXml.h │ │ ├── TimeValue.h │ │ └── gEnv.h ├── CryGame │ ├── Actors │ │ ├── Actor.cpp │ │ ├── Actor.h │ │ ├── Alien │ │ │ ├── Alien.cpp │ │ │ ├── Alien.h │ │ │ ├── CompatibilityAlienMovementController.cpp │ │ │ ├── CompatibilityAlienMovementController.h │ │ │ ├── Hunter.cpp │ │ │ ├── Hunter.h │ │ │ ├── Observer.cpp │ │ │ ├── Observer.h │ │ │ ├── Scout.cpp │ │ │ ├── Scout.h │ │ │ ├── Trooper.cpp │ │ │ └── Trooper.h │ │ ├── GrabHandler.cpp │ │ ├── GrabHandler.h │ │ ├── Player │ │ │ ├── IPlayerInput.h │ │ │ ├── NanoSuit.cpp │ │ │ ├── NanoSuit.h │ │ │ ├── NetPlayerInput.cpp │ │ │ ├── NetPlayerInput.h │ │ │ ├── Player.cpp │ │ │ ├── Player.h │ │ │ ├── PlayerInput.cpp │ │ │ ├── PlayerInput.h │ │ │ ├── PlayerMovement.cpp │ │ │ ├── PlayerMovement.h │ │ │ ├── PlayerMovementController.cpp │ │ │ ├── PlayerMovementController.h │ │ │ ├── PlayerRotation.cpp │ │ │ ├── PlayerRotation.h │ │ │ ├── PlayerView.cpp │ │ │ ├── PlayerView.h │ │ │ ├── WeaponAttachmentManager.cpp │ │ │ └── WeaponAttachmentManager.h │ │ ├── ScreenEffects.cpp │ │ ├── ScreenEffects.h │ │ ├── ScriptBind_Actor.cpp │ │ ├── ScriptBind_Actor.h │ │ └── Shark │ │ │ ├── Shark.cpp │ │ │ ├── Shark.h │ │ │ ├── SharkMovementController.cpp │ │ │ └── SharkMovementController.h │ ├── BulletTime.cpp │ ├── BulletTime.h │ ├── ClientSynchedStorage.cpp │ ├── ClientSynchedStorage.h │ ├── Environment │ │ ├── BattleDust.cpp │ │ ├── BattleDust.h │ │ ├── Shake.cpp │ │ ├── Shake.h │ │ └── Tornado │ │ │ ├── FlowTornado.cpp │ │ │ ├── FlowTornado.h │ │ │ ├── Tornado.cpp │ │ │ └── Tornado.h │ ├── FlashAnimation.cpp │ ├── FlashAnimation.h │ ├── Game.cpp │ ├── Game.h │ ├── GameActions.cpp │ ├── GameActions.h │ ├── GameCVars.cpp │ ├── GameCVars.h │ ├── GameFactory.cpp │ ├── GameFactory.h │ ├── GameRules.cpp │ ├── GameRules.h │ ├── GameRulesClientServer.cpp │ ├── HUD │ │ ├── FlashPlayerNULL.h │ │ ├── GameFlashAnimation.cpp │ │ ├── GameFlashAnimation.h │ │ ├── GameFlashLogic.cpp │ │ ├── GameFlashLogic.h │ │ ├── HUD.cpp │ │ ├── HUD.h │ │ ├── HUDAirStrike.cpp │ │ ├── HUDCommon.cpp │ │ ├── HUDCommon.h │ │ ├── HUDCrosshair.cpp │ │ ├── HUDCrosshair.h │ │ ├── HUDEnums.h │ │ ├── HUDHealthEnergyWeapon.cpp │ │ ├── HUDInterfaceEffects.cpp │ │ ├── HUDMissionObjectiveSystem.cpp │ │ ├── HUDMissionObjectiveSystem.h │ │ ├── HUDObituary.cpp │ │ ├── HUDObituary.h │ │ ├── HUDObject.cpp │ │ ├── HUDObject.h │ │ ├── HUDPDA.cpp │ │ ├── HUDPowerStruggle.cpp │ │ ├── HUDPowerStruggle.h │ │ ├── HUDRadar.cpp │ │ ├── HUDRadar.h │ │ ├── HUDScopes.cpp │ │ ├── HUDScopes.h │ │ ├── HUDScore.cpp │ │ ├── HUDScore.h │ │ ├── HUDSilhouettes.cpp │ │ ├── HUDSilhouettes.h │ │ ├── HUDSoundImpl.cpp │ │ ├── HUDTagNames.cpp │ │ ├── HUDTagNames.h │ │ ├── HUDTeamInstantAction.cpp │ │ ├── HUDTeamInstantAction.h │ │ ├── HUDTextArea.cpp │ │ ├── HUDTextArea.h │ │ ├── HUDTextChat.cpp │ │ ├── HUDTextChat.h │ │ ├── HUDTextEvents.cpp │ │ ├── HUDVehicleInterface.cpp │ │ ├── HUDVehicleInterface.h │ │ ├── HUDWeaponAccessories.cpp │ │ ├── ScriptBind_HUD.cpp │ │ └── ScriptBind_HUD.h │ ├── Items │ │ ├── FlowItemAnimation.cpp │ │ ├── FlowItemAnimation.h │ │ ├── Item.cpp │ │ ├── Item.h │ │ ├── ItemAccessory.cpp │ │ ├── ItemClientServer.cpp │ │ ├── ItemDualWield.cpp │ │ ├── ItemEffect.cpp │ │ ├── ItemEvents.cpp │ │ ├── ItemParamReader.h │ │ ├── ItemParams.cpp │ │ ├── ItemResource.cpp │ │ ├── ItemScheduler.cpp │ │ ├── ItemScheduler.h │ │ ├── ItemSharedParams.cpp │ │ ├── ItemSharedParams.h │ │ ├── ItemString.cpp │ │ ├── ItemString.h │ │ ├── ItemView.cpp │ │ ├── Lam.cpp │ │ ├── Lam.h │ │ ├── PlayerFeature.cpp │ │ ├── PlayerFeature.h │ │ ├── ScriptBind_Item.cpp │ │ ├── ScriptBind_Item.h │ │ └── Weapons │ │ │ ├── AmmoParams.cpp │ │ │ ├── AmmoParams.h │ │ │ ├── AmmoPickup.cpp │ │ │ ├── AmmoPickup.h │ │ │ ├── Binocular.cpp │ │ │ ├── Binocular.h │ │ │ ├── C4.cpp │ │ │ ├── C4.h │ │ │ ├── C4Detonator.cpp │ │ │ ├── C4Detonator.h │ │ │ ├── DebugGun.cpp │ │ │ ├── DebugGun.h │ │ │ ├── FireModes │ │ │ ├── Automatic.cpp │ │ │ ├── Automatic.h │ │ │ ├── Beam.cpp │ │ │ ├── Beam.h │ │ │ ├── Burst.cpp │ │ │ ├── Burst.h │ │ │ ├── Charge.cpp │ │ │ ├── Charge.h │ │ │ ├── Detonate.cpp │ │ │ ├── Detonate.h │ │ │ ├── FreezingBeam.cpp │ │ │ ├── FreezingBeam.h │ │ │ ├── Melee.cpp │ │ │ ├── Melee.h │ │ │ ├── Plant.cpp │ │ │ ├── Plant.h │ │ │ ├── Rapid.cpp │ │ │ ├── Rapid.h │ │ │ ├── Scan.cpp │ │ │ ├── Scan.h │ │ │ ├── Shotgun.cpp │ │ │ ├── Shotgun.h │ │ │ ├── Single.cpp │ │ │ ├── Single.h │ │ │ ├── SingleTG.cpp │ │ │ ├── SingleTG.h │ │ │ ├── Throw.cpp │ │ │ ├── Throw.h │ │ │ ├── WorkOnTarget.cpp │ │ │ └── WorkOnTarget.h │ │ │ ├── Fists.cpp │ │ │ ├── Fists.h │ │ │ ├── GunTurret.cpp │ │ │ ├── GunTurret.h │ │ │ ├── OffHand.cpp │ │ │ ├── OffHand.h │ │ │ ├── Projectile.cpp │ │ │ ├── Projectile.h │ │ │ ├── Projectiles │ │ │ ├── AVMine.cpp │ │ │ ├── AVMine.h │ │ │ ├── Bullet.cpp │ │ │ ├── Bullet.h │ │ │ ├── C4Projectile.cpp │ │ │ ├── C4Projectile.h │ │ │ ├── Claymore.cpp │ │ │ ├── Claymore.h │ │ │ ├── EMPField.cpp │ │ │ ├── EMPField.h │ │ │ ├── HomingMissile.cpp │ │ │ ├── HomingMissile.h │ │ │ ├── Rock.cpp │ │ │ ├── Rock.h │ │ │ ├── Rocket.cpp │ │ │ ├── Rocket.h │ │ │ ├── TacBullet.cpp │ │ │ ├── TacBullet.h │ │ │ ├── TagBullet.cpp │ │ │ └── TagBullet.h │ │ │ ├── ReferenceWeapon.cpp │ │ │ ├── ReferenceWeapon.h │ │ │ ├── RocketLauncher.cpp │ │ │ ├── RocketLauncher.h │ │ │ ├── ScriptBind_Weapon.cpp │ │ │ ├── ScriptBind_Weapon.h │ │ │ ├── ThrowableWeapon.cpp │ │ │ ├── ThrowableWeapon.h │ │ │ ├── TracerManager.cpp │ │ │ ├── TracerManager.h │ │ │ ├── VehicleWeapon.cpp │ │ │ ├── VehicleWeapon.h │ │ │ ├── Weapon.cpp │ │ │ ├── Weapon.h │ │ │ ├── WeaponClientServer.cpp │ │ │ ├── WeaponEvent.cpp │ │ │ ├── WeaponInput.cpp │ │ │ ├── WeaponSystem.cpp │ │ │ ├── WeaponSystem.h │ │ │ ├── WeaponSystem_XMLData.cpp │ │ │ └── ZoomModes │ │ │ ├── IronSight.cpp │ │ │ ├── IronSight.h │ │ │ ├── Scope.cpp │ │ │ └── Scope.h │ ├── MPTutorial.cpp │ ├── MPTutorial.h │ ├── Menus │ │ ├── CreateGame.cpp │ │ ├── CreateGame.h │ │ ├── FlashMenuObject.cpp │ │ ├── FlashMenuObject.h │ │ ├── FlashMenuObjectOptions.cpp │ │ ├── FlashMenuObjectProfiles.cpp │ │ ├── FlashMenuObjectSingleplayer.cpp │ │ ├── FlashMenuScreen.cpp │ │ ├── FlashMenuScreen.h │ │ ├── GameNetworkProfile.cpp │ │ ├── GameNetworkProfile.h │ │ ├── MPHub.cpp │ │ ├── MPHub.h │ │ ├── MPLobbyUI.cpp │ │ ├── MPLobbyUI.h │ │ ├── MultiplayerMenu.cpp │ │ ├── MultiplayerMenu.h │ │ ├── OptionsManager.cpp │ │ ├── OptionsManager.h │ │ ├── QuickGame.cpp │ │ └── QuickGame.h │ ├── NetInputChainDebug.cpp │ ├── NetInputChainDebug.h │ ├── Nodes │ │ ├── FlowActorSensor.cpp │ │ ├── FlowFadeNode.cpp │ │ ├── FlowHitInfoNode.cpp │ │ ├── FlowNanoSuitNodes.cpp │ │ ├── FlowPlayerStagingNode.cpp │ │ ├── FlowPostFXNodes.cpp │ │ ├── FlowVehicleNodes.cpp │ │ ├── G2FlowBaseNode.h │ │ ├── HUDNodes.cpp │ │ ├── MPNodes.cpp │ │ └── WeaponNodes.cpp │ ├── Radio.cpp │ ├── Radio.h │ ├── SPAnalyst.cpp │ ├── SPAnalyst.h │ ├── ScriptBind_Game.cpp │ ├── ScriptBind_Game.h │ ├── ScriptBind_GameRules.cpp │ ├── ScriptBind_GameRules.h │ ├── ScriptControlledPhysics.cpp │ ├── ScriptControlledPhysics.h │ ├── ScriptUtils.cpp │ ├── ScriptUtils.h │ ├── ServerSynchedStorage.cpp │ ├── ServerSynchedStorage.h │ ├── ShotValidator.cpp │ ├── ShotValidator.h │ ├── SoundMoods.cpp │ ├── SoundMoods.h │ ├── SynchedStorage.cpp │ ├── SynchedStorage.h │ ├── Vehicles │ │ ├── Action │ │ │ ├── VehicleActionAutomaticDoor.cpp │ │ │ ├── VehicleActionAutomaticDoor.h │ │ │ ├── VehicleActionDeployRope.cpp │ │ │ ├── VehicleActionDeployRope.h │ │ │ ├── VehicleActionEntityAttachment.cpp │ │ │ ├── VehicleActionEntityAttachment.h │ │ │ ├── VehicleActionLandingGears.cpp │ │ │ └── VehicleActionLandingGears.h │ │ ├── Damage │ │ │ ├── VehicleDamageBehaviorBurn.cpp │ │ │ ├── VehicleDamageBehaviorBurn.h │ │ │ ├── VehicleDamageBehaviorCameraShake.cpp │ │ │ ├── VehicleDamageBehaviorCameraShake.h │ │ │ ├── VehicleDamageBehaviorCollisionEx.cpp │ │ │ ├── VehicleDamageBehaviorCollisionEx.h │ │ │ ├── VehicleDamageBehaviorExplosion.cpp │ │ │ ├── VehicleDamageBehaviorExplosion.h │ │ │ ├── VehicleDamageBehaviorTire.cpp │ │ │ └── VehicleDamageBehaviorTire.h │ │ ├── Movement │ │ │ ├── VehicleMovementAmphibious.cpp │ │ │ ├── VehicleMovementAmphibious.h │ │ │ ├── VehicleMovementBase.cpp │ │ │ ├── VehicleMovementBase.h │ │ │ ├── VehicleMovementHelicopter.cpp │ │ │ ├── VehicleMovementHelicopter.h │ │ │ ├── VehicleMovementHovercraft.cpp │ │ │ ├── VehicleMovementHovercraft.h │ │ │ ├── VehicleMovementStdBoat.cpp │ │ │ ├── VehicleMovementStdBoat.h │ │ │ ├── VehicleMovementStdWheeled.cpp │ │ │ ├── VehicleMovementStdWheeled.h │ │ │ ├── VehicleMovementTank.cpp │ │ │ ├── VehicleMovementTank.h │ │ │ ├── VehicleMovementTweaks.cpp │ │ │ ├── VehicleMovementTweaks.h │ │ │ ├── VehicleMovementVTOL.cpp │ │ │ ├── VehicleMovementVTOL.h │ │ │ ├── VehicleMovementWarrior.cpp │ │ │ └── VehicleMovementWarrior.h │ │ ├── VehicleClient.cpp │ │ └── VehicleClient.h │ ├── Voting.cpp │ └── Voting.h ├── CryMP │ ├── Client │ │ ├── Advertising.cpp │ │ ├── Advertising.h │ │ ├── Client.cpp │ │ ├── Client.h │ │ ├── DrawTools.cpp │ │ ├── DrawTools.h │ │ ├── EngineCache.cpp │ │ ├── EngineCache.h │ │ ├── FFontHooks.cpp │ │ ├── FFontHooks.h │ │ ├── FileCache.cpp │ │ ├── FileCache.h │ │ ├── FileDownloader.cpp │ │ ├── FileDownloader.h │ │ ├── MapDownloader.cpp │ │ ├── MapDownloader.h │ │ ├── MapExtractor.cpp │ │ ├── MapExtractor.h │ │ ├── ParticleManager.cpp │ │ ├── ParticleManager.h │ │ ├── ScriptBind_CPPAPI.cpp │ │ ├── ScriptBind_CPPAPI.h │ │ ├── ScriptCallbacks.cpp │ │ ├── ScriptCallbacks.h │ │ ├── ScriptCommands.cpp │ │ ├── ScriptCommands.h │ │ ├── ServerBrowser.cpp │ │ ├── ServerBrowser.h │ │ ├── ServerConnector.cpp │ │ ├── ServerConnector.h │ │ ├── ServerInfo.cpp │ │ ├── ServerInfo.h │ │ ├── ServerPAK.cpp │ │ ├── ServerPAK.h │ │ ├── SpeedAggregator.cpp │ │ ├── SpeedAggregator.h │ │ ├── WeatherSystem.cpp │ │ └── WeatherSystem.h │ ├── Common │ │ ├── Executor.cpp │ │ ├── Executor.h │ │ ├── GSMasterHook.cpp │ │ ├── GSMasterHook.h │ │ ├── HTTP.cpp │ │ ├── HTTP.h │ │ ├── HTTPClient.cpp │ │ └── HTTPClient.h │ └── Server │ │ ├── Server.cpp │ │ └── Server.h ├── CryScriptSystem │ ├── FunctionHandler.cpp │ ├── FunctionHandler.h │ ├── LuaLibs │ │ └── bitlib.c │ ├── ScriptBindings │ │ ├── ScriptBind_Movie.cpp │ │ ├── ScriptBind_Movie.h │ │ ├── ScriptBind_Particle.cpp │ │ ├── ScriptBind_Particle.h │ │ ├── ScriptBind_Physics.cpp │ │ ├── ScriptBind_Physics.h │ │ ├── ScriptBind_Script.cpp │ │ ├── ScriptBind_Script.h │ │ ├── ScriptBind_Sound.cpp │ │ ├── ScriptBind_Sound.h │ │ ├── ScriptBind_System.cpp │ │ ├── ScriptBind_System.h │ │ ├── ScriptBindings.cpp │ │ └── ScriptBindings.h │ ├── ScriptSystem.cpp │ ├── ScriptSystem.h │ ├── ScriptTable.cpp │ ├── ScriptTable.h │ ├── ScriptTimerManager.cpp │ ├── ScriptTimerManager.h │ ├── ScriptUtil.cpp │ └── ScriptUtil.h ├── CrySystem │ ├── CPUInfo.cpp │ ├── CPUInfo.h │ ├── CryLog.cpp │ ├── CryLog.h │ ├── CryMemoryManager.cpp │ ├── CryMemoryManager.h │ ├── CryPak.cpp │ ├── CryPak.h │ ├── GameWindow.cpp │ ├── GameWindow.h │ ├── HardwareMouse.cpp │ ├── HardwareMouse.h │ ├── LocalizationManager.cpp │ ├── LocalizationManager.h │ ├── Logger.cpp │ ├── Logger.h │ ├── Pak │ │ ├── FileInZipPak.cpp │ │ ├── FileInZipPak.h │ │ ├── FileOutsidePak.cpp │ │ ├── FileOutsidePak.h │ │ ├── IFileInPak.h │ │ ├── IPak.h │ │ ├── ZipCache.cpp │ │ ├── ZipCache.h │ │ ├── ZipPak.cpp │ │ └── ZipPak.h │ ├── RandomGenerator.cpp │ ├── RandomGenerator.h │ ├── ResourceList.cpp │ ├── ResourceList.h │ ├── StreamEngine.cpp │ └── StreamEngine.h ├── Launcher │ ├── Launcher.cpp │ ├── Launcher.h │ ├── Main.cpp │ ├── MemoryPatch.cpp │ ├── MemoryPatch.h │ ├── Resources.h │ ├── StartupTime.cpp │ └── StartupTime.h └── Library │ ├── CPUID.cpp │ ├── CPUID.h │ ├── CrashLogger.cpp │ ├── CrashLogger.h │ ├── DigitCount.h │ ├── PathTools.cpp │ ├── PathTools.h │ ├── PathTree.h │ ├── SlotVector.h │ ├── StlportMap.h │ ├── StlportSet.h │ ├── StlportVector.h │ ├── StringTools.cpp │ ├── StringTools.h │ ├── Util.cpp │ ├── Util.h │ ├── WinAPI.cpp │ └── WinAPI.h ├── Pak ├── CryMP │ └── Scripts │ │ ├── Client.lua │ │ ├── Entities │ │ ├── Actor │ │ │ ├── BasicActor.lua │ │ │ └── Player.lua │ │ ├── Updater.lua │ │ └── vehicles │ │ │ └── VehicleBase.lua │ │ ├── GameRules │ │ ├── InstantAction.lua │ │ ├── PowerStruggle.lua │ │ ├── PowerStruggleAlert.lua │ │ └── TeamInstantAction.lua │ │ ├── JSON.lua │ │ ├── Localization.lua │ │ ├── RPC.lua │ │ └── common.lua ├── Entities │ └── Updater.ent ├── Fonts │ ├── DejaVuSansMono.ttf │ ├── DejaVuSansMono_LICENSE.txt │ ├── console.xml │ ├── default.xml │ └── hud.xml ├── Levels │ └── Multiplayer │ │ └── IA │ │ ├── Armada │ │ └── Armada.xml │ │ ├── Hawaii │ │ └── Hawaii.xml │ │ ├── Outpost │ │ └── Outpost.xml │ │ ├── Quarry │ │ └── Quarry.xml │ │ └── Steelmill │ │ └── Steelmill.xml ├── Libs │ └── UI │ │ ├── HUD_ChatSystem.gfx │ │ ├── HUD_ChatSystem_HR.gfx │ │ ├── HUD_Crosshair.gfx │ │ ├── HUD_FriendlyCross.gfx │ │ ├── HUD_HitIndicatorPlayer.gfx │ │ ├── HUD_HitIndicatorVehicle.gfx │ │ ├── HUD_InterActiveIcons.gfx │ │ ├── HUD_KillLog.gfx │ │ ├── HUD_MP_Radio_Buttons.gfx │ │ ├── HUD_MultiplayerScoreboard_TDM.gfx │ │ ├── HUD_PDA_Buy.gfx │ │ ├── HUD_Spectate.gfx │ │ ├── HUD_Swing-O-Meter.gfx │ │ ├── HUD_TIAScore.gfx │ │ ├── HUD_VehicleStats.gfx │ │ ├── HUD_WeaponAccessories.gfx │ │ └── Menus_Loading_MP.gfx └── Objects │ ├── Characters │ └── Human │ │ ├── Asian │ │ └── Nanosuit │ │ │ └── nanosuit_asian_fp3p.cdf │ │ ├── US │ │ └── NanoSuit │ │ │ └── nanosuit_us_fp3p.cdf │ │ └── story │ │ ├── Harry_Cortez │ │ ├── Harry_Cortez.cdf │ │ └── harry_cortez_chute.cdf │ │ ├── Kyong │ │ └── Kyong.cdf │ │ ├── Laurence_Barnes │ │ ├── Laurence_Barnes.cdf │ │ └── laurence_barnes_face.cdf │ │ ├── Martin_Hawker │ │ ├── Martin_Hawker.cdf │ │ └── Martin_Hawker_face.cdf │ │ └── Michael_Sykes │ │ ├── Michael_Sykes.cdf │ │ └── michael_sykes_face.cdf │ └── Vehicles │ ├── Asian_Tank │ ├── asian_tank.mtl │ ├── asian_tank_nk.mtl │ └── asian_tank_us.mtl │ ├── US_APC │ ├── us_apc.mtl │ └── us_apc_nk.mtl │ └── US_Tank │ ├── us_tank.mtl │ └── us_tank_nk.mtl ├── README.md ├── Resources ├── ClientIcon.ico ├── ClientLauncher.rc ├── CursorAmber.cur ├── CursorBlue.cur ├── CursorGreen.cur ├── CursorRed.cur ├── CursorWhite.cur ├── Launcher.manifest ├── ServerIcon.ico └── ServerLauncher.rc ├── ThirdParty ├── Lua │ ├── COPYRIGHT │ ├── HISTORY │ ├── INSTALL │ ├── Makefile │ ├── README │ ├── doc │ │ ├── contents.html │ │ ├── cover.png │ │ ├── logo.gif │ │ ├── lua.1 │ │ ├── lua.css │ │ ├── lua.html │ │ ├── luac.1 │ │ ├── luac.html │ │ ├── manual.css │ │ ├── manual.html │ │ └── readme.html │ ├── etc │ │ ├── Makefile │ │ ├── README │ │ ├── all.c │ │ ├── lua.hpp │ │ ├── lua.ico │ │ ├── lua.pc │ │ ├── luavs.bat │ │ ├── min.c │ │ ├── noparser.c │ │ └── strict.lua │ ├── src │ │ ├── Makefile │ │ ├── lapi.c │ │ ├── lapi.h │ │ ├── lauxlib.c │ │ ├── lauxlib.h │ │ ├── lbaselib.c │ │ ├── lcode.c │ │ ├── lcode.h │ │ ├── ldblib.c │ │ ├── ldebug.c │ │ ├── ldebug.h │ │ ├── ldo.c │ │ ├── ldo.h │ │ ├── ldump.c │ │ ├── lfunc.c │ │ ├── lfunc.h │ │ ├── lgc.c │ │ ├── lgc.h │ │ ├── linit.c │ │ ├── liolib.c │ │ ├── llex.c │ │ ├── llex.h │ │ ├── llimits.h │ │ ├── lmathlib.c │ │ ├── lmem.c │ │ ├── lmem.h │ │ ├── loadlib.c │ │ ├── lobject.c │ │ ├── lobject.h │ │ ├── lopcodes.c │ │ ├── lopcodes.h │ │ ├── loslib.c │ │ ├── lparser.c │ │ ├── lparser.h │ │ ├── lstate.c │ │ ├── lstate.h │ │ ├── lstring.c │ │ ├── lstring.h │ │ ├── lstrlib.c │ │ ├── ltable.c │ │ ├── ltable.h │ │ ├── ltablib.c │ │ ├── ltm.c │ │ ├── ltm.h │ │ ├── lua.c │ │ ├── lua.h │ │ ├── luac.c │ │ ├── luaconf.h │ │ ├── lualib.h │ │ ├── lundump.c │ │ ├── lundump.h │ │ ├── lvm.c │ │ ├── lvm.h │ │ ├── lzio.c │ │ ├── lzio.h │ │ └── print.c │ └── test │ │ ├── README │ │ ├── bisect.lua │ │ ├── cf.lua │ │ ├── echo.lua │ │ ├── env.lua │ │ ├── factorial.lua │ │ ├── fib.lua │ │ ├── fibfor.lua │ │ ├── globals.lua │ │ ├── hello.lua │ │ ├── life.lua │ │ ├── luac.lua │ │ ├── printf.lua │ │ ├── readonly.lua │ │ ├── sieve.lua │ │ ├── sort.lua │ │ ├── table.lua │ │ ├── trace-calls.lua │ │ ├── trace-globals.lua │ │ └── xd.lua ├── mimalloc │ ├── LICENSE │ ├── README.md │ ├── include │ │ ├── mimalloc-new-delete.h │ │ ├── mimalloc-override.h │ │ ├── mimalloc.h │ │ └── mimalloc │ │ │ ├── atomic.h │ │ │ ├── internal.h │ │ │ ├── prim.h │ │ │ ├── track.h │ │ │ └── types.h │ └── src │ │ ├── alloc-aligned.c │ │ ├── alloc-override.c │ │ ├── alloc-posix.c │ │ ├── alloc.c │ │ ├── arena.c │ │ ├── bitmap.c │ │ ├── bitmap.h │ │ ├── heap.c │ │ ├── init.c │ │ ├── options.c │ │ ├── os.c │ │ ├── page-queue.c │ │ ├── page.c │ │ ├── prim │ │ ├── osx │ │ │ ├── alloc-override-zone.c │ │ │ └── prim.c │ │ ├── prim.c │ │ ├── readme.md │ │ ├── unix │ │ │ └── prim.c │ │ ├── wasi │ │ │ └── prim.c │ │ └── windows │ │ │ ├── etw-mimalloc.wprp │ │ │ ├── etw.h │ │ │ ├── etw.man │ │ │ ├── prim.c │ │ │ └── readme.md │ │ ├── random.c │ │ ├── segment-map.c │ │ ├── segment.c │ │ ├── static.c │ │ └── stats.c ├── miniz │ ├── ChangeLog.md │ ├── LICENSE │ ├── miniz.c │ ├── miniz.h │ └── readme.md ├── nlohmann │ ├── json.hpp │ └── json_fwd.hpp ├── picosha2.h └── tracy │ └── public │ ├── TracyClient.cpp │ ├── client │ ├── TracyAlloc.cpp │ ├── TracyArmCpuTable.hpp │ ├── TracyCallstack.cpp │ ├── TracyCallstack.h │ ├── TracyCallstack.hpp │ ├── TracyCpuid.hpp │ ├── TracyDebug.hpp │ ├── TracyDxt1.cpp │ ├── TracyDxt1.hpp │ ├── TracyFastVector.hpp │ ├── TracyLock.hpp │ ├── TracyOverride.cpp │ ├── TracyProfiler.cpp │ ├── TracyProfiler.hpp │ ├── TracyRingBuffer.hpp │ ├── TracyScoped.hpp │ ├── TracyStringHelpers.hpp │ ├── TracySysPower.cpp │ ├── TracySysPower.hpp │ ├── TracySysTime.cpp │ ├── TracySysTime.hpp │ ├── TracySysTrace.cpp │ ├── TracySysTrace.hpp │ ├── TracyThread.hpp │ ├── tracy_SPSCQueue.h │ ├── tracy_concurrentqueue.h │ ├── tracy_rpmalloc.cpp │ └── tracy_rpmalloc.hpp │ ├── common │ ├── TracyAlign.hpp │ ├── TracyAlloc.hpp │ ├── TracyApi.h │ ├── TracyColor.hpp │ ├── TracyForceInline.hpp │ ├── TracyMutex.hpp │ ├── TracyProtocol.hpp │ ├── TracyQueue.hpp │ ├── TracySocket.cpp │ ├── TracySocket.hpp │ ├── TracyStackFrames.cpp │ ├── TracyStackFrames.hpp │ ├── TracySystem.cpp │ ├── TracySystem.hpp │ ├── TracyUwp.hpp │ ├── TracyVersion.hpp │ ├── TracyYield.hpp │ ├── tracy_lz4.cpp │ ├── tracy_lz4.hpp │ ├── tracy_lz4hc.cpp │ └── tracy_lz4hc.hpp │ ├── libbacktrace │ ├── LICENSE │ ├── alloc.cpp │ ├── backtrace.hpp │ ├── config.h │ ├── dwarf.cpp │ ├── elf.cpp │ ├── fileline.cpp │ ├── filenames.hpp │ ├── internal.hpp │ ├── macho.cpp │ ├── mmapio.cpp │ ├── posix.cpp │ ├── sort.cpp │ └── state.cpp │ └── tracy │ ├── Tracy.hpp │ ├── TracyC.h │ ├── TracyD3D11.hpp │ ├── TracyD3D12.hpp │ ├── TracyLua.hpp │ ├── TracyOpenCL.hpp │ ├── TracyOpenGL.hpp │ └── TracyVulkan.hpp ├── Tools ├── changelog.py ├── xml2cpp_ammo.py ├── xml2cpp_items.py └── xml2cpp_vehicles.py ├── config.h.in ├── masters.txt └── version.h.in /.gitattributes: -------------------------------------------------------------------------------- 1 | *.h linguist-language=C++ 2 | *.h.in linguist-language=C++ 3 | 4 | ThirdParty/** linguist-vendored=true 5 | -------------------------------------------------------------------------------- /.github/workflows/dev.yml: -------------------------------------------------------------------------------- 1 | ################################################################################ 2 | # Developer workflow running on pushes to the master branch and pull requests 3 | ################################################################################ 4 | 5 | name: Dev 6 | 7 | on: 8 | push: 9 | branches: 10 | - master 11 | pull_request: 12 | 13 | jobs: 14 | build_32: 15 | uses: ./.github/workflows/build.yml 16 | secrets: inherit 17 | with: 18 | bits: 32 19 | type: RelWithDebInfo 20 | sign: true 21 | 22 | build_64: 23 | uses: ./.github/workflows/build.yml 24 | secrets: inherit 25 | with: 26 | bits: 64 27 | type: RelWithDebInfo 28 | sign: true 29 | 30 | upload: 31 | if: github.ref == 'refs/heads/master' && github.repository_owner == 'crymp-net' 32 | needs: 33 | - build_32 34 | - build_64 35 | uses: ./.github/workflows/upload.yml 36 | secrets: inherit 37 | with: 38 | context: dev 39 | artifact_32: ${{ needs.build_32.outputs.artifact_name }} 40 | artifact_64: ${{ needs.build_64.outputs.artifact_name }} 41 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /[Bb]uild* 2 | 3 | .vs/ 4 | out/ 5 | 6 | CMakeSettings.json 7 | -------------------------------------------------------------------------------- /CMake/GenerateVersion.cmake: -------------------------------------------------------------------------------- 1 | execute_process(COMMAND ${GIT_EXECUTABLE} describe --dirty --tags --match "v*" 2 | WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} 3 | RESULT_VARIABLE GIT_DESCRIBE_STATUS 4 | OUTPUT_VARIABLE GIT_DESCRIBE_OUTPUT 5 | ERROR_VARIABLE GIT_DESCRIBE_ERROR 6 | OUTPUT_STRIP_TRAILING_WHITESPACE 7 | ) 8 | 9 | if(GIT_DESCRIBE_STATUS AND NOT GIT_DESCRIBE_STATUS EQUAL 0) 10 | message(FATAL_ERROR "Failed to obtain project version from Git!\n${GIT_DESCRIBE_ERROR}") 11 | endif() 12 | 13 | set(CRYMP_VERSION_STRING "${GIT_DESCRIBE_OUTPUT}") 14 | 15 | # parse version number 16 | string(REGEX REPLACE "^v([0-9]+).*$" "\\1" CRYMP_VERSION "${CRYMP_VERSION_STRING}") 17 | 18 | configure_file(version.h.in ${PROJECT_BINARY_DIR}/new_version.h) 19 | 20 | # trigger rebuild only if needed 21 | execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different new_version.h version.h 22 | WORKING_DIRECTORY ${PROJECT_BINARY_DIR} 23 | ) 24 | file(REMOVE ${PROJECT_BINARY_DIR}/new_version.h) 25 | -------------------------------------------------------------------------------- /Code/CryAction/ActorIterator.cpp: -------------------------------------------------------------------------------- 1 | #include "ActorIterator.h" 2 | #include "ActorSystem.h" 3 | 4 | ActorIterator::ActorIterator(ActorSystem* pActorSystem) : m_pActorSystem(pActorSystem) 5 | { 6 | this->Init(); 7 | } 8 | 9 | void ActorIterator::Init() 10 | { 11 | // TODO: this might get invalidated by std::map::erase -> unsafe 12 | m_iterator = m_pActorSystem->m_actors.begin(); 13 | m_refCount = 0; 14 | } 15 | 16 | //////////////////////////////////////////////////////////////////////////////// 17 | // IActorIterator 18 | //////////////////////////////////////////////////////////////////////////////// 19 | 20 | size_t ActorIterator::Count() 21 | { 22 | return m_pActorSystem->m_actors.size(); 23 | } 24 | 25 | IActor* ActorIterator::Next() 26 | { 27 | if (m_iterator == m_pActorSystem->m_actors.end()) 28 | { 29 | return nullptr; 30 | } 31 | 32 | IActor* pActor = m_iterator->second; 33 | ++m_iterator; 34 | 35 | return pActor; 36 | } 37 | 38 | void ActorIterator::AddRef() 39 | { 40 | ++m_refCount; 41 | } 42 | 43 | void ActorIterator::Release() 44 | { 45 | if (--m_refCount <= 0) 46 | { 47 | m_pActorSystem->m_iteratorPool.emplace_back(this); 48 | } 49 | } 50 | 51 | //////////////////////////////////////////////////////////////////////////////// 52 | -------------------------------------------------------------------------------- /Code/CryAction/ActorIterator.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #include "CryCommon/CryAction/IActorSystem.h" 6 | 7 | class ActorSystem; 8 | 9 | class ActorIterator final : public IActorIterator 10 | { 11 | int m_refCount = 0; 12 | ActorSystem* m_pActorSystem = nullptr; 13 | std::map::iterator m_iterator; 14 | 15 | public: 16 | explicit ActorIterator(ActorSystem* pActorSystem); 17 | 18 | void Init(); 19 | 20 | //////////////////////////////////////////////////////////////////////////////// 21 | // IActorIterator 22 | //////////////////////////////////////////////////////////////////////////////// 23 | 24 | size_t Count() override; 25 | IActor* Next() override; 26 | void AddRef() override; 27 | void Release() override; 28 | 29 | //////////////////////////////////////////////////////////////////////////////// 30 | }; 31 | -------------------------------------------------------------------------------- /Code/CryAction/CallbackTimer.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include "CallbackTimer.h" 4 | 5 | extern std::uintptr_t CRYACTION_BASE; 6 | 7 | CallbackTimer::CallbackTimer() 8 | { 9 | #ifdef BUILD_64BIT 10 | std::uintptr_t ctor = CRYACTION_BASE + 0x316e70; 11 | #else 12 | std::uintptr_t ctor = CRYACTION_BASE + 0x21a3c0; 13 | #endif 14 | 15 | (this->*reinterpret_cast(ctor))(); 16 | } 17 | 18 | void CallbackTimer::UpdateTimer() 19 | { 20 | #ifdef BUILD_64BIT 21 | std::uintptr_t func = CRYACTION_BASE + 0x3172f0; 22 | #else 23 | std::uintptr_t func = CRYACTION_BASE + 0x21a580; 24 | #endif 25 | 26 | (this->*reinterpret_cast(func))(); 27 | } 28 | -------------------------------------------------------------------------------- /Code/CryAction/CallbackTimer.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class CallbackTimer 4 | { 5 | void* reserved[4] = {}; 6 | 7 | public: 8 | CallbackTimer(); 9 | 10 | void UpdateTimer(); 11 | }; 12 | -------------------------------------------------------------------------------- /Code/CryAction/DebrisMgr.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include "DebrisMgr.h" 4 | 5 | extern std::uintptr_t CRYACTION_BASE; 6 | 7 | DebrisMgr::DebrisMgr() 8 | { 9 | #ifdef BUILD_64BIT 10 | std::uintptr_t ctor = CRYACTION_BASE + 0x2fad80; 11 | #else 12 | std::uintptr_t ctor = CRYACTION_BASE + 0x207080; 13 | #endif 14 | 15 | (this->*reinterpret_cast(ctor))(); 16 | } 17 | 18 | //////////////////////////////////////////////////////////////////////////////// 19 | // IDebrisMgr 20 | //////////////////////////////////////////////////////////////////////////////// 21 | 22 | void DebrisMgr::AddPiece(IEntity*) 23 | { 24 | } 25 | 26 | void DebrisMgr::AddPiece(IEntity*, Time expiration_time) 27 | { 28 | } 29 | 30 | void DebrisMgr::RemovePiece(EntityId piece) 31 | { 32 | } 33 | 34 | void DebrisMgr::Update() 35 | { 36 | } 37 | 38 | void DebrisMgr::SetMinExpirationTime(Time) 39 | { 40 | } 41 | 42 | void DebrisMgr::SetMaxExpirationTime(Time) 43 | { 44 | } 45 | 46 | void DebrisMgr::SetMaxDebrisListLen(int) 47 | { 48 | } 49 | 50 | void DebrisMgr::GetMemoryStatistics(ICrySizer* s) 51 | { 52 | } 53 | 54 | //////////////////////////////////////////////////////////////////////////////// 55 | -------------------------------------------------------------------------------- /Code/CryAction/DebrisMgr.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "CryCommon/CryAction/IDebrisMgr.h" 4 | 5 | class DebrisMgr : public IDebrisMgr 6 | { 7 | #ifdef BUILD_64BIT 8 | unsigned char m_data[0x50 - 0x8] = {}; 9 | #else 10 | unsigned char m_data[0x30 - 0x4] = {}; 11 | #endif 12 | 13 | public: 14 | DebrisMgr(); 15 | 16 | //////////////////////////////////////////////////////////////////////////////// 17 | // IDebrisMgr 18 | //////////////////////////////////////////////////////////////////////////////// 19 | 20 | void AddPiece(IEntity*) override; 21 | void AddPiece(IEntity*, Time expiration_time) override; 22 | 23 | void RemovePiece(EntityId piece) override; 24 | 25 | void Update() override; 26 | 27 | void SetMinExpirationTime(Time) override; 28 | void SetMaxExpirationTime(Time) override; 29 | 30 | void SetMaxDebrisListLen(int) override; 31 | 32 | void GetMemoryStatistics(ICrySizer* s) override; 33 | 34 | //////////////////////////////////////////////////////////////////////////////// 35 | }; 36 | -------------------------------------------------------------------------------- /Code/CryAction/DebugHistoryManager.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "CryCommon/CryAction/IDebugHistory.h" 4 | 5 | class DebugHistoryManager : public IDebugHistoryManager 6 | { 7 | void* m_reserved[6] = {}; 8 | 9 | public: 10 | DebugHistoryManager(); 11 | 12 | //////////////////////////////////////////////////////////////////////////////// 13 | // IDebugHistoryManager 14 | //////////////////////////////////////////////////////////////////////////////// 15 | 16 | IDebugHistory* CreateHistory(const char* id, const char* name) override; 17 | void RemoveHistory(const char* name) override; 18 | IDebugHistory* GetHistory(const char* name) override; 19 | void Clear() override; 20 | void GetMemoryStatistics(ICrySizer*) override; 21 | void Release() override; 22 | 23 | void LayoutHelper(const char* id, const char* name, bool visible, float minout, float maxout, 24 | float minin, float maxin, float x, float y, float w, float h) override; 25 | 26 | //////////////////////////////////////////////////////////////////////////////// 27 | }; 28 | -------------------------------------------------------------------------------- /Code/CryAction/DevMode.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include "CryCommon/CrySystem/gEnv.h" 4 | 5 | #include "DevMode.h" 6 | 7 | extern std::uintptr_t CRYACTION_BASE; 8 | 9 | DevMode::DevMode() 10 | { 11 | static std::uintptr_t vtable[2] = { 12 | #ifdef BUILD_64BIT 13 | CRYACTION_BASE + 0x32bfd0, CRYACTION_BASE + 0x1a79c0, 14 | #else 15 | CRYACTION_BASE + 0x249e80, CRYACTION_BASE + 0xf9740, 16 | #endif 17 | }; 18 | 19 | *reinterpret_cast(this) = vtable; 20 | 21 | IInput* pInput = gEnv->pInput; 22 | if (pInput) 23 | { 24 | pInput->AddEventListener(this); 25 | } 26 | } 27 | 28 | //////////////////////////////////////////////////////////////////////////////// 29 | // IInputEventListener 30 | //////////////////////////////////////////////////////////////////////////////// 31 | 32 | bool DevMode::OnInputEvent(const SInputEvent& event) 33 | { 34 | return false; 35 | } 36 | 37 | bool DevMode::OnInputEventUI(const SInputEvent& event) 38 | { 39 | return false; 40 | } 41 | 42 | //////////////////////////////////////////////////////////////////////////////// 43 | -------------------------------------------------------------------------------- /Code/CryAction/DevMode.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "CryCommon/CryInput/IInput.h" 4 | 5 | class DevMode : public IInputEventListener 6 | { 7 | void* m_reserved = nullptr; 8 | 9 | public: 10 | DevMode(); 11 | 12 | //////////////////////////////////////////////////////////////////////////////// 13 | // IInputEventListener 14 | //////////////////////////////////////////////////////////////////////////////// 15 | 16 | bool OnInputEvent(const SInputEvent& event) override; 17 | bool OnInputEventUI(const SInputEvent& event) override; 18 | 19 | //////////////////////////////////////////////////////////////////////////////// 20 | }; 21 | -------------------------------------------------------------------------------- /Code/CryAction/DialogSystem.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include "DialogSystem.h" 4 | 5 | extern std::uintptr_t CRYACTION_BASE; 6 | 7 | DialogSystem::DialogSystem() 8 | { 9 | #ifdef BUILD_64BIT 10 | std::uintptr_t ctor = CRYACTION_BASE + 0x2a79b0; 11 | #else 12 | std::uintptr_t ctor = CRYACTION_BASE + 0x1cdf70; 13 | #endif 14 | 15 | (this->*reinterpret_cast(ctor))(); 16 | } 17 | 18 | DialogSystem::~DialogSystem() 19 | { 20 | } 21 | 22 | bool DialogSystem::Init() 23 | { 24 | return {}; 25 | } 26 | 27 | //////////////////////////////////////////////////////////////////////////////// 28 | // IDialogSystem 29 | //////////////////////////////////////////////////////////////////////////////// 30 | 31 | void DialogSystem::Update(const float dt) 32 | { 33 | } 34 | 35 | void DialogSystem::Reset() 36 | { 37 | } 38 | 39 | bool DialogSystem::ReloadScripts() 40 | { 41 | return {}; 42 | } 43 | 44 | IDialogScriptIteratorPtr DialogSystem::CreateScriptIterator() 45 | { 46 | return {}; 47 | } 48 | 49 | //////////////////////////////////////////////////////////////////////////////// 50 | -------------------------------------------------------------------------------- /Code/CryAction/DialogSystem.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "CryCommon/CryAction/IDialogSystem.h" 4 | 5 | class DialogSystem : public IDialogSystem 6 | { 7 | void* m_reserved[23 - 1] = {}; 8 | 9 | public: 10 | DialogSystem(); 11 | virtual ~DialogSystem(); 12 | 13 | virtual bool Init(); 14 | 15 | //////////////////////////////////////////////////////////////////////////////// 16 | // IDialogSystem 17 | //////////////////////////////////////////////////////////////////////////////// 18 | 19 | void Update(const float dt) override; 20 | void Reset() override; 21 | bool ReloadScripts() override; 22 | IDialogScriptIteratorPtr CreateScriptIterator() override; 23 | 24 | //////////////////////////////////////////////////////////////////////////////// 25 | }; 26 | -------------------------------------------------------------------------------- /Code/CryAction/EffectSystem.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "CryCommon/CryAction/IEffectSystem.h" 4 | 5 | class EffectSystem : public IEffectSystem 6 | { 7 | void* m_reserved[16 - 1] = {}; 8 | 9 | public: 10 | EffectSystem(); 11 | ~EffectSystem() override; 12 | 13 | //////////////////////////////////////////////////////////////////////////////// 14 | // IEffectSystem 15 | //////////////////////////////////////////////////////////////////////////////// 16 | 17 | bool Init() override; 18 | void Update(float delta) override; 19 | void Shutdown() override; 20 | void GetMemoryStatistics(ICrySizer*) override; 21 | 22 | EffectId GetEffectId(const char* name) override; 23 | 24 | void Activate(const EffectId& eid) override; 25 | bool BindEffect(const char* name, IEffect* pEffect) override; 26 | IGroundEffect* CreateGroundEffect(IEntity* pEntity) override; 27 | 28 | void RegisterFactory(const char *name, IEffect* (*)(), bool isAI) override; 29 | 30 | //////////////////////////////////////////////////////////////////////////////// 31 | }; 32 | -------------------------------------------------------------------------------- /Code/CryAction/EquipmentManager.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "CryCommon/CryAction/IItemSystem.h" 4 | 5 | class ItemSystem; 6 | 7 | class EquipmentManager : public IEquipmentManager 8 | { 9 | void* m_reserved[8 - 1] = {}; 10 | 11 | public: 12 | explicit EquipmentManager(ItemSystem* pItemSystem); 13 | 14 | void OnBeginGiveEquipmentPack(); 15 | void OnEndGiveEquipmentPack(); 16 | 17 | //////////////////////////////////////////////////////////////////////////////// 18 | // IEquipmentManager 19 | //////////////////////////////////////////////////////////////////////////////// 20 | 21 | void DeleteAllEquipmentPacks() override; 22 | 23 | void LoadEquipmentPacks(const XmlNodeRef& rootNode) override; 24 | void LoadEquipmentPacksFromPath(const char* path) override; 25 | bool LoadEquipmentPack(const XmlNodeRef& rootNode, bool overrideExisiting) override; 26 | 27 | bool GiveEquipmentPack(IActor* pActor, const char* packName, bool add, bool selectPrimary) override; 28 | 29 | IEquipmentPackIteratorPtr CreateEquipmentPackIterator() override; 30 | 31 | void RegisterListener(IListener* pListener) override; 32 | void UnregisterListener(IListener* pListener) override; 33 | 34 | //////////////////////////////////////////////////////////////////////////////// 35 | }; 36 | -------------------------------------------------------------------------------- /Code/CryAction/GameChannel.cpp: -------------------------------------------------------------------------------- 1 | #include "GameChannel.h" 2 | 3 | GameChannel::GameChannel() 4 | { 5 | } 6 | 7 | //////////////////////////////////////////////////////////////////////////////// 8 | // IGameChannel 9 | //////////////////////////////////////////////////////////////////////////////// 10 | 11 | void GameChannel::DefineProtocol(IProtocolBuilder* pBuilder) 12 | { 13 | } 14 | 15 | bool GameChannel::HasDef(const SNetMessageDef* pDef) 16 | { 17 | return false; 18 | } 19 | 20 | void GameChannel::Release() 21 | { 22 | } 23 | 24 | void GameChannel::OnDisconnect(EDisconnectionCause cause, const char* description) 25 | { 26 | } 27 | 28 | //////////////////////////////////////////////////////////////////////////////// 29 | -------------------------------------------------------------------------------- /Code/CryAction/GameChannel.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "CryCommon/CryNetwork/INetwork.h" 4 | 5 | class GameChannel : public IGameChannel 6 | { 7 | INetChannel* m_pNetChannel = nullptr; 8 | 9 | protected: 10 | GameChannel(); 11 | 12 | public: 13 | //////////////////////////////////////////////////////////////////////////////// 14 | // IGameChannel 15 | //////////////////////////////////////////////////////////////////////////////// 16 | 17 | void DefineProtocol(IProtocolBuilder* pBuilder) override; 18 | bool HasDef(const SNetMessageDef* pDef) override; 19 | 20 | void Release() override; 21 | void OnDisconnect(EDisconnectionCause cause, const char* description) override; 22 | 23 | //////////////////////////////////////////////////////////////////////////////// 24 | 25 | INetChannel* GetNetChannel() { return m_pNetChannel; } 26 | }; 27 | -------------------------------------------------------------------------------- /Code/CryAction/GameClientChannel.cpp: -------------------------------------------------------------------------------- 1 | #include "GameClientChannel.h" 2 | -------------------------------------------------------------------------------- /Code/CryAction/GameClientChannel.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "CryCommon/CryNetwork/NetHelpers.h" 4 | 5 | #include "GameChannel.h" 6 | 7 | class GameClientChannel : public CNetMessageSinkHelper 8 | { 9 | }; 10 | -------------------------------------------------------------------------------- /Code/CryAction/GameClientNub.cpp: -------------------------------------------------------------------------------- 1 | #include "GameClientNub.h" 2 | -------------------------------------------------------------------------------- /Code/CryAction/GameClientNub.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "CryCommon/CryNetwork/INetwork.h" 4 | 5 | class GameClientChannel; 6 | 7 | class GameClientNub : public IGameNub 8 | { 9 | void* m_reserved = nullptr; 10 | GameClientChannel* m_pGameClientChannel = nullptr; 11 | 12 | public: 13 | //////////////////////////////////////////////////////////////////////////////// 14 | // IGameNub 15 | //////////////////////////////////////////////////////////////////////////////// 16 | 17 | void Release() override; 18 | SCreateChannelResult CreateChannel(INetChannel* pChannel, const char* connectionString) override; 19 | void FailedActiveConnect(EDisconnectionCause cause, const char* description) override; 20 | 21 | //////////////////////////////////////////////////////////////////////////////// 22 | 23 | GameClientChannel* GetGameClientChannel() const { return m_pGameClientChannel; } 24 | }; 25 | -------------------------------------------------------------------------------- /Code/CryAction/GameContext.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "CryCommon/CryAction/IGameFramework.h" 4 | #include "CryCommon/CryNetwork/INetwork.h" 5 | 6 | class GameContext 7 | { 8 | // m_reserved_<32-bit-offset>_<64-bit-offset> 9 | void* m_reserved_0x0_0x0[14] = {}; 10 | INetContext* m_pNetContext = nullptr; // m_reserved_0x38_0x70 11 | void* m_reserved_0x20_0x78[23] = {}; 12 | unsigned int m_reserved_0x98_0x130[4] = {}; 13 | EGameStartFlags m_flags = {}; // m_reserved_0xa8_0x140 14 | unsigned int m_reserved_0xac_0x144 = 0; 15 | void* m_reserved_0xb0_0x148 = nullptr; 16 | bool m_isInLevelLoad = false; // m_reserved_0xb4_0x150 17 | bool m_isGameStarted = false; // m_reserved_0xb5_0x151 18 | bool m_isLoadingSaveGame = false; // m_reserved_0xb6_0x152 19 | void* m_reserved_1[8] = {}; 20 | unsigned int m_reserved_2[4] = {}; 21 | 22 | public: 23 | GameContext(); 24 | 25 | INetContext* GetNetContext() { return m_pNetContext; } 26 | 27 | EGameStartFlags GetFlags() const { return m_flags; } 28 | bool IsInLevelLoad() const { return m_isInLevelLoad; } 29 | bool IsGameStarted() const { return m_isGameStarted; } 30 | bool IsLoadingSaveGame() const { return m_isLoadingSaveGame; } 31 | 32 | void ResetMap(bool isServer); 33 | 34 | bool ClassIdFromName(std::uint16_t& id, const CryStringT& name) const; 35 | bool ClassNameFromId(CryStringT& name, std::uint16_t id) const; 36 | }; 37 | -------------------------------------------------------------------------------- /Code/CryAction/GameFrameworkCVars.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include "CryCommon/CrySystem/gEnv.h" 4 | #include "CryCommon/CrySystem/IConsole.h" 5 | 6 | #include "GameFrameworkCVars.h" 7 | 8 | extern std::uintptr_t CRYACTION_BASE; 9 | 10 | GameFrameworkCVars::GameFrameworkCVars() 11 | { 12 | #ifdef BUILD_64BIT 13 | *reinterpret_cast(CRYACTION_BASE + 0x465268) = this; 14 | #else 15 | *reinterpret_cast(CRYACTION_BASE + 0x2e1c9c) = this; 16 | #endif 17 | 18 | IConsole* pConsole = gEnv->pConsole; 19 | 20 | pConsole->Register("g_playerInteractorRadius", &this->playerInteractorRadius, 2.0f, VF_CHEAT, 21 | "Maximum radius at which player can interact with other entities"); 22 | pConsole->Register("ai_LogSignals", &this->aiLogSignals, 0, VF_CHEAT, ""); 23 | pConsole->Register("ai_MaxSignalDuration", &this->aiMaxSignalDuration, 3.0f, VF_CHEAT, ""); 24 | } 25 | 26 | GameFrameworkCVars::~GameFrameworkCVars() 27 | { 28 | IConsole* pConsole = gEnv->pConsole; 29 | 30 | pConsole->UnregisterVariable("g_playerInteractorRadius", true); 31 | pConsole->UnregisterVariable("ai_LogSignals", true); 32 | pConsole->UnregisterVariable("ai_MaxSignalDuration", true); 33 | } 34 | -------------------------------------------------------------------------------- /Code/CryAction/GameFrameworkCVars.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class GameFrameworkCVars 4 | { 5 | public: 6 | float playerInteractorRadius = 0; 7 | int aiLogSignals = 0; 8 | float aiMaxSignalDuration = 0; 9 | 10 | GameFrameworkCVars(); 11 | ~GameFrameworkCVars(); 12 | }; 13 | -------------------------------------------------------------------------------- /Code/CryAction/GameObject.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "CryCommon/CryAction/IGameObject.h" 4 | #include "CryCommon/CryEntitySystem/IEntityProxy.h" 5 | 6 | class GameObject : public IEntityProxy, public IGameObject 7 | { 8 | public: 9 | static void RegisterCVars(); 10 | 11 | static void UpdateSchedulingProfiles(); 12 | }; 13 | -------------------------------------------------------------------------------- /Code/CryAction/GameSerialize.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "CryCommon/CryAction/IGameFramework.h" 4 | 5 | class GameFramework; 6 | 7 | class GameSerialize 8 | { 9 | void* m_reserved[15] = {}; 10 | 11 | public: 12 | GameSerialize(); 13 | 14 | void RegisterFactories(IGameFramework* pGameFramework); 15 | 16 | void RegisterLoadGameFactory(const char* name, ILoadGame* (*pCreator)()); 17 | void RegisterSaveGameFactory(const char* name, ISaveGame* (*pCreator)()); 18 | 19 | bool SaveGame(GameFramework* pGameFramework, const char* method, const char* name, 20 | ESaveGameReason reason, const char* checkPoint); 21 | 22 | enum class LoadResult 23 | { 24 | OK = 0, FAILED = 1, FAILED_AND_DESTROYED_STATE = 2 25 | }; 26 | 27 | LoadResult LoadGame(GameFramework* pGameFramework, const char* method, 28 | const char* path, SGameStartParams& params, bool requireQuickLoad, bool loadingSaveGame); 29 | }; 30 | -------------------------------------------------------------------------------- /Code/CryAction/GameServerChannel.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include "GameServerChannel.h" 4 | 5 | GameServerChannel::GameServerChannel() 6 | { 7 | #ifdef BUILD_64BIT 8 | static_assert(offsetof(GameServerChannel, m_isInHold) == 0x3b); 9 | #else 10 | static_assert(offsetof(GameServerChannel, m_isInHold) == 0x1f); 11 | #endif 12 | 13 | // TODO 14 | } 15 | -------------------------------------------------------------------------------- /Code/CryAction/GameServerChannel.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #include "GameChannel.h" 6 | 7 | class GameServerChannel : public GameChannel 8 | { 9 | // m_reserved_<32-bit-offset>_<64-bit-offset> 10 | void* m_reserved[5] = {}; 11 | std::uint16_t m_reserved_0x1c_0x38 = 0; 12 | bool m_reserved_0x1e_0x3a = false; 13 | bool m_isInHold = false; // m_reserved_0x1f_0x3b 14 | 15 | GameServerChannel(); 16 | public: 17 | bool IsOnHold() const { return m_isInHold; } 18 | }; 19 | -------------------------------------------------------------------------------- /Code/CryAction/GameServerNub.cpp: -------------------------------------------------------------------------------- 1 | #include "GameServerNub.h" 2 | 3 | extern std::uintptr_t CRYACTION_BASE; 4 | 5 | void GameServerNub::Update() 6 | { 7 | #ifdef BUILD_64BIT 8 | std::uintptr_t func = CRYACTION_BASE + 0x2BFBD0; 9 | #else 10 | std::uintptr_t func = CRYACTION_BASE + 0x1DE990; 11 | #endif 12 | 13 | (this->*reinterpret_cast(func))(); 14 | } 15 | 16 | void GameServerNub::ResetOnHoldChannels() 17 | { 18 | #ifdef BUILD_64BIT 19 | std::uintptr_t func = CRYACTION_BASE + 0x2BFD40; 20 | #else 21 | std::uintptr_t func = CRYACTION_BASE + 0x1DEAB0; 22 | #endif 23 | 24 | (this->*reinterpret_cast(func))(); 25 | } 26 | 27 | GameServerChannel* GameServerNub::GetChannel(std::uint16_t channelId) 28 | { 29 | #ifdef BUILD_64BIT 30 | std::uintptr_t func = CRYACTION_BASE + 0x2BF080; 31 | #else 32 | std::uintptr_t func = CRYACTION_BASE + 0x1DE280; 33 | #endif 34 | 35 | return (this->*reinterpret_cast(func))(channelId); 36 | } 37 | 38 | std::uint16_t GameServerNub::GetChannelId(INetChannel* pNetChannel) 39 | { 40 | #ifdef BUILD_64BIT 41 | std::uintptr_t func = CRYACTION_BASE + 0x2BF0D0; 42 | #else 43 | std::uintptr_t func = CRYACTION_BASE + 0x1DE310; 44 | #endif 45 | 46 | return (this->*reinterpret_cast(func))(pNetChannel); 47 | } 48 | -------------------------------------------------------------------------------- /Code/CryAction/GameServerNub.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | struct INetChannel; 6 | 7 | class GameServerChannel; 8 | 9 | class GameServerNub 10 | { 11 | public: 12 | void Update(); 13 | void ResetOnHoldChannels(); 14 | 15 | GameServerChannel* GetChannel(std::uint16_t channelId); 16 | std::uint16_t GetChannelId(INetChannel* pNetChannel); 17 | }; 18 | -------------------------------------------------------------------------------- /Code/CryAction/GameStatsConfig.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include "GameStatsConfig.h" 4 | 5 | extern std::uintptr_t CRYACTION_BASE; 6 | 7 | GameStatsConfig::GameStatsConfig() 8 | { 9 | #ifdef BUILD_64BIT 10 | std::uintptr_t ctor = CRYACTION_BASE + 0x2e2a90; 11 | #else 12 | std::uintptr_t ctor = CRYACTION_BASE + 0x1f56b0; 13 | #endif 14 | 15 | (this->*reinterpret_cast(ctor))(); 16 | } 17 | 18 | GameStatsConfig::~GameStatsConfig() 19 | { 20 | } 21 | 22 | void GameStatsConfig::Init() 23 | { 24 | #ifdef BUILD_64BIT 25 | std::uintptr_t func = CRYACTION_BASE + 0x2e2cf0; 26 | #else 27 | std::uintptr_t func = CRYACTION_BASE + 0x1f5740; 28 | #endif 29 | 30 | (this->*reinterpret_cast(func))(); 31 | } 32 | 33 | //////////////////////////////////////////////////////////////////////////////// 34 | // IGameStatsConfig 35 | //////////////////////////////////////////////////////////////////////////////// 36 | 37 | int GameStatsConfig::GetStatsVersion() 38 | { 39 | return {}; 40 | } 41 | 42 | int GameStatsConfig::GetCategoryMod(const char* cat) 43 | { 44 | return {}; 45 | } 46 | 47 | const char* GameStatsConfig::GetValueNameByCode(const char* cat, int id) 48 | { 49 | return {}; 50 | } 51 | 52 | //////////////////////////////////////////////////////////////////////////////// 53 | -------------------------------------------------------------------------------- /Code/CryAction/GameStatsConfig.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "CryCommon/CryAction/IGameFramework.h" 4 | 5 | class GameStatsConfig : public IGameStatsConfig 6 | { 7 | void* m_reserved[11 - 1] = {}; 8 | 9 | public: 10 | GameStatsConfig(); 11 | ~GameStatsConfig() override; 12 | 13 | void Init(); 14 | 15 | //////////////////////////////////////////////////////////////////////////////// 16 | // IGameStatsConfig 17 | //////////////////////////////////////////////////////////////////////////////// 18 | 19 | int GetStatsVersion() override; 20 | int GetCategoryMod(const char* cat) override; 21 | const char* GetValueNameByCode(const char* cat, int id) override; 22 | 23 | //////////////////////////////////////////////////////////////////////////////// 24 | }; 25 | -------------------------------------------------------------------------------- /Code/CryAction/GameplayAnalyst.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include "GameplayAnalyst.h" 4 | 5 | extern std::uintptr_t CRYACTION_BASE; 6 | 7 | GameplayAnalyst::GameplayAnalyst() 8 | { 9 | #ifdef BUILD_64BIT 10 | std::uintptr_t ctor = CRYACTION_BASE + 0x2f9e80; 11 | #else 12 | std::uintptr_t ctor = CRYACTION_BASE + 0x2058c0; 13 | #endif 14 | 15 | (this->*reinterpret_cast(ctor))(); 16 | } 17 | 18 | GameplayAnalyst::~GameplayAnalyst() 19 | { 20 | } 21 | 22 | //////////////////////////////////////////////////////////////////////////////// 23 | // IGameplayListener 24 | //////////////////////////////////////////////////////////////////////////////// 25 | 26 | void GameplayAnalyst::OnGameplayEvent(IEntity* pEntity, const GameplayEvent& event) 27 | { 28 | } 29 | 30 | //////////////////////////////////////////////////////////////////////////////// 31 | -------------------------------------------------------------------------------- /Code/CryAction/GameplayAnalyst.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "CryCommon/CryAction/IGameplayRecorder.h" 4 | 5 | class GameplayAnalyst : public IGameplayListener 6 | { 7 | #ifdef BUILD_64BIT 8 | unsigned char m_data[0x38 - 0x8] = {}; 9 | #else 10 | unsigned char m_data[0x1c - 0x4] = {}; 11 | #endif 12 | 13 | public: 14 | GameplayAnalyst(); 15 | virtual ~GameplayAnalyst(); 16 | 17 | //////////////////////////////////////////////////////////////////////////////// 18 | // IGameplayListener 19 | //////////////////////////////////////////////////////////////////////////////// 20 | 21 | void OnGameplayEvent(IEntity* pEntity, const GameplayEvent& event) override; 22 | 23 | //////////////////////////////////////////////////////////////////////////////// 24 | }; 25 | -------------------------------------------------------------------------------- /Code/CryAction/GameplayRecorder.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "CryCommon/CryAction/IGameplayRecorder.h" 4 | 5 | struct IGameFramework; 6 | 7 | class GameplayRecorder : public IGameplayRecorder 8 | { 9 | #ifdef BUILD_64BIT 10 | unsigned char m_data[0x48 - 0x8] = {}; 11 | #else 12 | unsigned char m_data[0x30 - 0x4] = {}; 13 | #endif 14 | 15 | public: 16 | explicit GameplayRecorder(IGameFramework* pGameFramework); 17 | virtual ~GameplayRecorder(); 18 | 19 | void Update(float frameTime); 20 | 21 | //////////////////////////////////////////////////////////////////////////////// 22 | // IGameplayRecorder 23 | //////////////////////////////////////////////////////////////////////////////// 24 | 25 | void RegisterListener(IGameplayListener* pGameplayListener) override; 26 | void UnregisterListener(IGameplayListener* pGameplayListener) override; 27 | 28 | CTimeValue GetSampleInterval() const override; 29 | 30 | void Event(IEntity* pEntity, const GameplayEvent& event) override; 31 | 32 | void OnGameData(const IMetadata* pGameData) override; 33 | 34 | //////////////////////////////////////////////////////////////////////////////// 35 | }; 36 | -------------------------------------------------------------------------------- /Code/CryAction/MusicLogic.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include "MusicLogic.h" 4 | 5 | extern std::uintptr_t CRYACTION_BASE; 6 | 7 | MusicLogic::MusicLogic(IAnimationGraphState* pMusicGraphState) 8 | { 9 | #ifdef BUILD_64BIT 10 | std::uintptr_t ctor = CRYACTION_BASE + 0x300960; 11 | #else 12 | std::uintptr_t ctor = CRYACTION_BASE + 0x20a440; 13 | #endif 14 | 15 | (this->*reinterpret_cast(ctor))(pMusicGraphState); 16 | } 17 | 18 | //////////////////////////////////////////////////////////////////////////////// 19 | // IMusicLogic 20 | //////////////////////////////////////////////////////////////////////////////// 21 | 22 | bool MusicLogic::Init() 23 | { 24 | return {}; 25 | } 26 | 27 | bool MusicLogic::Start() 28 | { 29 | return {}; 30 | } 31 | 32 | bool MusicLogic::Stop() 33 | { 34 | return {}; 35 | } 36 | 37 | void MusicLogic::Update() 38 | { 39 | } 40 | 41 | void MusicLogic::SetEvent(EMusicLogicEvents MusicEvent, const float value) 42 | { 43 | } 44 | 45 | void MusicLogic::GetMemoryStatistics(ICrySizer*) 46 | { 47 | } 48 | 49 | void MusicLogic::Serialize(TSerialize ser) 50 | { 51 | } 52 | 53 | void MusicLogic::DrawInformation(IRenderer* pRenderer, float xpos, float ypos, int soundInfo) 54 | { 55 | } 56 | 57 | //////////////////////////////////////////////////////////////////////////////// 58 | -------------------------------------------------------------------------------- /Code/CryAction/MusicLogic.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "CryCommon/CrySoundSystem/IMusicSystem.h" 4 | 5 | struct IAnimationGraphState; 6 | 7 | class MusicLogic : public IMusicLogic 8 | { 9 | #ifdef BUILD_64BIT 10 | unsigned char m_data[0xb8 - 0x8] = {}; 11 | #else 12 | unsigned char m_data[0x70 - 0x4] = {}; 13 | #endif 14 | 15 | public: 16 | MusicLogic(IAnimationGraphState* pMusicGraphState); 17 | 18 | //////////////////////////////////////////////////////////////////////////////// 19 | // IMusicLogic 20 | //////////////////////////////////////////////////////////////////////////////// 21 | 22 | bool Init() override; 23 | 24 | bool Start() override; 25 | bool Stop() override; 26 | 27 | void Update() override; 28 | 29 | void SetEvent(EMusicLogicEvents MusicEvent, const float value) override; 30 | 31 | void GetMemoryStatistics(ICrySizer*) override; 32 | void Serialize(TSerialize ser) override; 33 | 34 | void DrawInformation(IRenderer* pRenderer, float xpos, float ypos, int soundInfo) override; 35 | 36 | //////////////////////////////////////////////////////////////////////////////// 37 | }; 38 | -------------------------------------------------------------------------------- /Code/CryAction/NetworkCVars.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class NetworkCVars 4 | { 5 | public: 6 | int breakageLog = 0; 7 | float voiceVolume = 0; 8 | float physPingSmooth = 0; 9 | float physLagSmooth = 0; 10 | int physDebug = 0; 11 | int breakTimeoutFrames = 0; 12 | 13 | NetworkCVars(); 14 | ~NetworkCVars(); 15 | }; 16 | -------------------------------------------------------------------------------- /Code/CryAction/ScriptBind_AI.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include "ScriptBind_AI.h" 4 | 5 | extern std::uintptr_t CRYACTION_BASE; 6 | 7 | ScriptBind_AI::ScriptBind_AI(ISystem* pSystem) 8 | { 9 | #ifdef BUILD_64BIT 10 | std::uintptr_t ctor = CRYACTION_BASE + 0xf9240; 11 | #else 12 | std::uintptr_t ctor = CRYACTION_BASE + 0xada90; 13 | #endif 14 | 15 | (this->*reinterpret_cast(ctor))(pSystem); 16 | } 17 | -------------------------------------------------------------------------------- /Code/CryAction/ScriptBind_AI.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "CryCommon/CryScriptSystem/IScriptSystem.h" 4 | 5 | struct ISystem; 6 | 7 | class ScriptBind_AI : public CScriptableBase 8 | { 9 | #ifdef BUILD_64BIT 10 | unsigned char m_data[0xc0 - sizeof(CScriptableBase)] = {}; 11 | #else 12 | unsigned char m_data[0x80 - sizeof(CScriptableBase)] = {}; 13 | #endif 14 | 15 | public: 16 | explicit ScriptBind_AI(ISystem* pSystem); 17 | }; 18 | -------------------------------------------------------------------------------- /Code/CryAction/ScriptBind_ActionMapManager.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include "ScriptBind_ActionMapManager.h" 4 | 5 | extern std::uintptr_t CRYACTION_BASE; 6 | 7 | ScriptBind_ActionMapManager::ScriptBind_ActionMapManager(ISystem* pSystem, IActionMapManager* pActionMapManager) 8 | { 9 | #ifdef BUILD_64BIT 10 | std::uintptr_t ctor = CRYACTION_BASE + 0x17c60; 11 | #else 12 | std::uintptr_t ctor = CRYACTION_BASE + 0x15500; 13 | #endif 14 | 15 | (this->*reinterpret_cast(ctor))(pSystem, pActionMapManager); 16 | } 17 | -------------------------------------------------------------------------------- /Code/CryAction/ScriptBind_ActionMapManager.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "CryCommon/CryScriptSystem/IScriptSystem.h" 4 | 5 | struct ISystem; 6 | struct IActionMapManager; 7 | 8 | class ScriptBind_ActionMapManager : public CScriptableBase 9 | { 10 | #ifdef BUILD_64BIT 11 | unsigned char m_data[0x70 - sizeof(CScriptableBase)] = {}; 12 | #else 13 | unsigned char m_data[0x58 - sizeof(CScriptableBase)] = {}; 14 | #endif 15 | 16 | public: 17 | explicit ScriptBind_ActionMapManager(ISystem* pSystem, IActionMapManager* pActionMapManager); 18 | }; 19 | -------------------------------------------------------------------------------- /Code/CryAction/ScriptBind_Actor.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include "ScriptBind_Actor.h" 4 | 5 | extern std::uintptr_t CRYACTION_BASE; 6 | 7 | ScriptBind_Actor::ScriptBind_Actor(ISystem* pSystem, IGameFramework* pGameFramework) 8 | { 9 | #ifdef BUILD_64BIT 10 | std::uintptr_t ctor = CRYACTION_BASE + 0x11d70; 11 | #else 12 | std::uintptr_t ctor = CRYACTION_BASE + 0x11990; 13 | #endif 14 | 15 | (this->*reinterpret_cast(ctor))(pSystem, pGameFramework); 16 | } 17 | -------------------------------------------------------------------------------- /Code/CryAction/ScriptBind_Actor.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "CryCommon/CryScriptSystem/IScriptSystem.h" 4 | 5 | struct ISystem; 6 | struct IGameFramework; 7 | 8 | class ScriptBind_Actor : public CScriptableBase 9 | { 10 | #ifdef BUILD_64BIT 11 | unsigned char m_data[0x78 - sizeof(CScriptableBase)] = {}; 12 | #else 13 | unsigned char m_data[0x5c - sizeof(CScriptableBase)] = {}; 14 | #endif 15 | 16 | public: 17 | explicit ScriptBind_Actor(ISystem* pSystem, IGameFramework* pGameFramework); 18 | }; 19 | -------------------------------------------------------------------------------- /Code/CryAction/ScriptBind_CryAction.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include "ScriptBind_CryAction.h" 4 | 5 | extern std::uintptr_t CRYACTION_BASE; 6 | 7 | ScriptBind_CryAction::ScriptBind_CryAction(IGameFramework* pGameFramework) 8 | { 9 | #ifdef BUILD_64BIT 10 | std::uintptr_t ctor = CRYACTION_BASE + 0x3304c0; 11 | #else 12 | std::uintptr_t ctor = CRYACTION_BASE + 0x24bd50; 13 | #endif 14 | 15 | (this->*reinterpret_cast(ctor))(pGameFramework); 16 | } 17 | -------------------------------------------------------------------------------- /Code/CryAction/ScriptBind_CryAction.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "CryCommon/CryScriptSystem/IScriptSystem.h" 4 | 5 | struct IGameFramework; 6 | 7 | class ScriptBind_CryAction : public CScriptableBase 8 | { 9 | #ifdef BUILD_64BIT 10 | unsigned char m_data[0x68 - sizeof(CScriptableBase)] = {}; 11 | #else 12 | unsigned char m_data[0x54 - sizeof(CScriptableBase)] = {}; 13 | #endif 14 | 15 | public: 16 | explicit ScriptBind_CryAction(IGameFramework* pGameFramework); 17 | }; 18 | -------------------------------------------------------------------------------- /Code/CryAction/ScriptBind_DialogSystem.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include "ScriptBind_DialogSystem.h" 4 | 5 | extern std::uintptr_t CRYACTION_BASE; 6 | 7 | ScriptBind_DialogSystem::ScriptBind_DialogSystem(ISystem* pSystem, IDialogSystem* pDialogSystem) 8 | { 9 | #ifdef BUILD_64BIT 10 | std::uintptr_t ctor = CRYACTION_BASE + 0x2aac70; 11 | #else 12 | std::uintptr_t ctor = CRYACTION_BASE + 0x1d02e0; 13 | #endif 14 | 15 | (this->*reinterpret_cast(ctor))(pSystem, pDialogSystem); 16 | } 17 | -------------------------------------------------------------------------------- /Code/CryAction/ScriptBind_DialogSystem.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "CryCommon/CryScriptSystem/IScriptSystem.h" 4 | 5 | struct ISystem; 6 | struct IDialogSystem; 7 | 8 | class ScriptBind_DialogSystem : public CScriptableBase 9 | { 10 | #ifdef BUILD_64BIT 11 | unsigned char m_data[0x80 - sizeof(CScriptableBase)] = {}; 12 | #else 13 | unsigned char m_data[0x60 - sizeof(CScriptableBase)] = {}; 14 | #endif 15 | 16 | public: 17 | explicit ScriptBind_DialogSystem(ISystem* pSystem, IDialogSystem* pDialogSystem); 18 | }; 19 | -------------------------------------------------------------------------------- /Code/CryAction/ScriptBind_Inventory.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include "ScriptBind_Inventory.h" 4 | 5 | extern std::uintptr_t CRYACTION_BASE; 6 | 7 | ScriptBind_Inventory::ScriptBind_Inventory(ISystem* pSystem, IGameFramework* pGameFramework) 8 | { 9 | #ifdef BUILD_64BIT 10 | std::uintptr_t ctor = CRYACTION_BASE + 0x319c0; 11 | #else 12 | std::uintptr_t ctor = CRYACTION_BASE + 0x25420; 13 | #endif 14 | 15 | (this->*reinterpret_cast(ctor))(pSystem, pGameFramework); 16 | } 17 | -------------------------------------------------------------------------------- /Code/CryAction/ScriptBind_Inventory.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "CryCommon/CryScriptSystem/IScriptSystem.h" 4 | 5 | struct ISystem; 6 | struct IGameFramework; 7 | 8 | class ScriptBind_Inventory : public CScriptableBase 9 | { 10 | #ifdef BUILD_64BIT 11 | unsigned char m_data[0x78 - sizeof(CScriptableBase)] = {}; 12 | #else 13 | unsigned char m_data[0x5c - sizeof(CScriptableBase)] = {}; 14 | #endif 15 | 16 | public: 17 | explicit ScriptBind_Inventory(ISystem* pSystem, IGameFramework* pGameFramework); 18 | }; 19 | -------------------------------------------------------------------------------- /Code/CryAction/ScriptBind_ItemSystem.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include "ScriptBind_ItemSystem.h" 4 | 5 | extern std::uintptr_t CRYACTION_BASE; 6 | 7 | ScriptBind_ItemSystem::ScriptBind_ItemSystem(ISystem* pSystem, ItemSystem* pItemSystem, IGameFramework* pGameFramework) 8 | { 9 | #ifdef BUILD_64BIT 10 | std::uintptr_t ctor = CRYACTION_BASE + 0x328d0; 11 | #else 12 | std::uintptr_t ctor = CRYACTION_BASE + 0x25d40; 13 | #endif 14 | 15 | (this->*reinterpret_cast(ctor))(pSystem, pItemSystem, pGameFramework); 16 | } 17 | -------------------------------------------------------------------------------- /Code/CryAction/ScriptBind_ItemSystem.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "CryCommon/CryScriptSystem/IScriptSystem.h" 4 | 5 | struct ISystem; 6 | struct IGameFramework; 7 | 8 | class ItemSystem; 9 | 10 | class ScriptBind_ItemSystem : public CScriptableBase 11 | { 12 | #ifdef BUILD_64BIT 13 | unsigned char m_data[0x78 - sizeof(CScriptableBase)] = {}; 14 | #else 15 | unsigned char m_data[0x5c - sizeof(CScriptableBase)] = {}; 16 | #endif 17 | 18 | public: 19 | explicit ScriptBind_ItemSystem(ISystem* pSystem, ItemSystem* pItemSystem, IGameFramework* pGameFramework); 20 | }; 21 | -------------------------------------------------------------------------------- /Code/CryAction/ScriptBind_MaterialEffects.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include "ScriptBind_MaterialEffects.h" 4 | 5 | extern std::uintptr_t CRYACTION_BASE; 6 | 7 | ScriptBind_MaterialEffects::ScriptBind_MaterialEffects(ISystem* pSystem, MaterialEffects* pMaterialEffects) 8 | { 9 | #ifdef BUILD_64BIT 10 | std::uintptr_t ctor = CRYACTION_BASE + 0x277040; 11 | #else 12 | std::uintptr_t ctor = CRYACTION_BASE + 0x1b2810; 13 | #endif 14 | 15 | (this->*reinterpret_cast(ctor))(pSystem, pMaterialEffects); 16 | } 17 | -------------------------------------------------------------------------------- /Code/CryAction/ScriptBind_MaterialEffects.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "CryCommon/CryScriptSystem/IScriptSystem.h" 4 | 5 | class MaterialEffects; 6 | 7 | class ScriptBind_MaterialEffects : public CScriptableBase 8 | { 9 | #ifdef BUILD_64BIT 10 | unsigned char m_data[0x78 - sizeof(CScriptableBase)] = {}; 11 | #else 12 | unsigned char m_data[0x5c - sizeof(CScriptableBase)] = {}; 13 | #endif 14 | 15 | public: 16 | explicit ScriptBind_MaterialEffects(ISystem* pSystem, MaterialEffects* pMaterialEffects); 17 | }; 18 | -------------------------------------------------------------------------------- /Code/CryAction/ScriptBind_Network.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include "ScriptBind_Network.h" 4 | 5 | extern std::uintptr_t CRYACTION_BASE; 6 | 7 | ScriptBind_Network::ScriptBind_Network(ISystem* pSystem, IGameFramework* pGameFramework) 8 | { 9 | #ifdef BUILD_64BIT 10 | std::uintptr_t ctor = CRYACTION_BASE + 0x2c3e30; 11 | #else 12 | std::uintptr_t ctor = CRYACTION_BASE + 0x1e1810; 13 | #endif 14 | 15 | (this->*reinterpret_cast(ctor))(pSystem, pGameFramework); 16 | } 17 | -------------------------------------------------------------------------------- /Code/CryAction/ScriptBind_Network.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "CryCommon/CryScriptSystem/IScriptSystem.h" 4 | 5 | struct ISystem; 6 | struct IGameFramework; 7 | 8 | class ScriptBind_Network : public CScriptableBase 9 | { 10 | #ifdef BUILD_64BIT 11 | unsigned char m_data[0x78 - sizeof(CScriptableBase)] = {}; 12 | #else 13 | unsigned char m_data[0x5c - sizeof(CScriptableBase)] = {}; 14 | #endif 15 | 16 | public: 17 | explicit ScriptBind_Network(ISystem* pSystem, IGameFramework* pGameFramework); 18 | }; 19 | -------------------------------------------------------------------------------- /Code/CryAction/ScriptBind_Vehicle.cpp: -------------------------------------------------------------------------------- 1 | #include "CryCommon/CryAction/IVehicleSystem.h" 2 | 3 | #include "ScriptBind_Vehicle.h" 4 | 5 | extern std::uintptr_t CRYACTION_BASE; 6 | 7 | ScriptBind_Vehicle::ScriptBind_Vehicle(ISystem* pSystem, IGameFramework* pGameFramework) 8 | { 9 | #ifdef BUILD_64BIT 10 | std::uintptr_t ctor = CRYACTION_BASE + 0x40730; 11 | #else 12 | std::uintptr_t ctor = CRYACTION_BASE + 0x2ebf0; 13 | #endif 14 | 15 | (this->*reinterpret_cast(ctor))(pSystem, pGameFramework); 16 | } 17 | 18 | void ScriptBind_Vehicle::AttachTo(IVehicle* pVehicle) 19 | { 20 | IScriptTable* pScriptTable = pVehicle->GetEntity()->GetScriptTable(); 21 | if (!pScriptTable) 22 | { 23 | return; 24 | } 25 | 26 | SmartScriptTable methodsTable(m_pSS); 27 | methodsTable->SetValue("vehicleId", ScriptHandle(pVehicle->GetEntityId())); 28 | methodsTable->Delegate(this->GetMethodsTable()); 29 | 30 | pScriptTable->SetValue("vehicle", methodsTable); 31 | } 32 | -------------------------------------------------------------------------------- /Code/CryAction/ScriptBind_Vehicle.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "CryCommon/CryScriptSystem/IScriptSystem.h" 4 | 5 | struct ISystem; 6 | struct IGameFramework; 7 | struct IVehicle; 8 | 9 | class ScriptBind_Vehicle : public CScriptableBase 10 | { 11 | #ifdef BUILD_64BIT 12 | unsigned char m_data[0x70 - sizeof(CScriptableBase)] = {}; 13 | #else 14 | unsigned char m_data[0x58 - sizeof(CScriptableBase)] = {}; 15 | #endif 16 | 17 | public: 18 | explicit ScriptBind_Vehicle(ISystem* pSystem, IGameFramework* pGameFramework); 19 | 20 | void AttachTo(IVehicle* pVehicle); 21 | }; 22 | -------------------------------------------------------------------------------- /Code/CryAction/ScriptBind_VehicleSeat.cpp: -------------------------------------------------------------------------------- 1 | #include "CryCommon/CryAction/IVehicleSystem.h" 2 | 3 | #include "ScriptBind_VehicleSeat.h" 4 | 5 | extern std::uintptr_t CRYACTION_BASE; 6 | 7 | ScriptBind_VehicleSeat::ScriptBind_VehicleSeat(ISystem* pSystem, IGameFramework* pGameFramework) 8 | { 9 | #ifdef BUILD_64BIT 10 | std::uintptr_t ctor = CRYACTION_BASE + 0x417b0; 11 | #else 12 | std::uintptr_t ctor = CRYACTION_BASE + 0x2fef0; 13 | #endif 14 | 15 | (this->*reinterpret_cast(ctor))(pSystem, pGameFramework); 16 | } 17 | 18 | void ScriptBind_VehicleSeat::AttachTo(IVehicle* pVehicle, int seatId) 19 | { 20 | IScriptTable* pScriptTable = pVehicle->GetEntity()->GetScriptTable(); 21 | SmartScriptTable seatsTable; 22 | SmartScriptTable seatTable; 23 | if (!pScriptTable 24 | || !pScriptTable->GetValue("Seats", seatsTable) 25 | || !seatId 26 | || !seatsTable->GetAt(seatId, seatTable)) 27 | { 28 | return; 29 | } 30 | 31 | SmartScriptTable methodsTable(m_pSS); 32 | methodsTable->SetValue("vehicleId", ScriptHandle(pVehicle->GetEntityId())); 33 | methodsTable->SetValue("seatId", seatId); 34 | methodsTable->Delegate(this->GetMethodsTable()); 35 | 36 | seatTable->SetValue("seat", methodsTable); 37 | } 38 | -------------------------------------------------------------------------------- /Code/CryAction/ScriptBind_VehicleSeat.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "CryCommon/CryScriptSystem/IScriptSystem.h" 4 | 5 | struct ISystem; 6 | struct IGameFramework; 7 | struct IVehicle; 8 | 9 | class ScriptBind_VehicleSeat : public CScriptableBase 10 | { 11 | #ifdef BUILD_64BIT 12 | unsigned char m_data[0x68 - sizeof(CScriptableBase)] = {}; 13 | #else 14 | unsigned char m_data[0x54 - sizeof(CScriptableBase)] = {}; 15 | #endif 16 | 17 | public: 18 | explicit ScriptBind_VehicleSeat(ISystem* pSystem, IGameFramework* pGameFramework); 19 | 20 | void AttachTo(IVehicle* pVehicle, int seatId); 21 | }; 22 | -------------------------------------------------------------------------------- /Code/CryAction/ScriptBind_VehicleSystem.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "CryCommon/CryScriptSystem/IScriptSystem.h" 4 | 5 | class VehicleSystem; 6 | 7 | class ScriptBind_VehicleSystem : public CScriptableBase 8 | { 9 | VehicleSystem* m_pVehicleSystem = nullptr; 10 | 11 | public: 12 | explicit ScriptBind_VehicleSystem(VehicleSystem* pVehicleSystem); 13 | 14 | int LogSlots(IFunctionHandler* pH, const char* vehicleName); 15 | int GetVehicleImplementations(IFunctionHandler* pH); 16 | int GetOptionalScript(IFunctionHandler* pH, const char* vehicleName); 17 | int SetTpvDistance(IFunctionHandler* pH, float distance); 18 | int SetTpvHeight(IFunctionHandler* pH, float height); 19 | int ReloadSystem(IFunctionHandler* pH); 20 | }; 21 | -------------------------------------------------------------------------------- /Code/CryAction/ScriptRMI.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include "CryCommon/CrySystem/gEnv.h" 4 | #include "CryCommon/CrySystem/IConsole.h" 5 | 6 | #include "ScriptRMI.h" 7 | 8 | extern std::uintptr_t CRYACTION_BASE; 9 | 10 | ScriptRMI::ScriptRMI() 11 | { 12 | #ifdef BUILD_64BIT 13 | std::uintptr_t ctor = CRYACTION_BASE + 0x2c9870; 14 | #else 15 | std::uintptr_t ctor = CRYACTION_BASE + 0x1e4190; 16 | #endif 17 | 18 | (this->*reinterpret_cast(ctor))(); 19 | } 20 | 21 | void ScriptRMI::RegisterCVars() 22 | { 23 | struct { 24 | ICVar* pLogRMICVar; 25 | ICVar* pDisconnectOnRMIErrorCVar; 26 | } *pCVars = reinterpret_cast( 27 | #ifdef BUILD_64BIT 28 | CRYACTION_BASE + 0x461068 29 | #else 30 | CRYACTION_BASE + 0x2d79a8 31 | #endif 32 | ); 33 | 34 | IConsole* pConsole = gEnv->pConsole; 35 | 36 | pCVars->pLogRMICVar = pConsole->RegisterInt("net_log_remote_methods", 0, VF_DUMPTODISK, 37 | "Log remote method invocations."); 38 | pCVars->pDisconnectOnRMIErrorCVar = pConsole->RegisterInt("net_disconnect_on_rmi_error", 0, VF_DUMPTODISK, 39 | "Disconnect remote connections on script exceptions during RMI calls."); 40 | } 41 | -------------------------------------------------------------------------------- /Code/CryAction/ScriptRMI.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class ScriptRMI 4 | { 5 | #ifdef BUILD_64BIT 6 | unsigned char m_data[0x90] = {}; 7 | #else 8 | unsigned char m_data[0x48] = {}; 9 | #endif 10 | 11 | public: 12 | ScriptRMI(); 13 | 14 | static void RegisterCVars(); 15 | }; 16 | -------------------------------------------------------------------------------- /Code/CryAction/SubtitleManager.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include "SubtitleManager.h" 4 | 5 | extern std::uintptr_t CRYACTION_BASE; 6 | 7 | SubtitleManager::SubtitleManager() 8 | { 9 | #ifdef BUILD_64BIT 10 | std::uintptr_t ctor = CRYACTION_BASE + 0x2aae80; 11 | #else 12 | std::uintptr_t ctor = CRYACTION_BASE + 0x1d0670; 13 | #endif 14 | 15 | (this->*reinterpret_cast(ctor))(); 16 | } 17 | 18 | SubtitleManager::~SubtitleManager() 19 | { 20 | } 21 | 22 | //////////////////////////////////////////////////////////////////////////////// 23 | // ISubtitleManager 24 | //////////////////////////////////////////////////////////////////////////////// 25 | 26 | void SubtitleManager::SetHandler(ISubtitleHandler* pHandler) 27 | { 28 | } 29 | 30 | ISubtitleHandler* SubtitleManager::GetHandler() 31 | { 32 | return {}; 33 | } 34 | 35 | void SubtitleManager::SetEnabled(bool enabled) 36 | { 37 | } 38 | 39 | void SubtitleManager::SetAutoMode(bool on) 40 | { 41 | } 42 | 43 | void SubtitleManager::ShowSubtitle(ISound* pSound, bool show) 44 | { 45 | } 46 | 47 | void SubtitleManager::ShowSubtitle(const char* subtitleLabel, bool show) 48 | { 49 | } 50 | 51 | //////////////////////////////////////////////////////////////////////////////// 52 | -------------------------------------------------------------------------------- /Code/CryAction/SubtitleManager.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "CryCommon/CryAction/ISubtitleManager.h" 4 | 5 | class SubtitleManager : public ISubtitleManager 6 | { 7 | void* m_reserved[5 - 1] = {}; 8 | 9 | public: 10 | SubtitleManager(); 11 | virtual ~SubtitleManager(); 12 | 13 | //////////////////////////////////////////////////////////////////////////////// 14 | // ISubtitleManager 15 | //////////////////////////////////////////////////////////////////////////////// 16 | 17 | void SetHandler(ISubtitleHandler* pHandler) override; 18 | ISubtitleHandler* GetHandler() override; 19 | 20 | void SetEnabled(bool enabled) override; 21 | 22 | void SetAutoMode(bool on) override; 23 | 24 | void ShowSubtitle(ISound* pSound, bool show) override; 25 | void ShowSubtitle(const char* subtitleLabel, bool show) override; 26 | 27 | //////////////////////////////////////////////////////////////////////////////// 28 | }; 29 | -------------------------------------------------------------------------------- /Code/CryAction/TimeDemoRecorder.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | struct ISystem; 4 | 5 | class TimeDemoRecorder 6 | { 7 | // m_reserved_<32-bit-offset>_<64-bit-offset> 8 | void* m_reserved_0x0_0x0[6] = {}; 9 | bool m_isRecording = false; // m_reserved_0x18_0x30 10 | bool m_isPlaying = false; // m_reserved_0x19_0x31 11 | unsigned int m_reserved_0x1c_0x38[52] = {}; 12 | void* m_reserved[15] = {}; 13 | 14 | public: 15 | explicit TimeDemoRecorder(ISystem* pSystem); 16 | 17 | bool IsRecording() const { return m_isRecording; } 18 | bool IsPlaying() const { return m_isPlaying; } 19 | 20 | void PreUpdate(); 21 | void Update(); 22 | }; 23 | -------------------------------------------------------------------------------- /Code/CryAction/TimeOfDayScheduler.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include "TimeOfDayScheduler.h" 4 | 5 | extern std::uintptr_t CRYACTION_BASE; 6 | 7 | TimeOfDayScheduler::TimeOfDayScheduler() 8 | { 9 | #ifdef BUILD_64BIT 10 | std::uintptr_t ctor = CRYACTION_BASE + 0x330ad0; 11 | #else 12 | std::uintptr_t ctor = CRYACTION_BASE + 0x24cff0; 13 | #endif 14 | 15 | (this->*reinterpret_cast(ctor))(); 16 | } 17 | -------------------------------------------------------------------------------- /Code/CryAction/TimeOfDayScheduler.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class TimeOfDayScheduler 4 | { 5 | #ifdef BUILD_64BIT 6 | unsigned char m_data[0x28] = {}; 7 | #else 8 | unsigned char m_data[0x18] = {}; 9 | #endif 10 | 11 | public: 12 | TimeOfDayScheduler(); 13 | }; 14 | -------------------------------------------------------------------------------- /Code/CryAction/Vehicles/Implementations/Alien_warrior.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "CryAction/Vehicles/Vehicle.h" 4 | 5 | class Alien_warrior : public Vehicle 6 | { 7 | public: 8 | Alien_warrior(); 9 | ~Alien_warrior(); 10 | 11 | bool Init(IGameObject* pGameObject) override; 12 | }; 13 | -------------------------------------------------------------------------------- /Code/CryAction/Vehicles/Implementations/Asian_aaa.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "CryAction/Vehicles/Vehicle.h" 4 | 5 | class Asian_aaa : public Vehicle 6 | { 7 | public: 8 | Asian_aaa(); 9 | ~Asian_aaa(); 10 | 11 | bool Init(IGameObject* pGameObject) override; 12 | }; 13 | -------------------------------------------------------------------------------- /Code/CryAction/Vehicles/Implementations/Asian_apc.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "CryAction/Vehicles/Vehicle.h" 4 | 5 | class Asian_apc : public Vehicle 6 | { 7 | public: 8 | Asian_apc(); 9 | ~Asian_apc(); 10 | 11 | bool Init(IGameObject* pGameObject) override; 12 | }; 13 | -------------------------------------------------------------------------------- /Code/CryAction/Vehicles/Implementations/Asian_helicopter.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "CryAction/Vehicles/Vehicle.h" 4 | 5 | class Asian_helicopter : public Vehicle 6 | { 7 | public: 8 | Asian_helicopter(); 9 | ~Asian_helicopter(); 10 | 11 | bool Init(IGameObject* pGameObject) override; 12 | }; 13 | -------------------------------------------------------------------------------- /Code/CryAction/Vehicles/Implementations/Asian_ltv.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "CryAction/Vehicles/Vehicle.h" 4 | 5 | class Asian_ltv : public Vehicle 6 | { 7 | public: 8 | Asian_ltv(); 9 | ~Asian_ltv(); 10 | 11 | bool Init(IGameObject* pGameObject) override; 12 | }; 13 | -------------------------------------------------------------------------------- /Code/CryAction/Vehicles/Implementations/Asian_patrolboat.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "CryAction/Vehicles/Vehicle.h" 4 | 5 | class Asian_patrolboat : public Vehicle 6 | { 7 | public: 8 | Asian_patrolboat(); 9 | ~Asian_patrolboat(); 10 | 11 | bool Init(IGameObject* pGameObject) override; 12 | }; 13 | -------------------------------------------------------------------------------- /Code/CryAction/Vehicles/Implementations/Asian_tank.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "CryAction/Vehicles/Vehicle.h" 4 | 5 | class Asian_tank : public Vehicle 6 | { 7 | public: 8 | Asian_tank(); 9 | ~Asian_tank(); 10 | 11 | bool Init(IGameObject* pGameObject) override; 12 | }; 13 | -------------------------------------------------------------------------------- /Code/CryAction/Vehicles/Implementations/Asian_truck.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "CryAction/Vehicles/Vehicle.h" 4 | 5 | class Asian_truck : public Vehicle 6 | { 7 | public: 8 | Asian_truck(); 9 | ~Asian_truck(); 10 | 11 | bool Init(IGameObject* pGameObject) override; 12 | }; 13 | -------------------------------------------------------------------------------- /Code/CryAction/Vehicles/Implementations/Civ_car1.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "CryAction/Vehicles/Vehicle.h" 4 | 5 | class Civ_car1 : public Vehicle 6 | { 7 | public: 8 | Civ_car1(); 9 | ~Civ_car1(); 10 | 11 | bool Init(IGameObject* pGameObject) override; 12 | }; 13 | -------------------------------------------------------------------------------- /Code/CryAction/Vehicles/Implementations/Civ_speedboat.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "CryAction/Vehicles/Vehicle.h" 4 | 5 | class Civ_speedboat : public Vehicle 6 | { 7 | public: 8 | Civ_speedboat(); 9 | ~Civ_speedboat(); 10 | 11 | bool Init(IGameObject* pGameObject) override; 12 | }; 13 | -------------------------------------------------------------------------------- /Code/CryAction/Vehicles/Implementations/DefaultVehicle.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "CryAction/Vehicles/Vehicle.h" 4 | 5 | class DefaultVehicle : public Vehicle 6 | { 7 | public: 8 | DefaultVehicle(); 9 | ~DefaultVehicle(); 10 | 11 | bool Init(IGameObject* pGameObject) override; 12 | }; 13 | -------------------------------------------------------------------------------- /Code/CryAction/Vehicles/Implementations/US_apc.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "CryAction/Vehicles/Vehicle.h" 4 | 5 | class US_apc : public Vehicle 6 | { 7 | public: 8 | US_apc(); 9 | ~US_apc(); 10 | 11 | bool Init(IGameObject* pGameObject) override; 12 | }; 13 | -------------------------------------------------------------------------------- /Code/CryAction/Vehicles/Implementations/US_hovercraft.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "CryAction/Vehicles/Vehicle.h" 4 | 5 | class US_hovercraft : public Vehicle 6 | { 7 | public: 8 | US_hovercraft(); 9 | ~US_hovercraft(); 10 | 11 | bool Init(IGameObject* pGameObject) override; 12 | }; 13 | -------------------------------------------------------------------------------- /Code/CryAction/Vehicles/Implementations/US_ltv.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "CryAction/Vehicles/Vehicle.h" 4 | 5 | class US_ltv : public Vehicle 6 | { 7 | public: 8 | US_ltv(); 9 | ~US_ltv(); 10 | 11 | bool Init(IGameObject* pGameObject) override; 12 | }; 13 | -------------------------------------------------------------------------------- /Code/CryAction/Vehicles/Implementations/US_smallboat.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "CryAction/Vehicles/Vehicle.h" 4 | 5 | class US_smallboat : public Vehicle 6 | { 7 | public: 8 | US_smallboat(); 9 | ~US_smallboat(); 10 | 11 | bool Init(IGameObject* pGameObject) override; 12 | }; 13 | -------------------------------------------------------------------------------- /Code/CryAction/Vehicles/Implementations/US_tank.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "CryAction/Vehicles/Vehicle.h" 4 | 5 | class US_tank : public Vehicle 6 | { 7 | public: 8 | US_tank(); 9 | ~US_tank(); 10 | 11 | bool Init(IGameObject* pGameObject) override; 12 | }; 13 | -------------------------------------------------------------------------------- /Code/CryAction/Vehicles/Implementations/US_transportVTOL.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "CryAction/Vehicles/Vehicle.h" 4 | 5 | class US_transportVTOL : public Vehicle 6 | { 7 | public: 8 | US_transportVTOL(); 9 | ~US_transportVTOL(); 10 | 11 | bool Init(IGameObject* pGameObject) override; 12 | }; 13 | -------------------------------------------------------------------------------- /Code/CryAction/Vehicles/Implementations/US_trolley.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "CryAction/Vehicles/Vehicle.h" 4 | 5 | class US_trolley : public Vehicle 6 | { 7 | public: 8 | US_trolley(); 9 | ~US_trolley(); 10 | 11 | bool Init(IGameObject* pGameObject) override; 12 | }; 13 | -------------------------------------------------------------------------------- /Code/CryAction/Vehicles/Implementations/US_vtol.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "CryAction/Vehicles/Vehicle.h" 4 | 5 | class US_vtol : public Vehicle 6 | { 7 | public: 8 | US_vtol(); 9 | ~US_vtol(); 10 | 11 | bool Init(IGameObject* pGameObject) override; 12 | }; 13 | -------------------------------------------------------------------------------- /Code/CryAction/Vehicles/Parts/VehiclePartEntityAttachment.cpp: -------------------------------------------------------------------------------- 1 | #include "VehiclePartEntityAttachment.h" 2 | 3 | extern std::uintptr_t CRYACTION_BASE; 4 | 5 | VehiclePartEntityAttachment::VehiclePartEntityAttachment() 6 | { 7 | // CryMP: the original implementation uses the inherited eVPT_Base here, which is wrong 8 | m_type = eVPT_Attachment; 9 | 10 | #ifdef BUILD_64BIT 11 | std::uintptr_t vtable = CRYACTION_BASE + 0x343b58; 12 | #else 13 | std::uintptr_t vtable = CRYACTION_BASE + 0x260f00; 14 | #endif 15 | 16 | *reinterpret_cast(this) = vtable; 17 | } 18 | 19 | void VehiclePartEntityAttachment::Register(IVehicleSystem* pVehicleSystem) 20 | { 21 | REGISTER_FACTORY(pVehicleSystem, "EntityAttachment", VehiclePartEntityAttachment, false); 22 | 23 | const TVehicleObjectId id = pVehicleSystem->AssignVehicleObjectId(); 24 | 25 | #ifdef BUILD_64BIT 26 | *reinterpret_cast(CRYACTION_BASE + 0x4240dc) = id; 27 | #else 28 | *reinterpret_cast(CRYACTION_BASE + 0x2a560c) = id; 29 | #endif 30 | } 31 | -------------------------------------------------------------------------------- /Code/CryAction/Vehicles/Parts/VehiclePartEntityAttachment.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "VehiclePartBase.h" 4 | 5 | class VehiclePartEntityAttachment : public VehiclePartBase 6 | { 7 | EntityId m_reserved1; 8 | Matrix34 m_reserved2; 9 | Matrix34 m_reserved3; 10 | 11 | public: 12 | VehiclePartEntityAttachment(); 13 | 14 | static void Register(IVehicleSystem* pVehicleSystem); 15 | }; 16 | 17 | #ifdef BUILD_64BIT 18 | static_assert(sizeof(VehiclePartEntityAttachment) == 0x220); 19 | #else 20 | static_assert(sizeof(VehiclePartEntityAttachment) == 0x1cc); 21 | #endif 22 | -------------------------------------------------------------------------------- /Code/CryAction/Vehicles/Parts/VehiclePartStatic.cpp: -------------------------------------------------------------------------------- 1 | #include "VehiclePartStatic.h" 2 | 3 | extern std::uintptr_t CRYACTION_BASE; 4 | 5 | VehiclePartStatic::VehiclePartStatic() 6 | { 7 | m_type = eVPT_Static; 8 | 9 | #ifdef BUILD_64BIT 10 | std::uintptr_t vtable = CRYACTION_BASE + 0x343e08; 11 | #else 12 | std::uintptr_t vtable = CRYACTION_BASE + 0x261038; 13 | #endif 14 | 15 | *reinterpret_cast(this) = vtable; 16 | } 17 | 18 | void VehiclePartStatic::Register(IVehicleSystem* pVehicleSystem) 19 | { 20 | REGISTER_FACTORY(pVehicleSystem, "Static", VehiclePartStatic, false); 21 | 22 | const TVehicleObjectId id = pVehicleSystem->AssignVehicleObjectId(); 23 | 24 | #ifdef BUILD_64BIT 25 | *reinterpret_cast(CRYACTION_BASE + 0x424c7c) = id; 26 | #else 27 | *reinterpret_cast(CRYACTION_BASE + 0x2a6134) = id; 28 | #endif 29 | } 30 | -------------------------------------------------------------------------------- /Code/CryAction/Vehicles/Parts/VehiclePartStatic.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "VehiclePartBase.h" 4 | 5 | class VehiclePartStatic : public VehiclePartBase 6 | { 7 | CryStringT m_reserved1; 8 | CryStringT m_reserved2; 9 | CryStringT m_reserved3; 10 | 11 | public: 12 | VehiclePartStatic(); 13 | 14 | static void Register(IVehicleSystem* pVehicleSystem); 15 | }; 16 | 17 | #ifdef BUILD_64BIT 18 | static_assert(sizeof(VehiclePartStatic) == 0x1d0); 19 | #else 20 | static_assert(sizeof(VehiclePartStatic) == 0x174); 21 | #endif 22 | -------------------------------------------------------------------------------- /Code/CryAction/Vehicles/Parts/VehiclePartSubPart.cpp: -------------------------------------------------------------------------------- 1 | #include "VehiclePartSubPart.h" 2 | 3 | extern std::uintptr_t CRYACTION_BASE; 4 | 5 | VehiclePartSubPart::VehiclePartSubPart() 6 | { 7 | m_type = eVPT_SubPart; 8 | 9 | #ifdef BUILD_64BIT 10 | std::uintptr_t vtable = CRYACTION_BASE + 0x3439c8; 11 | #else 12 | std::uintptr_t vtable = CRYACTION_BASE + 0x260e38; 13 | #endif 14 | 15 | *reinterpret_cast(this) = vtable; 16 | } 17 | 18 | void VehiclePartSubPart::Register(IVehicleSystem* pVehicleSystem) 19 | { 20 | REGISTER_FACTORY(pVehicleSystem, "SubPart", VehiclePartSubPart, false); 21 | 22 | const TVehicleObjectId id = pVehicleSystem->AssignVehicleObjectId(); 23 | 24 | #ifdef BUILD_64BIT 25 | *reinterpret_cast(CRYACTION_BASE + 0x424c80) = id; 26 | #else 27 | *reinterpret_cast(CRYACTION_BASE + 0x2a6138) = id; 28 | #endif 29 | } 30 | -------------------------------------------------------------------------------- /Code/CryAction/Vehicles/Parts/VehiclePartSubPart.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "VehiclePartBase.h" 4 | 5 | class VehiclePartSubPart : public VehiclePartBase 6 | { 7 | Matrix34 m_reserved; 8 | 9 | public: 10 | VehiclePartSubPart(); 11 | 12 | static void Register(IVehicleSystem* pVehicleSystem); 13 | }; 14 | 15 | #ifdef BUILD_64BIT 16 | static_assert(sizeof(VehiclePartSubPart) == 0x1e8); 17 | #else 18 | static_assert(sizeof(VehiclePartSubPart) == 0x198); 19 | #endif 20 | -------------------------------------------------------------------------------- /Code/CryAction/Vehicles/VehicleCVars.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include "VehicleCVars.h" 4 | 5 | extern std::uintptr_t CRYACTION_BASE; 6 | 7 | VehicleCVars::VehicleCVars() 8 | { 9 | #ifdef BUILD_64BIT 10 | std::uintptr_t ctor = CRYACTION_BASE + 0x33d80; 11 | #else 12 | std::uintptr_t ctor = CRYACTION_BASE + 0x26cf0; 13 | #endif 14 | 15 | (this->*reinterpret_cast(ctor))(); 16 | } 17 | -------------------------------------------------------------------------------- /Code/CryAction/Vehicles/VehicleCVars.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class VehicleCVars 4 | { 5 | unsigned char m_data[0x88] = {}; 6 | 7 | public: 8 | VehicleCVars(); 9 | }; 10 | 11 | static_assert(sizeof(VehicleCVars) == 0x88); 12 | -------------------------------------------------------------------------------- /Code/CryAction/Vehicles/VehicleDamagesTemplateRegistry.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | #include "CryCommon/CryAction/IVehicleSystem.h" 8 | 9 | class VehicleDamagesTemplateRegistry : public IVehicleDamagesTemplateRegistry 10 | { 11 | std::map> m_groups; 12 | 13 | public: 14 | VehicleDamagesTemplateRegistry(); 15 | ~VehicleDamagesTemplateRegistry(); 16 | 17 | // VehicleDamagesTemplateRegistry_XMLData.cpp 18 | void InitDefaults(); 19 | 20 | //////////////////////////////////////////////////////////////////////////////// 21 | // IVehicleDamagesTemplateRegistry 22 | //////////////////////////////////////////////////////////////////////////////// 23 | 24 | bool Init(const string& defaultDefFilename, const string& damagesTemplatesPath) override; 25 | void Release() override; 26 | 27 | bool RegisterTemplates(const string& filename, const string& defFilename) override; 28 | bool UseTemplate(const string& templateName, IVehicleDamagesGroup* pDamagesGroup) override; 29 | 30 | //////////////////////////////////////////////////////////////////////////////// 31 | }; 32 | -------------------------------------------------------------------------------- /Code/CryAction/Vehicles/VehicleIterator.cpp: -------------------------------------------------------------------------------- 1 | #include "VehicleIterator.h" 2 | #include "VehicleSystem.h" 3 | 4 | VehicleIterator::VehicleIterator(VehicleSystem* pVehicleSystem) : m_pVehicleSystem(pVehicleSystem) 5 | { 6 | // TODO: this might get invalidated by std::map::erase -> unsafe 7 | m_iterator = pVehicleSystem->m_vehicles.begin(); 8 | } 9 | 10 | VehicleIterator* VehicleIterator::Create(VehicleSystem* pVehicleSystem) 11 | { 12 | // TODO: no smart pointer -> unsafe 13 | return new VehicleIterator(pVehicleSystem); 14 | } 15 | 16 | //////////////////////////////////////////////////////////////////////////////// 17 | // IVehicleIterator 18 | //////////////////////////////////////////////////////////////////////////////// 19 | 20 | size_t VehicleIterator::Count() 21 | { 22 | return m_pVehicleSystem->m_vehicles.size(); 23 | } 24 | 25 | IVehicle* VehicleIterator::Next() 26 | { 27 | if (m_iterator == m_pVehicleSystem->m_vehicles.end()) 28 | { 29 | return nullptr; 30 | } 31 | 32 | IVehicle* pVehicle = m_iterator->second; 33 | ++m_iterator; 34 | 35 | return pVehicle; 36 | } 37 | 38 | void VehicleIterator::AddRef() 39 | { 40 | ++m_refCount; 41 | } 42 | 43 | void VehicleIterator::Release() 44 | { 45 | if (--m_refCount <= 0) 46 | { 47 | delete this; 48 | } 49 | } 50 | 51 | //////////////////////////////////////////////////////////////////////////////// 52 | -------------------------------------------------------------------------------- /Code/CryAction/Vehicles/VehicleIterator.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #include "CryCommon/CryAction/IVehicleSystem.h" 6 | 7 | class VehicleSystem; 8 | 9 | class VehicleIterator : public IVehicleIterator 10 | { 11 | int m_refCount = 0; 12 | VehicleSystem* m_pVehicleSystem = nullptr; 13 | std::map::iterator m_iterator; 14 | 15 | explicit VehicleIterator(VehicleSystem* pVehicleSystem); 16 | 17 | public: 18 | static VehicleIterator* Create(VehicleSystem* pVehicleSystem); 19 | 20 | //////////////////////////////////////////////////////////////////////////////// 21 | // IVehicleIterator 22 | //////////////////////////////////////////////////////////////////////////////// 23 | 24 | size_t Count() override; 25 | IVehicle* Next() override; 26 | void AddRef() override; 27 | void Release() override; 28 | 29 | //////////////////////////////////////////////////////////////////////////////// 30 | }; 31 | -------------------------------------------------------------------------------- /Code/CryAction/Vehicles/VehicleSeatGroup.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include "VehicleSeatGroup.h" 4 | 5 | extern std::uintptr_t CRYACTION_BASE; 6 | 7 | bool VehicleSeatGroup::Init(IVehicle* pVehicle, const SmartScriptTable& seatGroup) 8 | { 9 | #ifdef BUILD_64BIT 10 | std::uintptr_t func = CRYACTION_BASE + 0x9cae0; 11 | #else 12 | std::uintptr_t func = CRYACTION_BASE + 0x71af0; 13 | #endif 14 | 15 | return (this->*reinterpret_cast(func))( 16 | pVehicle, seatGroup 17 | ); 18 | } 19 | -------------------------------------------------------------------------------- /Code/CryAction/Vehicles/VehicleSeatGroup.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | struct IVehicle; 4 | 5 | class SmartScriptTable; 6 | 7 | class VehicleSeatGroup 8 | { 9 | #ifdef BUILD_64BIT 10 | unsigned char m_data[0x30] = {}; 11 | #else 12 | unsigned char m_data[0x18] = {}; 13 | #endif 14 | 15 | public: 16 | VehicleSeatGroup() = default; 17 | 18 | bool Init(IVehicle* pVehicle, const SmartScriptTable& seatGroup); 19 | }; 20 | 21 | #ifdef BUILD_64BIT 22 | static_assert(sizeof(VehicleSeatGroup) == 0x30); 23 | #else 24 | static_assert(sizeof(VehicleSeatGroup) == 0x18); 25 | #endif 26 | -------------------------------------------------------------------------------- /Code/CryCommon/Cry3DEngine/IFoliage.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "CryCommon/CryRenderer/ISkinnable.h" 4 | #include "CryCommon/CryNetwork/SerializeFwd.h" 5 | 6 | struct IRenderNode; 7 | 8 | struct IFoliage : ISkinnable 9 | { 10 | enum EFoliageFlags { FLAG_FROZEN=1 }; 11 | virtual int Serialize(TSerialize ser) = 0; 12 | virtual void SetFlags(int flags) = 0; 13 | virtual int GetFlags() = 0; 14 | virtual IRenderNode* GetIRenderNode() = 0; 15 | }; 16 | -------------------------------------------------------------------------------- /Code/CryCommon/CryAction/IInteractor.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | Crytek Source File. 3 | Copyright (C), Crytek Studios, 2001-2004. 4 | ------------------------------------------------------------------------- 5 | $Id$ 6 | $DateTime$ 7 | Description: Interactor interface. 8 | 9 | ------------------------------------------------------------------------- 10 | History: 11 | - 26:6:2006 17:06 : Created by Márcio Martins 12 | 13 | *************************************************************************/ 14 | #ifndef __IINTERACTOR_H__ 15 | #define __IINTERACTOR_H__ 16 | 17 | #pragma once 18 | 19 | 20 | struct IInteractor : public IGameObjectExtension 21 | { 22 | virtual bool IsUsable(EntityId entityId) const = 0; 23 | virtual bool IsLocked() const = 0; 24 | virtual int GetLockIdx() const = 0; 25 | virtual int GetLockedEntityId() const = 0; 26 | }; 27 | 28 | #endif // __IINTERACTOR_H__ -------------------------------------------------------------------------------- /Code/CryCommon/CryAction/ILoadGame.h: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------- 2 | // Crytek Source File. 3 | // Copyright (C) Crytek GmbH, 2001-2008. 4 | // ------------------------------------------------------------------------- 5 | #ifndef __ILOADGAME_H__ 6 | #define __ILOADGAME_H__ 7 | 8 | #pragma once 9 | 10 | struct ILoadGame 11 | { 12 | // std::auto_ptr is removed since C++17 13 | class std_auto_ptr_TSerialize; 14 | 15 | // initialize - set name of game 16 | virtual bool Init( const char * name ) = 0; 17 | 18 | // get some basic meta-data 19 | virtual const char * GetMetadata( const char * tag ) = 0; 20 | virtual bool GetMetadata( const char * tag, int& value ) = 0; 21 | virtual bool HaveMetadata( const char * tag ) = 0; 22 | // serialize a console variable 23 | virtual bool GetConsoleVariable( ICVar * pVar ) = 0; 24 | // create a serializer for some data section 25 | virtual std_auto_ptr_TSerialize GetSection( const char * section ) = 0; 26 | virtual bool HaveSection( const char * section ) = 0; 27 | 28 | // finish - indicate success (negative success *must* remove file) 29 | // also calls delete this; 30 | virtual void Complete() = 0; 31 | 32 | // returns the filename of this savegame 33 | virtual const char* GetFileName() const = 0; 34 | }; 35 | 36 | #endif 37 | -------------------------------------------------------------------------------- /Code/CryCommon/CryAction/IWorldQuery.h: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------- 2 | // Crytek Source File. 3 | // Copyright (C) Crytek GmbH, 2001-2008. 4 | // ------------------------------------------------------------------------- 5 | #ifndef __IWORLDQUERY_H__ 6 | #define __IWORLDQUERY_H__ 7 | 8 | #pragma once 9 | 10 | #include "IGameObject.h" 11 | 12 | typedef std::vector Entities; 13 | 14 | struct IWorldQuery : IGameObjectExtension 15 | { 16 | virtual IEntity * GetEntityInFrontOf() = 0; 17 | virtual const Entities& GetEntitiesInFrontOf() = 0; 18 | virtual const Vec3& GetPos() const = 0; 19 | virtual const EntityId GetLookAtEntityId()= 0; 20 | virtual const ray_hit* GetLookAtPoint(const float fMaxDist = 0)= 0; 21 | }; 22 | 23 | #endif -------------------------------------------------------------------------------- /Code/CryCommon/CryCore/CryMalloc.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | void* CryMalloc(std::size_t size); 6 | void* CryRealloc(void* oldPtr, std::size_t newSize); 7 | void CryFree(void* ptr); 8 | -------------------------------------------------------------------------------- /Code/CryCommon/CryEntitySystem/EntityId.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | typedef unsigned int EntityId; 4 | -------------------------------------------------------------------------------- /Code/CryCommon/CryGame/IGameRef.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | Crytek Source File. 3 | Copyright (C), Crytek Studios, 2001-2004. 4 | ------------------------------------------------------------------------- 5 | $Id$ 6 | $DateTime$ 7 | Description: 8 | 9 | ------------------------------------------------------------------------- 10 | History: 11 | - 2:8:2004 10:59 : Created by Márcio Martins 12 | 13 | *************************************************************************/ 14 | #ifndef __IGAMEMODPTR_H__ 15 | #define __IGAMEMODPTR_H__ 16 | 17 | #if _MSC_VER > 1000 18 | # pragma once 19 | #endif 20 | 21 | 22 | struct IGame; 23 | struct IGameRef 24 | { 25 | IGameRef(): m_ptr(0) {} 26 | IGameRef(IGame **ptr): m_ptr(ptr) {}; 27 | ~IGameRef() {}; 28 | 29 | IGame *operator ->() const { return m_ptr ? *m_ptr : 0; }; 30 | operator IGame*() const { return m_ptr ? *m_ptr : 0; }; 31 | IGameRef &operator =(IGame **ptr) { m_ptr = ptr; return *this; }; 32 | 33 | private: 34 | IGame **m_ptr; 35 | }; 36 | 37 | #endif //__IGAMEMODPTR_H__ -------------------------------------------------------------------------------- /Code/CryCommon/CryNetwork/SerializationTypes.h: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------- 2 | // Crytek Source File. 3 | // Copyright (C) Crytek GmbH, 2001-2008. 4 | // ------------------------------------------------------------------------- 5 | // this file is included anywhere that we need a complete list of primitive serializable types 6 | 7 | SERIALIZATION_TYPE(bool) 8 | SERIALIZATION_TYPE(float) 9 | SERIALIZATION_TYPE(Vec2) 10 | SERIALIZATION_TYPE(Vec3) 11 | SERIALIZATION_TYPE(Quat) 12 | SERIALIZATION_TYPE(Ang3) 13 | SERIALIZATION_TYPE(int8) 14 | SERIALIZATION_TYPE(int16) 15 | SERIALIZATION_TYPE(int32) 16 | SERIALIZATION_TYPE(int64) 17 | SERIALIZATION_TYPE(uint8) 18 | SERIALIZATION_TYPE(uint16) 19 | SERIALIZATION_TYPE(uint32) 20 | SERIALIZATION_TYPE(uint64) 21 | SERIALIZATION_TYPE(ScriptAnyValue) // not for network - only for save games 22 | SERIALIZATION_TYPE(CTimeValue) 23 | SERIALIZATION_TYPE(SNetObjectID) -------------------------------------------------------------------------------- /Code/CryCommon/CryNetwork/SerializeFwd.h: -------------------------------------------------------------------------------- 1 | ////////////////////////////////////////////////////////////////////// 2 | // Crytek Source File. 3 | // Copyright (C) Crytek GmbH, 2001-2008. 4 | // 5 | // Crytek Serialization framework 6 | // 7 | // File: SerializeFwd.h 8 | // Description: forward declaration of TSerialize 9 | // 10 | // History: 11 | // -12/05/2005: Kirill Bulatsev, Created 12 | // 13 | ////////////////////////////////////////////////////////////////////// 14 | 15 | 16 | template class CSerializeWrapper; 17 | struct ISerialize; 18 | typedef CSerializeWrapper TSerialize; 19 | -------------------------------------------------------------------------------- /Code/CryCommon/CryRenderer/ISkinnable.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #include "CryCommon/CryMath/Cry_Math.h" 6 | 7 | // interface for the skinnable objects (renderer calls its functions to get teh skinning data) 8 | struct ISkinnable 9 | { 10 | virtual void AddRef() = 0; 11 | virtual void Release() = 0; 12 | 13 | //! Renderer calls this function to allow update the video vertex buffers right before the rendering 14 | virtual std::uint32_t GetSkeletonPose( 15 | int nLod, 16 | const Matrix34& RenderMat34, 17 | QuatTS*& pBoneQuatsL, 18 | QuatTS*& pBoneQuatsS, 19 | QuatTS*& pMBBoneQuatsL, 20 | QuatTS*& pMBBoneQuatsS, 21 | Vec4 shapeDeformationData[], 22 | std::uint32_t& DoWeNeedMorphtargets, 23 | std::uint8_t*& pRemapTable 24 | ) = 0; 25 | }; 26 | -------------------------------------------------------------------------------- /Code/CryCommon/CrySystem/CryColorCode.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #define CRY_COLOR_CODE_BLACK 0 4 | #define CRY_COLOR_CODE_WHITE 1 5 | #define CRY_COLOR_CODE_BLUE 2 6 | #define CRY_COLOR_CODE_GREEN 3 7 | #define CRY_COLOR_CODE_RED 4 8 | #define CRY_COLOR_CODE_CYAN 5 9 | #define CRY_COLOR_CODE_YELLOW 6 10 | #define CRY_COLOR_CODE_MAGENTA 7 11 | #define CRY_COLOR_CODE_ORANGE 8 12 | #define CRY_COLOR_CODE_GRAY 9 13 | 14 | #define CRY_COLOR_CODE_BLACK_STRING "$0" 15 | #define CRY_COLOR_CODE_WHITE_STRING "$1" 16 | #define CRY_COLOR_CODE_BLUE_STRING "$2" 17 | #define CRY_COLOR_CODE_GREEN_STRING "$3" 18 | #define CRY_COLOR_CODE_RED_STRING "$4" 19 | #define CRY_COLOR_CODE_CYAN_STRING "$5" 20 | #define CRY_COLOR_CODE_YELLOW_STRING "$6" 21 | #define CRY_COLOR_CODE_MAGENTA_STRING "$7" 22 | #define CRY_COLOR_CODE_ORANGE_STRING "$8" 23 | #define CRY_COLOR_CODE_GRAY_STRING "$9" 24 | -------------------------------------------------------------------------------- /Code/CryCommon/CrySystem/IProcess.h: -------------------------------------------------------------------------------- 1 | ////////////////////////////////////////////////////////////////////// 2 | // 3 | // Crytek Source File. 4 | // Copyright (C) Crytek GmbH, 2001-2008. 5 | // 6 | // File:IProcess.h 7 | // Description: Process common interface 8 | // 9 | // History: 10 | // -September 03,2001:Created by Marco Corbetta 11 | // 12 | ////////////////////////////////////////////////////////////////////// 13 | 14 | #ifndef IPROCESS_H 15 | #define IPROCESS_H 16 | 17 | #if _MSC_VER > 1000 18 | # pragma once 19 | #endif 20 | 21 | //////////////////////////////////////////////////////////////////////////////////////////////// 22 | //////////////////////////////////////////////////////////////////////////////////////////////// 23 | struct IProcess 24 | { 25 | virtual bool Init() = 0; 26 | virtual void Update() = 0; 27 | virtual void RenderWorld(const int nRenderFlags, const class CCamera &cam, const char *szDebugName, const int dwDrawFlags = -1, const int nFilterFlags=-1) = 0; 28 | virtual void ShutDown() = 0; 29 | virtual void SetFlags(int flags) = 0; 30 | virtual int GetFlags(void) = 0; 31 | }; 32 | 33 | #endif -------------------------------------------------------------------------------- /Code/CryCommon/CrySystem/IResourceCollector.h: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------- 2 | // Crytek Source File. 3 | // Copyright (C) Crytek GmbH, 2001-2008. 4 | // ------------------------------------------------------------------------- 5 | #ifndef _CRY_COMMON_CRY_RESOURCECOLLECTOR_INTERFACE_HDR_ 6 | #define _CRY_COMMON_CRY_RESOURCECOLLECTOR_INTERFACE_HDR_ 7 | 8 | #pragma once 9 | 10 | // used to collect the assets needed for streaming and to gather statistics 11 | struct IResourceCollector 12 | { 13 | // Arguments: 14 | // dwMemSize 0xffffffff if size is unknown 15 | // Returns: 16 | // true=new resource was added, false=resource was already registered 17 | virtual bool AddResource( const char *szFileName, const uint32 dwMemSize ) { return true; } 18 | 19 | // Arguments: 20 | // szFileName - needs to be registered before with AddResource() 21 | // pInstance - must not be 0 22 | virtual void AddInstance( const char *szFileName, void *pInstance ) {} 23 | // 24 | // Arguments: 25 | // szFileName - needs to be registered before with AddResource() 26 | virtual void OpenDependencies( const char *szFileName ) {} 27 | // 28 | virtual void CloseDependencies() {} 29 | }; 30 | 31 | 32 | 33 | 34 | #endif // _CRY_COMMON_CRY_RESOURCECOLLECTOR_INTERFACE_HDR_ 35 | 36 | 37 | -------------------------------------------------------------------------------- /Code/CryCommon/CrySystem/ITextModeConsole.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | Crytek Source File. 3 | Copyright (C), Crytek Studios, 2001-2006. 4 | ------------------------------------------------------------------------- 5 | $Id$ 6 | $DateTime$ 7 | Description: 8 | Allows creation of text mode displays the for dedicated server 9 | ------------------------------------------------------------------------- 10 | History: 11 | - Nov 22,2006: Created by Craig Tiller 12 | 13 | *************************************************************************/ 14 | #ifndef __ITEXTMODECONSOLE_H__ 15 | #define __ITEXTMODECONSOLE_H__ 16 | 17 | #pragma once 18 | 19 | struct ITextModeConsole 20 | { 21 | virtual Vec2_tpl BeginDraw() = 0; 22 | virtual void PutText( int x, int y, const char * msg ) = 0; 23 | virtual void EndDraw() = 0; 24 | }; 25 | 26 | #endif 27 | -------------------------------------------------------------------------------- /Code/CryGame/Actors/Alien/Observer.cpp: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | Crytek Source File. 3 | Copyright (C), Crytek Studios, 2001-2004. 4 | ------------------------------------------------------------------------- 5 | $Id$ 6 | $DateTime$ 7 | 8 | ------------------------------------------------------------------------- 9 | History: 10 | - 9:6:2004: Created by Filippo De Luca 11 | - 15:8:2005: Renamed CDrone to CObserver by Mikko Mononen 12 | 13 | *************************************************************************/ 14 | #include "CryCommon/CrySystem/ISystem.h" 15 | #include "CryGame/Game.h" 16 | #include "Observer.h" 17 | #include "CryCommon/CryGame/GameUtils.h" 18 | 19 | #include "CryCommon/CryAction/IViewSystem.h" 20 | #include "CryCommon/CryAction/IItemSystem.h" 21 | #include "CryCommon/CryPhysics/IPhysics.h" 22 | #include "CryCommon/CryAnimation/ICryAnimation.h" 23 | #include "CryCommon/CryNetwork/ISerialize.h" 24 | #include "CryCommon/CryRenderer/IRenderAuxGeom.h" 25 | -------------------------------------------------------------------------------- /Code/CryGame/Actors/Alien/Observer.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | Crytek Source File. 3 | Copyright (C), Crytek Studios, 2001-2004. 4 | ------------------------------------------------------------------------- 5 | $Id$ 6 | $DateTime$ 7 | Description: Implements the Observer alien. 8 | 9 | ------------------------------------------------------------------------- 10 | History: 11 | - 9:6:2005: Created by Filippo De Luca 12 | - 15:8:2005: Renamed CDrone to CObserver by Mikko Mononen 13 | 14 | *************************************************************************/ 15 | #ifndef __OBSERVER_H__ 16 | #define __OBSERVER_H__ 17 | 18 | #if _MSC_VER > 1000 19 | # pragma once 20 | #endif 21 | 22 | #include "Hunter.h" 23 | 24 | class CObserver : 25 | public CHunter 26 | { 27 | public: 28 | 29 | virtual void SetActorStance(SMovementRequestParams &control, int& actions) 30 | { 31 | // Empty 32 | } 33 | 34 | protected: 35 | }; 36 | 37 | 38 | #endif //__OBSERVER_H__ 39 | -------------------------------------------------------------------------------- /Code/CryGame/BulletTime.h: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------- 2 | // Crytek Source File. 3 | // Copyright (C) Crytek GmbH, 2001-2008. 4 | // ------------------------------------------------------------------------- 5 | #ifndef __BULLET_TIME_H__ 6 | #define __BULLET_TIME_H__ 7 | 8 | #pragma once 9 | 10 | struct ISound; 11 | 12 | class CBulletTime 13 | { 14 | public: 15 | CBulletTime(); 16 | 17 | void Update(); 18 | void Activate(bool activate); 19 | bool IsActive() const { return m_active; } 20 | 21 | private: 22 | void TimeScaleTarget(float target); 23 | 24 | _smart_ptr m_pSoundBegin; 25 | _smart_ptr m_pSoundEnd; 26 | 27 | bool m_active; 28 | float m_timeScaleTarget; 29 | float m_timeScaleCurrent; 30 | float m_energy; 31 | }; 32 | #endif //__BULLET_TIME_H__ 33 | 34 | -------------------------------------------------------------------------------- /Code/CryGame/Environment/Tornado/FlowTornado.cpp: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------- 2 | // Crytek Source File. 3 | // Copyright (C) Crytek GmbH, 2001-2008. 4 | // ------------------------------------------------------------------------- 5 | #include "CryCommon/CrySystem/ISystem.h" 6 | #include "FlowTornado.h" 7 | 8 | REGISTER_FLOW_NODE("Crysis:TornadoWander", CFlowTornadoWander); 9 | -------------------------------------------------------------------------------- /Code/CryGame/GameFactory.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | Crytek Source File. 3 | Copyright (C), Crytek Studios, 2001-2005. 4 | ------------------------------------------------------------------------- 5 | $Id$ 6 | $DateTime$ 7 | Description: Register the factory templates used to create classes from names 8 | e.g. REGISTER_FACTORY(pFramework, "Player", CPlayer, false); 9 | or REGISTER_FACTORY(pFramework, "Player", CPlayerG4, false); 10 | 11 | Since overriding this function creates template based linker errors, 12 | it's been replaced by a standalone function in its own cpp file. 13 | 14 | ------------------------------------------------------------------------- 15 | History: 16 | - 17:8:2005 Created by Nick Hesketh - Refactor'd from Game.cpp/h 17 | 18 | *************************************************************************/ 19 | 20 | #ifndef __GAMEFACTORY_H__ 21 | #define __GAMEFACTORY_H__ 22 | 23 | #if _MSC_VER > 1000 24 | # pragma once 25 | #endif 26 | 27 | 28 | struct IGameFramework; 29 | 30 | // Register the factory templates used to create classes from names. Called via CGame::Init() 31 | void InitGameFactory(IGameFramework *pFramework); 32 | 33 | 34 | #endif // ifndef __GAMEFACTORY_H__ 35 | -------------------------------------------------------------------------------- /Code/CryGame/HUD/HUDObituary.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | Crytek Source File. 3 | Copyright (C), Crytek Studios, 2001-2006. 4 | ------------------------------------------------------------------------- 5 | $Id$ 6 | $DateTime$ 7 | Description: HUD obituary - receives player death messages in multiplayer. 8 | 9 | ------------------------------------------------------------------------- 10 | History: 11 | - 09:06:2006: Created by Márcio Martins 12 | 13 | *************************************************************************/ 14 | #ifndef __HUDOBITUARY_H__ 15 | #define __HUDOBITUARY_H__ 16 | 17 | 18 | #include "HUDObject.h" 19 | #include "CryCommon/CryInput/IInput.h" 20 | #include "CryCommon/CrySystem/TimeValue.h" 21 | 22 | struct IFFont; 23 | 24 | class CHUDObituary : public CHUDObject 25 | { 26 | static const int OBITUARY_SIZE = 8; 27 | public: 28 | CHUDObituary(); 29 | ~CHUDObituary(); 30 | 31 | virtual void Update(float deltaTime); 32 | virtual void AddMessage(const wchar_t *msg); 33 | 34 | void GetMemoryStatistics(ICrySizer * s); 35 | 36 | private: 37 | IFFont *m_pDefaultFont; 38 | wstring m_deaths[OBITUARY_SIZE]; 39 | CTimeValue m_deathTimes[OBITUARY_SIZE]; 40 | int m_deathHead; 41 | bool m_empty; 42 | }; 43 | 44 | #endif //__HUDOBITUARY_H__ 45 | -------------------------------------------------------------------------------- /Code/CryGame/HUD/HUDTeamInstantAction.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crymp-net/client-server/5754f9e5ba59a005b33ee4e7f7e2f52dc82f91ac/Code/CryGame/HUD/HUDTeamInstantAction.cpp -------------------------------------------------------------------------------- /Code/CryGame/Items/FlowItemAnimation.cpp: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------- 2 | // Crytek Source File. 3 | // Copyright (C) Crytek GmbH, 2001-2008. 4 | // ------------------------------------------------------------------------- 5 | #include "CryCommon/CrySystem/ISystem.h" 6 | #include "FlowItemAnimation.h" 7 | 8 | REGISTER_FLOW_NODE("Crysis:ItemAnimation", CFlowItemAnimation); 9 | REGISTER_FLOW_NODE("Crysis:OffHandAnimation", CFlowOffhandAnimation); 10 | -------------------------------------------------------------------------------- /Code/CryGame/Items/ItemString.cpp: -------------------------------------------------------------------------------- 1 | #include "ItemString.h" 2 | 3 | std::string_view ItemString::NameTable::GetEntry(const std::string_view& name) 4 | { 5 | auto it = m_table.find(name); 6 | if (it == m_table.end()) 7 | { 8 | std::tie(it, std::ignore) = m_table.emplace(name); 9 | } 10 | 11 | return std::string_view(*it); 12 | } 13 | 14 | void ItemString::NameTable::DumpToLog() 15 | { 16 | CryLogAlways("NameTable: %zu entries", m_table.size()); 17 | 18 | for (const std::string& entry : m_table) 19 | { 20 | CryLogAlways("'%s'", entry.c_str()); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Code/CryGame/Items/Weapons/C4Detonator.h: -------------------------------------------------------------------------------- 1 | /************************************************************************ 2 | Crytek Source File. 3 | Copyright (C), Crytek Studios, 2001-2004. 4 | ------------------------------------------------------------------------- 5 | $Id$ 6 | $DateTime$ 7 | Description: C4Detonator Implementation 8 | 9 | ------------------------------------------------------------------------- 10 | History: 11 | - 29:05:2007 Benito G.R. 12 | 13 | *************************************************************************/ 14 | #ifndef __C4DETONATOR_H__ 15 | #define __C4DETONATOR_H__ 16 | 17 | #if _MSC_VER > 1000 18 | # pragma once 19 | #endif 20 | 21 | 22 | #include "CryCommon/CryAction/IItemSystem.h" 23 | #include "Weapon.h" 24 | 25 | 26 | class CC4Detonator : 27 | public CWeapon 28 | { 29 | 30 | public: 31 | CC4Detonator(); 32 | 33 | virtual void OnAction(EntityId actorId, const ActionId& actionId, int activationMode, float value); 34 | 35 | virtual void GetMemoryStatistics(ICrySizer * s) { s->Add(*this); CWeapon::GetMemoryStatistics(s); } 36 | 37 | private: 38 | 39 | static TActionHandler s_actionHandler; 40 | 41 | bool OnActionSelectC4(EntityId actorId, const ActionId& actionId, int activationMode, float value); 42 | void SelectC4(); 43 | 44 | }; 45 | 46 | #endif // __C4DETONATOR_H__ 47 | -------------------------------------------------------------------------------- /Code/CryGame/Items/Weapons/Projectiles/Bullet.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | Crytek Source File. 3 | Copyright (C), Crytek Studios, 2001-2004. 4 | ------------------------------------------------------------------------- 5 | $Id$ 6 | $DateTime$ 7 | Description: Bullet 8 | 9 | ------------------------------------------------------------------------- 10 | History: 11 | - 12:10:2005 11:15 : Created by Márcio Martins 12 | 13 | *************************************************************************/ 14 | #ifndef __BULLET_H__ 15 | #define __BULLET_H__ 16 | 17 | #if _MSC_VER > 1000 18 | # pragma once 19 | #endif 20 | 21 | 22 | #include "../Projectile.h" 23 | 24 | class CBullet : public CProjectile 25 | { 26 | public: 27 | CBullet(); 28 | virtual ~CBullet(); 29 | 30 | // CProjectile 31 | virtual void HandleEvent(const SGameObjectEvent &); 32 | // ~CProjectile 33 | 34 | //For underwater trails (Called only from WeaponSystem.cpp) 35 | static void SetWaterMaterialId(); 36 | static int GetWaterMaterialId() { return m_waterMaterialId; } 37 | 38 | static IEntityClass* EntityClass; 39 | 40 | private: 41 | 42 | static int m_waterMaterialId; 43 | 44 | }; 45 | 46 | 47 | #endif // __BULLET_H__ 48 | -------------------------------------------------------------------------------- /Code/CryGame/Items/Weapons/Projectiles/Rock.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | Crytek Source File. 3 | Copyright (C), Crytek Studios, 2001-2004. 4 | ------------------------------------------------------------------------- 5 | $Id$ 6 | $DateTime$ 7 | Description: Rock 8 | 9 | ------------------------------------------------------------------------- 10 | History: 11 | - 5:5:2006 15:24 : Created by Márcio Martins 12 | 13 | *************************************************************************/ 14 | #ifndef __ROCK_H__ 15 | #define __ROCK_H__ 16 | 17 | #if _MSC_VER > 1000 18 | # pragma once 19 | #endif 20 | 21 | 22 | #include "../Projectile.h" 23 | #include "CryCommon/CryCore/VectorSet.h" 24 | 25 | #define MAX_SPAWNED_ROCKS 10 26 | 27 | class CRock : public CProjectile 28 | { 29 | public: 30 | CRock(); 31 | virtual ~CRock(); 32 | 33 | // CProjectile 34 | virtual void HandleEvent(const SGameObjectEvent &); 35 | // ~CProjectile 36 | 37 | private: 38 | static VectorSet s_rocks; 39 | }; 40 | 41 | 42 | #endif // __ROCK_H__ 43 | -------------------------------------------------------------------------------- /Code/CryGame/Items/Weapons/Projectiles/Rocket.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | Crytek Source File. 3 | Copyright (C), Crytek Studios, 2001-2004. 4 | ------------------------------------------------------------------------- 5 | $Id$ 6 | $DateTime$ 7 | Description: Rocket 8 | 9 | ------------------------------------------------------------------------- 10 | History: 11 | - 12:10:2005 11:15 : Created by Márcio Martins 12 | 13 | *************************************************************************/ 14 | #ifndef __ROCKET_H__ 15 | #define __ROCKET_H__ 16 | 17 | #if _MSC_VER > 1000 18 | # pragma once 19 | #endif 20 | 21 | 22 | #include "../Projectile.h" 23 | 24 | 25 | class CRocket : public CProjectile 26 | { 27 | public: 28 | CRocket(); 29 | virtual ~CRocket(); 30 | 31 | 32 | // CProjectile 33 | virtual void HandleEvent(const SGameObjectEvent &); 34 | virtual void Launch(const Vec3 &pos, const Vec3 &dir, const Vec3 &velocity, float speedScale); 35 | 36 | virtual bool Init(IGameObject *pGameObject); 37 | //virtual void Serialize(TSerialize ser, unsigned aspects); 38 | // ~CProjectile 39 | 40 | protected: 41 | Vec3 m_launchLoc; 42 | float m_safeExplosion; 43 | 44 | bool m_skipWater; 45 | }; 46 | 47 | 48 | #endif // __ROCKET_H__ 49 | -------------------------------------------------------------------------------- /Code/CryGame/Items/Weapons/Projectiles/TacBullet.h: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------- 2 | // Crytek Source File. 3 | // Copyright (C) Crytek GmbH, 2001-2008. 4 | // ------------------------------------------------------------------------- 5 | #pragma once 6 | #include "../Projectile.h" 7 | 8 | 9 | class CTacBullet : 10 | public CProjectile 11 | { 12 | public: 13 | CTacBullet(void); 14 | ~CTacBullet(void); 15 | virtual void HandleEvent(const SGameObjectEvent &); 16 | 17 | private: 18 | 19 | void SleepTargetInVehicle(EntityId shooterId, CActor* pActor); 20 | }; 21 | -------------------------------------------------------------------------------- /Code/CryGame/Items/Weapons/Projectiles/TagBullet.cpp: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------- 2 | // Crytek Source File. 3 | // Copyright (C) Crytek GmbH, 2001-2008. 4 | // ------------------------------------------------------------------------- 5 | #include "CryCommon/CrySystem/ISystem.h" 6 | #include "TagBullet.h" 7 | #include "CryGame/Game.h" 8 | #include "CryGame/GameRules.h" 9 | #include "CryGame/HUD/HUD.h" 10 | #include "CryCommon/CryEntitySystem/IEntitySystem.h" 11 | 12 | CTagBullet::CTagBullet(void) 13 | { 14 | } 15 | 16 | CTagBullet::~CTagBullet(void) 17 | { 18 | } 19 | 20 | void CTagBullet::HandleEvent(const SGameObjectEvent &event) 21 | { 22 | if (m_destroying) 23 | return; 24 | 25 | CProjectile::HandleEvent(event); 26 | 27 | if (event.event == eGFE_OnCollision) 28 | { 29 | EventPhysCollision *pCollision = reinterpret_cast(event.ptr); 30 | if (!pCollision) 31 | return; 32 | 33 | IEntity *pTarget = pCollision->iForeignData[1]==PHYS_FOREIGN_ID_ENTITY ? (IEntity*)pCollision->pForeignData[1]:0; 34 | if (pTarget) 35 | { 36 | EntityId targetId = pTarget->GetId(); 37 | 38 | SimpleHitInfo info(m_ownerId, targetId, m_weaponId, 0); // 0=tag,1=tac 39 | info.remote=IsRemote(); 40 | 41 | g_pGame->GetGameRules()->ClientSimpleHit(info); 42 | } 43 | 44 | Destroy(); 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /Code/CryGame/Items/Weapons/Projectiles/TagBullet.h: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------- 2 | // Crytek Source File. 3 | // Copyright (C) Crytek GmbH, 2001-2008. 4 | // ------------------------------------------------------------------------- 5 | #include "../Projectile.h" 6 | #pragma once 7 | 8 | class CTagBullet : 9 | public CProjectile 10 | { 11 | public: 12 | CTagBullet(void); 13 | ~CTagBullet(void); 14 | virtual void HandleEvent(const SGameObjectEvent &); 15 | }; 16 | -------------------------------------------------------------------------------- /Code/CryGame/Items/Weapons/ReferenceWeapon.cpp: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------- 2 | // Crytek Source File. 3 | // Copyright (C) Crytek GmbH, 2001-2008. 4 | // ------------------------------------------------------------------------- 5 | // Reference weapon for lighting tests 6 | // John Newfield 7 | 8 | #include "CryCommon/CrySystem/ISystem.h" 9 | #include "CryCommon/CryAnimation/ICryAnimation.h" 10 | #include "ReferenceWeapon.h" 11 | 12 | CReferenceWeapon::CReferenceWeapon(void) 13 | { 14 | } 15 | 16 | CReferenceWeapon::~CReferenceWeapon(void) 17 | { 18 | } 19 | 20 | void CReferenceWeapon::OnAction(EntityId actorId, const ActionId& actionId, int activationMode, float value) 21 | { 22 | if (actionId == "attack1") 23 | { 24 | if (activationMode == eAAM_OnPress) 25 | { 26 | PlayAction(g_pItemStrings->fire, 0, true); 27 | } 28 | else if(activationMode == eAAM_OnRelease) 29 | { 30 | ICharacterInstance* pCharacter = GetEntity()->GetCharacter(eIGS_FirstPerson); 31 | if (pCharacter) 32 | { 33 | pCharacter->GetISkeletonAnim()->StopAnimationInLayer(0, 0.0f); 34 | } 35 | PlayAction(g_pItemStrings->idle, 0, true); 36 | } 37 | } 38 | else if (actionId == "zoom") 39 | { 40 | // 41 | } 42 | else 43 | CWeapon::OnAction(actorId, actionId, activationMode, value); 44 | } 45 | -------------------------------------------------------------------------------- /Code/CryGame/Items/Weapons/ReferenceWeapon.h: -------------------------------------------------------------------------------- 1 | // ------------------------------------------------------------------------- 2 | // Crytek Source File. 3 | // Copyright (C) Crytek GmbH, 2001-2008. 4 | // ------------------------------------------------------------------------- 5 | // Reference weapon for lighting tests 6 | // John Newfield 7 | 8 | #include "Weapon.h" 9 | #pragma once 10 | 11 | class CReferenceWeapon : 12 | public CWeapon 13 | { 14 | public: 15 | CReferenceWeapon(void); 16 | ~CReferenceWeapon(void); 17 | virtual void OnAction(EntityId actorId, const ActionId& actionId, int activationMode, float value); 18 | virtual void GetMemoryStatistics(ICrySizer * s) { s->Add(*this); CWeapon::GetMemoryStatistics(s); } 19 | }; 20 | -------------------------------------------------------------------------------- /Code/CryGame/Items/Weapons/ThrowableWeapon.cpp: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | Crytek Source File. 3 | Copyright (C), Crytek Studios, 2001-2007. 4 | ------------------------------------------------------------------------- 5 | $Id:$ 6 | $DateTime$ 7 | Description: Class for weapons like mines, which can be thrown 8 | ------------------------------------------------------------------------- 9 | History: 10 | - 24:1:2007 12:39 : Created by Steve Humphreys 11 | 12 | *************************************************************************/ 13 | 14 | #include "CryCommon/CrySystem/ISystem.h" 15 | #include "ThrowableWeapon.h" 16 | 17 | //------------------------------------------------------------------------ 18 | bool CThrowableWeapon::CanSelect() const 19 | { 20 | return CWeapon::CanSelect() && !OutOfAmmo(false); 21 | } 22 | -------------------------------------------------------------------------------- /Code/CryGame/Items/Weapons/ThrowableWeapon.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | Crytek Source File. 3 | Copyright (C), Crytek Studios, 2001-2007. 4 | ------------------------------------------------------------------------- 5 | $Id:$ 6 | $DateTime$ 7 | Description: Class for weapons like mines, which can be thrown 8 | ------------------------------------------------------------------------- 9 | History: 10 | - 24:1:2007 12:39 : Created by Steve Humphreys 11 | 12 | *************************************************************************/ 13 | 14 | #ifndef __THROWABLEWEAPON_H__ 15 | #define __THROWABLEWEAPON_H__ 16 | 17 | #if _MSC_VER > 1000 18 | # pragma once 19 | #endif 20 | 21 | 22 | #include "Weapon.h" 23 | 24 | class CThrowableWeapon : public CWeapon 25 | { 26 | public: 27 | CThrowableWeapon() {}; 28 | virtual ~CThrowableWeapon() {}; 29 | 30 | virtual bool CanSelect() const; 31 | }; 32 | 33 | 34 | #endif // __THROWABLEWEAPON_H__ -------------------------------------------------------------------------------- /Code/CryGame/Menus/FlashMenuScreen.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | Crytek Source File. 3 | Copyright (C), Crytek Studios, 2001-2005. 4 | ------------------------------------------------------------------------- 5 | $Id$ 6 | $DateTime$ 7 | Description: Flash menu screen base class 8 | 9 | ------------------------------------------------------------------------- 10 | History: 11 | - 07:18:2006: Created by Julien Darre 12 | 13 | *************************************************************************/ 14 | #ifndef __FLASHMENUSCREEN_H__ 15 | #define __FLASHMENUSCREEN_H__ 16 | 17 | #include "CryGame/FlashAnimation.h" 18 | 19 | //----------------------------------------------------------------------------------------------------- 20 | 21 | class CFlashMenuScreen : public CFlashAnimation 22 | { 23 | public: 24 | void GetMemoryStatistics(ICrySizer * s); 25 | 26 | bool Load(const char *strFile); 27 | void UpdateRatio(); 28 | }; 29 | 30 | //----------------------------------------------------------------------------------------------------- 31 | 32 | #endif 33 | 34 | //----------------------------------------------------------------------------------------------------- 35 | -------------------------------------------------------------------------------- /Code/CryGame/Menus/QuickGame.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | Crytek Source File. 3 | Copyright (C), Crytek Studios, 2001-2007. 4 | ------------------------------------------------------------------------- 5 | $Id$ 6 | $DateTime$ 7 | Description: Quick game screen 8 | ------------------------------------------------------------------------- 9 | History: 10 | - 03/12/2006: Created by Stas Spivakov 11 | 12 | *************************************************************************/ 13 | 14 | #ifndef __QUICKGAME_H__ 15 | #define __QUICKGAME_H__ 16 | 17 | #pragma once 18 | 19 | #include 20 | 21 | struct IServerBrowser; 22 | class CMPHub; 23 | class CQuickGameDlg; 24 | 25 | class CQuickGame 26 | { 27 | struct SQGServerList; 28 | public: 29 | CQuickGame(); 30 | ~CQuickGame(); 31 | void StartSearch(CMPHub* hub); 32 | void Cancel(); 33 | void NextStage(); 34 | int GetStage()const; 35 | bool IsSearching()const; 36 | private: 37 | IServerBrowser* m_browser; 38 | int m_stage; 39 | bool m_searching; 40 | std::unique_ptr m_list; 41 | std::unique_ptr m_ui; 42 | }; 43 | 44 | #endif //__QUICKGAME_H__ 45 | -------------------------------------------------------------------------------- /Code/CryGame/NetInputChainDebug.h: -------------------------------------------------------------------------------- 1 | /************************************************************************* 2 | Crytek Source File. 3 | Copyright (C), Crytek Studios, 2001-2004. 4 | ------------------------------------------------------------------------- 5 | 6 | Description: Utilities for debugging input synchronization problems 7 | 8 | ------------------------------------------------------------------------- 9 | History: 10 | - 30:03:2007 : Created by Craig Tiller 11 | 12 | *************************************************************************/ 13 | 14 | #ifndef __NETINPUTCHAINDEBUG_H__ 15 | #define __NETINPUTCHAINDEBUG_H__ 16 | 17 | #if !defined(LINUX) && !defined(PS3) 18 | #define ENABLE_NETINPUTCHAINDEBUG 1 19 | #endif 20 | 21 | #include "CryCommon/CryEntitySystem/EntityId.h" 22 | 23 | void NetInputChainInitCVars(); 24 | 25 | #if ENABLE_NETINPUTCHAINDEBUG 26 | void NetInputChainPrint( const char * name, float val ); 27 | void NetInputChainPrint( const char * name, Vec3 val ); 28 | 29 | extern EntityId _netinputchain_debugentity; 30 | 31 | #define NETINPUT_TRACE(ent, val) if (ent != _netinputchain_debugentity); else NetInputChainPrint(#val, val) 32 | #else 33 | #define NETINPUT_TRACE(ent, val) ((void*)0) 34 | #endif 35 | 36 | #endif 37 | -------------------------------------------------------------------------------- /Code/CryMP/Client/DrawTools.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | class DrawTools 6 | { 7 | public: 8 | struct Image 9 | { 10 | int id = 0; 11 | float posX = 0.0f; 12 | float posY = 0.0f; 13 | int textureId = 0; 14 | float width = 0.0f; 15 | float height = 0.0f; 16 | float color[4] = { 1.0f,1.0f,1.0f,1.0f }; 17 | bool colorBox = false; 18 | }; 19 | 20 | struct Text 21 | { 22 | int id = 0; 23 | float posX = 0.0f; 24 | float posY = 0.0f; 25 | float color[4] = { 1.0f,1.0f,1.0f,1.0f }; 26 | float xscale = 1.0f; 27 | float yscale = 1.0f; 28 | std::string text = ""; 29 | }; 30 | 31 | DrawTools(); 32 | ~DrawTools(); 33 | 34 | void OnUpdate(); 35 | 36 | int Add(Text text); 37 | int Add(Image image, const char* texturePath); 38 | int Add(Image image, int textureId); 39 | 40 | void OnDisconnect(int reason, const char* message); 41 | void RemoveTextOrImageById(int id); 42 | void ClearScreen(); 43 | 44 | private: 45 | 46 | std::vector m_TextData; 47 | std::vector m_ImageData; 48 | int m_idGenerator = 0; 49 | }; 50 | -------------------------------------------------------------------------------- /Code/CryMP/Client/EngineCache.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | struct ILevelInfo; 4 | 5 | class EngineCache 6 | { 7 | bool m_recursing = false; 8 | bool m_isCaching = false; 9 | int cl_engineCacheLevel = 0; 10 | 11 | enum ECacheLevel 12 | { 13 | DISABLED, 14 | MINIMUM, 15 | RECOMMENDED, 16 | HIGH, 17 | LUDICROUS 18 | }; 19 | 20 | ECacheLevel m_cacheStatus = ECacheLevel::DISABLED; 21 | 22 | public: 23 | EngineCache(); 24 | ~EngineCache(); 25 | 26 | int ScanFolder(const char* folderName); 27 | bool Cache(string folder, string file); 28 | void OnLoadingStart(ILevelInfo* pLevel); 29 | void OnLoadingProgress(ILevelInfo* pLevel, int progressAmount); 30 | void Start(); 31 | ECacheLevel GetStatus() 32 | { 33 | return m_cacheStatus; 34 | } 35 | 36 | }; 37 | -------------------------------------------------------------------------------- /Code/CryMP/Client/FFontHooks.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | void PatchCryFont(); 4 | -------------------------------------------------------------------------------- /Code/CryMP/Client/MapExtractor.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | #include 7 | 8 | class MapExtractor 9 | { 10 | mz_zip_archive m_zip; 11 | std::filesystem::path m_dirPath; 12 | std::filesystem::path m_mapPath; 13 | 14 | const char* GetErrorString(); 15 | std::filesystem::path GetFilePath(unsigned int index); 16 | void ExtractFile(unsigned int index); 17 | 18 | public: 19 | MapExtractor(const std::filesystem::path & zipPath, const std::filesystem::path & mapName); 20 | ~MapExtractor(); 21 | 22 | void Extract(); 23 | }; 24 | -------------------------------------------------------------------------------- /Code/CryMP/Client/ParticleManager.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class ParticleManager 4 | { 5 | 6 | 7 | public: 8 | 9 | void OnTick(); 10 | 11 | static void CmdListEmitters(IConsoleCmdArgs* pArgs); 12 | static void CmdListAttachments(IConsoleCmdArgs* pArgs); 13 | ParticleManager(); 14 | ~ParticleManager(); 15 | 16 | 17 | }; 18 | -------------------------------------------------------------------------------- /Code/CryMP/Client/ScriptCommands.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | #include "CryCommon/CryScriptSystem/IScriptSystem.h" 7 | 8 | struct IConsole; 9 | 10 | class ScriptCommands 11 | { 12 | IConsole *m_pConsole = nullptr; 13 | IScriptSystem *m_pScriptSystem = nullptr; 14 | std::map m_commands; 15 | 16 | void OnCommand(IConsoleCmdArgs *pArgs); 17 | 18 | static void OnCommandWrapper(IConsoleCmdArgs *pArgs); 19 | 20 | public: 21 | ScriptCommands(); 22 | ~ScriptCommands(); 23 | 24 | bool AddCommand(const char *name, HSCRIPTFUNCTION handler); 25 | }; 26 | -------------------------------------------------------------------------------- /Code/CryMP/Client/ServerConnector.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #include "ServerInfo.h" 6 | 7 | struct HTTPClientResult; 8 | 9 | class ServerConnector 10 | { 11 | ServerInfo m_server; 12 | unsigned int m_contractID = 0; 13 | 14 | bool ParseServerInfo(HTTPClientResult & result); 15 | void SetLoadingDialogText(const char *text); 16 | void SetLoadingDialogText(const char *label, const char *param); // for localized stuff 17 | void ShowErrorBox(const char *text); 18 | void ResetCVars(); 19 | 20 | void Step1_RequestServerInfo(); 21 | void Step2_DownloadMap(); 22 | void Step3_DownloadPAK(); 23 | void Step4_TryConnect(); 24 | 25 | public: 26 | ServerConnector(); 27 | ~ServerConnector(); 28 | 29 | void Connect(const ServerInfo& server); 30 | void Reconnect(); 31 | void Disconnect(); 32 | 33 | const ServerInfo& GetLastServer() const 34 | { 35 | return m_server; 36 | } 37 | }; 38 | -------------------------------------------------------------------------------- /Code/CryMP/Client/ServerInfo.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | struct ServerInfo 6 | { 7 | std::string master; 8 | std::string local_host; 9 | std::string public_host; 10 | unsigned short local_port = 0; 11 | unsigned short public_port = 0; 12 | bool is_local = false; 13 | 14 | std::string name; 15 | std::string map; 16 | std::string map_version; 17 | std::string map_url; 18 | std::string pak_url; 19 | 20 | const std::string& GetPreferredHost() const 21 | { 22 | return this->is_local ? this->local_host : this->public_host; 23 | } 24 | 25 | unsigned short GetPreferredPort() const 26 | { 27 | return this->is_local ? this->local_port : this->public_port; 28 | } 29 | 30 | std::string CreateEndpointString() const; 31 | 32 | void SplitLocalPort(); 33 | void SplitPublicPort(); 34 | void SplitMapVersion(); 35 | 36 | void FixMapUrl(); 37 | void FixPakUrl(); 38 | }; 39 | -------------------------------------------------------------------------------- /Code/CryMP/Client/ServerPAK.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | struct ILevelInfo; 6 | 7 | class ServerPAK 8 | { 9 | std::string m_path; 10 | bool m_bResetRequired = false; 11 | 12 | public: 13 | ServerPAK(); 14 | ~ServerPAK(); 15 | 16 | bool IsZipFile(const std::string & path); 17 | bool Load(const std::string & path); 18 | bool Unload(); 19 | void OnLoadingStart(ILevelInfo* pLevel); 20 | void OnConnect(); 21 | void OnDisconnect(int reason, const char* message); 22 | void ResetSubSystems(); 23 | }; 24 | -------------------------------------------------------------------------------- /Code/CryMP/Client/SpeedAggregator.cpp: -------------------------------------------------------------------------------- 1 | #include "SpeedAggregator.h" 2 | #include 3 | 4 | void SpeedAggregator::push(unsigned long long chunkSize) { 5 | auto now = std::chrono::system_clock::now(); 6 | auto duration = now.time_since_epoch(); 7 | auto millis = std::chrono::duration_cast(duration).count(); 8 | if (m_time.size() > 0) { 9 | auto first = m_time.front(); 10 | auto diff = millis - first; 11 | if (diff > m_window) { 12 | auto firstChunk = m_chunks.front(); 13 | m_sum -= firstChunk; 14 | m_chunks.pop(); 15 | m_time.pop(); 16 | } 17 | } 18 | m_sum += chunkSize; 19 | m_time.push(millis); 20 | m_chunks.push(chunkSize); 21 | } 22 | 23 | void SpeedAggregator::reset() { 24 | while (m_chunks.size()) m_chunks.pop(); 25 | while (m_time.size()) m_time.pop(); 26 | m_sum = 0; 27 | } 28 | 29 | double SpeedAggregator::getSpeed() const { 30 | return 1000.0 * (double)m_sum / (double)m_window; 31 | } -------------------------------------------------------------------------------- /Code/CryMP/Client/SpeedAggregator.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | class SpeedAggregator { 4 | unsigned long long m_window = 1000; 5 | unsigned long long m_sum = 0; 6 | unsigned long long m_lastSum = 0; 7 | std::queue m_time; 8 | std::queue m_chunks; 9 | public: 10 | SpeedAggregator(unsigned long long windowMs = 1000) : m_window(windowMs) 11 | { 12 | 13 | } 14 | 15 | void push(unsigned long long chunkSize); 16 | void reset(); 17 | double getSpeed() const; 18 | }; -------------------------------------------------------------------------------- /Code/CryMP/Common/GSMasterHook.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | struct ICVar; 4 | 5 | class GSMasterHook 6 | { 7 | public: 8 | GSMasterHook(); 9 | ~GSMasterHook(); 10 | 11 | ICVar *GetHostnameCVar(); 12 | }; 13 | -------------------------------------------------------------------------------- /Code/CryMP/Common/HTTP.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | namespace HTTP 7 | { 8 | enum EStatusCode 9 | { 10 | STATUS_OK = 200, 11 | STATUS_CREATED = 201, 12 | STATUS_ACCEPTED = 202, 13 | STATUS_NO_CONTENT = 204, 14 | 15 | STATUS_MOVED_PERMANENTLY = 301, 16 | STATUS_FOUND = 302, 17 | STATUS_SEE_OTHER = 303, 18 | STATUS_NOT_MODIFIED = 304, 19 | STATUS_TEMPORARY_REDIRECT = 307, 20 | 21 | STATUS_BAD_REQUEST = 400, 22 | STATUS_UNAUTHORIZED = 401, 23 | STATUS_FORBIDDEN = 403, 24 | STATUS_NOT_FOUND = 404, 25 | 26 | STATUS_INTERNAL_SERVER_ERROR = 500, 27 | STATUS_NOT_IMPLEMENTED = 501, 28 | STATUS_BAD_GATEWAY = 502, 29 | STATUS_SERVICE_UNAVAILABLE = 503, 30 | STATUS_GATEWAY_TIMEOUT = 504, 31 | }; 32 | 33 | const char *StatusCodeToString(int code); 34 | 35 | std::string URLEncode(const std::string_view & text); 36 | } 37 | -------------------------------------------------------------------------------- /Code/CryMP/Common/HTTPClient.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | #include 7 | 8 | #include "HTTP.h" 9 | 10 | class Executor; 11 | 12 | struct HTTPClientResult 13 | { 14 | std::string error; // client error 15 | std::string response; // server response 16 | int code = 0; // HTTP status code 17 | }; 18 | 19 | struct HTTPClientRequest 20 | { 21 | std::string method = "GET"; 22 | std::string url; 23 | std::string data; 24 | std::map headers; 25 | std::function callback; 26 | }; 27 | 28 | class HTTPClient 29 | { 30 | Executor* m_executor = nullptr; 31 | 32 | public: 33 | explicit HTTPClient(Executor& executor); 34 | ~HTTPClient(); 35 | 36 | void Request(HTTPClientRequest&& request); 37 | }; 38 | -------------------------------------------------------------------------------- /Code/CryMP/Server/Server.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #include "CryCommon/CryAction/IGameFramework.h" 6 | 7 | class Executor; 8 | class HTTPClient; 9 | 10 | class Server : public IGameFrameworkListener 11 | { 12 | public: 13 | IGame *pGame = nullptr; 14 | IGameFramework* pGameFramework = nullptr; 15 | 16 | std::unique_ptr pExecutor; 17 | std::unique_ptr pHttpClient; 18 | 19 | Server(); 20 | ~Server(); 21 | 22 | void Init(IGameFramework* pGameFramework); 23 | 24 | void UpdateLoop(); 25 | 26 | private: 27 | // IGameFrameworkListener 28 | void OnPostUpdate(float deltaTime) override; 29 | void OnSaveGame(ISaveGame* saveGame) override; 30 | void OnLoadGame(ILoadGame* loadGame) override; 31 | void OnLevelEnd(const char* nextLevel) override; 32 | void OnActionEvent(const SActionEvent& event) override; 33 | }; 34 | 35 | /////////////////////// 36 | inline Server* gServer; 37 | /////////////////////// 38 | -------------------------------------------------------------------------------- /Code/CryScriptSystem/FunctionHandler.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "CryCommon/CryScriptSystem/IScriptSystem.h" 4 | 5 | struct lua_State; 6 | 7 | class ScriptSystem; 8 | 9 | class FunctionHandler : public IFunctionHandler 10 | { 11 | lua_State *m_L = nullptr; 12 | ScriptSystem *m_pSS = nullptr; 13 | const char *m_funcName = nullptr; 14 | int m_paramIdOffset = 0; 15 | 16 | public: 17 | FunctionHandler(lua_State *L, ScriptSystem *pSS, const char *funcName, int paramIdOffset) 18 | : m_L(L), 19 | m_pSS(pSS), 20 | m_funcName(funcName), 21 | m_paramIdOffset(paramIdOffset) 22 | { 23 | } 24 | 25 | ////////////////////// 26 | // IFunctionHandler // 27 | ////////////////////// 28 | 29 | IScriptSystem *GetIScriptSystem() override; 30 | 31 | void *GetThis() override; 32 | bool GetSelfAny(ScriptAnyValue & any) override; 33 | 34 | const char *GetFuncName() override; 35 | 36 | int GetParamCount() override; 37 | ScriptVarType GetParamType(int index) override; 38 | bool GetParamAny(int index, ScriptAnyValue & any) override; 39 | 40 | int EndFunctionAny(const ScriptAnyValue & any) override; 41 | int EndFunctionAny(const ScriptAnyValue & any1, const ScriptAnyValue & any2) override; 42 | int EndFunctionAny(const ScriptAnyValue & any1, const ScriptAnyValue & any2, const ScriptAnyValue & any3) override; 43 | int EndFunction() override; 44 | }; 45 | -------------------------------------------------------------------------------- /Code/CryScriptSystem/ScriptBindings/ScriptBind_Movie.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "CryCommon/CryScriptSystem/IScriptSystem.h" 4 | 5 | class ScriptBind_Movie : public CScriptableBase 6 | { 7 | public: 8 | ScriptBind_Movie(IScriptSystem *pSS); 9 | 10 | int PlaySequence(IFunctionHandler *pH, const char *sSequenceName); 11 | int StopSequence(IFunctionHandler *pH, const char *sSequenceName); 12 | int StopAllSequences(IFunctionHandler *pH); 13 | int StopAllCutScenes(IFunctionHandler *pH); 14 | int PauseSequences(IFunctionHandler *pH); 15 | int ResumeSequences(IFunctionHandler *pH); 16 | }; 17 | -------------------------------------------------------------------------------- /Code/CryScriptSystem/ScriptBindings/ScriptBind_Particle.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "CryCommon/CryScriptSystem/IScriptSystem.h" 4 | 5 | class ScriptBind_Particle : public CScriptableBase 6 | { 7 | public: 8 | ScriptBind_Particle(IScriptSystem *pSS); 9 | 10 | int SpawnEffect(IFunctionHandler *pH, const char *effectName, Vec3 pos, Vec3 dir); 11 | int CreateDecal(IFunctionHandler *pH, Vec3 pos, Vec3 normal, float size, float lifeTime, const char *textureName); 12 | int CreateMatDecal(IFunctionHandler *pH, Vec3 pos, Vec3 normal, float size, float lifeTime, const char *materialName); 13 | }; 14 | -------------------------------------------------------------------------------- /Code/CryScriptSystem/ScriptBindings/ScriptBind_Physics.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "CryCommon/CryScriptSystem/IScriptSystem.h" 4 | 5 | class ScriptBind_Physics : public CScriptableBase 6 | { 7 | public: 8 | ScriptBind_Physics(IScriptSystem *pSS); 9 | 10 | int SimulateExplosion(IFunctionHandler *pH, SmartScriptTable explosionParams); 11 | int RegisterExplosionShape(IFunctionHandler *pH, const char *sGeometryFile, float fSize, int nIdMaterial, float fProbability, const char *sSplintersFile, float fSplintersOffset, const char *sSplintersCloudEffect); 12 | int RegisterExplosionCrack(IFunctionHandler *pH, const char *sGeometryFile, int nIdMaterial); 13 | int RayWorldIntersection(IFunctionHandler *pH); 14 | int RayTraceCheck(IFunctionHandler *pH, Vec3 src, Vec3 dst, ScriptHandle skipEntityId1, ScriptHandle skipEntityId2); 15 | int SamplePhysEnvironment(IFunctionHandler *pH); 16 | }; 17 | -------------------------------------------------------------------------------- /Code/CryScriptSystem/ScriptBindings/ScriptBind_Script.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "CryCommon/CryScriptSystem/IScriptSystem.h" 4 | 5 | class ScriptTimerManager; 6 | 7 | class ScriptBind_Script : public CScriptableBase 8 | { 9 | ScriptTimerManager & GetTimerManager(); 10 | 11 | public: 12 | ScriptBind_Script(IScriptSystem *pSS); 13 | 14 | int LoadScript(IFunctionHandler *pH); 15 | int ReloadScript(IFunctionHandler *pH); 16 | int ReloadScripts(IFunctionHandler *pH); 17 | int ReloadEntityScript(IFunctionHandler *pH, const char *className); 18 | int UnloadScript(IFunctionHandler *pH); 19 | int DumpLoadedScripts(IFunctionHandler *pH); 20 | int SetTimer(IFunctionHandler *pH, int nMilliseconds, HSCRIPTFUNCTION hFunc); 21 | int SetTimerForFunction(IFunctionHandler *pH, int nMilliseconds, const char *sFunctionName); 22 | int KillTimer(IFunctionHandler *pH, ScriptHandle nTimerId); 23 | }; 24 | -------------------------------------------------------------------------------- /Code/CryScriptSystem/ScriptBindings/ScriptBindings.cpp: -------------------------------------------------------------------------------- 1 | #include "ScriptBindings.h" 2 | #include "ScriptBind_System.h" 3 | #include "ScriptBind_Particle.h" 4 | #include "ScriptBind_Sound.h" 5 | #include "ScriptBind_Movie.h" 6 | #include "ScriptBind_Script.h" 7 | #include "ScriptBind_Physics.h" 8 | 9 | void ScriptBindings::Init(IScriptSystem *pSS) 10 | { 11 | m_pBindSystem = std::make_unique(pSS); 12 | m_pBindParticle = std::make_unique(pSS); 13 | m_pBindSound = std::make_unique(pSS); 14 | m_pBindMovie = std::make_unique(pSS); 15 | m_pBindScript = std::make_unique(pSS); 16 | m_pBindPhysics = std::make_unique(pSS); 17 | } 18 | -------------------------------------------------------------------------------- /Code/CryScriptSystem/ScriptBindings/ScriptBindings.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | struct IScriptSystem; 6 | 7 | class CScriptableBase; 8 | 9 | class ScriptBindings 10 | { 11 | std::unique_ptr m_pBindSystem; 12 | std::unique_ptr m_pBindParticle; 13 | std::unique_ptr m_pBindSound; 14 | std::unique_ptr m_pBindMovie; 15 | std::unique_ptr m_pBindScript; 16 | std::unique_ptr m_pBindPhysics; 17 | 18 | public: 19 | void Init(IScriptSystem *pSS); 20 | }; 21 | -------------------------------------------------------------------------------- /Code/CryScriptSystem/ScriptUtil.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | #include "CryCommon/CryScriptSystem/IScriptSystem.h" 7 | 8 | struct lua_State; 9 | 10 | namespace ScriptUtil 11 | { 12 | std::vector GetCallStack(lua_State *L, int level = 0); 13 | 14 | ScriptVarType LuaTypeToScriptVarType(int type); 15 | 16 | const char *ScriptAnyTypeToString(ScriptAnyType type); 17 | const char *ScriptVarTypeToString(ScriptVarType type); 18 | } 19 | -------------------------------------------------------------------------------- /Code/CrySystem/CPUInfo.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | /** 4 | * Reverse engineered CryEngine 2 structure with CPU information. 5 | * 6 | * Do not change the content. 7 | * Total size is 8720 bytes in both 32-bit and 64-bit code. 8 | * 9 | * The purpose of this is to replace the problematic CPU detection mechanism in the original CrySystem. 10 | */ 11 | struct CPUInfo 12 | { 13 | enum 14 | { 15 | FLAG_MMX = (1 << 1), 16 | FLAG_3DNOW = (1 << 2), 17 | FLAG_SSE = (1 << 3), 18 | FLAG_SSE2 = (1 << 4), 19 | }; 20 | 21 | enum 22 | { 23 | MAX_CORE_COUNT = 32, 24 | }; 25 | 26 | unsigned int coreCountTotal; 27 | unsigned int coreCountAvailable; 28 | unsigned int coreCountPhysical; 29 | unsigned int reserved; 30 | 31 | struct Core 32 | { 33 | unsigned int reserved1[2]; 34 | unsigned int flags; 35 | unsigned int reserved2[65]; 36 | }; 37 | 38 | Core cores[MAX_CORE_COUNT]; 39 | 40 | static void Detect(CPUInfo* self); 41 | }; 42 | 43 | static_assert(sizeof(CPUInfo) == 8720); 44 | -------------------------------------------------------------------------------- /Code/CrySystem/CryLog.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | void CryLog(const char* format, ...); 4 | void CryLogWarning(const char* format, ...); 5 | void CryLogError(const char* format, ...); 6 | void CryLogAlways(const char* format, ...); 7 | void CryLogWarningAlways(const char* format, ...); 8 | void CryLogErrorAlways(const char* format, ...); 9 | void CryLogComment(const char* format, ...); 10 | -------------------------------------------------------------------------------- /Code/CrySystem/CryMemoryManager.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | namespace CryMemoryManager 6 | { 7 | void Init(void* pCrySystem); 8 | 9 | void ProvideHeapInfo(std::FILE* file, void* address); 10 | } 11 | -------------------------------------------------------------------------------- /Code/CrySystem/GameWindow.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class GameWindow 4 | { 5 | int m_classID = 0; 6 | 7 | static GameWindow s_globalInstance; 8 | 9 | public: 10 | GameWindow(); 11 | ~GameWindow(); 12 | 13 | // to be removed once we have our own CrySystem 14 | static GameWindow& GetInstance() 15 | { 16 | return s_globalInstance; 17 | } 18 | 19 | void Init(); 20 | bool OnUpdate(); 21 | void OnQuit(); 22 | void UpdateCursorColor(); 23 | }; 24 | -------------------------------------------------------------------------------- /Code/CrySystem/Pak/IFileInPak.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | #include 7 | 8 | struct IFileInPak 9 | { 10 | virtual ~IFileInPak() = default; 11 | 12 | virtual std::size_t FRead(void* buffer, std::size_t elementSize, std::size_t elementCount) = 0; 13 | virtual std::size_t FWrite(const void* buffer, std::size_t elementSize, std::size_t elementCount) = 0; 14 | 15 | virtual int VFPrintF(const char* format, va_list args) = 0; 16 | 17 | virtual char* FGetS(char* buffer, int bufferSize) = 0; 18 | virtual int FGetC() = 0; 19 | virtual int FUnGetC(int ch) = 0; 20 | 21 | virtual int FSeek(std::int64_t offset, int mode) = 0; 22 | virtual std::int64_t FTell() const = 0; 23 | 24 | virtual std::uint64_t GetSize() const = 0; 25 | 26 | virtual int FFlush() = 0; 27 | 28 | virtual int FEof() const = 0; 29 | virtual int FError() const = 0; 30 | 31 | virtual void* GetCachedFileData(std::size_t& fileSize) = 0; 32 | 33 | virtual std::uint64_t GetModificationTime() = 0; 34 | 35 | virtual std::FILE* GetHandle() = 0; 36 | }; 37 | -------------------------------------------------------------------------------- /Code/CrySystem/Pak/IPak.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | #include 7 | 8 | struct IFileInPak; 9 | 10 | struct IPak 11 | { 12 | virtual ~IPak() = default; 13 | 14 | virtual std::uint32_t GetEntryCount() = 0; 15 | virtual bool IsDirectoryEntry(std::uint32_t index) = 0; 16 | virtual bool GetEntryPathAndSize(std::uint32_t index, std::string& path, std::uint64_t& size) = 0; 17 | 18 | virtual std::unique_ptr OpenFile(std::uint32_t index, bool isBinary) = 0; 19 | virtual void OnFileClosed(std::uint32_t index) = 0; 20 | 21 | virtual std::size_t GetCachedDataSize() const = 0; 22 | }; 23 | -------------------------------------------------------------------------------- /Code/CrySystem/Pak/ZipCache.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | #include 7 | 8 | class ZipCache 9 | { 10 | public: 11 | struct DecompressedEntry 12 | { 13 | std::uint32_t index = 0; 14 | std::int32_t refCount = 0; 15 | std::size_t size = 0; 16 | std::unique_ptr ptr; 17 | std::uint64_t modificationTime = 0; 18 | }; 19 | 20 | private: 21 | std::vector m_entries; 22 | std::vector m_inactiveIndexes; 23 | 24 | static constexpr std::size_t MAX_INACTIVE_COUNT = 8; 25 | 26 | public: 27 | DecompressedEntry* AddAndAcquire(DecompressedEntry&& entry); 28 | DecompressedEntry* Acquire(std::uint32_t index); 29 | void Release(std::uint32_t index); 30 | 31 | std::size_t GetTotalEntrySize() const; 32 | 33 | private: 34 | std::vector::iterator FindEntry(std::uint32_t index); 35 | void DropEntry(std::uint32_t index); 36 | }; 37 | -------------------------------------------------------------------------------- /Code/CrySystem/RandomGenerator.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | namespace RandomGenerator 7 | { 8 | void Init(); 9 | 10 | float GenerateFloat(float min, float max); 11 | std::uint32_t GenerateUInt32(std::uint32_t min, std::uint32_t max); 12 | std::size_t GenerateIndex(std::size_t count); 13 | } 14 | -------------------------------------------------------------------------------- /Code/CrySystem/ResourceList.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | #include "CryCommon/CrySystem/ICryPak.h" 7 | #include "Library/StringTools.h" 8 | 9 | class ResourceList : public IResourceList 10 | { 11 | std::set m_paths; 12 | std::set::iterator m_it = m_paths.end(); 13 | 14 | ResourceList() = default; 15 | 16 | public: 17 | //////////////////////////////////////////////////////////////////////////////// 18 | // IResourceList 19 | //////////////////////////////////////////////////////////////////////////////// 20 | 21 | void Add(const char* resourceFile) override; 22 | void Clear() override; 23 | bool IsExist(const char* resourceFile) override; 24 | 25 | void Load(const char* resourceListFilename) override; 26 | 27 | const char* GetFirst() override; 28 | const char* GetNext() override; 29 | 30 | //////////////////////////////////////////////////////////////////////////////// 31 | 32 | static _smart_ptr Create(); 33 | }; 34 | -------------------------------------------------------------------------------- /Code/Launcher/Launcher.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "CryCommon/CrySystem/ISystem.h" 4 | 5 | class Launcher 6 | { 7 | struct DLLs 8 | { 9 | // do not try to unload these DLLs as it might crash 10 | void* pCry3DEngine = nullptr; 11 | void* pCryAction = nullptr; 12 | void* pCryAISystem = nullptr; 13 | void* pCryNetwork = nullptr; 14 | void* pCrySystem = nullptr; 15 | void* pCryRenderD3D9 = nullptr; 16 | void* pCryRenderD3D10 = nullptr; 17 | void* pCryRenderNULL = nullptr; 18 | void* pFmodEx = nullptr; 19 | }; 20 | 21 | DLLs m_dlls; 22 | SSystemInitParams m_params = {}; 23 | 24 | void SetCmdLine(); 25 | void InitWorkingDirectory(); 26 | void LoadEngine(); 27 | void PatchEngine(); 28 | void StartEngine(); 29 | 30 | public: 31 | Launcher(); 32 | ~Launcher(); 33 | 34 | void OnEarlyEngineInit(ISystem* pSystem); 35 | 36 | const DLLs& GetDLLs() 37 | { 38 | return m_dlls; 39 | } 40 | 41 | const SSystemInitParams& GetParams() const 42 | { 43 | return m_params; 44 | } 45 | 46 | void Run(); 47 | }; 48 | 49 | /////////////////////////// 50 | inline Launcher* gLauncher; 51 | /////////////////////////// 52 | -------------------------------------------------------------------------------- /Code/Launcher/Resources.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #define RESOURCE_ICON 101 4 | 5 | #define RESOURCE_CURSOR_AMBER 103 6 | #define RESOURCE_CURSOR_BLUE 104 7 | #define RESOURCE_CURSOR_GREEN 105 8 | #define RESOURCE_CURSOR_RED 106 9 | #define RESOURCE_CURSOR_WHITE 107 10 | 11 | #define RESOURCE_MASTERS_TXT 110 12 | 13 | #define RESOURCE_INTERNAL_PAK 111 14 | -------------------------------------------------------------------------------- /Code/Launcher/StartupTime.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include "StartupTime.h" 4 | 5 | std::chrono::time_point g_start = std::chrono::steady_clock::now(); 6 | std::chrono::time_point g_finish; 7 | 8 | void StartupTime::Finish() 9 | { 10 | g_finish = std::chrono::steady_clock::now(); 11 | } 12 | 13 | double StartupTime::GetSeconds() 14 | { 15 | return std::chrono::duration(g_finish - g_start).count(); 16 | } 17 | -------------------------------------------------------------------------------- /Code/Launcher/StartupTime.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace StartupTime 4 | { 5 | void Finish(); 6 | 7 | double GetSeconds(); 8 | } 9 | -------------------------------------------------------------------------------- /Code/Library/CPUID.cpp: -------------------------------------------------------------------------------- 1 | #include "CPUID.h" 2 | 3 | const CPUID g_cpuid; 4 | -------------------------------------------------------------------------------- /Code/Library/CrashLogger.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | namespace CrashLogger 6 | { 7 | using LogFileProvider = std::FILE* (*)(); 8 | using HeapInfoProvider = void (*)(std::FILE* file, void* address); 9 | 10 | void OnEngineError(const char* format, va_list args); 11 | 12 | void Enable(LogFileProvider logFileProvider, HeapInfoProvider heapInfoProvider); 13 | } 14 | -------------------------------------------------------------------------------- /Code/Library/PathTools.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | namespace PathTools 8 | { 9 | inline bool IsSlash(char ch) 10 | { 11 | return ch == '/' || ch == '\\'; 12 | } 13 | 14 | bool IsAbsolutePath(std::string_view path); 15 | bool StartsWith(std::string_view path, std::string_view prefix); 16 | 17 | std::string_view RemoveLeadingSlashes(std::string_view path); 18 | std::string_view RemoveTrailingSlashes(std::string_view path); 19 | 20 | std::string_view DirPath(std::string_view path); 21 | std::string_view FileName(std::string_view path); 22 | 23 | std::string_view PathStem(std::string_view path); 24 | std::string_view PathExtension(std::string_view path); 25 | 26 | std::tuple SplitFirstPathComponent(std::string_view path); 27 | std::tuple SplitPathIntoDirAndFile(std::string_view path); 28 | std::tuple SplitNameIntoStemAndExtension(std::string_view name); 29 | std::tuple SplitPathIntoStemAndExtension(std::string_view path); 30 | 31 | std::string Join(std::string_view pathA, std::string_view pathB); 32 | 33 | void AddTrailingSlash(std::string& path); 34 | void Normalize(std::string& path); 35 | } 36 | -------------------------------------------------------------------------------- /Code/Library/StlportMap.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | template 4 | class StlportMap 5 | { 6 | // TODO 7 | void* m_reserved[6] = {}; 8 | }; 9 | -------------------------------------------------------------------------------- /Code/Library/StlportSet.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | template 4 | class StlportSet 5 | { 6 | // TODO 7 | void* m_reserved[6] = {}; 8 | }; 9 | -------------------------------------------------------------------------------- /Pak/CryMP/Scripts/Entities/Updater.lua: -------------------------------------------------------------------------------- 1 | Updater = { 2 | 3 | Properties = { 4 | RateInMs = -1, 5 | Callback = nil, --function()end, --your lua function 6 | }, 7 | 8 | Client = { 9 | --------------------------- 10 | -- OnUpdate 11 | --------------------------- 12 | OnUpdate = function(self, ft) 13 | if (self.Properties.Callback) then 14 | self.Properties.Callback(ft); 15 | end 16 | end, 17 | }, 18 | --------------------------- 19 | -- OnInit 20 | --------------------------- 21 | OnInit = function(self) 22 | end, 23 | --------------------------- 24 | -- OnSpawn 25 | --------------------------- 26 | OnSpawn = function(self) 27 | if (tonumber(self.Properties.RateInMs) > 0) then 28 | self:SetScriptUpdateRate(tonumber(self.Properties.RateInMs)); 29 | end 30 | 31 | self:Activate(1); 32 | end, 33 | --------------------------- 34 | -- OnReset 35 | --------------------------- 36 | OnReset = function(self) 37 | end, 38 | --------------------------- 39 | -- SetCallback 40 | --------------------------- 41 | SetCallback = function(self, callback) 42 | if (type(callback) ~= "function") then 43 | System.LogAlways("[Updater] Callback must be a function!"); 44 | return; 45 | end 46 | self.Properties.Callback = callback; 47 | end, 48 | }; 49 | -------------------------------------------------------------------------------- /Pak/CryMP/Scripts/GameRules/PowerStruggle.lua: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crymp-net/client-server/5754f9e5ba59a005b33ee4e7f7e2f52dc82f91ac/Pak/CryMP/Scripts/GameRules/PowerStruggle.lua -------------------------------------------------------------------------------- /Pak/CryMP/Scripts/GameRules/PowerStruggleAlert.lua: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crymp-net/client-server/5754f9e5ba59a005b33ee4e7f7e2f52dc82f91ac/Pak/CryMP/Scripts/GameRules/PowerStruggleAlert.lua -------------------------------------------------------------------------------- /Pak/Entities/Updater.ent: -------------------------------------------------------------------------------- 1 | 5 | -------------------------------------------------------------------------------- /Pak/Fonts/DejaVuSansMono.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crymp-net/client-server/5754f9e5ba59a005b33ee4e7f7e2f52dc82f91ac/Pak/Fonts/DejaVuSansMono.ttf -------------------------------------------------------------------------------- /Pak/Fonts/console.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /Pak/Fonts/default.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /Pak/Fonts/hud.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /Pak/Levels/Multiplayer/IA/Armada/Armada.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /Pak/Levels/Multiplayer/IA/Hawaii/Hawaii.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Pak/Levels/Multiplayer/IA/Outpost/Outpost.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Pak/Levels/Multiplayer/IA/Quarry/Quarry.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Pak/Levels/Multiplayer/IA/Steelmill/Steelmill.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Pak/Libs/UI/HUD_ChatSystem.gfx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crymp-net/client-server/5754f9e5ba59a005b33ee4e7f7e2f52dc82f91ac/Pak/Libs/UI/HUD_ChatSystem.gfx -------------------------------------------------------------------------------- /Pak/Libs/UI/HUD_ChatSystem_HR.gfx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crymp-net/client-server/5754f9e5ba59a005b33ee4e7f7e2f52dc82f91ac/Pak/Libs/UI/HUD_ChatSystem_HR.gfx -------------------------------------------------------------------------------- /Pak/Libs/UI/HUD_Crosshair.gfx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crymp-net/client-server/5754f9e5ba59a005b33ee4e7f7e2f52dc82f91ac/Pak/Libs/UI/HUD_Crosshair.gfx -------------------------------------------------------------------------------- /Pak/Libs/UI/HUD_FriendlyCross.gfx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crymp-net/client-server/5754f9e5ba59a005b33ee4e7f7e2f52dc82f91ac/Pak/Libs/UI/HUD_FriendlyCross.gfx -------------------------------------------------------------------------------- /Pak/Libs/UI/HUD_HitIndicatorPlayer.gfx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crymp-net/client-server/5754f9e5ba59a005b33ee4e7f7e2f52dc82f91ac/Pak/Libs/UI/HUD_HitIndicatorPlayer.gfx -------------------------------------------------------------------------------- /Pak/Libs/UI/HUD_HitIndicatorVehicle.gfx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crymp-net/client-server/5754f9e5ba59a005b33ee4e7f7e2f52dc82f91ac/Pak/Libs/UI/HUD_HitIndicatorVehicle.gfx -------------------------------------------------------------------------------- /Pak/Libs/UI/HUD_InterActiveIcons.gfx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crymp-net/client-server/5754f9e5ba59a005b33ee4e7f7e2f52dc82f91ac/Pak/Libs/UI/HUD_InterActiveIcons.gfx -------------------------------------------------------------------------------- /Pak/Libs/UI/HUD_KillLog.gfx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crymp-net/client-server/5754f9e5ba59a005b33ee4e7f7e2f52dc82f91ac/Pak/Libs/UI/HUD_KillLog.gfx -------------------------------------------------------------------------------- /Pak/Libs/UI/HUD_MP_Radio_Buttons.gfx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crymp-net/client-server/5754f9e5ba59a005b33ee4e7f7e2f52dc82f91ac/Pak/Libs/UI/HUD_MP_Radio_Buttons.gfx -------------------------------------------------------------------------------- /Pak/Libs/UI/HUD_MultiplayerScoreboard_TDM.gfx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crymp-net/client-server/5754f9e5ba59a005b33ee4e7f7e2f52dc82f91ac/Pak/Libs/UI/HUD_MultiplayerScoreboard_TDM.gfx -------------------------------------------------------------------------------- /Pak/Libs/UI/HUD_PDA_Buy.gfx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crymp-net/client-server/5754f9e5ba59a005b33ee4e7f7e2f52dc82f91ac/Pak/Libs/UI/HUD_PDA_Buy.gfx -------------------------------------------------------------------------------- /Pak/Libs/UI/HUD_Spectate.gfx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crymp-net/client-server/5754f9e5ba59a005b33ee4e7f7e2f52dc82f91ac/Pak/Libs/UI/HUD_Spectate.gfx -------------------------------------------------------------------------------- /Pak/Libs/UI/HUD_Swing-O-Meter.gfx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crymp-net/client-server/5754f9e5ba59a005b33ee4e7f7e2f52dc82f91ac/Pak/Libs/UI/HUD_Swing-O-Meter.gfx -------------------------------------------------------------------------------- /Pak/Libs/UI/HUD_TIAScore.gfx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crymp-net/client-server/5754f9e5ba59a005b33ee4e7f7e2f52dc82f91ac/Pak/Libs/UI/HUD_TIAScore.gfx -------------------------------------------------------------------------------- /Pak/Libs/UI/HUD_VehicleStats.gfx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crymp-net/client-server/5754f9e5ba59a005b33ee4e7f7e2f52dc82f91ac/Pak/Libs/UI/HUD_VehicleStats.gfx -------------------------------------------------------------------------------- /Pak/Libs/UI/HUD_WeaponAccessories.gfx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crymp-net/client-server/5754f9e5ba59a005b33ee4e7f7e2f52dc82f91ac/Pak/Libs/UI/HUD_WeaponAccessories.gfx -------------------------------------------------------------------------------- /Pak/Libs/UI/Menus_Loading_MP.gfx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crymp-net/client-server/5754f9e5ba59a005b33ee4e7f7e2f52dc82f91ac/Pak/Libs/UI/Menus_Loading_MP.gfx -------------------------------------------------------------------------------- /Pak/Objects/Characters/Human/Asian/Nanosuit/nanosuit_asian_fp3p.cdf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Pak/Objects/Characters/Human/US/NanoSuit/nanosuit_us_fp3p.cdf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Pak/Objects/Characters/Human/story/Kyong/Kyong.cdf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /Resources/ClientIcon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crymp-net/client-server/5754f9e5ba59a005b33ee4e7f7e2f52dc82f91ac/Resources/ClientIcon.ico -------------------------------------------------------------------------------- /Resources/ClientLauncher.rc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include "Launcher/Resources.h" 4 | #include "config.h" 5 | 6 | RESOURCE_ICON ICON "ClientIcon.ico" 7 | 8 | RESOURCE_CURSOR_AMBER CURSOR "CursorAmber.cur" 9 | RESOURCE_CURSOR_BLUE CURSOR "CursorBlue.cur" 10 | RESOURCE_CURSOR_GREEN CURSOR "CursorGreen.cur" 11 | RESOURCE_CURSOR_RED CURSOR "CursorRed.cur" 12 | RESOURCE_CURSOR_WHITE CURSOR "CursorWhite.cur" 13 | 14 | RESOURCE_MASTERS_TXT RCDATA "../masters.txt" 15 | 16 | RESOURCE_INTERNAL_PAK RCDATA CRYMP_INTERNAL_PAK_PATH 17 | 18 | VS_VERSION_INFO VERSIONINFO 19 | FILEVERSION CRYMP_VERSION, 0, 0, 0 20 | PRODUCTVERSION CRYMP_VERSION, 0, 0, 0 21 | FILEOS VOS__WINDOWS32 22 | FILETYPE VFT_APP 23 | BEGIN 24 | BLOCK "StringFileInfo" 25 | BEGIN 26 | BLOCK "040904E4" 27 | BEGIN 28 | VALUE "CompanyName", "CryMP" 29 | VALUE "LegalCopyright", "(C) 2025 CryMP" 30 | VALUE "ProductName", "CryMP Client" 31 | VALUE "ProductVersion", CRYMP_VERSION_STRING 32 | VALUE "FileVersion", CRYMP_VERSION_STRING 33 | VALUE "FileDescription", "Crysis Multiplayer" 34 | VALUE "InternalName", CRYMP_CLIENT_EXE_NAME 35 | VALUE "OriginalFilename", CRYMP_CLIENT_EXE_NAME ".exe" 36 | END 37 | END 38 | 39 | BLOCK "VarFileInfo" 40 | BEGIN 41 | VALUE "Translation", 0x409, 1252 42 | END 43 | END 44 | -------------------------------------------------------------------------------- /Resources/CursorAmber.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crymp-net/client-server/5754f9e5ba59a005b33ee4e7f7e2f52dc82f91ac/Resources/CursorAmber.cur -------------------------------------------------------------------------------- /Resources/CursorBlue.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crymp-net/client-server/5754f9e5ba59a005b33ee4e7f7e2f52dc82f91ac/Resources/CursorBlue.cur -------------------------------------------------------------------------------- /Resources/CursorGreen.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crymp-net/client-server/5754f9e5ba59a005b33ee4e7f7e2f52dc82f91ac/Resources/CursorGreen.cur -------------------------------------------------------------------------------- /Resources/CursorRed.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crymp-net/client-server/5754f9e5ba59a005b33ee4e7f7e2f52dc82f91ac/Resources/CursorRed.cur -------------------------------------------------------------------------------- /Resources/CursorWhite.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crymp-net/client-server/5754f9e5ba59a005b33ee4e7f7e2f52dc82f91ac/Resources/CursorWhite.cur -------------------------------------------------------------------------------- /Resources/ServerIcon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crymp-net/client-server/5754f9e5ba59a005b33ee4e7f7e2f52dc82f91ac/Resources/ServerIcon.ico -------------------------------------------------------------------------------- /Resources/ServerLauncher.rc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include "Launcher/Resources.h" 4 | #include "config.h" 5 | 6 | RESOURCE_ICON ICON "ServerIcon.ico" 7 | 8 | RESOURCE_MASTERS_TXT RCDATA "../masters.txt" 9 | 10 | RESOURCE_INTERNAL_PAK RCDATA CRYMP_INTERNAL_PAK_PATH 11 | 12 | VS_VERSION_INFO VERSIONINFO 13 | FILEVERSION CRYMP_VERSION, 0, 0, 0 14 | PRODUCTVERSION CRYMP_VERSION, 0, 0, 0 15 | FILEOS VOS__WINDOWS32 16 | FILETYPE VFT_APP 17 | BEGIN 18 | BLOCK "StringFileInfo" 19 | BEGIN 20 | BLOCK "040904E4" 21 | BEGIN 22 | VALUE "CompanyName", "CryMP" 23 | VALUE "LegalCopyright", "(C) 2025 CryMP" 24 | VALUE "ProductName", "CryMP Server" 25 | VALUE "ProductVersion", CRYMP_VERSION_STRING 26 | VALUE "FileVersion", CRYMP_VERSION_STRING 27 | VALUE "FileDescription", "Crysis Multiplayer" 28 | VALUE "InternalName", CRYMP_SERVER_EXE_NAME 29 | VALUE "OriginalFilename", CRYMP_SERVER_EXE_NAME ".exe" 30 | END 31 | END 32 | 33 | BLOCK "VarFileInfo" 34 | BEGIN 35 | VALUE "Translation", 0x409, 1252 36 | END 37 | END 38 | -------------------------------------------------------------------------------- /ThirdParty/Lua/doc/cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crymp-net/client-server/5754f9e5ba59a005b33ee4e7f7e2f52dc82f91ac/ThirdParty/Lua/doc/cover.png -------------------------------------------------------------------------------- /ThirdParty/Lua/doc/logo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crymp-net/client-server/5754f9e5ba59a005b33ee4e7f7e2f52dc82f91ac/ThirdParty/Lua/doc/logo.gif -------------------------------------------------------------------------------- /ThirdParty/Lua/doc/manual.css: -------------------------------------------------------------------------------- 1 | h3 code { 2 | font-family: inherit ; 3 | font-size: inherit ; 4 | } 5 | 6 | pre, code { 7 | font-size: 12pt ; 8 | } 9 | 10 | span.apii { 11 | float: right ; 12 | font-family: inherit ; 13 | font-style: normal ; 14 | font-size: small ; 15 | color: gray ; 16 | } 17 | 18 | p+h1, ul+h1 { 19 | padding-top: 0.4em ; 20 | padding-bottom: 0.4em ; 21 | padding-left: 30px ; 22 | margin-left: -30px ; 23 | background-color: #E0E0FF ; 24 | } 25 | -------------------------------------------------------------------------------- /ThirdParty/Lua/doc/readme.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Lua documentation 4 | 5 | 6 | 7 | 8 | 9 |
10 |

11 | Lua 12 | Documentation 13 |

14 | 15 | This is the documentation included in the source distribution of Lua 5.1.5. 16 | 17 | 25 | 26 | Lua's 27 | official web site 28 | contains updated documentation, 29 | especially the 30 | reference manual. 31 |

32 | 33 |


34 | 35 | Last update: 36 | Fri Feb 3 09:44:42 BRST 2012 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /ThirdParty/Lua/etc/Makefile: -------------------------------------------------------------------------------- 1 | # makefile for Lua etc 2 | 3 | TOP= .. 4 | LIB= $(TOP)/src 5 | INC= $(TOP)/src 6 | BIN= $(TOP)/src 7 | SRC= $(TOP)/src 8 | TST= $(TOP)/test 9 | 10 | CC= gcc 11 | CFLAGS= -O2 -Wall -I$(INC) $(MYCFLAGS) 12 | MYCFLAGS= 13 | MYLDFLAGS= -Wl,-E 14 | MYLIBS= -lm 15 | #MYLIBS= -lm -Wl,-E -ldl -lreadline -lhistory -lncurses 16 | RM= rm -f 17 | 18 | default: 19 | @echo 'Please choose a target: min noparser one strict clean' 20 | 21 | min: min.c 22 | $(CC) $(CFLAGS) $@.c -L$(LIB) -llua $(MYLIBS) 23 | echo 'print"Hello there!"' | ./a.out 24 | 25 | noparser: noparser.o 26 | $(CC) noparser.o $(SRC)/lua.o -L$(LIB) -llua $(MYLIBS) 27 | $(BIN)/luac $(TST)/hello.lua 28 | -./a.out luac.out 29 | -./a.out -e'a=1' 30 | 31 | one: 32 | $(CC) $(CFLAGS) all.c $(MYLIBS) 33 | ./a.out $(TST)/hello.lua 34 | 35 | strict: 36 | -$(BIN)/lua -e 'print(a);b=2' 37 | -$(BIN)/lua -lstrict -e 'print(a)' 38 | -$(BIN)/lua -e 'function f() b=2 end f()' 39 | -$(BIN)/lua -lstrict -e 'function f() b=2 end f()' 40 | 41 | clean: 42 | $(RM) a.out core core.* *.o luac.out 43 | 44 | .PHONY: default min noparser one strict clean 45 | -------------------------------------------------------------------------------- /ThirdParty/Lua/etc/README: -------------------------------------------------------------------------------- 1 | This directory contains some useful files and code. 2 | Unlike the code in ../src, everything here is in the public domain. 3 | 4 | If any of the makes fail, you're probably not using the same libraries 5 | used to build Lua. Set MYLIBS in Makefile accordingly. 6 | 7 | all.c 8 | Full Lua interpreter in a single file. 9 | Do "make one" for a demo. 10 | 11 | lua.hpp 12 | Lua header files for C++ using 'extern "C"'. 13 | 14 | lua.ico 15 | A Lua icon for Windows (and web sites: save as favicon.ico). 16 | Drawn by hand by Markus Gritsch . 17 | 18 | lua.pc 19 | pkg-config data for Lua 20 | 21 | luavs.bat 22 | Script to build Lua under "Visual Studio .NET Command Prompt". 23 | Run it from the toplevel as etc\luavs.bat. 24 | 25 | min.c 26 | A minimal Lua interpreter. 27 | Good for learning and for starting your own. 28 | Do "make min" for a demo. 29 | 30 | noparser.c 31 | Linking with noparser.o avoids loading the parsing modules in lualib.a. 32 | Do "make noparser" for a demo. 33 | 34 | strict.lua 35 | Traps uses of undeclared global variables. 36 | Do "make strict" for a demo. 37 | 38 | -------------------------------------------------------------------------------- /ThirdParty/Lua/etc/all.c: -------------------------------------------------------------------------------- 1 | /* 2 | * all.c -- Lua core, libraries and interpreter in a single file 3 | */ 4 | 5 | #define luaall_c 6 | 7 | #include "lapi.c" 8 | #include "lcode.c" 9 | #include "ldebug.c" 10 | #include "ldo.c" 11 | #include "ldump.c" 12 | #include "lfunc.c" 13 | #include "lgc.c" 14 | #include "llex.c" 15 | #include "lmem.c" 16 | #include "lobject.c" 17 | #include "lopcodes.c" 18 | #include "lparser.c" 19 | #include "lstate.c" 20 | #include "lstring.c" 21 | #include "ltable.c" 22 | #include "ltm.c" 23 | #include "lundump.c" 24 | #include "lvm.c" 25 | #include "lzio.c" 26 | 27 | #include "lauxlib.c" 28 | #include "lbaselib.c" 29 | #include "ldblib.c" 30 | #include "liolib.c" 31 | #include "linit.c" 32 | #include "lmathlib.c" 33 | #include "loadlib.c" 34 | #include "loslib.c" 35 | #include "lstrlib.c" 36 | #include "ltablib.c" 37 | 38 | #include "lua.c" 39 | -------------------------------------------------------------------------------- /ThirdParty/Lua/etc/lua.hpp: -------------------------------------------------------------------------------- 1 | // lua.hpp 2 | // Lua header files for C++ 3 | // <> not supplied automatically because Lua also compiles as C++ 4 | 5 | extern "C" { 6 | #include "lua.h" 7 | #include "lualib.h" 8 | #include "lauxlib.h" 9 | } 10 | -------------------------------------------------------------------------------- /ThirdParty/Lua/etc/lua.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crymp-net/client-server/5754f9e5ba59a005b33ee4e7f7e2f52dc82f91ac/ThirdParty/Lua/etc/lua.ico -------------------------------------------------------------------------------- /ThirdParty/Lua/etc/lua.pc: -------------------------------------------------------------------------------- 1 | # lua.pc -- pkg-config data for Lua 2 | 3 | # vars from install Makefile 4 | 5 | # grep '^V=' ../Makefile 6 | V= 5.1 7 | # grep '^R=' ../Makefile 8 | R= 5.1.5 9 | 10 | # grep '^INSTALL_.*=' ../Makefile | sed 's/INSTALL_TOP/prefix/' 11 | prefix= /usr/local 12 | INSTALL_BIN= ${prefix}/bin 13 | INSTALL_INC= ${prefix}/include 14 | INSTALL_LIB= ${prefix}/lib 15 | INSTALL_MAN= ${prefix}/man/man1 16 | INSTALL_LMOD= ${prefix}/share/lua/${V} 17 | INSTALL_CMOD= ${prefix}/lib/lua/${V} 18 | 19 | # canonical vars 20 | exec_prefix=${prefix} 21 | libdir=${exec_prefix}/lib 22 | includedir=${prefix}/include 23 | 24 | Name: Lua 25 | Description: An Extensible Extension Language 26 | Version: ${R} 27 | Requires: 28 | Libs: -L${libdir} -llua -lm 29 | Cflags: -I${includedir} 30 | 31 | # (end of lua.pc) 32 | -------------------------------------------------------------------------------- /ThirdParty/Lua/etc/luavs.bat: -------------------------------------------------------------------------------- 1 | @rem Script to build Lua under "Visual Studio .NET Command Prompt". 2 | @rem Do not run from this directory; run it from the toplevel: etc\luavs.bat . 3 | @rem It creates lua51.dll, lua51.lib, lua.exe, and luac.exe in src. 4 | @rem (contributed by David Manura and Mike Pall) 5 | 6 | @setlocal 7 | @set MYCOMPILE=cl /nologo /MD /O2 /W3 /c /D_CRT_SECURE_NO_DEPRECATE 8 | @set MYLINK=link /nologo 9 | @set MYMT=mt /nologo 10 | 11 | cd src 12 | %MYCOMPILE% /DLUA_BUILD_AS_DLL l*.c 13 | del lua.obj luac.obj 14 | %MYLINK% /DLL /out:lua51.dll l*.obj 15 | if exist lua51.dll.manifest^ 16 | %MYMT% -manifest lua51.dll.manifest -outputresource:lua51.dll;2 17 | %MYCOMPILE% /DLUA_BUILD_AS_DLL lua.c 18 | %MYLINK% /out:lua.exe lua.obj lua51.lib 19 | if exist lua.exe.manifest^ 20 | %MYMT% -manifest lua.exe.manifest -outputresource:lua.exe 21 | %MYCOMPILE% l*.c print.c 22 | del lua.obj linit.obj lbaselib.obj ldblib.obj liolib.obj lmathlib.obj^ 23 | loslib.obj ltablib.obj lstrlib.obj loadlib.obj 24 | %MYLINK% /out:luac.exe *.obj 25 | if exist luac.exe.manifest^ 26 | %MYMT% -manifest luac.exe.manifest -outputresource:luac.exe 27 | del *.obj *.manifest 28 | cd .. 29 | -------------------------------------------------------------------------------- /ThirdParty/Lua/etc/min.c: -------------------------------------------------------------------------------- 1 | /* 2 | * min.c -- a minimal Lua interpreter 3 | * loads stdin only with minimal error handling. 4 | * no interaction, and no standard library, only a "print" function. 5 | */ 6 | 7 | #include 8 | 9 | #include "lua.h" 10 | #include "lauxlib.h" 11 | 12 | static int print(lua_State *L) 13 | { 14 | int n=lua_gettop(L); 15 | int i; 16 | for (i=1; i<=n; i++) 17 | { 18 | if (i>1) printf("\t"); 19 | if (lua_isstring(L,i)) 20 | printf("%s",lua_tostring(L,i)); 21 | else if (lua_isnil(L,i)) 22 | printf("%s","nil"); 23 | else if (lua_isboolean(L,i)) 24 | printf("%s",lua_toboolean(L,i) ? "true" : "false"); 25 | else 26 | printf("%s:%p",luaL_typename(L,i),lua_topointer(L,i)); 27 | } 28 | printf("\n"); 29 | return 0; 30 | } 31 | 32 | int main(void) 33 | { 34 | lua_State *L=lua_open(); 35 | lua_register(L,"print",print); 36 | if (luaL_dofile(L,NULL)!=0) fprintf(stderr,"%s\n",lua_tostring(L,-1)); 37 | lua_close(L); 38 | return 0; 39 | } 40 | -------------------------------------------------------------------------------- /ThirdParty/Lua/etc/strict.lua: -------------------------------------------------------------------------------- 1 | -- 2 | -- strict.lua 3 | -- checks uses of undeclared global variables 4 | -- All global variables must be 'declared' through a regular assignment 5 | -- (even assigning nil will do) in a main chunk before being used 6 | -- anywhere or assigned to inside a function. 7 | -- 8 | 9 | local getinfo, error, rawset, rawget = debug.getinfo, error, rawset, rawget 10 | 11 | local mt = getmetatable(_G) 12 | if mt == nil then 13 | mt = {} 14 | setmetatable(_G, mt) 15 | end 16 | 17 | mt.__declared = {} 18 | 19 | local function what () 20 | local d = getinfo(3, "S") 21 | return d and d.what or "C" 22 | end 23 | 24 | mt.__newindex = function (t, n, v) 25 | if not mt.__declared[n] then 26 | local w = what() 27 | if w ~= "main" and w ~= "C" then 28 | error("assign to undeclared variable '"..n.."'", 2) 29 | end 30 | mt.__declared[n] = true 31 | end 32 | rawset(t, n, v) 33 | end 34 | 35 | mt.__index = function (t, n) 36 | if not mt.__declared[n] and what() ~= "C" then 37 | error("variable '"..n.."' is not declared", 2) 38 | end 39 | return rawget(t, n) 40 | end 41 | 42 | -------------------------------------------------------------------------------- /ThirdParty/Lua/src/lapi.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** $Id: lapi.h,v 2.2.1.1 2007/12/27 13:02:25 roberto Exp $ 3 | ** Auxiliary functions from Lua API 4 | ** See Copyright Notice in lua.h 5 | */ 6 | 7 | #ifndef lapi_h 8 | #define lapi_h 9 | 10 | 11 | #include "lobject.h" 12 | 13 | 14 | LUAI_FUNC void luaA_pushobject (lua_State *L, const TValue *o); 15 | 16 | #endif 17 | -------------------------------------------------------------------------------- /ThirdParty/Lua/src/ldebug.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** $Id: ldebug.h,v 2.3.1.1 2007/12/27 13:02:25 roberto Exp $ 3 | ** Auxiliary functions from Debug Interface module 4 | ** See Copyright Notice in lua.h 5 | */ 6 | 7 | #ifndef ldebug_h 8 | #define ldebug_h 9 | 10 | 11 | #include "lstate.h" 12 | 13 | 14 | #define pcRel(pc, p) (cast(int, (pc) - (p)->code) - 1) 15 | 16 | #define getline(f,pc) (((f)->lineinfo) ? (f)->lineinfo[pc] : 0) 17 | 18 | #define resethookcount(L) (L->hookcount = L->basehookcount) 19 | 20 | 21 | LUAI_FUNC void luaG_typeerror (lua_State *L, const TValue *o, 22 | const char *opname); 23 | LUAI_FUNC void luaG_concaterror (lua_State *L, StkId p1, StkId p2); 24 | LUAI_FUNC void luaG_aritherror (lua_State *L, const TValue *p1, 25 | const TValue *p2); 26 | LUAI_FUNC int luaG_ordererror (lua_State *L, const TValue *p1, 27 | const TValue *p2); 28 | LUAI_FUNC void luaG_runerror (lua_State *L, const char *fmt, ...); 29 | LUAI_FUNC void luaG_errormsg (lua_State *L); 30 | LUAI_FUNC int luaG_checkcode (const Proto *pt); 31 | LUAI_FUNC int luaG_checkopenop (Instruction i); 32 | 33 | #endif 34 | -------------------------------------------------------------------------------- /ThirdParty/Lua/src/lfunc.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** $Id: lfunc.h,v 2.4.1.1 2007/12/27 13:02:25 roberto Exp $ 3 | ** Auxiliary functions to manipulate prototypes and closures 4 | ** See Copyright Notice in lua.h 5 | */ 6 | 7 | #ifndef lfunc_h 8 | #define lfunc_h 9 | 10 | 11 | #include "lobject.h" 12 | 13 | 14 | #define sizeCclosure(n) (cast(int, sizeof(CClosure)) + \ 15 | cast(int, sizeof(TValue)*((n)-1))) 16 | 17 | #define sizeLclosure(n) (cast(int, sizeof(LClosure)) + \ 18 | cast(int, sizeof(TValue *)*((n)-1))) 19 | 20 | 21 | LUAI_FUNC Proto *luaF_newproto (lua_State *L); 22 | LUAI_FUNC Closure *luaF_newCclosure (lua_State *L, int nelems, Table *e); 23 | LUAI_FUNC Closure *luaF_newLclosure (lua_State *L, int nelems, Table *e); 24 | LUAI_FUNC UpVal *luaF_newupval (lua_State *L); 25 | LUAI_FUNC UpVal *luaF_findupval (lua_State *L, StkId level); 26 | LUAI_FUNC void luaF_close (lua_State *L, StkId level); 27 | LUAI_FUNC void luaF_freeproto (lua_State *L, Proto *f); 28 | LUAI_FUNC void luaF_freeclosure (lua_State *L, Closure *c); 29 | LUAI_FUNC void luaF_freeupval (lua_State *L, UpVal *uv); 30 | LUAI_FUNC const char *luaF_getlocalname (const Proto *func, int local_number, 31 | int pc); 32 | 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /ThirdParty/Lua/src/linit.c: -------------------------------------------------------------------------------- 1 | /* 2 | ** $Id: linit.c,v 1.14.1.1 2007/12/27 13:02:25 roberto Exp $ 3 | ** Initialization of libraries for lua.c 4 | ** See Copyright Notice in lua.h 5 | */ 6 | 7 | 8 | #define linit_c 9 | #define LUA_LIB 10 | 11 | #include "lua.h" 12 | 13 | #include "lualib.h" 14 | #include "lauxlib.h" 15 | 16 | 17 | static const luaL_Reg lualibs[] = { 18 | {"", luaopen_base}, 19 | {LUA_LOADLIBNAME, luaopen_package}, 20 | {LUA_TABLIBNAME, luaopen_table}, 21 | {LUA_IOLIBNAME, luaopen_io}, 22 | {LUA_OSLIBNAME, luaopen_os}, 23 | {LUA_STRLIBNAME, luaopen_string}, 24 | {LUA_MATHLIBNAME, luaopen_math}, 25 | {LUA_DBLIBNAME, luaopen_debug}, 26 | {NULL, NULL} 27 | }; 28 | 29 | 30 | LUALIB_API void luaL_openlibs (lua_State *L) { 31 | const luaL_Reg *lib = lualibs; 32 | for (; lib->func; lib++) { 33 | lua_pushcfunction(L, lib->func); 34 | lua_pushstring(L, lib->name); 35 | lua_call(L, 1, 0); 36 | } 37 | } 38 | 39 | -------------------------------------------------------------------------------- /ThirdParty/Lua/src/lstring.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** $Id: lstring.h,v 1.43.1.1 2007/12/27 13:02:25 roberto Exp $ 3 | ** String table (keep all strings handled by Lua) 4 | ** See Copyright Notice in lua.h 5 | */ 6 | 7 | #ifndef lstring_h 8 | #define lstring_h 9 | 10 | 11 | #include "lgc.h" 12 | #include "lobject.h" 13 | #include "lstate.h" 14 | 15 | 16 | #define sizestring(s) (sizeof(union TString)+((s)->len+1)*sizeof(char)) 17 | 18 | #define sizeudata(u) (sizeof(union Udata)+(u)->len) 19 | 20 | #define luaS_new(L, s) (luaS_newlstr(L, s, strlen(s))) 21 | #define luaS_newliteral(L, s) (luaS_newlstr(L, "" s, \ 22 | (sizeof(s)/sizeof(char))-1)) 23 | 24 | #define luaS_fix(s) l_setbit((s)->tsv.marked, FIXEDBIT) 25 | 26 | LUAI_FUNC void luaS_resize (lua_State *L, int newsize); 27 | LUAI_FUNC Udata *luaS_newudata (lua_State *L, size_t s, Table *e); 28 | LUAI_FUNC TString *luaS_newlstr (lua_State *L, const char *str, size_t l); 29 | 30 | 31 | #endif 32 | -------------------------------------------------------------------------------- /ThirdParty/Lua/src/ltable.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** $Id: ltable.h,v 2.10.1.1 2007/12/27 13:02:25 roberto Exp $ 3 | ** Lua tables (hash) 4 | ** See Copyright Notice in lua.h 5 | */ 6 | 7 | #ifndef ltable_h 8 | #define ltable_h 9 | 10 | #include "lobject.h" 11 | 12 | 13 | #define gnode(t,i) (&(t)->node[i]) 14 | #define gkey(n) (&(n)->i_key.nk) 15 | #define gval(n) (&(n)->i_val) 16 | #define gnext(n) ((n)->i_key.nk.next) 17 | 18 | #define key2tval(n) (&(n)->i_key.tvk) 19 | 20 | 21 | LUAI_FUNC const TValue *luaH_getnum (Table *t, int key); 22 | LUAI_FUNC TValue *luaH_setnum (lua_State *L, Table *t, int key); 23 | LUAI_FUNC const TValue *luaH_getstr (Table *t, TString *key); 24 | LUAI_FUNC TValue *luaH_setstr (lua_State *L, Table *t, TString *key); 25 | LUAI_FUNC const TValue *luaH_get (Table *t, const TValue *key); 26 | LUAI_FUNC TValue *luaH_set (lua_State *L, Table *t, const TValue *key); 27 | LUAI_FUNC Table *luaH_new (lua_State *L, int narray, int lnhash); 28 | LUAI_FUNC void luaH_resizearray (lua_State *L, Table *t, int nasize); 29 | LUAI_FUNC void luaH_free (lua_State *L, Table *t); 30 | LUAI_FUNC int luaH_next (lua_State *L, Table *t, StkId key); 31 | LUAI_FUNC int luaH_getn (Table *t); 32 | 33 | 34 | #if defined(LUA_DEBUG) 35 | LUAI_FUNC Node *luaH_mainposition (const Table *t, const TValue *key); 36 | LUAI_FUNC int luaH_isdummy (Node *n); 37 | #endif 38 | 39 | 40 | #endif 41 | -------------------------------------------------------------------------------- /ThirdParty/Lua/src/ltm.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** $Id: ltm.h,v 2.6.1.1 2007/12/27 13:02:25 roberto Exp $ 3 | ** Tag methods 4 | ** See Copyright Notice in lua.h 5 | */ 6 | 7 | #ifndef ltm_h 8 | #define ltm_h 9 | 10 | 11 | #include "lobject.h" 12 | 13 | 14 | /* 15 | * WARNING: if you change the order of this enumeration, 16 | * grep "ORDER TM" 17 | */ 18 | typedef enum { 19 | TM_INDEX, 20 | TM_NEWINDEX, 21 | TM_GC, 22 | TM_MODE, 23 | TM_EQ, /* last tag method with `fast' access */ 24 | TM_ADD, 25 | TM_SUB, 26 | TM_MUL, 27 | TM_DIV, 28 | TM_MOD, 29 | TM_POW, 30 | TM_UNM, 31 | TM_LEN, 32 | TM_LT, 33 | TM_LE, 34 | TM_CONCAT, 35 | TM_CALL, 36 | TM_N /* number of elements in the enum */ 37 | } TMS; 38 | 39 | 40 | 41 | #define gfasttm(g,et,e) ((et) == NULL ? NULL : \ 42 | ((et)->flags & (1u<<(e))) ? NULL : luaT_gettm(et, e, (g)->tmname[e])) 43 | 44 | #define fasttm(l,et,e) gfasttm(G(l), et, e) 45 | 46 | LUAI_DATA const char *const luaT_typenames[]; 47 | 48 | 49 | LUAI_FUNC const TValue *luaT_gettm (Table *events, TMS event, TString *ename); 50 | LUAI_FUNC const TValue *luaT_gettmbyobj (lua_State *L, const TValue *o, 51 | TMS event); 52 | LUAI_FUNC void luaT_init (lua_State *L); 53 | 54 | #endif 55 | -------------------------------------------------------------------------------- /ThirdParty/Lua/src/lualib.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** $Id: lualib.h,v 1.36.1.1 2007/12/27 13:02:25 roberto Exp $ 3 | ** Lua standard libraries 4 | ** See Copyright Notice in lua.h 5 | */ 6 | 7 | 8 | #ifndef lualib_h 9 | #define lualib_h 10 | 11 | #include "lua.h" 12 | 13 | 14 | /* Key to file-handle type */ 15 | #define LUA_FILEHANDLE "FILE*" 16 | 17 | 18 | #define LUA_COLIBNAME "coroutine" 19 | LUALIB_API int (luaopen_base) (lua_State *L); 20 | 21 | #define LUA_TABLIBNAME "table" 22 | LUALIB_API int (luaopen_table) (lua_State *L); 23 | 24 | #define LUA_IOLIBNAME "io" 25 | LUALIB_API int (luaopen_io) (lua_State *L); 26 | 27 | #define LUA_OSLIBNAME "os" 28 | LUALIB_API int (luaopen_os) (lua_State *L); 29 | 30 | #define LUA_STRLIBNAME "string" 31 | LUALIB_API int (luaopen_string) (lua_State *L); 32 | 33 | #define LUA_MATHLIBNAME "math" 34 | LUALIB_API int (luaopen_math) (lua_State *L); 35 | 36 | #define LUA_DBLIBNAME "debug" 37 | LUALIB_API int (luaopen_debug) (lua_State *L); 38 | 39 | #define LUA_LOADLIBNAME "package" 40 | LUALIB_API int (luaopen_package) (lua_State *L); 41 | 42 | 43 | /* open all previous libraries */ 44 | LUALIB_API void (luaL_openlibs) (lua_State *L); 45 | 46 | 47 | 48 | #ifndef lua_assert 49 | #define lua_assert(x) ((void)0) 50 | #endif 51 | 52 | 53 | #endif 54 | -------------------------------------------------------------------------------- /ThirdParty/Lua/src/lundump.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** $Id: lundump.h,v 1.37.1.1 2007/12/27 13:02:25 roberto Exp $ 3 | ** load precompiled Lua chunks 4 | ** See Copyright Notice in lua.h 5 | */ 6 | 7 | #ifndef lundump_h 8 | #define lundump_h 9 | 10 | #include "lobject.h" 11 | #include "lzio.h" 12 | 13 | /* load one chunk; from lundump.c */ 14 | LUAI_FUNC Proto* luaU_undump (lua_State* L, ZIO* Z, Mbuffer* buff, const char* name); 15 | 16 | /* make header; from lundump.c */ 17 | LUAI_FUNC void luaU_header (char* h); 18 | 19 | /* dump one chunk; from ldump.c */ 20 | LUAI_FUNC int luaU_dump (lua_State* L, const Proto* f, lua_Writer w, void* data, int strip); 21 | 22 | #ifdef luac_c 23 | /* print one chunk; from print.c */ 24 | LUAI_FUNC void luaU_print (const Proto* f, int full); 25 | #endif 26 | 27 | /* for header of binary files -- this is Lua 5.1 */ 28 | #define LUAC_VERSION 0x51 29 | 30 | /* for header of binary files -- this is the official format */ 31 | #define LUAC_FORMAT 0 32 | 33 | /* size of header of binary files */ 34 | #define LUAC_HEADERSIZE 12 35 | 36 | #endif 37 | -------------------------------------------------------------------------------- /ThirdParty/Lua/src/lvm.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** $Id: lvm.h,v 2.5.1.1 2007/12/27 13:02:25 roberto Exp $ 3 | ** Lua virtual machine 4 | ** See Copyright Notice in lua.h 5 | */ 6 | 7 | #ifndef lvm_h 8 | #define lvm_h 9 | 10 | 11 | #include "ldo.h" 12 | #include "lobject.h" 13 | #include "ltm.h" 14 | 15 | 16 | #define tostring(L,o) ((ttype(o) == LUA_TSTRING) || (luaV_tostring(L, o))) 17 | 18 | #define tonumber(o,n) (ttype(o) == LUA_TNUMBER || \ 19 | (((o) = luaV_tonumber(o,n)) != NULL)) 20 | 21 | #define equalobj(L,o1,o2) \ 22 | (ttype(o1) == ttype(o2) && luaV_equalval(L, o1, o2)) 23 | 24 | 25 | LUAI_FUNC int luaV_lessthan (lua_State *L, const TValue *l, const TValue *r); 26 | LUAI_FUNC int luaV_equalval (lua_State *L, const TValue *t1, const TValue *t2); 27 | LUAI_FUNC const TValue *luaV_tonumber (const TValue *obj, TValue *n); 28 | LUAI_FUNC int luaV_tostring (lua_State *L, StkId obj); 29 | LUAI_FUNC void luaV_gettable (lua_State *L, const TValue *t, TValue *key, 30 | StkId val); 31 | LUAI_FUNC void luaV_settable (lua_State *L, const TValue *t, TValue *key, 32 | StkId val); 33 | LUAI_FUNC void luaV_execute (lua_State *L, int nexeccalls); 34 | LUAI_FUNC void luaV_concat (lua_State *L, int total, int last); 35 | 36 | #endif 37 | -------------------------------------------------------------------------------- /ThirdParty/Lua/test/README: -------------------------------------------------------------------------------- 1 | These are simple tests for Lua. Some of them contain useful code. 2 | They are meant to be run to make sure Lua is built correctly and also 3 | to be read, to see how Lua programs look. 4 | 5 | Here is a one-line summary of each program: 6 | 7 | bisect.lua bisection method for solving non-linear equations 8 | cf.lua temperature conversion table (celsius to farenheit) 9 | echo.lua echo command line arguments 10 | env.lua environment variables as automatic global variables 11 | factorial.lua factorial without recursion 12 | fib.lua fibonacci function with cache 13 | fibfor.lua fibonacci numbers with coroutines and generators 14 | globals.lua report global variable usage 15 | hello.lua the first program in every language 16 | life.lua Conway's Game of Life 17 | luac.lua bare-bones luac 18 | printf.lua an implementation of printf 19 | readonly.lua make global variables readonly 20 | sieve.lua the sieve of of Eratosthenes programmed with coroutines 21 | sort.lua two implementations of a sort function 22 | table.lua make table, grouping all data for the same item 23 | trace-calls.lua trace calls 24 | trace-globals.lua trace assigments to global variables 25 | xd.lua hex dump 26 | 27 | -------------------------------------------------------------------------------- /ThirdParty/Lua/test/bisect.lua: -------------------------------------------------------------------------------- 1 | -- bisection method for solving non-linear equations 2 | 3 | delta=1e-6 -- tolerance 4 | 5 | function bisect(f,a,b,fa,fb) 6 | local c=(a+b)/2 7 | io.write(n," c=",c," a=",a," b=",b,"\n") 8 | if c==a or c==b or math.abs(a-b)>> ",string.rep(" ",level)) 9 | if t~=nil and t.currentline>=0 then io.write(t.short_src,":",t.currentline," ") end 10 | t=debug.getinfo(2) 11 | if event=="call" then 12 | level=level+1 13 | else 14 | level=level-1 if level<0 then level=0 end 15 | end 16 | if t.what=="main" then 17 | if event=="call" then 18 | io.write("begin ",t.short_src) 19 | else 20 | io.write("end ",t.short_src) 21 | end 22 | elseif t.what=="Lua" then 23 | -- table.foreach(t,print) 24 | io.write(event," ",t.name or "(Lua)"," <",t.linedefined,":",t.short_src,">") 25 | else 26 | io.write(event," ",t.name or "(C)"," [",t.what,"] ") 27 | end 28 | io.write("\n") 29 | end 30 | 31 | debug.sethook(hook,"cr") 32 | level=0 33 | -------------------------------------------------------------------------------- /ThirdParty/Lua/test/trace-globals.lua: -------------------------------------------------------------------------------- 1 | -- trace assigments to global variables 2 | 3 | do 4 | -- a tostring that quotes strings. note the use of the original tostring. 5 | local _tostring=tostring 6 | local tostring=function(a) 7 | if type(a)=="string" then 8 | return string.format("%q",a) 9 | else 10 | return _tostring(a) 11 | end 12 | end 13 | 14 | local log=function (name,old,new) 15 | local t=debug.getinfo(3,"Sl") 16 | local line=t.currentline 17 | io.write(t.short_src) 18 | if line>=0 then io.write(":",line) end 19 | io.write(": ",name," is now ",tostring(new)," (was ",tostring(old),")","\n") 20 | end 21 | 22 | local g={} 23 | local set=function (t,name,value) 24 | log(name,g[name],value) 25 | g[name]=value 26 | end 27 | setmetatable(getfenv(),{__index=g,__newindex=set}) 28 | end 29 | 30 | -- an example 31 | 32 | a=1 33 | b=2 34 | a=10 35 | b=20 36 | b=nil 37 | b=200 38 | print(a,b,c) 39 | -------------------------------------------------------------------------------- /ThirdParty/Lua/test/xd.lua: -------------------------------------------------------------------------------- 1 | -- hex dump 2 | -- usage: lua xd.lua < file 3 | 4 | local offset=0 5 | while true do 6 | local s=io.read(16) 7 | if s==nil then return end 8 | io.write(string.format("%08X ",offset)) 9 | string.gsub(s,"(.)", 10 | function (c) io.write(string.format("%02X ",string.byte(c))) end) 11 | io.write(string.rep(" ",3*(16-string.len(s)))) 12 | io.write(" ",string.gsub(s,"%c","."),"\n") 13 | offset=offset+16 14 | end 15 | -------------------------------------------------------------------------------- /ThirdParty/mimalloc/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018-2021 Microsoft Corporation, Daan Leijen 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /ThirdParty/mimalloc/README.md: -------------------------------------------------------------------------------- 1 | # mimalloc 2 | 3 | https://github.com/microsoft/mimalloc 4 | -------------------------------------------------------------------------------- /ThirdParty/mimalloc/src/prim/osx/prim.c: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | Copyright (c) 2018-2023, Microsoft Research, Daan Leijen 3 | This is free software; you can redistribute it and/or modify it under the 4 | terms of the MIT license. A copy of the license can be found in the file 5 | "LICENSE" at the root of this distribution. 6 | -----------------------------------------------------------------------------*/ 7 | 8 | // We use the unix/prim.c with the mmap API on macOSX 9 | #include "../unix/prim.c" 10 | -------------------------------------------------------------------------------- /ThirdParty/mimalloc/src/prim/prim.c: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | Copyright (c) 2018-2023, Microsoft Research, Daan Leijen 3 | This is free software; you can redistribute it and/or modify it under the 4 | terms of the MIT license. A copy of the license can be found in the file 5 | "LICENSE" at the root of this distribution. 6 | -----------------------------------------------------------------------------*/ 7 | 8 | // Select the implementation of the primitives 9 | // depending on the OS. 10 | 11 | #if defined(_WIN32) 12 | #include "windows/prim.c" // VirtualAlloc (Windows) 13 | 14 | #elif defined(__APPLE__) 15 | #include "osx/prim.c" // macOSX (actually defers to mmap in unix/prim.c) 16 | 17 | #elif defined(__wasi__) 18 | #define MI_USE_SBRK 19 | #include "wasi/prim.c" // memory-grow or sbrk (Wasm) 20 | 21 | #else 22 | #include "unix/prim.c" // mmap() (Linux, macOSX, BSD, Illumnos, Haiku, DragonFly, etc.) 23 | 24 | #endif 25 | -------------------------------------------------------------------------------- /ThirdParty/mimalloc/src/prim/readme.md: -------------------------------------------------------------------------------- 1 | ## Portability Primitives 2 | 3 | This is the portability layer where all primitives needed from the OS are defined. 4 | 5 | - `include/mimalloc/prim.h`: primitive portability API definition. 6 | - `prim.c`: Selects one of `unix/prim.c`, `wasi/prim.c`, or `windows/prim.c` depending on the host platform 7 | (and on macOS, `osx/prim.c` defers to `unix/prim.c`). 8 | 9 | Note: still work in progress, there may still be places in the sources that still depend on OS ifdef's. -------------------------------------------------------------------------------- /ThirdParty/mimalloc/src/prim/windows/etw.man: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crymp-net/client-server/5754f9e5ba59a005b33ee4e7f7e2f52dc82f91ac/ThirdParty/mimalloc/src/prim/windows/etw.man -------------------------------------------------------------------------------- /ThirdParty/mimalloc/src/prim/windows/readme.md: -------------------------------------------------------------------------------- 1 | ## Primitives: 2 | 3 | - `prim.c` contains Windows primitives for OS allocation. 4 | 5 | ## Event Tracing for Windows (ETW) 6 | 7 | - `etw.h` is generated from `etw.man` which contains the manifest for mimalloc events. 8 | (100 is an allocation, 101 is for a free) 9 | 10 | - `etw-mimalloc.wprp` is a profile for the Windows Performance Recorder (WPR). 11 | In an admin prompt, you can use: 12 | ``` 13 | > wpr -start src\prim\windows\etw-mimalloc.wprp -filemode 14 | > 15 | > wpr -stop test.etl 16 | ``` 17 | and then open `test.etl` in the Windows Performance Analyzer (WPA). -------------------------------------------------------------------------------- /ThirdParty/miniz/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright 2013-2014 RAD Game Tools and Valve Software 2 | Copyright 2010-2014 Rich Geldreich and Tenacious Software LLC 3 | 4 | All Rights Reserved. 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in 14 | all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /ThirdParty/tracy/public/client/TracyAlloc.cpp: -------------------------------------------------------------------------------- 1 | #include "../common/TracyAlloc.hpp" 2 | 3 | #ifdef TRACY_USE_RPMALLOC 4 | 5 | #include 6 | 7 | #include "../common/TracyForceInline.hpp" 8 | #include "../common/TracyYield.hpp" 9 | 10 | namespace tracy 11 | { 12 | 13 | extern thread_local bool RpThreadInitDone; 14 | extern std::atomic RpInitDone; 15 | extern std::atomic RpInitLock; 16 | 17 | tracy_no_inline static void InitRpmallocPlumbing() 18 | { 19 | const auto done = RpInitDone.load( std::memory_order_acquire ); 20 | if( !done ) 21 | { 22 | int expected = 0; 23 | while( !RpInitLock.compare_exchange_weak( expected, 1, std::memory_order_release, std::memory_order_relaxed ) ) { expected = 0; YieldThread(); } 24 | const auto done = RpInitDone.load( std::memory_order_acquire ); 25 | if( !done ) 26 | { 27 | rpmalloc_initialize(); 28 | RpInitDone.store( 1, std::memory_order_release ); 29 | } 30 | RpInitLock.store( 0, std::memory_order_release ); 31 | } 32 | rpmalloc_thread_initialize(); 33 | RpThreadInitDone = true; 34 | } 35 | 36 | TRACY_API void InitRpmalloc() 37 | { 38 | if( !RpThreadInitDone ) InitRpmallocPlumbing(); 39 | } 40 | 41 | } 42 | 43 | #endif 44 | -------------------------------------------------------------------------------- /ThirdParty/tracy/public/client/TracyCallstack.h: -------------------------------------------------------------------------------- 1 | #ifndef __TRACYCALLSTACK_H__ 2 | #define __TRACYCALLSTACK_H__ 3 | 4 | #ifndef TRACY_NO_CALLSTACK 5 | 6 | # if !defined _WIN32 7 | # include 8 | # endif 9 | 10 | # if defined _WIN32 11 | # include "../common/TracyUwp.hpp" 12 | # ifndef TRACY_UWP 13 | # define TRACY_HAS_CALLSTACK 1 14 | # endif 15 | # elif defined __ANDROID__ 16 | # if !defined __arm__ || __ANDROID_API__ >= 21 17 | # define TRACY_HAS_CALLSTACK 2 18 | # else 19 | # define TRACY_HAS_CALLSTACK 5 20 | # endif 21 | # elif defined __linux 22 | # if defined _GNU_SOURCE && defined __GLIBC__ 23 | # define TRACY_HAS_CALLSTACK 3 24 | # else 25 | # define TRACY_HAS_CALLSTACK 2 26 | # endif 27 | # elif defined __APPLE__ 28 | # define TRACY_HAS_CALLSTACK 4 29 | # elif defined BSD 30 | # define TRACY_HAS_CALLSTACK 6 31 | # endif 32 | 33 | #endif 34 | 35 | #endif 36 | -------------------------------------------------------------------------------- /ThirdParty/tracy/public/client/TracyCpuid.hpp: -------------------------------------------------------------------------------- 1 | #ifndef __TRACYCPUID_HPP__ 2 | #define __TRACYCPUID_HPP__ 3 | 4 | // Prior to GCC 11 the cpuid.h header did not have any include guards and thus 5 | // including it more than once would cause a compiler error due to symbol 6 | // redefinitions. In order to support older GCC versions, we have to wrap this 7 | // include between custom include guards to prevent this issue. 8 | // See also https://github.com/wolfpld/tracy/issues/452 9 | 10 | #include 11 | 12 | #endif 13 | -------------------------------------------------------------------------------- /ThirdParty/tracy/public/client/TracyDebug.hpp: -------------------------------------------------------------------------------- 1 | #ifndef __TRACYPRINT_HPP__ 2 | #define __TRACYPRINT_HPP__ 3 | 4 | #ifdef TRACY_VERBOSE 5 | # include 6 | # define TracyDebug(...) fprintf( stderr, __VA_ARGS__ ); 7 | #else 8 | # define TracyDebug(...) 9 | #endif 10 | 11 | #endif 12 | -------------------------------------------------------------------------------- /ThirdParty/tracy/public/client/TracyDxt1.hpp: -------------------------------------------------------------------------------- 1 | #ifndef __TRACYDXT1_HPP__ 2 | #define __TRACYDXT1_HPP__ 3 | 4 | namespace tracy 5 | { 6 | 7 | void CompressImageDxt1( const char* src, char* dst, int w, int h ); 8 | 9 | } 10 | 11 | #endif 12 | -------------------------------------------------------------------------------- /ThirdParty/tracy/public/client/TracyOverride.cpp: -------------------------------------------------------------------------------- 1 | #ifdef TRACY_ENABLE 2 | # ifdef __linux__ 3 | # include "TracyDebug.hpp" 4 | # ifdef TRACY_VERBOSE 5 | # include 6 | # include 7 | # endif 8 | 9 | extern "C" int dlclose( void* hnd ) 10 | { 11 | #ifdef TRACY_VERBOSE 12 | struct link_map* lm; 13 | if( dlinfo( hnd, RTLD_DI_LINKMAP, &lm ) == 0 ) 14 | { 15 | TracyDebug( "Overriding dlclose for %s\n", lm->l_name ); 16 | } 17 | else 18 | { 19 | TracyDebug( "Overriding dlclose for unknown object (%s)\n", dlerror() ); 20 | } 21 | #endif 22 | return 0; 23 | } 24 | 25 | # endif 26 | #endif 27 | -------------------------------------------------------------------------------- /ThirdParty/tracy/public/client/TracyStringHelpers.hpp: -------------------------------------------------------------------------------- 1 | #ifndef __TRACYSTRINGHELPERS_HPP__ 2 | #define __TRACYSTRINGHELPERS_HPP__ 3 | 4 | #include 5 | #include 6 | 7 | #include "../common/TracyAlloc.hpp" 8 | #include "../common/TracyForceInline.hpp" 9 | 10 | namespace tracy 11 | { 12 | 13 | static tracy_force_inline char* CopyString( const char* src, size_t sz ) 14 | { 15 | auto dst = (char*)tracy_malloc( sz + 1 ); 16 | memcpy( dst, src, sz ); 17 | dst[sz] = '\0'; 18 | return dst; 19 | } 20 | 21 | static tracy_force_inline char* CopyString( const char* src ) 22 | { 23 | return CopyString( src, strlen( src ) ); 24 | } 25 | 26 | static tracy_force_inline char* CopyStringFast( const char* src, size_t sz ) 27 | { 28 | auto dst = (char*)tracy_malloc_fast( sz + 1 ); 29 | memcpy( dst, src, sz ); 30 | dst[sz] = '\0'; 31 | return dst; 32 | } 33 | 34 | static tracy_force_inline char* CopyStringFast( const char* src ) 35 | { 36 | return CopyStringFast( src, strlen( src ) ); 37 | } 38 | 39 | } 40 | 41 | #endif 42 | -------------------------------------------------------------------------------- /ThirdParty/tracy/public/client/TracySysPower.hpp: -------------------------------------------------------------------------------- 1 | #ifndef __TRACYSYSPOWER_HPP__ 2 | #define __TRACYSYSPOWER_HPP__ 3 | 4 | #if defined __linux__ 5 | # define TRACY_HAS_SYSPOWER 6 | #endif 7 | 8 | #ifdef TRACY_HAS_SYSPOWER 9 | 10 | #include 11 | #include 12 | 13 | #include "TracyFastVector.hpp" 14 | 15 | namespace tracy 16 | { 17 | 18 | class SysPower 19 | { 20 | struct Domain 21 | { 22 | uint64_t value; 23 | uint64_t overflow; 24 | FILE* handle; 25 | const char* name; 26 | }; 27 | 28 | public: 29 | SysPower(); 30 | ~SysPower(); 31 | 32 | void Tick(); 33 | 34 | private: 35 | void ScanDirectory( const char* path, int parent ); 36 | 37 | FastVector m_domains; 38 | uint64_t m_lastTime; 39 | }; 40 | 41 | } 42 | #endif 43 | 44 | #endif 45 | -------------------------------------------------------------------------------- /ThirdParty/tracy/public/client/TracySysTime.hpp: -------------------------------------------------------------------------------- 1 | #ifndef __TRACYSYSTIME_HPP__ 2 | #define __TRACYSYSTIME_HPP__ 3 | 4 | #if defined _WIN32 || defined __linux__ || defined __APPLE__ 5 | # define TRACY_HAS_SYSTIME 6 | #else 7 | # include 8 | #endif 9 | 10 | #ifdef BSD 11 | # define TRACY_HAS_SYSTIME 12 | #endif 13 | 14 | #ifdef TRACY_HAS_SYSTIME 15 | 16 | #include 17 | 18 | namespace tracy 19 | { 20 | 21 | class SysTime 22 | { 23 | public: 24 | SysTime(); 25 | float Get(); 26 | 27 | void ReadTimes(); 28 | 29 | private: 30 | uint64_t idle, used; 31 | }; 32 | 33 | } 34 | #endif 35 | 36 | #endif 37 | -------------------------------------------------------------------------------- /ThirdParty/tracy/public/client/TracySysTrace.hpp: -------------------------------------------------------------------------------- 1 | #ifndef __TRACYSYSTRACE_HPP__ 2 | #define __TRACYSYSTRACE_HPP__ 3 | 4 | #if !defined TRACY_NO_SYSTEM_TRACING && ( defined _WIN32 || defined __linux__ ) 5 | # include "../common/TracyUwp.hpp" 6 | # ifndef TRACY_UWP 7 | # define TRACY_HAS_SYSTEM_TRACING 8 | # endif 9 | #endif 10 | 11 | #ifdef TRACY_HAS_SYSTEM_TRACING 12 | 13 | #include 14 | 15 | namespace tracy 16 | { 17 | 18 | bool SysTraceStart( int64_t& samplingPeriod ); 19 | void SysTraceStop(); 20 | void SysTraceWorker( void* ptr ); 21 | 22 | void SysTraceGetExternalName( uint64_t thread, const char*& threadName, const char*& name ); 23 | 24 | } 25 | 26 | #endif 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /ThirdParty/tracy/public/common/TracyAlign.hpp: -------------------------------------------------------------------------------- 1 | #ifndef __TRACYALIGN_HPP__ 2 | #define __TRACYALIGN_HPP__ 3 | 4 | #include 5 | 6 | #include "TracyForceInline.hpp" 7 | 8 | namespace tracy 9 | { 10 | 11 | template 12 | tracy_force_inline T MemRead( const void* ptr ) 13 | { 14 | T val; 15 | memcpy( &val, ptr, sizeof( T ) ); 16 | return val; 17 | } 18 | 19 | template 20 | tracy_force_inline void MemWrite( void* ptr, T val ) 21 | { 22 | memcpy( ptr, &val, sizeof( T ) ); 23 | } 24 | 25 | } 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /ThirdParty/tracy/public/common/TracyApi.h: -------------------------------------------------------------------------------- 1 | #ifndef __TRACYAPI_H__ 2 | #define __TRACYAPI_H__ 3 | 4 | #if defined _WIN32 5 | # if defined TRACY_EXPORTS 6 | # define TRACY_API __declspec(dllexport) 7 | # elif defined TRACY_IMPORTS 8 | # define TRACY_API __declspec(dllimport) 9 | # else 10 | # define TRACY_API 11 | # endif 12 | #else 13 | # define TRACY_API __attribute__((visibility("default"))) 14 | #endif 15 | 16 | #endif // __TRACYAPI_H__ 17 | -------------------------------------------------------------------------------- /ThirdParty/tracy/public/common/TracyForceInline.hpp: -------------------------------------------------------------------------------- 1 | #ifndef __TRACYFORCEINLINE_HPP__ 2 | #define __TRACYFORCEINLINE_HPP__ 3 | 4 | #if defined(__GNUC__) 5 | # define tracy_force_inline __attribute__((always_inline)) inline 6 | #elif defined(_MSC_VER) 7 | # define tracy_force_inline __forceinline 8 | #else 9 | # define tracy_force_inline inline 10 | #endif 11 | 12 | #if defined(__GNUC__) 13 | # define tracy_no_inline __attribute__((noinline)) 14 | #elif defined(_MSC_VER) 15 | # define tracy_no_inline __declspec(noinline) 16 | #else 17 | # define tracy_no_inline 18 | #endif 19 | 20 | #endif 21 | -------------------------------------------------------------------------------- /ThirdParty/tracy/public/common/TracyMutex.hpp: -------------------------------------------------------------------------------- 1 | #ifndef __TRACYMUTEX_HPP__ 2 | #define __TRACYMUTEX_HPP__ 3 | 4 | #if defined _MSC_VER 5 | 6 | # include 7 | 8 | namespace tracy 9 | { 10 | using TracyMutex = std::shared_mutex; 11 | } 12 | 13 | #else 14 | 15 | #include 16 | 17 | namespace tracy 18 | { 19 | using TracyMutex = std::mutex; 20 | } 21 | 22 | #endif 23 | 24 | #endif 25 | -------------------------------------------------------------------------------- /ThirdParty/tracy/public/common/TracyStackFrames.hpp: -------------------------------------------------------------------------------- 1 | #ifndef __TRACYSTACKFRAMES_HPP__ 2 | #define __TRACYSTACKFRAMES_HPP__ 3 | 4 | #include 5 | 6 | namespace tracy 7 | { 8 | 9 | struct StringMatch 10 | { 11 | const char* str; 12 | size_t len; 13 | }; 14 | 15 | extern const char** s_tracyStackFrames; 16 | extern const StringMatch* s_tracySkipSubframes; 17 | 18 | static constexpr int s_tracySkipSubframesMinLen = 7; 19 | 20 | } 21 | 22 | #endif 23 | -------------------------------------------------------------------------------- /ThirdParty/tracy/public/common/TracySystem.hpp: -------------------------------------------------------------------------------- 1 | #ifndef __TRACYSYSTEM_HPP__ 2 | #define __TRACYSYSTEM_HPP__ 3 | 4 | #include 5 | 6 | #include "TracyApi.h" 7 | 8 | namespace tracy 9 | { 10 | 11 | namespace detail 12 | { 13 | TRACY_API uint32_t GetThreadHandleImpl(); 14 | } 15 | 16 | #ifdef TRACY_ENABLE 17 | TRACY_API uint32_t GetThreadHandle(); 18 | #else 19 | static inline uint32_t GetThreadHandle() 20 | { 21 | return detail::GetThreadHandleImpl(); 22 | } 23 | #endif 24 | 25 | TRACY_API void SetThreadName( const char* name ); 26 | TRACY_API const char* GetThreadName( uint32_t id ); 27 | 28 | TRACY_API const char* GetEnvVar(const char* name); 29 | 30 | } 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /ThirdParty/tracy/public/common/TracyUwp.hpp: -------------------------------------------------------------------------------- 1 | #ifndef __TRACYUWP_HPP__ 2 | #define __TRACYUWP_HPP__ 3 | 4 | #ifdef _WIN32 5 | # include 6 | # if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) && !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) 7 | # define TRACY_UWP 8 | # endif 9 | #endif 10 | 11 | #endif 12 | -------------------------------------------------------------------------------- /ThirdParty/tracy/public/common/TracyVersion.hpp: -------------------------------------------------------------------------------- 1 | #ifndef __TRACYVERSION_HPP__ 2 | #define __TRACYVERSION_HPP__ 3 | 4 | namespace tracy 5 | { 6 | namespace Version 7 | { 8 | enum { Major = 0 }; 9 | enum { Minor = 10 }; 10 | enum { Patch = 0 }; 11 | } 12 | } 13 | 14 | #endif 15 | -------------------------------------------------------------------------------- /ThirdParty/tracy/public/common/TracyYield.hpp: -------------------------------------------------------------------------------- 1 | #ifndef __TRACYYIELD_HPP__ 2 | #define __TRACYYIELD_HPP__ 3 | 4 | #if defined __SSE2__ || defined _M_AMD64 || (defined _M_IX86_FP && _M_IX86_FP == 2) 5 | # include 6 | #else 7 | # include 8 | #endif 9 | 10 | #include "TracyForceInline.hpp" 11 | 12 | namespace tracy 13 | { 14 | 15 | static tracy_force_inline void YieldThread() 16 | { 17 | #if defined __SSE2__ || defined _M_AMD64 || (defined _M_IX86_FP && _M_IX86_FP == 2) 18 | _mm_pause(); 19 | #elif defined __aarch64__ 20 | asm volatile( "isb" : : ); 21 | #else 22 | std::this_thread::yield(); 23 | #endif 24 | } 25 | 26 | } 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /ThirdParty/tracy/public/libbacktrace/config.h: -------------------------------------------------------------------------------- 1 | #include 2 | #if defined(__linux__) && !defined(__GLIBC__) && !defined(__WORDSIZE) 3 | // include __WORDSIZE headers for musl 4 | # include 5 | #endif 6 | #if __WORDSIZE == 64 7 | # define BACKTRACE_ELF_SIZE 64 8 | #else 9 | # define BACKTRACE_ELF_SIZE 32 10 | #endif 11 | 12 | #define HAVE_DLFCN_H 1 13 | #define HAVE_FCNTL 1 14 | #define HAVE_INTTYPES_H 1 15 | #define HAVE_LSTAT 1 16 | #define HAVE_READLINK 1 17 | #define HAVE_DL_ITERATE_PHDR 1 18 | #define HAVE_ATOMIC_FUNCTIONS 1 19 | #define HAVE_DECL_STRNLEN 1 20 | 21 | #ifdef __APPLE__ 22 | # define HAVE_MACH_O_DYLD_H 1 23 | #elif defined BSD 24 | # define HAVE_KERN_PROC 1 25 | # define HAVE_KERN_PROC_ARGS 1 26 | #endif 27 | -------------------------------------------------------------------------------- /Tools/changelog.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | import argparse 4 | import github 5 | import sys 6 | 7 | GITHUB_REPOSITORY = 'crymp-net/client-server' 8 | 9 | def parse_command_line() -> argparse.Namespace: 10 | parser = argparse.ArgumentParser(description='Changelog generator') 11 | parser.add_argument('--token', required=True, help='GitHub API Token') 12 | return parser.parse_args() 13 | 14 | def main() -> int: 15 | args = parse_command_line() 16 | gh = github.Github(auth=github.Auth.Token(args.token)) 17 | repo = gh.get_repo(GITHUB_REPOSITORY) 18 | main_branch = repo.default_branch 19 | latest_release_datetime = repo.get_latest_release().created_at 20 | print('### Resolved issues') 21 | for issue in repo.get_issues(state='closed'): 22 | if issue.state_reason == 'completed' and issue.closed_at > latest_release_datetime: 23 | user = f'[{issue.user.login}]({issue.user.html_url})' 24 | print(f'- [#{issue.number}]({issue.html_url}): {issue.title} ({user})') 25 | print() 26 | print('### Changes') 27 | for pull in repo.get_pulls(state='closed', base=main_branch): 28 | if pull.merged_at is not None and pull.merged_at > latest_release_datetime: 29 | user = f'[{pull.user.login}]({pull.user.html_url})' 30 | print(f'- [#{pull.number}]({pull.html_url}): {pull.title} ({user})') 31 | print() 32 | return 0 33 | 34 | if __name__ == '__main__': 35 | sys.exit(main()) 36 | -------------------------------------------------------------------------------- /config.h.in: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "version.h" 4 | 5 | #define CRYMP_BITS "@BUILD_BITS@-bit" 6 | 7 | // without ".exe" suffix 8 | #define CRYMP_CLIENT_EXE_NAME "@CRYMP_CLIENT_EXE@" 9 | #define CRYMP_SERVER_EXE_NAME "@CRYMP_SERVER_EXE@" 10 | 11 | #define CRYMP_COMPILER "@CMAKE_CXX_COMPILER_ID@ @CMAKE_CXX_COMPILER_VERSION@" 12 | #define CRYMP_BUILD_TYPE "@CMAKE_BUILD_TYPE@" 13 | 14 | #define CRYMP_INTERNAL_PAK_PATH "@CRYMP_INTERNAL_PAK_PATH@" 15 | 16 | #cmakedefine CRYMP_CONSOLE_APP 17 | #cmakedefine CRYMP_USE_MIMALLOC 18 | #cmakedefine CRYMP_DEBUG_ALLOCATOR_ENABLED 19 | #cmakedefine CRYMP_DEBUG_ALLOCATOR_VERBOSE 20 | #cmakedefine CRYMP_DEBUG_ALLOCATOR_OVERFLOW_INSTEAD_OF_UNDERFLOW 21 | #cmakedefine CRYMP_DEBUG_ALLOCATOR_CHECK_READS 22 | #cmakedefine CRYMP_TRACY_ENABLED 23 | -------------------------------------------------------------------------------- /masters.txt: -------------------------------------------------------------------------------- 1 | crymp.nullptr.one 2 | -------------------------------------------------------------------------------- /version.h.in: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #define CRYMP_VERSION @CRYMP_VERSION@ 4 | #define CRYMP_VERSION_STRING "@CRYMP_VERSION_STRING@" 5 | --------------------------------------------------------------------------------