mirror of
https://github.com/dashr9230/SA-MP.git
synced 2024-11-27 16:30:44 +00:00
[saco] Implement util functions
Implements: * `WorldAddEntity(...)` * `WorldRemoveEntity(...)` * `GameDisableCheatCodes()` * `GamePool_Ped_GetAt(...)` * `GamePool_Ped_GetIndex(...)` * `GamePool_Vehicle_GetAt(...)` * `GamePool_Vehicle_GetIndex(...)` * `GamePool_Object_GetAt(...)` * Updates `InitPlayerPedPtrRecords()`
This commit is contained in:
parent
673ec195bc
commit
f398b9c82c
@ -21,4 +21,11 @@
|
|||||||
|
|
||||||
#define ADDR_ENABLE_HUD 0xBA6769
|
#define ADDR_ENABLE_HUD 0xBA6769
|
||||||
|
|
||||||
|
#define ADDR_ID_FROM_ACTOR 0x4442D0
|
||||||
|
#define ADDR_ACTOR_FROM_ID 0x404910 // Converts id to actor ptr
|
||||||
|
#define ADDR_PED_TABLE 0xB74490 // Contains ptr to actor/ped table
|
||||||
|
|
||||||
|
#define ADDR_VEHICLE_FROM_ID 0x4048E0 // Converts id to vehicle ptr
|
||||||
|
#define ADDR_VEHICLE_TABLE 0xB74494 // Contains ptr to the vehicles table
|
||||||
|
|
||||||
#define ADDR_CAMERA 0xB6F99C
|
#define ADDR_CAMERA 0xB6F99C
|
||||||
|
@ -64,6 +64,14 @@ typedef struct _PED_TYPE
|
|||||||
|
|
||||||
} PED_TYPE;
|
} PED_TYPE;
|
||||||
|
|
||||||
|
//-----------------------------------------------------------
|
||||||
|
typedef struct _VEHICLE_TYPE
|
||||||
|
{
|
||||||
|
char _gap0;
|
||||||
|
} VEHICLE_TYPE;
|
||||||
|
|
||||||
|
//-----------------------------------------------------------
|
||||||
|
|
||||||
//-----------------------------------------------------------
|
//-----------------------------------------------------------
|
||||||
|
|
||||||
// ---- weapon id defines ----
|
// ---- weapon id defines ----
|
||||||
|
@ -1030,6 +1030,113 @@ void ProcessLineOfSight(VECTOR *vecOrigin, VECTOR *vecLine, VECTOR *colPoint,
|
|||||||
_asm jmp eax
|
_asm jmp eax
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//-----------------------------------------------------------
|
||||||
|
|
||||||
|
void __stdcall WorldAddEntity(DWORD *dwEnt)
|
||||||
|
{
|
||||||
|
_asm push dwEnt
|
||||||
|
_asm mov ebx, 0x563220
|
||||||
|
_asm call ebx
|
||||||
|
_asm pop ebx
|
||||||
|
}
|
||||||
|
|
||||||
|
//-----------------------------------------------------------
|
||||||
|
|
||||||
|
void __stdcall WorldRemoveEntity(DWORD *dwEnt)
|
||||||
|
{
|
||||||
|
_asm push dwEnt
|
||||||
|
_asm mov ebx, 0x563280
|
||||||
|
_asm call ebx
|
||||||
|
_asm pop ebx
|
||||||
|
}
|
||||||
|
|
||||||
|
//-----------------------------------------------------------
|
||||||
|
|
||||||
|
void __stdcall GameDisableCheatCodes()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//-----------------------------------------------------------
|
||||||
|
|
||||||
|
PED_TYPE * __stdcall GamePool_Ped_GetAt(int iID)
|
||||||
|
{
|
||||||
|
PED_TYPE *pActorRet;
|
||||||
|
|
||||||
|
_asm mov ebx, ADDR_PED_TABLE
|
||||||
|
_asm mov ecx, [ebx]
|
||||||
|
_asm push iID
|
||||||
|
_asm mov ebx, ADDR_ACTOR_FROM_ID
|
||||||
|
_asm call ebx
|
||||||
|
_asm mov pActorRet, eax
|
||||||
|
|
||||||
|
return pActorRet;
|
||||||
|
}
|
||||||
|
|
||||||
|
//-----------------------------------------------------------
|
||||||
|
|
||||||
|
int __stdcall GamePool_Ped_GetIndex(PED_TYPE *pActor)
|
||||||
|
{
|
||||||
|
int iRetVal;
|
||||||
|
|
||||||
|
_asm mov ebx, ADDR_PED_TABLE
|
||||||
|
_asm mov ecx, [ebx]
|
||||||
|
_asm push pActor
|
||||||
|
_asm mov ebx, ADDR_ID_FROM_ACTOR
|
||||||
|
_asm call ebx
|
||||||
|
_asm mov iRetVal, eax
|
||||||
|
|
||||||
|
return iRetVal;
|
||||||
|
}
|
||||||
|
|
||||||
|
//-----------------------------------------------------------
|
||||||
|
|
||||||
|
VEHICLE_TYPE * __stdcall GamePool_Vehicle_GetAt(int iID)
|
||||||
|
{
|
||||||
|
VEHICLE_TYPE *pVehicleRet;
|
||||||
|
|
||||||
|
_asm mov ebx, ADDR_VEHICLE_TABLE
|
||||||
|
_asm mov ecx, [ebx]
|
||||||
|
_asm push iID
|
||||||
|
_asm mov ebx, ADDR_VEHICLE_FROM_ID
|
||||||
|
_asm call ebx
|
||||||
|
_asm mov pVehicleRet, eax
|
||||||
|
|
||||||
|
return pVehicleRet;
|
||||||
|
}
|
||||||
|
|
||||||
|
//-----------------------------------------------------------
|
||||||
|
|
||||||
|
DWORD __stdcall GamePool_Vehicle_GetIndex(VEHICLE_TYPE *pVehicle)
|
||||||
|
{
|
||||||
|
DWORD dwID=0;
|
||||||
|
|
||||||
|
_asm mov eax, ADDR_VEHICLE_TABLE
|
||||||
|
_asm mov ecx, [eax]
|
||||||
|
_asm push pVehicle
|
||||||
|
_asm mov edx, 0x424160
|
||||||
|
_asm call edx
|
||||||
|
_asm mov dwID, eax
|
||||||
|
|
||||||
|
return dwID;
|
||||||
|
}
|
||||||
|
|
||||||
|
//-----------------------------------------------------------
|
||||||
|
|
||||||
|
ENTITY_TYPE * __stdcall GamePool_Object_GetAt(int iID)
|
||||||
|
{
|
||||||
|
ENTITY_TYPE *pObjectRet;
|
||||||
|
|
||||||
|
_asm mov ebx, 0xB7449C
|
||||||
|
_asm mov ecx, [ebx]
|
||||||
|
_asm push iID
|
||||||
|
_asm mov ebx, 0x465040
|
||||||
|
_asm call ebx
|
||||||
|
_asm mov pObjectRet, eax
|
||||||
|
|
||||||
|
return pObjectRet;
|
||||||
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------
|
//-----------------------------------------------------------
|
||||||
// Return the PED_TYPE * of the local player actor.
|
// Return the PED_TYPE * of the local player actor.
|
||||||
|
|
||||||
@ -1038,6 +1145,8 @@ PED_TYPE * __stdcall GamePool_FindPlayerPed()
|
|||||||
return *(PED_TYPE **)(0xB7CD98);
|
return *(PED_TYPE **)(0xB7CD98);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//-----------------------------------------------------------
|
||||||
|
|
||||||
void __stdcall SetRadarColor(int nIndex,DWORD dwColor)
|
void __stdcall SetRadarColor(int nIndex,DWORD dwColor)
|
||||||
{
|
{
|
||||||
if(nIndex < sizeof(dwUseHudColors)) {
|
if(nIndex < sizeof(dwUseHudColors)) {
|
||||||
@ -1068,7 +1177,7 @@ void GameResetRadarColors()
|
|||||||
void __stdcall InitPlayerPedPtrRecords()
|
void __stdcall InitPlayerPedPtrRecords()
|
||||||
{
|
{
|
||||||
memset(&dwPlayerPedPtrs[0],0,sizeof(DWORD) * PLAYER_PED_SLOTS);
|
memset(&dwPlayerPedPtrs[0],0,sizeof(DWORD) * PLAYER_PED_SLOTS);
|
||||||
memset(unnamed_1026C258, 0, sizeof(struc_96) * PLAYER_PED_SLOTS);
|
memset(unnamed_1026C258, 0, sizeof(unnamed_1026C258));
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------
|
//-----------------------------------------------------------
|
||||||
|
@ -8,6 +8,16 @@ void ProcessLineOfSight(VECTOR *vecOrigin, VECTOR *vecLine, VECTOR *colPoint,
|
|||||||
|
|
||||||
void __stdcall SetRadarColor(int nIndex,DWORD dwColor);
|
void __stdcall SetRadarColor(int nIndex,DWORD dwColor);
|
||||||
|
|
||||||
|
void __stdcall WorldRemoveEntity(DWORD *dwEnt);
|
||||||
|
void __stdcall WorldAddEntity(DWORD *dwEnt);
|
||||||
|
|
||||||
|
void __stdcall GameDisableCheatCodes();
|
||||||
|
|
||||||
|
PED_TYPE * __stdcall GamePool_Ped_GetAt(int iID);
|
||||||
|
int __stdcall GamePool_Ped_GetIndex(PED_TYPE *pActor);
|
||||||
|
VEHICLE_TYPE * __stdcall GamePool_Vehicle_GetAt(int iID);
|
||||||
|
DWORD __stdcall GamePool_Vehicle_GetIndex(VEHICLE_TYPE *pVehicle);
|
||||||
|
ENTITY_TYPE * __stdcall GamePool_Object_GetAt(int iID);
|
||||||
PED_TYPE * __stdcall GamePool_FindPlayerPed();
|
PED_TYPE * __stdcall GamePool_FindPlayerPed();
|
||||||
|
|
||||||
DWORD __stdcall TranslateColorCodeToRGBA(int iCode);
|
DWORD __stdcall TranslateColorCodeToRGBA(int iCode);
|
||||||
|
Loading…
Reference in New Issue
Block a user