├── src ├── game_sa │ ├── StdInc.h │ ├── StdInc.cpp │ ├── CRenderWareSA.cpp │ ├── game │ │ ├── RenderWare.h │ │ ├── CRemote.h │ │ ├── CRestart.h │ │ ├── CParticle.h │ │ ├── CCarGenerator.h │ │ ├── CParticleObject.h │ │ ├── CTheCarGenerators.h │ │ ├── CAnimBlendSequence.h │ │ ├── CFont.h │ │ ├── CTaskManagementSystem.h │ │ ├── CParticleSystemManager.h │ │ ├── CPopulation.h │ │ ├── CMonsterTruck.h │ │ ├── CText.h │ │ ├── CEvent.h │ │ ├── CBmx.h │ │ ├── CBoat.h │ │ ├── CPlane.h │ │ ├── CTrailer.h │ │ ├── CAnimBlendStaticAssociation.h │ │ ├── CQuadBike.h │ │ ├── CVehicleScanner.h │ │ ├── CBuilding.h │ │ ├── CRopes.h │ │ ├── CCivilianPed.h │ │ ├── CClock.h │ │ ├── CEventGroup.h │ │ ├── CPedDamageResponseCalculator.h │ │ ├── CVisibilityPlugins.h │ │ ├── CBike.h │ │ ├── CPedIK.h │ │ ├── CColModel.h │ │ ├── CPedModelInfo.h │ │ ├── CGarages.h │ │ ├── CMenuManager.h │ │ ├── CDoor.h │ │ ├── CProjectile.h │ │ ├── CEventGunShot.h │ │ ├── C3DMarkers.h │ │ ├── CWanted.h │ │ ├── CAnimBlendHierarchy.h │ │ ├── CCheckpoints.h │ │ ├── TaskJumpFall.h │ │ ├── CCarEnterExit.h │ │ ├── CPickups.h │ │ ├── CPedDamageResponse.h │ │ ├── CKeyGen.h │ │ ├── CFireManager.h │ │ ├── TaskSecondary.h │ │ ├── CPedIntelligence.h │ │ ├── CAnimBlock.h │ │ ├── CHandlingManager.h │ │ ├── CCoronas.h │ │ ├── CAERadioTrackManager.h │ │ ├── CPlayerPed.h │ │ ├── CCam.h │ │ ├── TaskPhysicalResponse.h │ │ ├── CStreaming.h │ │ ├── CWeapon.h │ │ ├── CPedSound.h │ │ ├── CAnimBlendAssociation.h │ │ ├── CExplosionManager.h │ │ ├── CRadar.h │ │ ├── TaskGoTo.h │ │ ├── CWeather.h │ │ ├── CObject.h │ │ ├── CWater.h │ │ ├── CEventList.h │ │ ├── CMarker.h │ │ ├── CGarage.h │ │ ├── CAudio.h │ │ ├── CRegisteredCorona.h │ │ ├── CFire.h │ │ ├── CAnimBlendAssocGroup.h │ │ ├── CProjectileInfo.h │ │ ├── TaskAttack.h │ │ ├── TaskCar.h │ │ ├── CColPoint.h │ │ ├── TaskIK.h │ │ ├── CPickup.h │ │ ├── CCheckpoint.h │ │ ├── TaskCarAccessories.h │ │ └── C3DMarker.h │ ├── gamesa_renderware.h │ ├── CRemoteSA.cpp │ ├── CRemoteSA.h │ ├── CParticleSA.cpp │ ├── CAnimBlendSequenceSA.cpp │ ├── CCarGeneratorSA.cpp │ ├── CParticleObjectSA.cpp │ ├── CPedIKSA.cpp │ ├── CPopulationSA.cpp │ ├── CParticleSystemManagerSA.cpp │ ├── CWeaponInfoSA.cpp │ ├── CColPointSA.cpp │ ├── CAnimBlockSA.cpp │ ├── CAnimBlendStaticAssociationSA.cpp │ ├── CAnimBlendHierarchySA.cpp │ ├── HeapTrace.h │ ├── TaskNamesSA.h │ ├── CAnimBlendAssociationSA.cpp │ ├── CFontSA.cpp │ ├── CPopulationSA.h │ ├── CParticleSystemManagerSA.h │ ├── CParticleSA.h │ ├── CRopesSA.h │ ├── CBmxSA.cpp │ ├── CVisibilityPluginsSA.cpp │ ├── CFontSA.h │ ├── CParticleObjectSA.h │ ├── CPedDamageResponseSA.cpp │ ├── CPedModelInfoSA.cpp │ ├── CClockSA.h │ ├── CRopesSA.cpp │ ├── CVisibilityPluginsSA.h │ ├── HookSystem.h │ ├── CPlaneSA.cpp │ ├── CTrailerSA.cpp │ ├── COffsets.h │ ├── CQuadBikeSA.cpp │ ├── CTextSA.h │ ├── CBmxSA.h │ ├── CEventGroupSA.cpp │ ├── CMonsterTruckSA.cpp │ ├── CBikeSA.h │ ├── CBoatSA.h │ ├── CEventGroupSA.h │ ├── CVehicleScannerSA.cpp │ ├── CMonsterTruckSA.h │ ├── CPlaneSA.h │ ├── CClockSA.cpp │ ├── CTrailerSA.h │ ├── CTheCarGeneratorsSA.h │ ├── CQuadBikeSA.h │ ├── CBuildingSA.h │ ├── CVehicleScannerSA.h │ ├── CKeyGenSA.h │ ├── Common.h │ ├── CCarEnterExitSA.h │ ├── CBoatSA.cpp │ ├── CGaragesSA.h │ ├── CBikeSA.cpp │ ├── CMenuManagerSA.cpp │ ├── CAnimBlendSequenceSA.h │ ├── C3DMarkersSA.h │ ├── CRect2D.h │ ├── CTheCarGeneratorsSA.cpp │ ├── CCamSA.cpp │ ├── CProjectileSA.h │ ├── CColModelSA.cpp │ ├── CAERadioTrackManagerSA.h │ ├── CEventGunShotSA.h │ ├── CPickupsSA.h │ ├── TaskSecondarySA.cpp │ ├── CCoronasSA.h │ ├── CStatsSA.h │ ├── CMenuManagerSA.h │ ├── CCheckpointsSA.h │ ├── CPedDamageResponseSA.h │ ├── CCivilianPedSA.h │ ├── CEventListSA.h │ ├── CStreamingSA.h │ ├── CColModelSA.h │ ├── CGaragesSA.cpp │ ├── CMatrix_Pad.h │ ├── CFireManagerSA.h │ ├── CAnimBlendStaticAssociationSA.h │ ├── HookSystem.cpp │ ├── CEventGunShotSA.cpp │ ├── CExplosionManagerSA.h │ ├── CTaskManagementSystemSA.h │ └── TaskPhysicalResponseSA.h ├── mod_sa.def ├── rsrc │ └── icon.ico ├── rsrc.rc ├── mod_sa_VS2012.sln ├── mod_sa_VS2013.sln ├── mod_sa_VS2015.sln ├── sparsehash │ ├── config.h.include │ └── windows │ │ └── google │ │ └── sparsehash │ │ └── sparseconfig.h ├── debug_classify.h ├── cheat_hookers.h ├── cheat_patches.cpp ├── stddefs.h ├── stdtypes.h ├── cheat_actor.h ├── cheat_samp.h └── CDirect3DData.h ├── _build ├── nsis │ ├── icon.ico │ ├── music.mod │ ├── bassmod.dll │ ├── dumplog.dll │ ├── dxwebsetup.exe │ ├── brandingurl.dll │ ├── nsisbassmod.nsh │ └── nsisbassmodmacros.nsh └── utilities │ ├── 7z.dll │ └── 7z.exe ├── bin ├── mod_sa │ ├── mod_sa.raw │ ├── needle.png │ └── speedo.png └── data │ ├── surface.two │ └── default.two └── README.md /src/game_sa/StdInc.h: -------------------------------------------------------------------------------- 1 | #include "main.h" 2 | -------------------------------------------------------------------------------- /src/game_sa/StdInc.cpp: -------------------------------------------------------------------------------- 1 | // StdInc.h 2 | #include 3 | 4 | -------------------------------------------------------------------------------- /src/mod_sa.def: -------------------------------------------------------------------------------- 1 | LIBRARY "d3d9" 2 | 3 | EXPORTS 4 | Direct3DCreate9 = sys_Direct3DCreate9 @1 5 | -------------------------------------------------------------------------------- /src/rsrc/icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pycckue-Bnepeg/mod_s0beit_sa/master/src/rsrc/icon.ico -------------------------------------------------------------------------------- /_build/nsis/icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pycckue-Bnepeg/mod_s0beit_sa/master/_build/nsis/icon.ico -------------------------------------------------------------------------------- /_build/nsis/music.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pycckue-Bnepeg/mod_s0beit_sa/master/_build/nsis/music.mod -------------------------------------------------------------------------------- /bin/mod_sa/mod_sa.raw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pycckue-Bnepeg/mod_s0beit_sa/master/bin/mod_sa/mod_sa.raw -------------------------------------------------------------------------------- /bin/mod_sa/needle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pycckue-Bnepeg/mod_s0beit_sa/master/bin/mod_sa/needle.png -------------------------------------------------------------------------------- /bin/mod_sa/speedo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pycckue-Bnepeg/mod_s0beit_sa/master/bin/mod_sa/speedo.png -------------------------------------------------------------------------------- /_build/nsis/bassmod.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pycckue-Bnepeg/mod_s0beit_sa/master/_build/nsis/bassmod.dll -------------------------------------------------------------------------------- /_build/nsis/dumplog.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pycckue-Bnepeg/mod_s0beit_sa/master/_build/nsis/dumplog.dll -------------------------------------------------------------------------------- /_build/utilities/7z.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pycckue-Bnepeg/mod_s0beit_sa/master/_build/utilities/7z.dll -------------------------------------------------------------------------------- /_build/utilities/7z.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pycckue-Bnepeg/mod_s0beit_sa/master/_build/utilities/7z.exe -------------------------------------------------------------------------------- /_build/nsis/dxwebsetup.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pycckue-Bnepeg/mod_s0beit_sa/master/_build/nsis/dxwebsetup.exe -------------------------------------------------------------------------------- /_build/nsis/brandingurl.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pycckue-Bnepeg/mod_s0beit_sa/master/_build/nsis/brandingurl.dll -------------------------------------------------------------------------------- /_build/nsis/nsisbassmod.nsh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pycckue-Bnepeg/mod_s0beit_sa/master/_build/nsis/nsisbassmod.nsh -------------------------------------------------------------------------------- /src/game_sa/CRenderWareSA.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pycckue-Bnepeg/mod_s0beit_sa/master/src/game_sa/CRenderWareSA.cpp -------------------------------------------------------------------------------- /src/game_sa/game/RenderWare.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pycckue-Bnepeg/mod_s0beit_sa/master/src/game_sa/game/RenderWare.h -------------------------------------------------------------------------------- /src/game_sa/gamesa_renderware.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pycckue-Bnepeg/mod_s0beit_sa/master/src/game_sa/gamesa_renderware.h -------------------------------------------------------------------------------- /_build/nsis/nsisbassmodmacros.nsh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pycckue-Bnepeg/mod_s0beit_sa/master/_build/nsis/nsisbassmodmacros.nsh -------------------------------------------------------------------------------- /src/rsrc.rc: -------------------------------------------------------------------------------- 1 | 1 VERSIONINFO 2 | FILEVERSION 4,4,1,3 3 | FILETYPE 0x00000001 4 | { 5 | BLOCK "StringFileInfo" 6 | { 7 | BLOCK "040904E4" 8 | { 9 | VALUE "FileDescription", "mod_sa" 10 | VALUE "CompanyName", "we_sux, BlastHack" 11 | } 12 | } 13 | BLOCK "VarFileInfo" 14 | { 15 | VALUE "Translation", 0x0409, 1252 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/game_sa/CRemoteSA.cpp: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CRemoteSA.cpp 6 | * PURPOSE: 7 | * DEVELOPERS: 8 | * 9 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 10 | * 11 | *****************************************************************************/ 12 | 13 | #include 14 | -------------------------------------------------------------------------------- /src/game_sa/CRemoteSA.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CRemoteSA.h 6 | * PURPOSE: 7 | * DEVELOPERS: 8 | * 9 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 10 | * 11 | *****************************************************************************/ 12 | 13 | #include -------------------------------------------------------------------------------- /src/game_sa/CParticleSA.cpp: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CParticleSA.cpp 6 | * PURPOSE: Particle entity 7 | * DEVELOPERS: 8 | * 9 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 10 | * 11 | *****************************************************************************/ 12 | 13 | #include 14 | -------------------------------------------------------------------------------- /src/game_sa/CAnimBlendSequenceSA.cpp: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CAnimBlendSequenceSA.cpp 6 | * PURPOSE: Animation blend sequence 7 | * DEVELOPERS: Jax <> 8 | * 9 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 10 | * 11 | *****************************************************************************/ 12 | 13 | #include 14 | -------------------------------------------------------------------------------- /src/game_sa/CCarGeneratorSA.cpp: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CCarEnterExitSA.cpp 6 | * PURPOSE: Car generator 7 | * DEVELOPERS: Ed Lyons 8 | * 9 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 10 | * 11 | *****************************************************************************/ 12 | 13 | #include 14 | -------------------------------------------------------------------------------- /src/game_sa/CParticleObjectSA.cpp: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CParticleObjectSA.cpp 6 | * PURPOSE: Particle object entity 7 | * DEVELOPERS: 8 | * 9 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 10 | * 11 | *****************************************************************************/ 12 | 13 | #include 14 | -------------------------------------------------------------------------------- /src/game_sa/CPedIKSA.cpp: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CPedIKSA.cpp 6 | * PURPOSE: Ped entity inverse kinematics for animations 7 | * DEVELOPERS: 8 | * 9 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 10 | * 11 | *****************************************************************************/ 12 | 13 | #include 14 | 15 | -------------------------------------------------------------------------------- /src/game_sa/CPopulationSA.cpp: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CPopulationSA.cpp 6 | * PURPOSE: Ped entity population manager 7 | * DEVELOPERS: 8 | * 9 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 10 | * 11 | *****************************************************************************/ 12 | 13 | #include 14 | 15 | 16 | -------------------------------------------------------------------------------- /src/game_sa/CParticleSystemManagerSA.cpp: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CParticleSystemManagerSA.cpp 6 | * PURPOSE: Particle system manager 7 | * DEVELOPERS: 8 | * 9 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 10 | * 11 | *****************************************************************************/ 12 | 13 | #include 14 | -------------------------------------------------------------------------------- /src/game_sa/game/CRemote.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CRemote.h 6 | * PURPOSE: Remote interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CGAME_CREMOTE 13 | #define __CGAME_CREMOTE 14 | 15 | class CRemote 16 | { 17 | 18 | }; 19 | 20 | #endif -------------------------------------------------------------------------------- /src/game_sa/game/CRestart.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CRestart.h 6 | * PURPOSE: Restart interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CGAME_RESTART 13 | #define __CGAME_RESTART 14 | 15 | class CRestart 16 | { 17 | 18 | }; 19 | 20 | #endif -------------------------------------------------------------------------------- /src/game_sa/CWeaponInfoSA.cpp: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CWeaponInfoSA.cpp 6 | * PURPOSE: Weapon type information 7 | * DEVELOPERS: Ed Lyons 8 | * Jax <> 9 | * 10 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 11 | * 12 | *****************************************************************************/ 13 | 14 | #include 15 | -------------------------------------------------------------------------------- /src/game_sa/game/CParticle.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CParticle.h 6 | * PURPOSE: Particle entity interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CGAME_PARTICLE 13 | #define __CGAME_PARTICLE 14 | 15 | class CParticle 16 | { 17 | 18 | }; 19 | 20 | #endif -------------------------------------------------------------------------------- /src/game_sa/game/CCarGenerator.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CCarGenerator.h 6 | * PURPOSE: Car entity generator interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CGAME_CARGENERATOR 13 | #define __CGAME_CARGENERATOR 14 | 15 | class CCarGenerator 16 | { 17 | 18 | }; 19 | 20 | #endif -------------------------------------------------------------------------------- /src/game_sa/game/CParticleObject.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CParticleObject.h 6 | * PURPOSE: Particle object entity interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CGAME_PARTICLEOBJECT 13 | #define __CGAME_PARTICLEOBJECT 14 | 15 | class CParticleObject 16 | { 17 | 18 | }; 19 | 20 | #endif -------------------------------------------------------------------------------- /src/game_sa/game/CTheCarGenerators.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CTheCarGenerators.h 6 | * PURPOSE: Car generator interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CGAME_THECARGENERATORS 13 | #define __CGAME_THECARGENERATORS 14 | 15 | class CTheCarGenerators 16 | { 17 | 18 | }; 19 | 20 | #endif -------------------------------------------------------------------------------- /bin/data/surface.two: -------------------------------------------------------------------------------- 1 | ; Title : Surface.dat 2 | ; Author : Richard Jobling 3 | ; Date : 14/02/00 4 | ; 5 | ; Currently WheelBase is the surface used for the tyres 6 | ; 7 | ; Rubber Hard Road Loose Sand Wet 8 | ; 9 | Rubber 8.0 10 | Hard 8.0 8.0 11 | Road 8.0 8.0 8.0 12 | Loose 8.0 8.0 8.0 8.0 13 | Sand 8.0 8.0 8.0 8.0 8.0 14 | Wet 8.0 8.0 8.0 8.0 8.0 8.0 15 | -------------------------------------------------------------------------------- /src/game_sa/CColPointSA.cpp: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CColPointSA.cpp 6 | * PURPOSE: Collision point 7 | * DEVELOPERS: Ed Lyons 8 | * 9 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 10 | * 11 | *****************************************************************************/ 12 | 13 | #include 14 | 15 | CColPointSA::CColPointSA() 16 | { 17 | this->internalInterface = new CColPointSAInterface(); 18 | }; -------------------------------------------------------------------------------- /src/game_sa/game/CAnimBlendSequence.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CAnimBlendSequence.h 6 | * PURPOSE: Animation blend sequence interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CAnimBlendSequence_H 13 | #define __CAnimBlendSequence_H 14 | 15 | class CAnimBlendSequence 16 | { 17 | public: 18 | }; 19 | 20 | #endif -------------------------------------------------------------------------------- /src/game_sa/game/CFont.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CFont.h 6 | * PURPOSE: Game font interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CGAME_FONT 13 | #define __CGAME_FONT 14 | 15 | class CFont 16 | { 17 | public: 18 | virtual void PrintString ( float fX, float fY, char * szString )=0; 19 | }; 20 | 21 | #endif -------------------------------------------------------------------------------- /src/game_sa/CAnimBlockSA.cpp: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CAnimBlockSA.cpp 6 | * PURPOSE: Animation block 7 | * DEVELOPERS: Jax <> 8 | * 9 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 10 | * 11 | *****************************************************************************/ 12 | 13 | #include 14 | 15 | int CAnimBlockSAInterface::GetIndex ( void ) 16 | { 17 | return ( ( ( DWORD ) this - ARRAY_CAnimManager_AnimBlocks ) / 32 ); 18 | } -------------------------------------------------------------------------------- /src/game_sa/game/CTaskManagementSystem.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CTaskManagementSystem.h 6 | * PURPOSE: Task management system interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CGAME_TASKMANAGEMENTSYSTEM 13 | #define __CGAME_TASKMANAGEMENTSYSTEM 14 | 15 | class CTaskManagementSystem 16 | { 17 | 18 | }; 19 | 20 | #endif -------------------------------------------------------------------------------- /src/game_sa/game/CParticleSystemManager.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CParticleSystemManager.h 6 | * PURPOSE: Particle system manager interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CGAME_PARTICLESYSTEMMANAGER 13 | #define __CGAME_PARTICLESYSTEMMANAGER 14 | 15 | class CParticleSystemManager 16 | { 17 | 18 | }; 19 | 20 | #endif -------------------------------------------------------------------------------- /src/game_sa/game/CPopulation.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CPopulatio.h 6 | * PURPOSE: Ped population interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CGAME_POPULATION 13 | #define __CGAME_POPULATION 14 | 15 | #include 16 | #include "CPed.h" 17 | 18 | class CPopulation 19 | { 20 | public: 21 | 22 | }; 23 | 24 | #endif -------------------------------------------------------------------------------- /src/game_sa/game/CMonsterTruck.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CMonsterTruck.h 6 | * PURPOSE: Monster truck vehicle entity interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CGAME_MONSTERTRUCK 13 | #define __CGAME_MONSTERTRUCK 14 | 15 | #include "CVehicle.h" 16 | 17 | class CMonsterTruck : public CVehicle 18 | { 19 | 20 | }; 21 | 22 | #endif -------------------------------------------------------------------------------- /src/game_sa/game/CText.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CText.h 6 | * PURPOSE: Game text interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CGAME_TEXT 13 | #define __CGAME_TEXT 14 | 15 | class CText 16 | { 17 | public: 18 | virtual char * GetText(char * szKey)=0; 19 | virtual void SetText(char * szKey, char * szValue)=0; 20 | }; 21 | 22 | #endif -------------------------------------------------------------------------------- /src/game_sa/CAnimBlendStaticAssociationSA.cpp: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CAnimBlendStaticAssociationSA.cpp 6 | * PURPOSE: Animation blend static association 7 | * DEVELOPERS: Jax <> 8 | * 9 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 10 | * 11 | *****************************************************************************/ 12 | 13 | #include 14 | 15 | CAnimBlendHierarchy * CAnimBlendStaticAssociationSA::GetAnimHierachy ( void ) 16 | { 17 | return NULL; 18 | } -------------------------------------------------------------------------------- /src/game_sa/CAnimBlendHierarchySA.cpp: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CAnimBlendHierarchySA.cpp 6 | * PURPOSE: Animation blend hierarchy 7 | * DEVELOPERS: Jax <> 8 | * 9 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 10 | * 11 | *****************************************************************************/ 12 | 13 | #include 14 | 15 | int CAnimBlendHierarchySAInterface::GetIndex ( void ) 16 | { 17 | return ( ( ( DWORD ) this - ARRAY_CAnimManager_Animations ) / 24 ); 18 | } -------------------------------------------------------------------------------- /src/game_sa/game/CEvent.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CEvent.h 6 | * PURPOSE: Game event interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CGAME_EVENT 13 | #define __CGAME_EVENT 14 | 15 | class CEventSAInterface; 16 | 17 | class CEvent 18 | { 19 | public: 20 | virtual CEventSAInterface * GetInterface ( void ) = 0; 21 | }; 22 | 23 | #endif -------------------------------------------------------------------------------- /src/game_sa/game/CBmx.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CBmx.h 6 | * PURPOSE: BMX vehicle entity interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CGAME_BMX 13 | #define __CGAME_BMX 14 | 15 | #include "CVehicle.h" 16 | 17 | class CBmx : public virtual CVehicle 18 | { 19 | public: 20 | virtual ~CBmx ( void ) {}; 21 | }; 22 | 23 | #endif -------------------------------------------------------------------------------- /src/game_sa/game/CBoat.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CBoat.h 6 | * PURPOSE: Boat vehicle interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CGAME_BOAT 13 | #define __CGAME_BOAT 14 | 15 | #include "CVehicle.h" 16 | 17 | class CBoat : public virtual CVehicle 18 | { 19 | public: 20 | virtual ~CBoat ( void ) {}; 21 | }; 22 | 23 | #endif -------------------------------------------------------------------------------- /src/game_sa/game/CPlane.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CPlane.h 6 | * PURPOSE: Plane vehicle entity interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CGAME_PLANE 13 | #define __CGAME_PLANE 14 | 15 | #include "CVehicle.h" 16 | 17 | class CPlane : public virtual CVehicle 18 | { 19 | public: 20 | virtual ~CPlane ( void ) {}; 21 | }; 22 | 23 | #endif -------------------------------------------------------------------------------- /src/game_sa/game/CTrailer.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CTrailer.h 6 | * PURPOSE: Vehicle trailer interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CGAME_TRAILER 13 | #define __CGAME_TRAILER 14 | 15 | #include "CVehicle.h" 16 | 17 | class CTrailer : public virtual CVehicle 18 | { 19 | virtual ~CTrailer ( void ) {}; 20 | }; 21 | 22 | #endif -------------------------------------------------------------------------------- /src/game_sa/game/CAnimBlendStaticAssociation.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CAnimBlendStaticAssocation.h 6 | * PURPOSE: Animation blend static association interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CAnimBlendStaticAssociation_H 13 | #define __CAnimBlendStaticAssociation_H 14 | 15 | class CAnimBlendStaticAssociation 16 | { 17 | public: 18 | }; 19 | 20 | #endif -------------------------------------------------------------------------------- /src/game_sa/game/CQuadBike.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CQuadBike.h 6 | * PURPOSE: Quad bike vehicle entity interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CGAME_QUADBIKE 13 | #define __CGAME_QUADBIKE 14 | 15 | #include "CVehicle.h" 16 | 17 | class CQuadBike : public virtual CVehicle 18 | { 19 | virtual ~CQuadBike ( void ) {}; 20 | }; 21 | 22 | #endif -------------------------------------------------------------------------------- /src/game_sa/game/CVehicleScanner.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CVehicleScanner.h 6 | * PURPOSE: Vehicle scanner interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CGAME_VEHICLESCANNER 13 | #define __CGAME_VEHICLESCANNER 14 | 15 | class CVehicle; 16 | 17 | class CVehicleScanner 18 | { 19 | public: 20 | virtual CVehicle * GetClosestVehicleInRange ()=0; 21 | }; 22 | 23 | #endif -------------------------------------------------------------------------------- /src/game_sa/HeapTrace.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/HeapTrace.h 6 | * PURPOSE: Heap trace handler 7 | * DEVELOPERS: Ed Lyons 8 | * 9 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 10 | * 11 | *****************************************************************************/ 12 | 13 | #ifndef __HEAPTRACE_H 14 | #define __HEAPTRACE_H 15 | 16 | void AddTrack ( void* pAddress, size_t size, const char* szFile, int iLine ); 17 | void RemoveTrack ( void* pAddress ); 18 | void DumpUnfreed ( void ); 19 | 20 | #endif 21 | -------------------------------------------------------------------------------- /src/game_sa/game/CBuilding.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CBuilding.h 6 | * PURPOSE: Building entity interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CGAME_BUILDING 13 | #define __CGAME_BUILDING 14 | 15 | #include "CEntity.h" 16 | 17 | class CBuilding : public virtual CEntity 18 | { 19 | public: 20 | virtual ~CBuilding ( void ) {}; 21 | }; 22 | 23 | #endif -------------------------------------------------------------------------------- /src/game_sa/game/CRopes.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CRopes.h 6 | * PURPOSE: Rope entity interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CRopes_H 13 | #define __CRopes_H 14 | 15 | typedef unsigned long DWORD; 16 | class CVector; 17 | 18 | class CRopes 19 | { 20 | public: 21 | virtual int CreateRopeForSwatPed ( const CVector & vecPosition ) = 0; 22 | }; 23 | 24 | #endif -------------------------------------------------------------------------------- /src/game_sa/game/CCivilianPed.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CCivilianPed.h 6 | * PURPOSE: Civilian ped entity interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CGAME_CIVILIANPED 13 | #define __CGAME_CIVILIANPED 14 | 15 | #include "CPed.h" 16 | 17 | class CCivilianPed : public virtual CPed 18 | { 19 | public: 20 | virtual ~CCivilianPed ( void ) {}; 21 | }; 22 | 23 | #endif -------------------------------------------------------------------------------- /src/game_sa/game/CClock.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CClock.h 6 | * PURPOSE: Game clock interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CGAME_CLOCK 13 | #define __CGAME_CLOCK 14 | 15 | #include 16 | 17 | class CClock 18 | { 19 | public: 20 | virtual VOID Set ( BYTE bHour, BYTE bMinute )=0; 21 | virtual VOID Get ( BYTE * bHour, BYTE * bMinute )=0; 22 | }; 23 | 24 | #endif -------------------------------------------------------------------------------- /src/game_sa/game/CEventGroup.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CEvent.h 6 | * PURPOSE: Game event interface 7 | * DEVELOPERS: Jax <> 8 | * 9 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 10 | * 11 | *****************************************************************************/ 12 | 13 | #ifndef __CGAME_EVENTGROUP 14 | #define __CGAME_EVENTGROUP 15 | 16 | class CEventGroup 17 | { 18 | public: 19 | virtual CEvent * Add ( CEvent * pEvent, bool b_1 ) = 0; 20 | }; 21 | 22 | #endif -------------------------------------------------------------------------------- /src/game_sa/game/CPedDamageResponseCalculator.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CPedDamageResponseCalculator.h 6 | * PURPOSE: ped damage response calculator interface 7 | * DEVELOPERS: Jax <> 8 | * 9 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 10 | * 11 | *****************************************************************************/ 12 | 13 | #ifndef __CGAME_PEDDAMAGERESPONSECALCULATOR 14 | #define __CGAME_PEDDAMAGERESPONSECALCULATOR 15 | 16 | class CPedDamageResponseCalculator 17 | { 18 | public: 19 | }; 20 | 21 | #endif -------------------------------------------------------------------------------- /src/game_sa/TaskNamesSA.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/TaskNamesSA.h 6 | * PURPOSE: Static task name definitions 7 | * DEVELOPERS: Christian Myhre Lundheim <> 8 | * 9 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 10 | * 11 | *****************************************************************************/ 12 | 13 | #ifndef __CGAMESA_TASKNAMES 14 | #define __CGAMESA_TASKNAMES 15 | 16 | struct sTaskName 17 | { 18 | char szName[100]; 19 | }; 20 | 21 | extern char sNoTaskName [100]; 22 | 23 | extern sTaskName TaskNames [1802]; 24 | #endif 25 | -------------------------------------------------------------------------------- /src/game_sa/game/CVisibilityPlugins.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CVisibilityPlugins.h 6 | * PURPOSE: Visibility plugins interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CVisibilityPlugins_H 13 | #define __CVisibilityPlugins_H 14 | 15 | struct RpClump; 16 | 17 | class CVisibilityPlugins 18 | { 19 | public: 20 | virtual void SetClumpAlpha ( RpClump * pClump, int iAlpha ) = 0; 21 | }; 22 | 23 | #endif -------------------------------------------------------------------------------- /src/game_sa/game/CBike.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CBike.h 6 | * PURPOSE: Bike vehicle entity interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CGAME_BIKE 13 | #define __CGAME_BIKE 14 | 15 | #include "CVehicle.h" 16 | 17 | class CBike : public virtual CVehicle 18 | { 19 | public: 20 | virtual ~CBike ( void ) {}; 21 | 22 | //virtual void PlaceOnRoadProperly ( void )=0; 23 | 24 | }; 25 | 26 | #endif -------------------------------------------------------------------------------- /src/game_sa/game/CPedIK.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CPedIK.h 6 | * PURPOSE: Ped inverse kinematics interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CGAME_PEDIK 13 | #define __CGAME_PEDIK 14 | 15 | #include 16 | #include 17 | 18 | class CPedIK 19 | { 20 | virtual void SetFlag(DWORD flag)=0; 21 | virtual void ClearFlag(DWORD flag)=0; 22 | virtual bool IsFlagSet(DWORD flag)=0; 23 | }; 24 | 25 | #endif -------------------------------------------------------------------------------- /src/game_sa/CAnimBlendAssociationSA.cpp: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CAnimBlendAssociationSA.cpp 6 | * PURPOSE: Animation blend association 7 | * DEVELOPERS: Jax <> 8 | * 9 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 10 | * 11 | *****************************************************************************/ 12 | 13 | #include 14 | 15 | extern CGameSA * pGame; 16 | 17 | CAnimBlendHierarchy * CAnimBlendAssociationSA::GetAnimHierarchy ( void ) 18 | { 19 | return pGame->GetAnimManager ()->GetAnimBlendHierarchy ( m_pInterface->pAnimHierarchy ); 20 | } -------------------------------------------------------------------------------- /src/game_sa/CFontSA.cpp: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CFontSA.cpp 6 | * PURPOSE: Font handling and printing 7 | * DEVELOPERS: Ed Lyons 8 | * 9 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 10 | * 11 | *****************************************************************************/ 12 | 13 | #include 14 | 15 | void CFontSA::PrintString ( float fX, float fY, char * szString ) 16 | { 17 | DWORD dwFunc = FUNC_PrintString; 18 | _asm 19 | { 20 | push szString 21 | push fY 22 | push fX 23 | call dwFunc 24 | add esp, 12 25 | } 26 | } -------------------------------------------------------------------------------- /src/game_sa/CPopulationSA.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CPopulationSA.h 6 | * PURPOSE: Header file for ped entity population manager class 7 | * DEVELOPERS: 8 | * 9 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 10 | * 11 | *****************************************************************************/ 12 | 13 | #ifndef __CGAMESA_POPULATION 14 | #define __CGAMESA_POPULATION 15 | 16 | #include 17 | #include "CPedSA.h" 18 | 19 | #include 20 | 21 | class CPopulationSA : public CPopulation 22 | { 23 | 24 | }; 25 | 26 | #endif -------------------------------------------------------------------------------- /src/game_sa/game/CColModel.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CColModel.h 6 | * PURPOSE: Collision model entity interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CGAME_COLMODEL 13 | #define __CGAME_COLMODEL 14 | 15 | class CColModelSAInterface; 16 | 17 | class CColModel 18 | { 19 | public: 20 | virtual CColModelSAInterface * GetInterface ( void ) = 0; 21 | virtual void Destroy ( void ) = 0; 22 | }; 23 | 24 | #endif -------------------------------------------------------------------------------- /src/mod_sa_VS2012.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 2012 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_sa", "mod_sa_VS2012.vcxproj", "{02EB97D5-B1C5-411E-8274-83A95985DE6F}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Release|Win32 = Release|Win32 9 | EndGlobalSection 10 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 11 | {02EB97D5-B1C5-411E-8274-83A95985DE6F}.Release|Win32.ActiveCfg = Release|Win32 12 | {02EB97D5-B1C5-411E-8274-83A95985DE6F}.Release|Win32.Build.0 = Release|Win32 13 | EndGlobalSection 14 | GlobalSection(SolutionProperties) = preSolution 15 | HideSolutionNode = FALSE 16 | EndGlobalSection 17 | EndGlobal 18 | -------------------------------------------------------------------------------- /src/mod_sa_VS2013.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 2013 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_sa", "mod_sa_VS2013.vcxproj", "{02EB97D5-B1C5-411E-8274-83A95985DE6F}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Release|Win32 = Release|Win32 9 | EndGlobalSection 10 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 11 | {02EB97D5-B1C5-411E-8274-83A95985DE6F}.Release|Win32.ActiveCfg = Release|Win32 12 | {02EB97D5-B1C5-411E-8274-83A95985DE6F}.Release|Win32.Build.0 = Release|Win32 13 | EndGlobalSection 14 | GlobalSection(SolutionProperties) = preSolution 15 | HideSolutionNode = FALSE 16 | EndGlobalSection 17 | EndGlobal 18 | -------------------------------------------------------------------------------- /src/mod_sa_VS2015.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 14.00 3 | # Visual Studio 2015 4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_sa", "mod_sa_VS2015.vcxproj", "{02EB97D5-B1C5-411E-8274-83A95985DE6F}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Release|Win32 = Release|Win32 9 | EndGlobalSection 10 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 11 | {02EB97D5-B1C5-411E-8274-83A95985DE6F}.Release|Win32.ActiveCfg = Release|Win32 12 | {02EB97D5-B1C5-411E-8274-83A95985DE6F}.Release|Win32.Build.0 = Release|Win32 13 | EndGlobalSection 14 | GlobalSection(SolutionProperties) = preSolution 15 | HideSolutionNode = FALSE 16 | EndGlobalSection 17 | EndGlobal 18 | -------------------------------------------------------------------------------- /src/sparsehash/config.h.include: -------------------------------------------------------------------------------- 1 | /*** 2 | *** These are #defines that autoheader puts in config.h.in that we 3 | *** want to show up in sparseconfig.h, the minimal config.h file 4 | *** #included by all our .h files. The reason we don't take 5 | *** everything that autoheader emits is that we have to include a 6 | *** config.h in installed header files, and we want to minimize the 7 | *** number of #defines we make so as to not pollute the namespace. 8 | ***/ 9 | GOOGLE_NAMESPACE 10 | HASH_NAMESPACE 11 | HASH_FUN_H 12 | SPARSEHASH_HASH 13 | HAVE_UINT16_T 14 | HAVE_U_INT16_T 15 | HAVE___UINT16 16 | HAVE_LONG_LONG 17 | HAVE_SYS_TYPES_H 18 | HAVE_STDINT_H 19 | HAVE_INTTYPES_H 20 | HAVE_MEMCPY 21 | STL_NAMESPACE 22 | _END_GOOGLE_NAMESPACE_ 23 | _START_GOOGLE_NAMESPACE_ 24 | -------------------------------------------------------------------------------- /src/game_sa/game/CPedModelInfo.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CPedModelInfo.h 6 | * PURPOSE: Ped model information interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CPedModelInfo_H 13 | #define __CPedModelInfo_H 14 | 15 | #include "CModelInfo.h" 16 | 17 | typedef unsigned long AssocGroupId; 18 | 19 | class CPedModelInfo : public CModelInfo 20 | { 21 | public: 22 | virtual void SetMotionAnimGroup ( AssocGroupId animGroup ) = 0; 23 | }; 24 | 25 | #endif -------------------------------------------------------------------------------- /src/game_sa/CParticleSystemManagerSA.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CParticleSystemManagerSA.h 6 | * PURPOSE: Header file for particle system manager class 7 | * DEVELOPERS: 8 | * 9 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 10 | * 11 | *****************************************************************************/ 12 | 13 | #ifndef __CGAMESA_PARTICLESYSTEMMANAGER 14 | #define __CGAMESA_PARTICLESYSTEMMANAGER 15 | 16 | #include 17 | 18 | class CParticleSystemManagerSA : public CParticleSystemManager 19 | { 20 | 21 | }; 22 | 23 | #endif -------------------------------------------------------------------------------- /bin/data/default.two: -------------------------------------------------------------------------------- 1 | # 2 | # Load IDEs first, then the models and after that the IPLs 3 | # 4 | 5 | # everything is loaded on a per directory basis and in alphabetical order 6 | # to improve the speed of loading 7 | IMG SAMP\CUSTOM.IMG 8 | IMG SAMP\SAMP.IMG 9 | IMG MODELS\GTA3.IMG 10 | IMG MODELS\GTA_INT.IMG 11 | 12 | # 13 | # Object types 14 | # 15 | IDE DATA\DEFAULT.IDE 16 | IDE DATA\VEHICLES.two 17 | IDE DATA\PEDS.IDE 18 | 19 | # 20 | # Standard objects 21 | # 22 | # texture dictionaries 23 | #TEXDICTION MODELS\GENERIC\WHEELS.TXD 24 | #TEXDICTION MODELS\GENERIC.TXD 25 | 26 | # model data 27 | #MODELFILE MODELS\GENERIC\AIR_VLO.DFF 28 | #MODELFILE MODELS\GENERIC\WHEELS.DFF 29 | # 30 | 31 | #collision data 32 | #COLFILE 0 MODELS\COLL\VEHICLES.COL 33 | COLFILE 0 MODELS\COLL\WEAPONS.COL 34 | -------------------------------------------------------------------------------- /src/game_sa/game/CGarages.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CGarages.h 6 | * PURPOSE: Garage manager interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CGAME_GARAGES 13 | #define __CGAME_GARAGES 14 | 15 | #include "CGarage.h" 16 | #include "Common.h" 17 | 18 | #define MAX_GARAGES 50 19 | 20 | class CGarages 21 | { 22 | public: 23 | virtual CGarage* GetGarage ( DWORD dwID ) = 0; 24 | virtual void Initialize ( ) = 0; 25 | }; 26 | 27 | #endif -------------------------------------------------------------------------------- /src/game_sa/CParticleSA.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CParticleSA.h 6 | * PURPOSE: Header file for particle entity class 7 | * DEVELOPERS: 8 | * 9 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 10 | * 11 | *****************************************************************************/ 12 | 13 | #ifndef __CGAMESA_PARTICLE 14 | #define __CGAMESA_PARTICLE 15 | 16 | #include 17 | 18 | class CParticleSAInterface 19 | { 20 | 21 | }; 22 | 23 | class CParticleSA : public CParticle 24 | { 25 | private: 26 | CParticleSAInterface * internalInterface; 27 | public: 28 | }; 29 | 30 | #endif -------------------------------------------------------------------------------- /src/game_sa/game/CMenuManager.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CMenuManager.h 6 | * PURPOSE: Menu manager interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CGAME_MENUMANAGER 13 | #define __CGAME_MENUMANAGER 14 | 15 | #include 16 | 17 | class CMenuManager 18 | { 19 | public: 20 | virtual BYTE GetCurrentScreen()=0; 21 | virtual BYTE GetPreviousScreen()=0; 22 | virtual void SwitchToNewScreen(BYTE ScreenID)=0; 23 | virtual void DisplayHelpText ( char * szHelpText )=0; 24 | }; 25 | 26 | #endif -------------------------------------------------------------------------------- /src/game_sa/CRopesSA.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CRopesSA.h 6 | * PURPOSE: Header file for rope entity class 7 | * DEVELOPERS: Ed Lyons 8 | * 9 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 10 | * 11 | *****************************************************************************/ 12 | 13 | #ifndef __CRopesSA_H 14 | #define __CRopesSA_H 15 | 16 | #include 17 | 18 | #define FUNC_CRopes_CreateRopeForSwatPed 0x558d10 19 | 20 | class CRopesSA : public CRopes 21 | { 22 | public: 23 | int CreateRopeForSwatPed ( const CVector & vecPosition ); 24 | }; 25 | 26 | #endif -------------------------------------------------------------------------------- /src/game_sa/game/CDoor.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CDoor.h 6 | * PURPOSE: Door entity interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CGAME_DOOR 13 | #define __CGAME_DOOR 14 | 15 | #include 16 | 17 | #include "Common.h" 18 | 19 | class CDoor 20 | { 21 | public: 22 | virtual FLOAT GetAngleOpenRatio ( )=0; 23 | virtual BOOL IsClosed ( )=0; 24 | virtual BOOL IsFullyOpen ( )=0; 25 | virtual VOID Open ( float fUnknown )=0; 26 | virtual eDoorState GetDoorState()=0; 27 | }; 28 | 29 | #endif -------------------------------------------------------------------------------- /src/game_sa/CBmxSA.cpp: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CBmxSA.cpp 6 | * PURPOSE: Bmx bike vehicle entity 7 | * DEVELOPERS: Ed Lyons 8 | * 9 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 10 | * 11 | *****************************************************************************/ 12 | 13 | #include 14 | 15 | CBmxSA::CBmxSA( CBmxSAInterface * bmx ) 16 | { 17 | DEBUG_TRACE("CBmxSA::CBmxSA( CBmxSAInterface * bmx )"); 18 | this->m_pInterface = bmx; 19 | } 20 | 21 | CBmxSA::CBmxSA( eVehicleTypes dwModelID ):CBikeSA( dwModelID ) 22 | { 23 | DEBUG_TRACE("CBmxSA::CBmxSA( eVehicleTypes dwModelID ):CBikeSA( dwModelID )"); 24 | } -------------------------------------------------------------------------------- /src/game_sa/CVisibilityPluginsSA.cpp: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CVisibilityPluginsSA.cpp 6 | * PURPOSE: RenderWare entity visibility plugin 7 | * DEVELOPERS: Jax <> 8 | * 9 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 10 | * 11 | *****************************************************************************/ 12 | 13 | #include 14 | 15 | void CVisibilityPluginsSA::SetClumpAlpha ( RpClump * pClump, int iAlpha ) 16 | { 17 | DWORD dwFunc = FUNC_CVisiblityPlugins_SetClumpAlpha; 18 | _asm 19 | { 20 | push iAlpha 21 | push pClump 22 | call dwFunc 23 | add esp, 0x8 24 | } 25 | } -------------------------------------------------------------------------------- /src/game_sa/game/CProjectile.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CProjectile.h 6 | * PURPOSE: Projectile entity interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CGAME_PROJECTILE 13 | #define __CGAME_PROJECTILE 14 | 15 | #include "CObject.h" 16 | 17 | class CProjectile: public virtual CObject 18 | { 19 | public: 20 | virtual ~CProjectile ( void ) {}; 21 | 22 | virtual void Destroy()=0; 23 | virtual void SetProjectileInfo ( class CProjectileInfo* pProjectileInfo )=0; 24 | }; 25 | 26 | #endif -------------------------------------------------------------------------------- /src/game_sa/game/CEventGunShot.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CEventGunShot.h 6 | * PURPOSE: Event gunshot interface 7 | * DEVELOPERS: Jax <> 8 | * 9 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 10 | * 11 | *****************************************************************************/ 12 | 13 | #ifndef __CEventGunShot_H 14 | #define __CEventGunShot_H 15 | 16 | class CEventGunShotSAInterface; 17 | 18 | class CEventGunShot 19 | { 20 | public: 21 | virtual CEventGunShotSAInterface * GetInterface ( void ) = 0; 22 | 23 | virtual void Destroy ( bool bDestroyInterface ) = 0; 24 | }; 25 | 26 | #endif -------------------------------------------------------------------------------- /src/game_sa/CFontSA.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CFontSA.h 6 | * PURPOSE: Header file for font handling and printing class 7 | * DEVELOPERS: Ed Lyons 8 | * 9 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 10 | * 11 | *****************************************************************************/ 12 | 13 | #ifndef __CGAMESA_FONT 14 | #define __CGAMESA_FONT 15 | 16 | #include 17 | #define WIN32_LEAN_AND_MEAN 18 | #include 19 | 20 | #define FUNC_PrintString 0x71A700 21 | 22 | class CFontSA : public CFont 23 | { 24 | public: 25 | void PrintString ( float fX, float fY, char * szString ); 26 | 27 | }; 28 | 29 | #endif -------------------------------------------------------------------------------- /src/game_sa/game/C3DMarkers.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/C3DMarkers.h 6 | * PURPOSE: 3D marker manager interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CGAME_3DMARKERS 13 | #define __CGAME_3DMARKERS 14 | 15 | #include 16 | #include "C3DMarker.h" 17 | 18 | class C3DMarkers 19 | { 20 | public: 21 | virtual C3DMarker * CreateMarker(DWORD Identifier, e3DMarkerType dwType, CVector * vecPosition, FLOAT fSize, FLOAT fPulseFraction, BYTE r, BYTE g, BYTE b, BYTE a )=0; 22 | virtual C3DMarker * FindFreeMarker()=0; 23 | }; 24 | 25 | #endif -------------------------------------------------------------------------------- /src/game_sa/game/CWanted.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CWanted.h 6 | * PURPOSE: Wanted level interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CGAME_WANTED 13 | #define __CGAME_WANTED 14 | 15 | #include 16 | 17 | class CWanted 18 | { 19 | public: 20 | virtual void SetMaximumWantedLevel ( DWORD dwWantedLevel )=0; 21 | virtual void SetWantedLevel ( DWORD dwWantedLevel )=0; 22 | virtual char GetWantedLevel ( void )=0; 23 | virtual void SetWantedLevelNoDrop ( DWORD dwWantedLevel )=0; 24 | }; 25 | 26 | #endif -------------------------------------------------------------------------------- /src/game_sa/game/CAnimBlendHierarchy.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CAnimBlendHierarchy.h 6 | * PURPOSE: Animation blend hierarchy interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CAnimBlendHierarchy_H 13 | #define __CAnimBlendHierarchy_H 14 | 15 | class CAnimBlendHierarchySAInterface; 16 | 17 | class CAnimBlendHierarchy 18 | { 19 | public: 20 | virtual CAnimBlendHierarchySAInterface * GetInterface ( void ) = 0; 21 | virtual int GetAnimBlockID ( void ) = 0; 22 | }; 23 | 24 | #endif -------------------------------------------------------------------------------- /src/game_sa/game/CCheckpoints.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CCheckpoints.h 6 | * PURPOSE: Checkpoint entity manager interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CGAME_CHECKPOINTS 13 | #define __CGAME_CHECKPOINTS 14 | 15 | #include 16 | #include "CCheckpoint.h" 17 | 18 | class CCheckpoints 19 | { 20 | public: 21 | virtual CCheckpoint * CreateCheckpoint(DWORD Identifier, WORD wType, CVector * vecPosition, CVector * vecPointDir, FLOAT fSize, FLOAT fPulseFraction, RGBA Color)=0; 22 | virtual CCheckpoint * FindFreeMarker()=0; 23 | }; 24 | 25 | #endif -------------------------------------------------------------------------------- /src/game_sa/game/TaskJumpFall.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/TaskJumpFall.h 6 | * PURPOSE: Jump/fall task interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CGAME_TASKJUMPFALL 13 | #define __CGAME_TASKJUMPFALL 14 | 15 | #include "Task.h" 16 | 17 | class CTaskSimpleClimb : public virtual CTaskSimple 18 | { 19 | public: 20 | virtual ~CTaskSimpleClimb ( void ) {}; 21 | }; 22 | 23 | 24 | class CTaskSimpleJetPack : public virtual CTaskSimple 25 | { 26 | public: 27 | virtual ~CTaskSimpleJetPack ( void ) {}; 28 | }; 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /src/game_sa/CParticleObjectSA.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CParticleObjectSA.h 6 | * PURPOSE: Header file for particle object entity class 7 | * DEVELOPERS: 8 | * 9 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 10 | * 11 | *****************************************************************************/ 12 | 13 | #ifndef __CGAMESA_PARTICLEOBJECT 14 | #define __CGAMESA_PARTICLEOBJECT 15 | 16 | #include 17 | 18 | class CParticleObjectSAInterface 19 | { 20 | // remember to include CPlaceable 21 | }; 22 | 23 | class CParticleObjectSA : public CParticleObject 24 | { 25 | private: 26 | // CParticleObjectSAInterface * internalInterface; 27 | public: 28 | }; 29 | 30 | #endif -------------------------------------------------------------------------------- /src/game_sa/CPedDamageResponseSA.cpp: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CPedDamageResponseCalculatorSA.cpp 6 | * PURPOSE: ped damage response calculator 7 | * DEVELOPERS: Jax <> 8 | * 9 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 10 | * 11 | *****************************************************************************/ 12 | 13 | #include 14 | 15 | 16 | void CPedDamageResponseSA::Calculate ( CEntity * pEntity, float fDamage, eWeaponType weaponType, ePedPieceTypes bodyPart, bool b_1, bool bSpeak ) 17 | { 18 | CPedDamageResponseCalculatorSA calc ( pEntity, fDamage, weaponType, bodyPart, b_1 ); 19 | calc.ComputeDamageResponse ( dynamic_cast < CPed * > ( pEntity ), this, bSpeak ); 20 | } -------------------------------------------------------------------------------- /src/game_sa/CPedModelInfoSA.cpp: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CPedModelInfoSA.cpp 6 | * PURPOSE: Modelinfo for ped entities 7 | * DEVELOPERS: Cecill Etheredge 8 | * Stanislav Bobrov 9 | * Jax <> 10 | * 11 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 12 | * 13 | *****************************************************************************/ 14 | 15 | #include 16 | 17 | void CPedModelInfoSA::SetMotionAnimGroup ( AssocGroupId animGroup ) 18 | { 19 | DWORD dwThis = (DWORD)m_pInterface; 20 | DWORD dwFunc = (DWORD)FUNC_SetMotionAnimGroup; 21 | _asm 22 | { 23 | mov ecx, dwThis 24 | push animGroup 25 | call dwFunc 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/game_sa/CClockSA.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CClockSA.h 6 | * PURPOSE: Header file for game clock class 7 | * DEVELOPERS: Ed Lyons 8 | * 9 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 10 | * 11 | *****************************************************************************/ 12 | 13 | #ifndef __CGAMESA_CLOCK 14 | #define __CGAMESA_CLOCK 15 | 16 | #include 17 | #include "Common.h" 18 | 19 | #define VAR_TimeMinutes 0xB70152 20 | #define VAR_TimeHours 0xB70153 21 | #define VAR_TimeOfLastMinuteChange 0xB70158 22 | 23 | class CClockSA : public CClock 24 | { 25 | public: 26 | VOID Set ( BYTE bHour, BYTE bMinute ); 27 | VOID Get ( BYTE * bHour, BYTE * bMinute ); 28 | }; 29 | 30 | #endif -------------------------------------------------------------------------------- /src/game_sa/game/CCarEnterExit.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CCarEnterExit.h 6 | * PURPOSE: Car enter/exit handling interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CGAME_CARENTEREXIT 13 | #define __CGAME_CARENTEREXIT 14 | 15 | #include "CPed.h" 16 | 17 | class CCarEnterExit 18 | { 19 | public: 20 | virtual bool GetNearestCarDoor ( CPed * pPed, CVehicle * pVehicle, CVector * pVector, int * pDoor )=0; 21 | virtual bool GetNearestCarPassengerDoor ( CPed * pPed, CVehicle * pVehicle, CVector * pVector, int * pDoor, bool bUnknown, bool bUnknown2, bool bCheckIfRoomToGetIn )=0; 22 | }; 23 | 24 | #endif -------------------------------------------------------------------------------- /src/game_sa/CRopesSA.cpp: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CRopesSA.cpp 6 | * PURPOSE: Rope entity 7 | * DEVELOPERS: Ed Lyons 8 | * 9 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 10 | * 11 | *****************************************************************************/ 12 | 13 | #include 14 | 15 | int CRopesSA::CreateRopeForSwatPed ( const CVector & vecPosition ) 16 | { 17 | int iReturn; 18 | DWORD dwFunc = FUNC_CRopes_CreateRopeForSwatPed; 19 | CVector * pvecPosition = const_cast < CVector * > ( &vecPosition ); 20 | _asm 21 | { 22 | push pvecPosition 23 | call dwFunc 24 | add esp, 0x4 25 | mov iReturn, eax 26 | } 27 | return iReturn; 28 | } -------------------------------------------------------------------------------- /src/game_sa/CVisibilityPluginsSA.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CVisibilityPluginsSA.h 6 | * PURPOSE: Header file for RenderWare entity visibility plugin class 7 | * DEVELOPERS: Jax <> 8 | * 9 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 10 | * 11 | *****************************************************************************/ 12 | 13 | #ifndef __CVisibilityPluginsSA_H 14 | #define __CVisibilityPluginsSA_H 15 | 16 | #define FUNC_CVisiblityPlugins_SetClumpAlpha 0x732B00 17 | 18 | #include 19 | typedef unsigned long DWORD; 20 | 21 | class CVisibilityPluginsSA : public CVisibilityPlugins 22 | { 23 | public: 24 | void SetClumpAlpha ( RpClump * pClump, int iAlpha ); 25 | }; 26 | 27 | #endif -------------------------------------------------------------------------------- /src/game_sa/HookSystem.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/HookSystem.h 6 | * PURPOSE: Function hook installation system 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __HOOKSYSTEM_H 13 | #define __HOOKSYSTEM_H 14 | 15 | #define WIN32_LEAN_AND_MEAN 16 | #include 17 | 18 | #define MAX_JUMPCODE_SIZE 20 19 | 20 | VOID HookInstallMethod( DWORD dwInstallAddress, DWORD dwHookFunction ); 21 | VOID HookInstallCall( DWORD dwInstallAddress, DWORD dwHookFunction ); 22 | BOOL HookInstall( DWORD dwInstallAddress, DWORD dwHookHandler, int iJmpCodeSize ); 23 | BYTE * CreateJump ( DWORD dwFrom, DWORD dwTo, BYTE * ByteArray ); 24 | 25 | #endif 26 | -------------------------------------------------------------------------------- /src/debug_classify.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | PROJECT: mod_sa 4 | LICENSE: See LICENSE in the top level directory 5 | COPYRIGHT: Copyright we_sux, BlastHack 6 | 7 | mod_sa is available from https://github.com/BlastHackNet/mod_s0beit_sa/ 8 | 9 | mod_sa is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | mod_sa is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with mod_sa. If not, see . 21 | 22 | */ 23 | const char *debug_classify_pointer ( const void *ptr ); 24 | -------------------------------------------------------------------------------- /src/game_sa/CPlaneSA.cpp: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CPlaneSA.cpp 6 | * PURPOSE: Plane vehicle entity 7 | * DEVELOPERS: Ed Lyons 8 | * Christian Myhre Lundheim <> 9 | * 10 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 11 | * 12 | *****************************************************************************/ 13 | 14 | #include 15 | 16 | CPlaneSA::CPlaneSA( CPlaneSAInterface * plane ):CAutomobileSA( plane ) 17 | { 18 | DEBUG_TRACE("CPlaneSA::CPlaneSA( CPlaneSAInterface * plane )"); 19 | this->m_pInterface = plane; 20 | } 21 | 22 | CPlaneSA::CPlaneSA( eVehicleTypes dwModelID ):CAutomobileSA( dwModelID ) 23 | { 24 | DEBUG_TRACE("CPlaneSA::CPlaneSA( eVehicleTypes dwModelID ):CVehicleSA( dwModelID )"); 25 | } 26 | -------------------------------------------------------------------------------- /src/game_sa/game/CPickups.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CPickups.h 6 | * PURPOSE: Pickup entity manager interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CGAME_PICKCUPS 13 | #define __CGAME_PICKCUPS 14 | 15 | #include "Common.h" 16 | #include "CPickup.h" 17 | #include 18 | 19 | #include 20 | 21 | class CPickups 22 | { 23 | public: 24 | virtual CPickup * CreatePickup(CVector * position, DWORD ModelIndex, ePickupType Type = PICKUP_ONCE, DWORD dwMonetaryValue = 0, DWORD dwMoneyPerDay = 0, BYTE bPingOutOfPlayer = 0)=0; 25 | virtual void DisablePickupProcessing ( bool bDisabled )=0; 26 | }; 27 | 28 | #endif -------------------------------------------------------------------------------- /src/game_sa/game/CPedDamageResponse.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CPedDamageResponse.h 6 | * PURPOSE: ped damage response interface 7 | * DEVELOPERS: Jax <> 8 | * 9 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 10 | * 11 | *****************************************************************************/ 12 | 13 | #ifndef __CGAME_PEDDAMAGERESPONSE 14 | #define __CGAME_PEDDAMAGERESPONSE 15 | 16 | class CPedDamageResponseSAInterface; 17 | 18 | class CPedDamageResponse 19 | { 20 | public: 21 | virtual CPedDamageResponseSAInterface * GetInterface ( void ) = 0; 22 | virtual void Calculate ( CEntity * pEntity, float fDamage, eWeaponType weaponType, ePedPieceTypes bodyPart, bool b_1, bool bSpeak ) = 0; 23 | }; 24 | 25 | #endif -------------------------------------------------------------------------------- /src/game_sa/CTrailerSA.cpp: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CTrailerSA.cpp 6 | * PURPOSE: Trailer vehicle entity 7 | * DEVELOPERS: Ed Lyons 8 | * Christian Myhre Lundheim <> 9 | * 10 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 11 | * 12 | *****************************************************************************/ 13 | 14 | #include 15 | 16 | CTrailerSA::CTrailerSA( CTrailerSAInterface * trailer ):CAutomobileSA( trailer ) 17 | { 18 | DEBUG_TRACE("CTrailerSA::CTrailerSA( CTrailerSAInterface * trailer )"); 19 | this->m_pInterface = trailer; 20 | } 21 | 22 | CTrailerSA::CTrailerSA( eVehicleTypes dwModelID ):CAutomobileSA( dwModelID ) 23 | { 24 | DEBUG_TRACE("CTrailerSA::CTrailerSA( eVehicleTypes dwModelID ):CVehicleSA( dwModelID )"); 25 | } -------------------------------------------------------------------------------- /src/game_sa/COffsets.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/COffsets.h 6 | * PURPOSE: Header file for game variable offsets class 7 | * DEVELOPERS: Christian Myhre Lundheim <> 8 | * 9 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 10 | * 11 | *****************************************************************************/ 12 | 13 | #ifndef __CGAMESA_OFFSETS_H 14 | #define __CGAMESA_OFFSETS_H 15 | 16 | class COffsets 17 | { 18 | public: 19 | static void Initialize10EU ( void ); 20 | static void Initialize10US ( void ); 21 | static void Initialize11 ( void ); 22 | static void Initialize20 ( void ); 23 | 24 | private: 25 | static void InitializeCommon10 ( void ); 26 | }; 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /src/game_sa/game/CKeyGen.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CKeyGen.h 6 | * PURPOSE: Game key generator interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CKeyGen_H 13 | #define __CKeyGen_H 14 | 15 | typedef unsigned long DWORD; 16 | 17 | class CKeyGen 18 | { 19 | public: 20 | virtual unsigned int GetKey ( const char * szString, int iLength ) = 0; 21 | virtual unsigned int GetKey ( const char * szString ) = 0; 22 | virtual unsigned int GetUppercaseKey ( const char * szString ) = 0; 23 | virtual unsigned int AppendStringToKey ( unsigned int uiKey, const char * szString ) = 0; 24 | }; 25 | 26 | #endif -------------------------------------------------------------------------------- /src/game_sa/CQuadBikeSA.cpp: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CQuadBikeSA.cpp 6 | * PURPOSE: Quad bike vehicle entity 7 | * DEVELOPERS: Ed Lyons 8 | * Christian Myhre Lundheim <> 9 | * 10 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 11 | * 12 | *****************************************************************************/ 13 | 14 | #include 15 | 16 | CQuadBikeSA::CQuadBikeSA( CQuadBikeSAInterface * quadbike ):CAutomobileSA( quadbike ) 17 | { 18 | DEBUG_TRACE("CQuadBikeSA::CQuadBikeSA( CQuadBikeSAInterface * quadbike )"); 19 | this->m_pInterface = quadbike; 20 | } 21 | 22 | CQuadBikeSA::CQuadBikeSA( eVehicleTypes dwModelID ):CAutomobileSA( dwModelID ) 23 | { 24 | DEBUG_TRACE("CQuadBikeSA::CQuadBikeSA( eVehicleTypes dwModelID ):CVehicleSA( dwModelID )"); 25 | } -------------------------------------------------------------------------------- /src/game_sa/CTextSA.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CTextSA.h 6 | * PURPOSE: Header file for text rendering class 7 | * DEVELOPERS: Ed Lyons 8 | * 9 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 10 | * 11 | *****************************************************************************/ 12 | 13 | #ifndef __CGAMESA_TEXT 14 | #define __CGAMESA_TEXT 15 | 16 | #include 17 | 18 | #define FUNC_CText_Get 0x6A0050 19 | 20 | #define MAX_TEXT_ENTRIES 512 21 | 22 | struct TextEntry 23 | { 24 | char szKey[16]; 25 | char szValue[255]; 26 | }; 27 | 28 | class CTextSA : public CText 29 | { 30 | public: 31 | CTextSA(); 32 | char * GetText(char * szKey); 33 | void SetText(char * szKey, char * szValue); 34 | //char * GetReplacementText ( char * szKey ); 35 | }; 36 | 37 | #endif -------------------------------------------------------------------------------- /src/game_sa/CBmxSA.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CBmxSA.h 6 | * PURPOSE: Header file for bmx bike vehicle entity class 7 | * DEVELOPERS: Ed Lyons 8 | * 9 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 10 | * 11 | *****************************************************************************/ 12 | 13 | #ifndef __CGAMESA_BMX 14 | #define __CGAMESA_BMX 15 | 16 | #include 17 | #include "CBikeSA.h" 18 | 19 | class CBmxSAInterface : public CBikeSAInterface 20 | { 21 | // fill this 22 | }; 23 | 24 | class CBmxSA : public virtual CBmx, public virtual CBikeSA 25 | { 26 | public: 27 | CBmxSA( CBmxSAInterface * bmx ); 28 | CBmxSA( eVehicleTypes dwModelID ); 29 | 30 | virtual ~CBmxSA ( void ) {}; 31 | }; 32 | 33 | #endif -------------------------------------------------------------------------------- /src/game_sa/CEventGroupSA.cpp: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CEventGroupSA.cpp 6 | * PURPOSE: Base event group 7 | * DEVELOPERS: Jax <> 8 | * 9 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 10 | * 11 | *****************************************************************************/ 12 | 13 | #include 14 | 15 | CEvent * CEventGroupSA::Add ( CEvent * pEvent, bool b_1 ) 16 | { 17 | CEventSAInterface * pReturnInterface = NULL; 18 | DWORD dwEventInterface = ( DWORD ) pEvent->GetInterface (); 19 | DWORD dwThis = ( DWORD ) m_pInterface; 20 | DWORD dwFunc = FUNC_CEventGroup_Add; 21 | _asm 22 | { 23 | mov ecx, dwThis 24 | push b_1 25 | push dwEventInterface 26 | call dwFunc 27 | mov pReturnInterface, eax 28 | } 29 | return NULL; 30 | } 31 | 32 | -------------------------------------------------------------------------------- /src/cheat_hookers.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | PROJECT: mod_sa 4 | LICENSE: See LICENSE in the top level directory 5 | COPYRIGHT: Copyright we_sux, BlastHack 6 | 7 | mod_sa is available from https://github.com/BlastHackNet/mod_s0beit_sa/ 8 | 9 | mod_sa is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | mod_sa is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with mod_sa. If not, see . 21 | 22 | */ 23 | 24 | // external variables 25 | extern CVector gravCamPed_vecCameraFrontOffset; 26 | 27 | // install hooks 28 | void cheat_hookers_installhooks ( void ); 29 | -------------------------------------------------------------------------------- /src/game_sa/CMonsterTruckSA.cpp: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CMonsterTruckSA.cpp 6 | * PURPOSE: Monster truck vehicle entity 7 | * DEVELOPERS: Ed Lyons 8 | * Christian Myhre Lundheim <> 9 | * 10 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 11 | * 12 | *****************************************************************************/ 13 | 14 | #include 15 | 16 | CMonsterTruckSA::CMonsterTruckSA( CMonsterTruckSAInterface * monstertruck ):CAutomobileSA( monstertruck ) 17 | { 18 | DEBUG_TRACE("CMonsterTruckSA::CMonsterTruckSA( CMonsterTruckSAInterface * monstertruck )"); 19 | this->m_pInterface = monstertruck; 20 | } 21 | 22 | CMonsterTruckSA::CMonsterTruckSA( eVehicleTypes dwModelID ):CAutomobileSA( dwModelID ) 23 | { 24 | DEBUG_TRACE("CMonsterTruckSA::CMonsterTruckSA( eVehicleTypes dwModelID ):CVehicleSA( dwModelID )"); 25 | } -------------------------------------------------------------------------------- /src/game_sa/CBikeSA.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CBikeSA.h 6 | * PURPOSE: Header file for bike vehicle entity class 7 | * DEVELOPERS: Ed Lyons 8 | * 9 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 10 | * 11 | *****************************************************************************/ 12 | 13 | #ifndef __CGAMESA_BIKE 14 | #define __CGAMESA_BIKE 15 | 16 | #include 17 | #include "CVehicleSA.h" 18 | 19 | #define FUNC_CBike_PlaceOnRoadProperly 0x6BEEB0 20 | 21 | class CBikeSAInterface : public CVehicleSAInterface 22 | { 23 | // fill this 24 | }; 25 | 26 | class CBikeSA : public virtual CBike, public virtual CVehicleSA 27 | { 28 | public: 29 | CBikeSA::CBikeSA ( ){}; 30 | 31 | CBikeSA( CBikeSAInterface * bike ); 32 | CBikeSA( eVehicleTypes dwModelID ); 33 | 34 | //void PlaceOnRoadProperly ( void ); 35 | }; 36 | 37 | #endif -------------------------------------------------------------------------------- /src/game_sa/game/CFireManager.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CFireManager.h 6 | * PURPOSE: Fire entity manager interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CGAME_FIREMANAGER 13 | #define __CGAME_FIREMANAGER 14 | 15 | #include 16 | #include "CFire.h" 17 | #include "CEntity.h" 18 | 19 | 20 | class CFireManager 21 | { 22 | public: 23 | virtual VOID ExtinguishPoint ( CVector & vecPosition, float fRadius )=0; 24 | // doesn't work, use below instead 25 | //virtual CFire * StartFire ( CEntity * entityTarget, CEntity * entityCreator, float fSize )=0; 26 | virtual CFire * StartFire ( CVector & vecPosition, float fSize )=0; 27 | virtual VOID ExtinguishAllFires ( )=0; 28 | virtual CFire * GetFire ( DWORD ID )=0; 29 | }; 30 | 31 | #endif -------------------------------------------------------------------------------- /src/game_sa/game/TaskSecondary.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/TaskSecondary.h 6 | * PURPOSE: Secondary task interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CGAME_TASKSECONDARY 13 | #define __CGAME_TASKSECONDARY 14 | 15 | #include "Task.h" 16 | 17 | enum eDuckControlTypes 18 | { 19 | DUCK_STANDALONE = 0, // duck anim removed when task removed 20 | DUCK_STANDALONE_WEAPON_CROUCH,// duck anim removed when task removed 21 | DUCK_TASK_CONTROLLED, // duck directly linked to a controlling task 22 | DUCK_ANIM_CONTROLLED, // duck linked to duck anim (make duck partial?) 23 | DUCK_SCRIPT_CONTROLLED, 24 | }; 25 | 26 | class CTaskSimpleDuck : public virtual CTaskSimple 27 | { 28 | public: 29 | virtual ~CTaskSimpleDuck ( void ) {}; 30 | }; 31 | 32 | #endif -------------------------------------------------------------------------------- /src/game_sa/CBoatSA.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CBoatSA.h 6 | * PURPOSE: Header file for boat vehicle entity class 7 | * DEVELOPERS: Ed Lyons 8 | * 9 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 10 | * 11 | *****************************************************************************/ 12 | 13 | #ifndef __CGAMESA_BOAT 14 | #define __CGAMESA_BOAT 15 | 16 | #include 17 | #include "CVehicleSA.h" 18 | 19 | class CBoatSAInterface : public CVehicleSAInterface 20 | { 21 | // fill this 22 | }; 23 | 24 | class CBoatSA : public virtual CBoat, public virtual CVehicleSA 25 | { 26 | private: 27 | // CBoatSAInterface * internalInterface; 28 | public: 29 | CBoatSA( CBoatSAInterface * boat ); 30 | CBoatSA( eVehicleTypes dwModelID ); 31 | 32 | virtual ~CBoatSA ( void ) {}; 33 | }; 34 | 35 | #endif -------------------------------------------------------------------------------- /src/game_sa/CEventGroupSA.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CEventGroupSA.h 6 | * PURPOSE: Header file for base event group class 7 | * DEVELOPERS: Jax <> 8 | * 9 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 10 | * 11 | *****************************************************************************/ 12 | 13 | #ifndef __CGAMESA_EVENTGROUP 14 | #define __CGAMESA_EVENTGROUP 15 | 16 | #include 17 | 18 | #define FUNC_CEventGroup_Add 0x4ab420 19 | 20 | class CEventGroupSAInterface 21 | { 22 | public: 23 | }; 24 | 25 | class CEventGroupSA : public CEventGroup 26 | { 27 | public: 28 | CEventGroupSA ( CEventGroupSAInterface * pInterface ) { m_pInterface = pInterface; } 29 | 30 | CEvent * Add ( CEvent * pEvent, bool b_1 ); 31 | 32 | protected: 33 | CEventGroupSAInterface * m_pInterface; 34 | }; 35 | 36 | #endif -------------------------------------------------------------------------------- /src/game_sa/game/CPedIntelligence.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CPedIntelligence.h 6 | * PURPOSE: Ped artificial intelligence interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CGAME_PEDINTELLIGENCE 13 | #define __CGAME_PEDINTELLIGENCE 14 | 15 | #include "CTaskManager.h" 16 | #include "CVehicleScanner.h" 17 | #include "CEvent.h" 18 | 19 | class CPed; 20 | 21 | class CPedIntelligence 22 | { 23 | public: 24 | virtual CTaskManager * GetTaskManager ( void )=0; 25 | virtual bool IsRespondingToEvent ( void )=0; 26 | virtual int GetCurrentEventType ( void )=0; 27 | virtual CEvent * GetCurrentEvent ( void )=0; 28 | virtual CVehicleScanner * GetVehicleScanner( void )=0; 29 | virtual bool TestForStealthKill ( CPed * pPed, bool bUnk ) = 0; 30 | }; 31 | 32 | #endif -------------------------------------------------------------------------------- /src/game_sa/CVehicleScannerSA.cpp: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CVehicleScannerSA.cpp 6 | * PURPOSE: Vehicle scanner 7 | * DEVELOPERS: Ed Lyons 8 | * Christian Myhre Lundheim <> 9 | * Cecill Etheredge 10 | * 11 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 12 | * 13 | *****************************************************************************/ 14 | 15 | #include 16 | 17 | CVehicleScannerSA::CVehicleScannerSA ( CVehicleScannerSAInterface * pInterface ) 18 | { 19 | internalInterface = pInterface; 20 | } 21 | 22 | CVehicle * CVehicleScannerSA::GetClosestVehicleInRange () 23 | { 24 | CVehicleSAInterface * pVehicle = (CVehicleSAInterface *)(internalInterface->pClosestVehicleInRange); 25 | if ( pVehicle ) 26 | return ((CPoolsSA *)pGame->GetPools())->GetVehicle((DWORD *)pVehicle); 27 | else 28 | return NULL; 29 | } -------------------------------------------------------------------------------- /src/game_sa/CMonsterTruckSA.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CMonsterTruckSA.h 6 | * PURPOSE: Header file for monster truck vehicle entity class 7 | * DEVELOPERS: Ed Lyons 8 | * Christian Myhre Lundheim <> 9 | * 10 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 11 | * 12 | *****************************************************************************/ 13 | 14 | #ifndef __CGAMESA_MONSTERTRUCK 15 | #define __CGAMESA_MONSTERTRUCK 16 | 17 | #include 18 | #include "CAutomobileSA.h" 19 | 20 | class CMonsterTruckSAInterface : public CAutomobileSAInterface 21 | { 22 | // fill this 23 | }; 24 | 25 | class CMonsterTruckSA : public CMonsterTruck, public CAutomobileSA 26 | { 27 | private: 28 | // CBoatSAInterface * internalInterface; 29 | public: 30 | CMonsterTruckSA( CMonsterTruckSAInterface * monstertruck ); 31 | CMonsterTruckSA( eVehicleTypes dwModelID ); 32 | }; 33 | 34 | #endif -------------------------------------------------------------------------------- /src/game_sa/CPlaneSA.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CPlaneSA.h 6 | * PURPOSE: Header file for plane vehicle entity class 7 | * DEVELOPERS: Ed Lyons 8 | * Christian Myhre Lundheim <> 9 | * 10 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 11 | * 12 | *****************************************************************************/ 13 | 14 | #ifndef __CGAMESA_PLANE 15 | #define __CGAMESA_PLANE 16 | 17 | #include 18 | #include "CAutomobileSA.h" 19 | 20 | class CPlaneSAInterface : public CAutomobileSAInterface 21 | { 22 | // + 2508 = undercarrige possition (float - 1.0 = up, 0.0 = down) 23 | // fill this 24 | }; 25 | 26 | class CPlaneSA : public virtual CPlane, public virtual CAutomobileSA 27 | { 28 | private: 29 | // CBoatSAInterface * internalInterface; 30 | public: 31 | CPlaneSA( CPlaneSAInterface * plane ); 32 | CPlaneSA( eVehicleTypes dwModelID ); 33 | }; 34 | 35 | #endif -------------------------------------------------------------------------------- /src/game_sa/CClockSA.cpp: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CClockSA.cpp 6 | * PURPOSE: Game clock 7 | * DEVELOPERS: Ed Lyons 8 | * 9 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 10 | * 11 | *****************************************************************************/ 12 | 13 | #include 14 | 15 | extern CGameSA * pGame; 16 | 17 | VOID CClockSA::Set ( BYTE bHour, BYTE bMinute ) 18 | { 19 | DEBUG_TRACE("VOID CClockSA::Set ( BYTE bHour, BYTE bMinute )"); 20 | if(bMinute >= 0 && bMinute <= 60 && bHour >= 0 && bHour <= 23) 21 | { 22 | *(BYTE *)VAR_TimeMinutes = bMinute; 23 | *(BYTE *)VAR_TimeHours = bHour; 24 | *(DWORD *)VAR_TimeOfLastMinuteChange = pGame->GetSystemTime(); 25 | } 26 | } 27 | 28 | VOID CClockSA::Get ( BYTE * bHour, BYTE * bMinute ) 29 | { 30 | DEBUG_TRACE("VOID CClockSA::Get ( BYTE * bHour, BYTE * bMinute )"); 31 | *bMinute = *(BYTE *)VAR_TimeMinutes; 32 | *bHour = *(BYTE *)VAR_TimeHours; 33 | } -------------------------------------------------------------------------------- /src/game_sa/game/CAnimBlock.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CAnimBlock.h 6 | * PURPOSE: Animation block interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CAnimBlock_H 13 | #define __CAnimBlock_H 14 | 15 | class CAnimBlockSAInterface; 16 | 17 | class CAnimBlock 18 | { 19 | public: 20 | virtual CAnimBlockSAInterface * GetInterface ( void ) = 0; 21 | virtual char * GetName ( void ) = 0; 22 | virtual int GetIndex ( void ) = 0; 23 | virtual void AddRef ( void ) = 0; 24 | virtual unsigned short GetRefs ( void ) = 0; 25 | virtual bool IsLoaded ( void ) = 0; 26 | }; 27 | 28 | #endif -------------------------------------------------------------------------------- /src/game_sa/game/CHandlingManager.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CHandlingManager.h 6 | * PURPOSE: Vehicle handling manager interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CGAME_IHANDLINGMANAGER 13 | #define __CGAME_IHANDLINGMANAGER 14 | 15 | #include "CHandlingEntry.h" 16 | 17 | class IHandlingManager 18 | { 19 | public: 20 | virtual void LoadDefaultHandlings ( void ) = 0; 21 | 22 | virtual CHandlingEntry* CreateHandlingData ( void ) = 0; 23 | virtual bool ApplyHandlingData ( enum eVehicleTypes eModel, CHandlingEntry* pEntry ) = 0; 24 | 25 | virtual CHandlingEntry* GetHandlingData ( enum eVehicleTypes eModel ) = 0; 26 | virtual const CHandlingEntry* GetOriginalHandlingData ( enum eVehicleTypes eModel ) = 0; 27 | }; 28 | 29 | #endif 30 | -------------------------------------------------------------------------------- /src/game_sa/CTrailerSA.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CTrailerSA.h 6 | * PURPOSE: Header file for trailer vehicle entity class 7 | * DEVELOPERS: Ed Lyons 8 | * Christian Myhre Lundheim <> 9 | * 10 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 11 | * 12 | *****************************************************************************/ 13 | 14 | #ifndef __CGAMESA_TRAILER 15 | #define __CGAMESA_TRAILER 16 | 17 | #include 18 | #include "CAutomobileSA.h" 19 | 20 | class CTrailerSAInterface : public CAutomobileSAInterface 21 | { 22 | // fill this 23 | }; 24 | 25 | class CTrailerSA : public virtual CTrailer, public virtual CAutomobileSA 26 | { 27 | private: 28 | public: 29 | CTrailerSA( CTrailerSAInterface * trailer ); 30 | CTrailerSA( eVehicleTypes dwModelID ); 31 | 32 | virtual ~CTrailerSA ( void ) {} 33 | }; 34 | 35 | #endif -------------------------------------------------------------------------------- /src/game_sa/game/CCoronas.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CCoronas.h 6 | * PURPOSE: Corona entity manager interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CGAME_CORONAS 13 | #define __CGAME_CORONAS 14 | 15 | #include "Common.h" 16 | #include "CRegisteredCorona.h" 17 | 18 | #include 19 | 20 | // these are the IDs that are used internally for coronas 21 | #define CORONA_SUN 1 22 | #define CORONA_MOON 2 23 | 24 | class CCoronas 25 | { 26 | public: 27 | virtual CRegisteredCorona * GetCorona(DWORD ID)=0; 28 | virtual CRegisteredCorona * CreateCorona(DWORD Identifier, CVector * position)=0; 29 | virtual CRegisteredCorona * FindFreeCorona()=0; 30 | virtual CRegisteredCorona * FindCorona(DWORD Identifier)=0; 31 | virtual void DisableSunAndMoon ( bool bDisabled )=0; 32 | }; 33 | #endif -------------------------------------------------------------------------------- /src/game_sa/CTheCarGeneratorsSA.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CTheCarGeneratorsSA.h 6 | * PURPOSE: Header file for car entity generator class 7 | * DEVELOPERS: Ed Lyons 8 | * Christian Myhre Lundheim <> 9 | * 10 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 11 | * 12 | *****************************************************************************/ 13 | 14 | #ifndef __CGAMESA_THECARGENERATORS 15 | #define __CGAMESA_THECARGENERATORS 16 | 17 | #include 18 | #include "Common.h" 19 | 20 | #include "CCarGeneratorSA.h" 21 | 22 | #define MAX_CAR_GENERATORS 500 23 | 24 | #define ARRAY_CarGenerators 0xC27AD0 25 | 26 | class CTheCarGeneratorsSA : public CTheCarGenerators 27 | { 28 | private: 29 | CCarGeneratorSA * CarGenerators[MAX_CAR_GENERATORS]; 30 | public: 31 | CTheCarGeneratorsSA(); 32 | ~CTheCarGeneratorsSA(); 33 | 34 | CCarGenerator * GetCarGenerator(DWORD dwIndex); 35 | }; 36 | 37 | #endif -------------------------------------------------------------------------------- /src/cheat_patches.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | PROJECT: mod_sa 4 | LICENSE: See LICENSE in the top level directory 5 | COPYRIGHT: Copyright we_sux, BlastHack 6 | 7 | mod_sa is available from https://github.com/BlastHackNet/mod_s0beit_sa/ 8 | 9 | mod_sa is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | mod_sa is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with mod_sa. If not, see . 21 | 22 | */ 23 | 24 | #include "main.h" 25 | 26 | // these get installed before most functions within the process get called 27 | void cheat_patches_installRuntimePatches(void) 28 | { 29 | patcher_install(&patch_EnableResolutions); 30 | patcher_install(&patch_DisableLoadingScreen); 31 | } 32 | -------------------------------------------------------------------------------- /src/game_sa/CQuadBikeSA.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CQuadBikeSA.h 6 | * PURPOSE: Header file for quad bike vehicle entity class 7 | * DEVELOPERS: Ed Lyons 8 | * Christian Myhre Lundheim <> 9 | * 10 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 11 | * 12 | *****************************************************************************/ 13 | 14 | #ifndef __CGAMESA_QUADBIKE 15 | #define __CGAMESA_QUADBIKE 16 | 17 | #include 18 | #include "CAutomobileSA.h" 19 | 20 | class CQuadBikeSAInterface : public CAutomobileSAInterface 21 | { 22 | // fill this 23 | }; 24 | 25 | class CQuadBikeSA : public virtual CQuadBike, public virtual CAutomobileSA 26 | { 27 | private: 28 | public: 29 | CQuadBikeSA( CQuadBikeSAInterface * quadbike ); 30 | CQuadBikeSA( eVehicleTypes dwModelID ); 31 | 32 | virtual ~CQuadBikeSA ( void ) {} 33 | }; 34 | 35 | #endif -------------------------------------------------------------------------------- /src/game_sa/CBuildingSA.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CBuildingSA.h 6 | * PURPOSE: Header file for building physical entity class 7 | * DEVELOPERS: Ed Lyons 8 | * 9 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 10 | * 11 | *****************************************************************************/ 12 | 13 | #ifndef __CGAMESA_BUILDING 14 | #define __CGAMESA_BUILDING 15 | 16 | #include 17 | #include "CEntitySA.h" 18 | 19 | #define FUNC_CBuilding_operator_new 0x404090 20 | #define FUNC_CBuilding_Constructor 0x403E00 21 | 22 | #define SIZEOF_CBuilding 56 23 | 24 | class CBuildingSAInterface : public CEntitySAInterface 25 | { 26 | 27 | }; 28 | 29 | class CBuildingSA : public virtual CBuilding, public virtual CEntitySA 30 | { 31 | private: 32 | CBuildingSAInterface * internalInterface; 33 | public: 34 | CBuildingSA( CBuildingSAInterface * objectInterface ); 35 | CBuildingSA( DWORD dwModel ); 36 | ~CBuildingSA( ); 37 | }; 38 | 39 | #endif -------------------------------------------------------------------------------- /src/game_sa/CVehicleScannerSA.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CVehicleScannerSA.h 6 | * PURPOSE: Header file for vehicle scanner class 7 | * DEVELOPERS: Ed Lyons 8 | * Christian Myhre Lundheim <> 9 | * 10 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 11 | * 12 | *****************************************************************************/ 13 | 14 | #ifndef __CGAMESA_VEHICLESCANNER 15 | #define __CGAMESA_VEHICLESCANNER 16 | 17 | #include 18 | 19 | class CVehicle; 20 | 21 | class CVehicleScannerSAInterface 22 | { 23 | public: 24 | char bPad[76]; 25 | int * pClosestVehicleInRange; // really CVehicleSAInterface 26 | }; 27 | 28 | class CVehicleScannerSA : public CVehicleScanner 29 | { 30 | private: 31 | CVehicleScannerSAInterface * internalInterface; 32 | public: 33 | CVehicleScannerSA ( CVehicleScannerSAInterface * pInterface ); 34 | 35 | CVehicle * GetClosestVehicleInRange (); 36 | }; 37 | 38 | #endif -------------------------------------------------------------------------------- /src/game_sa/game/CAERadioTrackManager.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CAERadioTrackManager.h 6 | * PURPOSE: Radio track audio entity interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CGAME_CAERADIOTRACKMANAGER 13 | #define __CGAME_CAERADIOTRACKMANAGER 14 | 15 | #include 16 | 17 | class CAERadioTrackManager 18 | { 19 | public: 20 | virtual BYTE GetCurrentRadioStationID ( void ) = 0; 21 | virtual BYTE IsVehicleRadioActive ( void ) = 0; 22 | virtual char * GetRadioStationName ( BYTE bStationID ) = 0; 23 | virtual BOOL IsRadioOn ( void ) = 0; 24 | virtual VOID SetBassSetting ( DWORD dwBass ) = 0; 25 | virtual VOID Reset ( void ) = 0; 26 | virtual VOID StartRadio ( BYTE bStationID, BYTE bUnknown ) = 0; 27 | }; 28 | 29 | #endif -------------------------------------------------------------------------------- /src/game_sa/game/CPlayerPed.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CPlayerPed.h 6 | * PURPOSE: Played ped entity interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | 13 | #ifndef __CGAME_PLAYERPED 14 | #define __CGAME_PLAYERPED 15 | 16 | #include "CPed.h" 17 | #include "CWanted.h" 18 | 19 | class CPlayerPed : public virtual CPed 20 | { 21 | public: 22 | virtual ~CPlayerPed ( void ) {}; 23 | 24 | virtual CWanted* GetWanted ( void ) = 0; 25 | 26 | virtual float GetSprintEnergy ( void ) = 0; 27 | virtual void SetSprintEnergy ( float fSprintEnergy ) = 0; 28 | 29 | virtual void SetInitialState ( void ) = 0; 30 | 31 | virtual eMoveAnim GetMoveAnim ( void ) = 0; 32 | virtual void SetMoveAnim ( eMoveAnim iAnimGroup ) = 0; 33 | }; 34 | 35 | #endif -------------------------------------------------------------------------------- /src/game_sa/game/CCam.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CCam.h 6 | * PURPOSE: Camera entity interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CGAME_CAM 13 | #define __CGAME_CAM 14 | 15 | class CCam 16 | { 17 | public: 18 | virtual CVector* GetFront () const = 0; 19 | virtual CVector* GetUp () const = 0; 20 | virtual CVector* GetSource () const = 0; 21 | virtual CVector* GetFixedModeSource () const = 0; 22 | virtual CVector* GetFixedModeVector () const = 0; 23 | virtual CVector* GetTargetHistoryPos () const = 0; 24 | virtual unsigned int GetMode () const = 0; 25 | virtual float GetFOV () const = 0; 26 | virtual void SetFOV ( float fFOV ) = 0; 27 | virtual CEntity* GetTargetEntity () const = 0; 28 | }; 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /src/stddefs.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | PROJECT: mod_sa 4 | LICENSE: See LICENSE in the top level directory 5 | COPYRIGHT: Copyright we_sux, BlastHack 6 | 7 | mod_sa is available from https://github.com/BlastHackNet/mod_s0beit_sa/ 8 | 9 | mod_sa is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | mod_sa is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with mod_sa. If not, see . 21 | 22 | */ 23 | // this is pretty std stuff 24 | #define snprintf _snprintf 25 | #define vsnprintf _vsnprintf 26 | #define isfinite _finite 27 | 28 | // User-defined warnings - MTA 29 | #define __STR2__( x ) #x 30 | #define __STR1__( x ) __STR2__( x ) 31 | #define __LOC__ __FILE__ "("__STR1__( __LINE__ ) ") : warning C0000 *m0d Team*: " 32 | -------------------------------------------------------------------------------- /src/game_sa/CKeyGenSA.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CKeyGenSA.h 6 | * PURPOSE: Header file for game key generator class 7 | * DEVELOPERS: Jax <> 8 | * 9 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 10 | * 11 | *****************************************************************************/ 12 | 13 | #ifndef __CKeyGenSA_H 14 | #define __CKeyGenSA_H 15 | 16 | #include 17 | 18 | #define FUNC_CKeyGen_GetKey_len 0x53ced0 19 | #define FUNC_CKeyGen_GetKey 0x53cf00 20 | #define FUNC_CKeyGen_GetUppercaseKey 0x53cf30 21 | #define FUNC_CKeyGen_AppendStringToKey 0x53cf70 22 | 23 | class CKeyGenSA : public CKeyGen 24 | { 25 | public: 26 | unsigned int GetKey ( const char * szString, int iLength ); 27 | unsigned int GetKey ( const char * szString ); 28 | unsigned int GetUppercaseKey ( const char * szString ); 29 | unsigned int AppendStringToKey ( unsigned int uiKey, const char * szString ); 30 | }; 31 | 32 | #endif -------------------------------------------------------------------------------- /src/game_sa/game/TaskPhysicalResponse.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/TaskPhysicalResponse.h 6 | * PURPOSE: Physical response task interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CGAME_TASKPHYSICALRESPONSE 13 | #define __CGAME_TASKPHYSICALRESPONSE 14 | 15 | #include "Task.h" 16 | 17 | class CTaskSimpleChoking : public virtual CTaskSimple 18 | { 19 | public: 20 | virtual ~CTaskSimpleChoking ( void ) {}; 21 | 22 | virtual CPed* GetAttacker ( void ) = 0; 23 | virtual unsigned int GetTimeRemaining ( void ) = 0; 24 | virtual unsigned int GetTimeStarted ( void ) = 0; 25 | virtual bool IsTeargas ( void ) = 0; 26 | virtual bool IsFinished ( void ) = 0; 27 | 28 | virtual void UpdateChoke ( CPed* pPed, CPed* pAttacker, bool bIsTearGas ) = 0; 29 | }; 30 | 31 | 32 | #endif -------------------------------------------------------------------------------- /src/game_sa/game/CStreaming.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CStreaming.h 6 | * PURPOSE: Game streaming interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CStreaming_H 13 | #define __CStreaming_H 14 | 15 | class CStreaming 16 | { 17 | public: 18 | virtual void RequestModel ( DWORD dwModelID, DWORD dwFlags ) = 0; 19 | virtual void LoadAllRequestedModels ( BOOL bOnlyPriorityModels = 0 ) = 0; 20 | virtual BOOL HasModelLoaded ( DWORD dwModelID ) = 0; 21 | virtual void RequestAnimations ( int iAnimationLibraryBlock, DWORD dwFlags ) = 0; 22 | virtual BOOL HaveAnimationsLoaded ( int iAnimationLibraryBlock ) = 0; 23 | virtual bool HasVehicleUpgradeLoaded ( int model ) = 0; 24 | virtual void RequestSpecialModel ( DWORD model, const char * szTexture, DWORD channel ) = 0; 25 | }; 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | mod_s0beit_sa 2 | ============= 3 | 4 | Multi-purpose cheat tool for GTA San Andreas and SA:MP 5 | **Supported SA-MP versions:** [`0.3.7-R1`](https://github.com/BlastHackNet/mod_s0beit_sa-1/tree/master), [`0.3.DL-R1`](https://github.com/BlastHackNet/mod_s0beit_sa-1/tree/samp-dl) 6 | 7 | ## Installation 8 | Download `...Setup.exe` from the [latest release](https://github.com/BlastHackNet/mod_s0beit_sa-1/releases/latest), run it and follow the installer guide. 9 | 10 | ## Building 11 | To build mod_sa you'll need to have [Microsoft Visual Studio](https://www.visualstudio.com) at least version of 2012 with C++ tools and [DirectX 9 SDK](https://www.microsoft.com/en-us/download/details.aspx?id=6812) installed. 12 | Open appropriate `mod_sa_VS20XX.sln` from the `src` folder with your Visual Studio and you are ready to compile. 13 | 14 | ## Credits & Greets 15 | Kalcor, NotAPlane, jflm, nuckfuts, FYP, NarutoUA 16 | s0beit, Wang, Trix, Static, cBonky, REALfreaky, v0gelz, CrazyT, 17 | wax, cereal, jac0b, playa', North, caytchen, DeN00b, 18 | Offroader23, Kosty@n, gaffkanone, Racer_S 19 | everyone who contributed to the project 20 | everyone at gamedeception.net, GTAForums.com and Multi Theft Auto 21 | and everyone helping with moral support & hosting. 22 | -------------------------------------------------------------------------------- /src/game_sa/Common.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/Common.h 6 | * PURPOSE: Common game layer include file 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CGAMESA_COMMON 13 | #define __CGAMESA_COMMON 14 | 15 | #define CGAME_DLL 16 | 17 | #define WIN32_LEAN_AND_MEAN 18 | #include 19 | 20 | #include 21 | 22 | #undef DEBUG_LOG 23 | #ifdef DEBUG_LOG 24 | #include 25 | #include 26 | 27 | static FILE* fDebugFile; 28 | 29 | static void OutputDebugText ( char * szDebugText ) 30 | { 31 | #ifdef MTA_DEBUG 32 | char szDebug[500]; 33 | sprintf ( szDebug, "%s\n", szDebugText ); 34 | OutputDebugString ( szDebug ); 35 | #endif 36 | } 37 | 38 | #ifdef MTA_DEBUG 39 | #define DEBUG_TRACE(szText) \ 40 | OutputDebugString(szText); 41 | #endif 42 | #else 43 | #define DEBUG_TRACE(szText) // we do nothing with release versions 44 | #endif 45 | 46 | #endif -------------------------------------------------------------------------------- /src/game_sa/game/CWeapon.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CWeapon.h 6 | * PURPOSE: Weapon entity interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CGAME_CWEAPON 13 | #define __CGAME_CWEAPON 14 | 15 | #include "Common.h" 16 | 17 | #include "CWeaponInfo.h" 18 | 19 | class CPed; 20 | class CColPoint; 21 | 22 | class CWeapon 23 | { 24 | public: 25 | virtual eWeaponType GetType( )=0; 26 | virtual VOID SetType( eWeaponType type )=0; 27 | virtual eWeaponState GetState( )=0; 28 | virtual void SetState ( eWeaponState state )=0; 29 | virtual DWORD GetAmmoInClip( )=0; 30 | virtual VOID SetAmmoInClip( DWORD dwAmmoInClip )=0; 31 | virtual DWORD GetAmmoTotal( )=0; 32 | virtual VOID SetAmmoTotal( DWORD dwAmmoTotal )=0; 33 | virtual CPed * GetPed()=0; 34 | virtual eWeaponSlot GetSlot()=0; 35 | virtual VOID SetAsCurrentWeapon()=0; 36 | virtual CWeaponInfo * GetInfo()=0; 37 | virtual void Remove ()=0; 38 | }; 39 | 40 | #endif -------------------------------------------------------------------------------- /src/game_sa/CCarEnterExitSA.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CCarEnterExitSA.h 6 | * PURPOSE: Header file for car enter and exit handler class 7 | * DEVELOPERS: Ed Lyons 8 | * Christian Myhre Lundheim <> 9 | * Cecill Etheredge 10 | * 11 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 12 | * 13 | *****************************************************************************/ 14 | 15 | #ifndef __CGAMESA_CARENTEREXIT 16 | #define __CGAMESA_CARENTEREXIT 17 | 18 | #include 19 | #include "CPedSA.h" 20 | #include "CVehicleSA.h" 21 | 22 | #define FUNC_GetNearestCarDoor 0x6528F0 23 | #define FUNC_GetNearestCarPassengerDoor 0x650BB0 24 | 25 | class CCarEnterExitSA : public CCarEnterExit 26 | { 27 | public: 28 | bool GetNearestCarDoor ( CPed * pPed, CVehicle * pVehicle, CVector * pVector, int * pDoor ); 29 | bool GetNearestCarPassengerDoor ( CPed * pPed, CVehicle * pVehicle, CVector * pVector, int * pDoor, bool bUnknown, bool bUnknown2, bool bCheckIfRoomToGetIn ); 30 | 31 | }; 32 | 33 | #endif -------------------------------------------------------------------------------- /src/game_sa/CBoatSA.cpp: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CBoatSA.cpp 6 | * PURPOSE: Boat vehicle entity 7 | * DEVELOPERS: Ed Lyons 8 | * 9 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 10 | * 11 | *****************************************************************************/ 12 | 13 | #include 14 | 15 | CBoatSA::CBoatSA( CBoatSAInterface * boat ) 16 | { 17 | DEBUG_TRACE("CBoatSA::CBoatSA( CBoatSAInterface * boat )"); 18 | this->m_pInterface = boat; 19 | } 20 | 21 | CBoatSA::CBoatSA( eVehicleTypes dwModelID ):CVehicleSA( dwModelID ) 22 | { 23 | DEBUG_TRACE("CBoatSA::CBoatSA( eVehicleTypes dwModelID ):CVehicleSA( dwModelID )"); 24 | /*if(this->internalInterface) 25 | { 26 | // create the actual vehicle 27 | DWORD dwFunc = FUNC_CBoatContructor; 28 | DWORD dwThis = (DWORD)this->internalInterface; 29 | _asm 30 | { 31 | mov ecx, dwThis 32 | push MISSION_VEHICLE 33 | push dwModelID 34 | call dwFunc 35 | } 36 | 37 | this->SetEntityStatus(STATUS_ABANDONED); // so it actually shows up in the world 38 | 39 | pGame->GetWorld()->Add((CEntitySA *)this); 40 | } */ 41 | } -------------------------------------------------------------------------------- /src/stdtypes.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | PROJECT: mod_sa 4 | LICENSE: See LICENSE in the top level directory 5 | COPYRIGHT: Copyright we_sux, BlastHack 6 | 7 | mod_sa is available from https://github.com/BlastHackNet/mod_s0beit_sa/ 8 | 9 | mod_sa is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | mod_sa is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with mod_sa. If not, see . 21 | 22 | */ 23 | typedef signed char int8_t; 24 | typedef unsigned char uint8_t; 25 | typedef signed short int16_t; 26 | typedef unsigned short uint16_t; 27 | typedef signed int int32_t; 28 | typedef unsigned int uint32_t; 29 | typedef signed long long int64_t; 30 | typedef unsigned long long uint64_t; 31 | 32 | struct t_WindowsInfo 33 | { 34 | int osPlatform; 35 | int osVer; 36 | int winVer; 37 | int winMajor; 38 | }; 39 | -------------------------------------------------------------------------------- /src/game_sa/CGaragesSA.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CGaragesSA.h 6 | * PURPOSE: Header file for garage manager class 7 | * DEVELOPERS: Ed Lyons 8 | * Alberto Alonso 9 | * 10 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 11 | * 12 | *****************************************************************************/ 13 | 14 | #ifndef __CGAMESA_GARAGES 15 | #define __CGAMESA_GARAGES 16 | 17 | #include 18 | #include "CGarageSA.h" 19 | 20 | class CGaragesSAInterface 21 | { 22 | public: 23 | CGarageSAInterface Garages [ MAX_GARAGES ]; 24 | }; 25 | 26 | class CGaragesSA : public CGarages 27 | { 28 | public: 29 | CGaragesSA ( CGaragesSAInterface * pInterface ); 30 | virtual ~CGaragesSA ( ); 31 | 32 | CGarageSA* GetGarage ( DWORD dwID ); 33 | 34 | void Initialize ( ); 35 | 36 | private: 37 | CGaragesSAInterface * internalInterface; 38 | CGarageSA* Garages[MAX_GARAGES]; 39 | }; 40 | 41 | #endif -------------------------------------------------------------------------------- /src/game_sa/CBikeSA.cpp: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CBikeSA.cpp 6 | * PURPOSE: Bike vehicle entity 7 | * DEVELOPERS: Ed Lyons 8 | * 9 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 10 | * 11 | *****************************************************************************/ 12 | 13 | #include 14 | 15 | CBikeSA::CBikeSA( CBikeSAInterface * bike ) 16 | { 17 | DEBUG_TRACE("CBikeSA::CBikeSA( CBikeSAInterface * bike )"); 18 | this->m_pInterface = bike; 19 | } 20 | 21 | CBikeSA::CBikeSA( eVehicleTypes dwModelID ):CVehicleSA( dwModelID ) 22 | { 23 | DEBUG_TRACE("CBikeSA::CBikeSA( eVehicleTypes dwModelID ):CVehicleSA( dwModelID )"); 24 | /*if(this->internalInterface) 25 | { 26 | // create the actual vehicle 27 | DWORD dwFunc = FUNC_CBikeContructor; 28 | DWORD dwThis = (DWORD)this->internalInterface; 29 | _asm 30 | { 31 | mov ecx, dwThis 32 | push MISSION_VEHICLE 33 | push dwModelID 34 | call dwFunc 35 | } 36 | 37 | this->SetEntityStatus(STATUS_ABANDONED); // so it actually shows up in the world 38 | 39 | pGame->GetWorld()->Add((CEntitySA *)this); 40 | }*/ 41 | } 42 | 43 | -------------------------------------------------------------------------------- /src/game_sa/game/CPedSound.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CPedSound.h 6 | * PURPOSE: Header file for ped sound interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CPedSound_H 13 | #define __CPedSound_H 14 | 15 | class CPedSoundSAInterface; 16 | 17 | class CPedSound 18 | { 19 | public: 20 | virtual CPedSoundSAInterface* GetInterface ( void ) = 0; 21 | 22 | virtual short GetVoiceTypeID ( void ) = 0; 23 | virtual short GetVoiceID ( void ) = 0; 24 | virtual void SetVoiceTypeID ( short sVoiceType ) = 0; 25 | virtual void SetVoiceID ( short sVoiceID ) = 0; 26 | 27 | virtual bool IsSpeechDisabled ( void ) = 0; 28 | virtual void EnablePedSpeech ( void ) = 0; 29 | virtual void DisablePedSpeech ( bool bStopCurrent ) = 0; 30 | }; 31 | 32 | #endif -------------------------------------------------------------------------------- /src/game_sa/CMenuManagerSA.cpp: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CMenuManagerSA.cpp 6 | * PURPOSE: Game menu manager 7 | * DEVELOPERS: Ed Lyons 8 | * 9 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 10 | * 11 | *****************************************************************************/ 12 | 13 | #include 14 | 15 | BYTE CMenuManagerSA::GetCurrentScreen() 16 | { 17 | return this->GetInterface()->bCurrentScreen; 18 | } 19 | 20 | BYTE CMenuManagerSA::GetPreviousScreen() 21 | { 22 | return this->GetInterface()->bLastScreen; 23 | } 24 | 25 | void CMenuManagerSA::SwitchToNewScreen(BYTE ScreenID) 26 | { 27 | DWORD dwThis = (DWORD)this->GetInterface(); 28 | DWORD dwFunc = FUNC_SwitchToNewScreen; 29 | DWORD dwScreenID = ScreenID; 30 | 31 | _asm 32 | { 33 | mov eax, dwThis 34 | push dwScreenID 35 | call dwFunc 36 | } 37 | } 38 | 39 | void CMenuManagerSA::DisplayHelpText ( char * szHelpText ) // DisplayHelperText 40 | { 41 | DWORD dwThis = (DWORD)this->GetInterface(); 42 | DWORD dwFunc = FUNC_DisplayHelperText; 43 | 44 | _asm 45 | { 46 | mov eax, dwThis 47 | push szHelpText 48 | call dwFunc 49 | } 50 | } -------------------------------------------------------------------------------- /src/game_sa/CAnimBlendSequenceSA.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CAnimBlendSequenceSA.cpp 6 | * PURPOSE: Header file for animation blend sequence class 7 | * DEVELOPERS: Jax <> 8 | * 9 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 10 | * 11 | *****************************************************************************/ 12 | 13 | #ifndef __CAnimBlendSequenceSA_H 14 | #define __CAnimBlendSequenceSA_H 15 | 16 | #include 17 | 18 | class CAnimBlendSequenceSAInterface 19 | { 20 | public: 21 | unsigned int iHashKey; // Get/SetBoneTag accesses the first? 2 bytes here 22 | short sFlags; // 4 // or16=bHasBoneTag 23 | short sNumKeyFrames; // 6 24 | class CAnimBlendKeyFrame * pKeyFrames; // ? 25 | }; 26 | 27 | class CAnimBlendSequenceSA : public CAnimBlendSequence 28 | { 29 | public: 30 | CAnimBlendSequenceSA ( CAnimBlendSequenceSAInterface * pInterface ) { m_pInterface = pInterface; } 31 | 32 | protected: 33 | CAnimBlendSequenceSAInterface * m_pInterface; 34 | }; 35 | 36 | #endif -------------------------------------------------------------------------------- /src/game_sa/game/CAnimBlendAssociation.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CAnimBlendAssociation.h 6 | * PURPOSE: Animation blend association interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CAnimBlendAssociation_H 13 | #define __CAnimBlendAssociation_H 14 | 15 | class CAnimBlendAssociationSAInterface; 16 | typedef unsigned long AssocGroupId; 17 | typedef unsigned long AnimationId; 18 | class CAnimBlendHierarchy; 19 | 20 | class CAnimBlendAssociation 21 | { 22 | public: 23 | virtual CAnimBlendAssociationSAInterface * GetInterface ( void ) = 0; 24 | virtual AssocGroupId GetAnimGroup ( void ) = 0; 25 | virtual AnimationId GetAnimID ( void ) = 0; 26 | virtual CAnimBlendHierarchy * GetAnimHierarchy ( void ) = 0; 27 | 28 | virtual float GetBlendAmount ( void ) = 0; 29 | virtual void SetBlendAmount ( float fAmount ) = 0; 30 | }; 31 | 32 | #endif -------------------------------------------------------------------------------- /src/game_sa/C3DMarkersSA.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/C3DMarkersSA.h 6 | * PURPOSE: Header file for 3D Marker entity manager class 7 | * DEVELOPERS: Ed Lyons 8 | * Christian Myhre Lundheim <> 9 | * Jax <> 10 | * 11 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 12 | * 13 | *****************************************************************************/ 14 | 15 | #ifndef __CGAMESA_MARKERS 16 | #define __CGAMESA_MARKERS 17 | 18 | #define FUNC_PlaceMarker 0x725120 // ##SA## 19 | 20 | #define MAX_3D_MARKERS 32 21 | 22 | #define ARRAY_3D_MARKERS 0xC7DD58 23 | 24 | #include 25 | #include "C3DMarkerSA.h" 26 | 27 | class C3DMarkerVC; 28 | 29 | class C3DMarkersSA : public C3DMarkers 30 | { 31 | private: 32 | C3DMarkerSA * Markers[MAX_3D_MARKERS]; 33 | public: 34 | // constructor 35 | C3DMarkersSA(); 36 | ~C3DMarkersSA ( void ); 37 | 38 | C3DMarker * CreateMarker(DWORD Identifier, e3DMarkerType dwType, CVector * vecPosition, FLOAT fSize, FLOAT fPulseFraction, BYTE r, BYTE g, BYTE b, BYTE a ); 39 | C3DMarker * FindFreeMarker(); 40 | C3DMarker * FindMarker( DWORD Identifier ); 41 | }; 42 | 43 | #endif -------------------------------------------------------------------------------- /src/game_sa/CRect2D.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/CRect2D.h 6 | * PURPOSE: 2D rectangle interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CRECT2D_H 13 | #define __CRECT2D_H 14 | 15 | /** 16 | * CRect2D Structure used to store a 2D rectangle 17 | */ 18 | class CRect2D 19 | { 20 | public: 21 | float fX1, fY1, fX2, fY2; 22 | 23 | CRect2D () 24 | { 25 | this->fX1 = 0; 26 | this->fY1 = 0; 27 | this->fX2 = 0; 28 | this->fY2 = 0; 29 | }; 30 | 31 | CRect2D ( float fX1, float fY1, float fX2, float fY2 ) 32 | { 33 | this->fX1 = fX1; 34 | this->fY1 = fY1; 35 | this->fX2 = fX2; 36 | this->fY2 = fY2; 37 | }; 38 | 39 | bool operator== ( const CRect2D& rhs ) const 40 | { 41 | return ( ( fX1 == rhs.fX1 ) && ( fX2 == rhs.fX2 ) && ( fY1 == rhs.fY1 ) && ( fY2 == rhs.fY2 ) ); 42 | } 43 | 44 | bool operator!= ( const CRect2D& rhs ) const 45 | { 46 | return !( operator== ( rhs ) ); 47 | } 48 | 49 | CRect2D& operator= ( const CRect2D& rhs ); 50 | 51 | }; 52 | 53 | #endif -------------------------------------------------------------------------------- /src/game_sa/game/CExplosionManager.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CExplosionManager.h 6 | * PURPOSE: Explosion manager interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CGAME_EXPLOSIONMANAGER 13 | #define __CGAME_EXPLOSIONMANAGER 14 | 15 | #include 16 | #include "CExplosion.h" 17 | #include "Common.h" 18 | #include "CEntity.h" 19 | 20 | class CExplosionManager 21 | { 22 | public: 23 | virtual CExplosion * AddExplosion ( CEntity * pExplodingEntity, CEntity * pOwner, eExplosionType explosionType, CVector & vecPosition, unsigned int uiActivationDelay = 0, bool bMakeSound = true, float fCamShake = -1.0f, bool bNoDamage = false ) = 0; 24 | virtual VOID RemoveAllExplosionsInArea ( CVector * vecPosition, FLOAT fRadius ) = 0; 25 | virtual VOID RemoveAllExplosions ( void ) = 0; 26 | virtual CExplosion * GetExplosion ( DWORD ID ) = 0; 27 | virtual CExplosion * FindFreeExplosion ( void ) = 0; 28 | virtual int GetExplosionActiveCount ( void ) = 0; 29 | }; 30 | 31 | #endif -------------------------------------------------------------------------------- /src/game_sa/CTheCarGeneratorsSA.cpp: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CTheCarGeneratorsSA.cpp 6 | * PURPOSE: Car entity generator 7 | * DEVELOPERS: Ed Lyons 8 | * Christian Myhre Lundheim <> 9 | * 10 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 11 | * 12 | *****************************************************************************/ 13 | 14 | #include 15 | 16 | CTheCarGeneratorsSA::CTheCarGeneratorsSA() 17 | { 18 | DEBUG_TRACE("CTheCarGeneratorsSA::CTheCarGeneratorsSA()"); 19 | for(int i = 0; i 23 | 24 | class CRadar 25 | { 26 | public: 27 | virtual CMarker * CreateMarker(CVector * vecPosition)=0; 28 | virtual CMarker * CreateMarker(CVehicle * vehicle)=0; 29 | virtual CMarker * CreateMarker(CObject * object)=0; 30 | virtual CMarker * CreateMarker(CPed * ped)=0; 31 | 32 | virtual CMarker * GetFreeMarker( )=0; 33 | virtual CMarker * GetMarker( DWORD dwMarkerID )=0; 34 | 35 | virtual VOID ClearMarkerForEntity(CVehicle * vehicle)=0; 36 | virtual VOID ClearMarkerForEntity(CObject * object)=0; 37 | virtual VOID ClearMarkerForEntity(CPed * ped)=0; 38 | 39 | virtual VOID DrawAreaOnRadar(float fX1, float fY1, float fX2, float fY2, DWORD bgra )=0; 40 | }; 41 | 42 | #endif -------------------------------------------------------------------------------- /src/game_sa/game/TaskGoTo.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/TaskGoTo.h 6 | * PURPOSE: Go to task interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CGAME_TASKGOTO 13 | #define __CGAME_TASKGOTO 14 | 15 | #include "Task.h" 16 | #include "CPathFind.h" 17 | 18 | enum 19 | { 20 | WANDER_TYPE_STANDARD=0, 21 | WANDER_TYPE_COP, 22 | WANDER_TYPE_MEDIC, 23 | WANDER_TYPE_CRIMINAL, 24 | WANDER_TYPE_GANG, 25 | WANDER_TYPE_SHOP, 26 | WANDER_TYPE_FLEE, 27 | WANDER_TYPE_PROSTITUTE 28 | }; 29 | 30 | #define NO_WANDER_TYPE 9999 31 | 32 | class CTaskComplexWander : public virtual CTaskComplex 33 | { 34 | public: 35 | virtual ~CTaskComplexWander ( void ) {}; 36 | 37 | virtual CNodeAddress * GetNextNode()=0; 38 | virtual CNodeAddress * GetLastNode()=0; 39 | 40 | virtual int GetWanderType()=0; 41 | }; 42 | 43 | class CTaskComplexWanderStandard : public virtual CTaskComplexWander 44 | { 45 | public: 46 | virtual ~CTaskComplexWanderStandard ( void ) {}; 47 | }; 48 | 49 | #endif -------------------------------------------------------------------------------- /src/game_sa/CCamSA.cpp: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CCamSA.cpp 6 | * PURPOSE: Camera entity 7 | * DEVELOPERS: Ed Lyons 8 | * Jax <> 9 | * Cecill Etheredge 10 | * 11 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 12 | * 13 | *****************************************************************************/ 14 | 15 | #include 16 | 17 | CEntity* CCamSA::GetTargetEntity ( void ) const 18 | { 19 | CEntitySAInterface * pInterface = m_pInterface->CamTargetEntity; 20 | CPoolsSA* pPools = (CPoolsSA *)pGame->GetPools(); 21 | CEntity* pReturn = NULL; 22 | 23 | if ( pPools && pInterface ) 24 | { 25 | switch ( pInterface->nType ) 26 | { 27 | case ENTITY_TYPE_PED: 28 | pReturn = (CEntity*)(pPools->GetPed((DWORD *)pInterface)); 29 | break; 30 | case ENTITY_TYPE_VEHICLE: 31 | pReturn = (CEntity*)(pPools->GetVehicle((DWORD *)pInterface)); 32 | break; 33 | case ENTITY_TYPE_OBJECT: 34 | pReturn = (CEntity*)(pPools->GetObject ((DWORD *)pInterface)); 35 | break; 36 | default: 37 | break; 38 | } 39 | } 40 | return pReturn; 41 | } 42 | -------------------------------------------------------------------------------- /src/game_sa/game/CWeather.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CWeather.h 6 | * PURPOSE: Game weather interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CGAME_WEATHER 13 | #define __CGAME_WEATHER 14 | 15 | #include "Common.h" 16 | 17 | class CWeather 18 | { 19 | public: 20 | virtual unsigned char Get ( void ) = 0; 21 | virtual void Set ( unsigned char primary, unsigned char secondary ) = 0; 22 | virtual void SetPrimary ( unsigned char weather ) = 0; 23 | virtual void SetSecondary ( unsigned char weather ) = 0; 24 | 25 | virtual void ForceWeather ( unsigned char weather ) = 0; 26 | virtual void ForceWeatherNow ( unsigned char weather ) = 0; 27 | virtual void Release ( void ) = 0; 28 | 29 | virtual bool IsRaining ( void ) = 0; 30 | virtual float GetAmountOfRain ( void ) = 0; 31 | virtual void SetAmountOfRain ( float fAmount ) = 0; 32 | }; 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /src/game_sa/CProjectileSA.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CProjectileSA.h 6 | * PURPOSE: Header file for projectile entity class 7 | * DEVELOPERS: Ed Lyons 8 | * Cecill Etheredge 9 | * Jax <> 10 | * 11 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 12 | * 13 | *****************************************************************************/ 14 | 15 | #ifndef __CGAMESA_PROJECTILE 16 | #define __CGAMESA_PROJECTILE 17 | 18 | #include 19 | #include "CObjectSA.h" 20 | 21 | class CProjectileSAInterface : public CObjectSAInterface // entirely inherited from CObject 22 | { 23 | 24 | }; 25 | 26 | class CProjectileSA : public virtual CProjectile, public virtual CObjectSA 27 | { 28 | private: 29 | CProjectileSAInterface * internalInterface; 30 | class CProjectileInfo * projectileInfo; 31 | public: 32 | CProjectileSA(class CProjectileSAInterface * projectileInterface); 33 | ~CProjectileSA( ); 34 | void Destroy(); 35 | 36 | void SetProjectileInfo ( CProjectileInfo* pProjectileInfo ) { projectileInfo = pProjectileInfo; } 37 | }; 38 | 39 | #endif -------------------------------------------------------------------------------- /src/game_sa/game/CObject.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CObject.h 6 | * PURPOSE: Object entity interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CGAME_OBJECT 13 | #define __CGAME_OBJECT 14 | 15 | #include "CPhysical.h" 16 | 17 | class CVehicle; 18 | class CPed; 19 | class CObjectSAInterface; 20 | 21 | class CObject : public virtual CPhysical 22 | { 23 | public: 24 | virtual ~CObject ( void ) {}; 25 | 26 | virtual CObjectSAInterface * GetObjectInterface ( void ) = 0; 27 | 28 | virtual void Explode ( void ) = 0; 29 | virtual void SetScale ( float fScale ) = 0; 30 | virtual void SetHealth ( float fHealth ) = 0; 31 | virtual float GetHealth ( void ) = 0; 32 | virtual void SetModelIndex ( unsigned long ulModel ) = 0; 33 | 34 | virtual void SetAlpha ( unsigned char ucAlpha ) = 0; 35 | virtual unsigned char GetAlpha ( ) = 0; 36 | }; 37 | 38 | #endif -------------------------------------------------------------------------------- /src/game_sa/CColModelSA.cpp: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CColModelSA.cpp 6 | * PURPOSE: Collision model entity 7 | * DEVELOPERS: Cecill Etheredge 8 | * arc_ 9 | * 10 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 11 | * 12 | *****************************************************************************/ 13 | 14 | #include 15 | 16 | CColModelSA::CColModelSA ( void ) 17 | { 18 | m_pInterface = new CColModelSAInterface; 19 | DWORD dwThis = ( DWORD ) m_pInterface; 20 | DWORD dwFunc = FUNC_CColModel_Constructor; 21 | _asm 22 | { 23 | mov ecx, dwThis 24 | call dwFunc 25 | } 26 | m_bDestroyInterface = true; 27 | } 28 | 29 | 30 | CColModelSA::CColModelSA ( CColModelSAInterface * pInterface ) 31 | { 32 | m_pInterface = pInterface; 33 | m_bDestroyInterface = false; 34 | } 35 | 36 | 37 | CColModelSA::~CColModelSA ( void ) 38 | { 39 | if ( m_bDestroyInterface ) 40 | { 41 | DWORD dwThis = ( DWORD ) m_pInterface; 42 | DWORD dwFunc = FUNC_CColModel_Destructor; 43 | _asm 44 | { 45 | mov ecx, dwThis 46 | call dwFunc 47 | } 48 | delete m_pInterface; 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /src/game_sa/game/CWater.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CWater.h 6 | * PURPOSE: Water interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CWATER_H 13 | #define __CWATER_H 14 | 15 | enum EWaterPolyType 16 | { 17 | WATER_POLY_NONE = 0, 18 | WATER_POLY_QUAD = 1, 19 | WATER_POLY_TRIANGLE = 2, 20 | WATER_POLY_LIST = 3 21 | }; 22 | 23 | #define WATER_VISIBLE 1 24 | #define WATER_SHALLOW 2 25 | 26 | class CWaterVertex 27 | { 28 | public: 29 | virtual WORD GetID () = 0; 30 | virtual void GetPosition ( CVector& vec ) = 0; 31 | virtual bool SetPosition ( CVector& vec, void* pChangeSource = NULL ) = 0; 32 | }; 33 | 34 | class CWaterPoly 35 | { 36 | public: 37 | virtual EWaterPolyType GetType () = 0; 38 | virtual WORD GetID () = 0; 39 | virtual int GetNumVertices () = 0; 40 | virtual CWaterVertex* GetVertex ( int index ) = 0; 41 | virtual bool ContainsPoint ( float fX, float fY ) = 0; 42 | }; 43 | 44 | #endif 45 | -------------------------------------------------------------------------------- /src/game_sa/game/CEventList.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CEventList.h 6 | * PURPOSE: Event list interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CGAME_EVENTLIST 13 | #define __CGAME_EVENTLIST 14 | 15 | #include "Common.h" 16 | #include "CEvent.h" 17 | #include 18 | 19 | class CEventDamage; 20 | class CEventGunShot; 21 | class CEventDamageSAInterface; 22 | 23 | class CEventList 24 | { 25 | public: 26 | virtual CEvent * FindClosestEvent ( eEventType eventtype, CVector * vecPosition ) = 0; 27 | virtual CEvent * GetEvent ( DWORD ID ) = 0; 28 | virtual CEvent * GetEvent ( eEventType eventtype ) = 0; 29 | 30 | virtual CEventDamage * GetEventDamage ( CEventDamageSAInterface * pInterface ) = 0; 31 | 32 | virtual CEventDamage * CreateEventDamage ( CEntity * pEntity, unsigned int i_1, eWeaponType weaponType, ePedPieceTypes hitZone, unsigned char uc_2, bool b_3, bool b_4 ) = 0; 33 | virtual CEventGunShot * CreateEventGunShot ( CEntity * pEntity, CVector & vecOrigin, CVector & vecTarget, bool b_1 ) = 0; 34 | }; 35 | 36 | #endif -------------------------------------------------------------------------------- /src/game_sa/CAERadioTrackManagerSA.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CAERadioTrackManagerSA.cpp 6 | * PURPOSE: Header file for audio entity radio track manager class 7 | * DEVELOPERS: Ed Lyons 8 | * 9 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 10 | * 11 | *****************************************************************************/ 12 | 13 | #ifndef __CGAMESA_AERADIOTRACKMANAGER 14 | #define __CGAMESA_AERADIOTRACKMANAGER 15 | 16 | #include "Common.h" 17 | #include 18 | 19 | #define FUNC_GetCurrentRadioStationID 0x4E83F0 20 | #define FUNC_IsVehicleRadioActive 0x4E9800 21 | #define FUNC_GetRadioStationName 0x4E9E10 22 | #define FUNC_IsRadioOn 0x4E8350 23 | #define FUNC_SetBassSetting 0x4E82F0 24 | #define FUNC_Reset 0x4E7F80 25 | #define FUNC_StartRadio 0x4EB3C0 26 | 27 | #define CLASS_CAERadioTrackManager 0x8CB6F8 28 | 29 | 30 | class CAERadioTrackManagerSA : public CAERadioTrackManager 31 | { 32 | public: 33 | BYTE GetCurrentRadioStationID(); 34 | BYTE IsVehicleRadioActive(); 35 | char * GetRadioStationName(BYTE bStationID); 36 | BOOL IsRadioOn(); 37 | VOID SetBassSetting(DWORD dwBass); 38 | VOID Reset(); 39 | VOID StartRadio(BYTE bStationID, BYTE bUnknown); 40 | }; 41 | 42 | #endif -------------------------------------------------------------------------------- /src/game_sa/CEventGunShotSA.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CEventGunShotSA.h 6 | * PURPOSE: Header file for gunshot event class 7 | * DEVELOPERS: Jax <> 8 | * 9 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 10 | * 11 | *****************************************************************************/ 12 | 13 | #ifndef __CEventGunShotSA_H 14 | #define __CEventGunShotSA_H 15 | 16 | #include 17 | 18 | #define FUNC_CEventGunShot_Constructor 0x4ac610 19 | #define FUNC_CEventGunShot_Destructor 0x4ac720 20 | 21 | class CEventGunShotSAInterface 22 | { 23 | public: 24 | char pad [ 100 ]; 25 | }; 26 | 27 | class CEventGunShotSA : public CEventGunShot 28 | { 29 | public: 30 | 31 | CEventGunShotSA ( CEntity * pEntity, CVector & vecOrigin, CVector & vecTarget, bool b_1 ); 32 | CEventGunShotSA ( CEventGunShotSAInterface * pInterface ) { m_pInterface = pInterface; } 33 | 34 | inline CEventGunShotSAInterface * GetInterface ( void ) { return m_pInterface; } 35 | 36 | void Destroy ( bool bDestroyInterface ); 37 | 38 | private: 39 | CEventGunShotSAInterface * m_pInterface; 40 | }; 41 | 42 | #endif -------------------------------------------------------------------------------- /src/game_sa/CPickupsSA.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CPickupsSA.h 6 | * PURPOSE: Header file for pickup manager class 7 | * DEVELOPERS: Ed Lyons 8 | * Christian Myhre Lundheim <> 9 | * Cecill Etheredge 10 | * 11 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 12 | * 13 | *****************************************************************************/ 14 | 15 | #ifndef __CGAMESA_PICKUPS 16 | #define __CGAMESA_PICKUPS 17 | 18 | #include 19 | #include "CPickupSA.h" 20 | 21 | #define MAX_PICKUPS 620 //##SA## 22 | #define MAX_PICKUPS_ALWAYS_UPDATED 16 23 | 24 | #define ARRAY_PICKUPS 0x9788C0 // ##SA## 25 | 26 | #define FUNC_CPickups__Update 0x458DE0 27 | 28 | class CPickupSA; 29 | 30 | class CPickupsSA : public CPickups 31 | { 32 | private: 33 | CPickupSA * Pickups[MAX_PICKUPS]; 34 | public: 35 | CPickupsSA ( void ); 36 | ~CPickupsSA ( void ); 37 | 38 | CPickup * GetPickup(DWORD ID); 39 | CPickup * CreatePickup(CVector * position, DWORD ModelIndex, ePickupType Type, DWORD dwMonetaryValue, DWORD dwMoneyPerDay, BYTE bPingOutOfPlayer); 40 | void DisablePickupProcessing ( bool bDisabled ); 41 | }; 42 | 43 | #endif -------------------------------------------------------------------------------- /src/cheat_actor.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | PROJECT: mod_sa 4 | LICENSE: See LICENSE in the top level directory 5 | COPYRIGHT: Copyright we_sux, BlastHack 6 | 7 | mod_sa is available from https://github.com/BlastHackNet/mod_s0beit_sa/ 8 | 9 | mod_sa is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | mod_sa is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with mod_sa. If not, see . 21 | 22 | */ 23 | void cheat_actor_teleport ( struct actor_info *info, const float pos[3], int interior_id ); 24 | void cheat_handle_actor_autoaim ( struct actor_info *info, double time_diff ); 25 | void cheat_handle_actor_air_brake ( struct actor_info *info, double time_diff ); 26 | //void cheat_handle_SpiderFeet ( struct actor_info *ainfo, double time_diff ); 27 | void cheat_handle_actor_fly ( struct actor_info *ainfo, double time_diff ); 28 | void cheat_handle_actor_surf(struct actor_info *ainfo); 29 | 30 | CEntitySAInterface *cheat_actor_GetCEntitySAInterface ( actor_info *ainfo ); 31 | -------------------------------------------------------------------------------- /src/game_sa/game/CMarker.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CMarker.h 6 | * PURPOSE: Marker entity interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CGAME_MARKER 13 | #define __CGAME_MARKER 14 | 15 | #include "Common.h" 16 | #include "CEntity.h" 17 | #include "CObject.h" 18 | #include "CPed.h" 19 | #include "CVehicle.h" 20 | 21 | #include 22 | 23 | #define MARKER_SCALE_SMALL 1 24 | #define MARKER_SCALE_NORMAL 2 25 | 26 | class CMarker 27 | { 28 | public: 29 | /* Our Functions */ 30 | virtual VOID SetSprite ( eMarkerSprite Sprite )=0; 31 | virtual VOID SetDisplay ( eMarkerDisplay wDisplay )=0; 32 | virtual VOID SetScale ( WORD wScale )=0; 33 | virtual VOID SetColor ( eMarkerColor color )=0; 34 | virtual VOID SetColor ( RGBA color )=0; 35 | virtual VOID Remove ( )=0; 36 | virtual BOOL IsActive ( )=0; 37 | virtual VOID SetPosition ( CVector * vecPosition )=0; 38 | virtual VOID SetEntity ( CVehicle * vehicle )=0; 39 | virtual VOID SetEntity ( CPed * ped )=0; 40 | virtual VOID SetEntity ( CObject * object )=0; 41 | virtual CEntity * GetEntity ( )=0; 42 | virtual CVector * GetPosition ( )=0; 43 | }; 44 | 45 | #endif -------------------------------------------------------------------------------- /src/game_sa/TaskSecondarySA.cpp: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/TaskSecondarySA.cpp 6 | * PURPOSE: Secondary game tasks 7 | * DEVELOPERS: Ed Lyons 8 | * Jax <> 9 | * 10 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 11 | * 12 | *****************************************************************************/ 13 | 14 | #include 15 | 16 | // ############################################################################## 17 | // ## Name: CTaskSimpleDuck 18 | // ## Purpose: Make the ped duck 19 | // ############################################################################## 20 | 21 | CTaskSimpleDuckSA::CTaskSimpleDuckSA ( eDuckControlTypes nDuckControl, unsigned short nLengthOfDuck, short nUseShotsWhizzingEvents ) 22 | { 23 | DWORD dwFunc = FUNC_CTaskSimpleDuck__Constructor; 24 | this->CreateTaskInterface(sizeof(CTaskSimpleDuckSAInterface)); 25 | DWORD dwThisInterface = (DWORD)this->GetInterface(); 26 | _asm 27 | { 28 | mov ecx, dwThisInterface 29 | push ebx 30 | mov bx, nUseShotsWhizzingEvents 31 | push ebx 32 | mov bx, nLengthOfDuck 33 | push ebx 34 | push nDuckControl 35 | call dwFunc 36 | pop ebx 37 | } 38 | } -------------------------------------------------------------------------------- /src/game_sa/CCoronasSA.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CCoronasSA.cpp 6 | * PURPOSE: Header file for corona entity manager class 7 | * DEVELOPERS: Ed Lyons 8 | * 9 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 10 | * 11 | *****************************************************************************/ 12 | 13 | #ifndef __CGAMESA_CORONAS 14 | #define __CGAMESA_CORONAS 15 | 16 | #include 17 | #include "CRegisteredCoronaSA.h" 18 | 19 | #define FUNC_DoSunAndMoon 0x6FC5A0 20 | 21 | #define MAX_CORONAS 64 // ##SA## 22 | #define MAX_CORONA_TEXTURES 9 23 | #define ARRAY_CORONAS 0xC3E058 // also in CRegisteredCoronasSA.h ##SA## 24 | #define ARRAY_CORONA_TEXTURES 0xC3E000 // ##SA## 25 | 26 | class CCoronasSA : public CCoronas 27 | { 28 | private: 29 | CRegisteredCoronaSA * Coronas[MAX_CORONAS]; 30 | public: 31 | CCoronasSA(); 32 | ~CCoronasSA (); 33 | 34 | CRegisteredCorona * GetCorona(DWORD ID); 35 | CRegisteredCorona * CreateCorona(DWORD Identifier, CVector * position); 36 | CRegisteredCorona * FindFreeCorona(); 37 | CRegisteredCorona * FindCorona(DWORD Identifier); 38 | RwTexture * GetTexture(eCoronaType type); 39 | 40 | void DisableSunAndMoon ( bool bDisabled ); 41 | }; 42 | 43 | #endif -------------------------------------------------------------------------------- /src/game_sa/CStatsSA.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CStatsSA.h 6 | * PURPOSE: Header file for game statistics class 7 | * DEVELOPERS: Ed Lyons 8 | * 9 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 10 | * 11 | *****************************************************************************/ 12 | 13 | #ifndef __CGAMESA_STATS 14 | #define __CGAMESA_STATS 15 | 16 | #include 17 | #define WIN32_LEAN_AND_MEAN 18 | #include 19 | 20 | #define FUNC_GetStatValue 0x558E40 21 | #define FUNC_ModifyStat 0x55D090 22 | #define FUNC_IncrementStat 0x55C180 23 | #define FUNC_DecrementStat 0x559FA0 24 | #define FUNC_SetStatValue 0x55A070 25 | #define FUNC_CWeaponInfo_GetSkillStatIndex 0x743CD0 26 | 27 | class CStatsSA : public CStats 28 | { 29 | public: 30 | float GetStatValue ( unsigned short usIndex ); 31 | void ModifyStat ( unsigned short usIndex, float fAmmount ); 32 | void IncrementStat ( unsigned short usIndex, float fAmmount ); 33 | void DecrementStat ( unsigned short usIndex, float fAmmount ); 34 | void SetStatValue ( unsigned short usIndex, float fAmmount ); 35 | 36 | unsigned short GetSkillStatIndex ( eWeaponType type ); 37 | }; 38 | 39 | #endif -------------------------------------------------------------------------------- /src/game_sa/CMenuManagerSA.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CMenuManagerSA.h 6 | * PURPOSE: Header file for game menu manager class 7 | * DEVELOPERS: Ed Lyons 8 | * 9 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 10 | * 11 | *****************************************************************************/ 12 | 13 | #ifndef __CGAMESA_MENUMANAGER 14 | #define __CGAMESA_MENUMANAGER 15 | 16 | #include 17 | #define WIN32_LEAN_AND_MEAN 18 | #include 19 | 20 | #define CLASS_CMenuManager 0xBA6748 21 | 22 | #define FUNC_SwitchToNewScreen 0x573680 23 | #define FUNC_DisplayHelperText 0x57E240 24 | 25 | class CMenuManagerSAInterface 26 | { 27 | public: 28 | BYTE bPadding[92]; 29 | bool bIsActive; 30 | BYTE bPadding2[256]; 31 | BYTE bCurrentScreen; 32 | BYTE bLastScreen; 33 | }; 34 | 35 | class CMenuManagerSA : public CMenuManager 36 | { 37 | private: 38 | CMenuManagerSAInterface * internalInterface; 39 | public: 40 | CMenuManagerSA() { internalInterface = (CMenuManagerSAInterface *)CLASS_CMenuManager; } 41 | 42 | CMenuManagerSAInterface * GetInterface() { return internalInterface; } 43 | 44 | BYTE GetCurrentScreen(); 45 | BYTE GetPreviousScreen(); 46 | void SwitchToNewScreen(BYTE ScreenID); 47 | void DisplayHelpText ( char * szHelpText ); 48 | }; 49 | 50 | #endif -------------------------------------------------------------------------------- /src/game_sa/game/CGarage.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CGarage.h 6 | * PURPOSE: Garage interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CGAME_GARAGE 13 | #define __CGAME_GARAGE 14 | 15 | #include "Common.h" 16 | #include 17 | 18 | class CGarageInterface 19 | { 20 | public: 21 | }; 22 | 23 | class CGarage 24 | { 25 | public: 26 | virtual void SetType ( BYTE type ) = 0; 27 | virtual BYTE GetType ( ) const = 0; 28 | 29 | virtual void GetPosition ( CVector& vecPosition ) const = 0; 30 | virtual void GetDirection ( FLOAT& x1, FLOAT& y1, FLOAT& x2, FLOAT& y2 ) const = 0; 31 | virtual void GetSize ( FLOAT& height, FLOAT& width, FLOAT& depth ) const = 0; 32 | virtual void GetBoundingBox ( FLOAT& left, FLOAT& right, FLOAT& front, FLOAT& back ) const = 0; 33 | 34 | virtual void SetOpen ( bool bOpen ) = 0; 35 | virtual bool IsOpen ( ) const = 0; 36 | 37 | virtual CGarageInterface* GetInterface ( ) = 0; 38 | }; 39 | 40 | #endif -------------------------------------------------------------------------------- /src/game_sa/game/CAudio.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CAudio.h 6 | * PURPOSE: Game audio interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CGAME_AUDIO 13 | #define __CGAME_AUDIO 14 | 15 | #include 16 | #include "CVehicle.h" 17 | 18 | class CAudio 19 | { 20 | public: 21 | virtual VOID PlayFrontEndSound(DWORD dwSound)=0; 22 | virtual VOID PlayBeatTrack ( short iTrack )=0; 23 | virtual VOID SetEffectsMasterVolume ( BYTE bVolume )=0; // 64 = max volume 24 | virtual VOID SetMusicMasterVolume ( BYTE bVolume )=0; 25 | virtual VOID ClearMissionAudio ( int slot = 1)=0; 26 | virtual VOID PreloadMissionAudio ( unsigned short usAudioEvent, int slot = 1 )=0; 27 | virtual unsigned char GetMissionAudioLoadingStatus ( int slot = 1 )=0; 28 | virtual bool IsMissionAudioSampleFinished ( int slot = 1 )=0; 29 | virtual VOID AttachMissionAudioToPhysical ( CPhysical * physical, int slot = 1 )=0; 30 | virtual VOID SetMissionAudioPosition ( CVector * position, int slot = 1 )=0; 31 | virtual bool PlayLoadedMissionAudio ( int slot = 1 )=0; 32 | virtual VOID PauseAllSound ( bool bPaused )=0; 33 | virtual VOID StopRadio()=0; 34 | virtual VOID StartRadio( unsigned int station )=0; 35 | }; 36 | 37 | #endif -------------------------------------------------------------------------------- /src/game_sa/game/CRegisteredCorona.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CRegisteredCorona.h 6 | * PURPOSE: Registered corona entity interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CGAME_REGISTEREDCORONA 13 | #define __CGAME_REGISTEREDCORONA 14 | 15 | #include "Common.h" 16 | #include 17 | 18 | #include 19 | #include "RenderWare.h" 20 | 21 | class CRegisteredCorona 22 | { 23 | public: 24 | virtual CVector * GetPosition()=0; 25 | virtual VOID SetPosition(CVector * vector)=0; 26 | virtual FLOAT GetSize()=0; 27 | virtual VOID SetSize(FLOAT fSize)=0; 28 | virtual FLOAT GetRange()=0; 29 | virtual VOID SetRange(FLOAT fRange)=0; 30 | virtual FLOAT GetPullTowardsCamera()=0; 31 | virtual VOID SetPullTowardsCamera(FLOAT fPullTowardsCamera)=0; 32 | virtual VOID SetColor(BYTE Red, BYTE Green, BYTE Blue, BYTE Alpha)=0; 33 | virtual VOID SetTexture(RwTexture * texture)=0; 34 | virtual VOID SetTexture(eCoronaType texture)=0; 35 | virtual BYTE GetFlareType()=0; 36 | virtual VOID SetFlareType(BYTE fFlareType)=0; 37 | virtual DWORD GetIdentifier()=0; 38 | virtual DWORD GetID()=0; 39 | virtual VOID Refresh()=0; 40 | virtual VOID Disable()=0; 41 | }; 42 | #endif -------------------------------------------------------------------------------- /src/game_sa/CCheckpointsSA.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CCheckpointsSA.h 6 | * PURPOSE: Header file for checkpoint entity manager class 7 | * DEVELOPERS: Ed Lyons 8 | * 9 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 10 | * 11 | *****************************************************************************/ 12 | 13 | #ifndef __CGAMESA_CHECKPOINTS 14 | #define __CGAMESA_CHECKPOINTS 15 | 16 | //00722c40 public: static class CCheckpoint * __cdecl CCheckpoints::PlaceMarker(unsigned int,unsigned short,class CVector &,class CVector &,float,unsigned char,unsigned char,unsigned char,unsigned char,unsigned short,float,short) 17 | #define FUNC_CCheckpoints__PlaceMarker 0x722c40 // ##SA## 18 | 19 | #define MAX_CHECKPOINTS 32 20 | 21 | #define ARRAY_CHECKPOINTS 0xC7F158 22 | 23 | #include 24 | #include "CCheckpointSA.h" 25 | 26 | class CCheckpointSA; 27 | 28 | class CCheckpointsSA : public CCheckpoints 29 | { 30 | private: 31 | CCheckpointSA * Checkpoints[MAX_CHECKPOINTS]; 32 | public: 33 | // constructor 34 | CCheckpointsSA(); 35 | ~CCheckpointsSA ( void ); 36 | 37 | CCheckpoint * CreateCheckpoint(DWORD Identifier, WORD wType, CVector * vecPosition, CVector * vecPointDir, FLOAT fSize, FLOAT fPulseFraction, RGBA Color); 38 | CCheckpoint * FindFreeMarker(); 39 | }; 40 | 41 | #endif -------------------------------------------------------------------------------- /src/game_sa/game/CFire.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CFire.h 6 | * PURPOSE: Fire interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CGAME_FIRE 13 | #define __CGAME_FIRE 14 | 15 | #include 16 | #include 17 | #include "CEntity.h" 18 | 19 | class CFireInterface 20 | { 21 | public: 22 | }; 23 | 24 | class CFire 25 | { 26 | public: 27 | virtual VOID Extinguish ( )=0; 28 | virtual CVector * GetPosition ( )=0; 29 | virtual VOID SetPosition ( CVector & vecPosition )=0; 30 | virtual VOID SetTimeToBurnOut ( DWORD dwTime )=0; 31 | virtual DWORD GetTimeToBurnOut ( )=0; 32 | virtual CEntity * GetCreator ( )=0; 33 | virtual CEntity * GetEntityOnFire ( )=0; 34 | virtual VOID SetTarget ( CEntity * entity )=0; 35 | virtual BOOL IsIgnited ( )=0; 36 | virtual VOID SetSilent ( BOOL bSilent )=0; 37 | virtual BOOL IsBeingExtinguished ()=0; 38 | virtual VOID Ignite( )=0; 39 | virtual FLOAT GetStrength ( )=0; 40 | virtual VOID SetStrength ( FLOAT fStrength )=0; 41 | virtual VOID SetNumGenerationsAllowed ( char generations )=0; 42 | virtual CFireInterface* GetInterface ( ) = 0; 43 | }; 44 | 45 | #endif -------------------------------------------------------------------------------- /src/game_sa/CPedDamageResponseSA.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CPedDamageResponseSA.h 6 | * PURPOSE: Header file for ped damage response 7 | * DEVELOPERS: Jax <> 8 | * 9 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 10 | * 11 | *****************************************************************************/ 12 | 13 | #ifndef __CGAMESA_PEDDAMAGERESPONSE 14 | #define __CGAMESA_PEDDAMAGERESPONSE 15 | 16 | #include 17 | 18 | class CPedDamageResponseSAInterface 19 | { 20 | public: 21 | float fDamageHealth; 22 | float fDamageArmor; 23 | bool bUnk; 24 | bool bForceDeath; 25 | bool bDamageCalculated; 26 | bool bUnk3; 27 | }; 28 | 29 | 30 | class CPedDamageResponseSA : public CPedDamageResponse 31 | { 32 | public: 33 | CPedDamageResponseSA ( CPedDamageResponseSAInterface * pInterface ) { m_pInterface = pInterface; } 34 | 35 | CPedDamageResponseSAInterface * GetInterface ( void ) { return m_pInterface; } 36 | 37 | void Calculate ( CEntity * pEntity, float fDamage, eWeaponType weaponType, ePedPieceTypes bodyPart, bool b_1, bool bSpeak ); 38 | 39 | private: 40 | CPedDamageResponseSAInterface * m_pInterface; 41 | }; 42 | 43 | #endif -------------------------------------------------------------------------------- /src/game_sa/CCivilianPedSA.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CCivilianPedSA.h 6 | * PURPOSE: Header file for civilian ped entity class 7 | * DEVELOPERS: Ed Lyons 8 | * Christian Myhre Lundheim <> 9 | * 10 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 11 | * 12 | *****************************************************************************/ 13 | 14 | #ifndef __CGAMESA_CIVILIANPED 15 | #define __CGAMESA_CIVILIANPED 16 | 17 | #include 18 | #include "CPedSA.h" 19 | 20 | #define FUNC_ClearWeaponTarget 0x533B30 21 | 22 | #define FUNC_CPedOperatorNew 0x5E4720 // ##SA## 23 | #define FUNC_CCivilianPedConstructor 0x5DDB70 // ##SA## 24 | 25 | #define FUNC_CCivilianPedDestructor 0x5DDBE0 // ##SA## 26 | #define FUNC_CCivilianPedOperatorDelete 0x5E4760 // ##SA## 27 | 28 | #define SIZEOF_CCIVILIANPED 1948 29 | 30 | class CCivilianPedSAInterface : public CPedSAInterface 31 | { 32 | public: 33 | 34 | }; 35 | 36 | class CCivilianPedSA : public virtual CCivilianPed, public virtual CPedSA 37 | { 38 | private: 39 | 40 | public: 41 | CCivilianPedSA( ePedModel pedType ); 42 | CCivilianPedSA( CPedSAInterface * ped ); 43 | ~CCivilianPedSA( ); 44 | 45 | /* 46 | float GetSprintEnergy ( void ) { return 1000.0f; }; 47 | void SetSprintEnergy ( float fSprintEnergy ) {}; 48 | */ 49 | }; 50 | 51 | #endif -------------------------------------------------------------------------------- /src/game_sa/game/CAnimBlendAssocGroup.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CAnimBlendAssocGroup.h 6 | * PURPOSE: Animation blend association group interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CAnimBlendAssocGroup_H 13 | #define __CAnimBlendAssocGroup_H 14 | 15 | typedef unsigned char BYTE; 16 | typedef unsigned long AssocGroupId; 17 | class CAnimBlendStaticAssociation; 18 | struct RpClump; 19 | class CAnimBlock; 20 | 21 | class CAnimBlendAssocGroup 22 | { 23 | public: 24 | virtual void InitEmptyAssociations ( RpClump * pClump ) = 0; 25 | virtual bool IsCreated ( void ) = 0; 26 | virtual int GetNumAnimations ( void ) = 0; 27 | virtual CAnimBlock * GetAnimBlock ( void ) = 0; 28 | virtual CAnimBlendStaticAssociation * GetAnimation ( unsigned int ID ) = 0; 29 | virtual void CreateAssociations ( const char * szBlockName ) = 0; 30 | virtual bool IsLoaded ( void ) = 0; 31 | virtual void SetIDOffset ( int iOffset ) = 0; 32 | }; 33 | 34 | #endif -------------------------------------------------------------------------------- /src/sparsehash/windows/google/sparsehash/sparseconfig.h: -------------------------------------------------------------------------------- 1 | #ifndef SPARSEHASH_WINDOWS_SPARSECONFIG_H_ 2 | #define SPARSEHASH_WINDOWS_SPARSECONFIG_H_ 3 | 4 | /*** 5 | *** These are #defines that autoheader puts in config.h.in that we 6 | *** want to show up in sparseconfig.h, the minimal config.h file 7 | *** #included by all our .h files. The reason we don't take 8 | *** everything that autoheader emits is that we have to include a 9 | *** config.h in installed header files, and we want to minimize the 10 | *** number of #defines we make so as to not pollute the namespace. 11 | ***/ 12 | /* NOTE: these are for internal use only. Don't use these 13 | * #defines in your own programs! 14 | */ 15 | #define GOOGLE_NAMESPACE ::google 16 | #define HASH_NAMESPACE stdext 17 | #define HASH_FUN_H 18 | #define SPARSEHASH_HASH HASH_NAMESPACE::hash_compare 19 | #undef HAVE_UINT16_T 20 | #undef HAVE_U_INT16_T 21 | #define HAVE___UINT16 1 22 | #define HAVE_LONG_LONG 1 23 | #define HAVE_SYS_TYPES_H 1 24 | #undef HAVE_STDINT_H 25 | #undef HAVE_INTTYPES_H 26 | #define HAVE_MEMCPY 1 27 | #define STL_NAMESPACE std 28 | #define _END_GOOGLE_NAMESPACE_ \ 29 | } 30 | #define _START_GOOGLE_NAMESPACE_ namespace google \ 31 | { 32 | 33 | // --------------------------------------------------------------------- 34 | // Extra stuff not found in config.h.include 35 | #define WIN32_LEAN_AND_MEAN /* We always want minimal includes */ 36 | #include /* TODO(csilvers): do in every .h file instead? */ 37 | #endif /* SPARSEHASH_WINDOWS_SPARSECONFIG_H_ */ 38 | -------------------------------------------------------------------------------- /src/game_sa/CEventListSA.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CEventListSA.h 6 | * PURPOSE: Header file for event list class 7 | * DEVELOPERS: Ed Lyons 8 | * 9 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 10 | * 11 | *****************************************************************************/ 12 | 13 | #ifndef __CGAMESA_EVENTLIST 14 | #define __CGAMESA_EVENTLIST 15 | 16 | #include 17 | #include "CEventSA.h" 18 | 19 | #define FUNC_ClearEvent 0x489F50 20 | #define FUNC_FindClosestEvent 0x489E70 21 | #define FUNC_GetEvent 0x489F70 22 | 23 | #define ARRAY_CEvent 0x7DAAB8 24 | 25 | #define MAX_EVENTS 64 26 | 27 | class CEventListSA : public CEventList 28 | { 29 | CEvent * FindClosestEvent ( eEventType eventtype, CVector * vecPosition ); 30 | CEvent * GetEvent ( DWORD ID ); 31 | CEvent * GetEvent ( eEventType eventtype ); 32 | 33 | CEventDamage * GetEventDamage ( CEventDamageSAInterface * pInterface ); 34 | 35 | CEventDamage * CreateEventDamage ( CEntity * pEntity, unsigned int i_1, eWeaponType weaponType, ePedPieceTypes hitZone, unsigned char uc_2, bool b_3, bool b_4 ); 36 | CEventGunShot * CreateEventGunShot ( CEntity * pEntity, CVector & vecOrigin, CVector & vecTarget, bool b_1 ); 37 | }; 38 | 39 | #endif -------------------------------------------------------------------------------- /src/game_sa/CStreamingSA.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CStreamingSA.h 6 | * PURPOSE: Header file for data streamer class 7 | * DEVELOPERS: Jax <> 8 | * 9 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 10 | * 11 | *****************************************************************************/ 12 | 13 | #ifndef __CStreamingSA_H 14 | #define __CStreamingSA_H 15 | 16 | #include 17 | #include "Common.h" 18 | 19 | #define FUNC_CStreaming__RequestModel 0x4087E0 20 | #define FUNC_CStreaming__HasVehicleUpgradeLoaded 0x407820 21 | #define FUNC_CStreaming_RequestAnimations 0x407120 22 | #define FUNC_CStreaming_RequestSpecialModel 0x409d10 23 | 24 | class CStreamingSA : public CStreaming 25 | { 26 | public: 27 | void RequestModel ( DWORD dwModelID, DWORD dwFlags ); 28 | void LoadAllRequestedModels ( BOOL bOnlyPriorityModels = 0 ); 29 | BOOL HasModelLoaded ( DWORD dwModelID ); 30 | void RequestAnimations ( int iAnimationLibraryBlock, DWORD dwFlags ); 31 | BOOL HaveAnimationsLoaded ( int iAnimationLibraryBlock ); 32 | bool HasVehicleUpgradeLoaded ( int model ); 33 | void RequestSpecialModel ( DWORD model, const char * szTexture, DWORD channel ); 34 | }; 35 | 36 | #endif -------------------------------------------------------------------------------- /src/game_sa/game/CProjectileInfo.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CProjectileInfo.h 6 | * PURPOSE: Projectile entity information interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CGAME_PROJECTILEINFO 13 | #define __CGAME_PROJECTILEINFO 14 | 15 | class CProjectile; 16 | class CPlayerPed; 17 | class CProjectileInfo 18 | { 19 | public: 20 | virtual bool AddProjectile ( CEntity * creator, eWeaponType eWeapon, CVector vecOrigin, float fForce, CVector * target, CEntity * targetEntity )=0; 21 | virtual CProjectile * GetProjectile ( DWORD ID ) = 0; 22 | virtual CProjectile * GetProjectile ( void * projectilePointer )=0; //hack, don't use please 23 | virtual CProjectileInfo * GetProjectileInfo ( void * projectileInfoInterface )=0; //don't use 24 | virtual void RemoveProjectile ( CProjectileInfo * pProjectileInfo, CProjectile * pProjectile )=0; 25 | virtual CProjectileInfo * GetNextFreeProjectileInfo ( )=0; 26 | virtual CProjectileInfo * GetProjectileInfo ( DWORD Index )=0; 27 | 28 | virtual CEntity* GetTarget ( void ) = 0; 29 | virtual void SetTarget ( CEntity* pEntity ) = 0; 30 | 31 | virtual bool IsActive ( void ) = 0; 32 | }; 33 | 34 | #endif -------------------------------------------------------------------------------- /src/game_sa/CColModelSA.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CColModelSA.h 6 | * PURPOSE: Header file for collision model entity class 7 | * DEVELOPERS: Cecill Etheredge 8 | * 9 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 10 | * 11 | *****************************************************************************/ 12 | 13 | #ifndef __CGAMESA_COLMODELSA 14 | #define __CGAMESA_COLMODELSA 15 | 16 | #include 17 | #include 18 | 19 | #define FUNC_CColModel_Constructor 0x40FB60 20 | #define FUNC_CColModel_Destructor 0x40F700 21 | 22 | typedef struct 23 | { 24 | char version[4]; 25 | DWORD size; 26 | char name[0x18]; 27 | } ColModelFileHeader; 28 | 29 | class CColModelSAInterface 30 | { 31 | BYTE pad [ 44 ]; 32 | void * pCollision; // CCollision 33 | }; 34 | 35 | class CColModelSA : public CColModel 36 | { 37 | public: 38 | CColModelSA ( void ); 39 | CColModelSA ( CColModelSAInterface * pInterface ); 40 | ~CColModelSA ( void ); 41 | 42 | inline CColModelSAInterface * GetInterface ( void ) { return m_pInterface; } 43 | inline void Destroy ( void ) { delete this; } 44 | 45 | private: 46 | CColModelSAInterface * m_pInterface; 47 | bool m_bDestroyInterface; 48 | }; 49 | 50 | #endif -------------------------------------------------------------------------------- /src/game_sa/CGaragesSA.cpp: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CGaragesSA.cpp 6 | * PURPOSE: Garage manager 7 | * DEVELOPERS: Ed Lyons 8 | * Alberto Alonso 9 | * 10 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 11 | * 12 | *****************************************************************************/ 13 | 14 | #include 15 | 16 | CGaragesSA::CGaragesSA ( CGaragesSAInterface* pInterface ) 17 | { 18 | this->internalInterface = pInterface; 19 | 20 | for ( int i = 0 ; i < MAX_GARAGES ; i++ ) 21 | { 22 | this->Garages[i] = new CGarageSA( (CGarageSAInterface *)(CLASS_CGarages + 216 * i) ); 23 | } 24 | } 25 | 26 | CGaragesSA::~CGaragesSA ( ) 27 | { 28 | for ( int i = 0 ; i < MAX_GARAGES ; i++ ) 29 | { 30 | delete this->Garages[i]; 31 | this->Garages[i] = NULL; 32 | } 33 | } 34 | 35 | void CGaragesSA::Initialize ( ) 36 | { 37 | // Disable pay and sprays and mod shops 38 | static const int iPayAndSprays [] = { 7, 8, 10, 11, 12, 15, 18, 19, 24, 27, 32, 33, 36, 40, 41, 47 }; 39 | for ( unsigned int i = 0; i < sizeof ( iPayAndSprays ) / sizeof ( int ); ++i ) 40 | { 41 | this->Garages [ iPayAndSprays [ i ] ]->SetType ( 1 ); 42 | } 43 | } 44 | 45 | CGarageSA* CGaragesSA::GetGarage ( DWORD dwID ) 46 | { 47 | if ( dwID >= 0 && dwID < MAX_GARAGES ) 48 | { 49 | return this->Garages[dwID]; 50 | } 51 | return NULL; 52 | } -------------------------------------------------------------------------------- /src/game_sa/game/TaskAttack.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/TaskAttack.h 6 | * PURPOSE: Attack task interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CGAME_TASKATTACK 13 | #define __CGAME_TASKATTACK 14 | 15 | #include "Task.h" 16 | 17 | class CTaskSimpleGangDriveBy : public virtual CTaskSimple 18 | { 19 | public: 20 | virtual ~CTaskSimpleGangDriveBy ( void ) {}; 21 | }; 22 | 23 | enum eGunCommand 24 | { 25 | GCOMMAND_NONE = 0, 26 | GCOMMAND_AIM, 27 | GCOMMAND_FIRE, 28 | GCOMMAND_FIREBURST, 29 | GCOMMAND_RELOAD, 30 | GCOMMAND_PISTOLWHIP, 31 | GCOMMAND_END_LEISURE, 32 | GCOMMAND_END_NOW 33 | }; 34 | 35 | class CVector2D; 36 | 37 | class CTaskSimpleUseGun : public virtual CTaskSimple 38 | { 39 | public: 40 | virtual ~CTaskSimpleUseGun ( void ) {}; 41 | 42 | virtual bool ControlGun ( CPed* pPed, CEntity *pTargetEntity, char nCommand ) = 0; 43 | virtual bool ControlGunMove ( CVector2D * pMoveVec ) = 0; 44 | virtual void Reset ( CPed *pPed, CEntity *pTargetEntity, CVector vecTarget, char nCommand, short nBurstLength = 1 ) = 0; 45 | }; 46 | 47 | class CTaskSimpleFight : public virtual CTaskSimple 48 | { 49 | public: 50 | virtual ~CTaskSimpleFight ( void ) {}; 51 | }; 52 | 53 | #endif 54 | -------------------------------------------------------------------------------- /src/game_sa/game/TaskCar.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/TaskCar.h 6 | * PURPOSE: Car task interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CGAME_TASKCAR 13 | #define __CGAME_TASKCAR 14 | 15 | #include "Task.h" 16 | 17 | enum 18 | { 19 | DOOR_FRONT_LEFT = 0, 20 | DOOR_FRONT_RIGHT = 8, 21 | DOOR_REAR_RIGHT = 9, 22 | DOOR_REAR_LEFT = 11 23 | }; 24 | 25 | class CTaskComplexEnterCar : public virtual CTaskComplex 26 | { 27 | public: 28 | virtual ~CTaskComplexEnterCar ( void ) {}; 29 | 30 | virtual int GetTargetDoor()=0; 31 | virtual void SetTargetDoor(int iDoor)=0; 32 | virtual int GetEnterCarStartTime()=0; 33 | }; 34 | 35 | class CTaskComplexEnterCarAsDriver : public virtual CTaskComplexEnterCar 36 | { 37 | public: 38 | virtual ~CTaskComplexEnterCarAsDriver ( void ) {}; 39 | }; 40 | 41 | class CTaskComplexEnterCarAsPassenger : public virtual CTaskComplexEnterCar 42 | { 43 | public: 44 | virtual ~CTaskComplexEnterCarAsPassenger ( void ) {}; 45 | }; 46 | 47 | class CTaskComplexEnterBoatAsDriver : public virtual CTaskComplex 48 | { 49 | public: 50 | virtual ~CTaskComplexEnterBoatAsDriver ( void ) {}; 51 | }; 52 | 53 | class CTaskComplexLeaveCar : public virtual CTaskComplex 54 | { 55 | public: 56 | virtual ~CTaskComplexLeaveCar ( void ) {}; 57 | }; 58 | 59 | #endif -------------------------------------------------------------------------------- /src/cheat_samp.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | PROJECT: mod_sa 4 | LICENSE: See LICENSE in the top level directory 5 | COPYRIGHT: Copyright we_sux, BlastHack 6 | 7 | mod_sa is available from https://github.com/BlastHackNet/mod_s0beit_sa/ 8 | 9 | mod_sa is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | mod_sa is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with mod_sa. If not, see . 21 | 22 | */ 23 | 24 | void sampMainCheat(void); 25 | void sampAntiHijack(void); 26 | void spectateHandle(void); 27 | void spectatePlayer(int iPlayerID); 28 | void HandleRPCPacketFunc(unsigned char id, struct RPCParameters *rpcParams, void(*callback) (struct RPCParameters *)); 29 | void initChatCmds(void); 30 | bool OnSendRPC(int uniqueID, BitStream *parameters, PacketPriority priority, PacketReliability reliability, char orderingChannel, bool shiftTimestamp); 31 | bool OnSendPacket(BitStream *parameters, PacketPriority priority, PacketReliability reliability, char orderingChannel); 32 | bool OnReceivePacket(Packet *p); 33 | 34 | extern int g_iSpectateEnabled; 35 | extern int g_iCursorEnabled; 36 | extern int g_iJoiningServer; 37 | extern int g_iNumPlayersMuted; 38 | extern bool g_bPlayerMuted[SAMP_MAX_PLAYERS]; -------------------------------------------------------------------------------- /src/game_sa/CMatrix_Pad.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/CMatrix_Pad.h 6 | * PURPOSE: 4x3 GTA padded matrix 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CMATRIX_PAD_H 13 | #define __CMATRIX_PAD_H 14 | 15 | #include "CVector.h" 16 | #include "CMatrix.h" 17 | 18 | /** 19 | * CVector Structure used internally by GTA. 20 | */ 21 | class CMatrix_Padded 22 | { 23 | public: 24 | CVector vRight; // 0 RIGHT 25 | DWORD dwPadRoll; // 12 26 | CVector vFront; // 16 FOREWARDS 27 | DWORD dwPadDirection; // 28 28 | CVector vUp; // 32 UP 29 | DWORD dwPadWas; // 44 30 | CVector vPos; // 48 TRANSLATE 31 | DWORD dwPadPos; // 60 32 | 33 | CMatrix_Padded() 34 | { 35 | memset ( this, 0, sizeof ( CMatrix_Padded ) ); 36 | } 37 | 38 | CMatrix_Padded ( const CMatrix& Matrix ) 39 | { 40 | SetFromMatrix ( Matrix ); 41 | } 42 | 43 | void ConvertToMatrix ( CMatrix& Matrix ) const 44 | { 45 | Matrix.vPos = vPos; 46 | Matrix.vFront = vFront; 47 | Matrix.vUp = vUp; 48 | Matrix.vRight = vRight; 49 | } 50 | 51 | void SetFromMatrix ( const CMatrix& Matrix ) 52 | { 53 | vPos = Matrix.vPos; 54 | dwPadPos = 0; 55 | 56 | vFront = Matrix.vFront; 57 | dwPadDirection = 0; 58 | 59 | vUp = Matrix.vUp; 60 | dwPadWas = 0; 61 | 62 | vRight = Matrix.vRight; 63 | dwPadRoll = 0; 64 | } 65 | }; 66 | 67 | #endif -------------------------------------------------------------------------------- /src/game_sa/CFireManagerSA.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CFireManagerSA.h 6 | * PURPOSE: Header file for fire manager class 7 | * DEVELOPERS: Ed Lyons 8 | * Cecill Etheredge 9 | * 10 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 11 | * 12 | *****************************************************************************/ 13 | 14 | #ifndef __CGAMESA_FIREMANAGER 15 | #define __CGAMESA_FIREMANAGER 16 | 17 | #include 18 | #include "Common.h" 19 | #include "CFireSA.h" 20 | 21 | #define FUNC_ExtinguishPoint 0x48E520 22 | #define FUNC_StartFire 0x48EC30 23 | #define FUNC_StartFire_Vec 0x539F00 // ##SA## 24 | 25 | #define ARRAY_CFire VAR_CFireCount + 4 26 | 27 | #define CLASS_CFireManager 0xB71F80 //##SA## 28 | 29 | #define DEFAULT_FIRE_PARTICLE_SIZE 1.8 30 | 31 | #define MAX_FIRES 60 //##SA## 32 | 33 | class CFireManagerSA : public CFireManager 34 | { 35 | private: 36 | CFireSA * Fires[MAX_FIRES]; 37 | public: 38 | // constructor 39 | CFireManagerSA(); 40 | ~CFireManagerSA ( void ); 41 | 42 | VOID ExtinguishPoint ( CVector & vecPosition, float fRadius ); 43 | CFire * StartFire ( CEntity * entityTarget, CEntity * entityCreator, float fSize ); 44 | CFire * StartFire ( CVector & vecPosition, float fSize ); 45 | VOID ExtinguishAllFires ( ); 46 | CFire * GetFire ( DWORD ID ); 47 | DWORD GetFireCount ( ); 48 | CFire * FindFreeFire ( ); 49 | CFire * GetFire ( CFireSAInterface * fire ); 50 | }; 51 | 52 | #endif -------------------------------------------------------------------------------- /src/game_sa/game/CColPoint.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CColPoint.h 6 | * PURPOSE: Collision point interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CGAME_CCOLPOINT 13 | #define __CGAME_CCOLPOINT 14 | 15 | #include 16 | 17 | // ChrML: Dunno where to put this, so I put it here.. but I guess this should be in some 18 | // kind of global section.. 19 | 20 | class CColPoint 21 | { 22 | public: 23 | virtual ~CColPoint ( void ) {}; 24 | 25 | virtual class CColPointSAInterface * GetInterface() = 0; 26 | virtual CVector * GetPosition()=0; 27 | virtual VOID SetPosition(CVector * vecPosition)=0; 28 | 29 | virtual CVector * GetNormal()=0; 30 | virtual VOID SetNormal(CVector * vecNormal)=0; 31 | 32 | virtual BYTE GetSurfaceTypeA()=0; 33 | virtual BYTE GetSurfaceTypeB()=0; 34 | 35 | virtual VOID SetSurfaceTypeA(BYTE bSurfaceType)=0; 36 | virtual VOID SetSurfaceTypeB(BYTE bSurfaceType)=0; 37 | 38 | virtual BYTE GetPieceTypeA()=0; 39 | virtual BYTE GetPieceTypeB()=0; 40 | 41 | virtual VOID SetPieceTypeA(BYTE bPieceType)=0; 42 | virtual VOID SetPieceTypeB(BYTE bPieceType)=0; 43 | 44 | virtual BYTE GetLightingA()=0; 45 | virtual BYTE GetLightingB()=0; 46 | 47 | virtual VOID SetLightingA(BYTE bLighting)=0; 48 | virtual VOID SetLightingB(BYTE bLighting)=0; 49 | 50 | virtual FLOAT GetDepth()=0; 51 | virtual VOID SetDepth(FLOAT fDepth)=0; 52 | 53 | virtual VOID Destroy()=0; 54 | }; 55 | 56 | #endif 57 | -------------------------------------------------------------------------------- /src/game_sa/CAnimBlendStaticAssociationSA.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CAnimBlendStaticAssociationSA.h 6 | * PURPOSE: Header file for animation blend static association class 7 | * DEVELOPERS: Jax <> 8 | * 9 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 10 | * 11 | *****************************************************************************/ 12 | 13 | /* CAnimBlendStaticAssociation: 1 per uncompressed animation?*/ 14 | 15 | #ifndef __CAnimBlendStaticAssociationSA_H 16 | #define __CAnimBlendStaticAssociationSA_H 17 | 18 | #include 19 | #include "Common.h" 20 | 21 | class CAnimBlendAssocGroupSA; 22 | class CAnimBlendHierarchySAInterface; 23 | class CAnimBlendHierarchy; 24 | 25 | class CAnimBlendStaticAssociationSAInterface 26 | { 27 | public: 28 | BYTE pad [ 6 ]; 29 | short sAnimID; 30 | short sAnimGroup; 31 | short sFlags; 32 | BYTE pad2 [ 4 ]; 33 | CAnimBlendHierarchySAInterface * pAnimHeirarchy; 34 | }; 35 | 36 | class CAnimBlendStaticAssociationSA : public CAnimBlendStaticAssociation 37 | { 38 | public: 39 | CAnimBlendStaticAssociationSA ( CAnimBlendStaticAssociationSAInterface * pInterface ) { m_pInterface = pInterface; } 40 | 41 | CAnimBlendHierarchy * GetAnimHierachy ( void ); 42 | 43 | protected: 44 | CAnimBlendStaticAssociationSAInterface * m_pInterface; 45 | }; 46 | 47 | #endif -------------------------------------------------------------------------------- /src/game_sa/HookSystem.cpp: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/HookSystem.cpp 6 | * PURPOSE: Function hook installation system 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #include 13 | 14 | 15 | 16 | //////////////////////////////////////////////////////////////////// 17 | 18 | VOID HookInstallMethod( DWORD dwInstallAddress, 19 | DWORD dwHookFunction ) 20 | { 21 | *(PDWORD)dwInstallAddress = (DWORD)dwHookFunction; 22 | } 23 | 24 | VOID HookInstallCall ( DWORD dwInstallAddress, 25 | DWORD dwHookFunction ) 26 | { 27 | DWORD dwOffset = dwHookFunction - (dwInstallAddress + 5); 28 | *(BYTE*)(dwInstallAddress) = 0xE8; 29 | *(DWORD*)(dwInstallAddress+1) = dwOffset; 30 | } 31 | 32 | 33 | //////////////////////////////////////////////////////////////////// 34 | 35 | BOOL HookInstall( DWORD dwInstallAddress, 36 | DWORD dwHookHandler, 37 | int iJmpCodeSize ) 38 | { 39 | BYTE JumpBytes[MAX_JUMPCODE_SIZE]; 40 | memset ( JumpBytes, 0x90, MAX_JUMPCODE_SIZE ); 41 | if ( CreateJump ( dwInstallAddress, dwHookHandler, JumpBytes ) ) 42 | { 43 | memcpy ( (PVOID)dwInstallAddress, JumpBytes, iJmpCodeSize ); 44 | return TRUE; 45 | } 46 | else 47 | { 48 | return FALSE; 49 | } 50 | } 51 | 52 | //////////////////////////////////////////////////////////////////// 53 | 54 | BYTE * CreateJump ( DWORD dwFrom, DWORD dwTo, BYTE * ByteArray ) 55 | { 56 | ByteArray[0] = 0xE9; 57 | *(DWORD *)(&ByteArray[1]) = dwTo - (dwFrom + 5); 58 | return ByteArray; 59 | } 60 | -------------------------------------------------------------------------------- /src/game_sa/CEventGunShotSA.cpp: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CEvenGunShotSA.cpp 6 | * PURPOSE: Gunshot event 7 | * DEVELOPERS: Jax <> 8 | * 9 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 10 | * 11 | *****************************************************************************/ 12 | 13 | #include 14 | 15 | CEventGunShotSA::CEventGunShotSA ( CEntity * pEntity, CVector & vecOrigin, CVector & vecTarget, bool b_1 ) 16 | { 17 | m_pInterface = new CEventGunShotSAInterface; 18 | 19 | DWORD dwEntityInterface = 0; 20 | if ( pEntity ) dwEntityInterface = (DWORD)pEntity->GetInterface (); 21 | float originX = vecOrigin.fX, originY = vecOrigin.fY, originZ = vecOrigin.fZ; 22 | float targetX = vecTarget.fX, targetY = vecTarget.fY, targetZ = vecTarget.fZ; 23 | DWORD dwThis = (DWORD)m_pInterface; 24 | DWORD dwFunc = FUNC_CEventGunShot_Constructor; 25 | _asm 26 | { 27 | mov ecx, dwThis 28 | push b_1 29 | push targetZ 30 | push targetY 31 | push targetX 32 | push originZ 33 | push originY 34 | push originX 35 | push dwEntityInterface 36 | call dwFunc 37 | } 38 | } 39 | 40 | void CEventGunShotSA::Destroy ( bool bDestroyInterface ) 41 | { 42 | if ( bDestroyInterface ) 43 | { 44 | DWORD dwThis = (DWORD)m_pInterface; 45 | DWORD dwFunc = FUNC_CEventGunShot_Destructor; 46 | _asm 47 | { 48 | mov ecx, dwThis 49 | call dwFunc 50 | } 51 | delete m_pInterface; 52 | } 53 | delete this; 54 | } -------------------------------------------------------------------------------- /src/game_sa/CExplosionManagerSA.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CExplosionManagerSA.h 6 | * PURPOSE: Header file for explosion manager class 7 | * DEVELOPERS: Ed Lyons 8 | * Christian Myhre Lundheim <> 9 | * Cecill Etheredge 10 | * 11 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 12 | * 13 | *****************************************************************************/ 14 | 15 | #ifndef __CGAMESA_EXPLOSIONMANAGER 16 | #define __CGAMESA_EXPLOSIONMANAGER 17 | 18 | #include 19 | #include "CExplosionSA.h" 20 | 21 | #define FUNC_CExplosion_AddExplosion 0x736A50 // ##SA## 22 | 23 | #define ARRAY_Explosions 0xC88950 24 | 25 | #define MAX_EXPLOSIONS 48 26 | 27 | class CExplosionManagerSA : public CExplosionManager 28 | { 29 | public: 30 | CExplosionManagerSA ( void ); 31 | ~CExplosionManagerSA ( void ); 32 | 33 | CExplosion * AddExplosion ( CEntity * pExplodingEntity, CEntity * pOwner, eExplosionType explosionType, CVector & vecPosition, unsigned int uiActivationDelay = 0, bool bMakeSound = true, float fCamShake = -1.0f, bool bNoDamage = false ); 34 | VOID RemoveAllExplosionsInArea ( CVector * vecPosition, FLOAT fRadius ); 35 | VOID RemoveAllExplosions ( void ); 36 | CExplosion * GetExplosion ( DWORD ID ); 37 | CExplosion * FindFreeExplosion ( void ); 38 | int GetExplosionActiveCount ( void ); 39 | 40 | //private: 41 | CExplosionSA * Explosions[MAX_EXPLOSIONS]; 42 | }; 43 | 44 | #endif -------------------------------------------------------------------------------- /src/game_sa/game/TaskIK.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/TaskIK.h 6 | * PURPOSE: Inverse kinematics task interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CGAME_TASKIK 13 | #define __CGAME_TASKIK 14 | 15 | #include "Task.h" 16 | 17 | #define NUM_IK_CHAIN_SLOTS 5 //(28 - sizeof(CTaskSimple)) / 4 18 | 19 | class CTaskSimpleIKChain : public virtual CTaskSimple 20 | { 21 | public: 22 | virtual ~CTaskSimpleIKChain ( void ) {}; 23 | }; 24 | 25 | class CTaskSimpleIKLookAt : public virtual CTaskSimpleIKChain 26 | { 27 | public: 28 | virtual ~CTaskSimpleIKLookAt ( void ) {}; 29 | }; 30 | 31 | class CTaskSimpleIKManager : public virtual CTaskSimple 32 | { 33 | public: 34 | virtual ~CTaskSimpleIKManager ( void ) {}; 35 | 36 | virtual int AddIKChainTask ( CTaskSimpleIKChain * pIKChainTask, int slotID=-1 ) = 0; 37 | virtual void RemoveIKChainTask ( int slotID ) = 0; 38 | virtual void BlendOut ( int slotID, int blendOutTime ) = 0; 39 | virtual unsigned char IsSlotEmpty ( int slotID ) = 0; 40 | virtual CTaskSimpleIKChain * GetTaskAtSlot ( int slotID ) = 0; 41 | }; 42 | 43 | class CTaskSimpleTriggerLookAt : public virtual CTaskSimple 44 | { 45 | public: 46 | virtual ~CTaskSimpleTriggerLookAt ( void ) {}; 47 | }; 48 | 49 | #endif -------------------------------------------------------------------------------- /src/game_sa/game/CPickup.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CPickup.h 6 | * PURPOSE: Pickup entity interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CGAME_PICKCUP 13 | #define __CGAME_PICKCUP 14 | 15 | #include 16 | #include 17 | #include "Common.h" 18 | 19 | class CObject; 20 | 21 | class CPickup 22 | { 23 | public: 24 | virtual CObject * GetObject()=0; 25 | virtual VOID SetPosition(CVector * vecPosition)=0; 26 | virtual CVector * GetPosition(CVector * vecPosition)=0; 27 | 28 | virtual ePickupType GetType()=0; 29 | virtual VOID SetType(ePickupType type)=0; 30 | virtual FLOAT GetCurrentValue()=0; 31 | virtual VOID SetCurrentValue(FLOAT fCurrentValue)=0; 32 | virtual VOID SetRegenerationTime(DWORD dwTime)=0; 33 | virtual VOID SetMoneyPerDay(WORD wMoneyPerDay)=0; 34 | virtual WORD GetMoneyPerDay()=0; 35 | virtual WORD GetModel()=0; 36 | virtual VOID SetModel(WORD wModelIndex)=0; // do not export 37 | virtual ePickupState GetState()=0; 38 | virtual VOID SetState(ePickupState bState)=0; 39 | virtual BYTE GetAmmo()=0; 40 | virtual VOID SetAmmo(BYTE bAmmo)=0; 41 | virtual long GetMonetaryValue()=0; 42 | virtual VOID SetMonetaryValue(long lMonetaryValue)=0; 43 | virtual BYTE IsNearby()=0; 44 | virtual VOID Remove()=0; 45 | virtual VOID GiveUsAPickUpObject(int ForcedObjectIndex=-1)=0; 46 | virtual VOID GetRidOfObjects()=0; 47 | 48 | }; 49 | 50 | // not used 51 | typedef BOOL (*CBPickup) (CPickup *); 52 | 53 | #endif -------------------------------------------------------------------------------- /src/game_sa/game/CCheckpoint.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/CCheckpoint.h 6 | * PURPOSE: Checkpoint entity interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CGAME_CHECKPOINT 13 | #define __CGAME_CHECKPOINT 14 | 15 | #include 16 | #include "Common.h" 17 | 18 | /** 19 | * \todo fix SetColor/GetColor, the format is actually BGRA (strange) 20 | */ 21 | 22 | enum 23 | { 24 | CHECKPOINT_TUBE, // a long tube with arrow as direction 25 | CHECKPOINT_ENDTUBE, // finish flag long tube checkpoint 26 | CHECKPOINT_EMPTYTUBE, // just a long tube checkpoint 27 | CHECKPOINT_TORUS, 28 | CHECKPOINT_TORUS_NOFADE, 29 | CHECKPOINT_TORUSROT, 30 | CHECKPOINT_TORUSTHROUGH, 31 | CHECKPOINT_TORUS_UPDOWN, 32 | CHECKPOINT_TORUS_DOWN, 33 | CHECKPOINT_NUM 34 | }; 35 | 36 | class CCheckpoint 37 | { 38 | public: 39 | virtual VOID SetPosition(CVector * vecPosition)=0; 40 | virtual CVector * GetPosition()=0; 41 | virtual VOID SetPointDirection(CVector * vecPointDirection)=0; 42 | virtual CVector * GetPointDirection()=0; 43 | virtual DWORD GetType()=0; // need enum? 44 | virtual BOOL IsActive()=0; 45 | virtual DWORD GetIdentifier()=0; 46 | virtual RGBA GetColor()=0; 47 | virtual VOID SetColor(RGBA color)=0; 48 | virtual VOID SetPulsePeriod(WORD wPulsePeriod)=0; 49 | virtual VOID SetRotateRate(short RotateRate)=0; 50 | virtual FLOAT GetSize()=0; 51 | virtual VOID SetSize(FLOAT fSize)=0; 52 | virtual VOID SetCameraRange(FLOAT fCameraRange)=0; 53 | virtual FLOAT GetPulseFraction()=0; 54 | virtual VOID Remove()=0; 55 | }; 56 | 57 | #endif -------------------------------------------------------------------------------- /src/game_sa/game/TaskCarAccessories.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/TaskCarAccessories.h 6 | * PURPOSE: Car accessories task interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CGAME_TASKCARACCESSORIES 13 | #define __CGAME_TASKCARACCESSORIES 14 | 15 | #include "Task.h" 16 | 17 | class CTaskSimpleCarSetPedInAsDriver : public virtual CTaskSimple 18 | { 19 | public: 20 | virtual ~CTaskSimpleCarSetPedInAsDriver ( void ) {}; 21 | 22 | virtual void SetIsWarpingPedIntoCar()=0; 23 | virtual void SetDoorFlagsToClear(const unsigned char nDoorFlagsToClear)=0; 24 | virtual void SetNumGettingInToClear(const unsigned char nNumGettingInToClear)=0; 25 | }; 26 | 27 | class CTaskSimpleCarSetPedOut : public virtual CTaskSimple 28 | { 29 | public: 30 | virtual ~CTaskSimpleCarSetPedOut ( void ) {}; 31 | 32 | virtual void SetIsWarpingPedOutOfCar()=0; 33 | virtual void SetKnockedOffBike()=0; 34 | virtual void SetDoorFlagsToClear(const unsigned char nDoorFlagsToClear)=0; 35 | virtual void SetNumGettingInToClear(const unsigned char nNumGettingInToClear)=0; 36 | virtual void PositionPedOutOfCollision(CPed * ped, CVehicle * vehicle, int nDoor)=0; 37 | }; 38 | 39 | class CTaskSimpleCarSetPedInAsPassenger : public virtual CTaskSimple 40 | { 41 | public: 42 | virtual ~CTaskSimpleCarSetPedInAsPassenger ( void ) {}; 43 | 44 | virtual void SetIsWarpingPedIntoCar()=0; 45 | virtual void SetDoorFlagsToClear(const unsigned char nDoorFlagsToClear)=0; 46 | virtual void SetNumGettingInToClear(const unsigned char nNumGettingInToClear)=0; 47 | }; 48 | 49 | #endif -------------------------------------------------------------------------------- /src/game_sa/game/C3DMarker.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: sdk/game/C3DMarker.h 6 | * PURPOSE: 3D marker entity interface 7 | * 8 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 9 | * 10 | *****************************************************************************/ 11 | 12 | #ifndef __CGAME_3DMARKER 13 | #define __CGAME_3DMARKER 14 | 15 | #include "Common.h" 16 | #include "SharedUtil.h" 17 | 18 | class CVector; 19 | struct RpClump; 20 | class CMatrix; 21 | 22 | /** 23 | * \todo fix SetColor/GetColor, the format is actually BGRA (strange) 24 | */ 25 | class C3DMarker 26 | { 27 | public: 28 | virtual ~C3DMarker ( void ) {}; 29 | 30 | virtual void GetMatrix ( CMatrix * pMatrix )=0; 31 | virtual void SetMatrix ( CMatrix * pMatrix )=0; 32 | virtual VOID SetPosition(CVector * vecPosition)=0; 33 | virtual CVector * GetPosition()=0; 34 | virtual DWORD GetType()=0; // need enum? 35 | virtual BOOL IsActive()=0; 36 | virtual DWORD GetIdentifier()=0; 37 | virtual SharedUtil::RGBA GetColor()=0; 38 | virtual VOID SetColor(RGBA color)=0; 39 | virtual VOID SetPulsePeriod(WORD wPulsePeriod)=0; 40 | virtual VOID SetPulseFraction(FLOAT fPulseFraction)=0; 41 | virtual VOID SetRotateRate(short RotateRate)=0; 42 | virtual FLOAT GetSize()=0; 43 | virtual VOID SetSize(FLOAT fSize)=0; 44 | virtual FLOAT GetBrightness()=0; 45 | virtual VOID SetBrightness(FLOAT fBrightness)=0; 46 | virtual VOID SetCameraRange(FLOAT fCameraRange)=0; 47 | virtual FLOAT GetPulseFraction()=0; 48 | virtual VOID Disable()=0; 49 | virtual VOID SetActive()=0; 50 | virtual RpClump * GetRwObject()=0; 51 | }; 52 | 53 | #endif -------------------------------------------------------------------------------- /src/CDirect3DData.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: core/CDirect3DData.h 6 | * PURPOSE: Header file for Direct3D data class 7 | * DEVELOPERS: Christian Myhre Lundheim <> 8 | * Derek Abdine <> 9 | * 10 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 11 | * 12 | *****************************************************************************/ 13 | 14 | #ifndef __CDIRECT3DDATA_H 15 | #define __CDIRECT3DDATA_H 16 | 17 | #include 18 | 19 | class CDirect3DData 20 | { 21 | public: 22 | CDirect3DData ( void ); 23 | ~CDirect3DData ( void ); 24 | 25 | void StoreTransform ( D3DTRANSFORMSTATETYPE dwMatrixToStore, const D3DMATRIX* pMatrix ); 26 | void GetTransform ( D3DTRANSFORMSTATETYPE dwRequestedMatrix, D3DMATRIX * pMatrixOut ); 27 | 28 | inline HWND GetDeviceWindow ( void ) { return m_hDeviceWindow; }; 29 | inline void StoreDeviceWindow ( HWND hDeviceWindow ) { m_hDeviceWindow = hDeviceWindow; }; 30 | 31 | void StoreViewport ( DWORD dwX, DWORD dwY, DWORD dwWidth, DWORD dwHeight ); 32 | 33 | DWORD GetViewportX ( void ); 34 | DWORD GetViewportY ( void ); 35 | DWORD GetViewportWidth ( void ); 36 | DWORD GetViewportHeight ( void ); 37 | 38 | private: 39 | D3DMATRIX m_mViewMatrix; 40 | D3DMATRIX m_mProjMatrix; 41 | D3DMATRIX m_mWorldMatrix; 42 | 43 | HWND m_hDeviceWindow; 44 | 45 | DWORD m_dwViewportX; 46 | DWORD m_dwViewportY; 47 | DWORD m_dwViewportWidth; 48 | DWORD m_dwViewportHeight; 49 | }; 50 | 51 | #endif 52 | -------------------------------------------------------------------------------- /src/game_sa/CTaskManagementSystemSA.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/CTaskManagementSystemSA.h 6 | * PURPOSE: Header file for task management system class 7 | * DEVELOPERS: Ed Lyons 8 | * Christian Myhre Lundheim <> 9 | * Cecill Etheredge 10 | * Jax <> 11 | * 12 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 13 | * 14 | *****************************************************************************/ 15 | 16 | class CTaskManagementSystemSA; 17 | 18 | #ifndef __CGAMESA_TASKSYSTEM 19 | #define __CGAMESA_TASKSYSTEM 20 | 21 | #include "TaskSA.h" 22 | #include "TaskCarAccessoriesSA.h" 23 | #include "TaskCarSA.h" 24 | #include 25 | #include 26 | 27 | #define FUNC_CTask_Operator_Delete 0x61A5B0 28 | 29 | class CTaskManagementSystemSA : public CTaskManagementSystem 30 | { 31 | public: 32 | CTaskManagementSystemSA ( void ); 33 | ~CTaskManagementSystemSA ( void ); 34 | 35 | CTask * AddTask ( CTaskSA * pTask ); 36 | void RemoveTask ( CTaskSAInterface * pTaskInterface ); 37 | CTask * GetTask ( CTaskSAInterface * pTaskInterface ); 38 | CTask * CreateAppropriateTask ( CTaskSAInterface * pTaskInterface, int iTaskType ); 39 | 40 | private: 41 | struct STaskListItem 42 | { 43 | CTaskSAInterface* taskInterface; 44 | CTaskSA* pTaskSA; 45 | }; 46 | 47 | std::list < STaskListItem* > m_TaskList; 48 | }; 49 | 50 | #endif 51 | -------------------------------------------------------------------------------- /src/game_sa/TaskPhysicalResponseSA.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | * 3 | * PROJECT: Multi Theft Auto v1.0 4 | * LICENSE: See LICENSE in the top level directory 5 | * FILE: game_sa/TaskPhysicalResponseSA.h 6 | * PURPOSE: Physical response game tasks 7 | * DEVELOPERS: Christian Myhre Lundheim <> 8 | * 9 | * Multi Theft Auto is available from http://www.multitheftauto.com/ 10 | * 11 | *****************************************************************************/ 12 | 13 | #ifndef __CGAMESA_TASKPHYSICALRESPONSE 14 | #define __CGAMESA_TASKPHYSICALRESPONSE 15 | 16 | #include 17 | #include "TaskSA.h" 18 | 19 | #define FUNC_CTaskSimpleChoking__Constructor 0x6202C0 20 | #define FUNC_CTaskSimpleChoking__UpdateChoke 0x620660 21 | 22 | class CTaskSimpleChokingSAInterface : public CTaskSimpleSAInterface 23 | { 24 | public: 25 | class CPedSAInterface* m_pAttacker; 26 | DWORD* m_pAnim; 27 | unsigned int m_nTimeRemaining; 28 | unsigned int m_nTimeStarted; 29 | unsigned char m_bIsTeargas; 30 | bool m_bIsFinished; 31 | }; 32 | 33 | class CTaskSimpleChokingSA : public virtual CTaskSimpleSA, public virtual CTaskSimpleChoking 34 | { 35 | public: 36 | CTaskSimpleChokingSA ( void ) {}; 37 | CTaskSimpleChokingSA ( CPed* pAttacker, bool bIsTearGas ); 38 | 39 | CPed* GetAttacker ( void ); 40 | unsigned int GetTimeRemaining ( void ); 41 | unsigned int GetTimeStarted ( void ); 42 | bool IsTeargas ( void ); 43 | bool IsFinished ( void ); 44 | 45 | void UpdateChoke ( CPed* pPed, CPed* pAttacker, bool bIsTearGas ); 46 | }; 47 | 48 | #endif 49 | --------------------------------------------------------------------------------